diff --git a/Android.mk b/Android.mk
index aa86911..17eeba8 100644
--- a/Android.mk
+++ b/Android.mk
@@ -12,5 +12,5 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-subdirs := native java tests tools
+subdirs := common native java tests tools
 include $(call all-named-subdir-makefiles, $(subdirs))
diff --git a/common/Android.mk b/common/Android.mk
new file mode 100644
index 0000000..132a223
--- /dev/null
+++ b/common/Android.mk
@@ -0,0 +1,28 @@
+# Copyright (C) 2014 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+LOCAL_MODULE := latinime-common
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+LOCAL_STATIC_JAVA_LIBRARIES := jsr305
+LOCAL_SDK_VERSION := 21
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
+# Also build a host side library
+include $(CLEAR_VARS)
+LOCAL_MODULE := latinime-common-host
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+LOCAL_STATIC_JAVA_LIBRARIES := jsr305lib
+include $(BUILD_HOST_JAVA_LIBRARY)
diff --git a/java/src/com/android/inputmethod/annotations/ExternallyReferenced.java b/common/src/com/android/inputmethod/annotations/ExternallyReferenced.java
similarity index 100%
rename from java/src/com/android/inputmethod/annotations/ExternallyReferenced.java
rename to common/src/com/android/inputmethod/annotations/ExternallyReferenced.java
diff --git a/java/src/com/android/inputmethod/annotations/UsedForTesting.java b/common/src/com/android/inputmethod/annotations/UsedForTesting.java
similarity index 100%
rename from java/src/com/android/inputmethod/annotations/UsedForTesting.java
rename to common/src/com/android/inputmethod/annotations/UsedForTesting.java
diff --git a/common/src/com/android/inputmethod/latin/common/CodePointUtils.java b/common/src/com/android/inputmethod/latin/common/CodePointUtils.java
new file mode 100644
index 0000000..ec59de8
--- /dev/null
+++ b/common/src/com/android/inputmethod/latin/common/CodePointUtils.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.common;
+
+import com.android.inputmethod.annotations.UsedForTesting;
+
+import java.util.Random;
+
+import javax.annotation.Nonnull;
+
+// Utility methods related with code points used for tests.
+// TODO: Figure out where this class should be.
+@UsedForTesting
+public class CodePointUtils {
+    private CodePointUtils() {
+        // This utility class is not publicly instantiable.
+    }
+
+    public static final int[] LATIN_ALPHABETS_LOWER = {
+        'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
+        'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
+        0x00E0 /* LATIN SMALL LETTER A WITH GRAVE */,
+        0x00E1 /* LATIN SMALL LETTER A WITH ACUTE */,
+        0x00E2 /* LATIN SMALL LETTER A WITH CIRCUMFLEX */,
+        0x00E3 /* LATIN SMALL LETTER A WITH TILDE */,
+        0x00E4 /* LATIN SMALL LETTER A WITH DIAERESIS */,
+        0x00E5 /* LATIN SMALL LETTER A WITH RING ABOVE */,
+        0x00E6 /* LATIN SMALL LETTER AE */,
+        0x00E7 /* LATIN SMALL LETTER C WITH CEDILLA */,
+        0x00E8 /* LATIN SMALL LETTER E WITH GRAVE */,
+        0x00E9 /* LATIN SMALL LETTER E WITH ACUTE */,
+        0x00EA /* LATIN SMALL LETTER E WITH CIRCUMFLEX */,
+        0x00EB /* LATIN SMALL LETTER E WITH DIAERESIS */,
+        0x00EC /* LATIN SMALL LETTER I WITH GRAVE */,
+        0x00ED /* LATIN SMALL LETTER I WITH ACUTE */,
+        0x00EE /* LATIN SMALL LETTER I WITH CIRCUMFLEX */,
+        0x00EF /* LATIN SMALL LETTER I WITH DIAERESIS */,
+        0x00F0 /* LATIN SMALL LETTER ETH */,
+        0x00F1 /* LATIN SMALL LETTER N WITH TILDE */,
+        0x00F2 /* LATIN SMALL LETTER O WITH GRAVE */,
+        0x00F3 /* LATIN SMALL LETTER O WITH ACUTE */,
+        0x00F4 /* LATIN SMALL LETTER O WITH CIRCUMFLEX */,
+        0x00F5 /* LATIN SMALL LETTER O WITH TILDE */,
+        0x00F6 /* LATIN SMALL LETTER O WITH DIAERESIS */,
+        0x00F7 /* LATIN SMALL LETTER O WITH STROKE */,
+        0x00F9 /* LATIN SMALL LETTER U WITH GRAVE */,
+        0x00FA /* LATIN SMALL LETTER U WITH ACUTE */,
+        0x00FB /* LATIN SMALL LETTER U WITH CIRCUMFLEX */,
+        0x00FC /* LATIN SMALL LETTER U WITH DIAERESIS */,
+        0x00FD /* LATIN SMALL LETTER Y WITH ACUTE */,
+        0x00FE /* LATIN SMALL LETTER THORN */,
+        0x00FF /* LATIN SMALL LETTER Y WITH DIAERESIS */
+    };
+
+    @UsedForTesting
+    @Nonnull
+    public static int[] generateCodePointSet(final int codePointSetSize,
+            @Nonnull final Random random) {
+        final int[] codePointSet = new int[codePointSetSize];
+        for (int i = codePointSet.length - 1; i >= 0; ) {
+            final int r = Math.abs(random.nextInt());
+            if (r < 0) {
+                continue;
+            }
+            // Don't insert 0~0x20, but insert any other code point.
+            // Code points are in the range 0~0x10FFFF.
+            final int candidateCodePoint = 0x20 + r % (Character.MAX_CODE_POINT - 0x20);
+            // Code points between MIN_ and MAX_SURROGATE are not valid on their own.
+            if (candidateCodePoint >= Character.MIN_SURROGATE
+                    && candidateCodePoint <= Character.MAX_SURROGATE) {
+                continue;
+            }
+            codePointSet[i] = candidateCodePoint;
+            --i;
+        }
+        return codePointSet;
+    }
+
+    /**
+     * Generates a random word.
+     */
+    @UsedForTesting
+    @Nonnull
+    public static String generateWord(@Nonnull final Random random,
+            @Nonnull final int[] codePointSet) {
+        final StringBuilder builder = new StringBuilder();
+        // 8 * 4 = 32 chars max, but we do it the following way so as to bias the random toward
+        // longer words. This should be closer to natural language, and more importantly, it will
+        // exercise the algorithms in dicttool much more.
+        final int count = 1 + (Math.abs(random.nextInt()) % 5)
+                + (Math.abs(random.nextInt()) % 5)
+                + (Math.abs(random.nextInt()) % 5)
+                + (Math.abs(random.nextInt()) % 5)
+                + (Math.abs(random.nextInt()) % 5)
+                + (Math.abs(random.nextInt()) % 5)
+                + (Math.abs(random.nextInt()) % 5)
+                + (Math.abs(random.nextInt()) % 5);
+        while (builder.length() < count) {
+            builder.appendCodePoint(codePointSet[Math.abs(random.nextInt()) % codePointSet.length]);
+        }
+        return builder.toString();
+    }
+}
diff --git a/common/src/com/android/inputmethod/latin/common/CollectionUtils.java b/common/src/com/android/inputmethod/latin/common/CollectionUtils.java
new file mode 100644
index 0000000..48df413
--- /dev/null
+++ b/common/src/com/android/inputmethod/latin/common/CollectionUtils.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.common;
+
+import com.android.inputmethod.annotations.UsedForTesting;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+/**
+ * Utility methods for working with collections.
+ */
+public final class CollectionUtils {
+    private CollectionUtils() {
+        // This utility class is not publicly instantiable.
+    }
+
+    /**
+     * Converts a sub-range of the given array to an ArrayList of the appropriate type.
+     * @param array Array to be converted.
+     * @param start First index inclusive to be converted.
+     * @param end Last index exclusive to be converted.
+     * @throws IllegalArgumentException if start or end are out of range or start &gt; end.
+     */
+    @Nonnull
+    public static <E> ArrayList<E> arrayAsList(@Nonnull final E[] array, final int start,
+            final int end) {
+        if (start < 0 || start > end || end > array.length) {
+            throw new IllegalArgumentException("Invalid start: " + start + " end: " + end
+                    + " with array.length: " + array.length);
+        }
+
+        final ArrayList<E> list = new ArrayList<>(end - start);
+        for (int i = start; i < end; i++) {
+            list.add(array[i]);
+        }
+        return list;
+    }
+
+    /**
+     * Tests whether c contains no elements, true if c is null or c is empty.
+     * @param c Collection to test.
+     * @return Whether c contains no elements.
+     */
+    @UsedForTesting
+    public static boolean isNullOrEmpty(@Nullable final Collection<?> c) {
+        return c == null || c.isEmpty();
+    }
+}
diff --git a/common/src/com/android/inputmethod/latin/common/ComposedData.java b/common/src/com/android/inputmethod/latin/common/ComposedData.java
new file mode 100644
index 0000000..7f09660
--- /dev/null
+++ b/common/src/com/android/inputmethod/latin/common/ComposedData.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.common;
+
+import javax.annotation.Nonnull;
+
+/**
+ * An immutable class that encapsulates a snapshot of word composition data.
+ */
+public class ComposedData {
+    @Nonnull
+    public final InputPointers mInputPointers;
+    public final boolean mIsBatchMode;
+    @Nonnull
+    public final String mTypedWord;
+
+    public ComposedData(@Nonnull final InputPointers inputPointers, final boolean isBatchMode,
+            @Nonnull final String typedWord) {
+        mInputPointers = inputPointers;
+        mIsBatchMode = isBatchMode;
+        mTypedWord = typedWord;
+    }
+
+    /**
+     * Copy the code points in the typed word to a destination array of ints.
+     *
+     * If the array is too small to hold the code points in the typed word, nothing is copied and
+     * -1 is returned.
+     *
+     * @param destination the array of ints.
+     * @return the number of copied code points.
+     */
+    public int copyCodePointsExceptTrailingSingleQuotesAndReturnCodePointCount(
+            @Nonnull final int[] destination) {
+        // lastIndex is exclusive
+        final int lastIndex = mTypedWord.length()
+                - StringUtils.getTrailingSingleQuotesCount(mTypedWord);
+        if (lastIndex <= 0) {
+            // The string is empty or contains only single quotes.
+            return 0;
+        }
+
+        // The following function counts the number of code points in the text range which begins
+        // at index 0 and extends to the character at lastIndex.
+        final int codePointSize = Character.codePointCount(mTypedWord, 0, lastIndex);
+        if (codePointSize > destination.length) {
+            return -1;
+        }
+        return StringUtils.copyCodePointsAndReturnCodePointCount(destination, mTypedWord, 0,
+                lastIndex, true /* downCase */);
+    }
+}
diff --git a/common/src/com/android/inputmethod/latin/common/Constants.java b/common/src/com/android/inputmethod/latin/common/Constants.java
new file mode 100644
index 0000000..b491c8c
--- /dev/null
+++ b/common/src/com/android/inputmethod/latin/common/Constants.java
@@ -0,0 +1,335 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.common;
+
+import com.android.inputmethod.annotations.UsedForTesting;
+
+import javax.annotation.Nonnull;
+
+public final class Constants {
+
+    public static final class Color {
+        /**
+         * The alpha value for fully opaque.
+         */
+        public final static int ALPHA_OPAQUE = 255;
+    }
+
+    public static final class ImeOption {
+        /**
+         * The private IME option used to indicate that no microphone should be shown for a given
+         * text field. For instance, this is specified by the search dialog when the dialog is
+         * already showing a voice search button.
+         *
+         * @deprecated Use {@link ImeOption#NO_MICROPHONE} with package name prefixed.
+         */
+        @SuppressWarnings("dep-ann")
+        public static final String NO_MICROPHONE_COMPAT = "nm";
+
+        /**
+         * The private IME option used to indicate that no microphone should be shown for a given
+         * text field. For instance, this is specified by the search dialog when the dialog is
+         * already showing a voice search button.
+         */
+        public static final String NO_MICROPHONE = "noMicrophoneKey";
+
+        /**
+         * The private IME option used to indicate that no settings key should be shown for a given
+         * text field.
+         */
+        public static final String NO_SETTINGS_KEY = "noSettingsKey";
+
+        /**
+         * The private IME option used to indicate that the given text field needs ASCII code points
+         * input.
+         *
+         * @deprecated Use EditorInfo#IME_FLAG_FORCE_ASCII.
+         */
+        @SuppressWarnings("dep-ann")
+        public static final String FORCE_ASCII = "forceAscii";
+
+        /**
+         * The private IME option used to suppress the floating gesture preview for a given text
+         * field. This overrides the corresponding keyboard settings preference.
+         * {@link com.android.inputmethod.latin.settings.SettingsValues#mGestureFloatingPreviewTextEnabled}
+         */
+        public static final String NO_FLOATING_GESTURE_PREVIEW = "noGestureFloatingPreview";
+
+        private ImeOption() {
+            // This utility class is not publicly instantiable.
+        }
+    }
+
+    public static final class Subtype {
+        /**
+         * The subtype mode used to indicate that the subtype is a keyboard.
+         */
+        public static final String KEYBOARD_MODE = "keyboard";
+
+        public static final class ExtraValue {
+            /**
+             * The subtype extra value used to indicate that this subtype is capable of
+             * entering ASCII characters.
+             */
+            public static final String ASCII_CAPABLE = "AsciiCapable";
+
+            /**
+             * The subtype extra value used to indicate that this subtype is enabled
+             * when the default subtype is not marked as ascii capable.
+             */
+            public static final String ENABLED_WHEN_DEFAULT_IS_NOT_ASCII_CAPABLE =
+                    "EnabledWhenDefaultIsNotAsciiCapable";
+
+            /**
+             * The subtype extra value used to indicate that this subtype is capable of
+             * entering emoji characters.
+             */
+            public static final String EMOJI_CAPABLE = "EmojiCapable";
+
+            /**
+             * The subtype extra value used to indicate that this subtype requires a network
+             * connection to work.
+             */
+            public static final String REQ_NETWORK_CONNECTIVITY = "requireNetworkConnectivity";
+
+            /**
+             * The subtype extra value used to indicate that the display name of this subtype
+             * contains a "%s" for printf-like replacement and it should be replaced by
+             * this extra value.
+             * This extra value is supported on JellyBean and later.
+             */
+            public static final String UNTRANSLATABLE_STRING_IN_SUBTYPE_NAME =
+                    "UntranslatableReplacementStringInSubtypeName";
+
+            /**
+             * The subtype extra value used to indicate this subtype keyboard layout set name.
+             * This extra value is private to LatinIME.
+             */
+            public static final String KEYBOARD_LAYOUT_SET = "KeyboardLayoutSet";
+
+            /**
+             * The subtype extra value used to indicate that this subtype is an additional subtype
+             * that the user defined. This extra value is private to LatinIME.
+             */
+            public static final String IS_ADDITIONAL_SUBTYPE = "isAdditionalSubtype";
+
+            /**
+             * The subtype extra value used to specify the combining rules.
+             */
+            public static final String COMBINING_RULES = "CombiningRules";
+
+            private ExtraValue() {
+                // This utility class is not publicly instantiable.
+            }
+        }
+
+        private Subtype() {
+            // This utility class is not publicly instantiable.
+        }
+    }
+
+    public static final class TextUtils {
+        /**
+         * Capitalization mode for {@link android.text.TextUtils#getCapsMode}: don't capitalize
+         * characters.  This value may be used with
+         * {@link android.text.TextUtils#CAP_MODE_CHARACTERS},
+         * {@link android.text.TextUtils#CAP_MODE_WORDS}, and
+         * {@link android.text.TextUtils#CAP_MODE_SENTENCES}.
+         */
+        // TODO: Straighten this out. It's bizarre to have to use android.text.TextUtils.CAP_MODE_*
+        // except for OFF that is in Constants.TextUtils.
+        public static final int CAP_MODE_OFF = 0;
+
+        private TextUtils() {
+            // This utility class is not publicly instantiable.
+        }
+    }
+
+    public static final int NOT_A_CODE = -1;
+    public static final int NOT_A_CURSOR_POSITION = -1;
+    // TODO: replace the following constants with state in InputTransaction?
+    public static final int NOT_A_COORDINATE = -1;
+    public static final int SUGGESTION_STRIP_COORDINATE = -2;
+    public static final int EXTERNAL_KEYBOARD_COORDINATE = -4;
+
+    // A hint on how many characters to cache from the TextView. A good value of this is given by
+    // how many characters we need to be able to almost always find the caps mode.
+    public static final int EDITOR_CONTENTS_CACHE_SIZE = 1024;
+    // How many characters we accept for the recapitalization functionality. This needs to be
+    // large enough for all reasonable purposes, but avoid purposeful attacks. 100k sounds about
+    // right for this.
+    public static final int MAX_CHARACTERS_FOR_RECAPITALIZATION = 1024 * 100;
+
+    // Key events coming any faster than this are long-presses.
+    public static final int LONG_PRESS_MILLISECONDS = 200;
+    // TODO: Set this value appropriately.
+    public static final int GET_SUGGESTED_WORDS_TIMEOUT = 200;
+    // How many continuous deletes at which to start deleting at a higher speed.
+    public static final int DELETE_ACCELERATE_AT = 20;
+
+    public static final String WORD_SEPARATOR = " ";
+
+    public static boolean isValidCoordinate(final int coordinate) {
+        // Detect {@link NOT_A_COORDINATE}, {@link SUGGESTION_STRIP_COORDINATE},
+        // and {@link SPELL_CHECKER_COORDINATE}.
+        return coordinate >= 0;
+    }
+
+    /**
+     * Custom request code used in
+     * {@link com.android.inputmethod.keyboard.KeyboardActionListener#onCustomRequest(int)}.
+     */
+    // The code to show input method picker.
+    public static final int CUSTOM_CODE_SHOW_INPUT_METHOD_PICKER = 1;
+
+    /**
+     * Some common keys code. Must be positive.
+     */
+    public static final int CODE_ENTER = '\n';
+    public static final int CODE_TAB = '\t';
+    public static final int CODE_SPACE = ' ';
+    public static final int CODE_PERIOD = '.';
+    public static final int CODE_COMMA = ',';
+    public static final int CODE_DASH = '-';
+    public static final int CODE_SINGLE_QUOTE = '\'';
+    public static final int CODE_DOUBLE_QUOTE = '"';
+    public static final int CODE_SLASH = '/';
+    public static final int CODE_BACKSLASH = '\\';
+    public static final int CODE_VERTICAL_BAR = '|';
+    public static final int CODE_COMMERCIAL_AT = '@';
+    public static final int CODE_PLUS = '+';
+    public static final int CODE_PERCENT = '%';
+    public static final int CODE_CLOSING_PARENTHESIS = ')';
+    public static final int CODE_CLOSING_SQUARE_BRACKET = ']';
+    public static final int CODE_CLOSING_CURLY_BRACKET = '}';
+    public static final int CODE_CLOSING_ANGLE_BRACKET = '>';
+    public static final int CODE_INVERTED_QUESTION_MARK = 0xBF; // ¿
+    public static final int CODE_INVERTED_EXCLAMATION_MARK = 0xA1; // ¡
+    public static final int CODE_GRAVE_ACCENT = '`';
+    public static final int CODE_CIRCUMFLEX_ACCENT = '^';
+    public static final int CODE_TILDE = '~';
+
+    public static final String REGEXP_PERIOD = "\\.";
+    public static final String STRING_SPACE = " ";
+
+    /**
+     * Special keys code. Must be negative.
+     * These should be aligned with constants in
+     * {@link com.android.inputmethod.keyboard.internal.KeyboardCodesSet}.
+     */
+    public static final int CODE_SHIFT = -1;
+    public static final int CODE_CAPSLOCK = -2;
+    public static final int CODE_SWITCH_ALPHA_SYMBOL = -3;
+    public static final int CODE_OUTPUT_TEXT = -4;
+    public static final int CODE_DELETE = -5;
+    public static final int CODE_SETTINGS = -6;
+    public static final int CODE_SHORTCUT = -7;
+    public static final int CODE_ACTION_NEXT = -8;
+    public static final int CODE_ACTION_PREVIOUS = -9;
+    public static final int CODE_LANGUAGE_SWITCH = -10;
+    public static final int CODE_EMOJI = -11;
+    public static final int CODE_SHIFT_ENTER = -12;
+    public static final int CODE_SYMBOL_SHIFT = -13;
+    public static final int CODE_ALPHA_FROM_EMOJI = -14;
+    // Code value representing the code is not specified.
+    public static final int CODE_UNSPECIFIED = -15;
+
+    public static boolean isLetterCode(final int code) {
+        return code >= CODE_SPACE;
+    }
+
+    @Nonnull
+    public static String printableCode(final int code) {
+        switch (code) {
+        case CODE_SHIFT: return "shift";
+        case CODE_CAPSLOCK: return "capslock";
+        case CODE_SWITCH_ALPHA_SYMBOL: return "symbol";
+        case CODE_OUTPUT_TEXT: return "text";
+        case CODE_DELETE: return "delete";
+        case CODE_SETTINGS: return "settings";
+        case CODE_SHORTCUT: return "shortcut";
+        case CODE_ACTION_NEXT: return "actionNext";
+        case CODE_ACTION_PREVIOUS: return "actionPrevious";
+        case CODE_LANGUAGE_SWITCH: return "languageSwitch";
+        case CODE_EMOJI: return "emoji";
+        case CODE_SHIFT_ENTER: return "shiftEnter";
+        case CODE_ALPHA_FROM_EMOJI: return "alpha";
+        case CODE_UNSPECIFIED: return "unspec";
+        case CODE_TAB: return "tab";
+        case CODE_ENTER: return "enter";
+        case CODE_SPACE: return "space";
+        default:
+            if (code < CODE_SPACE) return String.format("\\u%02X", code);
+            if (code < 0x100) return String.format("%c", code);
+            if (code < 0x10000) return String.format("\\u%04X", code);
+            return String.format("\\U%05X", code);
+        }
+    }
+
+    @Nonnull
+    public static String printableCodes(@Nonnull final int[] codes) {
+        final StringBuilder sb = new StringBuilder();
+        boolean addDelimiter = false;
+        for (final int code : codes) {
+            if (code == NOT_A_CODE) break;
+            if (addDelimiter) sb.append(", ");
+            sb.append(printableCode(code));
+            addDelimiter = true;
+        }
+        return "[" + sb + "]";
+    }
+
+    /**
+     * Screen metrics (a.k.a. Device form factor) constants of
+     * {@link com.android.inputmethod.latin.R.integer#config_screen_metrics}.
+     */
+    public static final int SCREEN_METRICS_SMALL_PHONE = 0;
+    public static final int SCREEN_METRICS_LARGE_PHONE = 1;
+    public static final int SCREEN_METRICS_LARGE_TABLET = 2;
+    public static final int SCREEN_METRICS_SMALL_TABLET = 3;
+
+    @UsedForTesting
+    public static boolean isPhone(final int screenMetrics) {
+        return screenMetrics == SCREEN_METRICS_SMALL_PHONE
+                || screenMetrics == SCREEN_METRICS_LARGE_PHONE;
+    }
+
+    @UsedForTesting
+    public static boolean isTablet(final int screenMetrics) {
+        return screenMetrics == SCREEN_METRICS_SMALL_TABLET
+                || screenMetrics == SCREEN_METRICS_LARGE_TABLET;
+    }
+
+    /**
+     * Default capacity of gesture points container.
+     * This constant is used by {@link com.android.inputmethod.keyboard.internal.BatchInputArbiter}
+     * and etc. to preallocate regions that contain gesture event points.
+     */
+    public static final int DEFAULT_GESTURE_POINTS_CAPACITY = 128;
+
+    public static final int MAX_IME_DECODER_RESULTS = 20;
+    public static final int DECODER_SCORE_SCALAR = 1000000;
+    public static final int DECODER_MAX_SCORE = 1000000000;
+
+    public static final int EVENT_BACKSPACE = 1;
+    public static final int EVENT_REJECTION = 2;
+    public static final int EVENT_REVERT = 3;
+
+    private Constants() {
+        // This utility class is not publicly instantiable.
+    }
+}
diff --git a/common/src/com/android/inputmethod/latin/common/CoordinateUtils.java b/common/src/com/android/inputmethod/latin/common/CoordinateUtils.java
new file mode 100644
index 0000000..0316624
--- /dev/null
+++ b/common/src/com/android/inputmethod/latin/common/CoordinateUtils.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.common;
+
+import javax.annotation.Nonnull;
+
+public final class CoordinateUtils {
+    private static final int INDEX_X = 0;
+    private static final int INDEX_Y = 1;
+    private static final int ELEMENT_SIZE = INDEX_Y + 1;
+
+    private CoordinateUtils() {
+        // This utility class is not publicly instantiable.
+    }
+
+    @Nonnull
+    public static int[] newInstance() {
+        return new int[ELEMENT_SIZE];
+    }
+
+    public static int x(@Nonnull final int[] coords) {
+        return coords[INDEX_X];
+    }
+
+    public static int y(@Nonnull final int[] coords) {
+        return coords[INDEX_Y];
+    }
+
+    public static void set(@Nonnull final int[] coords, final int x, final int y) {
+        coords[INDEX_X] = x;
+        coords[INDEX_Y] = y;
+    }
+
+    public static void copy(@Nonnull final int[] destination, @Nonnull final int[] source) {
+        destination[INDEX_X] = source[INDEX_X];
+        destination[INDEX_Y] = source[INDEX_Y];
+    }
+
+    @Nonnull
+    public static int[] newCoordinateArray(final int arraySize) {
+        return new int[ELEMENT_SIZE * arraySize];
+    }
+
+    @Nonnull
+    public static int[] newCoordinateArray(final int arraySize,
+            final int defaultX, final int defaultY) {
+        final int[] result = new int[ELEMENT_SIZE * arraySize];
+        for (int i = 0; i < arraySize; ++i) {
+            setXYInArray(result, i, defaultX, defaultY);
+        }
+        return result;
+    }
+
+    public static int xFromArray(@Nonnull final int[] coordsArray, final int index) {
+        return coordsArray[ELEMENT_SIZE * index + INDEX_X];
+    }
+
+    public static int yFromArray(@Nonnull final int[] coordsArray, final int index) {
+        return coordsArray[ELEMENT_SIZE * index + INDEX_Y];
+    }
+
+    @Nonnull
+    public static int[] coordinateFromArray(@Nonnull final int[] coordsArray, final int index) {
+        final int[] coords = newInstance();
+        set(coords, xFromArray(coordsArray, index), yFromArray(coordsArray, index));
+        return coords;
+    }
+
+    public static void setXYInArray(@Nonnull final int[] coordsArray, final int index,
+            final int x, final int y) {
+        final int baseIndex = ELEMENT_SIZE * index;
+        coordsArray[baseIndex + INDEX_X] = x;
+        coordsArray[baseIndex + INDEX_Y] = y;
+    }
+
+    public static void setCoordinateInArray(@Nonnull final int[] coordsArray, final int index,
+            @Nonnull final int[] coords) {
+        setXYInArray(coordsArray, index, x(coords), y(coords));
+    }
+}
diff --git a/common/src/com/android/inputmethod/latin/common/FileUtils.java b/common/src/com/android/inputmethod/latin/common/FileUtils.java
new file mode 100644
index 0000000..6768458
--- /dev/null
+++ b/common/src/com/android/inputmethod/latin/common/FileUtils.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.android.inputmethod.latin.common;
+
+import java.io.File;
+import java.io.FilenameFilter;
+
+/**
+ * A simple class to help with removing directories recursively.
+ */
+public class FileUtils {
+    public static boolean deleteRecursively(final File path) {
+        if (path.isDirectory()) {
+            final File[] files = path.listFiles();
+            if (files != null) {
+                for (final File child : files) {
+                    deleteRecursively(child);
+                }
+            }
+        }
+        return path.delete();
+    }
+
+    public static boolean deleteFilteredFiles(final File dir, final FilenameFilter fileNameFilter) {
+        if (!dir.isDirectory()) {
+            return false;
+        }
+        final File[] files = dir.listFiles(fileNameFilter);
+        if (files == null) {
+            return false;
+        }
+        boolean hasDeletedAllFiles = true;
+        for (final File file : files) {
+            if (!deleteRecursively(file)) {
+                hasDeletedAllFiles = false;
+            }
+        }
+        return hasDeletedAllFiles;
+    }
+}
diff --git a/common/src/com/android/inputmethod/latin/common/InputPointers.java b/common/src/com/android/inputmethod/latin/common/InputPointers.java
new file mode 100644
index 0000000..4b2ae7e
--- /dev/null
+++ b/common/src/com/android/inputmethod/latin/common/InputPointers.java
@@ -0,0 +1,166 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.common;
+
+import com.android.inputmethod.annotations.UsedForTesting;
+
+import javax.annotation.Nonnull;
+
+// TODO: This class is not thread-safe.
+public final class InputPointers {
+    private static final boolean DEBUG_TIME = false;
+
+    private final int mDefaultCapacity;
+    private final ResizableIntArray mXCoordinates;
+    private final ResizableIntArray mYCoordinates;
+    private final ResizableIntArray mPointerIds;
+    private final ResizableIntArray mTimes;
+
+    public InputPointers(final int defaultCapacity) {
+        mDefaultCapacity = defaultCapacity;
+        mXCoordinates = new ResizableIntArray(defaultCapacity);
+        mYCoordinates = new ResizableIntArray(defaultCapacity);
+        mPointerIds = new ResizableIntArray(defaultCapacity);
+        mTimes = new ResizableIntArray(defaultCapacity);
+    }
+
+    private void fillWithLastTimeUntil(final int index) {
+        final int fromIndex = mTimes.getLength();
+        // Fill the gap with the latest time.
+        // See {@link #getTime(int)} and {@link #isValidTimeStamps()}.
+        if (fromIndex <= 0) {
+            return;
+        }
+        final int fillLength = index - fromIndex + 1;
+        if (fillLength <= 0) {
+            return;
+        }
+        final int lastTime = mTimes.get(fromIndex - 1);
+        mTimes.fill(lastTime, fromIndex, fillLength);
+    }
+
+    public void addPointerAt(final int index, final int x, final int y, final int pointerId,
+            final int time) {
+        mXCoordinates.addAt(index, x);
+        mYCoordinates.addAt(index, y);
+        mPointerIds.addAt(index, pointerId);
+        if (DEBUG_TIME) {
+            fillWithLastTimeUntil(index);
+        }
+        mTimes.addAt(index, time);
+    }
+
+    @UsedForTesting
+    public void addPointer(final int x, final int y, final int pointerId, final int time) {
+        mXCoordinates.add(x);
+        mYCoordinates.add(y);
+        mPointerIds.add(pointerId);
+        mTimes.add(time);
+    }
+
+    public void set(@Nonnull final InputPointers ip) {
+        mXCoordinates.set(ip.mXCoordinates);
+        mYCoordinates.set(ip.mYCoordinates);
+        mPointerIds.set(ip.mPointerIds);
+        mTimes.set(ip.mTimes);
+    }
+
+    public void copy(@Nonnull final InputPointers ip) {
+        mXCoordinates.copy(ip.mXCoordinates);
+        mYCoordinates.copy(ip.mYCoordinates);
+        mPointerIds.copy(ip.mPointerIds);
+        mTimes.copy(ip.mTimes);
+    }
+
+    /**
+     * Append the times, x-coordinates and y-coordinates in the specified {@link ResizableIntArray}
+     * to the end of this.
+     * @param pointerId the pointer id of the source.
+     * @param times the source {@link ResizableIntArray} to read the event times from.
+     * @param xCoordinates the source {@link ResizableIntArray} to read the x-coordinates from.
+     * @param yCoordinates the source {@link ResizableIntArray} to read the y-coordinates from.
+     * @param startPos the starting index of the data in {@code times} and etc.
+     * @param length the number of data to be appended.
+     */
+    public void append(final int pointerId, @Nonnull final ResizableIntArray times,
+            @Nonnull final ResizableIntArray xCoordinates,
+            @Nonnull final ResizableIntArray yCoordinates, final int startPos, final int length) {
+        if (length == 0) {
+            return;
+        }
+        mXCoordinates.append(xCoordinates, startPos, length);
+        mYCoordinates.append(yCoordinates, startPos, length);
+        mPointerIds.fill(pointerId, mPointerIds.getLength(), length);
+        mTimes.append(times, startPos, length);
+    }
+
+    /**
+     * Shift to the left by elementCount, discarding elementCount pointers at the start.
+     * @param elementCount how many elements to shift.
+     */
+    @UsedForTesting
+    public void shift(final int elementCount) {
+        mXCoordinates.shift(elementCount);
+        mYCoordinates.shift(elementCount);
+        mPointerIds.shift(elementCount);
+        mTimes.shift(elementCount);
+    }
+
+    public void reset() {
+        final int defaultCapacity = mDefaultCapacity;
+        mXCoordinates.reset(defaultCapacity);
+        mYCoordinates.reset(defaultCapacity);
+        mPointerIds.reset(defaultCapacity);
+        mTimes.reset(defaultCapacity);
+    }
+
+    public int getPointerSize() {
+        return mXCoordinates.getLength();
+    }
+
+    @Nonnull
+    public int[] getXCoordinates() {
+        return mXCoordinates.getPrimitiveArray();
+    }
+
+    @Nonnull
+    public int[] getYCoordinates() {
+        return mYCoordinates.getPrimitiveArray();
+    }
+
+    @Nonnull
+    public int[] getPointerIds() {
+        return mPointerIds.getPrimitiveArray();
+    }
+
+    /**
+     * Gets the time each point was registered, in milliseconds, relative to the first event in the
+     * sequence.
+     * @return The time each point was registered, in milliseconds, relative to the first event in
+     * the sequence.
+     */
+    @Nonnull
+    public int[] getTimes() {
+        return mTimes.getPrimitiveArray();
+    }
+
+    @Override
+    public String toString() {
+        return "size=" + getPointerSize() + " id=" + mPointerIds + " time=" + mTimes
+                + " x=" + mXCoordinates + " y=" + mYCoordinates;
+    }
+}
diff --git a/common/src/com/android/inputmethod/latin/common/LocaleUtils.java b/common/src/com/android/inputmethod/latin/common/LocaleUtils.java
new file mode 100644
index 0000000..d5878c0
--- /dev/null
+++ b/common/src/com/android/inputmethod/latin/common/LocaleUtils.java
@@ -0,0 +1,210 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.android.inputmethod.latin.common;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Locale;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+/**
+ * A class to help with handling Locales in string form.
+ *
+ * This file has the same meaning and features (and shares all of its code) with the one with the
+ * same name in Latin IME. They need to be kept synchronized; for any update/bugfix to
+ * this file, consider also updating/fixing the version in Latin IME.
+ */
+public final class LocaleUtils {
+    private LocaleUtils() {
+        // Intentional empty constructor for utility class.
+    }
+
+    // Locale match level constants.
+    // A higher level of match is guaranteed to have a higher numerical value.
+    // Some room is left within constants to add match cases that may arise necessary
+    // in the future, for example differentiating between the case where the countries
+    // are both present and different, and the case where one of the locales does not
+    // specify the countries. This difference is not needed now.
+
+    // Nothing matches.
+    public static final int LOCALE_NO_MATCH = 0;
+    // The languages matches, but the country are different. Or, the reference locale requires a
+    // country and the tested locale does not have one.
+    public static final int LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER = 3;
+    // The languages and country match, but the variants are different. Or, the reference locale
+    // requires a variant and the tested locale does not have one.
+    public static final int LOCALE_LANGUAGE_AND_COUNTRY_MATCH_VARIANT_DIFFER = 6;
+    // The required locale is null or empty so it will accept anything, and the tested locale
+    // is non-null and non-empty.
+    public static final int LOCALE_ANY_MATCH = 10;
+    // The language matches, and the tested locale specifies a country but the reference locale
+    // does not require one.
+    public static final int LOCALE_LANGUAGE_MATCH = 15;
+    // The language and the country match, and the tested locale specifies a variant but the
+    // reference locale does not require one.
+    public static final int LOCALE_LANGUAGE_AND_COUNTRY_MATCH = 20;
+    // The compared locales are fully identical. This is the best match level.
+    public static final int LOCALE_FULL_MATCH = 30;
+
+    // The level at which a match is "normally" considered a locale match with standard algorithms.
+    // Don't use this directly, use #isMatch to test.
+    private static final int LOCALE_MATCH = LOCALE_ANY_MATCH;
+
+    // Make this match the maximum match level. If this evolves to have more than 2 digits
+    // when written in base 10, also adjust the getMatchLevelSortedString method.
+    private static final int MATCH_LEVEL_MAX = 30;
+
+    /**
+     * Return how well a tested locale matches a reference locale.
+     *
+     * This will check the tested locale against the reference locale and return a measure of how
+     * a well it matches the reference. The general idea is that the tested locale has to match
+     * every specified part of the required locale. A full match occur when they are equal, a
+     * partial match when the tested locale agrees with the reference locale but is more specific,
+     * and a difference when the tested locale does not comply with all requirements from the
+     * reference locale.
+     * In more detail, if the reference locale specifies at least a language and the testedLocale
+     * does not specify one, or specifies a different one, LOCALE_NO_MATCH is returned. If the
+     * reference locale is empty or null, it will match anything - in the form of LOCALE_FULL_MATCH
+     * if the tested locale is empty or null, and LOCALE_ANY_MATCH otherwise. If the reference and
+     * tested locale agree on the language, but not on the country,
+     * LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER is returned if the reference locale specifies a country,
+     * and LOCALE_LANGUAGE_MATCH otherwise.
+     * If they agree on both the language and the country, but not on the variant,
+     * LOCALE_LANGUAGE_AND_COUNTRY_MATCH_VARIANT_DIFFER is returned if the reference locale
+     * specifies a variant, and LOCALE_LANGUAGE_AND_COUNTRY_MATCH otherwise. If everything matches,
+     * LOCALE_FULL_MATCH is returned.
+     * Examples:
+     * en <=> en_US  => LOCALE_LANGUAGE_MATCH
+     * en_US <=> en => LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER
+     * en_US_POSIX <=> en_US_Android  =>  LOCALE_LANGUAGE_AND_COUNTRY_MATCH_VARIANT_DIFFER
+     * en_US <=> en_US_Android => LOCALE_LANGUAGE_AND_COUNTRY_MATCH
+     * sp_US <=> en_US  =>  LOCALE_NO_MATCH
+     * de <=> de  => LOCALE_FULL_MATCH
+     * en_US <=> en_US => LOCALE_FULL_MATCH
+     * "" <=> en_US => LOCALE_ANY_MATCH
+     *
+     * @param referenceLocale the reference locale to test against.
+     * @param testedLocale the locale to test.
+     * @return a constant that measures how well the tested locale matches the reference locale.
+     */
+    public static int getMatchLevel(@Nullable final String referenceLocale,
+            @Nullable final String testedLocale) {
+        if (StringUtils.isEmpty(referenceLocale)) {
+            return StringUtils.isEmpty(testedLocale) ? LOCALE_FULL_MATCH : LOCALE_ANY_MATCH;
+        }
+        if (null == testedLocale) return LOCALE_NO_MATCH;
+        final String[] referenceParams = referenceLocale.split("_", 3);
+        final String[] testedParams = testedLocale.split("_", 3);
+        // By spec of String#split, [0] cannot be null and length cannot be 0.
+        if (!referenceParams[0].equals(testedParams[0])) return LOCALE_NO_MATCH;
+        switch (referenceParams.length) {
+        case 1:
+            return 1 == testedParams.length ? LOCALE_FULL_MATCH : LOCALE_LANGUAGE_MATCH;
+        case 2:
+            if (1 == testedParams.length) return LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER;
+            if (!referenceParams[1].equals(testedParams[1]))
+                return LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER;
+            if (3 == testedParams.length) return LOCALE_LANGUAGE_AND_COUNTRY_MATCH;
+            return LOCALE_FULL_MATCH;
+        case 3:
+            if (1 == testedParams.length) return LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER;
+            if (!referenceParams[1].equals(testedParams[1]))
+                return LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER;
+            if (2 == testedParams.length) return LOCALE_LANGUAGE_AND_COUNTRY_MATCH_VARIANT_DIFFER;
+            if (!referenceParams[2].equals(testedParams[2]))
+                return LOCALE_LANGUAGE_AND_COUNTRY_MATCH_VARIANT_DIFFER;
+            return LOCALE_FULL_MATCH;
+        }
+        // It should be impossible to come here
+        return LOCALE_NO_MATCH;
+    }
+
+    /**
+     * Return a string that represents this match level, with better matches first.
+     *
+     * The strings are sorted in lexicographic order: a better match will always be less than
+     * a worse match when compared together.
+     */
+    public static String getMatchLevelSortedString(final int matchLevel) {
+        // This works because the match levels are 0~99 (actually 0~30)
+        // Ideally this should use a number of digits equals to the 1og10 of the greater matchLevel
+        return String.format(Locale.ROOT, "%02d", MATCH_LEVEL_MAX - matchLevel);
+    }
+
+    /**
+     * Find out whether a match level should be considered a match.
+     *
+     * This method takes a match level as returned by the #getMatchLevel method, and returns whether
+     * it should be considered a match in the usual sense with standard Locale functions.
+     *
+     * @param level the match level, as returned by getMatchLevel.
+     * @return whether this is a match or not.
+     */
+    public static boolean isMatch(final int level) {
+        return LOCALE_MATCH <= level;
+    }
+
+    private static final HashMap<String, Locale> sLocaleCache = new HashMap<>();
+
+    /**
+     * Creates a locale from a string specification.
+     * @param localeString a string specification of a locale, in a format of "ll_cc_variant" where
+     * "ll" is a language code, "cc" is a country code.
+     */
+    @Nonnull
+    public static Locale constructLocaleFromString(@Nonnull final String localeString) {
+        synchronized (sLocaleCache) {
+            if (sLocaleCache.containsKey(localeString)) {
+                return sLocaleCache.get(localeString);
+            }
+            final String[] elements = localeString.split("_", 3);
+            final Locale locale;
+            if (elements.length == 1) {
+                locale = new Locale(elements[0] /* language */);
+            } else if (elements.length == 2) {
+                locale = new Locale(elements[0] /* language */, elements[1] /* country */);
+            } else { // localeParams.length == 3
+                locale = new Locale(elements[0] /* language */, elements[1] /* country */,
+                        elements[2] /* variant */);
+            }
+            sLocaleCache.put(localeString, locale);
+            return locale;
+        }
+    }
+
+    // TODO: Get this information from the framework instead of maintaining here by ourselves.
+    private static final HashSet<String> sRtlLanguageCodes = new HashSet<>();
+    static {
+        // List of known Right-To-Left language codes.
+        sRtlLanguageCodes.add("ar"); // Arabic
+        sRtlLanguageCodes.add("fa"); // Persian
+        sRtlLanguageCodes.add("iw"); // Hebrew
+        sRtlLanguageCodes.add("ku"); // Kurdish
+        sRtlLanguageCodes.add("ps"); // Pashto
+        sRtlLanguageCodes.add("sd"); // Sindhi
+        sRtlLanguageCodes.add("ug"); // Uyghur
+        sRtlLanguageCodes.add("ur"); // Urdu
+        sRtlLanguageCodes.add("yi"); // Yiddish
+    }
+
+    public static boolean isRtlLanguage(@Nonnull final Locale locale) {
+        return sRtlLanguageCodes.contains(locale.getLanguage());
+    }
+}
diff --git a/common/src/com/android/inputmethod/latin/common/NativeSuggestOptions.java b/common/src/com/android/inputmethod/latin/common/NativeSuggestOptions.java
new file mode 100644
index 0000000..d673442
--- /dev/null
+++ b/common/src/com/android/inputmethod/latin/common/NativeSuggestOptions.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.common;
+
+public class NativeSuggestOptions {
+    // Need to update suggest_options.h when you add, remove or reorder options.
+    private static final int IS_GESTURE = 0;
+    private static final int USE_FULL_EDIT_DISTANCE = 1;
+    private static final int BLOCK_OFFENSIVE_WORDS = 2;
+    private static final int SPACE_AWARE_GESTURE_ENABLED = 3;
+    private static final int WEIGHT_FOR_LOCALE_IN_THOUSANDS = 4;
+    private static final int OPTIONS_SIZE = 5;
+
+    private final int[] mOptions;
+
+    public NativeSuggestOptions() {
+        mOptions = new int[OPTIONS_SIZE];
+    }
+
+    public void setIsGesture(final boolean value) {
+        setBooleanOption(IS_GESTURE, value);
+    }
+
+    public void setUseFullEditDistance(final boolean value) {
+        setBooleanOption(USE_FULL_EDIT_DISTANCE, value);
+    }
+
+    public void setBlockOffensiveWords(final boolean value) {
+        setBooleanOption(BLOCK_OFFENSIVE_WORDS, value);
+    }
+
+    public void setWeightForLocale(final float value) {
+        // We're passing this option as a fixed point value, in thousands. This is decoded in
+        // native code by SuggestOptions#weightForLocale().
+        setIntegerOption(WEIGHT_FOR_LOCALE_IN_THOUSANDS, (int) (value * 1000));
+    }
+
+    public int[] getOptions() {
+        return mOptions;
+    }
+
+    private void setBooleanOption(final int key, final boolean value) {
+        mOptions[key] = value ? 1 : 0;
+    }
+
+    private void setIntegerOption(final int key, final int value) {
+        mOptions[key] = value;
+    }
+}
diff --git a/common/src/com/android/inputmethod/latin/common/ResizableIntArray.java b/common/src/com/android/inputmethod/latin/common/ResizableIntArray.java
new file mode 100644
index 0000000..77f5c4c
--- /dev/null
+++ b/common/src/com/android/inputmethod/latin/common/ResizableIntArray.java
@@ -0,0 +1,162 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.common;
+
+import com.android.inputmethod.annotations.UsedForTesting;
+
+import java.util.Arrays;
+
+import javax.annotation.Nonnull;
+
+// TODO: This class is not thread-safe.
+public final class ResizableIntArray {
+    @Nonnull
+    private int[] mArray;
+    private int mLength;
+
+    public ResizableIntArray(final int capacity) {
+        reset(capacity);
+    }
+
+    public int get(final int index) {
+        if (index < mLength) {
+            return mArray[index];
+        }
+        throw new ArrayIndexOutOfBoundsException("length=" + mLength + "; index=" + index);
+    }
+
+    public void addAt(final int index, final int val) {
+        if (index < mLength) {
+            mArray[index] = val;
+        } else {
+            mLength = index;
+            add(val);
+        }
+    }
+
+    public void add(final int val) {
+        final int currentLength = mLength;
+        ensureCapacity(currentLength + 1);
+        mArray[currentLength] = val;
+        mLength = currentLength + 1;
+    }
+
+    /**
+     * Calculate the new capacity of {@code mArray}.
+     * @param minimumCapacity the minimum capacity that the {@code mArray} should have.
+     * @return the new capacity that the {@code mArray} should have. Returns zero when there is no
+     * need to expand {@code mArray}.
+     */
+    private int calculateCapacity(final int minimumCapacity) {
+        final int currentCapcity = mArray.length;
+        if (currentCapcity < minimumCapacity) {
+            final int nextCapacity = currentCapcity * 2;
+            // The following is the same as return Math.max(minimumCapacity, nextCapacity);
+            return minimumCapacity > nextCapacity ? minimumCapacity : nextCapacity;
+        }
+        return 0;
+    }
+
+    private void ensureCapacity(final int minimumCapacity) {
+        final int newCapacity = calculateCapacity(minimumCapacity);
+        if (newCapacity > 0) {
+            // TODO: Implement primitive array pool.
+            mArray = Arrays.copyOf(mArray, newCapacity);
+        }
+    }
+
+    public int getLength() {
+        return mLength;
+    }
+
+    public void setLength(final int newLength) {
+        ensureCapacity(newLength);
+        mLength = newLength;
+    }
+
+    public void reset(final int capacity) {
+        // TODO: Implement primitive array pool.
+        mArray = new int[capacity];
+        mLength = 0;
+    }
+
+    @Nonnull
+    public int[] getPrimitiveArray() {
+        return mArray;
+    }
+
+    public void set(@Nonnull final ResizableIntArray ip) {
+        // TODO: Implement primitive array pool.
+        mArray = ip.mArray;
+        mLength = ip.mLength;
+    }
+
+    public void copy(@Nonnull final ResizableIntArray ip) {
+        final int newCapacity = calculateCapacity(ip.mLength);
+        if (newCapacity > 0) {
+            // TODO: Implement primitive array pool.
+            mArray = new int[newCapacity];
+        }
+        System.arraycopy(ip.mArray, 0, mArray, 0, ip.mLength);
+        mLength = ip.mLength;
+    }
+
+    public void append(@Nonnull final ResizableIntArray src, final int startPos, final int length) {
+        if (length == 0) {
+            return;
+        }
+        final int currentLength = mLength;
+        final int newLength = currentLength + length;
+        ensureCapacity(newLength);
+        System.arraycopy(src.mArray, startPos, mArray, currentLength, length);
+        mLength = newLength;
+    }
+
+    public void fill(final int value, final int startPos, final int length) {
+        if (startPos < 0 || length < 0) {
+            throw new IllegalArgumentException("startPos=" + startPos + "; length=" + length);
+        }
+        final int endPos = startPos + length;
+        ensureCapacity(endPos);
+        Arrays.fill(mArray, startPos, endPos, value);
+        if (mLength < endPos) {
+            mLength = endPos;
+        }
+    }
+
+    /**
+     * Shift to the left by elementCount, discarding elementCount pointers at the start.
+     * @param elementCount how many elements to shift.
+     */
+    @UsedForTesting
+    public void shift(final int elementCount) {
+        System.arraycopy(mArray, elementCount, mArray, 0, mLength - elementCount);
+        mLength -= elementCount;
+    }
+
+    @Override
+    public String toString() {
+        final StringBuilder sb = new StringBuilder();
+        for (int i = 0; i < mLength; i++) {
+            if (i != 0) {
+                sb.append(",");
+            }
+            sb.append(mArray[i]);
+        }
+        return "[" + sb + "]";
+    }
+}
diff --git a/common/src/com/android/inputmethod/latin/common/StringUtils.java b/common/src/com/android/inputmethod/latin/common/StringUtils.java
new file mode 100644
index 0000000..572f0cd
--- /dev/null
+++ b/common/src/com/android/inputmethod/latin/common/StringUtils.java
@@ -0,0 +1,704 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.common;
+
+import com.android.inputmethod.annotations.UsedForTesting;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Locale;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+public final class StringUtils {
+    public static final int CAPITALIZE_NONE = 0;  // No caps, or mixed case
+    public static final int CAPITALIZE_FIRST = 1; // First only
+    public static final int CAPITALIZE_ALL = 2;   // All caps
+
+    @Nonnull
+    private static final String EMPTY_STRING = "";
+
+    private static final char CHAR_LINE_FEED = 0X000A;
+    private static final char CHAR_VERTICAL_TAB = 0X000B;
+    private static final char CHAR_FORM_FEED = 0X000C;
+    private static final char CHAR_CARRIAGE_RETURN = 0X000D;
+    private static final char CHAR_NEXT_LINE = 0X0085;
+    private static final char CHAR_LINE_SEPARATOR = 0X2028;
+    private static final char CHAR_PARAGRAPH_SEPARATOR = 0X2029;
+
+    private StringUtils() {
+        // This utility class is not publicly instantiable.
+    }
+
+    // Taken from android.text.TextUtils. We are extensively using this method in many places,
+    // some of which don't have the android libraries available.
+    /**
+     * Returns true if the string is null or 0-length.
+     * @param str the string to be examined
+     * @return true if str is null or zero length
+     */
+    public static boolean isEmpty(@Nullable final CharSequence str) {
+        return (str == null || str.length() == 0);
+    }
+
+    // Taken from android.text.TextUtils to cut the dependency to the Android framework.
+    /**
+     * Returns a string containing the tokens joined by delimiters.
+     * @param delimiter the delimiter
+     * @param tokens an array objects to be joined. Strings will be formed from
+     *     the objects by calling object.toString().
+     */
+    @Nonnull
+    public static String join(@Nonnull final CharSequence delimiter,
+            @Nonnull final Iterable<?> tokens) {
+        final StringBuilder sb = new StringBuilder();
+        boolean firstTime = true;
+        for (final Object token: tokens) {
+            if (firstTime) {
+                firstTime = false;
+            } else {
+                sb.append(delimiter);
+            }
+            sb.append(token);
+        }
+        return sb.toString();
+    }
+
+    // Taken from android.text.TextUtils to cut the dependency to the Android framework.
+    /**
+     * Returns true if a and b are equal, including if they are both null.
+     * <p><i>Note: In platform versions 1.1 and earlier, this method only worked well if
+     * both the arguments were instances of String.</i></p>
+     * @param a first CharSequence to check
+     * @param b second CharSequence to check
+     * @return true if a and b are equal
+     */
+    public static boolean equals(@Nullable final CharSequence a, @Nullable final CharSequence b) {
+        if (a == b) {
+            return true;
+        }
+        final int length;
+        if (a != null && b != null && (length = a.length()) == b.length()) {
+            if (a instanceof String && b instanceof String) {
+                return a.equals(b);
+            }
+            for (int i = 0; i < length; i++) {
+                if (a.charAt(i) != b.charAt(i)) {
+                    return false;
+                }
+            }
+            return true;
+        }
+        return false;
+    }
+
+    public static int codePointCount(@Nullable final CharSequence text) {
+        if (isEmpty(text)) {
+            return 0;
+        }
+        return Character.codePointCount(text, 0, text.length());
+    }
+
+    @Nonnull
+    public static String newSingleCodePointString(final int codePoint) {
+        if (Character.charCount(codePoint) == 1) {
+            // Optimization: avoid creating a temporary array for characters that are
+            // represented by a single char value
+            return String.valueOf((char) codePoint);
+        }
+        // For surrogate pair
+        return new String(Character.toChars(codePoint));
+    }
+
+    public static boolean containsInArray(@Nonnull final String text,
+            @Nonnull final String[] array) {
+        for (final String element : array) {
+            if (text.equals(element)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Comma-Splittable Text is similar to Comma-Separated Values (CSV) but has much simpler syntax.
+     * Unlike CSV, Comma-Splittable Text has no escaping mechanism, so that the text can't contain
+     * a comma character in it.
+     */
+    @Nonnull
+    private static final String SEPARATOR_FOR_COMMA_SPLITTABLE_TEXT = ",";
+
+    public static boolean containsInCommaSplittableText(@Nonnull final String text,
+            @Nullable final String extraValues) {
+        if (isEmpty(extraValues)) {
+            return false;
+        }
+        return containsInArray(text, extraValues.split(SEPARATOR_FOR_COMMA_SPLITTABLE_TEXT));
+    }
+
+    @Nonnull
+    public static String removeFromCommaSplittableTextIfExists(@Nonnull final String text,
+            @Nullable final String extraValues) {
+        if (isEmpty(extraValues)) {
+            return EMPTY_STRING;
+        }
+        final String[] elements = extraValues.split(SEPARATOR_FOR_COMMA_SPLITTABLE_TEXT);
+        if (!containsInArray(text, elements)) {
+            return extraValues;
+        }
+        final ArrayList<String> result = new ArrayList<>(elements.length - 1);
+        for (final String element : elements) {
+            if (!text.equals(element)) {
+                result.add(element);
+            }
+        }
+        return join(SEPARATOR_FOR_COMMA_SPLITTABLE_TEXT, result);
+    }
+
+    /**
+     * Remove duplicates from an array of strings.
+     *
+     * This method will always keep the first occurrence of all strings at their position
+     * in the array, removing the subsequent ones.
+     */
+    public static void removeDupes(@Nonnull final ArrayList<String> suggestions) {
+        if (suggestions.size() < 2) {
+            return;
+        }
+        int i = 1;
+        // Don't cache suggestions.size(), since we may be removing items
+        while (i < suggestions.size()) {
+            final String cur = suggestions.get(i);
+            // Compare each suggestion with each previous suggestion
+            for (int j = 0; j < i; j++) {
+                final String previous = suggestions.get(j);
+                if (equals(cur, previous)) {
+                    suggestions.remove(i);
+                    i--;
+                    break;
+                }
+            }
+            i++;
+        }
+    }
+
+    @Nonnull
+    public static String capitalizeFirstCodePoint(@Nonnull final String s,
+            @Nonnull final Locale locale) {
+        if (s.length() <= 1) {
+            return s.toUpperCase(getLocaleUsedForToTitleCase(locale));
+        }
+        // Please refer to the comment below in
+        // {@link #capitalizeFirstAndDowncaseRest(String,Locale)} as this has the same shortcomings
+        final int cutoff = s.offsetByCodePoints(0, 1);
+        return s.substring(0, cutoff).toUpperCase(getLocaleUsedForToTitleCase(locale))
+                + s.substring(cutoff);
+    }
+
+    @Nonnull
+    public static String capitalizeFirstAndDowncaseRest(@Nonnull final String s,
+            @Nonnull final Locale locale) {
+        if (s.length() <= 1) {
+            return s.toUpperCase(getLocaleUsedForToTitleCase(locale));
+        }
+        // TODO: fix the bugs below
+        // - It does not work for Serbian, because it fails to account for the "lj" character,
+        // which should be "Lj" in title case and "LJ" in upper case.
+        // - It does not work for Dutch, because it fails to account for the "ij" digraph when it's
+        // written as two separate code points. They are two different characters but both should
+        // be capitalized as "IJ" as if they were a single letter in most words (not all). If the
+        // unicode char for the ligature is used however, it works.
+        final int cutoff = s.offsetByCodePoints(0, 1);
+        return s.substring(0, cutoff).toUpperCase(getLocaleUsedForToTitleCase(locale))
+                + s.substring(cutoff).toLowerCase(locale);
+    }
+
+    @Nonnull
+    public static int[] toCodePointArray(@Nonnull final CharSequence charSequence) {
+        return toCodePointArray(charSequence, 0, charSequence.length());
+    }
+
+    @Nonnull
+    private static final int[] EMPTY_CODEPOINTS = {};
+
+    /**
+     * Converts a range of a string to an array of code points.
+     * @param charSequence the source string.
+     * @param startIndex the start index inside the string in java chars, inclusive.
+     * @param endIndex the end index inside the string in java chars, exclusive.
+     * @return a new array of code points. At most endIndex - startIndex, but possibly less.
+     */
+    @Nonnull
+    public static int[] toCodePointArray(@Nonnull final CharSequence charSequence,
+            final int startIndex, final int endIndex) {
+        final int length = charSequence.length();
+        if (length <= 0) {
+            return EMPTY_CODEPOINTS;
+        }
+        final int[] codePoints =
+                new int[Character.codePointCount(charSequence, startIndex, endIndex)];
+        copyCodePointsAndReturnCodePointCount(codePoints, charSequence, startIndex, endIndex,
+                false /* downCase */);
+        return codePoints;
+    }
+
+    /**
+     * Copies the codepoints in a CharSequence to an int array.
+     *
+     * This method assumes there is enough space in the array to store the code points. The size
+     * can be measured with Character#codePointCount(CharSequence, int, int) before passing to this
+     * method. If the int array is too small, an ArrayIndexOutOfBoundsException will be thrown.
+     * Also, this method makes no effort to be thread-safe. Do not modify the CharSequence while
+     * this method is running, or the behavior is undefined.
+     * This method can optionally downcase code points before copying them, but it pays no attention
+     * to locale while doing so.
+     *
+     * @param destination the int array.
+     * @param charSequence the CharSequence.
+     * @param startIndex the start index inside the string in java chars, inclusive.
+     * @param endIndex the end index inside the string in java chars, exclusive.
+     * @param downCase if this is true, code points will be downcased before being copied.
+     * @return the number of copied code points.
+     */
+    public static int copyCodePointsAndReturnCodePointCount(@Nonnull final int[] destination,
+            @Nonnull final CharSequence charSequence, final int startIndex, final int endIndex,
+            final boolean downCase) {
+        int destIndex = 0;
+        for (int index = startIndex; index < endIndex;
+                index = Character.offsetByCodePoints(charSequence, index, 1)) {
+            final int codePoint = Character.codePointAt(charSequence, index);
+            // TODO: stop using this, as it's not aware of the locale and does not always do
+            // the right thing.
+            destination[destIndex] = downCase ? Character.toLowerCase(codePoint) : codePoint;
+            destIndex++;
+        }
+        return destIndex;
+    }
+
+    @Nonnull
+    public static int[] toSortedCodePointArray(@Nonnull final String string) {
+        final int[] codePoints = toCodePointArray(string);
+        Arrays.sort(codePoints);
+        return codePoints;
+    }
+
+    /**
+     * Construct a String from a code point array
+     *
+     * @param codePoints a code point array that is null terminated when its logical length is
+     * shorter than the array length.
+     * @return a string constructed from the code point array.
+     */
+    @Nonnull
+    public static String getStringFromNullTerminatedCodePointArray(
+            @Nonnull final int[] codePoints) {
+        int stringLength = codePoints.length;
+        for (int i = 0; i < codePoints.length; i++) {
+            if (codePoints[i] == 0) {
+                stringLength = i;
+                break;
+            }
+        }
+        return new String(codePoints, 0 /* offset */, stringLength);
+    }
+
+    // This method assumes the text is not null. For the empty string, it returns CAPITALIZE_NONE.
+    public static int getCapitalizationType(@Nonnull final String text) {
+        // If the first char is not uppercase, then the word is either all lower case or
+        // camel case, and in either case we return CAPITALIZE_NONE.
+        final int len = text.length();
+        int index = 0;
+        for (; index < len; index = text.offsetByCodePoints(index, 1)) {
+            if (Character.isLetter(text.codePointAt(index))) {
+                break;
+            }
+        }
+        if (index == len) return CAPITALIZE_NONE;
+        if (!Character.isUpperCase(text.codePointAt(index))) {
+            return CAPITALIZE_NONE;
+        }
+        int capsCount = 1;
+        int letterCount = 1;
+        for (index = text.offsetByCodePoints(index, 1); index < len;
+                index = text.offsetByCodePoints(index, 1)) {
+            if (1 != capsCount && letterCount != capsCount) break;
+            final int codePoint = text.codePointAt(index);
+            if (Character.isUpperCase(codePoint)) {
+                ++capsCount;
+                ++letterCount;
+            } else if (Character.isLetter(codePoint)) {
+                // We need to discount non-letters since they may not be upper-case, but may
+                // still be part of a word (e.g. single quote or dash, as in "IT'S" or "FULL-TIME")
+                ++letterCount;
+            }
+        }
+        // We know the first char is upper case. So we want to test if either every letter other
+        // than the first is lower case, or if they are all upper case. If the string is exactly
+        // one char long, then we will arrive here with letterCount 1, and this is correct, too.
+        if (1 == capsCount) return CAPITALIZE_FIRST;
+        return (letterCount == capsCount ? CAPITALIZE_ALL : CAPITALIZE_NONE);
+    }
+
+    public static boolean isIdenticalAfterUpcase(@Nonnull final String text) {
+        final int length = text.length();
+        int i = 0;
+        while (i < length) {
+            final int codePoint = text.codePointAt(i);
+            if (Character.isLetter(codePoint) && !Character.isUpperCase(codePoint)) {
+                return false;
+            }
+            i += Character.charCount(codePoint);
+        }
+        return true;
+    }
+
+    public static boolean isIdenticalAfterDowncase(@Nonnull final String text) {
+        final int length = text.length();
+        int i = 0;
+        while (i < length) {
+            final int codePoint = text.codePointAt(i);
+            if (Character.isLetter(codePoint) && !Character.isLowerCase(codePoint)) {
+                return false;
+            }
+            i += Character.charCount(codePoint);
+        }
+        return true;
+    }
+
+    public static boolean isIdenticalAfterCapitalizeEachWord(@Nonnull final String text,
+            @Nonnull final int[] sortedSeparators) {
+        boolean needsCapsNext = true;
+        final int len = text.length();
+        for (int i = 0; i < len; i = text.offsetByCodePoints(i, 1)) {
+            final int codePoint = text.codePointAt(i);
+            if (Character.isLetter(codePoint)) {
+                if ((needsCapsNext && !Character.isUpperCase(codePoint))
+                        || (!needsCapsNext && !Character.isLowerCase(codePoint))) {
+                    return false;
+                }
+            }
+            // We need a capital letter next if this is a separator.
+            needsCapsNext = (Arrays.binarySearch(sortedSeparators, codePoint) >= 0);
+        }
+        return true;
+    }
+
+    // TODO: like capitalizeFirst*, this does not work perfectly for Dutch because of the IJ digraph
+    // which should be capitalized together in *some* cases.
+    @Nonnull
+    public static String capitalizeEachWord(@Nonnull final String text,
+            @Nonnull final int[] sortedSeparators, @Nonnull final Locale locale) {
+        final StringBuilder builder = new StringBuilder();
+        boolean needsCapsNext = true;
+        final int len = text.length();
+        for (int i = 0; i < len; i = text.offsetByCodePoints(i, 1)) {
+            final String nextChar = text.substring(i, text.offsetByCodePoints(i, 1));
+            if (needsCapsNext) {
+                builder.append(nextChar.toUpperCase(locale));
+            } else {
+                builder.append(nextChar.toLowerCase(locale));
+            }
+            // We need a capital letter next if this is a separator.
+            needsCapsNext = (Arrays.binarySearch(sortedSeparators, nextChar.codePointAt(0)) >= 0);
+        }
+        return builder.toString();
+    }
+
+    /**
+     * Approximates whether the text before the cursor looks like a URL.
+     *
+     * This is not foolproof, but it should work well in the practice.
+     * Essentially it walks backward from the cursor until it finds something that's not a letter,
+     * digit, or common URL symbol like underscore. If it hasn't found a period yet, then it
+     * does not look like a URL.
+     * If the text:
+     * - starts with www and contains a period
+     * - starts with a slash preceded by either a slash, whitespace, or start-of-string
+     * Then it looks like a URL and we return true. Otherwise, we return false.
+     *
+     * Note: this method is called quite often, and should be fast.
+     *
+     * TODO: This will return that "abc./def" and ".abc/def" look like URLs to keep down the
+     * code complexity, but ideally it should not. It's acceptable for now.
+     */
+    public static boolean lastPartLooksLikeURL(@Nonnull final CharSequence text) {
+        int i = text.length();
+        if (0 == i) {
+            return false;
+        }
+        int wCount = 0;
+        int slashCount = 0;
+        boolean hasSlash = false;
+        boolean hasPeriod = false;
+        int codePoint = 0;
+        while (i > 0) {
+            codePoint = Character.codePointBefore(text, i);
+            if (codePoint < Constants.CODE_PERIOD || codePoint > 'z') {
+                // Handwavy heuristic to see if that's a URL character. Anything between period
+                // and z. This includes all lower- and upper-case ascii letters, period,
+                // underscore, arrobase, question mark, equal sign. It excludes spaces, exclamation
+                // marks, double quotes...
+                // Anything that's not a URL-like character causes us to break from here and
+                // evaluate normally.
+                break;
+            }
+            if (Constants.CODE_PERIOD == codePoint) {
+                hasPeriod = true;
+            }
+            if (Constants.CODE_SLASH == codePoint) {
+                hasSlash = true;
+                if (2 == ++slashCount) {
+                    return true;
+                }
+            } else {
+                slashCount = 0;
+            }
+            if ('w' == codePoint) {
+                ++wCount;
+            } else {
+                wCount = 0;
+            }
+            i = Character.offsetByCodePoints(text, i, -1);
+        }
+        // End of the text run.
+        // If it starts with www and includes a period, then it looks like a URL.
+        if (wCount >= 3 && hasPeriod) {
+            return true;
+        }
+        // If it starts with a slash, and the code point before is whitespace, it looks like an URL.
+        if (1 == slashCount && (0 == i || Character.isWhitespace(codePoint))) {
+            return true;
+        }
+        // If it has both a period and a slash, it looks like an URL.
+        if (hasPeriod && hasSlash) {
+            return true;
+        }
+        // Otherwise, it doesn't look like an URL.
+        return false;
+    }
+
+    /**
+     * Examines the string and returns whether we're inside a double quote.
+     *
+     * This is used to decide whether we should put an automatic space before or after a double
+     * quote character. If we're inside a quotation, then we want to close it, so we want a space
+     * after and not before. Otherwise, we want to open the quotation, so we want a space before
+     * and not after. Exception: after a digit, we never want a space because the "inch" or
+     * "minutes" use cases is dominant after digits.
+     * In the practice, we determine whether we are in a quotation or not by finding the previous
+     * double quote character, and looking at whether it's followed by whitespace. If so, that
+     * was a closing quotation mark, so we're not inside a double quote. If it's not followed
+     * by whitespace, then it was an opening quotation mark, and we're inside a quotation.
+     *
+     * @param text the text to examine.
+     * @return whether we're inside a double quote.
+     */
+    public static boolean isInsideDoubleQuoteOrAfterDigit(@Nonnull final CharSequence text) {
+        int i = text.length();
+        if (0 == i) {
+            return false;
+        }
+        int codePoint = Character.codePointBefore(text, i);
+        if (Character.isDigit(codePoint)) {
+            return true;
+        }
+        int prevCodePoint = 0;
+        while (i > 0) {
+            codePoint = Character.codePointBefore(text, i);
+            if (Constants.CODE_DOUBLE_QUOTE == codePoint) {
+                // If we see a double quote followed by whitespace, then that
+                // was a closing quote.
+                if (Character.isWhitespace(prevCodePoint)) {
+                    return false;
+                }
+            }
+            if (Character.isWhitespace(codePoint) && Constants.CODE_DOUBLE_QUOTE == prevCodePoint) {
+                // If we see a double quote preceded by whitespace, then that
+                // was an opening quote. No need to continue seeking.
+                return true;
+            }
+            i -= Character.charCount(codePoint);
+            prevCodePoint = codePoint;
+        }
+        // We reached the start of text. If the first char is a double quote, then we're inside
+        // a double quote. Otherwise we're not.
+        return Constants.CODE_DOUBLE_QUOTE == codePoint;
+    }
+
+    public static boolean isEmptyStringOrWhiteSpaces(@Nonnull final String s) {
+        final int N = codePointCount(s);
+        for (int i = 0; i < N; ++i) {
+            if (!Character.isWhitespace(s.codePointAt(i))) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    @UsedForTesting
+    @Nonnull
+    public static String byteArrayToHexString(@Nullable final byte[] bytes) {
+        if (bytes == null || bytes.length == 0) {
+            return EMPTY_STRING;
+        }
+        final StringBuilder sb = new StringBuilder();
+        for (final byte b : bytes) {
+            sb.append(String.format("%02x", b & 0xff));
+        }
+        return sb.toString();
+    }
+
+    /**
+     * Convert hex string to byte array. The string length must be an even number.
+     */
+    @UsedForTesting
+    @Nullable
+    public static byte[] hexStringToByteArray(@Nullable final String hexString) {
+        if (isEmpty(hexString)) {
+            return null;
+        }
+        final int N = hexString.length();
+        if (N % 2 != 0) {
+            throw new NumberFormatException("Input hex string length must be an even number."
+                    + " Length = " + N);
+        }
+        final byte[] bytes = new byte[N / 2];
+        for (int i = 0; i < N; i += 2) {
+            bytes[i / 2] = (byte) ((Character.digit(hexString.charAt(i), 16) << 4)
+                    + Character.digit(hexString.charAt(i + 1), 16));
+        }
+        return bytes;
+    }
+
+    private static final String LANGUAGE_GREEK = "el";
+
+    @Nonnull
+    private static Locale getLocaleUsedForToTitleCase(@Nonnull final Locale locale) {
+        // In Greek locale {@link String#toUpperCase(Locale)} eliminates accents from its result.
+        // In order to get accented upper case letter, {@link Locale#ROOT} should be used.
+        if (LANGUAGE_GREEK.equals(locale.getLanguage())) {
+            return Locale.ROOT;
+        }
+        return locale;
+    }
+
+    @Nullable
+    public static String toTitleCaseOfKeyLabel(@Nullable final String label,
+            @Nonnull final Locale locale) {
+        if (label == null) {
+            return label;
+        }
+        return label.toUpperCase(getLocaleUsedForToTitleCase(locale));
+    }
+
+    public static int toTitleCaseOfKeyCode(final int code, @Nonnull final Locale locale) {
+        if (!Constants.isLetterCode(code)) {
+            return code;
+        }
+        final String label = newSingleCodePointString(code);
+        final String titleCaseLabel = toTitleCaseOfKeyLabel(label, locale);
+        return codePointCount(titleCaseLabel) == 1
+                ? titleCaseLabel.codePointAt(0) : Constants.CODE_UNSPECIFIED;
+    }
+
+    public static int getTrailingSingleQuotesCount(@Nonnull final CharSequence charSequence) {
+        final int lastIndex = charSequence.length() - 1;
+        int i = lastIndex;
+        while (i >= 0 && charSequence.charAt(i) == Constants.CODE_SINGLE_QUOTE) {
+            --i;
+        }
+        return lastIndex - i;
+    }
+
+    @UsedForTesting
+    public static class Stringizer<E> {
+        @Nonnull
+        private static final String[] EMPTY_STRING_ARRAY = new String[0];
+
+        @UsedForTesting
+        @Nonnull
+        public String stringize(@Nullable final E element) {
+            if (element == null) {
+                return "null";
+            }
+            return element.toString();
+        }
+
+        @UsedForTesting
+        @Nonnull
+        public final String join(@Nullable final E[] array) {
+            return joinStringArray(toStringArray(array), null /* delimiter */);
+        }
+
+        @UsedForTesting
+        public final String join(@Nullable final E[] array, @Nullable final String delimiter) {
+            return joinStringArray(toStringArray(array), delimiter);
+        }
+
+        @Nonnull
+        protected String[] toStringArray(@Nullable final E[] array) {
+            if (array == null) {
+                return EMPTY_STRING_ARRAY;
+            }
+            final String[] stringArray = new String[array.length];
+            for (int index = 0; index < array.length; index++) {
+                stringArray[index] = stringize(array[index]);
+            }
+            return stringArray;
+        }
+
+        @Nonnull
+        protected String joinStringArray(@Nonnull final String[] stringArray,
+                @Nullable final String delimiter) {
+            if (delimiter == null) {
+                return Arrays.toString(stringArray);
+            }
+            final StringBuilder sb = new StringBuilder();
+            for (int index = 0; index < stringArray.length; index++) {
+                sb.append(index == 0 ? "[" : delimiter);
+                sb.append(stringArray[index]);
+            }
+            return sb + "]";
+        }
+    }
+
+    /**
+     * Returns whether the last composed word contains line-breaking character (e.g. CR or LF).
+     * @param text the text to be examined.
+     * @return {@code true} if the last composed word contains line-breaking separator.
+     */
+    public static boolean hasLineBreakCharacter(@Nullable final String text) {
+        if (isEmpty(text)) {
+            return false;
+        }
+        for (int i = text.length() - 1; i >= 0; --i) {
+            final char c = text.charAt(i);
+            switch (c) {
+                case CHAR_LINE_FEED:
+                case CHAR_VERTICAL_TAB:
+                case CHAR_FORM_FEED:
+                case CHAR_CARRIAGE_RETURN:
+                case CHAR_NEXT_LINE:
+                case CHAR_LINE_SEPARATOR:
+                case CHAR_PARAGRAPH_SEPARATOR:
+                    return true;
+            }
+        }
+        return false;
+    }
+}
diff --git a/common/src/com/android/inputmethod/latin/common/UnicodeSurrogate.java b/common/src/com/android/inputmethod/latin/common/UnicodeSurrogate.java
new file mode 100644
index 0000000..1097463
--- /dev/null
+++ b/common/src/com/android/inputmethod/latin/common/UnicodeSurrogate.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.inputmethod.latin.common;
+
+/**
+ * Emojis are supplementary characters expressed as a low+high pair. For instance,
+ * the emoji U+1F625 is encoded as "\uD83D\uDE25" in UTF-16, where '\uD83D' is in
+ * the range of [0xd800, 0xdbff] and '\uDE25' is in the range of [0xdc00, 0xdfff].
+ * {@see http://docs.oracle.com/javase/6/docs/api/java/lang/Character.html#unicode}
+ */
+public final class UnicodeSurrogate {
+    private static final char LOW_SURROGATE_MIN = '\uD800';
+    private static final char LOW_SURROGATE_MAX = '\uDBFF';
+    private static final char HIGH_SURROGATE_MIN = '\uDC00';
+    private static final char HIGH_SURROGATE_MAX = '\uDFFF';
+
+    public static boolean isLowSurrogate(final char c) {
+        return c >= LOW_SURROGATE_MIN && c <= LOW_SURROGATE_MAX;
+    }
+
+    public static boolean isHighSurrogate(final char c) {
+        return c >= HIGH_SURROGATE_MIN && c <= HIGH_SURROGATE_MAX;
+    }
+}
diff --git a/dictionaries/de_wordlist.combined.gz b/dictionaries/de_wordlist.combined.gz
index 400718d..92c9554 100644
--- a/dictionaries/de_wordlist.combined.gz
+++ b/dictionaries/de_wordlist.combined.gz
Binary files differ
diff --git a/dictionaries/en_GB_wordlist.combined.gz b/dictionaries/en_GB_wordlist.combined.gz
index bf637e9..217660f 100644
--- a/dictionaries/en_GB_wordlist.combined.gz
+++ b/dictionaries/en_GB_wordlist.combined.gz
Binary files differ
diff --git a/dictionaries/en_US_wordlist.combined.gz b/dictionaries/en_US_wordlist.combined.gz
index 9ea04b1..8aed9c5 100644
--- a/dictionaries/en_US_wordlist.combined.gz
+++ b/dictionaries/en_US_wordlist.combined.gz
Binary files differ
diff --git a/dictionaries/en_wordlist.combined.gz b/dictionaries/en_wordlist.combined.gz
index 87a8633..7fe6618 100644
--- a/dictionaries/en_wordlist.combined.gz
+++ b/dictionaries/en_wordlist.combined.gz
Binary files differ
diff --git a/dictionaries/es_wordlist.combined.gz b/dictionaries/es_wordlist.combined.gz
index 8bb2102..71e7309 100644
--- a/dictionaries/es_wordlist.combined.gz
+++ b/dictionaries/es_wordlist.combined.gz
Binary files differ
diff --git a/dictionaries/fr_wordlist.combined.gz b/dictionaries/fr_wordlist.combined.gz
index 1b9fd73..afe44a6 100644
--- a/dictionaries/fr_wordlist.combined.gz
+++ b/dictionaries/fr_wordlist.combined.gz
Binary files differ
diff --git a/dictionaries/it_wordlist.combined.gz b/dictionaries/it_wordlist.combined.gz
index 5a5cbdc..ed58a12 100644
--- a/dictionaries/it_wordlist.combined.gz
+++ b/dictionaries/it_wordlist.combined.gz
Binary files differ
diff --git a/dictionaries/nl_wordlist.combined.gz b/dictionaries/nl_wordlist.combined.gz
index 37ba8ab..19c3a7e 100644
--- a/dictionaries/nl_wordlist.combined.gz
+++ b/dictionaries/nl_wordlist.combined.gz
Binary files differ
diff --git a/dictionaries/pl_wordlist.combined.gz b/dictionaries/pl_wordlist.combined.gz
index ba71a55..2b84eec 100644
--- a/dictionaries/pl_wordlist.combined.gz
+++ b/dictionaries/pl_wordlist.combined.gz
Binary files differ
diff --git a/dictionaries/pt_BR_wordlist.combined.gz b/dictionaries/pt_BR_wordlist.combined.gz
index 02df1c1..7aac61e 100644
--- a/dictionaries/pt_BR_wordlist.combined.gz
+++ b/dictionaries/pt_BR_wordlist.combined.gz
Binary files differ
diff --git a/dictionaries/pt_PT_wordlist.combined.gz b/dictionaries/pt_PT_wordlist.combined.gz
index bcd50ab..5bf9a60 100644
--- a/dictionaries/pt_PT_wordlist.combined.gz
+++ b/dictionaries/pt_PT_wordlist.combined.gz
Binary files differ
diff --git a/dictionaries/ro_wordlist.combined.gz b/dictionaries/ro_wordlist.combined.gz
index 829abd9..5307855 100644
--- a/dictionaries/ro_wordlist.combined.gz
+++ b/dictionaries/ro_wordlist.combined.gz
Binary files differ
diff --git a/dictionaries/ru_wordlist.combined.gz b/dictionaries/ru_wordlist.combined.gz
index 7794f7b..5e92662 100644
--- a/dictionaries/ru_wordlist.combined.gz
+++ b/dictionaries/ru_wordlist.combined.gz
Binary files differ
diff --git a/dictionaries/sv_wordlist.combined.gz b/dictionaries/sv_wordlist.combined.gz
index b6ebab3..db44ae4 100644
--- a/dictionaries/sv_wordlist.combined.gz
+++ b/dictionaries/sv_wordlist.combined.gz
Binary files differ
diff --git a/dictionaries/tr_wordlist.combined.gz b/dictionaries/tr_wordlist.combined.gz
index 306cea1..d3c8825 100644
--- a/dictionaries/tr_wordlist.combined.gz
+++ b/dictionaries/tr_wordlist.combined.gz
Binary files differ
diff --git a/java-overridable/src/com/android/inputmethod/compat/AppWorkaroundsHelper.java b/java-overridable/src/com/android/inputmethod/compat/AppWorkaroundsHelper.java
index 21535e4..f5e56eb 100644
--- a/java-overridable/src/com/android/inputmethod/compat/AppWorkaroundsHelper.java
+++ b/java-overridable/src/com/android/inputmethod/compat/AppWorkaroundsHelper.java
@@ -18,6 +18,7 @@
 
 import android.content.pm.PackageInfo;
 
+@SuppressWarnings("unused")
 public class AppWorkaroundsHelper {
     private AppWorkaroundsHelper() {
         // This helper class is not publicly instantiable.
diff --git a/java-overridable/src/com/android/inputmethod/dictionarypack/DictionaryPackConstants.java b/java-overridable/src/com/android/inputmethod/dictionarypack/DictionaryPackConstants.java
index df0e3f0..13caea4 100644
--- a/java-overridable/src/com/android/inputmethod/dictionarypack/DictionaryPackConstants.java
+++ b/java-overridable/src/com/android/inputmethod/dictionarypack/DictionaryPackConstants.java
@@ -62,4 +62,11 @@
      */
     public static final String UPDATE_NOW_INTENT_ACTION = DICTIONARY_DOMAIN
             + ".UPDATE_NOW";
+
+    /**
+     * The intent action to inform the dictionary provider to initialize the db
+     * and update now.
+     */
+    public static final String INIT_AND_UPDATE_NOW_INTENT_ACTION = DICTIONARY_DOMAIN
+            + ".INIT_AND_UPDATE_NOW";
 }
diff --git a/java-overridable/src/com/android/inputmethod/dictionarypack/MetadataUriGetter.java b/java-overridable/src/com/android/inputmethod/dictionarypack/MetadataUriGetter.java
index ed81765..d8951df 100644
--- a/java-overridable/src/com/android/inputmethod/dictionarypack/MetadataUriGetter.java
+++ b/java-overridable/src/com/android/inputmethod/dictionarypack/MetadataUriGetter.java
@@ -21,6 +21,7 @@
 /**
  * Helper to get the metadata URI from its base URI and the additional ID, if any.
  */
+@SuppressWarnings("unused")
 public class MetadataUriGetter {
     private MetadataUriGetter() {
         // This helper class is not instantiable.
diff --git a/java-overridable/src/com/android/inputmethod/latin/DictionaryFacilitatorProvider.java b/java-overridable/src/com/android/inputmethod/latin/DictionaryFacilitatorProvider.java
new file mode 100644
index 0000000..a48b41f
--- /dev/null
+++ b/java-overridable/src/com/android/inputmethod/latin/DictionaryFacilitatorProvider.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin;
+
+/**
+ * Factory for instantiating DictionaryFacilitator objects.
+ */
+public class DictionaryFacilitatorProvider {
+    public static DictionaryFacilitator getDictionaryFacilitator(boolean isNeededForSpellChecking) {
+        return new DictionaryFacilitatorImpl();
+    }
+}
diff --git a/java-overridable/src/com/android/inputmethod/latin/SpecialKeyDetector.java b/java-overridable/src/com/android/inputmethod/latin/SpecialKeyDetector.java
deleted file mode 100644
index 27b2f50..0000000
--- a/java-overridable/src/com/android/inputmethod/latin/SpecialKeyDetector.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin;
-
-import android.content.Context;
-import android.view.KeyEvent;
-
-final class SpecialKeyDetector {
-    /**
-     * Special physical key detector
-     * @param context a context of this detector.
-     */
-    public SpecialKeyDetector(final Context context) {
-    }
-
-    /**
-     * Record a down key event.
-     * @param keyEvent a down key event.
-     */
-    public void onKeyDown(final KeyEvent keyEvent) {
-    }
-
-    /**
-     * Record an up key event.
-     * @param keyEvent an up key event.
-     */
-    public void onKeyUp(final KeyEvent keyEvent) {
-    }
-}
diff --git a/java-overridable/src/com/android/inputmethod/latin/accounts/AccountStateChangedListener.java b/java-overridable/src/com/android/inputmethod/latin/accounts/AccountStateChangedListener.java
new file mode 100644
index 0000000..60d420f
--- /dev/null
+++ b/java-overridable/src/com/android/inputmethod/latin/accounts/AccountStateChangedListener.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.accounts;
+
+import android.support.annotation.NonNull;
+
+import javax.annotation.Nullable;
+
+/**
+ * Handles changes to account used to sign in to the keyboard.
+ * e.g. account switching/sign-in/sign-out from the keyboard
+ * user toggling the sync preference.
+ */
+public class AccountStateChangedListener {
+
+    /**
+     * Called when the current account being used in keyboard is signed out.
+     *
+     * @param oldAccount the account that was signed out of.
+     */
+    public static void onAccountSignedOut(@NonNull String oldAccount) {
+    }
+
+    /**
+     * Called when the user signs-in to the keyboard.
+     * This may be called when the user switches accounts to sign in with a different account.
+     *
+     * @param oldAccount the previous account that was being used for sign-in.
+     *        May be null for a fresh sign-in.
+     * @param newAccount the account being used for sign-in.
+     */
+    public static void onAccountSignedIn(@Nullable String oldAccount, @NonNull String newAccount) {
+    }
+
+    /**
+     * Called when the user toggles the sync preference.
+     *
+     * @param account the account being used for sync.
+     * @param syncEnabled indicates whether sync has been enabled or not.
+     */
+    public static void onSyncPreferenceChanged(@Nullable String account, boolean syncEnabled) {
+    }
+
+    /**
+     * Forces an immediate sync to happen.
+     * This should only be used for debugging purposes.
+     *
+     * @param account the account to use for sync.
+     */
+    public static void forceSync(@Nullable String account) {
+    }
+
+    /**
+     * Forces an immediate deletion of user's data.
+     * This should only be used for debugging purposes.
+     *
+     * @param account the account to use for sync.
+     */
+    public static void forceDelete(@Nullable String account) {
+    }
+}
diff --git a/java-overridable/src/com/android/inputmethod/latin/accounts/LoginAccountUtils.java b/java-overridable/src/com/android/inputmethod/latin/accounts/LoginAccountUtils.java
new file mode 100644
index 0000000..dcc64a2
--- /dev/null
+++ b/java-overridable/src/com/android/inputmethod/latin/accounts/LoginAccountUtils.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.accounts;
+
+import android.content.Context;
+
+import javax.annotation.Nonnull;
+
+/**
+ * Utility class for retrieving accounts that may be used for login.
+ */
+public class LoginAccountUtils {
+    /**
+     * This defines the type of account this class deals with.
+     * This account type is used when listing the accounts available on the device for login.
+     */
+    public static final String ACCOUNT_TYPE = "";
+
+    private LoginAccountUtils() {
+        // This utility class is not publicly instantiable.
+    }
+
+    /**
+     * Get the accounts available for login.
+     *
+     * @return an array of accounts. Empty (never null) if no accounts are available for login.
+     */
+    @Nonnull
+    @SuppressWarnings("unused")
+    public static String[] getAccountsForLogin(final Context context) {
+        return new String[0];
+    }
+}
diff --git a/java-overridable/src/com/android/inputmethod/latin/define/DecoderSpecificConstants.java b/java-overridable/src/com/android/inputmethod/latin/define/DecoderSpecificConstants.java
new file mode 100644
index 0000000..7f57ce8
--- /dev/null
+++ b/java-overridable/src/com/android/inputmethod/latin/define/DecoderSpecificConstants.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.inputmethod.latin.define;
+
+/**
+ * Decoder specific constants for LatinIme.
+ */
+public class DecoderSpecificConstants {
+
+    // Must be equal to MAX_WORD_LENGTH in native/jni/src/defines.h
+    public static final int DICTIONARY_MAX_WORD_LENGTH = 48;
+
+    // (MAX_PREV_WORD_COUNT_FOR_N_GRAM + 1)-gram is supported in Java side. Needs to modify
+    // MAX_PREV_WORD_COUNT_FOR_N_GRAM in native/jni/src/defines.h for suggestions.
+    public static final int MAX_PREV_WORD_COUNT_FOR_N_GRAM = 3;
+
+    public static final String DECODER_DICT_SUFFIX = "";
+
+    public static final boolean SHOULD_VERIFY_MAGIC_NUMBER = true;
+    public static final boolean SHOULD_VERIFY_CHECKSUM = true;
+    public static final boolean SHOULD_USE_DICT_VERSION = true;
+    public static final boolean SHOULD_AUTO_CORRECT_USING_NON_WHITE_LISTED_SUGGESTION = false;
+    public static final boolean SHOULD_REMOVE_PREVIOUSLY_REJECTED_SUGGESTION = true;
+}
diff --git a/java-overridable/src/com/android/inputmethod/latin/define/ProductionFlags.java b/java-overridable/src/com/android/inputmethod/latin/define/ProductionFlags.java
index 5ab1264..f31c208 100644
--- a/java-overridable/src/com/android/inputmethod/latin/define/ProductionFlags.java
+++ b/java-overridable/src/com/android/inputmethod/latin/define/ProductionFlags.java
@@ -24,15 +24,8 @@
     public static final boolean IS_HARDWARE_KEYBOARD_SUPPORTED = false;
 
     /**
-     * When true, enable {@link InputMethodService#onUpdateCursorAnchorInfo} callback via
-     * {@link InputConnection#requestUpdateCursorAnchorInfo}. This flag has no effect in API
-     * Level 20 and prior. In general, this callback provides detailed positional information,
-     * even though an explicit support is required by the editor.
-     */
-    public static final boolean ENABLE_CURSOR_ANCHOR_INFO_CALLBACK = true;
-
-    /**
-     * Include all suggestions from all dictionaries in {@link SuggestedWords#mRawSuggestions}.
+     * Include all suggestions from all dictionaries in
+     * {@link com.android.inputmethod.latin.SuggestedWords#mRawSuggestions}.
      */
     public static final boolean INCLUDE_RAW_SUGGESTIONS = false;
 
@@ -40,4 +33,26 @@
      * When false, the metrics logging is not yet ready to be enabled.
      */
     public static final boolean IS_METRICS_LOGGING_SUPPORTED = false;
+
+    /**
+     * When {@code false}, the split keyboard is not yet ready to be enabled.
+     */
+    public static final boolean IS_SPLIT_KEYBOARD_SUPPORTED = true;
+
+    /**
+     * When {@code false}, account sign-in in keyboard is not yet ready to be enabled.
+     */
+    public static final boolean ENABLE_ACCOUNT_SIGN_IN = false;
+
+    /**
+     * When {@code true}, user history dictionary sync feature is ready to be enabled.
+     */
+    public static final boolean ENABLE_USER_HISTORY_DICTIONARY_SYNC =
+            ENABLE_ACCOUNT_SIGN_IN && false;
+
+    /**
+     * When {@code true}, the IME maintains per account {@link UserHistoryDictionary}.
+     */
+    public static final boolean ENABLE_PER_ACCOUNT_USER_HISTORY_DICTIONARY =
+            ENABLE_ACCOUNT_SIGN_IN && false;
 }
diff --git a/java-overridable/src/com/android/inputmethod/latin/personalization/ContextualDictionaryUpdater.java b/java-overridable/src/com/android/inputmethod/latin/personalization/ContextualDictionaryUpdater.java
deleted file mode 100644
index 7dc120e..0000000
--- a/java-overridable/src/com/android/inputmethod/latin/personalization/ContextualDictionaryUpdater.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.personalization;
-
-import android.content.Context;
-
-import com.android.inputmethod.latin.DictionaryFacilitator;
-
-public class ContextualDictionaryUpdater {
-    public ContextualDictionaryUpdater(final Context context,
-            final DictionaryFacilitator dictionaryFacilitator,
-            final Runnable onUpdateRunnable) {
-    }
-
-    public void onLoadSettings(final boolean usePersonalizedDicts) {
-    }
-
-    public void onStartInputView(final String  packageName) {
-    }
-
-    public void onDestroy() {
-    }
-}
diff --git a/java-overridable/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryUpdater.java b/java-overridable/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryUpdater.java
deleted file mode 100644
index c97a0d2..0000000
--- a/java-overridable/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryUpdater.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.personalization;
-
-import java.util.Locale;
-
-import android.content.Context;
-
-import com.android.inputmethod.latin.DictionaryFacilitator;
-
-public class PersonalizationDictionaryUpdater {
-    final Context mContext;
-    final DictionaryFacilitator mDictionaryFacilitator;
-    boolean mDictCleared = false;
-
-    public PersonalizationDictionaryUpdater(final Context context,
-            final DictionaryFacilitator dictionaryFacilitator) {
-        mContext = context;
-        mDictionaryFacilitator = dictionaryFacilitator;
-    }
-
-    public Locale getLocale() {
-        return null;
-    }
-
-    public void onLoadSettings(final boolean usePersonalizedDicts,
-            final boolean isSystemLocaleSameAsLocaleOfAllEnabledSubtypesOfEnabledImes) {
-        if (!mDictCleared) {
-            // Clear and never update the personalization dictionary.
-            PersonalizationHelper.removeAllPersonalizationDictionaries(mContext);
-            mDictionaryFacilitator.clearPersonalizationDictionary();
-            mDictCleared = true;
-        }
-    }
-
-    public void onDestroy() {
-    }
-}
diff --git a/java-overridable/src/com/android/inputmethod/latin/settings/AdditionalFeaturesSettingUtils.java b/java-overridable/src/com/android/inputmethod/latin/settings/AdditionalFeaturesSettingUtils.java
index 6543003..4e8a10b 100644
--- a/java-overridable/src/com/android/inputmethod/latin/settings/AdditionalFeaturesSettingUtils.java
+++ b/java-overridable/src/com/android/inputmethod/latin/settings/AdditionalFeaturesSettingUtils.java
@@ -18,12 +18,18 @@
 
 import android.content.Context;
 import android.content.SharedPreferences;
+import android.preference.PreferenceFragment;
+import android.view.inputmethod.InputMethodSubtype;
 
-import com.android.inputmethodcommon.InputMethodSettingsFragment;
+import com.android.inputmethod.latin.RichInputMethodSubtype;
+import com.android.inputmethod.latin.RichInputMethodManager;
+
+import javax.annotation.Nonnull;
 
 /**
  * Utility class for managing additional features settings.
  */
+@SuppressWarnings("unused")
 public class AdditionalFeaturesSettingUtils {
     public static final int ADDITIONAL_FEATURES_SETTINGS_SIZE = 0;
 
@@ -32,12 +38,20 @@
     }
 
     public static void addAdditionalFeaturesPreferences(
-            final Context context, final InputMethodSettingsFragment settingsFragment) {
+            final Context context, final PreferenceFragment settingsFragment) {
         // do nothing.
     }
 
-    public static void readAdditionalFeaturesPreferencesIntoArray(
+    public static void readAdditionalFeaturesPreferencesIntoArray(final Context context,
             final SharedPreferences prefs, final int[] additionalFeaturesPreferences) {
         // do nothing.
     }
+
+    @Nonnull
+    public static RichInputMethodSubtype createRichInputMethodSubtype(
+            @Nonnull final RichInputMethodManager imm,
+            @Nonnull final InputMethodSubtype subtype,
+            final Context context) {
+        return new RichInputMethodSubtype(subtype);
+    }
 }
diff --git a/java-overridable/src/com/android/inputmethod/latin/touchinputconsumer/GestureConsumer.java b/java-overridable/src/com/android/inputmethod/latin/touchinputconsumer/GestureConsumer.java
new file mode 100644
index 0000000..8291b4f
--- /dev/null
+++ b/java-overridable/src/com/android/inputmethod/latin/touchinputconsumer/GestureConsumer.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.touchinputconsumer;
+
+import android.view.inputmethod.EditorInfo;
+
+import com.android.inputmethod.keyboard.Keyboard;
+import com.android.inputmethod.latin.DictionaryFacilitator;
+import com.android.inputmethod.latin.SuggestedWords;
+import com.android.inputmethod.latin.common.InputPointers;
+import com.android.inputmethod.latin.inputlogic.PrivateCommandPerformer;
+
+import java.util.Locale;
+
+/**
+ * Stub for GestureConsumer.
+ * <br>
+ * The methods of this class should only be called from a single thread, e.g.,
+ * the UI Thread.
+ */
+@SuppressWarnings("unused")
+public class GestureConsumer {
+    public static final GestureConsumer NULL_GESTURE_CONSUMER =
+            new GestureConsumer();
+
+    public static GestureConsumer newInstance(
+            final EditorInfo editorInfo, final PrivateCommandPerformer commandPerformer,
+            final Locale locale, final Keyboard keyboard) {
+        return GestureConsumer.NULL_GESTURE_CONSUMER;
+    }
+
+    private GestureConsumer() {
+    }
+
+    public boolean willConsume() {
+        return false;
+    }
+
+    public void onInit(final Locale locale, final Keyboard keyboard) {
+    }
+
+    public void onGestureStarted(final Locale locale, final Keyboard keyboard) {
+    }
+
+    public void onGestureCanceled() {
+    }
+
+    public void onGestureCompleted(final InputPointers inputPointers) {
+    }
+
+    public void onImeSuggestionsProcessed(final SuggestedWords suggestedWords,
+            final int composingStart, final int composingLength,
+            final DictionaryFacilitator dictionaryFacilitator) {
+    }
+}
diff --git a/java-overridable/src/com/android/inputmethod/latin/utils/DictionaryHeaderUtils.java b/java-overridable/src/com/android/inputmethod/latin/utils/DictionaryHeaderUtils.java
new file mode 100644
index 0000000..5eb613c
--- /dev/null
+++ b/java-overridable/src/com/android/inputmethod/latin/utils/DictionaryHeaderUtils.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.inputmethod.latin.utils;
+
+import com.android.inputmethod.latin.AssetFileAddress;
+import com.android.inputmethod.latin.makedict.DictionaryHeader;
+
+import java.io.File;
+
+public class DictionaryHeaderUtils {
+
+    public static int getContentVersion(AssetFileAddress fileAddress) {
+        final DictionaryHeader header = DictionaryInfoUtils.getDictionaryFileHeaderOrNull(
+                new File(fileAddress.mFilename), fileAddress.mOffset, fileAddress.mLength);
+        return Integer.parseInt(header.mVersionString);
+    }
+}
diff --git a/java-overridable/src/com/android/inputmethod/latin/utils/FeedbackUtils.java b/java-overridable/src/com/android/inputmethod/latin/utils/FeedbackUtils.java
index 0aed41e..67de8ba 100644
--- a/java-overridable/src/com/android/inputmethod/latin/utils/FeedbackUtils.java
+++ b/java-overridable/src/com/android/inputmethod/latin/utils/FeedbackUtils.java
@@ -19,6 +19,7 @@
 import android.content.Context;
 import android.content.Intent;
 
+@SuppressWarnings("unused")
 public class FeedbackUtils {
     public static boolean isHelpAndFeedbackFormSupported() {
         return false;
diff --git a/java-overridable/src/com/android/inputmethod/latin/utils/ManagedProfileUtils.java b/java-overridable/src/com/android/inputmethod/latin/utils/ManagedProfileUtils.java
new file mode 100644
index 0000000..ef1872b
--- /dev/null
+++ b/java-overridable/src/com/android/inputmethod/latin/utils/ManagedProfileUtils.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.utils;
+
+import android.content.Context;
+
+import com.android.inputmethod.annotations.UsedForTesting;
+
+public class ManagedProfileUtils {
+    private static ManagedProfileUtils INSTANCE = new ManagedProfileUtils();
+    private static ManagedProfileUtils sTestInstance;
+
+    private ManagedProfileUtils() {
+        // This utility class is not publicly instantiable.
+    }
+
+    @UsedForTesting
+    public static void setTestInstance(final ManagedProfileUtils testInstance) {
+        sTestInstance = testInstance;
+    }
+
+    public static ManagedProfileUtils getInstance() {
+        return sTestInstance == null ? INSTANCE : sTestInstance;
+    }
+
+    public boolean hasWorkProfile(final Context context) {
+        return false;
+    }
+}
\ No newline at end of file
diff --git a/java-overridable/src/com/android/inputmethod/latin/utils/MetadataFileUriGetter.java b/java-overridable/src/com/android/inputmethod/latin/utils/MetadataFileUriGetter.java
index 9ad319d..97fb17d 100644
--- a/java-overridable/src/com/android/inputmethod/latin/utils/MetadataFileUriGetter.java
+++ b/java-overridable/src/com/android/inputmethod/latin/utils/MetadataFileUriGetter.java
@@ -23,6 +23,7 @@
 /**
  * Helper class to get the metadata URI and the additional ID.
  */
+@SuppressWarnings("unused")
 public class MetadataFileUriGetter {
     private MetadataFileUriGetter() {
         // This helper class is not instantiable.
diff --git a/java-overridable/src/com/android/inputmethod/latin/utils/StatsUtils.java b/java-overridable/src/com/android/inputmethod/latin/utils/StatsUtils.java
index 79c19d0..c069a0f 100644
--- a/java-overridable/src/com/android/inputmethod/latin/utils/StatsUtils.java
+++ b/java-overridable/src/com/android/inputmethod/latin/utils/StatsUtils.java
@@ -16,19 +16,89 @@
 
 package com.android.inputmethod.latin.utils;
 
-import android.content.Context;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.latin.DictionaryFacilitator;
+import com.android.inputmethod.latin.RichInputMethodManager;
+import com.android.inputmethod.latin.SuggestedWords;
 import com.android.inputmethod.latin.settings.SettingsValues;
 
+import javax.annotation.Nullable;
+
+@SuppressWarnings("unused")
 public final class StatsUtils {
-    public static void init(final Context context) {
+
+    private StatsUtils() {
+        // Intentional empty constructor.
     }
 
-    public static void onCreate(final SettingsValues settingsValues) {
+    public static void onCreate(final SettingsValues settingsValues,
+            RichInputMethodManager richImm) {
     }
 
-    public static void onLoadSettings(final SettingsValues settingsValues) {
+    public static void onPickSuggestionManually(final SuggestedWords suggestedWords,
+            final SuggestedWords.SuggestedWordInfo suggestionInfo,
+            final DictionaryFacilitator dictionaryFacilitator) {
     }
 
-    public static void onDestroy() {
+    public static void onBackspaceWordDelete(int wordLength) {
+    }
+
+    public static void onBackspacePressed(int lengthToDelete) {
+    }
+
+    public static void onBackspaceSelectedText(int selectedTextLength) {
+    }
+
+    public static void onDeleteMultiCharInput(int multiCharLength) {
+    }
+
+    public static void onRevertAutoCorrect() {
+    }
+
+    public static void onRevertDoubleSpacePeriod() {
+    }
+
+    public static void onRevertSwapPunctuation() {
+    }
+
+    public static void onFinishInputView() {
+    }
+
+    public static void onCreateInputView() {
+    }
+
+    public static void onStartInputView(int inputType, int displayOrientation, boolean restarting) {
+    }
+
+    public static void onAutoCorrection(final String typedWord, final String autoCorrectionWord,
+            final boolean isBatchInput, final DictionaryFacilitator dictionaryFacilitator,
+            final String prevWordsContext) {
+    }
+
+    public static void onWordCommitUserTyped(final String commitWord, final boolean isBatchMode) {
+    }
+
+    public static void onWordCommitAutoCorrect(final String commitWord, final boolean isBatchMode) {
+    }
+
+    public static void onWordCommitSuggestionPickedManually(
+            final String commitWord, final boolean isBatchMode) {
+    }
+
+    public static void onDoubleSpacePeriod() {
+    }
+
+    public static void onLoadSettings(SettingsValues settingsValues) {
+    }
+
+    public static void onInvalidWordIdentification(final String invalidWord) {
+    }
+
+    public static void onSubtypeChanged(final InputMethodSubtype oldSubtype,
+            final InputMethodSubtype newSubtype) {
+    }
+
+    public static void onSettingsActivity(final String entryPoint) {
     }
 }
diff --git a/java-overridable/src/com/android/inputmethod/latin/utils/StatsUtilsManager.java b/java-overridable/src/com/android/inputmethod/latin/utils/StatsUtilsManager.java
new file mode 100644
index 0000000..cd42f50
--- /dev/null
+++ b/java-overridable/src/com/android/inputmethod/latin/utils/StatsUtilsManager.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+package com.android.inputmethod.latin.utils;
+
+import android.content.Context;
+
+import com.android.inputmethod.latin.DictionaryFacilitator;
+import com.android.inputmethod.latin.settings.SettingsValues;
+
+@SuppressWarnings("unused")
+public class StatsUtilsManager {
+
+    private static final StatsUtilsManager sInstance = new StatsUtilsManager();
+    private static StatsUtilsManager sTestInstance = null;
+
+    /**
+     * @return the singleton instance of {@link StatsUtilsManager}.
+     */
+    public static StatsUtilsManager getInstance() {
+        return sTestInstance != null ? sTestInstance : sInstance;
+    }
+
+    public static void setTestInstance(final StatsUtilsManager testInstance) {
+        sTestInstance = testInstance;
+    }
+
+    public void onCreate(final Context context, final DictionaryFacilitator dictionaryFacilitator) {
+    }
+
+    public void onLoadSettings(final Context context, final SettingsValues settingsValues) {
+    }
+
+    public void onStartInputView() {
+    }
+
+    public void onFinishInputView() {
+    }
+
+    public void onDestroy(final Context context) {
+    }
+}
diff --git a/java/Android.mk b/java/Android.mk
index 0d12c45..b84b347 100644
--- a/java/Android.mk
+++ b/java/Android.mk
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-LOCAL_PATH:= $(call my-dir)
+LOCAL_PATH := $(call my-dir)
 include $(CLEAR_VARS)
 
 LOCAL_MODULE_TAGS := optional
@@ -25,7 +25,8 @@
 
 LOCAL_JNI_SHARED_LIBRARIES := libjni_latinime
 
-LOCAL_STATIC_JAVA_LIBRARIES := android-common inputmethod-common android-support-v4 jsr305
+LOCAL_STATIC_JAVA_LIBRARIES := \
+        android-common inputmethod-common android-support-v4 jsr305 latinime-common
 
 # Do not compress dictionary files to mmap dict data runtime
 LOCAL_AAPT_FLAGS := -0 .dict
diff --git a/java/AndroidManifest.xml b/java/AndroidManifest.xml
index 1797dc9..f58c401 100644
--- a/java/AndroidManifest.xml
+++ b/java/AndroidManifest.xml
@@ -18,17 +18,21 @@
         coreApp="true"
         package="com.android.inputmethod.latin">
 
-    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" />
+    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="21" />
 
     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
     <uses-permission android:name="android.permission.GET_ACCOUNTS" />
     <uses-permission android:name="android.permission.READ_CONTACTS" />
     <uses-permission android:name="android.permission.READ_PROFILE" />
+    <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
+    <uses-permission android:name="android.permission.READ_SYNC_STATS" />
     <uses-permission android:name="android.permission.READ_USER_DICTIONARY" />
     <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
+    <uses-permission android:name="android.permission.USE_CREDENTIALS" />
     <uses-permission android:name="android.permission.VIBRATE" />
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
     <uses-permission android:name="android.permission.WRITE_USER_DICTIONARY" />
 
     <application android:label="@string/english_ime_name"
@@ -36,6 +40,7 @@
             android:supportsRtl="true"
             android:allowBackup="true">
 
+        <!-- Services -->
         <service android:name="LatinIME"
                 android:label="@string/english_ime_name"
                 android:permission="android.permission.BIND_INPUT_METHOD">
@@ -55,6 +60,11 @@
                     android:resource="@xml/spellchecker" />
         </service>
 
+        <service android:name="com.android.inputmethod.dictionarypack.DictionaryService"
+                android:label="@string/dictionary_service_name">
+        </service>
+
+        <!-- Activities -->
         <activity android:name=".setup.SetupActivity"
                 android:theme="@style/platformActivityTheme"
                 android:label="@string/english_ime_name"
@@ -76,19 +86,9 @@
             </intent-filter>
         </activity>
 
-        <receiver android:name="SystemBroadcastReceiver">
-            <intent-filter>
-                <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
-                <action android:name="android.intent.action.BOOT_COMPLETED" />
-                <action android:name="android.intent.action.USER_INITIALIZE" />
-                <action android:name="android.intent.action.LOCALE_CHANGED" />
-            </intent-filter>
-        </receiver>
-
         <activity android:name=".settings.SettingsActivity"
                 android:theme="@style/platformSettingsTheme"
-                android:label="@string/english_ime_settings"
-                android:uiOptions="splitActionBarWhenNarrow">
+                android:label="@string/english_ime_settings">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
             </intent-filter>
@@ -102,45 +102,6 @@
             </intent-filter>
         </activity>
 
-        <receiver android:name="SuggestionSpanPickedNotificationReceiver" android:enabled="true">
-            <intent-filter>
-                <action android:name="android.text.style.SUGGESTION_PICKED" />
-            </intent-filter>
-        </receiver>
-
-        <receiver android:name=".personalization.DictionaryDecayBroadcastReciever"
-            android:exported="false">
-            <intent-filter>
-                <action android:name="com.android.inputmethod.latin.personalization.DICT_DECAY" />
-            </intent-filter>
-        </receiver>
-
-        <receiver android:name=".DictionaryPackInstallBroadcastReceiver" android:exported="false">
-            <intent-filter>
-                <action android:name="com.android.inputmethod.dictionarypack.aosp.UNKNOWN_CLIENT" />
-            </intent-filter>
-        </receiver>
-
-        <provider android:name="com.android.inputmethod.dictionarypack.DictionaryProvider"
-                android:grantUriPermissions="true"
-                android:exported="false"
-                android:authorities="@string/authority"
-                android:multiprocess="false"
-                android:label="@string/dictionary_provider_name">
-        </provider>
-
-        <service android:name="com.android.inputmethod.dictionarypack.DictionaryService"
-                android:label="@string/dictionary_service_name">
-        </service>
-
-        <receiver android:name="com.android.inputmethod.dictionarypack.EventHandler">
-            <intent-filter>
-                <action android:name="android.intent.action.DOWNLOAD_COMPLETE" />
-                <action android:name="android.intent.action.DATE_CHANGED" />
-                <action android:name="com.android.inputmethod.dictionarypack.aosp.UPDATE_NOW" />
-            </intent-filter>
-        </receiver>
-
         <activity android:name="com.android.inputmethod.dictionarypack.DictionarySettingsActivity"
                 android:theme="@style/platformSettingsTheme"
                 android:label="@string/dictionary_settings_title"
@@ -157,5 +118,50 @@
                 <action android:name="android.intent.action.MAIN"/>
             </intent-filter>
         </activity>
+
+        <!-- Unexported activity used for tests. -->
+        <activity android:name=".settings.TestFragmentActivity"
+                android:exported="false" />
+
+        <!-- Broadcast receivers -->
+        <receiver android:name="SystemBroadcastReceiver">
+            <intent-filter>
+                <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
+                <action android:name="android.intent.action.BOOT_COMPLETED" />
+                <action android:name="android.intent.action.USER_INITIALIZE" />
+                <action android:name="android.intent.action.LOCALE_CHANGED" />
+            </intent-filter>
+        </receiver>
+
+        <receiver android:name="DictionaryPackInstallBroadcastReceiver" android:exported="false">
+            <intent-filter>
+                <action android:name="com.android.inputmethod.dictionarypack.aosp.UNKNOWN_CLIENT" />
+            </intent-filter>
+        </receiver>
+
+        <receiver android:name="com.android.inputmethod.dictionarypack.EventHandler">
+            <intent-filter>
+                <action android:name="android.intent.action.DOWNLOAD_COMPLETE" />
+                <action android:name="android.intent.action.DATE_CHANGED" />
+                <action android:name="com.android.inputmethod.dictionarypack.aosp.UPDATE_NOW" />
+                <action android:name="com.android.inputmethod.dictionarypack.aosp.INIT_AND_UPDATE_NOW" />
+            </intent-filter>
+        </receiver>
+
+        <!-- Broadcast receiver for AccountManager#LOGIN_ACCOUNTS_CHANGED_ACTION. -->
+        <receiver android:name=".accounts.AccountsChangedReceiver">
+            <intent-filter>
+                <action android:name="android.accounts.LOGIN_ACCOUNTS_CHANGED" />
+            </intent-filter>
+        </receiver>
+
+        <!-- Content providers -->
+        <provider android:name="com.android.inputmethod.dictionarypack.DictionaryProvider"
+                android:grantUriPermissions="true"
+                android:exported="false"
+                android:authorities="@string/authority"
+                android:multiprocess="false"
+                android:label="@string/dictionary_provider_name">
+        </provider>
     </application>
 </manifest>
diff --git a/java/proguard.flags b/java/proguard.flags
index 35b3ac3..c832a88 100644
--- a/java/proguard.flags
+++ b/java/proguard.flags
@@ -19,6 +19,10 @@
 # to preserve changing those methods' signature.
 -keep class com.android.inputmethod.latin.AssetFileAddress
 -keep class com.android.inputmethod.latin.Dictionary
--keep class com.android.inputmethod.latin.PrevWordsInfo
+-keep class com.android.inputmethod.latin.NgramContext
 -keep class com.android.inputmethod.latin.makedict.ProbabilityInfo
 -keep class com.android.inputmethod.latin.utils.LanguageModelParam
+
+# TODO: remove once used in code.
+-keep class com.android.inputmethod.keyboard.KeyboardLayout { *; }
+
diff --git a/java/res/drawable-hdpi/ic_add_circle_wht_24dp.png b/java/res/drawable-hdpi/ic_add_circle_white_24dp.png
similarity index 100%
rename from java/res/drawable-hdpi/ic_add_circle_wht_24dp.png
rename to java/res/drawable-hdpi/ic_add_circle_white_24dp.png
Binary files differ
diff --git a/java/res/drawable-mdpi/ic_add_circle_wht_24dp.png b/java/res/drawable-mdpi/ic_add_circle_white_24dp.png
similarity index 100%
rename from java/res/drawable-mdpi/ic_add_circle_wht_24dp.png
rename to java/res/drawable-mdpi/ic_add_circle_white_24dp.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/ic_add_circle_wht_24dp.png b/java/res/drawable-xhdpi/ic_add_circle_white_24dp.png
similarity index 100%
rename from java/res/drawable-xhdpi/ic_add_circle_wht_24dp.png
rename to java/res/drawable-xhdpi/ic_add_circle_white_24dp.png
Binary files differ
diff --git a/java/res/drawable-xxhdpi/ic_add_circle_wht_24dp.png b/java/res/drawable-xxhdpi/ic_add_circle_white_24dp.png
similarity index 100%
rename from java/res/drawable-xxhdpi/ic_add_circle_wht_24dp.png
rename to java/res/drawable-xxhdpi/ic_add_circle_white_24dp.png
Binary files differ
diff --git a/java/res/drawable/btn_keyboard_key_ics.xml b/java/res/drawable/btn_keyboard_key_ics.xml
index 0bb098d..bacd5d7 100644
--- a/java/res/drawable/btn_keyboard_key_ics.xml
+++ b/java/res/drawable/btn_keyboard_key_ics.xml
@@ -32,6 +32,8 @@
           android:drawable="@drawable/btn_keyboard_key_normal_off_holo_dark" />
 
     <!-- Empty background keys. -->
+    <item android:state_empty="true" android:state_pressed="true"
+          android:drawable="@drawable/btn_keyboard_key_pressed_ics_light" />
     <item android:state_empty="true"
           android:drawable="@android:color/transparent" />
 
diff --git a/java/res/drawable/btn_keyboard_key_klp.xml b/java/res/drawable/btn_keyboard_key_klp.xml
index 2a202a1..e2f2085 100644
--- a/java/res/drawable/btn_keyboard_key_klp.xml
+++ b/java/res/drawable/btn_keyboard_key_klp.xml
@@ -32,6 +32,8 @@
           android:drawable="@drawable/btn_keyboard_key_normal_off_holo_dark" />
 
     <!-- Empty background keys. -->
+    <item android:state_empty="true" android:state_pressed="true"
+          android:drawable="@drawable/btn_keyboard_key_pressed_klp_light" />
     <item android:state_empty="true"
           android:drawable="@android:color/transparent" />
 
diff --git a/java/res/drawable/btn_keyboard_key_lxx_dark.xml b/java/res/drawable/btn_keyboard_key_lxx_dark.xml
index bb1789a..161592d 100644
--- a/java/res/drawable/btn_keyboard_key_lxx_dark.xml
+++ b/java/res/drawable/btn_keyboard_key_lxx_dark.xml
@@ -32,8 +32,10 @@
           android:drawable="@drawable/btn_keyboard_key_normal_off_lxx_dark" />
 
     <!-- Empty background keys. -->
+    <item android:state_empty="true" android:state_pressed="true"
+          android:drawable="@color/key_background_pressed_lxx_dark" />
     <item android:state_empty="true"
-          android:drawable="@color/key_background_lxx_dark" />
+          android:drawable="@android:color/transparent" />
 
     <!-- Normal keys. -->
     <item android:state_pressed="true"
diff --git a/java/res/drawable/btn_keyboard_key_lxx_light.xml b/java/res/drawable/btn_keyboard_key_lxx_light.xml
index 60fe02d..0154d75 100644
--- a/java/res/drawable/btn_keyboard_key_lxx_light.xml
+++ b/java/res/drawable/btn_keyboard_key_lxx_light.xml
@@ -32,8 +32,10 @@
           android:drawable="@drawable/btn_keyboard_key_normal_off_lxx_light" />
 
     <!-- Empty background keys. -->
+    <item android:state_empty="true" android:state_pressed="true"
+          android:drawable="@color/key_background_pressed_lxx_light" />
     <item android:state_empty="true"
-          android:drawable="@color/key_background_lxx_light" />
+          android:drawable="@android:color/transparent" />
 
     <!-- Normal keys. -->
     <item android:state_pressed="true"
diff --git a/java/res/layout/additional_subtype_dialog.xml b/java/res/layout/additional_subtype_dialog.xml
index b7804f5..2de7d07 100644
--- a/java/res/layout/additional_subtype_dialog.xml
+++ b/java/res/layout/additional_subtype_dialog.xml
@@ -38,7 +38,6 @@
             android:text="@string/subtype_locale" />
         <Spinner
             android:id="@+id/subtype_locale_spinner"
-            android:spinnerMode="dialog"
             android:layout_width="0dp"
             android:layout_weight="70"
             android:layout_height="wrap_content"
@@ -47,7 +46,8 @@
             android:layout_marginTop="8dip"
             android:layout_gravity="fill_horizontal|center_vertical"
             android:gravity="start|left"
-            android:prompt="@string/subtype_locale" />
+            android:prompt="@string/subtype_locale"
+            style="@style/additionalSubtypeSpinnerStyle" />
         </LinearLayout>
     <LinearLayout
         android:orientation="horizontal"
@@ -63,7 +63,6 @@
             android:text="@string/keyboard_layout_set" />
         <Spinner
             android:id="@+id/keyboard_layout_set_spinner"
-            android:spinnerMode="dialog"
             android:layout_width="0dp"
             android:layout_weight="70"
             android:layout_height="wrap_content"
@@ -72,6 +71,7 @@
             android:layout_marginTop="8dip"
             android:layout_gravity="fill_horizontal|center_vertical"
             android:gravity="start|left"
-            android:prompt="@string/keyboard_layout_set" />
+            android:prompt="@string/keyboard_layout_set"
+            style="@style/additionalSubtypeSpinnerStyle" />
     </LinearLayout>
 </LinearLayout>
diff --git a/java/res/layout/input_view.xml b/java/res/layout/input_view.xml
index 46551f6..ae3c19d 100644
--- a/java/res/layout/input_view.xml
+++ b/java/res/layout/input_view.xml
@@ -21,7 +21,8 @@
 <com.android.inputmethod.latin.InputView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content">
+    android:layout_height="wrap_content"
+    style="?attr/inputViewStyle">
     <include
         android:id="@+id/main_keyboard_frame"
         layout="@layout/main_keyboard_frame" />
diff --git a/java/res/layout/suggestions_strip.xml b/java/res/layout/suggestions_strip.xml
index aefdb8ca..47e9a91 100644
--- a/java/res/layout/suggestions_strip.xml
+++ b/java/res/layout/suggestions_strip.xml
@@ -33,30 +33,6 @@
         android:soundEffectsEnabled="false" />
     <!-- Provide audio and haptic feedback by ourselves based on the keyboard settings.
          We just need to ignore the system's audio and haptic feedback settings. -->
-    <LinearLayout
-        android:id="@+id/add_to_dictionary_strip"
-        android:orientation="horizontal"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_marginLeft="@dimen/config_suggestions_strip_horizontal_margin"
-        android:layout_marginRight="@dimen/config_suggestions_strip_horizontal_margin"
-        android:hapticFeedbackEnabled="false"
-        android:soundEffectsEnabled="false">
-        <TextView
-            android:id="@+id/word_to_save"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            style="?attr/suggestionWordStyle" />
-        <include
-            android:id="@+id/word_to_save_divider"
-            layout="@layout/suggestion_divider" />
-        <TextView
-            android:id="@+id/hint_add_to_dictionary"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:gravity="center_vertical|start"
-            style="?attr/suggestionWordStyle" />
-    </LinearLayout>
     <!-- Provide audio and haptic feedback by ourselves based on the keyboard settings.
          We just need to ignore the system's audio and haptic feedback settings. -->
     <LinearLayout
diff --git a/java/res/layout/user_dictionary_add_word_fullscreen.xml b/java/res/layout/user_dictionary_add_word_fullscreen.xml
index 9bcb189..cbdfba6 100644
--- a/java/res/layout/user_dictionary_add_word_fullscreen.xml
+++ b/java/res/layout/user_dictionary_add_word_fullscreen.xml
@@ -44,26 +44,6 @@
         android:columnCount="2" >
 
         <TextView
-            android:id="@+id/user_dictionary_add_shortcut_label"
-            style="?android:attr/textAppearanceSmall"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="start|center_vertical"
-            android:text="@string/user_dict_settings_add_shortcut_option_name" />
-
-        <EditText
-            android:id="@+id/user_dictionary_add_shortcut"
-            android:layout_width="wrap_content"
-            android:layout_gravity="fill_horizontal|center_vertical"
-            android:layout_marginBottom="8dip"
-            android:layout_marginStart="8dip"
-            android:layout_marginTop="8dip"
-            android:hint="@string/user_dict_settings_add_shortcut_hint"
-            android:imeOptions="flagNoFullscreen"
-            android:inputType="textNoSuggestions"
-            android:maxLength="@integer/config_user_dictionary_max_word_length" />
-
-        <TextView
             android:id="@+id/user_dictionary_add_locale_label"
             style="?android:attr/textAppearanceSmall"
             android:layout_width="wrap_content"
diff --git a/java/res/menu/add_style.xml b/java/res/menu/add_style.xml
index d1cab4b..befa3f2 100644
--- a/java/res/menu/add_style.xml
+++ b/java/res/menu/add_style.xml
@@ -20,7 +20,7 @@
 <menu xmlns:android="http://schemas.android.com/apk/res/android">
     <item
         android:id="@+id/action_add_style"
-        android:icon="@drawable/ic_add_circle_wht_24dp"
+        android:icon="@drawable/ic_add_circle_white_24dp"
         android:title="@string/add_style"
         android:showAsAction="always" />
-</menu>
\ No newline at end of file
+</menu>
diff --git a/java/res/raw/main_de.dict b/java/res/raw/main_de.dict
index 3cbf710..c3c2cbe 100644
--- a/java/res/raw/main_de.dict
+++ b/java/res/raw/main_de.dict
Binary files differ
diff --git a/java/res/raw/main_en.dict b/java/res/raw/main_en.dict
index d631d6f..b9e5bc7 100644
--- a/java/res/raw/main_en.dict
+++ b/java/res/raw/main_en.dict
Binary files differ
diff --git a/java/res/raw/main_es.dict b/java/res/raw/main_es.dict
index 8c42fda..076d5aa 100644
--- a/java/res/raw/main_es.dict
+++ b/java/res/raw/main_es.dict
Binary files differ
diff --git a/java/res/raw/main_fr.dict b/java/res/raw/main_fr.dict
index 19532d9..0e86860 100644
--- a/java/res/raw/main_fr.dict
+++ b/java/res/raw/main_fr.dict
Binary files differ
diff --git a/java/res/raw/main_it.dict b/java/res/raw/main_it.dict
index ff11b97..609ef13 100644
--- a/java/res/raw/main_it.dict
+++ b/java/res/raw/main_it.dict
Binary files differ
diff --git a/java/res/raw/main_pt_br.dict b/java/res/raw/main_pt_br.dict
index 9fa5044..c338651 100644
--- a/java/res/raw/main_pt_br.dict
+++ b/java/res/raw/main_pt_br.dict
Binary files differ
diff --git a/java/res/raw/main_ru.dict b/java/res/raw/main_ru.dict
index 9fdaf31..d0af707 100644
--- a/java/res/raw/main_ru.dict
+++ b/java/res/raw/main_ru.dict
Binary files differ
diff --git a/java/res/raw/setup_welcome_image.png b/java/res/raw/setup_welcome_image.png
index 98e7313..b726181 100644
--- a/java/res/raw/setup_welcome_image.png
+++ b/java/res/raw/setup_welcome_image.png
Binary files differ
diff --git a/java/res/raw/setup_welcome_video.mp4 b/java/res/raw/setup_welcome_video.mp4
index 224bf25..09be565 100644
--- a/java/res/raw/setup_welcome_video.mp4
+++ b/java/res/raw/setup_welcome_video.mp4
Binary files differ
diff --git a/java/res/values-af/strings-emoji-descriptions.xml b/java/res/values-af/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..5ed066a
--- /dev/null
+++ b/java/res/values-af/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Kopieregteken"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Geregistreerdteken"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Dubbele uitroepteken"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Uitroep-vraagteken"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Handelsmerkteken"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Inligtingsbron"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Links-regs-pyl"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Op-af-pyl"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Noordwes-pyl"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Noordoos-pyl"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Suidoos-pyl"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Suidwes-pyl"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Pyl na links met haak"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Pyl na regs met haak"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Horlosie"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Uurglas"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Swart dubbeldriehoek wat regs wys"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Swart dubbeldriehoek wat links wys"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Swart dubbeldriehoek wat boontoe wys"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Swart dubbeldriehoek wat ondertoe wys"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Wekker"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Uurglas met vloeiende sand"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Omkringde latynse hoofletter-m"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Klein swart vierkant"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Klein wit vierkant"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Swart driehoek wat regs wys"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Swart driehoek wat links wys"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Wit mediumvierkant"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Swart mediumvierkant"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Wit mediumklein vierkant"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Swart mediumklein vierkant"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Swart son met strale"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Wolk"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Swart telefoon"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Stembus met regmerk"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Sambreel met reëndruppels"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Warm drankie"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Wit wysvinger wat boontoe wys"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Glimlaggende wit gesig"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Ram"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Bul"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Tweeling"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Kreef"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Leeu"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Maagd"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Weegskaal"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Skerpioen"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Boogskutter"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Steenbok"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Waterdraer"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Vis"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Swart skoppens"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Swart klawers"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Swart hartens"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Swart ruite"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Warmbad"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Swart universele herwinningsimbool"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Rolstoelsimbool"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Anker"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Waarskuwingteken"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Hoëspanning-teken"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Wit mediumsirkel"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Swart mediumsirkel"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Sokkerbal"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Bofbal"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Sneeuman sonder sneeu"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Son agter wolk"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Slangdraer"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Geen toegang nie"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Kerk"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Fontein"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Vlag in gat"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Seilboot"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Tent"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Brandstofpomp"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Swart skêr"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Dik wit regmerk"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Vliegtuig"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Koevert"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Vuis omhoog"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Hand omhoog"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Oorwinninghand"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Potlood"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Swart penpunt"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Dik regmerk"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Dik vermenigvuldiging-x"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Vonke"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Asterisk met agt speke"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Swart agtpuntster"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Sneeuvlokkie"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Vonk"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Kruismerk"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Negatiewe kruismerk in vierkant"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Swart vraagtekenornament"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Wit vraagtekenornament"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Wit uitroeptekenornament"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Dik uitroeptekensimbool"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Dik swart hart"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Dik plusteken"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Dik minusteken"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Dik deelteken"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Swart pyl na regs"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Krullus"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Dubbelkrullus"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Pyl wat na regs wys en dan opwaarts krul"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Pyl wat na regs wys en dan afwaarts krul"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Swart pyl na links"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Swart pyl na bo"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Swart pyl na onder"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Groot swart vierkant"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Groot wit vierkant"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Wit mediumster"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Dik groot sirkel"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Golfstrepie"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Deelwisselingteken"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Omkringde ideogram gelukwensing"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Omkringde ideogram geheim"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Mahjong-teël rooi draak"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Speelkaart swart Piet"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Bloedgroep A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Bloedgroep B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Bloedgroep O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Parkeerterrein"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Bloedgroep AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"CL in vierkant"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Koel in vierkant"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Vry in vierkant"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"ID in vierkant"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Nuut in vierkant"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"N G in vierkant"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"OK in vierkant"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"SOS in vierkant"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Op met uitroepteken in vierkant"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"vs in vierkant"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Katakana hier in vierkant"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Katakana diens in vierkant"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Ideogram kosteloos in vierkant"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Ideogram gereserveerde sitplek in vierkant"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Ideogram prohibisie in vierkant"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Ideogram vakature in vierkant"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Ideogram aanvaarding in vierkant"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Ideogram volle okkupasie in vierkant"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Ideogram betaal in vierkant"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Ideogram maandeliks in vierkant"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Ideogram aansoek in vierkant"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Ideogram afslag in vierkant"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Ideogram sakedoenend in vierkant"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Omkringde ideogram voordeel"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Omkringde ideogram aanvaar"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Sikloon"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Mistig"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Toe sambreel"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Nag met sterre"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Sonsopkoms oor berge"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Sonsopkoms"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Stadsgesig teen skemer"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Sonsondergang oor geboue"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Reënboog"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Brug in die nag"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Watergolf"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Vulkaan"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Melkweg"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Aardbol europa-afrika"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Aardbol amerikas"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Aardbol asië-australië"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Aardbol met meridiane"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Simbool vir nuwemaan"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Simbool vir wassende sekelmaan"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Simbool vir eerstekwartier-maan"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Simbool vir wassende bolmaan"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Simbool vir volmaan"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Simbool vir afnemende bolmaan"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Simbool vir laastekwartier-maan"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Simbool vir afnemende sekelmaan"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Sekelmaan"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Nuwemaan met gesig"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Eerstekwartier-maan met gesig"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Laastekwartier-maan met gesig"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Volmaan met gesig"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Son met gesig"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Gloeiende ster"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Verskietende ster"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Kastaiing"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Saailing"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Immergroen boom"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Bladwisselende boom"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palmboom"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Kaktus"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulp"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Kersiebloeisel"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Roos"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Hibiskus"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Sonneblom"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Bloeisel"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Mieliekop"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Rysaar"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Krui"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Vierklawer"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Esdoringblaar"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Gevalde blaar"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Blaar wat in die wind fladder"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Sampioen"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Tamatie"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Eiervrug"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Druiwe"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Spanspek"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Waatlemoen"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Nartjie"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Suurlemoen"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Piesang"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Pynappel"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Rooi appel"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Groen appel"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Peer"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Perske"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Kersies"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Aarbei"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburger"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Stuk pizza"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Vleis op been"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Pluimveeboudjie"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Rysbeskuitjie"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Rysbal"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Gekookte rys"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Kerrie en rys"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Stomende bak"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Spaghetti"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Brood"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Aartappelskyfies"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Geroosterde patat"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Soesji"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Gebraaide garnaal"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Viskoekie met draaikolkpatroon"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Sagte roomys"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Ysskaafsels"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Roomys"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Oliebol"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Koekie"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Staaf sjokolade"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Lekkergoed"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lollipop"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Vla"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Heuningpot"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Broskoek"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Bento-bak"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Pot kos"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Kokery"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Mes en vurk"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Teekoppie sonder handvatsel"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Sake-bottel en -koppie"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Wynglas"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Skemerkelkieglas"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Tropiese drankie"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Bierbeker"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Klinkende bierbekers"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Bababottel"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Strikkie"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Toegedraaide geskenk"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Verjaardagkoek"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Chinese lantern"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Kersboom"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Kersvader"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Vuurwerk"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Vonkstok"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Ballon"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Partytjieklapper"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Konfettibal"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Tanabata-boom"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Gekruisde vlae"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Denneversiering"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Japannese poppe"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Karpwindkous"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Windklokkie"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Maankykseremonie"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Skoolsak"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Gradeplegtigheidmus"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Mallemeuleperd"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Ferriswiel"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Tuimeltrein"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Visstok en vis"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Mikrofoon"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Rolprentkamera"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Bioskoop"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Oorfoon"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Skilderpalet"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Pluiskeil"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Sirkustent"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Kaartjie"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Klapbord"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Uitvoerende kunste"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Videospeletjie"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Kolskoot"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Muntoutomaat"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Biljart"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Dobbelsteen"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Kegelspel"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Blomspeelkaarte"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Musieknoot"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Verskeie musieknote"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saksofoon"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Kitaar"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Klawerbord"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Trompet"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Viool"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Partituur"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Drafhemp met lyfband"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Tennisraket en bal"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Ski en ski-stewel"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Basketbal en ring"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Geruite vlag"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Sneeuplankryer"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Hardloper"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Branderplankryer"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Trofee"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Perdewedrenne"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Amerikaanse voetbal"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Rugbyvoetbal"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Swemmer"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Huisbou"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Huis met tuin"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Kantoorgebou"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Japannese poskantoor"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Europese poskantoor"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Hospitaal"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Bank"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Kitsbank"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Hotel"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Liefdeshotel"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Geriefswinkel"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Skool"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Afdelingswinkel"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Fabriek"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Izakaja-lantern"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Japannese kasteel"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Europese kasteel"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Rot"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Muis"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Os"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Waterbuffel"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Koei"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Luiperd"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Haas"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Kat"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Draak"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Krokodil"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Walvis"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Slak"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Slang"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Perd"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Ram"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Bok"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Skaap"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Aap"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Haan"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Hoender"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Hond"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Vark"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Varkbeer"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Olifant"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Seekat"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Spiraalskulp"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Gogga"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Mier"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Heuningby"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Skilpadbesie"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Vis"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Tropiese vis"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Blaasoppie"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Skilpad"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Kuiken wat uitbroei"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Babakuiken"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Babakuiken wat vorentoe kyk"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Voël"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Pikkewyn"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Poedel"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Dromedaris"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Tweebultkameel"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Dolfyn"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Muisgesig"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Koeigesig"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Tiergesig"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Haasgesig"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Katgesig"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Draakgesig"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Spuitende walvis"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Perdgesig"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Aapgesig"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Hondgesig"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Varkgesig"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Paddagesig"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Hamstergesig"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Wolfgesig"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Beergesig"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Pandagesig"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Varksnoet"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Pootafdrukke"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Oë"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Oor"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Neus"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Mond"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Tong"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Wit handrugkant met wysvinger wat boontoe wys"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Wit handrugkant met wysvinger wat ondertoe wys"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Wit handrugkant met wysvinger wat na links wys"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Wit handrugkant met wysvinger wat na regs wys"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Vuishandteken"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Teken van wuifende hand"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"OK-handteken"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Teken van duime op"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Teken van duime af"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Teken van klappende hande"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Teken van oop hande"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Kroon"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Vrouehoed"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Bril"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Das"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"T-hemp"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Jeans"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Rok"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Vroueklere"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Beursie"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Handsak"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Sakkie"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Manskoen"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Hardloopskoen"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Hoëhakskoen"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Vrouesandaal"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Vrouestewel"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Voetspore"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Silhoeët van borsbeeld"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Silhoeët van borsbeelde"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Seun"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Meisie"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Man"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Vrou"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Gesin"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Man en vrou wat hande vashou"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Twee mans wat hande vashou"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Twee vroue wat hande vashou"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Polisiebeampte"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Vrou met haasore"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Bruid met sluier"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Persoon met blonde hare"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Man met gua pi mao"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Man met tulband"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Ouer man"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Ouer vrou"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Baba"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Konstruksiewerker"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Prinses"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Japannese mensvreter"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Japannese gnoom"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Spook"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Baba-engel"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Buiteruimtelike wese"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Ruimtemonster"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Duiwel"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Skedel"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Inligtingtoonbankpersoon"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Gardesoldaat"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Danser"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Lipstiffie"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Naelpolitoer"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Gesigmassering"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Haarsny"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Barbierpaal"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Inspuiting"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Pil"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Soenmerk"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Liefdesbrief"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Ring"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Edelsteen"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Soen"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Bos blomme"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Paartjie met hart"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Troue"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Kloppende hart"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Gebroke hart"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Twee harte"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Sprankelende hart"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Groeiende hart"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Hart met pyl"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Blou hart"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Groen hart"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Geel hart"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Pers hart"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Hart met strik"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Draaiende harte"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Hartversiering"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Diamantvorm met kol in"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Elektriese gloeilamp"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Woedesimbool"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bom"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Slaapsimbool"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Botsingsimbool"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Simbool vir sweet wat spat"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Druppeltjie"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Hardloopsimbool"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Hoop poef"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Gebulte boarmspier"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Duiseligsimbool"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Praatborrel"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Dinkborrel"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Wit blom"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Simbool van honderd punte"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Geldsak"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Valutaomskakeling"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Dik dollarteken"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Kredietkaart"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Banknoot met jenteken"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Banknoot met dollarteken"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Banknoot met euroteken"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Banknoot met pondteken"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Geld met vlerke"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Grafiek met stygtendens en jenteken"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Sitplek"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Persoonlike rekenaar"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Aktetas"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Miniskyf"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Disket"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Optiese skyf"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Lêergids"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Oop lêergids"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Bladsy met krul"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Bladsy met die regte kant na bo"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Kalender"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Afskeurkalender"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Kaartindeks"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Grafiek met stygtendens"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Grafiek met daaltendens"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Staafgrafiek"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Knyperbord"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Duimspyker"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Ronde duimspyker"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Skuifspeld"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Reguit liniaal"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Driekantliniaal"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Boekmerkoortjies"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Lêer"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Notaboek"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Notaboek met dekoratiewe omslag"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Geslote boek"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Oop boek"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Groen boek"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Blou boek"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Oranje boek"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Boeke"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Naambalkie"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Boekrol"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Memo"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Telefoonhoorstuk"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Roepradio"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Faksmasjien"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Satellietantenna"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Afkondigingluidspreker"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Juigende megafoon"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Uitkassielaai"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Inkassielaai"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Pakkie"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"E-possimbool"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Inkomende koevert"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Koevert met pyl na onder bo-op"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Geslote posbus met vlag wat laat sak is"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Geslote posbus met geligte vlag"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Oop posbus met geligte vlag"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Oop posbus met vlag wat laat sak is"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Posbus"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Poshoring"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Koerant"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Selfoon"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Selfoon met pyl na regs aan die linkerkant"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Vibrasiemodus"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Selfoon af"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Geen selfone nie"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Antenna met stawe"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Kamera"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Videokamera"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Televisie"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Radio"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Videokasset"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Gevlegte pyle na regs"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Kloksgewyse oopsirkel-pyle na regs en na links"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Kloksgewyse oopsirkel-pyle na regs en na links met omkringde een bo-oor"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Kloksgewyse oopsirkel-pyle na onder en na bo"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Teenkloksgewyse oopsirkel-pyle na onder en na bo"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Simbool vir min helderheid"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Simbool vir baie helderheid"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Luidspreker met kanselleerstrook"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Luidspreker"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Luidspreker met een klankgolf"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Luidspreker met drie klankgolwe"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Battery"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Elektriese prop"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Vergrootglas wat na links wys"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Vergrootglas wat na regs wys"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Slot met vulpen"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Geslote slot met sleutel"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Sleutel"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Slot"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Oop slot"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Klok"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Klok met kanselleerstrook"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Boekmerk"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Skakelsimbool"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Klinkknoppie"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Terug met pyl na links bo-op"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"Einde met pyl na links bo-op"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"Aan met uitroepteken met links-regs-pyl bo-op"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Binnekort met pyl na regs bo-op"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Bokant met pyl na bo bo-op"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Simbool vir niemand onder agtien"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Sleuteldoppie tien"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Invoersimbool vir latynse hoofletters"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Invoersimbool vir latynse kleinletters"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Invoersimbool vir syfers"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Invoersimbool vir simbole"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Invoersimbool vir latynse letters"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Brand"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Elektriese flitslig"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Moersleutel"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Hamer"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Bout en moer"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Hotsjo"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Pistool"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Mikroskoop"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Teleskoop"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Kristalbal"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Sespuntster met middelkol"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Japannese simbool vir beginner"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Drietandvurkembleem"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Swartvierkant-knoppie"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Witvierkant-knoppie"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Groot rooi sirkel"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Groot blou sirkel"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Groot oranje diamant"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Groot blou diamant"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Klein oranje diamant"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Klein blou diamant"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Rooi driehoek wat na bo wys"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Rooi driehoek wat na onder wys"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Klein rooi driehoek wat na bo wys"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Klein rooi driehoek wat na onder wys"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Wyserplaat eenuur"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Wyserplaat twee-uur"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Wyserplaat drie-uur"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Wyserplaat vieruur"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Wyserplaat vyfuur"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Wyserplaat sesuur"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Wyserplaat sewe-uur"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Wyserplaat agtuur"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Wyserplaat nege-uur"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Wyserplaat tienuur"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Wyserplaat elfuur"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Wyserplaat twaalfuur"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Wyserplaat halftwee"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Wyserplaat halfdrie"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Wyserplaat halfvier"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Wyserplaat halfvyf"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Wyserplaat halfses"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Wyserplaat halfsewe"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Wyserplaat halfagt"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Wyserplaat halfnege"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Wyserplaat halftien"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Wyserplaat halfelf"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Wyserplaat halftwaalf"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Wyserplaat halfeen"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Foedjiberg"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Tokio-toring"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Vryheidstandbeeld"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Silhoeët van japan"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moai"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Grinnikende gesig"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Grinnikende gesig met glimlaggende oë"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Gesig met trane van vreugde"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Glimlaggende gesig met oop mond"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Glimlaggende gesig met oop mond en glimlaggende oë"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Glimlaggende gesig met oop mond en koue sweet"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Glimlaggende gesig met oop mond en oë styf toe"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Glimlaggende gesig met stralekrans"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Glimlaggende gesig met horings"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Knipooggesig"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Glimlaggende gesig met glimlaggende oë"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Gesig wat heerlike kos geniet"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Verligte gesig"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Glimlaggende gesig met hartvormige oë"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Glimlaggende gesig met sonbril"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Grynslaggesig"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Neutrale gesig"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Uitdrukkinglose gesig"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Ontevrede gesig"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Gesig met koue sweet"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Peinsende gesig"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Verwarde gesig"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Oorblufte gesig"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Soenende gesig"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Gesig wat \'n soentjie stuur"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Soenende gesig met glimlaggende oë"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Soenende gesig met geslote oë"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Gesig met uitsteektong"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Gesig met uitsteektong en knipoog"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Gesig met uitsteektong en oë styf toe"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Teleurgestelde gesig"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Bekommerde gesig"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Woedende gesig"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Pruilende gesig"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Huilende gesig"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Volhardende gesig"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Gesig met triomfantelike voorkoms"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Teleurgestelde maar verligte gesig"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Fronsende gesig met oop mond"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Beangste gesig"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Vreesbevange gesig"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Vermoeide gesig"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Vaak gesig"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Moeë gesig"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Skewebekgesig"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Gesig wat hard huil"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Gesig met oop mond"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Stil gesig"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Gesig met oop mond en koue sweet"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Gesig wat vreesbevange skree"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Verstomde gesig"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Blosende gesig"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Slapende gesig"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Dronk gesig"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Gesig met oop mond"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Gesig met mediese masker"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Grinnikende katgesig met glimlaggende oë"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Katgesig met trane van vreugde"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Glimlaggende katgesig met oop mond"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Glimlaggende katgesig met hartvormige oë"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Katgesig met wrange glimlag"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Soenende katgesig met geslote oë"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Pruilende katgesig"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Huilende katgesig"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Vermoeide katgesig"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Gesig met nikswerdgebaar"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Gesig met OK-gebaar"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Persoon wat diep buig"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Niks-verkeerd-sien-aap"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Niks-verkeerd-hoor-aap"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Niks-verkeerd-sê-aap"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Gelukkige persoon wat een hand lig"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Persoon wat albei hande ter viering omhoog hou"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Persoon wat frons"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Persoon met pruilende gesig"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Persoon met gevoude hande"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Vuurpyl"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Helikopter"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Stoomlokomotief"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Treintrok"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Hoëspoedtrein"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Hoëspoedtrein met koeëlneus"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Trein"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Moltrein"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Smalspoor"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Stasie"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Trem"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Tremwa"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Bus"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Aankomende bus"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Spoorlose trem"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Bushalte"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Minibus"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Ambulans"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Brandweerwa"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Polisiemotor"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Aankomende polisiemotor"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taxi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Aankomende taxi"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Motor"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Aankomende motor"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Ontspanningsvoertuig"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Afleweringswa"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Gelede vragmotor"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Trekker"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Eenspoor"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Bergtreinspoor"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Hangspoor"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Bergkabelspoor"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Kabelkar"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Skip"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Roeiboot"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Snelboot"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Horisontale verkeerslig"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Vertikale verkeerslig"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Konstruksieteken"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Polisiemotor se draailig"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Driehoekige vlag op paal"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Deur"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Geen-toegang-teken"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Rooksimbool"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Simbool vir moenie rook nie"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Simbool vir sit rommel op sy plek"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Simbool vir moenie mors nie"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Simbool vir drinkbare water"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Simbool vir ondrinkbare water"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Fiets"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Geen fietse nie"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Fietsryer"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Bergfietsryer"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Voetganger"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Geen voetgangers nie"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Kinders stap oor"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Mansimbool"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Vrousimbool"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Openbare toilet"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Babasimbool"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Toilet"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Waterkloset"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Stort"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Bad"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Badkuip"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Paspoortbeheer"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Doeane"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Bagasieband"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Bagasiedepot"</string>
+</resources>
diff --git a/java/res/values-af/strings-talkback-descriptions.xml b/java/res/values-af/strings-talkback-descriptions.xml
index 3b6ba0a..c938996 100644
--- a/java/res/values-af/strings-talkback-descriptions.xml
+++ b/java/res/values-af/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Geen teks is ingevoer nie"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> korrigeer <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> na <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> voer outokorrigering uit"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Geen voorstel nie"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Onbekende karakter"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Meer simbole"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Hoofletter-I, kol bo"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Onbekende simbool"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Onbekende emosiekoon"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Verveelde gesig"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Verleë gesig"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Gesig met sonbrille"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Verbaasde gesig"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Soenende gesig"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Fronsende gesig"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Alternatiewe karakters is beskikbaar"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Alternatiewe karakters is toegemaak"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Alternatiewe voorstelle is beskikbaar"</string>
diff --git a/java/res/values-af/strings.xml b/java/res/values-af/strings.xml
index b7a27eb..bc45714 100644
--- a/java/res/values-af/strings.xml
+++ b/java/res/values-af/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibreer met sleuteldruk"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Klank met sleuteldruk"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Opspring met sleuteldruk"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Voorkeure"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Rekeninge en privaatheid"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Voorkoms en uitlegte"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Gebaarinvoer"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Tekskorrigering"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Gevorderd"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Aktiveer verdeelde sleutelbord"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google-sleutelbordsinkronisering"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Sinkronisering is aangeskakel"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Sinkroniseer jou persoonlike woordeboek oor toestelle heen"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Sinkroniseer nou"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Vee wolkdata uit"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Vee jou gesinkroniseerde data van Google af uit"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Jou gesinkroniseerde data sal uit die wolk uitgevee word. Seker?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Vee uit"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Kanselleer"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Jou persoonlike woordeboek sal gesinkroniseer en in Google-bedieners gerugsteun word. Die statistiese inligting van woordfrekwensie sal dalk ingesamel word om ons produkte te help verbeter. Die insameling en gebruik van al die inligting sal voldoen aan "<a href="https://www.google.com/policies/privacy">"Google se privaatheidsbeleid"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Voeg \'n Google-rekening by die toestel om hierdie kenmerk te aktiveer"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Skakel oor na die ander invoermetodes"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Taal-wisselsleutel dek ook ander invoermetodes"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Taal-wisselsleutel"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Wys wanneer meervoudige invoertale geaktiveer is"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Wys glyverklikker"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Vertoon visuele aanduiding terwyl gly van Shift- of Symbol-sleutels af"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Sleutelopspringer-wagperiode"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Geen wagperiode nie"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Verstek"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Hoofwoordeboek"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Wys voorstelle vir korrigering"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Wys voorgestelde woorde terwyl jy tik"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Wys altyd"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Wys in portretmodus"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Versteek altyd"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Blokkeer aanstootlike woorde"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Moenie potensieel aanstootlike woorde voorstel nie"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Outokorrigering"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Steminvoerinstellings"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Geen steminvoermetodes geaktiveer nie. Gaan taal- en invoerinstellings na."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Stel invoermetodes op"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Invoertale"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Stuur terugvoer"</string>
-    <string name="select_language" msgid="3693815588777926848">"Invoertale"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Tale"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Hulp en terugvoering"</string>
+    <string name="select_language" msgid="5709487854987078367">"Tale"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Raak weer om te stoor"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Raak hier om te stoor"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Woordeboek beskikbaar"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Sleutelbordtema"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Wissel rekeninge"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Geen rekeninge gekies nie"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Gebruik tans <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Kanselleer"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Meld af"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Kies \'n rekening om te gebruik"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Engels (VK)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Engels (VS)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Spaans (VS)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Serwies (Latyns)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Engels (VK) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Engels (VS) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Spaans (VS) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Serwies (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Tradisioneel)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Cyrillies)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Latyns)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Kompak)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Geen taal nie (alfabet)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabet (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabet (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabet (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabet (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emosiekone"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Sleutelbordtema"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Gepasmaakte invoerstyle"</string>
     <string name="add_style" msgid="6163126614514489951">"Voeg styl by"</string>
     <string name="add" msgid="8299699805688017798">"Voeg by"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Aktiveer"</string>
     <string name="not_now" msgid="6172462888202790482">"Nie nou nie"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Dieselfde invoerstyl bestaan ​​reeds: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Vertraging van sleutellangdruk"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Sleuteldruk se vibrasie-tydsduur"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Sleuteldruk se klankvolume"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Lees eksterne woordeboeklêer"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Geen woordeboeklêers in die aflaaiselsvouer nie"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Kies \'n woordeboeklêer om te installeer"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Moet hierdie lêer regtig vir <xliff:g id="LANGUAGE_NAME">%s</xliff:g> geïnstalleer word?"</string>
-    <string name="error" msgid="8940763624668513648">"Daar was \'n fout"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Vertraging van sleutellangdruk"</string>
     <string name="button_default" msgid="3988017840431881491">"Verstek"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Welkom by <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"met Gebaar-tik"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Nou kan jy in al jou gunstelingprogramme tik met <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Stel bykomende tale op"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Klaar"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Wys program-ikoon"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Wys program-ikoon in die lanseerpoort"</string>
     <string name="app_name" msgid="6320102637491234792">"Woordeboekverskaffer"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Woordeboekverskaffer"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Woordeboek-diens"</string>
diff --git a/java/res/values-am/strings-emoji-descriptions.xml b/java/res/values-am/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..c6a6db8
--- /dev/null
+++ b/java/res/values-am/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Copyright sign"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Registered sign"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Double exclamation mark"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Exclamation question mark"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Trade mark sign"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Information source"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Left right arrow"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Up down arrow"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"North west arrow"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"North east arrow"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"South east arrow"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"South west arrow"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Leftwards arrow with hook"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Rightwards arrow with hook"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Watch"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Hourglass"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Black right-pointing double triangle"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Black left-pointing double triangle"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Black up-pointing double triangle"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Black down-pointing double triangle"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Alarm clock"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Hourglass with flowing sand"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Circled latin capital letter m"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Black small square"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"White small square"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Black right-pointing triangle"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Black left-pointing triangle"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"White medium square"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Black medium square"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"White medium small square"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Black medium small square"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Black sun with rays"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Cloud"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Black telephone"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Ballot box with check"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Umbrella with rain drops"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Hot beverage"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"White up pointing index"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"White smiling face"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Aries"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Taurus"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Gemini"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Cancer"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Leo"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Virgo"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Libra"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Scorpius"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Sagittarius"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Capricorn"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Aquarius"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Pisces"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Black spade suit"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Black club suit"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Black heart suit"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Black diamond suit"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Hot springs"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Black universal recycling symbol"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Wheelchair symbol"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Anchor"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Warning sign"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"High voltage sign"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Medium white circle"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Medium black circle"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Soccer ball"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Baseball"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Snowman without snow"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Sun behind cloud"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Ophiuchus"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"No entry"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Church"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Fountain"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Flag in hole"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Sailboat"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Tent"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Fuel pump"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Black scissors"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"White heavy check mark"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Airplane"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Envelope"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Raised fist"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Raised hand"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Victory hand"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Pencil"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Black nib"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Heavy check mark"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Heavy multiplication x"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Sparkles"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Eight spoked asterisk"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Eight pointed black star"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Snowflake"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Sparkle"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Cross mark"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Negative squared cross mark"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Black question mark ornament"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"White question mark ornament"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"White exclamation mark ornament"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Heavy exclamation mark symbol"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Heavy black heart"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Heavy plus sign"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Heavy minus sign"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Heavy division sign"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Black rightwards arrow"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Curly loop"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Double curly loop"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Arrow pointing rightwards then curving upwards"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Arrow pointing rightwards then curving downwards"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Leftwards black arrow"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Upwards black arrow"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Downwards black arrow"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Black large square"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"White large square"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"White medium star"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Heavy large circle"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Wavy dash"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Part alternation mark"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Circled ideograph congratulation"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Circled ideograph secret"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Mahjong tile red dragon"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Playing card black joker"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Blood type A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Blood type B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Blood type O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Parking lot"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Blood type AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"Squared CL"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Squared cool"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Squared free"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"Squared ID"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Squared new"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Squared N G"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Squared OK"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"Squared SOS"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Squared up with exclamation mark"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Squared vs"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Squared katakana here"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Squared katakana service"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Squared ideograph charge-free"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Squared ideograph reserved-seat"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Squared ideograph prohibitation"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Squared ideograph vacancy"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Squared ideograph acceptance"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Squared ideograph full occupancy"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Squared ideograph paid"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Squared ideograph monthly"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Squared ideograph application"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Squared ideograph discount"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Squared ideograph in business"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Circled ideograph advantage"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Circled ideograph accept"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Cyclone"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Foggy"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Closed umbrella"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Night with stars"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Sunrise over mountains"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Sunrise"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Cityscape at dusk"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Sunset over buildings"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Rainbow"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Bridge at night"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Water wave"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Volcano"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Milky way"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Earth globe europe-africa"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Earth globe americas"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Earth globe asia-australia"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Globe with meridians"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"New moon symbol"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Waxing crescent moon symbol"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"First quarter moon symbol"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Waxing gibbous moon symbol"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Full moon symbol"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Waning gibbous moon symbol"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Last quarter moon symbol"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Waning crescent moon symbol"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Crescent moon"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"New moon with face"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"First quarter moon with face"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Last quarter moon with face"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Full moon with face"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Sun with face"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Glowing star"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Shooting star"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Chestnut"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Seedling"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Evergreen tree"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Deciduous tree"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palm tree"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Cactus"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulip"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Cherry blossom"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Rose"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Hibiscus"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Sunflower"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Blossom"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Ear of maize"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Ear of rice"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Herb"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Four leaf clover"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Maple leaf"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Fallen leaf"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Leaf fluttering in wind"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Mushroom"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Tomato"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Aubergine"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Grapes"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Melon"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Watermelon"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Tangerine"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Lemon"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Banana"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Pineapple"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Red apple"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Green apple"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Pear"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Peach"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Cherries"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Strawberry"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburger"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Slice of pizza"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Meat on bone"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Poultry leg"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Rice cracker"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Rice ball"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Cooked rice"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Curry and rice"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Steaming bowl"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Spaghetti"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Bread"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"French fries"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Roasted sweet potato"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Sushi"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Fried shrimp"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Fish cake with swirl design"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Soft ice cream"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Shaved ice"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Ice cream"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Doughnut"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Cookie"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Chocolate bar"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Candy"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lollipop"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Custard"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Honey pot"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Shortcake"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Bento box"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Pot of food"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Cooking"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Fork and knife"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Teacup without handle"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Sake bottle and cup"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Wine glass"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Cocktail glass"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Tropical drink"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Beer mug"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Clinking beer mugs"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Baby bottle"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Ribbon"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Wrapped present"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Birthday cake"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Jack-o-lantern"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Christmas tree"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Father christmas"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Fireworks"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Firework sparkler"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Balloon"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Party popper"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Confetti ball"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Tanabata tree"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Crossed flags"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Pine decoration"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Japanese dolls"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Carp streamer"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Wind chime"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Moon viewing ceremony"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"School satchel"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Graduation cap"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Carousel horse"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Ferris wheel"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Roller coaster"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Fishing pole and fish"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Microphone"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Movie camera"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Cinema"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Headphone"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Artist palette"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Top hat"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Circus tent"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Ticket"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Clapper board"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Performing arts"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Video game"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Direct hit"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Slot machine"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Billiards"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Game die"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Bowling"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Flower playing cards"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Musical note"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Multiple musical notes"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saxophone"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Guitar"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Musical keyboard"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Trumpet"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Violin"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Musical score"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Running shirt with sash"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Tennis racquet and ball"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Ski and ski boot"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Basketball and hoop"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Chequered flag"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Snowboarder"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Runner"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Surfer"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Trophy"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Horse racing"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"American football"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Rugby football"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Swimmer"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"House building"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"House with garden"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Office building"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Japanese post office"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"European post office"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Hospital"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Bank"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Automated teller machine"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Hotel"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Love hotel"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Convenience store"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"School"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Department store"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Factory"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Izakaya lantern"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Japanese castle"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"European castle"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Rat"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Mouse"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Ox"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Water buffalo"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Cow"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Leopard"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Rabbit"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Cat"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Dragon"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Crocodile"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Whale"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Snail"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Snake"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Horse"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Ram"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Goat"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Sheep"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Monkey"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Rooster"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Chicken"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Dog"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Pig"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Boar"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Elephant"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Octopus"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Spiral shell"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Bug"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Ant"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Honeybee"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Lady beetle"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Fish"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Tropical fish"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Blowfish"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Turtle"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Hatching chick"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Baby chick"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Front-facing baby chick"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Bird"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Penguin"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Poodle"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Dromedary camel"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Bactrian camel"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Dolphin"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Mouse face"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Cow face"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Tiger face"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Rabbit face"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Cat face"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Dragon face"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Spouting whale"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Horse face"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Monkey face"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Dog face"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Pig face"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Frog face"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Hamster face"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Wolf face"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Bear face"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Panda face"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Pig nose"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Paw prints"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Eyes"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Ear"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Nose"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Mouth"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Tongue"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"White up pointing backhand index"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"White down pointing backhand index"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"White left pointing backhand index"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"White right pointing backhand index"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Fisted hand sign"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Waving hand sign"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Ok hand sign"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Thumbs up sign"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Thumbs down sign"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Clapping hands sign"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Open hands sign"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Crown"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Womans hat"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Eyeglasses"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Necktie"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"T-shirt"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Jeans"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Dress"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Womans clothes"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Purse"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Handbag"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Pouch"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Mans shoe"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Athletic shoe"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"High-heeled shoe"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Womans sandal"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Womans boots"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Footprints"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Bust in silhouette"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Busts in silhouette"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Boy"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Girl"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Man"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Woman"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Family"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Man and woman holding hands"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Two men holding hands"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Two women holding hands"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Police officer"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Woman with bunny ears"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Bride with veil"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Person with blond hair"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Man with gua pi mao"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Man with turban"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Older man"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Older woman"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Baby"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Construction worker"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Princess"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Japanese ogre"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Japanese goblin"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Ghost"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Baby angel"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Extraterrestrial alien"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Alien monster"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Imp"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Skull"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Information desk person"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Guardsman"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Dancer"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Lipstick"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Nail polish"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Face massage"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Haircut"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Barber pole"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Syringe"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Pill"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Kiss mark"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Love letter"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Ring"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Gem stone"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Kiss"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Bouquet"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Couple with heart"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Wedding"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Beating heart"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Broken heart"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Two hearts"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Sparkling heart"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Growing heart"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Heart with arrow"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Blue heart"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Green heart"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Yellow heart"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Purple heart"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Heart with ribbon"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Revolving hearts"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Heart decoration"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Diamond shape with a dot inside"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Electric light bulb"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Anger symbol"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bomb"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Sleeping symbol"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Collision symbol"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Splashing sweat symbol"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Droplet"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Dash symbol"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Pile of poo"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Flexed biceps"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Dizzy symbol"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Speech balloon"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Thought balloon"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"White flower"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Hundred points symbol"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Money bag"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Currency exchange"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Heavy dollar sign"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Credit card"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Banknote with yen sign"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Banknote with dollar sign"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Banknote with euro sign"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Banknote with pound sign"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Money with wings"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Chart with upwards trend and yen sign"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Seat"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Personal computer"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Briefcase"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Minidisc"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Floppy disk"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Optical disc"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"Dvd"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"File folder"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Open file folder"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Page with curl"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Page facing up"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Calendar"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Tear-off calendar"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Card index"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Chart with upwards trend"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Chart with downwards trend"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Bar chart"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Clipboard"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Pushpin"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Round pushpin"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Paperclip"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Straight ruler"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Triangular ruler"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Bookmark tabs"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Ledger"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Notebook"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Notebook with decorative cover"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Closed book"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Open book"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Green book"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Blue book"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Orange book"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Books"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Name badge"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Scroll"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Memo"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Telephone receiver"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Pager"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Fax machine"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Satellite antenna"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Public address loudspeaker"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Cheering megaphone"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Outbox tray"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Inbox tray"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Package"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"E-mail symbol"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Incoming envelope"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Envelope with downwards arrow above"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Closed mailbox with lowered flag"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Closed mailbox with raised flag"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Open mailbox with raised flag"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Open mailbox with lowered flag"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Postbox"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Postal horn"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Newspaper"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Mobile phone"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Mobile phone with rightwards arrow at left"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Vibration mode"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Mobile phone off"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"No mobile phones"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Antenna with bars"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Camera"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Video camera"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Television"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Radio"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Videocassette"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Twisted rightwards arrows"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Clockwise rightwards and leftwards open circle arrows"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Clockwise rightwards and leftwards open circle arrows with circled one overlay"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Clockwise downwards and upwards open circle arrows"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Anticlockwise downwards and upwards open circle arrows"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Low brightness symbol"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"High brightness symbol"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Speaker with cancellation stroke"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Speaker"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Speaker with one sound wave"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Speaker with three sound waves"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Battery"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Electric plug"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Left-pointing magnifying glass"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Right-pointing magnifying glass"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Lock with ink pen"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Closed lock with key"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Key"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Lock"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Open lock"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Bell"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Bell with cancellation stroke"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Bookmark"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Link symbol"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Radio button"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Back with leftwards arrow above"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"End with leftwards arrow above"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"On with exclamation mark with left right arrow above"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Soon with rightwards arrow above"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Top with upwards arrow above"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"No one under eighteen symbol"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Keycap ten"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Input symbol for latin capital letters"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Input symbol for latin small letters"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Input symbol for numbers"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Input symbol for symbols"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Input symbol for latin letters"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Fire"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Electric torch"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Wrench"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Hammer"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Nut and bolt"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Hocho"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Pistol"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Microscope"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Telescope"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Crystal ball"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Six pointed star with middle dot"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Japanese symbol for beginner"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Trident emblem"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Black square button"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"White square button"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Large red circle"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Large blue circle"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Large orange diamond"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Large blue diamond"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Small orange diamond"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Small blue diamond"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Up-pointing red triangle"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Down-pointing red triangle"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Up-pointing small red triangle"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Down-pointing small red triangle"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Clock face one oclock"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Clock face two oclock"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Clock face three oclock"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Clock face four oclock"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Clock face five oclock"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Clock face six oclock"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Clock face seven oclock"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Clock face eight oclock"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Clock face nine oclock"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Clock face ten oclock"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Clock face eleven oclock"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Clock face twelve oclock"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Clock face one-thirty"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Clock face two-thirty"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Clock face three-thirty"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Clock face four-thirty"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Clock face five-thirty"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Clock face six-thirty"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Clock face seven-thirty"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Clock face eight-thirty"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Clock face nine-thirty"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Clock face ten-thirty"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Clock face eleven-thirty"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Clock face twelve-thirty"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Mount fuji"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Tokyo tower"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Statue of liberty"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Silhouette of japan"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moyai"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Grinning face"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Grinning face with smiling eyes"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Face with tears of joy"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Smiling face with open mouth"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Smiling face with open mouth and smiling eyes"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Smiling face with open mouth and cold sweat"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Smiling face with open mouth and tightly-closed eyes"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Smiling face with halo"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Smiling face with horns"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Winking face"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Smiling face with smiling eyes"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Face savouring delicious food"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Relieved face"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Smiling face with heart-shaped eyes"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Smiling face with sunglasses"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Smirking face"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Neutral face"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Expressionless face"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Unamused face"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Face with cold sweat"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Pensive face"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Confused face"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Confounded face"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Kissing face"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Face throwing a kiss"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Kissing face with smiling eyes"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Kissing face with closed eyes"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Face with stuck-out tongue"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Face with stuck-out tongue and winking eye"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Face with stuck-out tongue and tightly-closed eyes"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Disappointed face"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Worried face"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Angry face"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Pouting face"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Crying face"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Persevering face"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Face with look of triumph"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Disappointed but relieved face"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Frowning face with open mouth"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Anguished face"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Fearful face"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Weary face"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Sleepy face"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Tired face"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Grimacing face"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Loudly crying face"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Face with open mouth"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Hushed face"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Face with open mouth and cold sweat"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Face screaming in fear"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Astonished face"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Flushed face"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Sleeping face"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Dizzy face"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Face without mouth"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Face with medical mask"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Grinning cat face with smiling eyes"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Cat face with tears of joy"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Smiling cat face with open mouth"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Smiling cat face with heart-shaped eyes"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Cat face with wry smile"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Kissing cat face with closed eyes"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Pouting cat face"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Crying cat face"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Weary cat face"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Face with no good gesture"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Face with ok gesture"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Person bowing deeply"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"See-no-evil monkey"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Hear-no-evil monkey"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Speak-no-evil monkey"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Happy person raising one hand"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Person raising both hands in celebration"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Person frowning"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Person with pouting face"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Person with folded hands"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Rocket"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Helicopter"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Steam locomotive"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Railway car"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"High-speed train"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"High-speed train with bullet nose"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Train"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Metro"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Light rail"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Station"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Tram"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Tram car"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Bus"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Oncoming bus"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Trolleybus"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Bus stop"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Minibus"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Ambulance"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Fire engine"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Police car"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Oncoming police car"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taxi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Oncoming taxi"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Automobile"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Oncoming automobile"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Recreational vehicle"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Delivery truck"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Articulated lorry"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Tractor"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Monorail"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Mountain railway"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Suspension railway"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Mountain cableway"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Aerial tramway"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Ship"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Rowboat"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Speedboat"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Horizontal traffic light"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Vertical traffic light"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Construction sign"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Police cars revolving light"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Triangular flag on post"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Door"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"No entry sign"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Smoking symbol"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"No smoking symbol"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Put litter in its place symbol"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Do not litter symbol"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Potable water symbol"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Non-potable water symbol"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Bicycle"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"No bicycles"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Bicyclist"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Mountain bicyclist"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Pedestrian"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"No pedestrians"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Children crossing"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Mens symbol"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Womens symbol"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Restroom"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Baby symbol"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Toilet"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Water closet"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Shower"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Bath"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Bathtub"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Passport control"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Customs"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Baggage claim"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Left luggage"</string>
+</resources>
diff --git a/java/res/values-am/strings-talkback-descriptions.xml b/java/res/values-am/strings-talkback-descriptions.xml
index 84c3cb0..38377e7 100644
--- a/java/res/values-am/strings-talkback-descriptions.xml
+++ b/java/res/values-am/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"ምንም ፅሁፍ አልገባም"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>ን ወደ <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> ያርመዋል"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> የራስ ሰር እርማት ያከናውናል"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"ጥቆማ ሃሳብ የለም"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"ያልታወቀ ቁምፊ"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"ቀይር"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"ተጨማሪ ምልክቶች"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"አቢይ ሆሄ አይ፣ ነጥብ ከላይ"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"ያልታወቀ ምልክት"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"ያልታወቀ ስሜት ገላጭ ምስል"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"የደበረው ፊት"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"ያፈረ ፊት"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"የጸሐይ መነጽር የሚለብስ ፊት"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"የደነቀው ፊት"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"የሚስም ፊት"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"የሚኮሳተር ፊት"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"ተለዋጭ ቁምፊዎች ይገኛሉ"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"ተለዋጭ ቁምፊዎች ተሰናብተዋል"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"ተለዋጭ የአስተያየት ጥቆማዎች ይገኛሉ"</string>
diff --git a/java/res/values-am/strings.xml b/java/res/values-am/strings.xml
index 7f5b322..48507e0 100644
--- a/java/res/values-am/strings.xml
+++ b/java/res/values-am/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"በቁልፍመጫንጊዜ አንዝር"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"በቁልፍ መጫን ላይ የሚወጣ ድምፅ"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"ቁልፍ ጫን ላይ ብቅ ባይ"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"ምርጫዎች"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"መለያዎች እና ግላዊነት"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"መልክ እና አቀማመጦች"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"በጣት ምልክት መተየብ"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"ፅሁፍ ማስተካከያ"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"የላቀ"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"ገፅታ"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"የተከፈለ ቁልፍ ሰሌዳ አንቃ"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google ቁልፍ ሰሌዳ አመሳስል"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"አመሳስል በርቷል"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"የግል መዝገበ-ቃላትዎን በሁሉም መሣሪያዎች ላይ ያመሳስሉ"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"አሁን አመሳስል"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"የደመና ውሂብ ይሰርዙ"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"ከGoogle የእርስዎን የተመሳሰለ ውሂብ ይሰርዛል"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"የተመሳሰለው ውሂብዎ ከደመናው ይሰረዛል። እርግጠኛ ነዎት?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"ሰርዝ"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"ይቅር"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"የግል መዝገበ-ቃላትዎ ይመሳሰልና ምትኬው በGoogle አገልጋዮች ላይ ይቀመጣል። ምርቶቻችንን ለማሻሻል የቃላት ተደጋጋሚነት ስታቲስቲካዊ መረጃ ሊሰበሰብ ይችላል። የመረጃው አሰባሰብ እና አጠቃቀም በ"<a href="https://www.google.com/policies/privacy">"Google ግላዊነት መመሪያ"</a>" መሠረት የሚካሄድ ነው።"</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"ይህን ባህሪ ለማንቃት እባክዎ የGoogle መለያ ወደዚህ መሣሪያ ያክሉ"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"ወደ ሌሎች የግቤት ስልቶች ቀይር"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"የቋንቋ መቀየሪያ ቁልፍ ሌሎች የግቤት ስልቶችንም ይሸፍናል"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"የቋንቋ መቀየሪያ ቁልፍ"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"በርካታ የግቤት ቋንቋዎች ሲነቁ አሳይ"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"ተንሸራታች አመልካች አሳይ"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"ከShift ወይም የምልክት ቁልፎች በማንሸራተት ላይ ሳለ ምስላዊ ምልክት አሳይ"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"የቁልፍ ብቅ ባይ መዘግየትን ያስወገዳል"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"የዘገየ የለም"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"ነባሪ"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"ዋና መዝገበ ቃላት"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"የማስተካከያ ጥቆማዎች አሳይ"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"እየተየብክ ተመራጭ ቃላትን አሳይ"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"ሁልጊዜ አሳይ"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"በቁም አቀማመጥ ሁነታ አሳይ"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"ሁልጊዜ ደብቅ"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"አፀያፊ ቃላትን አግድ"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"አጸያፊ ሊሆኑ የሚችሉ ቃላትን አትጠቁም"</string>
     <string name="auto_correction" msgid="7630720885194996950">"በራስ-ማስተካከል"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"የድምፅ ግቤት ቁልፍ"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"ምንም የግቤት ስልቶች አልነቁም። የቋንቋ እና የግቤት ቅንብሮችን ይፈትሹ።"</string>
     <string name="configure_input_method" msgid="373356270290742459">"ግቤት ሜተዶችን አዋቀር"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"ቋንቋዎች አግቤት"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"ግብረ-መልስ ላክ"</string>
-    <string name="select_language" msgid="3693815588777926848">"ቋንቋዎች አግቤት"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"ቋንቋዎች"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"እገዛ እና ግብረመልስ"</string>
+    <string name="select_language" msgid="5709487854987078367">"ቋንቋዎች"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"ለማስቀመጥ እንደገና ንካ"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"ለማስቀመጥ እዚህ ይንኩ"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"መዝገበ ቃላት አለ"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"የቁልፍ ሰሌዳ ገጽታ"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"መለያዎችን ቀይር"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"ምንም መለያዎች አልተመረጡም"</string>
+    <string name="account_selected" msgid="2846876462199625974">"በአሁኑ ጊዜ <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>ን በመጠቀም ላይ"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"እሺ"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"ይቅር"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"ዘግተህ ውጣ"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"የሚጠቀሙበትን መለያ ይምረጡ"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"እንግሊዘኛ (የታላቋ ብሪታንያ)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"እንግሊዘኛ (ዩ.ኤስ)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"ስፓኒሽኛ (ዩኤስ)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"ሂንግሊሽ"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"ሰርብያኛ (ላቲን)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"እንግሊዝኛ (ዩኬ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"እንግሊዝኛ (አሜሪካ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"ስፓኒሽ (አሜሪካ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"ሂንግሊሽ (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"ሰርቢያኛ (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ተለምዷዊ)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ሳይሪሊክ)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ላቲን)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (እስግ)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"ምንም ቋንቋ (ፊደላት)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"ፊደላት (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"ፊደላት (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"ፊደላት (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"ፊደላት (ፒሲ)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"ኢሞጂ"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"የቁልፍ ሰሌዳ ገጽታ"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"የተበጁ የግቤት ስታይሎች"</string>
     <string name="add_style" msgid="6163126614514489951">"ስታይል አክል"</string>
     <string name="add" msgid="8299699805688017798">"አክል"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"አንቃ"</string>
     <string name="not_now" msgid="6172462888202790482">"አሁን አልፈልግም"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"ተመሳሳዩ የግብዓት ቅጥ አስቀድሞ አለ፦ <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"የሰሌዳ ቁልፍ ጠቅታ በመጫን መዘግየት"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"የቁልፍ ጭነት ንዝረት ርዝመት"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"የቁልፍ ጭነት ድምጽ መጠን"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"ውጫዊ የመዝገበቃላት ፋይል አንብብ"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"በውርዶች አቃፊው ውስጥ ምንም የመዝገበ-ፋይሎች የሉም"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"የሚጭኑት የመዝገበ-ቃላት ፋይል ይምረጡ"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"እውን ይሄ ፋይል ለ<xliff:g id="LANGUAGE_NAME">%s</xliff:g> ይጫን?"</string>
-    <string name="error" msgid="8940763624668513648">"ስህተት ተከስቶ ነበር"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"የሰሌዳ ቁልፍ ጠቅታ በመጫን መዘግየት"</string>
     <string name="button_default" msgid="3988017840431881491">"ነባሪ"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"እንኳን ወደ <xliff:g id="APPLICATION_NAME">%s</xliff:g> በደህና መጡ"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"በጣት ምልክት መተየብ"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"አሁን በሁሉም ተወዳጅ መተግበሪያዎችዎ ላይ በ<xliff:g id="APPLICATION_NAME">%s</xliff:g> መተየብ ይችላሉ።"</string>
     <string name="setup_step3_action" msgid="600879797256942259">"ተጨማሪ ቋንቋዎችን ያዋቅሩ"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"ጨርሷል"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"የመተግበሪያ አዶ አሳይ"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"የመተግበሪያ አዶውን በማስጀመሪያው ውስጥ አሳይ"</string>
     <string name="app_name" msgid="6320102637491234792">"የመዝገበ-ቃላት አቅራቢ"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"የመዝገበ-ቃላት አቅራቢ"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"የመዝገበ-ቃላት አገልግሎት"</string>
diff --git a/java/res/values-ar/strings-emoji-descriptions.xml b/java/res/values-ar/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..c1decd3
--- /dev/null
+++ b/java/res/values-ar/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"علامة حقوق طبع ونشر"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"علامة التسجيل"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"علامة تعجب مزدوجة"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"علامة استفهام وتعجب"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"رمز علامة تجارية"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"مصدر معلومات"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"سهم لليسار واليمين"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"سهم لأعلى وأسفل"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"سهم للشمال والغرب"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"سهم للشمال والشرق"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"سهم للجنوب والشرق"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"سهم للجنوب والغرب"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"سهم لليسار مع خطاف"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"سهم لليمين مع خطاف"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"ساعة"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"ساعة رملية"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"مثلث مزدوج أسود يشير لليمين"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"مثلث مزدوج أسود يشير لليسار"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"مثلث مزدوج أسود يشير لأعلى"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"مثلث مزدوج أسود يشير لأسفل"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"ساعة منبه"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"ساعة رملية مع رمال متدفقة"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"‏حرف m لاتيني كبير محاط بدائرة"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"مربع صغير أسود"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"مربع صغير أبيض"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"مثلث أسود يشير لليمين"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"مثلث أسود يشير لليسار"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"مربع متوسط أبيض"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"مربع متوسط أسود"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"مربع صغير ومتوسط أبيض"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"مربع صغير ومتوسط أسود"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"شمس سوداء وأشعة"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"سحابة"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"هاتف أسود"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"مربع اختيار عليه علامة"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"شمسية وقطرات مطر"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"شراب ساخن"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"سبابة بيضاء تشير لأعلى"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"وجه مبتسم أبيض"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"الحمل"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"الثور"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"الجوزاء"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"السرطان"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"الأسد"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"العذراء"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"الميزان"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"العقرب"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"القوس"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"الجدي"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"الدلو"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"الحوت"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"بستوني أسود"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"أسباتي أسود"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"قلب أسود"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"ديناري أسود"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"ينابيع حارة"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"رمز إعادة تدوير أسود عام"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"رمز كرسي متحرك"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"مرساة"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"إشارة تحذير"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"إشارة فولت عال"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"دائرة بيضاء متوسطة"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"دائرة سوداء متوسطة"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"كرة قدم"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"بيسبول"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"إنسان ثلج بدون ثلج"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"شمس خلف سحابة"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"نجمة شمالية"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"ممنوع الدخول"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"كنيسة"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"نافورة"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"علم على حفرة"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"مركب شراعي"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"خيمة"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"مضخة وقود"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"مقص أسود"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"علامة تحديد غامقة"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"طائرة"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"ظرف"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"قبضة مرفوعة"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"يد مرفوعة"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"يد انتصار"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"قلم رصاص"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"ريشة سوداء"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"علامة تحديد غامقة"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"‏علامة ضرب غامقة x"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"وميض"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"علامة نجمية ثمانية"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"نجمة سوداء ثمانية"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"كتلة ثلج"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"ومضة"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"علامة صليب"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"علامة صليب سالبة"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"علامة استفهام سوداء مزخرفة"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"علامة استفهام بيضاء مزخرفة"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"علامة تعجب بيضاء مزخرفة"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"رمز علامة تعجب غامقة"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"قلب أسود غامق"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"علامة إضافة غامقة"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"علامة طرح غامقة"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"علامة قسمة غامقة"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"سهم أسود لليمين"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"عقدة مموجة"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"عقدة مموجة مزدوجة"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"سهم يشير لليمين مع الاتجاه لأعلى"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"سهم يشير لليمين مع الانحناء لأسفل"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"سهم أسود لليسار"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"سهم أسود لأعلى"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"سهم أسود لأسفل"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"مربع كبير أسود"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"مربع كبير أبيض"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"نجمة متوسطة بيضاء"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"دائرة كبيرة غامقة"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"شرطة مموجة"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"علامة تعاقب أجزاء"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"علامة تهنئة مستديرة"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"علامة سر مستديرة"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"ورقة تنين ما جونغ أحمر"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"جوكر أسود لورقة لعب"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"‏فصيلة A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"‏فصيلة B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"‏فصيلة O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"انتظار سيارات"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"‏فصيلة AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"واضح"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"لطيف"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"مجاني"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"هوية"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"جديد"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"سيئ"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"موافق"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"مساعدة"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"أعلى مع علامة تعجب"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"ضد"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"هنا"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"خدمة"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"مجانًا"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"مقعد محجوز"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"ممنوع"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"مكان شاغر"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"قبول"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"مشغول تمامًا"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"مدفوع"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"شهريًا"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"تطبيق"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"خصم"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"في العمل"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"ميزة"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"قبول"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"إعصار حلزوني"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"ضبابي"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"شمسية مغلقة"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"ليل ونجوم"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"شروق الشمس على جبال"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"شروق الشمس"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"مدينة عند الغسق"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"غروب الشمس على المباني"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"ألوان الطيف"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"جسر في الليل"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"موجة مياه"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"بركان"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"درب التبانة"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"كرة أرضية أوروبا وإفريقيا"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"كرة أرضية الأمريكيتان"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"كرة أرضية آسيا وأستراليا"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"كرة أرضية خطوط الطول"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"رمز محاق"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"رمز هلال"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"رمز تربيع أول"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"رمز أحدب متزايد"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"رمز بدر"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"رمز أحدب متناقص"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"رمز تربيع ثان"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"رمز هلال"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"رمز هلال"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"محاق بوجه"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"تربيع أول بوجه"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"تربيع ثان بوجه"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"بدر بوجه"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"شمس بوجه"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"نجم ساطع"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"شهاب"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"أبو فروة"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"شتلة"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"شجرة دائمة الخضرة"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"شجرة زائلة الخضرة"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"نخلة"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"صبار"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"خزامي"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"وردة كرز"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"وردة"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"كركديه"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"عباد الشمس"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"نوارة"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"كوز ذرة"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"سنبلة أرز"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"عشب"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"ورقة برسيم رباعية"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"ورقة قبقب"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"ورقة متساقطة"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"ورقة متطايرة في الريح"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"عيش الغراب"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"طماطم"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"باذنجان"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"عنب"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"شمام"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"بطيخ"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"يوسفي"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"ليمون"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"موز"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"أناناس"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"تفاح أحمر"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"تفاح أخضر"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"كمثرى"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"خوخ"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"كرز"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"فراولة"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"همبورغر"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"شريحة بيتزا"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"لحم على عظمة"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"ورك دجاجة"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"قراقيش أرز"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"كرة أرز"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"أرز مطبوخ"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"أرز وكاري"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"بولة وبخار"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"سباغتي"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"خبز"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"بطاطس مقلية"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"بطاطا مشوية معسلة"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"دانغو"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"أودين"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"سوشي"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"جمبري مقلي"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"كفتة سمك ملفوفة"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"آيس كريم سوفت"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"آيس كريم حلقات"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"آيس كريم"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"كعكة محلاة"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"كعكة"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"بار شيكولاتة"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"حلوى"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lollipop"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"كاسترد"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"جرة عسل"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"كعكة بسمن وسكر"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"علبة بنتو"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"حلة طعام"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"طهي"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"شوكة وسكينة"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"كوب شاي بدون يد"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"زجاجة وكأس"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Wine glass"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"كأس كوكتيل"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"مشروب استوائي"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"ماغ بيرة"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"اثنان ماغ بيرة يرتطمان ببعضهما"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"زجاجة شراب رضيع"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"شريط"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"هدية ملفوفة"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"كعكة عيد ميلاد"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"قرعة مضيئة"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"شجرة كريسماس"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"بابا نويل"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"ألعاب نارية"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"ماسة ألعاب نارية"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"بالونة"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"بارتي بوبر"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"كرة كونفتي"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"شجرة تاناباتا"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"أعلام متقاطعة"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"ديكور صنوبر"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"دمى يابانية"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"كارب ستريمر"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"جرس الريح"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"استطلاع القمر"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"حقيبة مدرسية"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"قبعة تخرج"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"حصان الدوامة"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"دولاب ملاه"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"قطار ملاه"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"صنارة صيد وسمكة"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"ميكروفون"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"كاميرا أفلام"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"سينما"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"سماعة رأس"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"لوحة ألوان"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"قبعة عالية"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"خيمة سرك"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"تذكرة"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"كلاكيت"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"فنون استعر"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"لعبة فيديو"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"إصابة هدف"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"جهاز قمار"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"بيلياردو"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"نرد"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"بولينغ"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"كروت لعب أزهار"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"نوتة موسيقية"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"نوتات موسيقية متعددة"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"ساكسفون"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"غيتار"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"بيانو"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"آلة النفخ"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"كمان"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"سكور موسيقي"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"قميص للجري مع وشاح"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"مضرب تنس وكرة"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"تزلج وقارب تزلج"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"كرة سلة وطوق"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"علم مربعات"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"تزلج"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"جري"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"ركوب أمواج"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"كأس"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"سباق خيول"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"كرة قدم أمريكية"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"كرة راجبي"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"سباحة"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"ب"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"منزل وحديقة"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"مبنى إداري"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"مكتب بريد ياباني"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"مكتب بريد أوروبي"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"مستشفى"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"مصرف"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"ماكينة صرف آلي"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"فندق"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"فندق حب"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"سوق 24 ساعة"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"مدرسة"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"سوق شامل"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"مصنع"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"فانوس إزاكايا"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"قلعة يابانية"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"قلعة أوروبية"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"فأر"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"ف"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"ثور"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"جاموس مائي"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"بقرة"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"فهد"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"أرنب"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"قطة"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"تنين"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"تمساح"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"حوت"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"قوقع"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"ثعبان"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"حصان"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"حمل"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"عنزة"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"نعجة"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"قرد"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"ديك"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"دجاجة"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"كلب"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"خنزير"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"خنزير بري"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"فيل"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"أخطبوط"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"صدفة حلزونية"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"بق"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"نملة"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"نحل"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"خنفساء"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"سمكة"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"سمكة استوائية"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"سمكة منتفخة"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"سلحفاة"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"كتكوت خارج البيضة"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"كتكوت"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"كتكوت يظهر بوجهه"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"طائر"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"بطريق"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"دب الكوال"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"كلب بودل"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"جمل وحيد السنام"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"جمل ثنائي السنام"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"دولفين"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"وجه فأر"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"وجه بقرة"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"وجه نمر"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"وجه أرنب"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"وجه قطة"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"وجه تنين"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"حوت بنافورة"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"وجه حصان"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"وجه قرد"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"وجه كلب"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"وجه خنزير"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"وجه ضفدع"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"وجه همستر"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"وجه ذئب"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"وجه دب"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"وجه باندا"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"أنف خنزير"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"آثار حوافر"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"أعين"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"أذن"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"أنف"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"فم"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"لسان"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"سبابة لأعلى بظهر اليد"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"سبابة لأسفل بظهر اليد"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"سبابة لليسار بظهر اليد"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"سبابة لليمين بظهر اليد"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"علامة قبضة يد"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"علامة يد تلوح"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"علامة يد موافقة"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"علامة استحسان"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"علامة استياء"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"علامة يدين تصفقان"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"علامة يدين مفتوحتين"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"تاج"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"قبعة حريمي"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"نظارة"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"ربطة عنق"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"قميص"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"جينز"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"فستان"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"كيمون ياباني"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"بيكيني"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"ملابس حريمي"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"كيس نقود"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"حقيبة يد"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"حقيبة دبلوماسية"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"حذاء رياضي"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"حذاء رياضي"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"حذاء بكعب عال"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"صندل حريمي"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"حذاء عال حريمي"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"آثار أقدام"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"صورة ظلية"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"صورتان ظليتان"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"ولد"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"بنت"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"رجل"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"امرأة"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"عائلة"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"رجل وامرأة يد بيد"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"رجلان يد بيد"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"امرأتان يد بيد"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"ضابط شرطة"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"امرأة تلبس أذن أرنب"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"عروس ترتدي حجابًا"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"شخص أشقر"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"رجل يرتدي قبعة غوا بي ماو"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"رجل يرتدي عمامة"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"رجل عجوز"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"امرأة عجوز"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"رضيع"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"عامل تشييد"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"أميرة"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"غول ياباني"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"جن ياباني"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"عفريت"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"ملاك صغير"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"كائن فضائي"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"وحش غريب"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"شيطان"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"جمجمة"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"موظف استعلامات"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"حارس"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"راقصة"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"أحمر شفاه"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"عناية أظافر"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"مساج وجه"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"قصة شعر"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"قص شعر"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"إبرة"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"حبوب دواء"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"علامة قبلة"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"خطاب حب"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"خاتم"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"جوهرة"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"قبلة"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"باقة زهور"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"زوج وقلب"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"زفاف"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"قلب يخفق"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"قلب مكسور"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"قلبان"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"قلب لامع"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"قلب ينمو"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"قلب وسهم"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"قلب أزرق"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"قلب أخضر"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"قلب أصفر"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"قلب أرجواني"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"قلب عليه شريطة"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"قلب دوار"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"زخرفة قلب"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"شكل ماسة ونقطة بالداخل"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"مصباح كهربائي مضيء"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"علامة غضب"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"قنبلة"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"علامة نوم"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"علامة اصطدام"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"رمز عرق يتصبب"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"قطرة"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"علامة انطلاق"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"كومة فضلات"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"عضلة الذراع"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"علامة الدوار"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"فقاعة كلام"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"فقاعة تفكير"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"زهرة بيضاء"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"علامة 100 نقطة"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"كيس نقود"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"تغيير العملة"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"علامة دولار غامق"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"بطاقة ائتمان"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"ورقة نقدية وعلامة ين"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"علامة ورقة نقدية ودولار"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"ورقة نقدية وعلامة يورو"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"ورقة نقدية وعلامة جنيه"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"نقود وأجنحة"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"مخطط وإشارة ارتفاع وين"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"مقعد"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"كمبيوتر شخصي"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"محفظة أوراق"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"قرص صغير"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"قرص مرن"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"قرص ضوئي"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"دي في دي"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"مجلد ملفات"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"مجلد ملفات مفتوح"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"صفحة بطية"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"صفحة بوجه لأعلى"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"تقويم"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"تقويم ممزق"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"فهرس بطاقات"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"مخطط يشير لصعود"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"مخطط يشير لهبوط"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"مخطط شريطي"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"لوحة ملصقات"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"دبوس"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"دبوس مستدير"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"مشبك ورق"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"مسطرة مستقيمة"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"مسطرة مثلثة"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"لصاقة علامات"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"كراسة ملاحظات"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"دفتر ملاحظات"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"دفتر ملاحظات بغلاف مزخرف"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"كتاب مغلق"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"كتاب مفتوح"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"كتاب أخضر"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"كتاب أزرق"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"كتاب برتقالي"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"كتب"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"ملصق اسم"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"ملفوف"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"مذكرة"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"سماعة هاتف"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"بيجر"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"فاكس"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"هوائي قمر صناعي"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"مكبر صوت للخطاب"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"ميغافون للهتاف"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"صندوق صادر"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"صندوق وارد"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"طرد"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"رمز بريد إلكتروني"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"ظرف وارد"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"ظرف عليه سهم لأسفل"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"صندوق بريد مغلق بعلامة لأسفل"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"صندوق بريد مغلق بعلامة لأعلى"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"صندوق بريد مفتوح بعلامة لأعلى"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"صندوق بريد مفتوح بعلامة لأسفل"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"صندوق بريد"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"جرس بريد"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"جريدة"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"هاتف"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"هاتف جوال"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"وضع اهتزاز"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"هاتف جوال مغلق"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"ممنوع استخدام الهاتف الجوال"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"هوائي وأشرطة"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"كاميرا"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"كاميرا فيديو"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"تلفزيون"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"راديو"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"شريط فيديو"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"أسهم يمنى"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"أسهم يمنى ويسرى مستديرة ومفتوحة باتجاه عقارب الساعة"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"أسهم يمنى ويسرى مستديرة باتجاه عقارب الساعة مع رقم واحد"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"أسهم للأسفل مستديرة باتجاه عقارب الساعة مع رقم واحد"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"أسهم مستديرة ومفتوحة لأعلى وأسفل عكس اتجاه عقارب الساعة"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"رمز سطوع منخفض"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"رمز سطوع مرتفع"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"سماعة عليها علامة إلغاء"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"سماعة"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"سماعة عليها موجة صوتية واحدة"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"سماعة عليها ثلاث موجات صوتية"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"بطارية"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"قابس كهرباء"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"عدسة مكبرة لليسار"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"عدسة مكبرة لليمين"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"قفل عليه قلم حبر"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"قفل مغلق ومفتاح"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"مفتاح"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"قفل"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"قفل مفتوح"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"جرس"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"جرس عليه علامة إلغاء"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"علامة توقف قراءة"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"رمز رابط"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"زر راديو"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"رجوع مع سهم أيسر"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"انتهاء مع سهم أيسر"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"تشغيل مع علامة تعجب وسهم أيسر"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"علامة قريبًا مع سهم لليمين"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"أعلى مع سهم لأعلى"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"رمز ممنوع أقل من 18 عامًا"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"مفتاح عشرة"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"رمز إدخال لأحرف لاتينية كبيرة"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"رمز إدخال لأحرف لاتينية صغيرة"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"رمز إدخال لأرقام"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"رمز إدخال للرموز"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"رمز إدخال لأحرف لاتينية"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"حريق"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"كشاف كهربائي"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"مفتاح"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"مطرقة"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"صامولة ومسمار"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"هوتشو"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"مسدس"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"ميكروسكوب"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"تليسكوب"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"كرة كريستال"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"نجمة سداسية مع نقطة متوسطة"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"رمز ياباني بمعنى مبتدئ"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"رمز ثلاثي الشعب"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"زر مربع أسود"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"زر مربع أبيض"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"دائرة حمراء كبيرة"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"دائرة زرقاء كبيرة"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"ماسة برتقالية كبيرة"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"ماسة زرقاء كبيرة"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"ماسة برتقالية صغيرة"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"ماسة زرقاء صغيرة"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"مثلث أحمر لأعلى"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"مثلث أحمر يشير لأسفل"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"مثلث أحمر صغير يشير لأعلى"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"مثلث أحمر صغير يشير لأسفل"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"الساعة الواحدة"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"الساعة الثانية"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"الساعة الثالثة"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"الساعة الرابعة"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"الساعة الخامسة"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"الساعة السادسة"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"الساعة السابعة"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"الساعة الثامنة"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"الساعة التاسعة"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"الساعة العاشرة"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"الساعة الحادية عشر"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"الساعة الثانية عشر"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"الساعة الواحدة والنصف"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"الساعة الثانية والنصف"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"الساعة الثالثة والنصف"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"الساعة الرابعة والنصف"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"الساعة الخامسة والنصف"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"الساعة السادسة والنصف"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"الساعة السابعة والنصف"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"الساعة الثامنة والنصف"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"الساعة التاسعة والنصف"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"الساعة العاشرة والنصف"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"الساعة الحادية عشر والنصف"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"الساعة الثانية عشر والنصف"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"جبل فوجي"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"برج طوكيو"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"تمثال الحرية"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"صورة ظلية لليابان"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"موياي"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"وجه مبتسم"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"وجه مبتسم وأعين مبتسمة"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"وجه عليه دموع فرح"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"وجه مبتسم بفم مفتوح"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"وجه مبتسم بفم مفتوح وأعين مبتسمة"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"وجه مبتسم بفم مفتوح وعرق بارد"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"وجه مبتسم بفم مفتوح وأعين مغلقة بشدة"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"وجه مبتسم يعلوه هالة"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"وجه مبتسم بقرون"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"وجه بغمزة"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"وجه مبتسم بأعين مبتسمة"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"وجه يستلذ بطعام لذيذ"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"وجه"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"وجه مبتسم وأعين على شكل قلب"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"وجه مبتسم مع نظارة شمس"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"وجه"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"وجه محايد"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"وجه بدون تعبير"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"وجه غير مستمتع"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"وجه عليه عرق بارد"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"وجه متأمل"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"وجه متحير"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"وجه مرتبك"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"وجه يبعث قبلة"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"وجه يطرح قبلات"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"وجه يطرح قبلات بأعين مبتسمة"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"وجه يبعث قبلات بأعين مغلقة"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"وجه بلسان متدل"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"وجه بلسان متدل مع غمزة"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"وجه بلسان متدل وأعين مغلقة بشدة"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"وجه مستاء"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"وجه منزعج"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"وجه غاضب"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"وجه غاضب"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"وجه باك"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"وجه متجلد"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"وجه تعلوه نظرة انتصار"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"وجه ساكن بعد خيبة أمل"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"وجه عبوس بفم مفتوح"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"وجه مكروب"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"وجه خائف"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"وجه"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"وجه ناعس"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"وجه مجهد"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"وجه"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"وجه بصراخ مرتفع"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"وجه بفم مفتوح"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"وجه هادئ"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"وجه بفم مفتوح وعرق بارد"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"وجه يصرخ خوفًا"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"وجه مندهش"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"وجه متورد"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"وجه نائم"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"وجه مصاب بالدوار"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"وجه"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"وجه بكمامة برد"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"وجه قطة مبتسم بأعين مبتسمة"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"وجه قطة بدموع فرح"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"وجه قطة مبتسم بفم مفتوح"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"وجه قطة مبتسم بأعين على شكل قلب"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"وجه قطة وابتسامة ساخرة"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"وجه قطة"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"وجه قطة متجهم"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"وجه قطة باك"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"وجه قطة قلق"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"وجه بإشارة أمر سيئ"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"وجه بإشارة أمر جيد"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"شخص ينحني بشدة"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"قرد بحجب عينيه"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"قرد يحجب أذنيه"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"قرد يحجب كلامه"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"شخص سعيد يرفع يدًا واحدة"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"شخص يرفع يديه احتفاءً"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"شخص عبوس"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"شخص بوجه متجهم"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"شخص بيدين مضمومتين"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"صاروخ"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"هليكوبتر"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"جرار بخار"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"عربة قطار"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"قطار سريع"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"قطار سريع بوجه محدب"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"قطار"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"مترو"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"نقل خفيف"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"محطة"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"ترام"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"سيارة ترام"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"حافلة"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"حافلة عن قرب"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"حافلة ترولي"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"موقف حافلات"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"حافلة صغيرة"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"سيارة إسعاف"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"سيارة إطفاء"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"سيارة شرطة"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"سيارة شرطة عن قرب"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"سيارة أجرة"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"سيارة أجرة عن قرب"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"سيارة"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"سيارة عن قرب"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"مركبة استجمام"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"شاحنة توصيل"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"لوري شبه مقطورة"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"جرار"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"خط سكة حديد أحادي"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"قطار جبلي"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"خط سكة حديد معلقة"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"قطار جبلي"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"ترام هوائي"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"سفينة"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"زورق تجديف"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"قارب سريع"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"إشارة مرور أفقية"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"إشارة مرور أفقية"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"إشارة تحت الإنشاء"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"إضاءة سيارات شرطة متجددة"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"علم مثلث على عمود"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"باب"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"علامة ممنوع الدخول"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"رمز التدخين"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"رمز ممنوع التدخين"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"رمز وضع النفايات في مكانها"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"رمز عدم رمي النفايات"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"رمز مياه صالحة للشرب"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"رمز مياه غير صالحة للشرب"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"دراجة"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"ممنوع ركوب الدراجات"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"راكب دراجة"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"راكب دراجة جبال"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"مشاة"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"ممنوع سير المشاة"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"عبور أطفال"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"رمز رجال"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"رمز سيدات"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"مرحاض"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"رمز رضيع"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"حمام"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"دورة مياه"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"استحمام شاور"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"استحمام"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"حوض استحمام"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"مراقبة جوازات السفر"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"الجمارك"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"استرداد الحقائب"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"أمتعة"</string>
+</resources>
diff --git a/java/res/values-ar/strings-talkback-descriptions.xml b/java/res/values-ar/strings-talkback-descriptions.xml
index bd2d7c6..338a11d 100644
--- a/java/res/values-ar/strings-talkback-descriptions.xml
+++ b/java/res/values-ar/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"لم يتم إدخال نص"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> لتصحيح <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> إلى <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> لإجراء التصحيح التلقائي"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"لا اقتراحات"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"حرف غير معروف"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"المزيد من الرموز"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Capital I, dot above"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"رمز غير معروف"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"رمز تعبيري غير معروف"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"وجه يبدو عليه الملل"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"وجه يبدو عليه الإحراج"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"وجه يرتدي نظارات شمسية"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"وجه يبدو عليه الاندهاش"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"وجه يبعث قبلة"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"وجه عبوس"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"تتوفر الأحرف البديلة"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"تم تجاهل الأحرف البديلة"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"تتوفر الاقتراحات البديلة"</string>
diff --git a/java/res/values-ar/strings.xml b/java/res/values-ar/strings.xml
index e76280d..db78e31 100644
--- a/java/res/values-ar/strings.xml
+++ b/java/res/values-ar/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"اهتزاز عند ضغط مفتاح"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"صوت عند الضغط على مفتاح"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"انبثاق عند ضغط مفتاح"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"التفضيلات"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"الحسابات والخصوصية"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"المظهر والتنسيقات"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"الكتابة بالإشارة"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"تصحيح النص"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"الإعدادات المتقدمة"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"المظهر"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"هل تريد تمكين لوحة المفاتيح المقسمة"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"‏مزامنة لوحة مفاتيح Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"تم تشغيل المزامنة"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"يمكنك مزامنة قاموسك الشخصي على جميع الأجهزة"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"المزامنة الآن"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"حذف البيانات من السحاب"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"‏لحذف بياناتك التي تمت مزامنتها من Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"سيتم حذف بياناتك المتزامنة من السحاب. هل تريد ذلك بالتأكيد؟"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"حذف"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"إلغاء"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"‏ستتم مزامنة قاموسك الشخصي والاحتفاظ بنسخة احتياطية منه على خوادم Google، وقد يتم جمع المعلومات الإحصائية لتكرار الكلمات للمساعدة في تحسين منتجاتنا هذا وسيتوافق جمع كل المعلومات واستخدامها مع "<a href="https://www.google.com/policies/privacy">"سياسة خصوصية Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"‏الرجاء إضافة حساب Google إلى هذا الجهاز لتمكين هذه الميزة."</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"التبديل إلى أسلوب إدخال آخر"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"يغطي مفتاح تبديل اللغات أساليب الإدخال الأخرى أيضًا"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"مفتاح تبديل اللغة"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"يظهر عندما يتم تمكين لغات الإدخال متعددة"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"إظهار مؤشر التمرير"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"‏عرض تلميح مرئي أثناء التمرير من مفتاح Shift أو Symbol"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"تأخير إزالة النافذة المنبثقة الأساسية"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"بلا تأخير"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"افتراضي"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"القاموس الرئيسي"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"عرض اقتراحات التصحيح"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"عرض الكلمات المقترحة أثناء الكتابة"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"عرض دومًا"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"العرض في وضع رأسي"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"إخفاء دومًا"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"حظر الكلمات المسيئة"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"عدم اقتراح كلمات محتمل أن تكون مسيئة"</string>
     <string name="auto_correction" msgid="7630720885194996950">"التصحيح التلقائي"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"مفتاح الإدخال الصوتي"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"لم يتم تمكين أي أساليب إدخال صوتي. تحقق من إعدادات اللغة والإدخال."</string>
     <string name="configure_input_method" msgid="373356270290742459">"تهيئة طرق الإدخال"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"لغات الإدخال"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"إرسال تعليقات"</string>
-    <string name="select_language" msgid="3693815588777926848">"لغات الإدخال"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"اللغات"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"المساعدة والتعليقات"</string>
+    <string name="select_language" msgid="5709487854987078367">"اللغات"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"المس مرة أخرى للحفظ"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"المس هنا للحفظ"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"القاموس متاح"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"مظهر لوحة المفاتيح"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"تبديل الحسابات"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"لم يتم تحديد أي حساب"</string>
+    <string name="account_selected" msgid="2846876462199625974">"يتم حاليًا استخدام <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"موافق"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"إلغاء"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"الخروج"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"تحديد حساب لاستخدامه"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"الإنجليزية (المملكة المتحدة)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"الإنجليزية (الولايات المتحدة)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"الإسبانية (الأميركية)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"هنجليزية"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"الصربية (اللاتينية)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"الإنجليزية (المملكة المتحدة) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"الإنجليزية (الولايات المتحدة) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"الإسبانية (الولايات المتحدة) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"هنجليزية (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"الصربية (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (التقليدية)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (السريلية)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (اللاتينية)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (مكثفة)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"بدون لغة (أبجدية)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"‏الأبجدية (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"‏الأبجدية (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"‏الأبجدية (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"‏الأبجدية (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"الرموز التعبيرية"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"مظهر لوحة المفاتيح"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"أنماط الإدخال المخصصة"</string>
     <string name="add_style" msgid="6163126614514489951">"إضافة نمط"</string>
     <string name="add" msgid="8299699805688017798">"إضافة"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"تمكين"</string>
     <string name="not_now" msgid="6172462888202790482">"ليس الآن"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"نمط الإدخال ذاته موجود من قبل: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"تأخير الضغط الطويل للمفاتيح"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"مدة اهتزاز الضغط على المفاتيح"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"مستوى صوت الضغط على المفاتيح"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"قراءة ملف قاموس خارجي"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"ليست هناك ملفات قواميس في مجلد التنزيلات"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"تحديد ملف قاموس للتثبيت"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"هل تريد حقًا تثبيت هذا الملف للغة <xliff:g id="LANGUAGE_NAME">%s</xliff:g>؟"</string>
-    <string name="error" msgid="8940763624668513648">"حدث خطأ"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"تأخير الضغط الطويل للمفاتيح"</string>
     <string name="button_default" msgid="3988017840431881491">"الافتراضية"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"مرحبا بكم في <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"مع الكتابة بالإشارة"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"الآن أصبح بإمكانك الكتابة في جميع تطبيقاتك المفضلة باستخدام <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"تهيئة اللغات الإضافية"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"إنهاء العملية"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"عرض رمز التطبيق"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"عرض رمز التطبيق في المشغل"</string>
     <string name="app_name" msgid="6320102637491234792">"مقدم القاموس"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"مقدم القاموس"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"خدمة القاموس"</string>
diff --git a/java/res/values-az-rAZ/strings-talkback-descriptions.xml b/java/res/values-az-rAZ/strings-talkback-descriptions.xml
index 8f23627..104e57e 100644
--- a/java/res/values-az-rAZ/strings-talkback-descriptions.xml
+++ b/java/res/values-az-rAZ/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Mətn daxil edilməyib"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> sözünü <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> sözü ilə əvəzləyərək düzəldir"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> avto-korreksiyanı həyata keçirir"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Təklif yoxdur"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Naməlum simvol"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Sürüşdürmə"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Daha çox simvol"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Böyük I, üstü nöqtəli"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Naməlum rəmz"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Naməlum emoji"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Darıxan sifət"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Çaşmış sifət"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Gün eynəyi taxan sifət"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Təəccüblü sifət"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Öpən sifət"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Mısmırıqlı sifət"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Alternativ simvollar əlçatandır"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Alternativ simvollar kənarlaşdırılıb"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Alternativ təkliflər əlçatandır"</string>
diff --git a/java/res/values-az-rAZ/strings.xml b/java/res/values-az-rAZ/strings.xml
index dea1f60..4fff000 100644
--- a/java/res/values-az-rAZ/strings.xml
+++ b/java/res/values-az-rAZ/strings.xml
@@ -26,18 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrasiyalı klikləmə"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Klikləmə səsi"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Klikləmədə popup"</string>
-    <string name="settings_screen_input" msgid="2808654300248306866">"Daxiletmə tərcihləri"</string>
-    <string name="settings_screen_appearances" msgid="3611951947835553700">"Görünüş"</string>
-    <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Çoxdilli seçimlər"</string>
-    <string name="settings_screen_gesture" msgid="9113437621722871665">"Jest ilə yazı tərcihləri"</string>
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Seçimlər"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Hesablar &amp; Məxfilik"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Görünüş &amp; Düzümlər"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Jest ilə yazma"</string>
     <string name="settings_screen_correction" msgid="1616818407747682955">"Mətn korreksiyası"</string>
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Qabaqcıl"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Klaviaturanı ayırmağa icazə verin"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google Klaviatura Sinxronlaşması"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Sinxronlaşdırma yandırılıb"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Cihazlarda şəxsi lüğətinizi sinxronlaşdırın"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"İndi sinxronizə edin"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Bulud datanı silin"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Google\'dan olan sinx datanızı siləcək."</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Sinxronlaşdırılmış verilənləriniz buluddan silinəcək. Əminsiniz?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Silin"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Ləğv et"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Şəxsi lüğətiniz sinxronlaşdırılacaq və Google serverlərinə ehtiyat nüsxəsi çıxarılacaq. Söz tezliyinin statistik məlumatı məhsullarımızı təkmilləşdirməyə kömək üçün toplana bilər. Bütün məlumatın toplanması və istifadəsi "<a href="https://www.google.com/policies/privacy">"Google Məxfilik Siyasətinə"</a>" uyğun olmalıdır."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Bu funksiyanı aktivləşdirmək üçün cihaza Google hesabı əlavə edin"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Digər daxiletmə metodlarına keçin"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Dil keçid düyməsi başqa daxiletmə metodlarını da əhatə edir"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Dil keçidi düyməsi"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Çoxsaylı daxiletmə dilləri aktivləşdikdə göstər"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Slayd indikatorunu göstər"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Sürüşdürmə və ya Simvol düymələrinə keçərkən vizual işarəni göstər"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Klaviş popup kənarlaşdırılmasında gecikmə"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Gecikmə yoxdur"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Varsayılan"</string>
@@ -56,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Əsas lüğət"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Korreksiya təkliflərini göstər"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Yazarkən təklif edilən sözləri ekranda göstər"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Həmişə göstər"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Portret rejimində göstər"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Həmişə gizlət"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Təhqiredici sözləri əngəlləyin"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Potensial təhqiredici sözlər təklif etməyin"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Avtomatik-korreksiya"</string>
@@ -79,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Səs daxiletmə klavişi"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Heç bir səs daxiletmə metodu aktiv deyil. Dil və daxiletmə ayarlarını yoxlayın."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Daxiletmə üsullarını sazla"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Daxiletmə dilləri"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Cavab rəyi göndərin"</string>
-    <string name="select_language" msgid="3693815588777926848">"Daxiletmə dilləri"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Dillər"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Yardım və geri əlaqə"</string>
+    <string name="select_language" msgid="5709487854987078367">"Dillər"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Yadda saxlamaq üçün yenidən toxunun"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Yadda saxlamaq üçün buraya toxunun"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Lüğət mövcuddur"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Klaviatura teması"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Hesablar arasında keçid edin"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Heç bir hesab seçilməyib"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Hazırda istifadə olunur: <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"Ok"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Ləğv et"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Çıxış"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"İşlətmək üçün hesab seçin"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"İngilis (BK)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"İngilis (ABŞ)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"İspan (ABŞ)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hingilis"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Serb (Latın)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"İngilis (Britaniya) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"İngilis (Amerika) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"İspan (Amerika) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hingilis (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Serb (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Ənənəvi)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Kiril)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Latın)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Kompakt)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Dil yoxdur (Əlifba)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Əlifba (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Əlifba (QWERTZ)"</string>
@@ -103,10 +122,6 @@
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Əlifba (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
     <string name="keyboard_theme" msgid="4909551808526178852">"Klaviatura teması"</string>
-    <string name="keyboard_theme_holo_white" msgid="8506588144096428751">"Holo Ağ"</string>
-    <string name="keyboard_theme_holo_blue" msgid="192400518003397418">"Holo Göy"</string>
-    <string name="keyboard_theme_material_dark" msgid="2701178578784760596">"Material Tünd"</string>
-    <string name="keyboard_theme_material_light" msgid="3479400901818790331">"Material Açıq"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Xüsusi daxiletmə üslubları"</string>
     <string name="add_style" msgid="6163126614514489951">"Stil əlavə et"</string>
     <string name="add" msgid="8299699805688017798">"Əlavə et"</string>
@@ -118,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Aktiv et"</string>
     <string name="not_now" msgid="6172462888202790482">"İndi yox"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Eyni daxiletmə üslubu artıq mövcuddur: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Klavişi uzun müddət basmada gecikmə"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Vibrasiyalı klikləmə müddəti"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Səsli klikləmə səsi"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Xarici lüğət faylını oxuyun"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Endirmə Qovluğunda heç bir lüğət faylı yoxdur"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Yükləmək üçün lüğət faylı seçin"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> üçün faylı quraşdırmaq istədiyinizə əminsiniz?"</string>
-    <string name="error" msgid="8940763624668513648">"Xəta var idi"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Klavişi uzun müddət basmada gecikmə"</string>
     <string name="button_default" msgid="3988017840431881491">"Defolt"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> təbiqinə xoş gəlmisiniz"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"Jest Yazısı ilə"</string>
@@ -143,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"İndi siz <xliff:g id="APPLICATION_NAME">%s</xliff:g> ilə bütün sevimli tətbiqlərinizdə yaza bilərsiniz."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Əlavə dillər quraşdır"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Sona çatdı"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Tətbiq ikonasını göstər"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Başlatma panelində tətbiq ikonasını göstər"</string>
     <string name="app_name" msgid="6320102637491234792">"Lüğət Provayderi"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Lüğət Provayderi"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Lüğət Xidməti"</string>
diff --git a/java/res/values-bg/strings-emoji-descriptions.xml b/java/res/values-bg/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..6aded1b
--- /dev/null
+++ b/java/res/values-bg/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Знак за авторски права"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Знак за запазена марка"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Двоен удивителен знак"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Удивителен и въпросителен знак"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Знак за търговска марка"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Източник на информация"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Стрелка за наляво и надясно"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Стрелка за нагоре и надолу"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Стрелка за север и запад"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Стрелка за север и изток"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Стрелка за юг и изток"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Стрелка за юг и запад"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Стрелка за наляво с кукичка"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Стрелка за надясно с кукичка"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Часовник"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Пясъчен часовник"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Черен, насочен надясно двоен триъгълник"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Черен, насочен наляво двоен триъгълник"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Черен, насочен нагоре двоен триъгълник"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Черен, насочен надолу двоен триъгълник"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Будилник"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Пясъчен часовник с падащ пясък"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Латинска главна буква M в кръгче"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Черно квадратче"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Бяло квадратче"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Черен, насочен надясно триъгълник"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Черен, насочен наляво триъгълник"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Среден бял квадрат"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Среден черен квадрат"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Средно бяло квадратче"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Средно черно квадратче"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Черно слънце с лъчи"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Облак"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Черен телефон"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Избирателна кутия с отметка"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Чадър с дъждовни капки"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Гореща напитка"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Бял, сочещ нагоре показалец"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Бяло усмихнато лице"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Овен"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Телец"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Близнаци"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Рак"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Лъв"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Дева"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Везни"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Скорпион"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Стрелец"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Козирог"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Водолей"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Риби"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Черна карта пика"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Черна карта спатия"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Черна карта купа"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Черна карта каро"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Термални извори"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Универсален черен символ за рециклиране"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Символ за инвалидна количка"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Котва"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Знак за внимание"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Знак за високо напрежение"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Средно бяло кръгче"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Средно черно кръгче"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Топка за футбол"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Бейзбол"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Снежен човек без сняг"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Слънце зад облак"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Змиеносец"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Влизането забранено"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Църква"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Фонтан"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Флагче в дупка"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Платноходка"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Палатка"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Горивна помпа"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Черни ножици"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Масивна бяла отметка"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Самолет"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Плик"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Вдигнат юмрук"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Вдигната ръка"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Ръка с два пръста в знак за победа"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Молив"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Черно перо"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Масивна отметка"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Масивен знак за умножение „x“"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Искри"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Звездичка с осем лъча"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Осмоъгълна черна звезда"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Снежинка"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Искра"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Кръстче"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Кръстче в черно квадратче"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Черен въпросителен знак"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Бял въпросителен знак"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Бял удивителен знак"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Масивен удивителен знак"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Масивно черно сърце"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Масивен знак плюс"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Масивен знак минус"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Масивен знак за деление"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Черна, сочеща надясно стрелка"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Усукана примка"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Двойна усукана примка"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Стрелка, сочеща надясно и след това нагоре"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Стрелка, сочеща надясно и след това надолу"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Сочеща наляво черна стрелка"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Сочеща нагоре черна стрелка"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Сочеща надолу черна стрелка"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Голям черен квадрат"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Голям бял квадрат"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Бяла средна звезда"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Масивно голямо кръгче"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Вълнисто тире"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Музикален знак за смяна на гласа"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Идеограма „Поздравления“ в кръгче"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Идеограма „Тайна“ в кръгче"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Плочка от игра „Махджонг“ с червен дракон"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Карта черен джокер"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Кръвна група A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Кръвна група B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Кръвна група 0"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Паркинг"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Кръвна група AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"„CL“ в квадратче"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"„COOL“ в квадратче"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"„FREE“ в квадратче"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"„ID“ в квадратче"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"„NEW“ в квадратче"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"„N G“ в квадратче"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"„OK“ в квадратче"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"„SOS“ в квадратче"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"„Up с удивителен знак“ в квадратче"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"„VS“ в квадратче"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"„Тук“ на катакана в квадратче"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"„Услуга“ на катакана в квадратче"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Идеограма „Безплатно“ в квадратче"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Идеограма „Запазено място“ в квадратче"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Идеограма „Забрана“ в квадратче"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Идеограма „Празно място“ в квадратче"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Идеограма „Приемане“ в квадратче"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Идеограма „Пълна заетост“ в квадратче"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Идеограма „Платено“ в квадратче"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Идеограма „Месечно“ в квадратче"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Идеограма „Прилагане“ в квадратче"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Идеограма „Отстъпка“ в квадратче"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Идеограма „Отворено за бизнес“ в квадратче"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Идеограма „Предимство“ в кръгче"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Идеограма „Приемане“ в кръгче"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Циклон"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Мъгливо"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Затворен чадър"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Нощ със звезди"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Изгрев над планини"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Изгрев"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Градски пейзаж по здрач"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Залез над сгради"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Дъга"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Мост през нощта"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Водна вълна"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Вулкан"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Млечен път"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Глобус с Европа и Африка"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Глобус с Южна и Северна Америка"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Глобус с Азия и Австралия"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Глобус с меридиани"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Символ за новолуние"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Символ на луна с нарастващ полумесец"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Символ за първата четвърт на луната"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Символ на луна преди пълнолуние"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Символ за пълнолуние"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Символ на луна след пълнолуние"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Символ за последната четвърт на луната"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Символ на луна с намаляващ полумесец"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Полумесец"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Новолуние с лице"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Първа четвърт на луната с лице"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Последна четвърт на луната с лице"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Пълнолуние с лице"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Слънце с лице"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Ярка звезда"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Падаща звезда"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Кестен"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Младо стръкче"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Вечнозелено дърво"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Широколистно дърво"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Палмово дърво"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Кактус"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Лале"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Черешов цвят"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Роза"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Хибискус"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Слънчоглед"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Цвят"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Царевичен клас"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Оризов клас"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Билка"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Четирилистна детелина"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Кленов лист"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Паднало листо"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Листо, развяващо се от вятъра"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Гъба"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Домат"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Патладжан"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Грозде"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Пъпеш"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Диня"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Мандарина"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Лимон"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Банан"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ананас"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Червена ябълка"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Зелена ябълка"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Круша"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Праскова"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Череши"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Ягода"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Хамбургер"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Парче пица"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Кокал с месо"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Пилешко бутче"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Оризов крекер"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Оризова топка"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Сварен ориз"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Къри и ориз"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Димяща купа"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Спагети"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Хляб"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Пържени картофи"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Печен сладък картоф"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Данго"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Оден"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Суши"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Пържена скарида"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Рибено роле"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Сладолед във фунийка от машина"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Плодов скреж"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Сладолед"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Поничка"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Курабийка"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Шоколадово блокче"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Бонбон"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Близалка"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Крем карамел"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Гърне с мед"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Маслена торта"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Кутия с бенто"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Купа с храна"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Готвене"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Вилица и нож"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Чаена чаша без дръжка"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Бутилка и чаша за саке"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Чаша за вино"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Чаша за коктейли"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Тропическа напитка"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Бирена халба"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Чукащи се халби за бира"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Бебешка бутилка"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Панделка"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Опакован подарък"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Торта за рожден ден"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Тиквен фенер"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Коледно дърво"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Дядо Коледа"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Фойерверки"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Бенгалски огън"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Балон"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Конфети"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Топка с конфети"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Дърво Танабата"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Кръстосани знамена"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Украса от бор"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Японски кукли"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Вимпел с шаран"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Вятърно звънче"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Церемония по наблюдение на луната"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Училищна чанта"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Абсолвентска шапка"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Конче на въртележка"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Виенско колело"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Влакче в увеселителен парк"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Въдица и риба"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Микрофон"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Филмова камера"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Кино"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Слушалки"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Палитра за рисуване"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Цилиндър"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Циркова шатра"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Билет"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Филмова клапа"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Сценични изкуства"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Видеоигра"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Право в целта"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Игрален автомат"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Билярд"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Зарче"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Боулинг"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Карти за игра с цветя"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Музикална нота"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Няколко музикални ноти"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Саксофон"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Китара"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Музикална клавиатура"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Тромпет"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Цигулка"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Партитура"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Състезателна фланелка с лента"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Тенис ракета и топка"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Ски и ски обувка"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Баскетбол и кош"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Кариран флаг"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Сноубордист"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Бегач"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Сърфист"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Трофей"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Конни надбягвания"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Американски футбол"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Ръгби"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Плувец"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Жилищна сграда"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Къща с градина"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Офис сграда"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Японска пощенска служба"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Европейска пощенска служба"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Болница"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Банка"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Банкомат"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Хотел"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Любовен хотел"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Магазин за хранителни стоки"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Училище"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Универсален магазин"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Фабрика"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Фенер за заведение тип „изакая“"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Японски замък"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Европейски замък"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Плъх"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Мишка"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Вол"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Воден бизон"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Крава"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Леопард"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Заек"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Котка"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Дракон"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Крокодил"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Кит"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Охлюв"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Змия"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Кон"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Овен"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Коза"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Овца"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Маймуна"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Петел"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Пиле"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Куче"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Прасе"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Глиган"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Слон"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Октопод"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Спираловидна черупка"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Дървеница"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Мравка"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Медоносна пчела"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Калинка"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Риба"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Тропическа риба"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Издуваща се риба"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Костенурка"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Излюпване на пиле"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Пиленце"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Пиленце, гледащо напред"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Птица"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Пингвин"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Коала"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Пудел"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Едногърба камила"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Двугърба камила"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Делфин"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Лице на мишка"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Лице на крава"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Лице на тигър"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Лице на заек"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Лице на котка"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Лице на дракон"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Кит, изхвърлящ фонтан от пръски"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Лице на кон"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Лице на маймуна"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Лице на куче"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Лице на прасе"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Лице на жаба"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Лице на хамстер"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Лице на вълк"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Лице на мечка"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Лице на панда"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Зурла"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Отпечатъци от лапи"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Очи"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Ухо"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Нос"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Уста"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Език"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Бял, сочещ напред показалец"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Бял, сочещ надолу показалец"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Бял, сочещ наляво показалец"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Бял, сочещ надясно показалец"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Знак за юмрук"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Знак за махане с ръка"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Знак за „OK“ с ръка"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Знак за одобрение"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Знак за неодобрение"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Знак за пляскащи ръце"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Знак за отворени ръце"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Корона"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Женска шапка"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Очила"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Вратовръзка"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Тениска"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Дънки"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Рокля"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Кимоно"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Бикини"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Дамски дрехи"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Портмоне"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Ръчна чанта"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Дамска чанта"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Мъжка обувка"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Спортна обувка"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Обувка с висок ток"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Женски сандал"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Женски ботуши"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Отпечатъци"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Силует на бюст"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Силует на бюстове"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Момче"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Момиче"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Мъж"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Жена"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Семейство"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Мъж и жена, които се държат за ръце"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Двама мъже, които се държат за ръце"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Две жени, които се държат за ръце"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Полицай"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Жена със заешки уши"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Булка с воал"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Човек с руса коса"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Мъж с кепе"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Мъж с тюрбан"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Възрастен мъж"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Възрастна жена"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Бебе"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Строителен работник"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Принцеса"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Японско чудовище"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Японски таласъм"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Призрак"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Бебе ангел"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Извънземно"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Извънземно чудовище"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Дяволче"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Череп"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Човек на гише за информация"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Гвардеец"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Танцьор"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Червило"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Лак за нокти"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Масаж на лице"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Подстригване"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Знак за бръснарница"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Спринцовка"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Хапче"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Отпечатък от целувка"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Любовно писмо"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Пръстен"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Скъпоценен камък"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Целувка"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Букет"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Двойка със сърце"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Сватба"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Туптящо сърце"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Разбито сърце"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Две сърца"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Блестящо сърце"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Растящо сърце"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Сърце със стрела"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Синьо сърце"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Зелено сърце"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Жълто сърце"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Лилаво сърце"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Сърце с панделка"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Въртящи се сърца"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Украса със сърца"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Ромбоид с точка по средата"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Електрическа крушка"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Символ за гняв"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Бомба"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Символ за сън"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Символ за удар"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Символ за пръски пот"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Капчица"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Символ за тире"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Купчина изпражнения"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Бицепс"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Символ за замайване"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Балонче с реч"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Балонче с мисъл"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Бяло цвете"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Символ за сто точки"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Чантичка с пари"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Обмяна на валута"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Масивен знак за долар"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Кредитна карта"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Банкнота със знака за йена"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Банкнота със знака за долар"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Банкнота със знака за евро"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Банкнота със знака за лира"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Пари с криле"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Диаграма с възходяща тенденция и знак за йена"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Седалка"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Персонален компютър"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Куфарче"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Минидиск"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Дискета"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Оптичен диск"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Папка с файлове"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Отворена папка с файлове"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Подвита страница"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Страница, подвита в горната част"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Календар"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Календар с листчета за късане"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Визитник"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Диаграма с възходяща тенденция"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Диаграма с низходяща тенденция"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Стълбовидна диаграма"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Клипборд"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Кабърче"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Кръгло кабърче"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Кламер"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Линия"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Триъгълник за измерване"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Раздели за отметки"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Дневник"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Тетрадка"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Тетрадка с украсена корица"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Затворена книга"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Отворена книга"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Зелена книга"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Синя книга"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Оранжева книга"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Книги"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Значка за име"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Свитък"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Паметна бележка"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Телефонна слушалка"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Пейджър"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Факс"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Сателитна антена"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Високоговорител"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Мегафон"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Изходяща поща"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Входяща поща"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Пакет"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Символ за имейл"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Входящ плик"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Плик, над който има стрелка надолу"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Затворена пощенска кутия със свален капак"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Затворена пощенска кутия с вдигнат капак"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Отворена пощенска кутия с вдигнат капак"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Отворена пощенска кутия със свален капак"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Пощенска кутия"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Пощенски рог"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Вестник"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Мобилен телефон"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Мобилен телефон със сочеща надясно стрелка отляво"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Режим на вибриране"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Изключен мобилен телефон"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Забрана за мобилни телефони"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Антена с чертички"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Камера"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Видеокамера"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Телевизия"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Радио"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Видеокасета"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Усукани надясно стрелки"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Стрелки в отворен кръг, сочещи надясно и наляво по часовниковата посока"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Сочещи надясно и наляво в отворен кръг стрелки по часовниковата посока с едно в кръгче върху тях"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Стрелки в отворен кръг, сочещи надолу и нагоре по часовниковата посока"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Стрелки в отворен кръг, сочещи надолу и нагоре обратно на часовниковата посока"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Символ за ниска яркост"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Символ за висока яркост"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Зачеркнат говорител"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Говорител"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Говорител с една звукова вълна"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Говорител с три звукови вълни"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Батерия"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Електрически щепсел"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Сочеща наляво лупа"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Сочеща надясно лупа"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Катинар с писалка"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Заключен катинар с ключ"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Ключ"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Катинар"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Отворен катинар"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Звънец"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Зачеркнат звънец"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Отметка"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Символ за връзка"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Бутон за избор"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Думата „BACK“, над която има сочеща наляво стрелка"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"Думата „END“, над която има сочеща наляво стрелка"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"Думата „ON“ с удивителен знак, над които има сочеща наляво стрелка"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Думата „SOON“, над която има сочеща надясно стрелка"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Думата „TOP“, над която има сочеща нагоре стрелка"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Символ за забранено под 18 години"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Бутон 10"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Символ за въвеждане на главни латински букви"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Символ за въвеждане на малки латински букви"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Символ за въвеждане на числа"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Символ за въвеждане на символи"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Символ за въвеждане на латински букви"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Пожар"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Електрическо фенерче"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Гаечен ключ"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Чук"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Гайка и болт"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Японски кухненски нож"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Пистолет"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Микроскоп"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Телескоп"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Кристална топка"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Шестолъчка с точка в средата"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Японски символ за начинаещ"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Емблема с тризъбец"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Бутон черно квадратче"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Бутон бяло квадратче"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Голям червен кръг"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Голям син кръг"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Голям оранжев ромб"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Голям син ромб"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Малък оранжев ромб"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Малък син ромб"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Сочещ нагоре червен триъгълник"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Сочещ надолу червен триъгълник"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Сочещ нагоре малък червен триъгълник"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Сочещ надолу малък червен триъгълник"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Часовник, показващ един часа"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Часовник, показващ два часа"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Часовник, показващ три часа"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Часовник, показващ четири часа"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Часовник, показващ пет часа"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Часовник, показващ шест часа"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Часовник, показващ седем часа"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Часовник, показващ осем часа"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Часовник, показващ девет часа"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Часовник, показващ десет часа"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Часовник, показващ единадесет часа"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Часовник, показващ дванадесет часа"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Часовник, показващ един и тридесет"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Часовник, показващ два и тридесет"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Часовник, показващ три и тридесет"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Часовник, показващ четири и тридесет"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Часовник, показващ пет и тридесет"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Часовник, показващ шест и тридесет"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Часовник, показващ седем и тридесет"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Часовник, показващ осем и тридесет"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Часовник, показващ девет и тридесет"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Часовник, показващ десет и тридесет"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Часовник, показващ единадесет и тридесет"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Часовник, показващ дванадесет и тридесет"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Фуджи"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Токийската кула"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Статуята на Свободата"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Силует на Япония"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Статуя"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Ухилено лице"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Ухилено лице със засмени очи"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Лице със сълзи от радост"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Усмихнато лице с отворена уста"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Усмихнато лице с отворена уста и засмени очи"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Усмихнато лице с отворена уста и студена пот"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Усмихнато лице с отворена уста и плътно затворени очи"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Усмихнато лице с ореол"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Усмихнато лице с рога"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Намигващо лице"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Усмихнато лице със засмени очи"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Лице, наслаждаващо се на вкусна храна"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Облекчено лице"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Усмихнато лице с очи във формата на сърце"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Усмихнато лице със слънчеви очила"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Самодоволно лице"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Неутрално лице"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Безизразно лице"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Безинтересно лице"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Лице със студена пот"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Замислено лице"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Объркано лице"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Смутено лице"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Целуващо лице"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Лице, изпращащо целувка"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Целуващо лице със засмени очи"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Целуващо лице със затворени очи"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Лице с изплезен език"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Лице с изплезен език и намигащи очи"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Лице с изплезен език и плътно затворени очи"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Разочаровано лице"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Притеснено лице"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Ядосано лице"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Сърдито лице"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Плачещо лице"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Упорито лице"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Лице с триумфален поглед"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Разочаровано, но облекчено лице"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Намръщено лице с отворена уста"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Измъчено лице"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Уплашено лице"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Отегчено лице"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Спящо лице"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Изморено лице"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Правещо гримаса лице"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Ревящо лице"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Лице с отворена уста"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Притихнало лице"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Лице с отворена уста и студена пот"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Лице, крещящо от страх"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Изумено лице"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Изчервено лице"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Спящо лице"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Замаяно лице"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Лице без уста"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Лице с медицинска маска"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Ухилено лице на котка със засмени очи"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Лице на котка със сълзи от радост"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Усмихнато лице на котка с отворена уста"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Усмихнато лице на котка с очи във формата на сърце"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Лице на котка с иронична усмивка"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Целуващо лице на котка със затворени очи"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Сърдито лице на котка"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Плачещо лице на котка"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Отегчено лице на котка"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Неодобряващо лице"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Одобряващо лице"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Покланящ се човек"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Маймунка, която си закрива очите, за да не види нещо лошо"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Маймунка, която си запушва ушите, за да не чуе нещо лошо"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Маймунка, която си запушва устата, за да не каже нещо лошо"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Весел човек, който си вдига едната ръка"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Човек с вдигнати ръце в знак на празнуване"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Човек, който се мръщи"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Човек със сърдито лице"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Човек, който се моли"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Ракета"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Хеликоптер"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Парен локомотив"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Вагон"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Високоскоростен влак"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Високоскоростен влак-стрела"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Влак"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Метро"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Леко метро"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Станция"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Трамвай"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Трамвай"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Автобус"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Насрещен автобус"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Тролейбус"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Автобусна спирка"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Микробус"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Линейка"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Противопожарна кола"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Полицейска кола"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Насрещна полицейска кола"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Такси"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Насрещно такси"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Автомобил"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Насрещен автомобил"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Джип"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Камион за доставки"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Съчленен камион"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Трактор"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Монорелса"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Планинска железница"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Окачена железница"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Планински лифт"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Въздушен трамвай"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Кораб"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Гребна лодка"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Бърза моторна лодка"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Хоризонтален светофар"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Вертикален светофар"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Знак за строеж"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Сигнална лампа на полицейска кола"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Триъгълен флаг"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Врата"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Знак за забранено влизане"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Знак за пушене"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Символ за забранено пушене"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Символ за хвърляне на отпадъците на съответното място"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Символ да не се хвърлят отпадъци"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Символ за питейна вода"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Символ за непитейна вода"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Велосипед"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Забранено за велосипеди"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Колоездач"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Планински колоездач"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Пешеходец"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Забранено за пешеходци"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Пресичащи деца"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Символ за мъже"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Символ за жени"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Обществена тоалетна"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Символ за бебета"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Тоалетна"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Тоалетна"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Душ"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Баня"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Вана"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Паспортен контрол"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Митница"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Вземане на багажа"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Съхраняване на багаж"</string>
+</resources>
diff --git a/java/res/values-bg/strings-talkback-descriptions.xml b/java/res/values-bg/strings-talkback-descriptions.xml
index c1271bf..d7c3449 100644
--- a/java/res/values-bg/strings-talkback-descriptions.xml
+++ b/java/res/values-bg/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Няма въведен текст"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"„<xliff:g id="KEY_NAME">%1$s</xliff:g>“ коригира „<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>“ на „<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>“"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"„<xliff:g id="KEY_NAME">%1$s</xliff:g>“ изпълнява автоматично коригиране"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Няма предложение"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Неизвестен знак"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Още символи"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Главна буква I с точка отгоре"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Неизвестен символ"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Неизвестен емотикон"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Отегчено лице"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Засрамено лице"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Лице със слънчеви очила"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Изненадано лице"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Целуващо лице"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Намръщено лице"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Налице са алтернативни знаци"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Алтернативните знаци са отхвърлени"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Налице са алтернативни предложения"</string>
diff --git a/java/res/values-bg/strings.xml b/java/res/values-bg/strings.xml
index a2ded38..e5b8f05 100644
--- a/java/res/values-bg/strings.xml
+++ b/java/res/values-bg/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Да вибрира при натискане на клавиш"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Звук при натискане на клавиш"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Изскачащ прозорец при натискане на клавиш"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Предпочитания"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Профили и поверителност"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Облик и оформления"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Въвеждане чрез жест"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Коригиране на текст"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Разширени"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Тема"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Активиране на разделената клавиатура"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Клавиатура на Google: Синхрон."</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Синхронизирането е включено"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Синхронизиране на личния ви речник на устройствата"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Синхронизиране сега"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Изтриване на данните в облака"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Изтрива синхронизираните ви данни от Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Синхрон. ви данни ще бъдат изтрити от облака. Сигурни ли сте?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Изтриване"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Отказ"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Личният ви речник ще бъде синхронизиран и за него ще бъде създадено резервно копие на сървърите на Google. Статистическата информация за честотата на използване на думите може да се събира с цел подобряване на продуктите ни. Събирането и ползването на всички данни ще бъде съгласно "<a href="https://www.google.com/policies/privacy">"Декларацията ни за поверителност"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"За да активирате функцията, добавете профил в Google към у-вото"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Други методи за въвеждане"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Клавишът за превкл. на езика обхваща и други методи за въвеждане"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Клавиш за превкл. на езика"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Показване при няколко активирани езика за въвеждане"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Индикатор за плъзгане: Показв."</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Визуална подсказка при плъзгане от „Shift“ или клавиш за символи"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Отхвърляне на подсказката"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Без задържане"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"По подразбиране"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Основен речник"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Показване на предложения за поправка"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Показване на предложения, докато пишете"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Винаги да се показва"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Показване във вертикална ориентация"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Винаги да се скрива"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Блокиране на обидни думи"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Без потенциално обидни думи"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Автоматична поправка"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Клавиш за гласово въвеждане"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Няма активирани методи на гласово въвеждане. Проверете настройките за език и въвеждане."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Конфигуриране на въвеждането"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Входни езици"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Изпращане на отзиви"</string>
-    <string name="select_language" msgid="3693815588777926848">"Езици за въвеждане"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Езици"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Помощ и отзиви"</string>
+    <string name="select_language" msgid="5709487854987078367">"Езици"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Докоснете отново, за да запазите"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Докоснете тук, за да запазите"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Има достъп до речник"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Тема на клавиатурата"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Превключване между профилите"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Няма избрани профили"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Понастоящем използвате <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"ОK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Отказ"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Изход"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Изберете профил, който да използвате"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"английски (Великобритания)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"английски (САЩ)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"испански (САЩ)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Хинглиш"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Сръбска (латиница)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"английски (Великобр.) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"английски (САЩ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"испански (САЩ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Хинглиш (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Сръбска (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (традиционна клавиатура)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (кирилица)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (латиница)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (компактна)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Без език (латиница)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Латиница (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Латиница (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Латиница (Коулмак)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Латиница (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Емотикони"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Тема на клавиатурата"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Персон. стилове за въвежд."</string>
     <string name="add_style" msgid="6163126614514489951">"+ стил"</string>
     <string name="add" msgid="8299699805688017798">"Добавяне"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Активиране"</string>
     <string name="not_now" msgid="6172462888202790482">"Не сега"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Същият стил на въвеждане вече съществува: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Забавяне при продълж. натискане"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Продълж. на вибриране при натискане"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Сила на звука при натиск. на клавиш"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Четене на файл за външен речник"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"В папката „Изтегляния“ няма файлове за речник"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Изберете файл за речника, който да инсталирате"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Наистина ли да се инсталира този файл за <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Възникна грешка"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Забавяне при продълж. натискане"</string>
     <string name="button_default" msgid="3988017840431881491">"Стандартни"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Добре дошли в/ъв <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"с въвеждане чрез жест"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Вече можете да пишете във всичките си любими приложения посредством <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Конфигуриране на допълнителни езици"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Край"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Показв. на иконата на прилож."</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Показване на иконата на приложението в стартовия панел"</string>
     <string name="app_name" msgid="6320102637491234792">"Доставчик на речника"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Доставчик на речника"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Услуга за речник"</string>
diff --git a/java/res/values-bn-rBD/strings-talkback-descriptions.xml b/java/res/values-bn-rBD/strings-talkback-descriptions.xml
index 7cf17a1..3d3cbfc 100644
--- a/java/res/values-bn-rBD/strings-talkback-descriptions.xml
+++ b/java/res/values-bn-rBD/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"কোনো পাঠ্য লেখা হয়নি"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> কী <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> কে <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> এ সংশোধন করছে"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> স্বত:সংশোধন করে"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"কোনো প্রস্তাবনা নেই"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"অজানা অক্ষর"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"শিফ্ট"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"আরো প্রতীক"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"বড় হাতের I, উপরে বিন্দু"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"অজানা প্রতীক"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"অজানা ইমোজি"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"বিরক্তিকর চেহারা"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"বিব্রত চেহারা"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"সানগ্লাস পরিহিত চেহারা"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"বিস্মিত চেহারা"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"চুম্বনরত চেহারা"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"ভ্রূকুঞ্চিত চেহারা"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"বিকল্প অক্ষরগুলি উপলব্ধ রয়েছে"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"বিকল্প অক্ষরগুলি সরিয়ে দেওয়া হয়"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"বিকল্প প্রস্তাবনাগুলি উপলব্ধ রয়েছে"</string>
diff --git a/java/res/values-bn-rBD/strings.xml b/java/res/values-bn-rBD/strings.xml
index 75bcc6b..de96826 100644
--- a/java/res/values-bn-rBD/strings.xml
+++ b/java/res/values-bn-rBD/strings.xml
@@ -26,18 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"কীপ্রেস এর সময় কম্পন"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"কীপ্রেস এর সময়ের শব্দ"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"কীপ্রেস এর ফলে পপআপ"</string>
-    <string name="settings_screen_input" msgid="2808654300248306866">"ইনপুট পছন্দগুলি"</string>
-    <string name="settings_screen_appearances" msgid="3611951947835553700">"উপস্থিতি"</string>
-    <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"একাধিক ভাষা বিকল্পগুলি"</string>
-    <string name="settings_screen_gesture" msgid="9113437621722871665">"অঙ্গভঙ্গি টাইপিং অভিরুচি"</string>
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"পছন্দসমূহ"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"অ্যাকাউন্টগুলি ও গোপনীয়তা"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"চেহারা ও লেআউটগুলি"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"অঙ্গভঙ্গি টাইপিং"</string>
     <string name="settings_screen_correction" msgid="1616818407747682955">"পাঠ্য সংশোধন"</string>
     <string name="settings_screen_advanced" msgid="7472408607625972994">"উন্নত"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"থিম"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"বিভক্ত কীবোর্ড সক্ষম করুন"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google কীবোর্ড সিঙ্ক"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"সিঙ্ক চালু করা হয়েছে"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"ডিভাইস জুড়ে আপনার ব্যক্তিগত অভিধান সিঙ্ক করুন"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"এখন সিঙ্ক করুন"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"ক্লাউড ডেটা মুছুন"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Google থেকে আপনার সিঙ্ক করা ডেটা মুছে ফেলে"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"আপনার সিঙ্ক করা ডেটা ক্লাউড থেকে মুছে ফেলা হবে৷ আপনি কি নিশ্চিত?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"মুছুন"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"বাতিল"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"আপনার ব্যক্তিগত অভিধান Google সার্ভারগুলিতে সিঙ্ক এবং ব্যাকআপ নেওয়া হবে৷ শব্দ ফ্রিকোয়েন্সির পরিসংখ্যানগত তথ্য আমাদের পণ্য উন্নতিতে সহায়তার জন্য সংগ্রহ করা হতে পারে৷ এই সংগ্রহ এবং সমস্ত তথ্যের ব্যবহার "<a href="https://www.google.com/policies/privacy">"Google এর গোপনীয়তা নীতি"</a>"-র সাথে সঙ্গতিশীল হবে৷"</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"এই বৈশিষ্ট্যটি সক্ষম করার জন্য অনুগ্রহ করে এই ডিভাইসে একটি Google অ্যাকাউন্ট যোগ করুন"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"অন্য ইনপুট পদ্ধতিতে স্যুইচ করুন"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"ভাষা স্যুইচ কীতে অন্যান্য ইনপুট পদ্ধতি পাওয়া যায়"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"ভাষা স্যুইচ কী"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"যখন একাধিক ইনপুট ভাষা সক্ষম থাকে তখন দেখান"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"স্লাইড সূচক দেখান"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"শিফ্ট বা সাংকেতিক চিহ্ন থেকে স্লাইড করার সময় চাক্ষুষ ইঙ্গিত প্রদর্শন"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"কী পপআপ বিলম্ব খারিজ"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"কোনো বিলম্ব হয়নি"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"ডিফল্ট"</string>
@@ -56,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"মূল অভিধান"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"সংশোধনের পরামর্শগুলি দেখান"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"লেখার সময় প্রস্তাবিত শব্দের প্রদর্শন"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"সবসময় দেখান"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"প্রতিকৃতি মোডে দেখান"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"সর্বদা লুকান"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"আপত্তিজনক শব্দ অবরোধ করুন"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"সম্ভাব্য অশোভন শব্দ সুপারিশ করবেন না"</string>
     <string name="auto_correction" msgid="7630720885194996950">"স্বত:সংশোধন"</string>
@@ -79,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"ভয়েস ইনপুট কী"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"কোনো ভয়েস ইনপুট পদ্ধতি সক্ষম নয়। ভাষা &amp; ইনপুট সেটিংস পরীক্ষা করুন।"</string>
     <string name="configure_input_method" msgid="373356270290742459">"ইনপুট পদ্ধতি কনফিগার করুন"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"ইনপুট ভাষাগুলি"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"প্রতিক্রিয়া পাঠান"</string>
-    <string name="select_language" msgid="3693815588777926848">"ইনপুট ভাষাগুলি"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"ভাষাগুলি"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"সহায়তা এবং প্রতিক্রিয়া"</string>
+    <string name="select_language" msgid="5709487854987078367">"ভাষাগুলি"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"সংরক্ষণ করতে আবার ছোঁন"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"সংরক্ষণ করতে এখানে স্পর্শ করুন"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"অভিধান উপলব্ধ"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"কীবোর্ড থিম"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"অ্যাকাউন্ট পাল্টান"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"কোন অ্যাকাউন্ট নির্বাচন করা হয়নি"</string>
+    <string name="account_selected" msgid="2846876462199625974">"বর্তমানে <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g> ব্যবহার করা হচ্ছে"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"ঠিক আছে"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"বাতিল করুন"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"সাইন আউট"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"ব্যবহার করার জন্য একটি অ্যাকাউন্ট নির্বাচন করুন"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"ইংরেজি (UK)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"ইংরেজি (US)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"স্প্যানিশ (US)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"সার্বিয়ান (ল্যাটিন)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"ইংরেজি (UK) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"ইংরেজি (US) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"স্প্যানিশ (US) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"সার্বিয়ান (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ঐতিহ্যবাহি)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (সিরিলিক)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ল্যাটিন)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (কম্প্যাক্ট)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"কোনো ভাষা নয় (বর্ণমালা)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"বর্ণমালা (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"বর্ণমালা (QWERTZ)"</string>
@@ -103,10 +122,6 @@
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"বর্ণমালা (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"ইমোজি"</string>
     <string name="keyboard_theme" msgid="4909551808526178852">"কীবোর্ড থিম"</string>
-    <string name="keyboard_theme_holo_white" msgid="8506588144096428751">"হলো হোয়াইট"</string>
-    <string name="keyboard_theme_holo_blue" msgid="192400518003397418">"হলো ব্লু"</string>
-    <string name="keyboard_theme_material_dark" msgid="2701178578784760596">"ম্যাটেরিয়াল ডার্ক"</string>
-    <string name="keyboard_theme_material_light" msgid="3479400901818790331">"ম্যাটেরিয়াল লাইট"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"কাস্টম ইনপুট শৈলীগুলি"</string>
     <string name="add_style" msgid="6163126614514489951">"শৈলী জুড়ুন"</string>
     <string name="add" msgid="8299699805688017798">"জুড়ুন"</string>
@@ -118,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"সক্ষম করুন"</string>
     <string name="not_now" msgid="6172462888202790482">"এখন নয়"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"একই ইনপুট শৈলী ইতোমধ্যে বিদ্যমান: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"কী প্রেসে দীর্ঘ বিলম্ব"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"কীপ্রেস কম্পন সময়কাল"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"কীপ্রেস সাউন্ড ভলিউম"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"বহিরাগত অভিধান ফাইলটি পড়ুন"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"ডাউনলোডস ফোল্ডারে কোনো অভিধান ফাইল নেই"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"ইনস্টল করার জন্য একটি অভিধান ফাইল নির্বাচন করুন"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"সত্যিই কি <xliff:g id="LANGUAGE_NAME">%s</xliff:g> এর জন্য এই ফাইলটি ইনস্টল করবেন?"</string>
-    <string name="error" msgid="8940763624668513648">"একটি ত্রুটি ছিল"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"কী প্রেসে দীর্ঘ বিলম্ব"</string>
     <string name="button_default" msgid="3988017840431881491">"ডিফল্ট"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> এ স্বাগতম"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"অঙ্গভঙ্গি টাইপিং এর মাধ্যমে"</string>
@@ -133,8 +143,8 @@
     <string name="setup_next_action" msgid="371821437915144603">"পরবর্তী পদক্ষেপ"</string>
     <string name="setup_steps_title" msgid="6400373034871816182">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> সেট আপ হচ্ছে"</string>
     <string name="setup_step1_title" msgid="3147967630253462315">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> সক্ষম করুন"</string>
-    <string name="setup_step1_instruction" msgid="2578631936624637241">"দয়া করে আপনার ভাষা ও ইনপুট সেটিংস <xliff:g id="APPLICATION_NAME">%s</xliff:g> পরীক্ষা করুন। এর ফলে এটি আপনার ডিভাইসে চলার জন্য অনুমোদন পাবে।"</string>
-    <string name="setup_step1_finished_instruction" msgid="10761482004957994">"আপনার ভাষা ও ইনপুট সেটিংসে ইতোমধ্যে <xliff:g id="APPLICATION_NAME">%s</xliff:g> সক্ষম করা হয়েছে, তাই এই পদক্ষেপটি সমাপ্ত। পরবর্তীটিতে এগোন!"</string>
+    <string name="setup_step1_instruction" msgid="2578631936624637241">"দয়া করে আপনার ভাষা ও কিবোর্ড সেটিংস <xliff:g id="APPLICATION_NAME">%s</xliff:g> পরীক্ষা করুন। এর ফলে এটি আপনার ডিভাইসে চলার জন্য অনুমোদন পাবে।"</string>
+    <string name="setup_step1_finished_instruction" msgid="10761482004957994">"আপনার ভাষা ও কিবোর্ড সেটিংসে ইতোমধ্যে <xliff:g id="APPLICATION_NAME">%s</xliff:g> সক্ষম করা হয়েছে, তাই এই পদক্ষেপটি সমাপ্ত। পরবর্তীটিতে এগোন!"</string>
     <string name="setup_step1_action" msgid="4366513534999901728">"সেটিংসে সক্ষম করুন"</string>
     <string name="setup_step2_title" msgid="6860725447906690594">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> এ স্যুইচ করুন"</string>
     <string name="setup_step2_instruction" msgid="9141481964870023336">"এখন, সক্রিয় পাঠ্য-ইনপুট পদ্ধতি হিসেবে \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" নির্বাচন করুন।"</string>
@@ -143,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"এখন <xliff:g id="APPLICATION_NAME">%s</xliff:g> এর সাহায্যে আপনার সব পছন্দসই অ্যাপ্লিকেশানে লিখতে পারবেন।"</string>
     <string name="setup_step3_action" msgid="600879797256942259">"অতিরিক্ত ভাষাগুলি কনফিগার করুন"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"শেষ হয়েছে"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"অ্যাপ্লিকেশান আইকন দেখান"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"লঞ্চারে অ্যাপ্লিকেশান আইকন প্রদর্শন"</string>
     <string name="app_name" msgid="6320102637491234792">"অভিধান প্রদানকারী"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"অভিধান প্রদানকারী"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"অভিধান পরিষেবা"</string>
diff --git a/java/res/values-ca/strings-emoji-descriptions.xml b/java/res/values-ca/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..0a356f8
--- /dev/null
+++ b/java/res/values-ca/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Signe de drets d\'autor"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Signe de marca registrada"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Signe d\'exclamació doble"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Signe d\'exclamació i d\'interrogació"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Signe de marca comercial"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Punt d\'informació"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Fletxa cap a l\'esquerra i cap a la dreta"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Fletxa cap amunt i cap avall"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Fletxa nord-oest"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Fletxa nord-est"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Fletxa sud-est"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Fletxa sud-oest"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Fletxa cap a l\'esquerra amb ganxo"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Fletxa cap a la dreta amb ganxo"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Rellotge"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Rellotge de sorra"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Triangle negre doble cap a la dreta"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Triangle negre doble cap a l\'esquerra"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Triangle negre doble cap amunt"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Triangle negre doble cap avall"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Rellotge despertador"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Rellotge de sorra amb sorra que cau"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Lletra de l\'alfabet llatí M majúscula encerclada"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Quadrat negre petit"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Quadrat blanc petit"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Triangle negre cap a la dreta"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Triangle negre cap a l\'esquerra"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Quadrat blanc mitjà"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Quadrat negre mitjà"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Quadrat blanc petit"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Quadrat negre petit"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Sol negre amb raigs"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Núvol"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Telèfon negre"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Casella amb marca de verificació"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Paraigües amb les gotes de pluja"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Beguda calenta"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Dit índex que apunta cap amunt"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Cara somrient blanca"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Àries"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Taure"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Bessons"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Càncer"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Lleó"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Verge"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Balança"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Escorpió"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Sagitari"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Capricorn"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Aquari"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Peixos"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Pica negra"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Trèvol negre"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Cor negre"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Diamant negre"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Font termal"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Símbol universal de reciclatge negre"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Símbol de cadira de rodes"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Àncora"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Senyal d\'advertiment"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Senyal d\'alt voltatge"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Cercle blanc mitjà"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Cercle negre mitjà"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Pilota de futbol"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Beisbol"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Ninot de neu"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Sol darrere d\'un núvol"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Serpentari"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Prohibit el pas"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Església"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Font"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Banderí al forat"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Veler"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Tenda de campanya"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Assortidor de gasolina"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Tisores negres"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Marca de verificació blanca gran"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Avió"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Sobre"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Puny aixecat"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Mà aixecada"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Senyal de la victòria"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Llapis"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Ploma negra"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Marca de verificació gran"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Signe de multiplicar gran"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Espurnejos"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Asterisc de vuit radis"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Estrella negra de vuit puntes"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Floc de neu"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Espurneig"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Creu"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Creu blanca sobre quadrat negre"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Signe d\'interrogació negre"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Signe d\'interrogació blanc"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Signe d\'exclamació blanc"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Signe d\'exclamació blanc gran"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Cor molt negre"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Signe més gran"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Signe menys gran"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Signe de divisió gran"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Fletxa negra cap a la dreta"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Bucle"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Bucle doble"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Fletxa cap a la dreta que es corba cap amunt"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Fletxa cap a la dreta que es corba cap avall"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Fletxa negra cap a l\'esquerra"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Fletxa negra cap amunt"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Fletxa negra cap avall"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Quadrat negre gran"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Quadrat blanc gran"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Estrella blanca mitjana"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Cercle gran"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Guió ondulat"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Signe d\'alternança"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Ideograma circular de felicitació"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Ideograma circular de secret"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Fitxa de Mahjong del drac vermell"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Comodí negre de les cartes"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Tipus de sang A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Tipus de sang B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Tipus de sang O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Aparcament"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Tipus de sang AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"Quadre amb el símbol CL"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Quadre amb la paraula Cool"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Quadre amb la paraula Free"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"Quadre amb la paraula ID"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Quadre amb la paraula New"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Quadre amb el símbol NG"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Quadre amb la paraula OK"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"Quadre amb la paraula SOS"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Quadre amb un signe d\'exclamació"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Quadre amb el símbol VS"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Quadre amb l\'ideograma japonès per a \"aquí\""</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Quadre amb l\'ideograma japonès per a \"servei\""</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Quadre amb l\'ideograma de gratuït"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Quadre amb l\'ideograma de seient reservat"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Quadre amb l\'ideograma de prohibició"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Quadre amb l\'ideograma de lliure"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Quadre amb l\'ideograma d\'acceptació"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Quadre amb l\'ideograma d\'ocupació total"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Quadre amb l\'ideograma de pagat"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Quadre amb l\'ideograma de mensual"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Quadre amb l\'ideograma d\'aplicació"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Quadre amb l\'ideograma de descompte"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Quadre amb l\'ideograma de negocis"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Cercle amb l\'ideograma d\'avantatge"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Cercle amb l\'ideograma d\'acceptar"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Cicló"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Emboirat"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Paraigües tancat"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Nit amb estrelles"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Sortida del sol sobre les muntanyes"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Sortida del sol"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Paisatge urbà al vespre"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Posta de sol sobre els edificis"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Arc de Sant Martí"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Pont a la nit"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Onada"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Volcà"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Via Làctia"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Globus terraqüi d\'Europa i Àfrica"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Globus terraqüi del continent americà"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Globus terraqüi d\'Àsia i Austràlia"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Globus terraqüi amb meridians"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Lluna nova"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Lluna en quart creixent"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Lluna en el primer quart creixent"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Lluna gibosa creixent"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Lluna plena"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Lluna gibosa minvant"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Lluna en l\'últim quart minvant"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Lluna minvant"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Lluna creixent"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Lluna nova amb cara"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Lluna creixent amb cara"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Lluna minvant amb cara"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Lluna plena amb cara"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Sol amb cara"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Estrella que brilla"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Estrella fugaç"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Castanya"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Planta de planter"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Arbre de fulla perenne"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Arbre de fulla caduca"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palmera"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Cactus"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulipa"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Flor de cirerer"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Rosa"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Hibisc"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Gira-sol"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Flor"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Panotxa de blat de moro"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Espiga d\'arròs"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Herba"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Trèvol de quatre fulles"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Fulla d\'auró"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Fulla caiguda"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Fulla que vola amb el vent"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Bolet"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Tomàquet"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Albergínia"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Raïm"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Meló"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Síndria"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Mandarina"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Llimona"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Plàtan"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Pinya"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Poma vermella"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Poma verda"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Pera"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Préssec"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Cireres"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Maduixa"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburguesa"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Porció de pizza"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Carn amb l\'os"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Cuixa de pollastre"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Galeta d\'arròs"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Bola d\'arròs"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Arròs bullit"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Arròs amb curri"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Plat fumejant"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Espagueti"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Pa"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Patates fregides"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Moniato rostit"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Sushi"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Gamba fregida"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Pastís de peix amb forma de remolí"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Gelat de màquina"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Granissat"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Gelat"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Rosquilla"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Galeta"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Rajola de xocolata"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Caramel"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Pirulí"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Flam"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Pot de mel"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Porció de pastís"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Caixa de bento"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Plat de menjar"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Fent un ou ferrat"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Forquilla i ganivet"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Tassa de te sense nansa"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Ampolla de sake i got"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Copa de vi"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Còctel"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Beguda tropical"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Gerra de cervesa"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Brindis amb gerres de cervesa"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Biberó"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Llaç"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Regal embolicat"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Pastís d\'aniversari"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Carabassa de Halloween"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Arbre de Nadal"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Pare Noel"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Focs artificials"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Bengala"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Globus"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Tub de confeti"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Bola de confeti"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Arbre dels desitjos de Tanabata"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Banderes creuades"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Decoració de bambú"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Nines japoneses"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Banderins de carpes"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Mòbil sonor"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Cerimònia de contemplació de la lluna"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Motxilla de l\'escola"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Birret de la graduació"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Cavall dels cavallets"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Sínia de fira"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Muntanya russa"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Canya de pescar i peix"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Micròfon"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Càmera de cinema"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Cinema"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Auricular"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Paleta de l\'artista"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Barret de copa"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Vela de circ"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Entrada"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Claqueta"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Arts escèniques"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Videojoc"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Diana"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Escurabutxaques"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Billar"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Dau"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Bitlles"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Cartes de les flors"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Nota musical"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Diverses notes musicals"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saxòfon"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Guitarra"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Teclat musical"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Trompeta"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Violí"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Partitura"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Samarreta per córrer amb banda"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Raqueta de tennis i pilota"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Esquí"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Bàsquet"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Bandera a quadres"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Surfista de neu"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Corredor"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Surfista"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Trofeu"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Curses de cavalls"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Futbol americà"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Rugbi"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Nedador"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Casa"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Casa amb jardí"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Edifici d\'oficines"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Oficina de correus japonesa"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Oficina de correus europea"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Hospital"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Banc"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Caixer automàtic"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Hotel"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Hotel de cites"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Botiga local"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Escola"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Grans magatzems"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Fàbrica"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Llum d\'izakaya"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Castell japonès"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Castell europeu"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Rata"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Ratolí"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Bou"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Búfal indi"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Vaca"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Lleopard"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Conill"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Gat"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Drac"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Cocodril"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Balena"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Caragol"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Serp"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Cavall"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Moltó"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Cabra"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Ovella"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Mona"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Gall"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Gallina"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Gos"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Porc"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Porc senglar"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Elefant"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Pop"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Cargol de mar"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Insecte"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Formiga"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Abella"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Marieta"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Peix"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Peix tropical"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Peix globus"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Tortuga"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Pollet sortint de l\'ou"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Pollet"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Pollet de cara"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Ocell"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Pingüí"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Coala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Caniche"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Dromedari"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Camell"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Dofí"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Cara de ratolí"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Cara de vaca"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Cara de tigre"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Cara de conill"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Cara de gat"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Cara de drac"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Balena que treu aigua"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Cara de cavall"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Cara de mona"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Cara de gos"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Cara de porc"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Cara de granota"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Cara d\'hàmster"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Cara de llop"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Cara d\'ós"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Cara d\'ós panda"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Nas de porc"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Petjades d\'animal"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Ulls"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Orella"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Nas"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Boca"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Llengua"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Dit índex que apunta cap amunt"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Dit índex que apunta cap avall"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Dit índex que apunta cap a l\'esquerra"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Dit índex que apunta cap a la dreta"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Puny"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Mà que saluda"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Signe d\'OK amb la mà"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Signe de m\'agrada"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Signe de no m\'agrada"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Mans aplaudint"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Mans obertes"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Corona"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Barret de dona"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Ulleres"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Corbata"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Samarreta"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Texans"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Vestit"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Quimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Biquini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Camisa de dona"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Moneder"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Bossa de mà"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Estoig"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Sabata d\'home"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Sabatilla esportiva"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Sabata de taló alt"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Sandàlia de dona"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Botes de dona"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Petjades"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Silueta de bust"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Silueta de bustos"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Noi"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Noia"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Home"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Dona"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Família"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Home i dona agafats de la mà"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Dos homes agafats de la mà"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Dues dones agafades de la mà"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Agent de policia"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Dona amb orelles de conill"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Núvia amb vel"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Persona rossa"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Home amb barret típic"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Home amb turbant"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Home gran"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Dona gran"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Nadó"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Treballador de la construcció"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Princesa"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Ogre japonès"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Follet japonès"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Fantasma"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Angelet"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Alienígena"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Invasor de l\'espai"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Dimoniet"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Calavera"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Recepcionista"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Guàrdia"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Ballarina"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Pintallavis"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Pintaungles"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Massatge facial"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Tall de cabell"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Barberia"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Xeringa"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Píndola"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Marca de petó"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Carta d\'amor"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Anell"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Gemma"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Petó"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Ram"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Parella amb cor"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Casament"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Cor que batega"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Cor trencat"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Dos cors"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Cor espurnejant"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Cor que creix"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Cor amb una fletxa"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Cor blau"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Cor verd"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Cor groc"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Cor porpra"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Cor amb un llaç"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Cors que giren"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Decoració de cor"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Forma de diamant amb un punt a l\'interior"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Bombeta"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Signe de la ira"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bomba"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Signe de dormir"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Signe de col·lisió"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Esquitx de suor"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Gota"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Signe de córrer"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Caca"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Bíceps flexionat"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Signe de mareig"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Bafarada de parlar"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Bafarada de pensar"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Flor blanca"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Signe d\'excel·lent"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Bossa dels diners"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Canvi de divisa"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Signe del dòlar gran"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Targeta de crèdit"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Bitllets amb el signe del ien"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Bitllets amb el signe del dòlar"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Bitllets amb el signe de l\'euro"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Bitllets amb el signe de la lliura"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Diners amb ales"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Gràfic d\'increment amb el signe del ien"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Seient"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Ordinador"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Maletí"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Minidisc"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Disquet"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Disc òptic"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Carpeta d\'arxius"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Carpeta de fitxer oberta"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Pàgina que es cargola"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Pàgina cap amunt"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Calendari"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Calendari de tall"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Organitzador de targetes"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Gràfic d\'increment"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Gràfic de disminució"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Gràfic de barres"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Portanotes"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Xinxeta"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Xinxeta rodona"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Clip"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Regle"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Escaire"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Marcadors"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Llibre major"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Quadern"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Quadern amb coberta decorativa"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Llibre tancat"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Llibre obert"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Llibre verd"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Llibre blau"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Llibre taronja"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Llibres"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Etiqueta identificativa"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Desplaça"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Nota"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Auricular del telèfon"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Cercapersones"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Fax"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Antena de satèl·lit"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Altaveu de megafonia"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Megàfon d\'animació"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Safata de sortida"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Safata d\'entrada"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Paquet"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Símbol de correu electrònic"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Correu entrant"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Sobre amb una fletxa cap avall al damunt"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Bústia tancada amb la bandera baixada"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Bústia tancada amb la bandera aixecada"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Bústia oberta amb la bandera aixecada"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Bústia oberta amb la bandera baixada"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Bústia"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Símbol de correus"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Diari"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Telèfon mòbil"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Telèfon mòbil amb una fletxa cap a la dreta a l\'esquerra"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Mode de vibració"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Telèfon mòbil apagat"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Senyal de prohibit telèfons mòbils"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Gràfic de barres"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Càmera"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Càmera de vídeo"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Televisió"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Ràdio"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Cinta de vídeo"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Fletxes creuades cap a la dreta"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Fletxes cap a la dreta i l\'esquerra que formen un cercle obert en sentit horari"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Fletxes cap a la dreta i l\'esquerra que formen un cercle obert en sentit horari i un número u encerclat"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Fletxes cap avall i cap amunt que formen un cercle obert en sentit horari"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Fletxes cap avall i cap amunt que formen un cercle obert en sentit antihorari"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Símbol de brillantor baixa"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Símbol de brillantor alta"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Altaveu amb barra de cancel·lació"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Altaveu"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Altaveu amb una ona de so"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Altaveu amb tres ones de so"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Bateria"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Endoll elèctric"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Lupa cap a l\'esquerra"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Lupa cap a la dreta"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Cadenat amb ploma"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Cadenat amb clau"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Clau"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Cadenat tancat"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Cadenat obert"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Campana"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Campana amb barra de cancel·lació"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Marcador"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Signe d\'enllaç"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Botó d\'opció"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Paraula Back amb fletxa cap a l\'esquerra a sobre"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"Paraula End amb fletxa cap a l\'esquerra a sobre"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"Paraula On amb fletxa cap a l\'esquerra i la dreta a sobre"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Paraula Soon amb fletxa cap a la dreta a sobre"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Paraula Top amb fletxa cap amunt a sobre"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Prohibit per a menors de 18 anys"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Tecla 10"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Tecla per introduir majúscules de l\'alfabet llatí"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Tecla per introduir minúscules de l\'alfabet llatí"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Tecla per introduir nombres"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Símbol d\'entrada per a símbols"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Tecla per introduir lletres de l\'alfabet llatí"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Foc"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Llanterna"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Clau anglesa"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Martell"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Femella i cargol"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Ganivet per cuinar"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Pistola"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Microscopi"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Telescopi"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Bola de vidre"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Estrella de sis puntes amb un punt central"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Símbol japonès per a principiants"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Trident"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Botó negre quadrat"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Botó blanc quadrat"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Cercle vermell gran"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Cercle blau gran"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Rombe taronja gran"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Rombe taronja blau"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Rombe taronja petit"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Rombe blau petit"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Triangle vermell cap amunt"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Triangle vermell cap avall"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Triangle vermell petit cap amunt"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Triangle vermell petit cap avall"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Rellotge que marca la una"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Rellotge que marca les dues"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Rellotge que marca les tres"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Rellotge que marca les quatre"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Rellotge que marca les cinc"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Rellotge que marca les sis"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Rellotge que marca les set"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Rellotge que marca les vuit"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Rellotge que marca les nou"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Rellotge que marca les deu"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Rellotge que marca les onze"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Rellotge que marca les dotze"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Rellotge que marca dos quarts de dues"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Rellotge que marca dos quarts de tres"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Rellotge que marca dos quarts de quatre"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Rellotge que marca dos quarts de cinc"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Rellotge que marca dos quarts de sis"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Rellotge que marca dos quarts de set"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Rellotge que marca dos quarts de vuit"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Rellotge que marca dos quarts de nou"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Rellotge que marca dos quarts de deu"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Rellotge que marca dos quarts d\'onze"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Rellotge que marca dos quarts de dotze"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Rellotge que marca dos quarts d\'una"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Mont Fuji"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Torre de Tòquio"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Estàtua de la Llibertat"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Silueta del Japó"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moyai"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Cara somrient"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Cara amb somriure i ulls somrients"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Cara amb llàgrimes d\'alegria"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Cara somrient amb la boca oberta"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Cara somrient amb la boca oberta i els ulls contents"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Cara somrient amb la boca oberta i la suor freda"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Cara somrient amb la boca oberta i els ulls tancats fortament"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Cara somrient amb halo"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Cara somrient amb banyes"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Cara picant l\'ullet"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Cara somrient amb els ulls contents"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Cara d\'assaborir un menjar deliciós"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Cara d\'alleujament"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Cara somrient amb els ulls en forma de cor"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Cara somrient amb ulleres de sol"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Somriure amb superioritat"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Cara neutral"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Cara inexpressiva"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Cara de desaprovació"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Cara amb suor freda"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Cara pensativa"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Cara de confusió"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Cara de frustració"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Cara que fa un petó"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Cara llançant un petó"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Cara que fa un petó amb els ulls contents"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Cara que fa un petó amb els ulls tancats"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Cara que treu la llengua"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Cara que treu la llengua i pica l\'ullet"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Cara que treu la llengua i tanca fortament els ulls"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Cara de decepció"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Cara de preocupació"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Cara enutjada"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Cara molt enutjada"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Cara que plora"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Cara de perseverança"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Cara amb expressió de triomf"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Cara de decepció, però alleujada"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Cara emmurriada amb la boca oberta"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Cara angoixada"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Cara de por"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Cara d\'esgotament"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Cara de son"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Cara de cansament"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Ganyota amb les dents"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Cara que plora desconsoladament"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Cara amb la boca oberta"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Cara de silenci"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Cara amb la boca oberta i la suor freda"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Cara que crida de por"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Cara de sorpresa"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Cara enrogida"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Cara adormida"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Cara marejada"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Cara sense boca"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Cara amb màscara"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Cara de gat amb somriure i ulls somrients"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Cara de gat amb llàgrimes d\'alegria"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Cara de gat somrient amb la boca oberta"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Cara de gat somrient amb els ulls en forma de cor"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Cara de gat amb somriure irònic"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Cara de gat que fa un petó amb els ulls tancats"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Cara de gat molt enutjada"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Cara de gat que plora"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Cara de gat esgotada"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Cara sense expressió"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Cara amb expressió d\'acceptació"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Persona que mostra un agraïment profund"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Mona que no veu"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Mona que no escolta"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Mona que no parla"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Persona feliç que aixeca una mà"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Dues mans aixecades a manera de celebració"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Persona emmurriada"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Persona amb cara d\'enuig"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Persona amb les mans creuades"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Coet"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Helicòpter"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Locomotora de vapor"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Vagó de ferrocarril"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Tren d\'alta velocitat"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Tren bala"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Tren"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Metro"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Tren lleuger"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Estació"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Tramvia"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Vagó de tramvia"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Autobús"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Bus que arriba"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Troleibús"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Parada d\'autobús"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Microbús"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Ambulància"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Camió de bombers"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Cotxe de policia"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Cotxe de policia que arriba"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taxi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Taxi que arriba"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Automòbil"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Automòbil que arriba"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Vehicle d\'ús recreatiu"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Camió de repartiment"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Camió articulat"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Tractor"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Monocarril"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Ferrocarril de muntanya"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Ferrocarril de suspensió"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Telefèric de muntanya"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Tramvia aeri"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Vaixell"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Bot de rems"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Llanxa"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Semàfor horitzontal"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Semàfor vertical"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Senyal de construcció"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Llum giratòria dels cotxes de policia"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Banderí triangular"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Porta"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Senyal de prohibida l\'entrada"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Senyal de es permet fumar"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Senyal de prohibit fumar"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Senyal de llençar la brossa on toca"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Senyal de no llençar escombraries"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Senyal d\'aigua potable"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Senyal d\'aigua no potable"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Bicicleta"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Prohibit per a bicicletes"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Ciclista"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Ciclista de muntanya"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Vianant"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Prohibit per a vianants"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Nens que creuen"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Símbol d\'home"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Símbol de dona"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Lavabos"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Símbol de nadó"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Vàter"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Lavabo"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Dutxa"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Bany"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Banyera"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Control de passaport"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Duana"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Recollida d\'equipatges"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Consigna"</string>
+</resources>
diff --git a/java/res/values-ca/strings-talkback-descriptions.xml b/java/res/values-ca/strings-talkback-descriptions.xml
index 9b01c75..625afb7 100644
--- a/java/res/values-ca/strings-talkback-descriptions.xml
+++ b/java/res/values-ca/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"No s\'ha introduït cap text."</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corregeix <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> per <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>."</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> executa la correcció automàtica."</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"No hi ha cap suggeriment"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Caràcter desconegut"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Maj"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Més símbols"</string>
@@ -57,7 +58,7 @@
     <string name="announce_keyboard_mode" msgid="6698257917367823205">"Es mostra el teclat per a <xliff:g id="KEYBOARD_MODE">%s</xliff:g>."</string>
     <string name="keyboard_mode_date" msgid="6597407244976713364">"data"</string>
     <string name="keyboard_mode_date_time" msgid="3642804408726668808">"data i hora"</string>
-    <string name="keyboard_mode_email" msgid="1239682082047693644">"correu electrònic"</string>
+    <string name="keyboard_mode_email" msgid="1239682082047693644">"adreça electrònica"</string>
     <string name="keyboard_mode_im" msgid="3812086215529493501">"missatgeria"</string>
     <string name="keyboard_mode_number" msgid="5395042245837996809">"número"</string>
     <string name="keyboard_mode_phone" msgid="2486230278064523665">"telèfon"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"I majúscula, punt superior"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Símbol desconegut"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Emoji desconegut"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Cara d\'avorriment"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Cara de vergonya"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Cara amb ulleres de sol"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Cara de sorpresa"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Cara que fa un petó"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Cara que arrufa el nas"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Hi ha caràcters alternatius disponibles."</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Els caràcters alternatius s\'ignoren."</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Hi ha suggeriments alternatius disponibles."</string>
diff --git a/java/res/values-ca/strings.xml b/java/res/values-ca/strings.xml
index 80d2987..d1c58b2 100644
--- a/java/res/values-ca/strings.xml
+++ b/java/res/values-ca/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibra en prémer tecles"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"So en prémer tecles"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Amplia en prémer tecles"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferències"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Comptes i privadesa"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Aparença i disseny"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Escriptura gestual"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Correcció de textos"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Avançat"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Activa el teclat partit"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Sincronitz. del Teclat de Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"La sincronització està activada"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Sincronitza el diccionari personal als dispositius"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Sincronitza ara"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Suprimeix les dades del núvol"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Suprimeix les dades sincronitzades de Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Les teves dades sincronitzades se suprimiran del núvol. Vols continuar?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Suprimeix"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Cancel·la"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"El teu diccionari personal se sincronitzarà i se\'n farà una còpia de seguretat als servidors de Google. És possible que es recopili informació estadística sobre la freqüència de les paraules per poder millorar els nostres productes. La recopilació i l\'ús de tota la informació complirà la "<a href="https://www.google.com/policies/privacy">"Política de privadesa de Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Afegeix un compte de Google al dispositiu per activar la funció"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Altres mètodes d\'introducció"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"La tecla de canvi d\'idioma serveix també per a altres mètodes d\'entrada"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Tecla de canvi d\'idioma"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Mostra-la quan hi hagi diversos idiomes d\'introducció activats"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Mostra l\'indicador per lliscar"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Mostra la indicació visual en lliscar des de la tecla Maj o Símbol"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Retard en ampliar tecla"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Sense retard"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Predeterminat"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Diccionari principal"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Suggeriments de correcció"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Mostra paraules suggerides mentre s\'escriu"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Mostra sempre"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Mostra en mode vertical"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Amaga sempre"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Bloqueja paraules ofensives"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"No suggereixis paraules potencialment ofensives"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Correcció automàtica"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Tecla d\'entrada de veu"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"No hi ha cap mètode d\'introducció activat. Comprova la configuració d\'Idioma i introducció de text."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Configura mètodes d\'entrada"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Idiomes"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Envia comentaris"</string>
-    <string name="select_language" msgid="3693815588777926848">"Idiomes d\'introducció"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Idiomes"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Ajuda i suggeriments"</string>
+    <string name="select_language" msgid="5709487854987078367">"Idiomes"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Torna a tocar per desar"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Toca aquí per desar."</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Diccionari disponible"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Tema del teclat"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Canvi de compte"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"No hi ha cap compte seleccionat."</string>
+    <string name="account_selected" msgid="2846876462199625974">"Actualment es fa servir <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>."</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"D\'acord"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Cancel·la"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Tanca la sessió"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Selecció d\'un compte per utilitzar"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Anglès (Regne Unit)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Anglès (EUA)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Espanyol (EUA)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Serbi (llatí)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Anglès (Regne Unit) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Anglès (EUA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Espanyol (EUA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Serbi (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tradicional)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ciríl·lic)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (llatí)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (compacte)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Cap idioma (alfabet)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabet (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabet (QWERTZ)"</string>
@@ -108,18 +121,9 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabet (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabet (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Tema del teclat"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Estils d\'entrada personalitzats"</string>
-    <string name="add_style" msgid="6163126614514489951">"Afeg. estil"</string>
+    <string name="add_style" msgid="6163126614514489951">"Afegeix estil"</string>
     <string name="add" msgid="8299699805688017798">"Afegeix"</string>
     <string name="remove" msgid="4486081658752944606">"Elimina"</string>
     <string name="save" msgid="7646738597196767214">"Desa"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Activa"</string>
     <string name="not_now" msgid="6172462888202790482">"Ara no"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Ja existeix aquest estil d\'entrada: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Retard en mantenir premut"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Durada vibració en prémer"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Volum del so en prémer tecles"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Lectura d\'un fitxer de diccionari extern"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"No hi ha cap fitxer de diccionari a la carpeta Baixades"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Selecció d\'un fitxer de diccionari per instal·lar"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Realment vols instal·lar aquest fitxer per a <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"S\'ha produït un error"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Retard en mantenir premut"</string>
     <string name="button_default" msgid="3988017840431881491">"Predeterminat"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Et donem la benvinguda a <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"amb Escriptura gestual"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Ara ja pots escriure en totes les teves aplicacions preferides amb <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Configura altres idiomes"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Finalitzat"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Mostra la icona de l\'aplicació"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Mostra la icona de l\'aplicació al menú d\'aplicacions"</string>
     <string name="app_name" msgid="6320102637491234792">"Proveïdor de diccionaris"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Proveïdor de diccionaris"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Servei de diccionari"</string>
diff --git a/java/res/values-cs/strings-action-keys.xml b/java/res/values-cs/strings-action-keys.xml
index c398032..a220ee7 100644
--- a/java/res/values-cs/strings-action-keys.xml
+++ b/java/res/values-cs/strings-action-keys.xml
@@ -23,7 +23,7 @@
     <string name="label_go_key" msgid="4033615332628671065">"Jít"</string>
     <string name="label_next_key" msgid="5586407279258592635">"Další"</string>
     <string name="label_previous_key" msgid="1421141755779895275">"Před."</string>
-    <string name="label_done_key" msgid="7564866296502630852">"Hot."</string>
+    <string name="label_done_key" msgid="7564866296502630852">"OK"</string>
     <string name="label_send_key" msgid="482252074224462163">"Odes."</string>
     <string name="label_search_key" msgid="7965186050435796642">"Hledat"</string>
     <string name="label_pause_key" msgid="2225922926459730642">"Pauza"</string>
diff --git a/java/res/values-cs/strings-emoji-descriptions.xml b/java/res/values-cs/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..b7f359c
--- /dev/null
+++ b/java/res/values-cs/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Znak copyrightu"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Symbol registrované ochranné známky"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Dvojitý vykřičník"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Vykřičník a otazník"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Symbol ochranné známky"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Zdroj informací"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Šipka vlevo a vpravo"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Šipka nahoru a dolů"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Šipka na severozápad"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Šipka na severovýchod"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Šipka na jihovýchod"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Šipka na jihozápad"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Šipka vlevo s háčkem"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Šipka vpravo s háčkem"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Hodinky"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Přesýpací hodiny"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Černý dvojitý trojúhelník směřující vpravo"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Černý dvojitý trojúhelník směřující vlevo"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Černý dvojitý trojúhelník směřující nahoru"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Černý dvojitý trojúhelník směřující dolů"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Budík"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Přesýpací hodiny se sypajícím se pískem"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Velké písmeno latinky M v kroužku"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Malý černý čtverec"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Malý bílý čtverec"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Černý trojúhelník směřující vpravo"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Černý trojúhelník směřující vlevo"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Bílý střední čtverec"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Černý střední čtverec"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Bílý střední malý čtverec"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Černý střední malý čtverec"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Černé slunce s paprsky"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Mrak"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Černý telefon"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Hlasovací políčko se zatržením"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Deštník s kapkami deště"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Horký nápoj"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Bílý nahoru ukazující ukazatel"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Bílý usmívající se obličej"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Beran"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Býk"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Blíženci"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Rak"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Lev"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Panna"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Váhy"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Štír"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Střelec"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Kozoroh"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Vodnář"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Ryby"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Černé piky"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Černé kříže"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Černá srdce"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Černé káry"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Horký pramen"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Černý univerzální symbol recyklace"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Symbol vozíčku pro tělesně postižené"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Kotva"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Výstražný symbol"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Značka vysokého napětí"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Střední bílý kroužek"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Střední černý kroužek"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Fotbalový míč"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Baseball"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Sněhulák beze sněhu"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Slunce za mrakem"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Hadonoš"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Zákaz vstupu"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Kostel"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Kašna"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Praporek v jamce"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Jachta"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Stan"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Čerpací stanice"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Černé nůžky"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Bílé tučné zatržítko"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Letadlo"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Obálka"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Zvednutá pěst"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Zvednutá ruka"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Vítězné gesto"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Tužka"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Černý hrot psacího pera"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Tučné zatržítko"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Tučný diagonální křížek"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Jiskry"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Osmicípá hvězda"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Černá osmicípá hvězda"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Sněhová vločka"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Jiskra"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Křížek"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Negativní hranatý křížek"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Černý ornamentální otazník"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Bílý ornamentální otazník"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Bílý ornamentální vykřičník"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Tučný vykřičník"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Tučné černé srdce"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Tučné znaménko plus"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Tučné znaménko minus"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Tučné znaménko dělení"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Černá šipka vpravo"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Smyčka"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Dvojitá smyčka"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Šipka směřující vpravo a potom zahnutá nahoru"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Šipka směřující vpravo a potom zahnutá dolů"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Černá šipka směřující doleva"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Černá šipka směřující nahoru"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Černá šipka směřující dolů"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Černý velký čtverec"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Bílý velký čtverec"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Bílá střední hvězda"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Tučný velký kruh"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Vlnitá pomlčka"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Znak výměny části"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Znak Blahopřání v kroužku"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Znak Tajný v kroužku"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Kostka Mahjong s červeným drakem"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Hrací karta s černým žolíkem"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Krevní skupina A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Krevní skupina B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Krevní skupina O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Parkoviště"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Krevní skupina AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"Hranatý symbol CL"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Hranatý symbol COOL"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Hranatý symbol FREE"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"Hranatý symbol ID"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Hranatý symbol NEW"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Hranatý symbol NG"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Hranatý symbol OK"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"Hranatý symbol SOS"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Hranatý symbol UP s vykřičníkem"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Hranatý symbol VS"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Hranatá katakana koko"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Hranatá katakana sa"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Hranatý znak Zdarma"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Hranatý znak Vyhrazené sedadlo"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Hranatý znak Zákaz"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Hranatý znak Volné místo"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Hranatý znak Převzetí"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Hranatý znak Plně obsazeno"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Hranatý znak Zaplaceno"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Hranatý znak Měsíčně"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Hranatý znak Žádost"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Hranatý znak Sleva"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Hranatý znak V provozu"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Znak Výhoda v kroužku"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Znak Přijímám v kroužku"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Cyklón"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Mlha"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Zavřený deštník"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Hvězdná noc"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Východ slunce nad horami"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Východ slunce"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Silueta města za soumraku"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Západ slunce nad budovami"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Duha"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Most v noci"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Vodní vlna"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Sopka"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Mléčná dráha"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Zeměkoule – Evropa a Afrika"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Zeměkoule – Severní a Jižní Amerika"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Zeměkoule – Asie a Austrálie"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Zeměkoule s poledníky"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Symbol novoluní"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Symbol dorůstajícího srpku měsíce"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Symbol měsíce v první čtvrti"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Symbol dorůstajícího měsíce"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Symbol úplňku"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Symbol couvajícího měsíce"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Symbol měsíce v poslední čtvrti"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Symbol couvajícího srpku měsíce"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Půlměsíc"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Novoluní s obličejem"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Měsíc v první čtvrti s obličejem"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Měsíc v poslední čtvrti s obličejem"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Úplněk s obličejem"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Slunce s obličejem"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Zářící hvězda"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Padající hvězda"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Kaštan"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Sazenička"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Jehličnatý strom"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Listnatý strom"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palma"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Kaktus"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulipán"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Kvetoucí třešeň"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Růže"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Ibišek"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Slunečnice"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Květ"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Kukuřice"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Rýže"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Bylina"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Čtyřlístek"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Javorový list"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Spadlý list"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"List poletující ve větru"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Houba"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Rajče"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Lilek"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Hrozny"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Meloun"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Vodní meloun"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Mandarinka"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Citrón"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Banán"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ananas"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Červené jablko"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Zelené jablko"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Hruška"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Broskev"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Třešně"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Jahoda"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburger"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Plátek pizzy"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Maso na kosti"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Drůbeží stehno"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Rýžový krekr"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Kopeček rýže"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Vařená rýže"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Kari s rýží"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Kouřící mísa"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Špagety"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Chléb"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Hranolky"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Pečená brambora"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Suši"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Smažený garnát"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Rybí karbanátek se spirálou"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Zmrzlina v kornoutu"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Porcovaná zmrzlina"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Zmrzlina"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Kobliha"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Sušenka"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Tabulka čokolády"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Bonbon"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lollipop"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Pudink"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Hrnek medu"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Dort"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Krabička na jídlo"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Hrnec jídla"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Vaření"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Vidlička a nůž"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Šálek bez ouška"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Láhev saké a šálek"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Sklenka na víno"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Sklenka na koktejl"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Tropický drink"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Půllitr piva"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Cinkající půllitry piva"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Dětská láhev"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Stuha"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Zabalený dárek"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Narozeninový dort"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Lucerna z dýně"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Vánoční stromeček"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Santa Klaus"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Ohňostroj"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Prskavka"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Balónek"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Vystřelovač konfet"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Konfety"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Strom Tanabata"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Zkřížené vlajky"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Dekorace z borovicových větviček"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Japonské panenky"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Vlajka s kaprem"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Větrná zvonkohra"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Oslava sklizně"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Školní brašna"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Absolventská čapka"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Kolotočový kůň"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Ruské kolo"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Horská dráha"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Rybářský prut a ryba"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Mikrofon"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Promítačka"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Kino"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Sluchátka"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Malířská paleta"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Cylindr"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Cirkusový stan"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Vstupenka"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Filmařská klapka"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Múzická umění"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Videohra"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Přímý zásah"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Herní automat"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Kulečník"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Hrací kostka"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Bowling"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Květinové hrací karty"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Hudební nota"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Několik hudebních not"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saxofon"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Kytara"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Klaviatura"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Trumpeta"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Housle"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Hudební osnova"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Běžecké triko s šerpou"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Tenisová raketa a míček"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Lyže a lyžařská bota"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Basketbalový míč a obruč"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Kostkovaná vlajka"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Snowboardista"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Běžec"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Surfař"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Trofej"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Dostihy"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Americký fotbal"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Ragby"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Plavec"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Dům"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Dům se zahradou"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Kancelářská budova"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Japonská poštovní schránka"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Evropská poštovní schránka"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Nemocnice"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Banka"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Bankomat"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Hotel"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Hodinový hotel"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Večerka"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Škola"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Obchodní dům"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Továrna"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Japonská lucerna"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Japonský hrad"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Evropský hrad"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Krysa"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Myš"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Vůl"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Vodní buvol"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Kráva"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Leopard"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Králík"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Kočka"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Drak"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Krokodýl"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Velryba"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Hlemýžď"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Had"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Kůň"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Beran"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Koza"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Ovce"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Opice"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Kohout"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Kuře"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Pes"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Prase"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Divočák"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Slon"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Chobotnice"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Ulita"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Brouk"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Mravenec"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Včela"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Beruška"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Ryba"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Tropická ryba"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Ježík"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Želva"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Vylíhnuté kuře"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Kuřátko"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Kuřátko zepředu"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Pták"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Tučňák"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Pudl"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Jednohrbý velbloud"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Dvouhrbý velbloud"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Delfín"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Hlava myši"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Hlava krávy"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Hlava tygra"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Hlava králíka"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Hlava kočky"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Hlava draka"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Tryskající velryba"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Hlava koně"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Hlava opice"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Hlava psa"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Hlava prasete"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Hlava žáby"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Hlava křečka"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Hlava vlka"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Hlava medvěda"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Hlava pandy"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Prasečí rypák"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Otisky tlap"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Oči"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Ucho"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Nos"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Ústa"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Jazyk"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Bílý ukazováček směřující nahoru"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Bílý ukazováček směřující dolů"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Bílý ukazováček směřující doleva"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Bílý ukazováček směřující doprava"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Symbol zaťaté pěsti"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Symbol mávající ruky"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Symbol ruky ukazující, že je vše v pořádku"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Symbol palce nahoru"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Symbol palce dolů"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Symbol tleskajících dlaní"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Symbol otevřených rukou"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Koruna"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Dámský klobouk"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Brýle"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Kravata"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Tričko"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Džíny"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Šaty"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikiny"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Dámské oblečení"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Peněženka"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Kabelka"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Tobolka"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Pánská obuv"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Sportovní obuv"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Bota na podpatku"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Dámské sandály"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Dámské kozačky"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Šlépěje"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Silueta postavy"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Siluety postav"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Chlapec"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Dívka"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Muž"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Žena"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Rodina"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Muž a žena držící se za ruce"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Dva muži držící se za ruce"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Dvě ženy držící se za ruce"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Policista"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Žena s králičíma ušima"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Nevěsta se závojem"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Osoba se světlými vlasy"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Muž s knírem"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Muž s turbanem"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Starší muž"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Starší žena"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Dítě"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Stavební dělník"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Princezna"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Japonský strašák"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Japonský skřet"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Duch"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Andílek"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Mimozemšťan"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Příšera"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Rarášek"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Lebka"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Osoba u informační přepážky"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Strážce"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Tanečník"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Rtěnka"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Lak na nehty"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Masáž obličeje"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Stříhání vlasů"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Kadeřnický poutač"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Injekční stříkačka"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Pilulka"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Symbol polibku"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Milostný dopis"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Prsten"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Drahokam"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Polibek"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Kytice"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Dvojice se srdcem"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Svatba"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Tlukoucí srdce"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Zlomené srdce"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Dvě srdce"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Jiskřivé srdce"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Zvětšující se srdce"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Srdce zasažené šípem"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Modré srdce"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Zelené srdce"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Žluté srdce"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Nachové srdce"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Srdce se stužkou"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Rotující srdce"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Dekorace se srdcem"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Kosočtverec s bodem uvnitř"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Žárovka"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Symbol hněvu"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bomba"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Symbol spánku"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Symbol střetu"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Symbol řinoucího se potu"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Kapka"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Symbol spěchu"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Hromádka bobků"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Napnutý biceps"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Symbol závratě"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Bublina s řečí"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Bublina s myšlenkami"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Bílá květina"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Symbol stovky bodů"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Měšec na peníze"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Převod měn"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Tučný symbol dolaru"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Platební karta"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Bankovka se symbolem jenu"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Bankovka se symbolem dolaru"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Bankovka se symbolem eura"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Bankovka se symbolem libry"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Okřídlené peníze"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Graf s vzestupnou tendencí a symbolem jenu"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Sedadlo"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Osobní počítač"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Aktovka"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Minidisk"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Disketa"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Optický disk"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Složka souborů"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Otevřená složka"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Ohnutá stránka"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Stránka lícem nahoru"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Kalendář"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Trhací kalendář"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Pořadač"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Graf se vzestupnou tendencí"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Graf s klesající tendencí"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Pruhový graf"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Schránka"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Špendlík"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Kulatý špendlík"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Kancelářská sponka"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Rovné pravítko"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Trojúhelníkové pravítko"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Štítky záložek"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Účetní kniha"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Poznámkový blok"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Poznámkový blok s dekorativním obalem"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Zavřená kniha"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Otevřená kniha"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Zelená kniha"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Modrá kniha"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Oranžová kniha"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Knihy"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Jmenovka"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Svitek"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Poznámka"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Telefonní sluchátko"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Pager"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Fax"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Satelitní anténa"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Tlampač"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Hlasitý megafon"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Přihrádka pro poštu k odeslání"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Přihrádka pro doručenou poštu"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Balíček"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Symbol e-mailu"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Příchozí obálka"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Obálka, nad kterou je šipka dolů"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Zavřená poštovní schránka se sklopeným praporkem"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Zavřená poštovní schránka se vztyčeným praporkem"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Otevřená poštovní schránka se vztyčeným praporkem"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Otevřená poštovní schránka se sklopeným praporkem"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Poštovní schránka"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Poštovní roh"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Noviny"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Mobilní telefon"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Mobilní telefon, který má po levé straně šipku vpravo"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Vibrační režim"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Vypnutý mobilní telefon"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Zákaz mobilních telefonů"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Anténa se stupnicí"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Fotoaparát"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Videokamera"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Televize"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Rádio"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Videokazeta"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Zkroucené šipky vpravo"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Šipky vpravo a vlevo v otevřeném kruhu ve směru hodinových ručiček"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Šipky vpravo a vlevo v otevřeném kruhu ve směru hodinových ručiček s číslem 1 v kruhu"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Šipky dolů a nahoru v otevřeném kruhu ve směru hodinových ručiček"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Šipky vpravo a vlevo v otevřeném kruhu proti směru hodinových ručiček"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Symbol nízkého jasu"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Symbol vysokého jasu"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Přeškrtnutý reproduktor"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Reproduktor"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Reproduktor s jednou zvukovou vlnou"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Reproduktor se dvěma zvukovými vlnami"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Baterie"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Elektrická zástrčka"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Lupa směřující doleva"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Lupa směřující doprava"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Zámek s inkoustovým perem"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Zavřený zámek s klíčem"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Klíč"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Zámek"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Otevřený zámek"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Zvonek"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Přeškrtnutý zvonek"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Záložka"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Symbol odkazu"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Přepínač"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Slovo Back, nad kterým je šipka vlevo"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"Slovo End, nad kterým je šipka vlevo"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"Slovo On s vykřičníkem, nad kterým je šipka vlevo a vpravo"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Slovo Soon, nad kterým je šipka vpravo"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Slovo Top, nad kterým je šipka nahoru"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Znak Od osmnácti let"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Klávesa s desítkou"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Symbol pro zadávání velkých písmen v latině"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Symbol pro zadávání malých písmen v latině"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Symbol pro zadávání číslic"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Symbol zadávání symbolů"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Symbol pro zadávání písmen v latině"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Oheň"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Elektrická svítilna"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Montážní klíč"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Kladivo"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Matice a šroub"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Kuchyňský nůž"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Pistole"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Mikroskop"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Dalekohled"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Křišťálová koule"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Šesticípá hvězda s bodem uprostřed"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Japonský symbol pro začátečníka"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Obrázek trojzubce"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Černé hranaté tlačítko"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Bílé hranaté tlačítko"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Velký červený kruh"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Velký modrý kruh"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Velký oranžový kosočtverec"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Velký modrý kosočtverec"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Malý oranžový kosočtverec"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Malý modrý kosočtverec"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Červený trojúhelník ukazující nahoru"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Červený trojúhelník ukazující dolů"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Malý červený trojúhelník ukazující nahoru"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Malý červený trojúhelník ukazující dolů"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Hodiny ukazující jednu hodinu"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Hodiny ukazující dvě hodiny"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Hodiny ukazující tři hodiny"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Hodiny ukazující čtyři hodiny"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Hodiny ukazující pět hodin"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Hodiny ukazující šest hodin"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Hodiny ukazující sedm hodin"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Hodiny ukazující osm hodin"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Hodiny ukazující devět hodin"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Hodiny ukazující deset hodin"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Hodiny ukazující jedenáct hodin"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Hodiny ukazující dvanáct hodin"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Hodiny ukazující půl druhé"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Hodiny ukazující půl třetí"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Hodiny ukazující půl čtvrté"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Hodiny ukazující půl páté"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Hodiny ukazující půl šesté"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Hodiny ukazující půl sedmé"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Hodiny ukazující půl osmé"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Hodiny ukazující půl deváté"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Hodiny ukazující půl desáté"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Hodiny ukazující půl jedenácté"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Hodiny ukazující půl dvanácté"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Hodiny ukazující půl jedné"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Hora Fuji"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Tokijská věž"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Socha svobody"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Obrys Japonska"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Socha Moyai"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Zubící se obličej"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Zubící se obličej se smějícíma se očima"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Obličej se slzami smíchu"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Usmívající se obličej s otevřenými ústy"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Usmívající se obličej s otevřenými ústy a smějícíma se očima"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Usmívající se obličej s otevřenými ústy a studeným potem"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Usmívající se obličej s otevřenými ústy a zavřenýma očima"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Usmívající se obličej se svatozáří"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Usmívající se obličej s rohy"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Mrkající obličej"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Usmívající se obličej se smějícíma se očima"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Obličej, který cítí dobré jídlo"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Úlevný obličej"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Usmívající se obličej s očima ve tvaru srdce"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Usmívající se obličej se slunečními brýlemi"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Drzý obličej"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Neutrální obličej"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Obličej bez výrazu"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Nepobavený obličej"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Obličej se studeným potem"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Zamyšlený obličej"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Zmatený obličej"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Rozpačitý obličej"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Líbající obličej"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Obličej posílající polibek"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Líbající obličej se smějícíma se očima"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Líbající obličej se zavřenýma očima"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Obličej s vyplazeným jazykem"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Obličej s vyplazeným jazykem a mrkajícím okem"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Obličej s vyplazeným jazykem a zavřenýma očima"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Zklamaný obličej"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Znepokojený obličej"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Rozzlobený obličej"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Našpulený obličej"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Plačící obličej"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Obličej s vytrvalým výrazem"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Obličej s výrazem vítězství"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Zklamaný obličej s výrazem úlevy"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Zamračený obličej s otevřenými ústy"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Ztrápený obličej"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Vystrašený obličej"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Vyčerpaný obličej"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Ospalý obličej"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Unavený obličej"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Šklebící se obličej"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Hlasitě plačící obličej"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Obličej s otevřenými ústy"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Mlčící obličej"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Obličej s otevřenými ústy a studeným potem"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Obličej křičící strachem"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Udivený obličej"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Zrudlý obličej"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Spící obličej"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Obličej s výrazem závrati"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Obličej bez úst"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Obličej s lékařskou maskou"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Zubící se kočičí hlava se smějícíma se očima"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Kočičí hlava se slzami smíchu"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Usmívající se kočičí hlava s otevřenými ústy"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Usmívající se kočičí hlava s očima ve tvaru srdce"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Kočičí hlava s úšklebkem"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Líbající kočičí hlava se zavřenýma očima"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Našpulená kočičí hlava"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Plačící kočičí hlava"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Vyčerpaná kočičí hlava"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Obličej s gestem vyjadřujícím odmítnutí"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Obličej s gestem vyjadřujícím souhlas"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Osoba v hlubokém úklonu"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Opice, která nevidí zlo"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Opice, která nenaslouchá zlým řečem"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Opice, která nepomlouvá"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Šťastná osoba zvedající jednu ruku"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Osoba zvedající obě ruce na oslavu"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Zamračená osoba"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Osoba s našpuleným obličejem"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Osoba se sepnutýma rukama"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Raketa"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Vrtulník"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Parní lokomotiva"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Železniční vagon"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Vysokorychlostní vlak"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Vysokorychlostní vlak s kulatou přídí"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Vlak"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Metro"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Železnice"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Stanice"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Tramvaj"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Vagon tramvaje"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Autobus"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Přijíždějící autobus"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Trolejbus"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Autobusová zastávka"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Minibus"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Záchranka"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Hasičský vůz"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Policejní auto"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Přijíždějící policejní auto"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taxi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Přijíždějící taxi"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Automobil"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Přijíždějící automobil"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Obytný vůz"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Dodávka"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Tahač s návesem"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Traktor"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Jednokolejka"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Lanovka"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Visutá železnice"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Horská lanovka"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Visutá lanovka"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Loď"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Člun"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Motorový člun"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Vodorovný semafor"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Svislý semafor"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Značka stavby"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Maják policejního auta"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Trojúhelníkový praporek na stanovišti"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Dveře"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Symbol zákazu vstupu"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Značka kouření"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Značka zákazu kouření"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Symbol uklízení odpadků"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Symbol zákazu odhazování odpadků"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Symbol pitné vody"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Symbol nepitné vody"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Jízdní kolo"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Zákaz jízdních kol"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Cyklista"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Horský cyklista"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Chodec"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Zákaz chodců"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Přechod pro děti"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Symbol pro muže"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Symbol pro ženy"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"WC"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Symbol dítěte"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Toaleta"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Splachovací záchod"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Sprcha"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Vana"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Vana"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Pasová kontrola"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Celní kontrola"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Výdej zavazadel"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Úschovna zavazadel"</string>
+</resources>
diff --git a/java/res/values-cs/strings-talkback-descriptions.xml b/java/res/values-cs/strings-talkback-descriptions.xml
index 6c9c800..d3ae187 100644
--- a/java/res/values-cs/strings-talkback-descriptions.xml
+++ b/java/res/values-cs/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Není zadán žádný text"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"Klávesou <xliff:g id="KEY_NAME">%1$s</xliff:g> opravíte <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> na <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Klávesou <xliff:g id="KEY_NAME">%1$s</xliff:g> provedete automatickou opravu"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Žádný návrh"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Neznámý znak"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Další symboly"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Velké I s tečkou nad"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Neznámý znak"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Neznámý smajlík emodži"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Znuděný obličej"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Rozpačitý obličej"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Obličej se slunečními brýlemi"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Překvapený obličej"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Líbající obličej"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Zamračený obličej"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Alternativní znaky jsou k dispozici"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Alternativní znaky jsou ignorovány"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Alternativní návrhy jsou k dispozici"</string>
diff --git a/java/res/values-cs/strings.xml b/java/res/values-cs/strings.xml
index d5c479c..2d81208 100644
--- a/java/res/values-cs/strings.xml
+++ b/java/res/values-cs/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Při stisku klávesy vibrovat"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Zvuk při stisku klávesy"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Detail znaku při stisku klávesy"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Předvolby"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Účty a ochrana soukromí"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Vzhled a rozvržení"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Psaní gesty"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Oprava textu"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Rozšířená nastavení"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Motiv"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Aktivovat rozdělenou klávesnici"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Synchronizace Klávesnice Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Synchronizace je zapnutá"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Synchronizovat váš osobní slovník mezi zařízeními"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Synchronizovat"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Smazat data z cloudu"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Smaže z Googlu vaše synchronizovaná data"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Synchronizovaná data budou z cloudu smazána. Chcete pokračovat?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Smazat"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Zrušit"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Váš osobní slovník bude synchronizován a zálohován na servery Google. Za účelem vylepšení našich služeb mohou být shromažďovány statistické informace o četnosti slov. Shromažďování a využití všech informací bude probíhat v souladu se "<a href="https://www.google.com/policies/privacy">"zásadami ochrany soukromí společnosti Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Za účelem aktivace této funkce přidejte do zařízení účet Google."</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Přepínat metody zadávání"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Klávesa pro přepínání jazyka ovládá i další metody zadávání"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Klávesa přepínání jazyka"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Zobrazit, když je aktivováno více vstupních jazyků"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Indikátor přejetí prstem"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Zobrazit vizuální signál při přejetí z klávesy Shift nebo Symbol"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Prodleva vysk. okna klávesnice"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Bez prodlevy"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Výchozí"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Hlavní slovník"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Zobrazit návrhy oprav"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Zobrazovat navržená slova během psaní"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Vždy zobrazovat"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Zobrazovat v režimu na výšku"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Vždy skrývat"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Blokovat nevhodná slova"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Nenavrhovat potenciálně nevhodná slova"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Automatické opravy"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Klávesa hlasového vstupu"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nejsou povoleny žádné metody hlasového vstupu. Zkontrolujte nastavení Jazyk a vstup."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Konfigurace metod zadávání"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Vstupní jazyky"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Odeslat zpětnou vazbu"</string>
-    <string name="select_language" msgid="3693815588777926848">"Vstupní jazyky"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Jazyky"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Nápověda a zpětná vazba"</string>
+    <string name="select_language" msgid="5709487854987078367">"Jazyky"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Opětovným dotykem provedete uložení"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Klepnutím sem položku uložíte"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Slovník k dispozici"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Motiv klávesnice"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Přepnout účty"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Nebyly vybrány žádné účty"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Aktuálně používáte účet <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Zrušit"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Odhlásit se"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Vyberte účet, který chcete použít"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"angličtina (Velká Británie)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"angličtina (USA)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"španělština (USA)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"srbština (latinka)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"angličtina (VB) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"angličtina (USA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"španělština (USA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"srbština (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tradiční)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (cyrilice)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (latinka)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (kompaktní)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Žádný jazyk (latinka)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Latinka (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Latinka (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Latinka (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Latinka (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emodži"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Motiv klávesnice"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Vlastní styl zadávání"</string>
     <string name="add_style" msgid="6163126614514489951">"Přidat styl"</string>
     <string name="add" msgid="8299699805688017798">"Přidat"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Povolit"</string>
     <string name="not_now" msgid="6172462888202790482">"Teď ne"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Tento styl zadávání již existuje: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Prodleva dlouhého stisknutí"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Délka vibrace u stisku klávesy"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Hlasitost stisknutí klávesy"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Číst soubor externího slovníku"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Ve složce Stažené nejsou žádné soubory slovníků."</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Vyberte soubor slovníku k instalaci"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Chcete nainstalovat tento soubor pro jazyk <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Došlo k chybě"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Prodleva dlouhého stisknutí"</string>
     <string name="button_default" msgid="3988017840431881491">"Výchozí"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Vítá vás <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"s psaním gesty"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Nyní můžete ve všech svých oblíbených aplikacích psát pomocí aplikace <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Nakonfigurovat další jazyky"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Hotovo"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Zobrazit ikonu aplikace"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Zobrazí ikonu aplikace ve spouštěči"</string>
     <string name="app_name" msgid="6320102637491234792">"Poskytovatel slovníku"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Poskytovatel slovníku"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Služba slovníku"</string>
diff --git a/java/res/values-da/strings-emoji-descriptions.xml b/java/res/values-da/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..afe0060
--- /dev/null
+++ b/java/res/values-da/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Copyrighttegn"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Registreret varemærke-tegn"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Dobbelt udråbstegn"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Udråbstegn spørgsmålstegn"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Varemærketegn"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Information"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Venstre-højrepil"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Op-ned-pil"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Nordvestpil"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Nordøstpil"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Sydøstpil"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Sydvestpil"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Pil mod venstre med krog"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Pil mod højre med krog"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Ur"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Timeglas"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Sort dobbelttrekant, der peger mod højre"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Sort dobbelttrekant, der peger mod venstre"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Sort dobbelttrekant, der peger opad"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Sort dobbelttrekant, der peger nedad"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Vækkeur"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Timeglas med løbende sand"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Stort M i cirkel"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Lille, sort firkant"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Lille, hvid firkant"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Sort trekant, der peger mod højre"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Sort trekant, der peger mod venstre"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Hvid, mellemstor firkant"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Sort, mellemstor firkant"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Hvid, mellemstor/lille firkant"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Sort, mellemstor/lille firkant"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Sort sol med stråler"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Sky"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Sort telefon"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Afkrydsningsfelt med markering"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Paraply med regndråber"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Varm drik"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Hvid hånd, der peger opad"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Hvidt smilende ansigt"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Vædderen"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Tyren"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Tvillingerne"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Krebs"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Løven"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Jomfruen"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Vægten"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Skorpionen"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Skytten"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Stenbukken"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Vandmanden"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Fiskene"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Sort spar"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Sort klør"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Sort hjerter"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Sort ruder"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Varme kilder"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Sort genbrugssymbol"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Kørestolssymbol"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Anker"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Advarselsskilt"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Højspændingstegn"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Mellemstor, hvid cirkel"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Mellemstor, sort cirkel"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Fodbold"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Baseball"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Snemand uden sne"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Sol bag sky"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Slangebæreren"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Adgang forbudt"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Kirke"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Springvand"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Flag i hul"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Sejlbåd"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Telt"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Benzinpumpe"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Sort saks"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Kraftig hvid markering"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Flyvemaskine"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Kuvert"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Løftet knytnæve"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Løftet hånd"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Sejrshånd"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Blyant"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Sort pen"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Kraftig markering"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Kraftigt gangetegn x"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Gnister"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Asterisk med otte takker"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Sort stjerne med otte takker"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Snefnug"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Gnist"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Kryds"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Firkant med negativt kryds"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Sort spørgsmålstegn, ornament"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Hvidt spørgsmålstegn, ornament"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Hvidt udråbstegn, ornament"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Kraftigt udråbstegn"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Kraftigt sort hjerte"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Kraftigt plustegn"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Kraftigt minustegn"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Kraftigt divisionstegn"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Sort pil mod højre"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Krølle"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Dobbelt krølle"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Pil, der peger mod højre og derefter buer opad"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Pil, der peger mod højre og derefter buer nedad"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Sort pil mod venstre"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Sort pil opad"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Sort pil nedad"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Sort, stor firkant"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Hvid, stor firkant"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Hvid, mellemstor stjerne"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Kraftig, stor cirkel"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Bølgestreg"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Skiftemærke"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Cirkel med ideogram, lykønskning"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Cirkel med ideogram, hemmelighed"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Mahjong-brik, rød drage"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Spillekort, sort joker"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Blodtype A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Blodtype B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Blodtype O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Parkeringsplads"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Blodtype AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"Firkant med \"CL\""</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Firkant med \"cool\""</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Firkant med \"free\""</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"Firkant med \"ID\""</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Firkant med \"new\""</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Firkant med \"NG\""</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Firkant med \"OK\""</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"Firkant med \"SOS\""</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Firkant med \"up\" og udråbstegn"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Firkant med \"vs\""</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Firkant med katakana, her"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Firkant med katakana, service"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Firkant med ideogram, gebyrfri"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Firkant med ideogram, reserveret sæde"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Firkant med ideogram, forbud"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Firkant med ideogram, ledig"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Firkant med ideogram, accept"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Firkant med ideogram, alt optaget"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Firkant med ideogram, betalt"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Firkant med ideogram, månedlig"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Firkant med ideogram, ansøgning"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Firkant med ideogram, rabat"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Firkant med ideogram, åben"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Cirkel med ideogram, fordel"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Cirkel med ideogram, accept"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Cyklon"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Tåget"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Lukket paraply"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Nat med stjerner"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Solopgang over bjerge"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Solopgang"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Bybillede ved skumring"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Solnedgang over bygninger"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Regnbue"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Bro om natten"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Bølge"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Vulkan"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Mælkevejen"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Jordklode, Europa og Afrika"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Jordklode, Nord- og Sydamerika"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Jordklode, Asien og Australien"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Globus med meridianer"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Nymåne"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Tiltagende halvmåne"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Måne i første kvarter"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Tiltagende måne mod fuldmåne"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Fuldmåne"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Aftagende måne lige efter fuldmåne"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Måne i sidste kvarter"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Aftagende halvmåne"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Halvmåne"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Nymåne med ansigt"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Måne i første kvarter med ansigt"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Måne i sidste kvarter med ansigt"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Fuldmåne med ansigt"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Sol med ansigt"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Funklende stjerne"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Stjerneskud"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Kastanje"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Kimplante"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Stedsegrønt træ"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Løvfældende træ"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palmetræ"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Kaktus"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulipan"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Kirsebærblomst"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Rose"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Hibiscus"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Solsikke"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Blomst"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Majskolbe"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Risplante"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Urt"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Firkløver"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Ahornblad"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Nedfaldsløv"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Blad i vinden"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Svamp"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Tomat"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Aubergine"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Vindruer"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Melon"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Vandmelon"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Mandarin"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Citron"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Banan"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ananas"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Rødt æble"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Grønt æble"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Pære"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Fersken"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Kirsebær"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Jordbær"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburger"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Pizzastykke"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Kød på ben"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Fjerkrælår"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Riskiks"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Risbolle"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Kogt ris"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Karry og ris"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Dampende skål"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Spaghetti"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Brød"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Pommes frites"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Stegte søde kartofler"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Sushi"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Stegte rejer"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Fiskefrikadeller med pynt"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Softice"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Is i flager"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Is"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Doughnut"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Cookie"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Chokoladebar"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Slik"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Slikkepind"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Vaniljecreme"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Honningkrukke"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Lagkage"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Bento-boks"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Gryde med mad"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Madlavning"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Kniv og gaffel"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Tekop uden håndtag"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Sakeflaske med kop"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Vinglas"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Cocktailglas"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Tropisk drink"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Ølkrus"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Klirrende ølkrus"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Sutteflaske"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Sløjfe"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Indpakket gave"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Fødselsdagskage"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Græskarlygte"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Juletræ"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Julemanden"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Fyrværkeri"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Stjernekaster"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Ballon"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Bordbombe"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Konfettikugle"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Tanabata-træ"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Krydsede flag"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Japansk nytårspynt"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Japanske dukker"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Koinobori"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Vindklokke"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Månekiggeri"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Skoletaske"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Dimissionshat"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Karruselhest"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Pariserhjul"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Rutsjebane"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Fiskestang og fisk"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Mikrofon"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Filmkamera"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Biograf"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Hovedtelefoner"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Malerpalet"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Høj hat"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Cirkustelt"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Billet"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Klaptræ"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Udøvende kunst"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Videospil"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Fuldtræffer"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Spilleautomat"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Billiard"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Spilterning"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Bowling"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Spillekort med blomster"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Node"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Flere noder"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saxofon"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Guitar"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Tangenter"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Trompet"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Violin"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Musikstykke"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Løbetrøje med skærf"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Tennisketsjer og bold"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Ski og skistøvle"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Basketball og kurv"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Ternet flag"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Snowboarder"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Løber"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Surfer"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Pokal"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Hestevæddeløb"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Amerikansk fodbold"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Rugby"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Svømmer"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Hus"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Hus med have"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Kontorbygning"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Japansk posthus"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Europæisk posthus"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Hospital"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Bank"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Hæveautomat"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Hotel"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Romantisk hotel"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Døgnbutik"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Skole"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Stormagasin"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Fabrik"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Izakaya-lanterne"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Japansk slot"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Europæisk slot"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Rotte"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Mus"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Okse"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Vandbøffel"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Ko"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Leopard"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Kanin"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Kat"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Drage"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Krokodille"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Hval"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Snegl"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Slange"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Hest"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Vædder"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Ged"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Får"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Abe"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Hane"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Kylling"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Hund"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Gris"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Vildsvin"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Elefant"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Blæksprutte"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Sneglehus"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Insekt"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Myre"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Honningbi"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Mariehøne"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Fisk"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Tropisk fisk"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Pindsvinefisk"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Skildpadde"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Kylling under udklækning"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Kylling"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Kylling set forfra"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Fugl"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Pingvin"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koalabjørn"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Puddelhund"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Dromedar"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Kamel"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Delfin"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Musehoved"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Kohoved"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Tigerhoved"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Kaninhoved"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Kattehoved"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Dragehoved"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Hvalsprøjt"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Hestehoved"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Abehoved"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Hundehoved"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Grisehoved"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Frøhoved"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Hamsterhoved"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Ulvehoved"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Bjørnehoved"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Pandahoved"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Grisetryne"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Poteaftryk"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Øjne"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Øre"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Næse"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Mund"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Tunge"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Hvid håndryg med pegefinger op"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Hvid håndryg med pegefinger ned"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Hvid håndryg med pegefinger mod venstre"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Hvid håndryg med pegefinger mod højre"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Knytnæve"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Vinkende hånd"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Håndtegn for OK"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Tommelfinger op"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Tommelfinger ned"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Klappende hænder"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Åbne hænder"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Krone"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Damehat"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Briller"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Slips"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"T-shirt"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Jeans"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Kjole"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Dametøj"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Pung"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Håndtaske"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Pung"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Herresko"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Sportssko"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Højhælet sko"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Damesandal"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Damestøvler"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Fodspor"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Buste i silhuet"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Buster i silhuet"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Dreng"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Pige"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Mand"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Kvinde"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Familie"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Mand og kvinde, der holder hinanden i hånden"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"To mænd, der holder hinanden i hånden"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"To kvinder, der holder hinanden i hånden"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Politibetjent"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Kvinde med kaninører"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Brud med slør"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Person med lyst hår"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Mand med gua pi mao-hat"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Mand med turban"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Ældre mand"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Ældre kvinde"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Baby"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Bygningsarbejder"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Prinsesse"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Japansk trold"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Japansk nisse"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Spøgelse"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Barneengel"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Rumvæsen"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Rummonster"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Djævleunge"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Kranium"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Receptionist"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Vagt"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Danser"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Læbestift"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Neglelak"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Ansigtsmassage"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Klipning"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Barberskilt"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Sprøjte"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Pille"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Kyssemærke"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Kærestebrev"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Ring"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Ædelsten"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Kys"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Buket"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Par med hjerte"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Bryllup"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Bankende hjerte"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Knust hjerte"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"To hjerter"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Glitrende hjerte"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Voksende hjerte"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Hjerte med pil"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Blåt hjerte"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Grønt hjerte"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Gult hjerte"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Lilla hjerte"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Hjerte med bånd"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Roterende hjerter"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Hjertedekoration"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Diamant med en prik"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Elektrisk pære"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Vredessymbol"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bombe"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Sovesymbol"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Kollisionssymbol"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Sveddryp-symbol"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Dråbe"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Løbesymbol"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Bunke møg"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Spændte biceps"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Svimmelhedssymbol"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Taleboble"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Tankeboble"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Hvid blomst"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Hundred point-symbol"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Pengesæk"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Valutaveksling"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Kraftigt dollartegn"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Kreditkort"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Seddel med yentegn"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Seddel med dollartegn"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Seddel med eurotegn"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Seddel med pundtegn"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Penge med vinger"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Diagram med stigende kurve og yentegn"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Sæde"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"PC"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Mappe"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Minidisk"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Floppydisk"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Optisk disk"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"Dvd"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Filmappe"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Åben filmappe"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Side med flip"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Opadvendt side"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Kalender"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Afrivningskalender"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Kartotek"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Diagram med stigende kurve"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Diagram med faldende kurve"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Søjlediagram"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Udklipsholder"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Tegnestift"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Rund tegnestift"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Papirclips"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Lige lineal"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Trekantet lineal"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Faneblade"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Regnskabsbog"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Notesbog"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Notesbog med pænt omslag"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Lukket bog"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Åben bog"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Grøn bog"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Blå bog"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Orange bog"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Bøger"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Navneskilt"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Rulle"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Notat"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Telefonrør"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Personsøger"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Faxmaskine"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Parabolantenne"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Højttaler"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Megafon"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Udbakke"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Indbakke"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Pakke"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"E-mailsymbol"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Indgående kuvert"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Kuvert under pil, der peger nedad"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Lukket postkasse med flaget nede"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Lukket postkasse med flaget oppe"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Åben postkasse med hævet flag"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Åben postkasse med flaget nede"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Postkasse"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Posthorn"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Avis"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Mobiltelefon"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Mobiltelefon med pil, der peger mod højre, til venstre"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Vibrationstilstand"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Slukket mobiltelefon"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Ingen mobiltelefoner"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Tv-antenne"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Kamera"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Videokamera"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Tv"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Radio"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Videokassette"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Snoede pile mod højre"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Pile mod højre og mod venstre i åben cirkel i urets retning"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Pile mod højre og mod venstre i åben cirkel i urets retning med overlejret \"1\" i en cirkel"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Pile opad og nedad i en åben cirkel i urets retning"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Pile nedad og opad i en åben cirkel mod urets retning"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Symbol for lav lysstyrke"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Symbol for høj lysstyrke"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Overstreget højttaler"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Højttaler"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Højttaler med en lydbølge"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Højttaler med tre lydbølger"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Batteri"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Elstik"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Lup mod venstre"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Lup mod højre"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Lås med pen"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Lukket lås med nøgle"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Nøgle"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Lås"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Åben lås"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Klokke"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Overstreget klokke"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Bogmærke"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Linksymbol"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Drejeknap"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"\"BACK\" under en pil mod venstre"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"\"END\" under en pil mod venstre"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"\"ON\" med udråbstegn under en venstre-højrepil"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"\"SOON\" under en pil mod højre"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"\"TOP\" under en pil opad"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Forbudt under 18 år-symbol"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Tast ti"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Inputsymbol for latinske store bogstaver"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Inputsymbol for latinske små bogstaver"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Inputsymbol for tal"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Inputsymbol for symboler"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Inputsymbol for latinske bogstaver"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Ild"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Lommelygte"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Skruenøgle"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Hammer"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Møtrik og bolt"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Hocho-kniv"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Pistol"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Mikroskop"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Teleskop"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Krystalkugle"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Sekstakket stjerne med prik"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Japansk symbol for begynder"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Treforkemblem"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Sort firkantet knap"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Hvid firkantet knap"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Stor, rød cirkel"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Stor, blå cirkel"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Stor, orange rombe"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Stor, blå rombe"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Lille, orange rombe"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Lille, blå rombe"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Rød trekant, der peger opad"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Rød trekant, der peger nedad"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Lille, rød trekant, der peger opad"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Lille, rød trekant, der peger nedad"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Urskive, klokken et"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Urskive, klokken to"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Urskive, klokken tre"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Urskive, klokken fire"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Urskive, klokken fem"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Urskive, klokken seks"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Urskive, klokken syv"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Urskive, klokken otte"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Urskive, klokken ni"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Urskive, klokken ti"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Urskive, klokken elleve"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Urskive, klokken tolv"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Urskive, klokken halv to"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Urskive, klokken halv tre"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Urskive, klokken halv fire"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Urskive, klokken halv fem"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Urskive, klokken halv seks"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Urskive, klokken halv syv"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Urskive, klokken halv otte"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Urskive, klokken halv ni"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Urskive, klokken halv ti"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Urskive, klokken halv elleve"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Urskive, klokken halv tolv"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Urskive, klokken halv et"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Fuji-bjerget"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Tokyo Tower"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Frihedsgudinden"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Silhuet af Japan"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moyai-stenstatue"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Storsmilende ansigt"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Storsmilende ansigt med smilende øjne"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Ansigt med glædestårer"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Smilende ansigt med åben mund"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Smilende ansigt med åben mund og smilende øjne"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Smilende ansigt med åben mund og koldsved"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Smilende ansigt med åben mund og øjne knebet i"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Smilende ansigt med glorie"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Smilende ansigt med horn"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Blinkede ansigt"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Smilende ansigt med smilende øjne"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Ansigt, der slikker sig om munden"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Lettet ansigt"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Smilende ansigt med hjerteformede øjne"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Smilende ansigt med solbriller"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Smørret ansigt"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Neutralt ansigt"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Udtryksløst ansigt"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Ubegejstret ansigt"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Ansigt med koldsved"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Eftertænksomt ansigt"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Forvirret ansigt"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Forvirret ansigt"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Kyssende ansigt"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Ansigt, som sender et luftkys"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Kyssende ansigt med smilende øjne"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Kyssende ansigt med lukkede øjne"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Ansigt, der rækker tunge"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Ansigt, der rækker tunge og blinker"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Ansigt, der rækker tunge, med øjne knebet i"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Skuffet ansigt"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Bekymret ansigt"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Vredt ansigt"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Surmulende ansigt"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Grædende ansigt"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Ihærdigt ansigt"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Triumferende ansigt"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Skuffet, men lettet ansigt"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Galt ansigt med åben mund"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Forpint ansigt"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Frygtsomt ansigt"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Udmattet ansigt"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Søvnigt ansigt"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Træt ansigt"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Grimasse"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Stortudende ansigt"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Ansigt med åben mund"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Tavst ansigt"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Ansigt med åben mund og koldsved"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Ansigt, der skriger af frygt"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Forbløffet ansigt"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Blussende ansigt"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Sovende ansigt"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Svimmelt ansigt"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Ansigt uden mund"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Ansigt med ansigtsmaske"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Storsmilende katteansigt med smilende øjne"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Katteansigt med glædestårer"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Smilende katteansigt med åben mund"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Smilende katteansigt med hjerteformede øjne"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Katteansigt med skævt smil"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Kyssende katteansigt med lukkede øjne"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Surmulende katteansigt"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Grædende katteansigt"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Udmattet katteansigt"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Ansigt med \"duer ikke\"-udtryk"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Ansigt med \"OK\"-udtryk"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Person, som bukker dybt"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Abe, der holder sig for øjnene"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Abe, der holder sig for ørerne"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Abe, der holder sig for munden"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Glad person med en hånd i luften"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Person med begge hænder løftet i glæde"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Gal person"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Surmulende person"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Person med foldede hænder"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Raket"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Helikopter"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Damplokomotiv"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Togvogn"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Lyntog"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Lyntog med afrundet front"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Tog"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Metro"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Letbane"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Station"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Sporvogn"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Sporvogn"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Bus"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Modkørende bus"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Trolleyvogn"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Busstoppested"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Minibus"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Ambulance"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Brandbil"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Politibil"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Modkørende politibil"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taxa"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Modkørende taxa"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Bil"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Modkørende bil"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Autocamper"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Varevogn"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Sættevogn"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Traktor"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Monorail"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Bjergbane"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Luftbane"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Kabelbane"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Svævebane"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Skib"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Robåd"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Speedbåd"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Vandret trafiklys"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Lodret trafiklys"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Vejarbejdeskilt"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Rotorblink på politibil"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Trekantet flag på stang"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Dør"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Adgang forbudt-skilt"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Rygning tilladt-symbol"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Rygning forbudt-symbol"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Put affald i skraldespanden-symbol"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Smid ikke affald-symbol"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Drikkevandssymbol"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Vandet kan ikke drikkes-symbol"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Cykel"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Cykler forbudt"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Cyklist"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Mountainbiker"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Fodgænger"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Fodgængere forbudt"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Børn på vejen"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Symbol for herrer"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Symbol for damer"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Toilet"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Babysymbol"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Toilet"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"WC"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Bruser"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Bad"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Badekar"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Paskontrol"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Told"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Bagageområde"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Bagageopbevaring"</string>
+</resources>
diff --git a/java/res/values-da/strings-talkback-descriptions.xml b/java/res/values-da/strings-talkback-descriptions.xml
index 5f54004..29f4461 100644
--- a/java/res/values-da/strings-talkback-descriptions.xml
+++ b/java/res/values-da/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Der er ingen indtastet tekst"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> retter <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> til <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> udfører automatisk stavekontrol"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Ingen forslag"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Ukendt tegn"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Flere symboler"</string>
@@ -38,7 +39,7 @@
     <string name="spoken_description_settings" msgid="7281251004003143204">"Indstillinger"</string>
     <string name="spoken_description_tab" msgid="8210782459446866716">"Fane"</string>
     <string name="spoken_description_space" msgid="5908716896642059145">"Mellemrum"</string>
-    <string name="spoken_description_mic" msgid="6153138783813452464">"Stemmeinput"</string>
+    <string name="spoken_description_mic" msgid="6153138783813452464">"Indtaling"</string>
     <string name="spoken_description_emoji" msgid="7990051553008088470">"Emoji"</string>
     <string name="spoken_description_return" msgid="3183692287397645708">"Return"</string>
     <string name="spoken_description_search" msgid="5099937658231911288">"Søgning"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Stort I med prik over"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Ukendt symbol"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Ukendt emoji"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Træt ansigt"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Forlegent ansigt"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Ansigt med solbriller"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Overrasket ansigt"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Kyssende ansigt"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Surt ansigt"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Alternative tegn er tilgængelige"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Alternative tegn er deaktiveret"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Alternative forslag er tilgængelige"</string>
diff --git a/java/res/values-da/strings.xml b/java/res/values-da/strings.xml
index b33cacc..f40b645 100644
--- a/java/res/values-da/strings.xml
+++ b/java/res/values-da/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibration ved tastetryk"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Lyd ved tastetryk"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Pop op ved tastetryk"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Præferencer"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Konti og privatliv"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Udseende og layouts"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Glidende indtastning"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Tekstkorrigering"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Avanceret"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Aktivér delt tastatur"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Synkronisering af Google-tastatur"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Synkronisering er slået til"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Synkroniser din personlige ordbog på alle enheder"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Synkroniser nu"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Slet data fra skyen"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Sletter dine synkroniserede data fra Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Dine synkroniserede data slettes fra skyen. Er du sikker?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Slet"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Annuller"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Din personlige ordbog synkroniseres og sikkerhedskopieres til Googles servere. De statistiske oplysninger om ordfrekvens indsamles muligvis med henblik på at forbedre vores produkter. Indsamlingen og brugen af alle oplysninger sker i overensstemmelse med "<a href="https://www.google.com/policies/privacy">"Googles privatlivspolitik"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Føj en Google-konto til enheden for at aktivere denne funktion"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Skift inputmetode"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Tasten til sprogskift gælder også for andre inputmetoder"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Knap til sprogskift"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Vis, når der er aktiveret flere inputsprog"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Vis indikator ved glidning"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Vis et visuelt tip, når du glider fra Shift eller symboltaster"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Forsink. afvis. af taste-pop op"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Ingen forsink."</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Standard"</string>
@@ -62,44 +67,52 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Hovedordbog"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Vis rettelsesforslag"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Vis ordforslag under indtastning"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Vis altid"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Vis i oprejst format"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Skjul altid"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Bloker stødende ord"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Foreslå ikke potentielt stødende ord"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Automatisk rettelse"</string>
     <string name="auto_correction_summary" msgid="5625751551134658006">"Mellemrumstast og tegnsætning retter automatisk forkerte ord"</string>
     <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Fra"</string>
     <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Moderat"</string>
-    <string name="auto_correction_threshold_mode_aggressive" msgid="7319007299148899623">"Aggressiv"</string>
-    <string name="auto_correction_threshold_mode_very_aggressive" msgid="1853309024129480416">"Meget aggressiv"</string>
+    <string name="auto_correction_threshold_mode_aggressive" msgid="7319007299148899623">"Middel"</string>
+    <string name="auto_correction_threshold_mode_very_aggressive" msgid="1853309024129480416">"Maksimal"</string>
     <string name="bigram_prediction" msgid="1084449187723948550">"Forslag til næste ord"</string>
     <string name="bigram_prediction_summary" msgid="3896362682751109677">"Brug det forrige ord til at give forslag"</string>
     <string name="gesture_input" msgid="826951152254563827">"Aktivér glidende indtastning"</string>
-    <string name="gesture_input_summary" msgid="9180350639305731231">"Skriv et ord ved at glide mellem bogstaverne"</string>
+    <string name="gesture_input_summary" msgid="9180350639305731231">"Skriv et ord ved at trække fingeren rundt mellem bogstaverne"</string>
     <string name="gesture_preview_trail" msgid="3802333369335722221">"Vis glidende trykspor"</string>
     <string name="gesture_floating_preview_text" msgid="4443240334739381053">"Dynamiske ordeksempler"</string>
     <string name="gesture_floating_preview_text_summary" msgid="4472696213996203533">"Se ordforslag ved glidende indtastning"</string>
-    <string name="gesture_space_aware" msgid="2078291600664682496">"Bevægelse for udtryk"</string>
+    <string name="gesture_space_aware" msgid="2078291600664682496">"Glidende mellemrum"</string>
     <string name="gesture_space_aware_summary" msgid="4371385818348528538">"Tilføj mellemrum ved at glide til mellemrumstasten"</string>
-    <string name="voice_input" msgid="3583258583521397548">"Knap til taleinput"</string>
-    <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Der er ingen aktiverede stemmeinputmetoder. Kontrollér Indstillinger for sprog og input."</string>
+    <string name="voice_input" msgid="3583258583521397548">"Knap til indtaling"</string>
+    <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Der er ingen aktiverede indtalingsmetoder. Kontrollér Indstillinger for sprog og input."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Konfigurer inputmetoder"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Inputsprog"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Send feedback"</string>
-    <string name="select_language" msgid="3693815588777926848">"Inputsprog"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Sprog"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Hjælp og feedback"</string>
+    <string name="select_language" msgid="5709487854987078367">"Sprog"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Tryk igen for at gemme"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Klik her for at gemme"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Ordbog er tilgængelig"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Tastaturtema"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Skift konto"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Du har ikke valgt en konto"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Du bruger i øjeblikket <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Annuller"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Log ud"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Vælg den konto, du vil bruge"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Engelsk (Storbritannien)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Engelsk (USA)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Spansk (USA)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Serbisk (latinsk)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Engelsk (UK) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Engelsk (USA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Spansk (USA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Serbisk (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (traditionelt)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (kyrillisk)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (latin)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (kompakt)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Intet sprog (Alfabet)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabet (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabet (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabet (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabet (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Tastaturtema"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Tilpasset inputtypografi"</string>
     <string name="add_style" msgid="6163126614514489951">"Tilføj typografi"</string>
     <string name="add" msgid="8299699805688017798">"Tilføj"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Aktivér"</string>
     <string name="not_now" msgid="6172462888202790482">"Ikke nu"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Denne inputstil findes allerede: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Forsinket langt tastetryk"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Vibrationstid ved tastetryk"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Lydstyrke ved tastetryk"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Læs ekstern ordbogsfil"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Der er ingen ordbogsfiler i mappen Downloads"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Vælg den ordbog, som du vil installere"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Vil du virkelig installere denne fil for <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Der opstod en fejl"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Forsinket langt tastetryk"</string>
     <string name="button_default" msgid="3988017840431881491">"Standard"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Velkommen til <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"med glidende indtastning"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Nu kan du skrive i alle dine favoritapps med <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Konfigurer flere sprog"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Afslut"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Vis appikon"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Vis appikon på applisten"</string>
     <string name="app_name" msgid="6320102637491234792">"Dictionary Provider"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Dictionary Provider"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Ordbogstjeneste"</string>
diff --git a/java/res/values-de/strings-emoji-descriptions.xml b/java/res/values-de/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..d964e53
--- /dev/null
+++ b/java/res/values-de/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Copyright-Zeichen"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Registered Trademark-Zeichen"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Doppeltes Ausrufezeichen"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Ausrufe- und Fragezeichen"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Trademark-Zeichen"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Symbol für Informationsquelle"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Pfeil nach rechts und links"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Pfeil nach oben und unten"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Pfeil nach links oben"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Pfeil nach rechts oben"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Pfeil nach rechts unten"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Pfeil nach links unten"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Linkspfeil mit Haken"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Rechtspfeil mit Haken"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Uhr"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Sanduhr"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Nach rechts zeigendes schwarzes doppeltes Dreieck"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Nach links zeigendes schwarzes doppeltes Dreieck"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Nach oben zeigendes schwarzes doppeltes Dreieck"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Nach unten zeigendes schwarzes doppeltes Dreieck"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Wecker"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Sanduhr mit rieselndem Sand"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Eingekreister lateinischer Großbuchstabe M"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Kleines schwarzes Quadrat"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Kleines weißes Quadrat"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Nach rechts zeigendes schwarzes Dreieck"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Nach links zeigendes schwarzes Dreieck"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Mittelgroßes weißes Quadrat"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Mittelgroßes schwarzes Quadrat"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Mittelkleines weißes Quadrat"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Mittelkleines schwarzes Quadrat"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Schwarze Sonne mit Strahlen"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Wolke"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Schwarzes Telefon"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Markierungsfeld mit Häkchen"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Schirm mit Regentropfen"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Heißgetränk"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Nach oben deutender Zeigefinger"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Weißes Smiley"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Sternzeichen Widder"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Sternzeichen Stier"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Sternzeichen Zwillinge"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Sternzeichen Krebs"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Sternzeichen Löwe"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Sternzeichen Jungfrau"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Sternzeichen Waage"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Sternzeichen Skorpion"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Sternzeichen Schütze"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Sternzeichen Steinbock"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Sternzeichen Wassermann"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Sternzeichen Fische"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Pik schwarz"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Kreuz schwarz"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Herz schwarz"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Karo schwarz"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Thermalquellen"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Schwarzes allgemeingültiges Recycling-Symbol"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Rollstuhlsymbol"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Anker"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Warnzeichen"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Hochspannungszeichen"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Mittelgroßer weißer Kreis"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Mittelgroßer schwarzer Kreis"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Fußball"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Baseball"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Schneemann ohne Schnee"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Sonne hinter Wolke"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Sternbild Schlangenträger"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Zeichen für \"Kein Durchgang\""</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Kirche"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Brunnen"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Fahne im Loch"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Segelboot"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Zelt"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Zapfsäule"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Schwarze Schere"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Weißes Häkchen in Fettdruck"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Flugzeug"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Briefumschlag"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Erhobene Faust"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Erhobene Hand"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Victoryzeichen"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Bleistift"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Schwarze Schreibfeder"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Häkchen in Fettdruck"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Malzeichen in Fettdruck"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Funkeln"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Achtzackiges Sternchen"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Achtzackiger schwarzer Stern"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Schneeflocke"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Funken"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Angekreuzt-Zeichen"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Angekreuztes gefülltes Quadrat"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Schwarzes Fragezeichen"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Weißes Fragezeichen"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Weißes Ausrufezeichen"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Ausrufezeichen in Fettdruck"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Schwarzes Herz in Fettdruck"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Pluszeichen in Fettdruck"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Minuszeichen in Fettdruck"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Divisionszeichen in Fettdruck"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Schwarzer Pfeil nach rechts"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Schleife"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Doppelschleife"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Pfeil nach rechts und dann im Bogen nach oben"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Pfeil nach rechts und dann im Bogen nach unten"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Schwarzer Pfeil nach links"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Schwarzer Pfeil nach oben"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Schwarzer Pfeil nach unten"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Großes schwarzes Quadrat"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Großes weißes Quadrat"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Mittelgroßer weißer Stern"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Großer Kreis in Fettdruck"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Wellenlinie"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Ioriten"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Rundes Ideogramm für \"Glückwunsch\""</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Rundes Ideogramm für \"Geheimnis\""</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Mahjong-Stein Roter Drache"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Spielkarte mit schwarzem Joker"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Blutgruppe A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Blutgruppe B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Blutgruppe O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Parkplatz-Symbol"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Blutgruppe AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"Quadrat mit \"CL\" (Clear)"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Quadrat mit \"Cool\""</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Quadrat mit \"Free\""</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"Quadrat mit \"ID\""</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Quadrat mit \"New\""</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Quadrat mit \"NG\" (No Good)"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Quadrat mit \"OK\""</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"Quadrat mit \"SOS\""</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Quadrat mit \"UP\" und Ausrufezeichen"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Quadrat mit \"VS\" (Versus)"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Quadrat mit japanischem Zeichen für \"Hier\""</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Quadrat mit japanischem Zeichen für \"Service\""</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Quadrat mit Ideogramm \"Nichts\""</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Quadrat mit Ideogramm \"Reserviert\""</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Quadrat mit Ideogramm \"Verbot\""</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Quadrat mit Ideogramm \"Frei\""</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Quadrat mit Ideogramm \"Passend/Bestätigt\""</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Quadrat mit Ideogramm \"Voll/Besetzt\""</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Quadrat mit Ideogramm \"Bezahlt\""</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Quadrat mit Ideogramm \"Monatlich\""</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Quadrat mit Ideogramm \"Antrag\""</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Quadrat mit Ideogramm \"Rabatt\""</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Quadrat mit Ideogramm \"Geöffnet\""</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Rundes japanisches Ideogramm für \"Vorteil\""</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Rundes japanisches Ideogramm für \"Akzeptieren\""</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Zyklon"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Neblig"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Geschlossener Schirm"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Sternennacht"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Sonnenaufgang in den Bergen"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Sonnenaufgang"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Stadtsilhouette in der Abenddämmerung"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Stadtsilhouette mit Sonnenuntergang"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Regenbogen"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Brücke bei Nacht"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Welle"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Vulkan"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Milchstraße"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Globus mit Europa/Afrika"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Globus mit Amerika"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Globus mit Asien/Australien"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Globus mit Meridianen"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Neumond"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Zunehmender Sichelmond"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Mond im ersten Viertel"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Zunehmender Dreiviertelmond"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Vollmond"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Abnehmender Dreiviertelmond"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Mond im letzten Viertel"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Abnehmender Sichelmond"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Mondsichel"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Neumond mit Gesicht"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Mond mit Gesicht im ersten Viertel"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Mond mit Gesicht im letzten Viertel"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Vollmond mit Gesicht"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Sonne mit Gesicht"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Leuchtender Stern"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Sternschnuppe"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Kastanie"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Setzling"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Nadelbaum"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Laubbaum"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palme"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Kaktus"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulpe"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Kirschblüte"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Rose"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Hibiskus"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Sonnenblume"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Blüte"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Maiskolben"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Reisähren"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Kräuter"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Vierblättriges Kleeblatt"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Ahornblatt"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Herabgefallenes Blatt"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Blatt im Wind"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Pilz"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Tomate"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Aubergine"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Trauben"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Melone"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Wassermelone"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Mandarine"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Zitrone"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Banane"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ananas"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Roter Apfel"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Grüner Apfel"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Birne"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Pfirsich"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Kirschen"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Erdbeere"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburger"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Pizzastück"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Fleisch am Knochen"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Geflügelschenkel"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Reiscracker"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Reisbällchen"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Gekochter Reis"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Reis mit Curry"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Dampfende Schüssel"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Spaghetti"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Brot"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Pommes frites"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Geröstete Süßkartoffel"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Sushi"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Frittierte Garnele"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Fischfrikadelle mit Wirbelverzierung"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Softeis"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Shaved Ice"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Eiscreme"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Donut"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Cookie"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Schokoladentafel"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Bonbon"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lutscher"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Vanillepudding/Eiercreme"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Honigtopf"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Shortcake"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Bento-Box"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Schale mit Essen"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Kochen"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Messer und Gabel"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Teetasse ohne Henkel"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Sake-Flasche und -Tasse"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Weinglas"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Cocktailglas"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Cocktail"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Bierkrug"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Anstoßende Bierkrüge"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Babyfläschchen"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Schleife"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Geschenk"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Geburtstagstorte"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Halloweenkürbis"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Weihnachtsbaum"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Weihnachtsmann"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Feuerwerk"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Wunderkerze"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Luftballon"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Konfettikanone"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Konfettiball"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Tanabata-Baum"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Gekreuzte Flaggen"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Japanische Neujahrsdekoration"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Japanische Puppen"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Japanische Karpfenfahne"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Windspiel"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Japanisches Mondfest"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Schulranzen"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"College-Hut"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Karussellpferd"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Riesenrad"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Achterbahn"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Angelrute und Fisch"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Mikrofon"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Filmkamera"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Kino"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Kopfhörer"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Farbpalette"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Zylinder"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Zirkuszelt"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Ticket"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Filmklappe"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Darstellende Künste"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Videospiel"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Volltreffer"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Spielautomat"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Billard"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Spielwürfel"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Bowling"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Japanische Spielkarten mit Blumenmotiv"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Musiknote"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Mehrere Musiknoten"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saxofon"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Gitarre"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Klaviatur"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Trompete"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Geige"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Partitur"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Laufshirt mit Schärpe"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Tennisschläger und Ball"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Ski und Skischuhe"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Basketball und Korb"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Zielflagge"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Snowboarder"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Läufer"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Surfer"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Pokal"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Pferderennen"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"American Football"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Rugbyball"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Schwimmer"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Haus"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Haus mit Garten"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Bürogebäude"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Japanisches Postamt"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Europäisches Postamt"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Krankenhaus"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Bank"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Geldautomat"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Hotel"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Love Hotel"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Verbrauchermarkt"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Schule"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Kaufhaus"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Fabrik"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Izakaya-Laterne"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Burg/Schloss japanisch"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Burg/Schloss europäisch"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Ratte"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Maus"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Ochse"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Wasserbüffel"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Kuh"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Leopard"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Kaninchen"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Katze"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Drache"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Krokodil"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Wal"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Schnecke"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Schlange"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Pferd"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Schafbock"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Ziege"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Schaf"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Affe"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Hahn"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Huhn"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Hund"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Schwein"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Wildschwein"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Elefant"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Krake"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Spiralmuschel"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Insekt/Käfer"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Ameise"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Biene"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Marienkäfer"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Fisch"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Tropischer Fisch"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Kugelfisch"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Schildkröte"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Schlüpfendes Küken"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Küken"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Küken von vorne"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Vogel"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Pinguin"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Pudel"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Dromedar"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Kamel"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Delfin"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Mäusekopf"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Kuhkopf"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Tigerkopf"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Hasenkopf"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Katzenkopf"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Drachenkopf"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Fontäne ausstoßender Wal"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Pferdekopf"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Affenkopf"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Hundekopf"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Schweinekopf"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Froschkopf"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Hamsterkopf"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Wolfskopf"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Bärenkopf"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Pandakopf"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Schweinenase"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Pfotenabdrücke"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Augen"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Ohr"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Nase"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Mund"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Zunge"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Handrückseite mit nach oben deutendem Zeigefinger"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Handrückseite mit nach unten deutendem Zeigefinger"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Handrückseite mit nach links deutendem Zeigefinger"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Handrückseite mit nach rechts deutendem Zeigefinger"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Faust"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Winkende Hand"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Handzeichen für \"OK\""</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Daumen hoch"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Daumen runter"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Klatschende Hände"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Geöffnete Hände"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Krone"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Damenhut"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Brille"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Krawatte"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"T-Shirt"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Jeans"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Kleid"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Damenkleidung"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Geldbörse"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Handtasche"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Beutel"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Herrenschuh"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Turnschuh"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Stöckelschuh"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Damensandalette"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Damenstiefel"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Fußabdrücke"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Silhouette eines Oberkörpers"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Silhouette mehrerer Oberkörper"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Junge"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Mädchen"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Mann"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Frau"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Familie"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Mann und Frau halten sich an der Hand"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Zwei Männer halten sich an der Hand"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Zwei Frauen halten sich an der Hand"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Polizist"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Frau mit Hasenohren"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Braut mit Schleier"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Person mit blondem Haar"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Mann mit japanischer Kopfbedeckung (Gua Pi Mao)"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Mann mit Turban"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Älterer Mann"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Ältere Frau"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Baby"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Bauarbeiter"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Prinzessin"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Japanischer Oger"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Japanischer Kobold"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Geist"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Engelchen"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Alien"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Alien-Monster"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Teufelchen"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Schädel"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Mitarbeiter am Informationsschalter"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Gardist"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Tänzer"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Lippenstift"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Nagellack"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Gesichtsmassage"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Haarschnitt"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Friseurzunftzeichen"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Spritze"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Pille"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Kussmund"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Liebesbrief"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Ring"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Edelstein"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Kuss"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Blumenstrauß"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Pärchen mit Herz"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Hochzeit"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Schlagendes Herz"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Gebrochenes Herz"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Zwei Herzen"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Funkelndes Herz"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Größer werdendes Herz"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Herz mit Pfeil"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Blaues Herz"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Grünes Herz"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Gelbes Herz"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Lilafarbenes Herz"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Herz mit Schleife"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Umeinander kreisende Herzen"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Herzverzierung"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Rautenform mit Punkt innen"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Glühbirne"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Symbol für Ärger"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bombe"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Symbol für Schlafen"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Symbol für Kollision"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Symbol für Schwitzen"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Tropfen"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Symbol für Sausen (Staubwolke)"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Kothäufchen"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Angespannter Bizeps"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Symbol für \"Schwindelig\""</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Sprechblase"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Gedankenblase"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Weiße Blume"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Symbol für 100 Punkte"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Geldsack"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Geldwechsel"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Dollarzeichen in Fettdruck"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Kreditkarte"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Geldschein mit Yen-Zeichen"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Geldschein mit Dollar-Zeichen"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Geldschein mit Euro-Zeichen"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Geldschein mit Pfund-Zeichen"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Geld mit Flügeln"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Diagramm mit Aufwärtstrend und Yen-Zeichen"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Sitz"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Computer"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Aktentasche"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Minidisc"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Diskette"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"CD"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Ordner"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Geöffneter Ordner"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Teilweise eingerolltes Blatt"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Vorderseite eines Dokuments"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Kalender"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Abreißkalender"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Kartei"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Diagramm mit Aufwärtstrend"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Diagramm mit Abwärtstrend"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Balkendiagramm"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Klemmbrett"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Pinnadel"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Pinnadel mit rundem Kopf"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Büroklammer"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Lineal"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Geodreieck"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Haftmarker"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Kontenbuch"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Notizbuch"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Notizbuch mit dekorativem Cover"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Geschlossenes Buch"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Offenes Buch"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Grünes Buch"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Blaues Buch"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Oranges Buch"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Bücher"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Namensschild"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Schriftrolle"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Memo"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Telefonhörer"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Pager"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Faxgerät"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Satellitenschüssel"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Beschallungslautsprecher"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Megafon"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Ablage für Postausgang"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Ablage für Posteingang"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Paket"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"E-Mail-Symbol"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Briefeingang"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Briefumschlag mit nach unten zeigendem Pfeil darüber"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Geschlossener Briefkasten mit gesenkter Fahne"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Geschlossener Briefkasten mit erhobener Fahne"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Offener Briefkasten mit erhobener Fahne"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Offener Briefkasten mit gesenkter Fahne"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Briefkasten"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Posthorn"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Zeitung"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Mobiltelefon"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Mobiltelefon mit nach rechts zeigendem Pfeil links daneben"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Vibrationsmodus"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Mobiltelefon aus"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Keine Mobiltelefone"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Balkenförmige Signalstärkenanzeige"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Fotoapparat"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Videokamera"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Fernseher"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Radio"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Videokassette"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Verschlungene Pfeile nach rechts"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Kreisförmige Pfeile im Uhrzeigersinn"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Kreisförmige Pfeile im Uhrzeigersinn mit überlagerter eingerahmter Ziffer 1"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Kreisförmige Pfeile nach unten und oben im Uhrzeigersinn"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Kreisförmige Pfeile nach unten und oben gegen den Uhrzeigersinn"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Symbol für schwache Helligkeit"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Symbol für starke Helligkeit"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Durchgestrichener Lautsprecher"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Lautsprecher"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Lautsprecher mit einer Schallwelle"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Lautsprecher mit drei Schallwellen"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Batterie"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Stecker"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Nach links geneigte Lupe"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Nach rechts geneigte Lupe"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Vorhängeschloss mit Füllfederhalter"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Geschlossenes Vorhängeschloss mit Schlüssel"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Schlüssel"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Vorhängeschloss"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Geöffnetes Vorhängeschloss"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Glocke"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Durchgestrichene Glocke"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Lesezeichen"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Symbol für Verknüpfung"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Auswahltaste"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"\"BACK\" mit nach links zeigendem Pfeil darüber"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"\"END\" mit nach links zeigendem Pfeil darüber"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"\"ON\" mit Ausrufezeichen und nach links und rechts zeigendem Pfeil darüber"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"\"SOON\" mit nach rechts zeigendem Pfeil darüber"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"\"TOP\" mit nach oben zeigendem Pfeil darüber"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Symbol für \"Erst ab 18\""</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Computertaste mit der Ziffer 10"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Eingabesymbol für lateinische Großbuchstaben"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Eingabesymbol für lateinische Kleinbuchstaben"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Eingabesymbol für Ziffern"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Eingabesymbol für Sonderzeichen"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Eingabesymbol für lateinische Buchstaben"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Feuer"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Taschenlampe"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Schraubenschlüssel"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Hammer"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Schraube und Mutter"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Japanisches Küchenmesser"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Pistole"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Mikroskop"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Teleskop"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Kristallkugel"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Sechszackiger Stern mit Punkt in der Mitte"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Japanisches Symbol für Anfänger"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Dreizack-Symbol"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Schwarze quadratische Taste"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Weiße quadratische Taste"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Großer roter Kreis"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Großer blauer Kreis"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Große orange Raute"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Große blaue Raute"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Kleine orange Raute"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Kleine blaue Raute"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Nach oben zeigendes rotes Dreieck"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Nach unten zeigendes rotes Dreieck"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Nach oben zeigendes kleines rotes Dreieck"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Nach unten zeigendes kleines rotes Dreieck"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Ziffernblatt mit der Anzeige ein Uhr"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Ziffernblatt mit der Anzeige zwei Uhr"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Ziffernblatt mit der Anzeige drei Uhr"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Ziffernblatt mit der Anzeige vier Uhr"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Ziffernblatt mit der Anzeige fünf Uhr"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Ziffernblatt mit der Anzeige sechs Uhr"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Ziffernblatt mit der Anzeige sieben Uhr"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Ziffernblatt mit der Anzeige acht Uhr"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Ziffernblatt mit der Anzeige neun Uhr"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Ziffernblatt mit der Anzeige zehn Uhr"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Ziffernblatt mit der Anzeige elf Uhr"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Ziffernblatt mit der Anzeige zwölf Uhr"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Ziffernblatt mit der Anzeige ein Uhr dreißig"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Ziffernblatt mit der Anzeige zwei Uhr dreißig"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Ziffernblatt mit der Anzeige drei Uhr dreißig"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Ziffernblatt mit der Anzeige vier Uhr dreißig"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Ziffernblatt mit der Anzeige fünf Uhr dreißig"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Ziffernblatt mit der Anzeige sechs Uhr dreißig"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Ziffernblatt mit der Anzeige sieben Uhr dreißig"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Ziffernblatt mit der Anzeige acht Uhr dreißig"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Ziffernblatt mit der Anzeige neun Uhr dreißig"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Ziffernblatt mit der Anzeige zehn Uhr dreißig"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Ziffernblatt mit der Anzeige elf Uhr dreißig"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Ziffernblatt mit der Anzeige zwölf Uhr dreißig"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Vulkan Fuji"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Tokyo Tower"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Freiheitsstatue"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Umriss von Japan"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moyai-Statue"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Grinsendes Gesicht"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Grinsendes Gesicht mit lächelnden Augen"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Gesicht mit Freudentränen"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Lächelndes Gesicht mit offenem Mund"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Lächelndes Gesicht mit offenem Mund und fröhlichen Augen"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Lächelndes Gesicht mit offenem Mund und Angstschweiß"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Lächelndes Gesicht mit offenem Mund und zugekniffenen Augen"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Lächelndes Gesicht mit Heiligenschein"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Lächelndes Gesicht mit Hörnern"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Zwinkerndes Gesicht"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Lächelndes Gesicht mit lächelnden Augen"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Gesicht, das köstliches Essen genießt"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Erleichtertes Gesicht"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Lächelndes Gesicht mit herzförmigen Augen"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Lächelndes Gesicht mit Sonnenbrille"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Süffisant lächelndes Gesicht"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Neutrales Gesicht"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Ausdrucksloses Gesicht"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Unerfreutes Gesicht"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Gesicht mit Angstschweiß"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Nachdenkliches Gesicht"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Verwirrtes Gesicht"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Bestürztes Gesicht"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Küssendes Gesicht"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Gesicht, das einen Kuss zuwirft"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Küssendes Gesicht mit lächelnden Augen"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Küssendes Gesicht mit geschlossenen Augen"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Gesicht mit herausgestreckter Zunge"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Gesicht mit herausgestreckter Zunge und zwinkerndem Auge"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Gesicht mit herausgestreckter Zunge und zugekniffenen Augen"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Enttäuschtes Gesicht"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Besorgtes Gesicht"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Verärgertes Gesicht"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Schmollendes Gesicht"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Weinendes Gesicht"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Hartnäckiges Gesicht"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Triumphierendes Gesicht"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Enttäuschtes, aber erleichtertes Gesicht"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Stirnrunzelndes Gesicht mit offenem Mund"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Schmerzgeplagtes Gesicht"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Ängstliches Gesicht"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Erschöpftes Gesicht"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Schläfriges Gesicht"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Müdes Gesicht"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Grimassen schneidendes Gesicht"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Heftig weinendes Gesicht"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Gesicht mit offenem Mund"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Sprachloses Gesicht"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Gesicht mit offenem Mund und Angstschweiß"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Vor Angst schreiendes Gesicht"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Erstauntes Gesicht"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Errötetes Gesicht"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Schlafendes Gesicht"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Schwindeliges Gesicht"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Gesicht ohne Mund"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Gesicht mit Mundschutz"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Grinsendes Katzengesicht mit lächelnden Augen"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Katzengesicht mit Freudentränen"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Lächelndes Katzengesicht mit offenem Mund"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Lächelndes Katzengesicht mit herzförmigen Augen"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Katzengesicht mit schiefem Lächeln"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Küssendes Katzengesicht mit geschlossenen Augen"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Schmollendes Katzengesicht"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Weinendes Katzengesicht"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Erschöpftes Katzengesicht"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Gesicht mit Nicht in Ordnung-Geste"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Gesicht mit OK-Geste"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Sich tief verneigende Person"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Nichts-Sehen-Affe"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Nichts-Hören-Affe"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Nichts-Sagen-Affe"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Glückliche Person mit einer erhobenen Hand"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Person streckt vor Freude die Arme in die Höhe"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Stirnrunzelnde Person"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Person mit schmollendem Gesicht"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Person mit gefalteten Händen"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Rakete"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Hubschrauber"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Dampflokomotive"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Eisenbahnwaggon"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Hochgeschwindigkeitszug"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Hochgeschwindigkeitszug mit abgerundeter Spitze"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Zug"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"U-Bahn"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Stadtahn"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Haltestelle"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Straßenbahn"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Straßenbahnwagen"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Bus"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Entgegenkommender Bus"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Oberleitungsbus"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Bushaltestelle"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Minibus"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Krankenwagen"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Feuerwehrauto"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Polizeiauto"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Entgegenkommendes Polizeiauto"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taxi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Entgegenkommendes Taxi"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"PKW"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Entgegenkommender PKW"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Wohnmobil"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"LKW"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Sattelschlepper"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Traktor"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Einschienenbahn"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Bergbahn"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Schwebebahn"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Seilbahn"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Pendelseilbahn"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Schiff"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Ruderboot"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Schnellboot"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Horizontale Ampel"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Vertikale Ampel"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Baustellenschild"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Polizeiblaulicht"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Dreieckige Flagge an Fahnenmast"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Tür"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Zeichen für \"Kein Zutritt\""</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Symbol für \"Rauchen erlaubt\""</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Symbol für \"Rauchen verboten\""</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Symbol für \"Müll in Abfalleimer\""</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Symbol für \"Bitte sauber halten\""</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Symbol für Trinkwasser"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Symbol für \"Kein Trinkwasser\""</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Fahrrad"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Symbol für \"Radfahren verboten\""</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Radfahrer"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Mountainbiker"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Fußgänger"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Symbol für \"Keine Fußgänger\""</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Symbol für \"Kinder unterwegs\""</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Symbol für \"Herren\""</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Symbol für \"Damen\""</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Symbol für \"Toiletten\""</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Symbol für \"Baby\""</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Toilette"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"WC-Symbol"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Dusche"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Bad"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Badewanne"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Symbol für Passkontrolle"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Symbol für Zollabfertigung"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Symbol für Gepäckausgabe"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Symbol für Gepäckaufbewahrung"</string>
+</resources>
diff --git a/java/res/values-de/strings-talkback-descriptions.xml b/java/res/values-de/strings-talkback-descriptions.xml
index 27e9ecc..469267b 100644
--- a/java/res/values-de/strings-talkback-descriptions.xml
+++ b/java/res/values-de/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Kein Text eingegeben"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"Mit <xliff:g id="KEY_NAME">%1$s</xliff:g> wird \"<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>\" in \"<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>\" geändert."</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Mit <xliff:g id="KEY_NAME">%1$s</xliff:g> erfolgt eine Autokorrektur."</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Kein Vorschlag"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Unbekanntes Zeichen"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Umschalttaste"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Weitere Symbole"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Großbuchstabe I mit übergesetztem Punkt"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Unbekanntes Symbol"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Unbekanntes Emoji"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Gelangweiltes Gesicht"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Verlegenes Gesicht"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Gesicht mit Sonnenbrille"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Überraschtes Gesicht"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Küssendes Gesicht"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Finsteres Gesicht"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Es sind Alternativzeichen verfügbar."</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Alternativzeichen werden ausgeblendet."</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Es sind Alternativvorschläge verfügbar."</string>
diff --git a/java/res/values-de/strings.xml b/java/res/values-de/strings.xml
index ece1a20..bbee769 100644
--- a/java/res/values-de/strings.xml
+++ b/java/res/values-de/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Bei Tastendruck vibrieren"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Ton bei Tastendruck"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Pop-up bei Tastendruck"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Einstellungen"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Konten &amp; Datenschutz"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Darstellung &amp; Layouts"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Bewegungseingabe"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Textkorrektur"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Erweitert"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Design"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Geteilte Tastatur aktivieren"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google-Tastatur-Synchronisierung"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Die Synchronisierung ist aktiviert."</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Persönliches Wörterbuch geräteübergreifend synchronisieren"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Jetzt synchronisieren"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Cloud-Daten löschen"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Löscht Ihre synchronisierten Daten aus Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Die synchronisierten Daten werden aus der Cloud gelöscht. Sicher?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Löschen"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Abbrechen"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Ihr persönliches Wörterbuch wird mit den Google-Servern synchronisiert und auf diesen Servern gesichert. Zur Verbesserung unserer Produkte werden eventuell statistische Daten zur Worthäufigkeit erfasst. Die Erfassung und Nutzung sämtlicher Daten erfolgt gemäß der "<a href="https://www.google.com/policies/privacy">"Datenschutzerklärung von Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Zur Aktivierung dieser Funktion Google-Konto zu Gerät hinzufügen"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Eingabemethoden wechseln"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Sprachwechseltaste umfasst auch andere Eingabemethoden."</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Sprachwechsel"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Anzeigen, wenn mehrere Eingabesprachen aktiviert sind"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Ziehbewegung anzeigen"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Ziehen mit gedrückter Symboltaste oder Shift visuell darstellen"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Tasten-Pop-up"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Keine Verzögerung"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Standard"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Allgemeines Wörterbuch"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Änderungsvorschläge"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Vorgeschlagene Wörter während des Tippens anzeigen"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Immer anzeigen"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Im Hochformat anzeigen"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Nie anzeigen"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Anstößige Wörter sperren"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Keine potenziell anstößigen Wörter vervollständigen"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Autokorrektur"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Taste für Spracheingabe"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Keine Spracheingabemethoden aktiviert. Rufen Sie die Einstellungen für \"Sprache &amp; Eingabe\" auf."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Eingabemethoden konfigurieren"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Eingabesprachen"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Feedback geben"</string>
-    <string name="select_language" msgid="3693815588777926848">"Eingabesprachen"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Sprachen"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Hilfe &amp; Feedback"</string>
+    <string name="select_language" msgid="5709487854987078367">"Sprachen"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Zum Speichern erneut berühren"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Tippen Sie hier zum Speichern."</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Wörterbuch verfügbar"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Tastaturdesign"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Konto wechseln"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Keine Konten ausgewählt"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Momentan wird <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g> verwendet."</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Abbrechen"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Abmelden"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Zu verwendendes Konto auswählen"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Englisch (UK)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Englisch (USA)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Spanisch (USA)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Serbisch (Lateinisch)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Englisch (GB) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Englisch (USA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Spanisch (USA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Serbisch (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (traditionell)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (kyrillisch)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (lateinisch)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (kompakt)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Keine Sprache (lat. Alphabet)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Lat. Alphabet (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Lat. Alphabet (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Lat. Alphabet (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Lat. Alphabet (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Tastaturdesign"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Benutzerdefinierte Eingabestile"</string>
     <string name="add_style" msgid="6163126614514489951">"Stil hinzufügen"</string>
     <string name="add" msgid="8299699805688017798">"Hinzufügen"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Aktivieren"</string>
     <string name="not_now" msgid="6172462888202790482">"Später"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Der gleiche Eingabestil ist bereits vorhanden: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Verzögerung für langes Drücken"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Vibrationsdauer bei Tastendruck"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Tonlautstärke bei Tastendruck"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Externe Wörterbuchdatei lesen"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Keine Wörterbuchdateien im Ordner \"Downloads\""</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Wörterbuchdatei zum Installieren auswählen"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Möchten Sie diese Datei für <xliff:g id="LANGUAGE_NAME">%s</xliff:g> installieren?"</string>
-    <string name="error" msgid="8940763624668513648">"Es ist ein Fehler aufgetreten"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Verzögerung für langes Drücken"</string>
     <string name="button_default" msgid="3988017840431881491">"Standard"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Willkommen bei <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"mit Bewegungseingabe"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Jetzt können Sie in allen Ihren Lieblings-Apps über <xliff:g id="APPLICATION_NAME">%s</xliff:g> Text eingeben."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Weitere Sprachen konfigurieren"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Fertig"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"App-Symbol anzeigen"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"App-Symbol in der Übersicht anzeigen"</string>
     <string name="app_name" msgid="6320102637491234792">"Wörterbuchbereitstellung"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Wörterbuchbereitstellung"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Wörterbuch"</string>
diff --git a/java/res/values-el/donottranslate-config-spacing-and-punctuations.xml b/java/res/values-el/donottranslate-config-spacing-and-punctuations.xml
new file mode 100644
index 0000000..117c075
--- /dev/null
+++ b/java/res/values-el/donottranslate-config-spacing-and-punctuations.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Symbols that terminate sentences and require capitalization on the next char -->
+    <string name="symbols_sentence_terminators">.;!?</string>
+</resources>
diff --git a/java/res/values-el/strings-emoji-descriptions.xml b/java/res/values-el/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..a15d0fd
--- /dev/null
+++ b/java/res/values-el/strings-emoji-descriptions.xml
@@ -0,0 +1,853 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Σύμβολο πνευματικών δικαιωμάτων"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Σύμβολο κατατεθέντος"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Διπλό θαυμαστικό"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Θαυμαστικό ερωτηματικό"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Σύμβολο εμπορικού σήματος"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Πηγή πληροφοριών"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Αριστερό-δεξί βέλος"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Επάνω-κάτω βέλος"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Βορειοδυτικό βέλος"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Βορειοανατολικό βέλος"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Νοτιοανατολικό βέλος"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Νοτιοδυτικό βέλος"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Βέλος προς τα αριστερά με κλείσιμο"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Βέλος προς τα δεξιά με κλείσιμο"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Ρολόι"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Κλεψύδρα"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Δύο μαύρα τρίγωνα που δείχνουν προς τα δεξιά"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Δύο μαύρα τρίγωνα που δείχνουν προς τα αριστερά"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Δύο μαύρα τρίγωνα που δείχνουν προς τα επάνω"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Δύο μαύρα τρίγωνα που δείχνουν προς τα κάτω"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Ξυπνητήρι"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Κλεψύδρα με άμμο που ρέει"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Λατινικό κεφαλαίο γράμμα M σε κύκλο"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Μαύρο μικρό τετράγωνο"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Λευκό μικρό τετράγωνο"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Μαύρο τρίγωνο που δείχνει προς τα δεξιά"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Μαύρο τρίγωνο που δείχνει προς τα αριστερά"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Τετράγωνο με λευκό εσωτερικό"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Τετράγωνο με μαύρο εσωτερικό"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Μικρό τετράγωνο με λευκό εσωτερικό"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Μικρό τετράγωνο με μαύρο εσωτερικό"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Μαύρος ήλιος με ακτίνες"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Σύννεφο"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Μαύρο τηλέφωνο"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Κουτάκι με τσεκάρισμα"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Ομπρέλα με σταγόνες βροχής"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Ζεστό ρόφημα"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Λευκός δείκτης που δείχνει προς τα επάνω"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Λευκό χαμογελαστό πρόσωπο"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Κριός"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Ταύρος"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Δίδυμοι"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Καρκίνος"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Λέων"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Παρθένος"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Ζυγός"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Σκορπιός"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Τοξότης"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Αιγόκερως"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Υδροχόος"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Ιχθείς"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Μαύρο μπαστούνι"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Μαύρο σπαθί"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Μαύρη κούπα"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Μαύρο καρό"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Θερμές πηγές"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Μαύρο γενικό σύμβολο ανακύκλωσης"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Σύμβολο αναπηρικής καρέκλας"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Άγκυρα"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Προειδοποιητικό σήμα"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Σύμβολο υψηλής τάσης"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Κύκλος με λευκό εσωτερικό"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Κύκλος με μαύρο εσωτερικό"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Μπάλα ποδοσφαίρου"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Μπάλα μπέιζμπολ"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Χιονάνθρωπος χωρίς χιόνι"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Ήλιος πίσω από σύννεφο"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Οφιούχος"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Απαγορεύεται η είσοδος"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Εκκλησία"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Σιντριβάνι"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Σημαιάκι σε τρύπα"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Ιστιοπλοϊκό"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Σκηνή"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Αντλία βενζίνης"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Μαύρο ψαλίδι"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Λευκό έντονο σημάδι ολοκλήρωσης"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Αεροπλάνο"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Φάκελος"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Υψωμένη γροθιά"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Υψωμένο χέρι"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Σήμα νίκης"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Μολύβι"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Μαύρη μύτη πένας"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Έντονο σημάδι ολοκλήρωσης"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Έντονο σύμβολο πολλαπλασιασμού Χ"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Αστεράκια που ακτινοβολούν"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Αστερίσκος οκτώ ακτίνων"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Μαύρο αστέρι οκτώ ακτίνων"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Νιφάδα χιονιού"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Αστεράκι που ακτινοβολεί"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Σύμβολο \"Χ\""</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Αρνητικό σύμβολο \"Χ\" σε τετράγωνο"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Μαύρο διακοσμητικό ερωτηματικό"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Λευκό διακοσμητικό ερωτηματικό"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Λευκό διακοσμητικό θαυμαστικό"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Έντονο σύμβολο θαυμαστικού"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Έντονες μαύρες κούπες"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Έντονο σύμβολο του \"συν\""</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Έντονο σύμβολο του \"μείον\""</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Έντονο σύμβολο διαίρεσης"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Μαύρο βέλος προς τα δεξιά"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Καμπυλωτή θηλιά"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Διπλή καμπυλωτή θηλιά"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Βέλος που δείχνει προς τα δεξιά και έπειτα στρίβει προς τα πάνω"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Βέλος που δείχνει προς τα δεξιά και έπειτα στρίβει προς τα κάτω"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Μαύρο βέλος προς τα αριστερά"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Μαύρο βέλος προς τα πάνω"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Μαύρο βέλος προς τα κάτω"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Μαύρο μεγάλο τετράγωνο"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Λευκό μεγάλο τετράγωνο"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Αστέρι με λευκό εσωτερικό"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Έντονος μεγάλος κύκλος"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Κυματιστή παύλα"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Σημάδι εναλλαγής μέρους"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Ιδεογράφημα σε κύκλο \"συγχαρητήρια\""</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Ιδεογράφημα σε κύκλο \"μυστικό\""</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Πλακίδιο Mahjong με κόκκινο δράκο"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Χαρτί τράπουλας με μαύρο μπαλαντέρ"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Ομάδα αίματος Α"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Ομάδα αίματος Β"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Ομάδα αίματος Ο"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Χώρος στάθμευσης"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Ομάδα αίματος ΑΒ"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"\"CL\" σε τετράγωνο"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"\"Cool\" σε τετράγωνο"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"\"Free\" σε τετράγωνο"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"\"ID\" σε τετράγωνο"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"\"New\" σε τετράγωνο"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"\"NG\" σε τετράγωνο"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"\"OK\" σε τετράγωνο"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"\"SOS\" σε τετράγωνο"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"\"Up\" με θαυμαστικό σε τετράγωνο"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"\"VS\" σε τετράγωνο"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Γράμμα Katakana σε τετράγωνο \"εδώ\""</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Γράμμα Katakana σε τετράγωνο \"υπηρεσία\""</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Ιδεογράφημα σε τετράγωνο \"δωρεάν\""</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Ιδεογράφημα σε τετράγωνο \"κρατημένη θέση\""</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Ιδεογράφημα σε τετράγωνο \"απαγόρευση\""</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Ιδεογράφημα σε τετράγωνο \"κενή θέση\""</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Ιδεογράφημα σε τετράγωνο \"αποδοχή\""</string>
+    <!-- String.format failed for translation -->
+    <!-- no translation found for spoken_emoji_1F235 (5320186982841793711) -->
+    <skip />
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Ιδεογράφημα σε τετράγωνο \"πληρώθηκε\""</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Ιδεογράφημα σε τετράγωνο \"μηνιαίως\""</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Ιδεογράφημα σε τετράγωνο \"εφαρμογή\""</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Ιδεογράφημα σε τετράγωνο \"έκπτωση\""</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Ιδεογράφημα σε τετράγωνο \"ανοίξαμε\""</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Ιδεογράφημα σε κύκλο \"πλεονέκτημα\""</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Ιδεογράφημα σε κύκλο \"αποδοχή\""</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Κυκλώνας"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Ομιχλώδης"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Κλειστή ομπρέλα"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Νύχτα με αστέρια"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Ανατολή του ηλίου πίσω από τα βουνά"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Ανατολή ηλίου"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Περίγραμμα πόλης το σούρουπο"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Ηλιοβασίλεμα πίσω από κτίρια"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Ουράνιο τόξο"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Γέφυρα τη νύχτα"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Κύμα νερού"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Ηφαίστειο"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Γαλαξίας"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Υδρόγειος Ευρώπη-Αφρική"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Υδρόγειος Αμερική"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Υδρόγειος Ασία-Αυστραλία"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Υδρόγειος με μεσημβρινούς"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Σύμβολο νέας σελήνης"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Σύμβολο σελήνης αύξουσας, πριν από το πρώτο τέταρτο"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Σύμβολο σελήνης πρώτου τετάρτου"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Σύμβολο σελήνης αύξουσας, πριν από την πανσέληνο"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Σύμβολο πανσελήνου"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Σύμβολο σελήνης φθίνουσας, πριν από το τελευταίο τέταρτο"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Σύμβολο σελήνης τελευταίου τετάρτου"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Σύμβολο σελήνης φθίνουσας, πριν από τη νέα σελήνη"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Ημισέληνος"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Νέα σελήνη με πρόσωπο"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Σελήνη πρώτου τετάρτου με πρόσωπο"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Σελήνη τελευταίου τετάρτου με πρόσωπο"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Πανσέληνος με πρόσωπο"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Ήλιος με πρόσωπο"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Λαμπερό αστέρι"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Πεφταστέρι"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Κάστανο"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Δενδρύλλιο"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Αειθαλές δέντρο"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Φυλλοβόλο δέντρο"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Φοίνικας"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Κάκτος"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Τουλίπα"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Άνθος κερασιάς"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Τριαντάφυλλο"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Ιβίσκος"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Ηλιοτρόπιο"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Άνθος"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Στάχυ καλαμποκιού"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Στάχυ ρυζιού"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Γρασίδι"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Τετράφυλλο τριφύλλι"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Φύλλο σφενδάμου"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Πεσμένο φύλλο"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Φύλλο που πετάει στον άνεμο"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Μανιτάρι"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Ντομάτα"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Μελιτζάνα"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Σταφύλια"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Πεπόνι"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Καρπούζι"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Μανταρίνι"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Λεμόνι"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Μπανάνα"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ανανάς"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Κόκκινο μήλο"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Πράσινο μήλο"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Αχλάδι"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Ροδάκινο"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Κεράσια"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Φράουλα"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Χάμπουργκερ"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Κομμάτι πίτσας"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Κρέας σε κόκαλο"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Μπούτι πουλερικού"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Ρυζογκοφρέτα"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Μπαλάκι ρυζιού"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Μαγειρεμένο ρύζι"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Κάρι και ρύζι"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Αχνιστό μπολ"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Σπαγγέτι"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Ψωμί"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Τηγανητές πατάτες"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Ψητή γλυκοπατάτα"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Ντάνγκο"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Όντεν"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Σούσι"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Τηγανητή γαρίδα"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Ψαροκεφτές με σχέδιο δίνης"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Μαλακό παγωτό"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Τριμμένος πάγος"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Παγωτό"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Ντόνατ"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Κούκι"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Σοκολάτα"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Γλυκά"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lollipop"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Κρέμα"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Βάζο με μέλι"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Μπισκότο"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Κουτί γεύματος"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Κατσαρόλα με φαγητό"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Μαγείρεμα"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Πιρούνι και μαχαίρι"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Φλιτζάνι τσαγιού χωρίς χερούλι"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Μπουκάλι και ποτήρι σακέ"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Ποτήρι κρασιού"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Ποτήρι κοκτέιλ"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Τροπικό ποτό"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Ποτήρι μπύρας"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Ποτήρια μπύρας που τσουγκρίζουν"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Μπιμπερό"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Κορδέλα"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Τυλιγμένο δώρο"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Τούρτα γενεθλίων"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Σκαλισμένο πρόσωπο σε κολοκύθα"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Χριστουγεννιάτικο δέντρο"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Άγιος Βασίλης"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Πυροτεχνήματα"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Στικάκι με σπίθες"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Μπαλόνι"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Εκτοξευτήρας για πάρτι"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Μπάλα με κομφετί"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Διακοσμημένο δέντρο"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Διασταυρωμένες σημαίες"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Στολίδια πεύκου"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Ιαπωνικές κούκλες"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Αιωρούμενα ψαράκια"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Μελωδός"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Εορτασμός θέασης της σελήνης"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Σχολική τσάντα"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Καπέλο αποφοίτησης"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Ξύλινο αλογάκι"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Τροχός λούνα παρκ"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Τρενάκι λούνα παρκ"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Καλάμι ψαρέματος και ψάρι"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Μικρόφωνο"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Κινηματογραφική κάμερα"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Κινηματογράφος"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Ακουστικά"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Παλέτα καλλιτέχνη"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Ημίψηλο"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Tσίρκο"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Εισιτήριο"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Κλακέτα"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Παραστατικές τέχνες"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Βιντεοπαιχνίδι"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Απευθείας κρούση"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Κουλοχέρης"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Μπιλιάρδο"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Ζάρια παιχνιδιού"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Μπόουλινγκ"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Τράπουλα με λουλούδια"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Μουσική νότα"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Πολλές μουσικές νότες"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Σαξόφωνο"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Κιθάρα"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Αρμόνιο"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Τρομπέτα"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Βιολί"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Παρτιτούρα"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Μπλουζάκι με κορδέλα"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Ρακέτα και μπαλάκι τένις"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Σκι και μποτάκι του σκι"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Καλάθι και στεφάνη μπάσκετ"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Καρό σημαία"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Αθλητής του σνόουμπορντ"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Δρομέας"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Σέρφερ"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Τρόπαιο"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Ιπποδρομίες"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Αμερικανικό ποδόσφαιρο"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Ράγκμπι"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Κολυμβητής"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Πολυκατοικία"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Σπίτι με κήπο"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Κτίριο γραφείων"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Ιαπωνικό ταχυδρομείο"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Ευρωπαϊκό ταχυδρομείο"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Νοσοκομείο"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Τράπεζα"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"ΑΤΜ"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Ξενοδοχείο"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Ξενοδοχείο για ζευγάρια"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Ψιλικατζίδικο"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Σχολείο"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Πολυκατάστημα"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Εργοστάσιο"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Φανάρι Izakaya"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Ιαπωνικό κάστρο"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Ευρωπαϊκό κάστρο"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Αρουραίος"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Ποντίκι"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Βόδι"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Νεροβούβαλος"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Αγελάδα"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Λεοπάρδαλη"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Κουνέλι"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Γάτα"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Δράκος"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Κροκόδειλος"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Φάλαινα"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Σαλιγκάρι"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Φίδι"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Άλογο"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Κριάρι"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Κατσίκα"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Πρόβατο"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Μαϊμού"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Κόκορας"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Κοτόπουλο"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Σκύλος"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Γουρούνι"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Αγριογούρουνο"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Ελέφαντας"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Χταπόδι"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Κοχύλι"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Έντομο"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Μυρμήγκι"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Μέλισσα"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Πασχαλίτσα"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Ψάρι"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Τροπικό ψάρι"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Μπαλονόψαρο"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Χελώνα"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Εκκολαπτόμενος νεοσσός"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Νεοσσός"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Νεοσσός σε ανφάς"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Πουλί"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Πιγκουίνος"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Κοάλα"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Πουντλ"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Καμήλα δρομάς"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Βακτριανή καμήλα"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Δελφίνι"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Πρόσωπο ποντικιού"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Πρόσωπο αγελάδας"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Πρόσωπο τίγρης"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Πρόσωπο κουνελιού"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Πρόσωπο γάτας"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Πρόσωπο δράκου"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Φάλαινα που εκτοξεύει νερό"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Πρόσωπο αλόγου"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Πρόσωπο μαϊμούς"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Πρόσωπο σκύλου"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Πρόσωπο γουρουνιού"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Πρόσωπο βατράχου"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Πρόσωπο χάμστερ"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Πρόσωπο λύκου"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Πρόσωπο αρκούδας"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Πρόσωπο πάντα"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Μουσούδι γουρουνιού"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Αποτυπώματα πατούσας ζώου"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Μάτια"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Αυτί"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Μύτη"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Στόμα"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Γλώσσα"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Λευκός δείκτης χεριού που δείχνει προς τα επάνω"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Λευκός δείκτης χεριού που δείχνει προς τα κάτω"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Λευκός δείκτης χεριού που δείχνει προς τα αριστερά"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Λευκός δείκτης χεριού που δείχνει προς τα δεξιά"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Σήμα γροθιάς"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Σήμα χεριού που χαιρετάει"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Σήμα χεριού που λέει \"OK\""</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Σήμα \"Μου αρέσει\""</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Σήμα \"Δεν μου αρέσει\""</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Σήμα χεριών που χειροκροτούν"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Σήμα ανοιχτών χεριών"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Κορώνα"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Γυναικείο καπέλο"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Γυαλιά όρασης"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Γραβάτα"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Μπλουζάκι"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Τζιν"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Φόρεμα"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Κιμονό"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Μπικίνι"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Γυναικεία ρούχα"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Γυναικείο τσαντάκι"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Τσάντα"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Τσαντάκι"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Ανδρικό παπούτσι"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Αθλητικό παπούτσι"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Ψηλοτάκουνο παπούτσι"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Γυναικείο σανδάλι"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Γυναικείες μπότες"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Αποτυπώματα"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Περίγραμμα άνω κορμού"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Περίγραμμα άνω κορμών"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Αγόρι"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Κορίτσι"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Άνδρας"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Γυναίκα"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Οικογένεια"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Άνδρας και γυναίκα χέρι-χέρι"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Δύο άνδρες χέρι-χέρι"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Δύο γυναίκες χέρι-χέρι"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Αστυνομικός"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Γυναίκα με αυτιά κουνελιού"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Νύφη με πέπλο"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Ξανθό άτομο"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Άνδρας με κασκέτο gua pi mao"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Άνδρας με τουρμπάνι"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Ηλικιωμένος άνδρας"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Ηλικιωμένη γυναίκα"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Μωρό"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Οικοδόμος"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Πριγκίπισσα"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Ιαπωνικός δράκος"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Ιαπωνικός καλικάντζαρος"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Φάντασμα"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Αγγελάκι"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Εξωγήινος"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Εξωγήινο τέρας"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Διαβολάκι"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Νεκροκεφαλή"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Ρεσεψιονίστ"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Φύλακας"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Χορευτής"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Κραγιόν"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Βερνίκι νυχιών"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Μασάζ προσώπου"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Κούρεμα"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Σήμα κουρείου"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Σύριγγα"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Χάπι"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Αποτύπωμα χειλιών"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Ερωτική επιστολή"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Δαχτυλίδι"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Πολύτιμος λίθος"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Φιλί"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Μπουκέτο"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Ζευγάρι με καρδιά"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Γάμος"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Καρδιά που πάλλεται"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Ραγισμένη καρδιά"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Δύο καρδιές"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Απαστράπτουσα καρδιά"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Καρδιά που μεγαλώνει"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Καρδιά με βέλος"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Μπλε καρδιά"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Πράσινη καρδιά"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Κίτρινη καρδιά"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Μωβ καρδιά"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Καρδιά με κορδέλα"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Καρδούλες που στριφογυρίζουν"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Διακοσμητική καρδιά"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Σχήμα διαμαντιού με τελεία"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Ηλεκτρικός λαμπτήρας"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Σύμβολο θυμού"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Βόμβα"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Σύμβολο ύπνου"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Σύμβολο σύγκρουσης"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Σύμβολο πιτσιλίσματος ιδρώτα"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Σταγονίδιο"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Σύμβολο παύλας"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Σωρός από κακά"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Δικέφαλος σε κάμψη"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Σύμβολο ζαλάδας"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Συννεφάκι ομιλίας"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Συννεφάκι σκέψης"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Λευκό λουλούδι"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Σύμβολο εκατό βαθμών"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Σάκος χρημάτων"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Συνάλλαγμα"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Έντονο σήμα δολαρίου"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Πιστωτική κάρτα"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Χαρτονόμισμα με σήμα γεν"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Χαρτονόμισμα με σήμα δολαρίου"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Χαρτονόμισμα με σήμα ευρώ"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Χαρτονόμισμα με σήμα στερλίνας"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Χρήματα με φτερά"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Πίνακας με ανοδική τάση και σήμα γεν"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Κάθισμα"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Προσωπικός υπολογιστής"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Χαρτοφύλακας"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Μίνι δίσκος"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Δισκέτα"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Οπτικός δίσκος"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"Dvd"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Φάκελος αρχείων"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Ανοιχτός φάκελος αρχείων"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Ζαρωμένη σελίδα"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Σελίδα προς τα επάνω"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Ημερολόγιο"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Ημερολόγιο με φυλλαράκια"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Ευρετήριο καρτών"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Πίνακας με ανοδική τάση"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Πίνακας με πτωτική τάση"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Γράφημα ράβδων"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Πρόχειρο"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Πινέζα"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Στρογγυλή πινέζα"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Συνδετήρας"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Χάρακας"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Τρίγωνο"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Σελιδοδείκτες"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Λογιστικό βιβλίο"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Σημειωματάριο"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Σημειωματάριο με διακοσμητικό εξώφυλλο"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Κλειστό βιβλίο"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Ανοιχτό βιβλίο"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Πράσινο βιβλίο"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Μπλε βιβλίο"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Πορτοκαλί βιβλίο"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Βιβλία"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Καρτελάκι ονόματος"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Περγαμηνή"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Σημείωμα"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Ακουστικό τηλεφώνου"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Βομβητής"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Μηχάνημα φαξ"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Δορυφορική κεραία"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Μεγάφωνο"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Ντουντούκα"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Δίσκος εξερχομένων"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Δίσκος εισερχομένων"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Πακέτο"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Σύμβολο ηλεκτρονικού ταχυδρομείου"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Εισερχόμενος φάκελος"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Φάκελος με κάτω βέλος από πάνω"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Κλειστό γραμματοκιβώτιο με κατεβασμένο σημαιάκι"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Κλειστό γραμματοκιβώτιο με κατεβασμένο σημαιάκι"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Ανοιχτό γραμματοκιβώτιο με ανεβασμένο σημαιάκι"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Ανοιχτό γραμματοκιβώτιο με κατεβασμένο σημαιάκι"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Γραμματοκιβώτιο"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Ταχυδρομική κόρνα"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Εφημερίδα"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Κινητό τηλέφωνο"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Κινητό τηλέφωνο με δεξί βέλος στα αριστερά"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Λειτουργία δόνησης"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Απενεργοποιημένο κινητό τηλέφωνο"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Δεν επιτρέπονται τα κινητά τηλέφωνα"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Κεραία με ράβδους"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Φωτογραφική μηχανή"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Βιντεοκάμερα"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Τηλεόραση"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Ραδιόφωνο"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Βιντεοκασέτα"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Στριφτά βέλη προς τα δεξιά"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Δεξιόστροφο αριστερό και δεξί βέλος σε ανοιχτό κύκλο"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Δεξιόστροφο αριστερό και δεξί βέλος σε ανοιχτό κύκλο με προσθήκη του αριθμού ένα εντός κύκλου"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Δεξιόστροφο κάτω και άνω βέλος σε ανοιχτό κύκλο"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Αριστερόστροφο κάτω και άνω βέλος σε ανοιχτό κύκλο"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Σύμβολο χαμηλής φωτεινότητας"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Σύμβολο υψηλής φωτεινότητας"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Ηχείο με διαγραφή"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Ηχείο"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Ηχείο με ένα ηχητικό κύμα"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Ηχείο με τρία ηχητικά κύματα"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Μπαταρία"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Πρίζα"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Μεγεθυντικός φακός που δείχνει προς τα αριστερά"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Μεγεθυντικός φακός που δείχνει προς τα δεξιά"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Κλειδαριά με κονδυλοφόρο"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Κλειστή κλειδαριά με κλειδί"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Κλειδί"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Κλειδαριά"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Ανοιχτή κλειδαριά"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Καμπανάκι"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Καμπανάκι με διαγραφή"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Σελιδοδείκτης"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Σύμβολο σύνδεσης"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Κουμπί επιλογής"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Ένδειξη \"Back\" με βέλος προς τα αριστερά από πάνω"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"Ένδειξη \"End\" με βέλος προς τα αριστερά από πάνω"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"Ένδειξη \"On\" με θαυμαστικό με αριστερό-δεξί βέλος από πάνω"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Ένδειξη \"Soon\" με βέλος προς τα δεξιά από πάνω"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Ένδειξη \"Top\" με άνω βέλος από πάνω"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Σύμβολο απαγόρευσης κάτω των δεκαοκτώ"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Πλήκτρο με τον αριθμό 10"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Σύμβολο εισαγωγής για λατινικά κεφαλαία γράμματα"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Σύμβολο εισαγωγής για λατινικά μικρά γράμματα"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Σύμβολο εισαγωγής για αριθμούς"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Σύμβολο εισαγωγής συμβόλων"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Σύμβολο εισαγωγής για λατινικά γράμματα"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Φωτιά"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Φακός"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Γαλλικό κλειδί"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Σφυρί"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Παξιμάδι και μπουλόνι"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Μαχαίρι Hocho"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Πιστόλι"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Μικροσκόπιο"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Τηλεσκόπιο"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Κρυστάλλινη σφαίρα"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Αστέρι με έξι μύτες και τελεία στη μέση"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Ιαπωνικό σύμβολο για αρχάριο"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Έμβλημα τρίαινας"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Μαύρο τετράγωνο κουμπί"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Λευκό τετράγωνο κουμπί"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Μεγάλος κόκκινος κύκλος"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Μεγάλος μπλε κύκλος"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Μεγάλος πορτοκαλί ρόμβος"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Μεγάλος μπλε ρόμβος"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Μικρός πορτοκαλί ρόμβος"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Μικρός μπλε ρόμβος"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Κόκκινο τρίγωνο που δείχνει προς τα επάνω"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Κόκκινο τρίγωνο που δείχνει προς τα κάτω"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Μικρό κόκκινο τρίγωνο που δείχνει προς τα επάνω"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Μικρό κόκκινο τρίγωνο που δείχνει προς τα κάτω"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Μπροστινή όψη ρολογιού μία η ώρα"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Μπροστινή όψη ρολογιού δύο η ώρα"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Μπροστινή όψη ρολογιού τρεις η ώρα"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Μπροστινή όψη ρολογιού τέσσερις η ώρα"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Μπροστινή όψη ρολογιού πέντε η ώρα"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Μπροστινή όψη ρολογιού έξι η ώρα"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Μπροστινή όψη ρολογιού επτά η ώρα"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Μπροστινή όψη ρολογιού οκτώ η ώρα"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Μπροστινή όψη ρολογιού εννέα η ώρα"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Μπροστινή όψη ρολογιού δέκα η ώρα"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Μπροστινή όψη ρολογιού έντεκα η ώρα"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Μπροστινή όψη ρολογιού δώδεκα η ώρα"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Μπροστινή όψη ρολογιού μία και μισή"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Μπροστινή όψη ρολογιού δύο και μισή"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Μπροστινή όψη ρολογιού τρεις και μισή"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Μπροστινή όψη ρολογιού τέσσερις και μισή"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Μπροστινή όψη ρολογιού πέντε και μισή"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Μπροστινή όψη ρολογιού έξι και μισή"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Μπροστινή όψη ρολογιού επτά και μισή"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Μπροστινή όψη ρολογιού οκτώ και μισή"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Μπροστινή όψη ρολογιού εννέα και μισή"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Μπροστινή όψη ρολογιού δέκα και μισή"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Μπροστινή όψη ρολογιού έντεκα και μισή"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Μπροστινή όψη ρολογιού δώδεκα και μισή"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Όρος Φούτζι"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Πύργος του Τόκιο"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Άγαλμα της Ελευθερίας"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Περίγραμμα της Ιαπωνίας"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Πέτρινο άγαλμα Moyai"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Γελαστό πρόσωπο"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Γελαστό πρόσωπο με χαμογελαστά μάτια"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Πρόσωπο γάτας με δάκρυα χαράς"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Χαμογελαστό πρόσωπο με ανοιχτό στόμα"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Χαμογελαστό πρόσωπο με ανοιχτό στόμα και χαμογελαστά μάτια"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Χαμογελαστό πρόσωπο με ανοιχτό στόμα και κρύο ιδρώτα"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Χαμογελαστό πρόσωπο με ανοιχτό στόμα και ερμητικά κλειστά μάτια"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Χαμογελαστό πρόσωπο με φωτοστέφανο"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Χαμογελαστό πρόσωπο με κερατάκια"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Πρόσωπο που κλείνει το μάτι"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Χαμογελαστό πρόσωπο με χαμογελαστά μάτια"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Πρόσωπο που δοκιμάζει νόστιμο φαγητό"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Ανακουφισμένο πρόσωπο"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Χαμογελαστό πρόσωπο με μάτια-καρδούλες"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Χαμογελαστό πρόσωπο με γυαλιά ηλίου"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Πρόσωπο με επιτηδευμένο χαμόγελο"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Ουδέτερο πρόσωπο"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Ανέκφραστο πρόσωπο"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Πρόσωπο που δεν δείχνει να διασκεδάζει"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Πρόσωπο με κρύο ιδρώτα"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Σκεπτικό πρόσωπο"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Μπερδεμένο πρόσωπο"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Αποσβολωμένο πρόσωπο"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Πρόσωπο που δίνει φιλί"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Πρόσωπο που στέλνει φιλί"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Πρόσωπο που δίνει φιλί με χαμογελαστά μάτια"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Πρόσωπο που δίνει φιλί με κλειστά μάτια"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Πρόσωπο με τη γλώσσα έξω"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Πρόσωπο που κλείνει το μάτι με τη γλώσσα έξω"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Πρόσωπο με ερμητικά κλειστά μάτια και τη γλώσσα έξω"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Απογοητευμένο πρόσωπο"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Ανήσυχο πρόσωπο"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Θυμωμένο πρόσωπο"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Μουτρωμένο πρόσωπο"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Πρόσωπο που κλαίει"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Καρτερικό πρόσωπο"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Πρόσωπο με βλέμμα θριάμβου"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Απογοητευμένο αλλά ανακουφισμένο πρόσωπο"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Σκυθρωπό πρόσωπο με ανοιχτό στόμα"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Πρόσωπο αγωνίας"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Φοβισμένο πρόσωπο"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Εξαντλημένο πρόσωπο"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Νυσταγμένο πρόσωπο"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Κουρασμένο πρόσωπο"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Πρόσωπο που κάνει γκριμάτσα"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Πρόσωπο που κλαίει δυνατά"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Πρόσωπο με ανοιχτό στόμα"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Σιωπηλό πρόσωπο"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Πρόσωπο με ανοιχτό στόμα και κρύο ιδρώτα"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Πρόσωπο που ουρλιάζει από φόβο"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Κατάπληκτο πρόσωπο"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Αναψοκοκκινισμένο πρόσωπο"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Κοιμισμένο πρόσωπο"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Ζαλισμένο πρόσωπο"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Πρόσωπο χωρίς στόμα"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Πρόσωπο με ιατρική μάσκα"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Γελαστό πρόσωπο γάτας με χαμογελαστά μάτια"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Πρόσωπο γάτας με δάκρυα χαράς"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Χαμογελαστό πρόσωπο γάτας με ανοιχτό στόμα"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Χαμογελαστό πρόσωπο γάτας με μάτια-καρδούλες"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Πρόσωπο γάτας με πικρό χαμόγελο"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Πρόσωπο γάτας που δίνει φιλί με κλειστά μάτια"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Μουτρωμένο πρόσωπο γάτας"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Πρόσωπο γάτας που κλαίει"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Εξαντλημένο πρόσωπο γάτας"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Πρόσωπο με χειρονομία \"Δεν είναι καλό\""</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Πρόσωπο με χειρονομία \"OK\""</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Άτομο που υποκλίνεται βαθιά"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Μαϊμού \"Δεν είδα τίποτα\""</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Μαϊμού \"Δεν άκουσα τίποτα\""</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Μαϊμού \"Δεν λέω τίποτα\""</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Χαρούμενο άτομο που σηκώνει ένα χέρι"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Άτομο που σηκώνει και τα δύο χέρια σε σήμα εορτασμού"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Άτομο που κατσουφιάζει"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Άτομο με μουτρωμένο πρόσωπο"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Άτομο με σταυρωμένα χέρια"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Πύραυλος"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Ελικόπτερο"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Ατμομηχανή"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Βαγόνι τρένου"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Τρένο υψηλής ταχύτητας"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Τρένο υψηλής ταχύτητας με μυτερή πρόσοψη"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Τρένο"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Μετρό"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Ελαφρύς σιδηρόδρομος"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Σταθμός"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Τραμ"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Βαγόνι τραμ"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Λεωφορείο"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Ερχόμενο λεωφορείο"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Τρόλεϊ"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Στάση λεωφορείου"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Μικρό λεωφορείο"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Ασθενοφόρο"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Πυροσβεστικό"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Περιπολικό"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Ερχόμενο περιπολικό"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Ταξί"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Ερχόμενο ταξί"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Αυτοκίνητο"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Ερχόμενο αυτοκίνητο"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Τροχόσπιτο"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Φορτηγό μεταφορών"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Αρθρωτό φορτηγό"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Τρακτέρ"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Μονοτρόχιος σιδηρόδρομος"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Ορεινή σιδηροδρομική γραμμή"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Σιδηρόδρομος με σύστημα ανάρτησης"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Τελεφερίκ"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Εναέριο τραμ"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Πλοίο"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Βάρκα με κουπιά"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Ταχύπλοο"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Οριζόντιος φωτεινός σηματοδότης"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Κάθετος φωτεινός σηματοδότης"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Ταμπέλα έργων"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Σειρήνα περιπολικών"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Τριγωνική σημαία σε ιστό"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Πόρτα"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Σήμα \"Απαγορεύεται η είσοδος\""</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Σύμβολο \"Επιτρέπεται το κάπνισμα\""</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Σύμβολο \"Απαγορεύεται το κάπνισμα\""</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Σύμβολο \"Πετάξτε τα απορρίμματα στους κάδους\""</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Σύμβολο \"Μην πετάτε σκουπίδια\""</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Σύμβολο πόσιμου νερού"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Σύμβολο μη πόσιμου νερού"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Ποδήλατο"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Δεν επιτρέπονται τα ποδήλατα"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Ποδηλάτης"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Ποδηλάτης ορεινής ποδηλασίας"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Πεζός"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Δεν επιτρέπονται οι πεζοί"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Διασχίζουν παιδιά"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Σύμβολο ανδρών"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Σύμβολο γυναικών"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Τουαλέτες"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Σύμβολο μωρού"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Τουαλέτα"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Αποχωρητήριο"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Ντους"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Μπάνιο"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Μπανιέρα"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Έλεγχος διαβατηρίων"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Τελωνείο"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Παραλαβή αποσκευών"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Απολεσθείσες αποσκευές"</string>
+</resources>
diff --git a/java/res/values-el/strings-talkback-descriptions.xml b/java/res/values-el/strings-talkback-descriptions.xml
index 10df02f..29c9303 100644
--- a/java/res/values-el/strings-talkback-descriptions.xml
+++ b/java/res/values-el/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Δεν υπάρχει κείμενο"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> διορθώνει το <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> σε <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> εκτελεί αυτόματη διόρθωση"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Καμία πρόταση"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Άγνωστος χαρακτήρας"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Περισσότερα σύμβολα"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Κεφαλαίο I, κουκκίδα από πάνω"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Άγνωστο σύμβολο"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Άγνωστο emoticon"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Πρόσωπο που βαριέται"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Αμήχανο πρόσωπο"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Πρόσωπο που φορά γυαλιά ηλίου"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Έκπληκτο πρόσωπο"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Πρόσωπο που δίνει φιλί"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Συνοφρυωμένο πρόσωπο"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Διατίθενται εναλλακτικοί χαρακτήρες"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Παράβλεψη εναλλακτικών χαρακτήρων"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Διατίθενται εναλλακτικές προτάσεις"</string>
diff --git a/java/res/values-el/strings.xml b/java/res/values-el/strings.xml
index 5cf14b5..72ecb6c 100644
--- a/java/res/values-el/strings.xml
+++ b/java/res/values-el/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Δόνηση κατά το πάτημα πλήκτρων"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Ήχος κατά το πάτημα πλήκτρων"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Εμφάνιση με το πάτημα πλήκτρου"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Προτιμήσεις"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Λογαριασμοί και απόρρητο"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Εμφάνιση και διάταξη"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Πληκτρολόγηση με κίνηση"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Διόρθωση κειμένου"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Σύνθετες"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Θέμα"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Ενεργοποίηση διαχωρισμού πληκτρολογίου"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Συγχρονισμός Πληκτρολογίου Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Ο συγχρονισμός είναι ενεργοποιημένος"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Συγχρονισμός του προσωπικού λεξικού σας σε όλες τις συσκευές"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Συγχρονισμός τώρα"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Διαγραφή δεδομένων cloud"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Διαγράφει τα συγχρονισμένα δεδομένα σας από το Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Διαγραφή συγχρονισμένων δεδομένων από το cloud. Είστε βέβαιοι;"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Διαγραφή"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Ακύρωση"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Θα γίνει συγχρονισμός και δημιουργία αντιγράφων ασφαλείας του προσωπικού σας λεξικού στους διακομιστές της Google. Ενδέχεται να γίνεται συλλογή στατιστικών στοιχείων σχετικά με τη συχνότητα των λέξεων για τη βελτίωση των προϊόντων μας. Η συλλογή και χρήση όλων των πληροφοριών θα συμμορφώνεται με την "<a href="https://www.google.com/policies/privacy">"Πολιτική Απορρήτου της Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Προσθέσετε Λογαριασμό Google για να ενεργοποιήσετε τη λειτουργία"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Άλλη μέθοδος εισόδου"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Το κλειδί αλλαγής γλώσσας καλύπτει και άλλες μεθόδους εισόδου"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Πλήκτρο εναλλαγής γλώσσας"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Εμφάνιση κατά την ενεργοποίηση πολλών γλωσσών εισόδου"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Εμφάνιση δείκτη ολίσθησης"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Εμφ.ένδειξης κατά την ολίσθηση από το Shift ή τα πλήκτρα συμβόλων"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Χρόνος εξαφ. αναδ. παραθ."</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Χωρίς καθυστέρ."</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Προεπιλογή"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Κύριο λεξικό"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Εμφάνιση προτάσεων διόρθωσης"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Προβολή προτεινόμενων λέξεων κατά την πληκτρολόγηση"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Να εμφανίζεται πάντα"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Εμφάνιση σε κατακόρυφο προσανατολισμό"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Πάντα απόκρυψη"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Αποκλεισμός υβριστικών λέξεων"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Να μην προτείνονται πιθανώς προσβλητικές λέξεις"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Αυτόματη διόρθωση"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Κλειδί φωνητικής εξόδου"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Δεν έχουν ενεργοποιηθεί μέθοδοι φωνητικής εισαγωγής. Ελέγξτε τις Ρυθμίσεις Γλώσσας και εισαγωγής."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Διαμόρφωση μεθόδων εισαγωγής"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Γλώσσες εισόδου"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Αποστολή σχολίων"</string>
-    <string name="select_language" msgid="3693815588777926848">"Γλώσσες εισόδου"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Γλώσσες"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Βοήθεια και σχόλια"</string>
+    <string name="select_language" msgid="5709487854987078367">"Γλώσσες"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Αγγίξτε ξανά για αποθήκευση"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Αγγίξτε εδώ για αποθήκευση"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Λεξικό διαθέσιμο"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Θέμα πληκτρολογίου"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Εναλλαγή λογαριασμών"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Δεν έχει επιλεγεί κανένας λογαριασμός"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Προς το παρόν, χρησιμοποιείτε τη διεύθυνση <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"ΟΚ"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Ακύρωση"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Έξοδος"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Επιλέξτε λογαριασμό για χρήση"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Αγγλικά (Η.Β.)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Αγγλικά (Η.Π.Α)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Ισπανικά (ΗΠΑ)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Σερβικά (Λατινικά)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Αγγλικά (Ηνωμένο Βασίλειο) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Αγγλικά (ΗΠΑ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Ισπανικά (ΗΠΑ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Σερβικά (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Παραδοσιακά)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Κυριλλικά)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Λατινικά)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Συμπαγές)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Καμία γλώσσα (Αλφάβητο)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Αλφάβητο (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Αλφάβητο (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Αλφάβητο (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Αλφάβητο (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoticon"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Θέμα πληκτρολογίου"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Προσαρμοσ. στυλ εισαγ."</string>
     <string name="add_style" msgid="6163126614514489951">"Προσθ. στυλ"</string>
     <string name="add" msgid="8299699805688017798">"Προσθήκη"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Ενεργοποίηση"</string>
     <string name="not_now" msgid="6172462888202790482">"Όχι τώρα"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Το ίδιο στυλ εισόδου υπάρχει ήδη: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Καθυστέρηση παρατεταμένου πατήματος πλήκτρου"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Διάρκεια δόνησης πατήμ. πλήκτ."</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Ένταση ήχου πατήματος πλήκτρου"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Ανάγνωση εξωτερικού αρχείου λεξικού"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Δεν υπάρχουν αρχεία λεξικού στο φάκελο \"Λήψεις\""</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Επιλογή αρχείου λεξικού για εγκατάσταση"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Εγκατάσταση αυτού του αρχείου για τα <xliff:g id="LANGUAGE_NAME">%s</xliff:g>;"</string>
-    <string name="error" msgid="8940763624668513648">"Παρουσιάστηκε σφάλμα."</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Καθυστέρηση παρατεταμένου πατήματος πλήκτρου"</string>
     <string name="button_default" msgid="3988017840431881491">"Προεπιλογή"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Καλώς ορίσατε στο <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"με Πληκτρολόγηση με κίνηση"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Πλέον μπορείτε να πληκτρολογήσετε όλες τις αγαπημένες σας εφαρμογές με το <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Διαμόρφωση πρόσθετων γλωσσών"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Ολοκληρώθηκε"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Εμφάνιση εικονιδίου εφαρμογής"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Εμφάνιση εικονιδίου εφαρμογής στο πρόγραμμα εκκίνησης"</string>
     <string name="app_name" msgid="6320102637491234792">"Παροχέας λεξικού"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Παροχέας λεξικού"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Υπηρεσία λεξικού"</string>
diff --git a/java/res/values-en-rAU/strings-action-keys.xml b/java/res/values-en-rAU/strings-action-keys.xml
new file mode 100644
index 0000000..e401cae
--- /dev/null
+++ b/java/res/values-en-rAU/strings-action-keys.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="label_go_key" msgid="4033615332628671065">"Go"</string>
+    <string name="label_next_key" msgid="5586407279258592635">"Next"</string>
+    <string name="label_previous_key" msgid="1421141755779895275">"Prev"</string>
+    <string name="label_done_key" msgid="7564866296502630852">"Done"</string>
+    <string name="label_send_key" msgid="482252074224462163">"Send"</string>
+    <string name="label_search_key" msgid="7965186050435796642">"Search"</string>
+    <string name="label_pause_key" msgid="2225922926459730642">"Pause"</string>
+    <string name="label_wait_key" msgid="5891247853595466039">"Wait"</string>
+</resources>
diff --git a/java/res/values-en-rAU/strings-appname.xml b/java/res/values-en-rAU/strings-appname.xml
new file mode 100644
index 0000000..5ad5eae
--- /dev/null
+++ b/java/res/values-en-rAU/strings-appname.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="english_ime_name" msgid="5940510615957428904">"Android Keyboard (AOSP)"</string>
+    <string name="spell_checker_service_name" msgid="1254221805440242662">"Android Spell Checker (AOSP)"</string>
+    <string name="english_ime_settings" msgid="5760361067176802794">"Android Keyboard Settings (AOSP)"</string>
+    <string name="android_spell_checker_settings" msgid="6123949487832861885">"Android Spell Checker Settings (AOSP)"</string>
+</resources>
diff --git a/java/res/values-en-rAU/strings-config-important-notice.xml b/java/res/values-en-rAU/strings-config-important-notice.xml
new file mode 100644
index 0000000..80ddd3e
--- /dev/null
+++ b/java/res/values-en-rAU/strings-config-important-notice.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="use_personalized_dicts_summary" msgid="590432261305469627">"Learn from your communications and typed data to improve suggestions"</string>
+</resources>
diff --git a/java/res/values-en-rAU/strings-emoji-descriptions.xml b/java/res/values-en-rAU/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..2ac73fc
--- /dev/null
+++ b/java/res/values-en-rAU/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Copyright sign"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Registered sign"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Double exclamation mark"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Exclamation question mark"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Trade mark sign"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Information source"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Left right arrow"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Up down arrow"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"North west arrow"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"North east arrow"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"South east arrow"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"South west arrow"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Leftwards arrow with hook"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Rightwards arrow with hook"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Watch"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Hourglass"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Black right-pointing double triangle"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Black left-pointing double triangle"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Black up-pointing double triangle"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Black down-pointing double triangle"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Alarm clock"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Hourglass with flowing sand"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Circled latin capital letter m"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Black small square"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"White small square"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Black right-pointing triangle"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Black left-pointing triangle"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"White medium square"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Black medium square"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"White medium small square"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Black medium small square"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Black sun with rays"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Cloud"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Black telephone"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Ballot box with tick"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Umbrella with rain drops"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Hot beverage"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"White up pointing index"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"White smiling face"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Aries"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Taurus"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Gemini"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Cancer"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Leo"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Virgo"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Libra"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Scorpio"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Sagittarius"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Capricorn"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Aquarius"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Pisces"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Black spade suit"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Black club suit"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Black heart suit"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Black diamond suit"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Hot springs"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Black universal recycling symbol"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Wheelchair symbol"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Anchor"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Warning sign"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"High voltage sign"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Medium white circle"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Medium black circle"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Football"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Baseball"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Snowman without snow"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Sun behind cloud"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Ophiuchus"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"No entry"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Church"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Fountain"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Flag in hole"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Sailing boat"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Tent"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Fuel pump"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Black scissors"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"White heavy tick"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Aeroplane"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Envelope"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Raised fist"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Raised hand"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Victory hand"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Pencil"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Black nib"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Heavy tick"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Heavy multiplication x"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Sparkles"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Eight spoked asterisk"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Eight pointed black star"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Snowflake"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Sparkle"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Cross mark"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Negative squared cross mark"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Black question mark ornament"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"White question mark ornament"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"White exclamation mark ornament"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Heavy exclamation mark symbol"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Heavy black heart"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Heavy plus sign"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Heavy minus sign"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Heavy division sign"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Black rightwards arrow"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Curly loop"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Double curly loop"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Arrow pointing rightwards then curving upwards"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Arrow pointing rightwards then curving downwards"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Leftwards black arrow"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Upwards black arrow"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Downwards black arrow"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Black large square"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"White large square"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"White medium star"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Heavy large circle"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Wavy dash"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Part alternation mark"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Circled ideograph congratulation"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Circled ideograph secret"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Mahjong tile red dragon"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Playing card black joker"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Blood type A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Blood type B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Blood type O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Car park"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Blood type AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"Squared CL"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Squared cool"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Squared free"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"Squared ID"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Squared new"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Squared N G"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Squared OK"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"Squared SOS"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Squared up with exclamation mark"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Squared vs"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Squared katakana here"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Squared katakana service"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Squared ideograph charge-free"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Squared ideograph reserved-seat"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Squared ideograph prohibitation"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Squared ideograph vacancy"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Squared ideograph acceptance"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Squared ideograph full occupancy"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Squared ideograph paid"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Squared ideograph monthly"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Squared ideograph application"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Squared ideograph discount"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Squared ideograph in business"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Circled ideograph advantage"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Circled ideograph accept"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Cyclone"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Foggy"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Closed umbrella"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Night with stars"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Sunrise over mountains"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Sunrise"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Cityscape at dusk"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Sunset over buildings"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Rainbow"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Bridge at night"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Water wave"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Volcano"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Milky way"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Earth globe Europe-Africa"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Earth globe Americas"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Earth globe Asia-Australia"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Globe with meridians"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"New moon symbol"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Waxing crescent moon symbol"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"First quarter moon symbol"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Waxing gibbous moon symbol"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Full moon symbol"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Waning gibbous moon symbol"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Last quarter moon symbol"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Waning crescent moon symbol"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Crescent moon"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"New moon with face"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"First quarter moon with face"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Last quarter moon with face"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Full moon with face"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Sun with face"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Glowing star"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Shooting star"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Chestnut"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Seedling"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Evergreen tree"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Deciduous tree"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palm tree"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Cactus"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulip"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Cherry blossom"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Rose"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Hibiscus"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Sunflower"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Blossom"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Ear of maize"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Ear of rice"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Herb"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Four leaf clover"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Maple leaf"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Fallen leaf"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Leaf fluttering in wind"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Mushroom"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Tomato"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Aubergine"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Grapes"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Melon"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Watermelon"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Tangerine"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Lemon"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Banana"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Pineapple"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Red apple"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Green apple"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Pear"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Peach"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Cherries"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Strawberry"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburger"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Slice of pizza"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Meat on bone"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Poultry leg"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Rice cracker"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Rice ball"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Cooked rice"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Curry and rice"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Steaming bowl"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Spaghetti"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Bread"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"French fries"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Roasted sweet potato"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Sushi"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Fried shrimp"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Fish cake with swirl design"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Soft ice cream"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Shaved ice"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Ice cream"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Doughnut"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Cookie"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Chocolate bar"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Candy"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lollipop"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Custard"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Honey pot"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Shortcake"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Bento box"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Pot of food"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Cooking"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Fork and knife"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Teacup without handle"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Sake bottle and cup"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Wine glass"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Cocktail glass"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Tropical drink"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Beer mug"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Clinking beer mugs"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Baby bottle"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Ribbon"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Wrapped present"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Birthday cake"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Jack-o-lantern"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Christmas tree"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Father christmas"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Fireworks"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Firework sparkler"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Balloon"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Party popper"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Confetti ball"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Tanabata tree"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Crossed flags"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Pine decoration"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Japanese dolls"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Carp streamer"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Wind chime"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Moon viewing ceremony"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"School satchel"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Graduation cap"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Carousel horse"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Ferris wheel"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Roller coaster"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Fishing pole and fish"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Microphone"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Movie camera"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Cinema"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Headphone"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Artist palette"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Top hat"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Circus tent"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Ticket"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Clapper board"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Performing arts"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Video game"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Direct hit"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Slot machine"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Billiards"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Game die"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Bowling"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Flower playing cards"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Musical note"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Multiple musical notes"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saxophone"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Guitar"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Musical keyboard"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Trumpet"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Violin"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Musical score"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Running shirt with sash"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Tennis racquet and ball"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Ski and ski boot"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Basketball and hoop"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Chequered flag"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Snowboarder"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Runner"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Surfer"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Trophy"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Horse racing"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"American football"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Rugby football"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Swimmer"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"House building"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"House with garden"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Office building"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Japanese post office"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"European post office"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Hospital"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Bank"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Automated teller machine"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Hotel"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Love hotel"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Convenience store"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"School"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Department store"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Factory"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Izakaya lantern"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Japanese castle"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"European castle"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Rat"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Mouse"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Ox"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Water buffalo"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Cow"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Leopard"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Rabbit"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Cat"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Dragon"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Crocodile"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Whale"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Snail"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Snake"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Horse"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Ram"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Goat"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Sheep"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Monkey"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Rooster"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Chicken"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Dog"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Pig"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Boar"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Elephant"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Octopus"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Spiral shell"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Bug"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Ant"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Honeybee"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Lady beetle"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Fish"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Tropical fish"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Blowfish"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Turtle"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Hatching chick"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Baby chick"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Front-facing baby chick"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Bird"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Penguin"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Poodle"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Dromedary camel"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Bactrian camel"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Dolphin"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Mouse face"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Cow face"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Tiger face"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Rabbit face"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Cat face"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Dragon face"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Spouting whale"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Horse face"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Monkey face"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Dog face"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Pig face"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Frog face"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Hamster face"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Wolf face"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Bear face"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Panda face"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Pig nose"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Paw prints"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Eyes"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Ear"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Nose"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Mouth"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Tongue"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"White up pointing backhand index"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"White down pointing backhand index"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"White left pointing backhand index"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"White right pointing backhand index"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Fisted hand sign"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Waving hand sign"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"OK hand sign"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Thumbs up sign"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Thumbs down sign"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Clapping hands sign"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Open hands sign"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Crown"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Womans hat"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Eyeglasses"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Necktie"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"T-shirt"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Jeans"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Dress"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Womans clothes"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Purse"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Handbag"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Pouch"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Mans shoe"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Athletic shoe"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"High-heeled shoe"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Womans sandal"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Womans boots"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Footprints"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Bust in silhouette"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Busts in silhouette"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Boy"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Girl"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Man"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Woman"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Family"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Man and woman holding hands"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Two men holding hands"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Two women holding hands"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Police officer"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Woman with bunny ears"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Bride with veil"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Person with blond hair"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Man with gua pi mao"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Man with turban"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Older man"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Older woman"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Baby"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Construction worker"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Princess"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Japanese ogre"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Japanese goblin"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Ghost"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Baby angel"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Extraterrestrial alien"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Alien monster"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Imp"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Skull"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Information desk person"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Guardsman"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Dancer"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Lipstick"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Nail polish"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Face massage"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Haircut"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Barber pole"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Syringe"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Pill"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Kiss mark"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Love letter"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Ring"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Gem stone"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Kiss"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Bouquet"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Couple with heart"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Wedding"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Beating heart"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Broken heart"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Two hearts"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Sparkling heart"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Growing heart"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Heart with arrow"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Blue heart"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Green heart"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Yellow heart"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Purple heart"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Heart with ribbon"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Revolving hearts"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Heart decoration"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Diamond shape with a dot inside"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Electric light bulb"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Anger symbol"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bomb"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Sleeping symbol"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Collision symbol"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Splashing sweat symbol"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Droplet"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Dash symbol"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Pile of poo"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Flexed biceps"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Dizzy symbol"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Speech balloon"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Thought balloon"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"White flower"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Hundred points symbol"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Money bag"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Currency exchange"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Heavy pound sign"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Credit card"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Banknote with yen sign"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Banknote with pound sign"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Banknote with euro sign"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Banknote with pound sign"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Money with wings"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Chart with upwards trend and yen sign"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Seat"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Personal computer"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Briefcase"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Minidisc"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Floppy disk"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Optical disc"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"File folder"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Open file folder"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Page with curl"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Page facing up"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Calendar"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Tear-off calendar"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Card index"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Chart with upwards trend"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Chart with downwards trend"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Bar chart"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Clipboard"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Pushpin"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Round pushpin"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Paperclip"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Straight ruler"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Triangular ruler"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Bookmark tabs"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Ledger"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Notebook"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Notebook with decorative cover"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Closed book"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Open book"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Green book"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Blue book"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Orange book"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Books"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Name badge"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Scroll"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Memo"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Telephone receiver"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Pager"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Fax machine"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Satellite antenna"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Public address loudspeaker"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Cheering megaphone"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Outbox tray"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Inbox tray"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Package"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"E-mail symbol"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Incoming envelope"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Envelope with downwards arrow above"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Closed mailbox with lowered flag"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Closed mailbox with raised flag"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Open mailbox with raised flag"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Open mailbox with lowered flag"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Postbox"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Postal horn"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Newspaper"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Mobile phone"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Mobile phone with rightwards arrow at left"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Vibration mode"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Mobile phone off"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"No mobile phones"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Antenna with bars"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Camera"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Video camera"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Television"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Radio"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Videocassette"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Twisted rightwards arrows"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Clockwise rightwards and leftwards open circle arrows"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Clockwise rightwards and leftwards open circle arrows with circled one overlay"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Clockwise downwards and upwards open circle arrows"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Anticlockwise downwards and upwards open circle arrows"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Low brightness symbol"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"High brightness symbol"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Speaker with cancellation stroke"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Speaker"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Speaker with one sound wave"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Speaker with three sound waves"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Battery"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Electric plug"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Left-pointing magnifying glass"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Right-pointing magnifying glass"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Lock with ink pen"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Closed lock with key"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Key"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Lock"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Open lock"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Bell"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Bell with cancellation stroke"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Bookmark"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Link symbol"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Radio button"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Back with leftwards arrow above"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"End with leftwards arrow above"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"On with exclamation mark with left right arrow above"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Soon with rightwards arrow above"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Top with upwards arrow above"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"No one under eighteen symbol"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Keycap ten"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Input symbol for latin capital letters"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Input symbol for latin small letters"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Input symbol for numbers"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Input symbol for symbols"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Input symbol for latin letters"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Fire"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Electric torch"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Wrench"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Hammer"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Nut and bolt"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Hocho"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Pistol"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Microscope"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Telescope"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Crystal ball"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Six pointed star with middle dot"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Japanese symbol for beginner"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Trident emblem"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Black square button"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"White square button"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Large red circle"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Large blue circle"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Large orange diamond"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Large blue diamond"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Small orange diamond"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Small blue diamond"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Up-pointing red triangle"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Down-pointing red triangle"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Up-pointing small red triangle"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Down-pointing small red triangle"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Clock face one o\'clock"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Clock face two o\'clock"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Clock face three o\'clock"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Clock face four o\'clock"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Clock face five o\'clock"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Clock face six o\'clock"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Clock face seven o\'clock"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Clock face eight o\'clock"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Clock face nine o\'clock"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Clock face ten o\'clock"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Clock face eleven o\'clock"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Clock face twelve o\'clock"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Clock face one-thirty"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Clock face two-thirty"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Clock face three-thirty"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Clock face four-thirty"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Clock face five-thirty"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Clock face six-thirty"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Clock face seven-thirty"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Clock face eight-thirty"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Clock face nine-thirty"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Clock face ten-thirty"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Clock face eleven-thirty"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Clock face twelve-thirty"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Mount Fuji"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Tokyo tower"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Statue of Liberty"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Silhouette of Japan"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moyai"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Grinning face"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Grinning face with smiling eyes"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Face with tears of joy"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Smiling face with open mouth"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Smiling face with open mouth and smiling eyes"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Smiling face with open mouth and cold sweat"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Smiling face with open mouth and tightly-closed eyes"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Smiling face with halo"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Smiling face with horns"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Winking face"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Smiling face with smiling eyes"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Face savouring delicious food"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Relieved face"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Smiling face with heart-shaped eyes"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Smiling face with sunglasses"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Smirking face"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Neutral face"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Expressionless face"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Unamused face"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Face with cold sweat"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Pensive face"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Confused face"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Confounded face"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Kissing face"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Face throwing a kiss"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Kissing face with smiling eyes"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Kissing face with closed eyes"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Face with stuck-out tongue"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Face with stuck-out tongue and winking eye"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Face with stuck-out tongue and tightly-closed eyes"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Disappointed face"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Worried face"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Angry face"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Pouting face"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Crying face"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Persevering face"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Face with look of triumph"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Disappointed but relieved face"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Frowning face with open mouth"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Anguished face"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Fearful face"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Weary face"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Sleepy face"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Tired face"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Grimacing face"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Loudly crying face"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Face with open mouth"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Hushed face"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Face with open mouth and cold sweat"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Face screaming in fear"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Astonished face"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Flushed face"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Sleeping face"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Dizzy face"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Face without mouth"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Face with medical mask"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Grinning cat face with smiling eyes"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Cat face with tears of joy"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Smiling cat face with open mouth"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Smiling cat face with heart-shaped eyes"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Cat face with wry smile"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Kissing cat face with closed eyes"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Pouting cat face"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Crying cat face"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Weary cat face"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Face with no good gesture"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Face with OK gesture"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Person bowing deeply"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"See-no-evil monkey"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Hear-no-evil monkey"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Speak-no-evil monkey"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Happy person raising one hand"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Person raising both hands in celebration"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Person frowning"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Person with pouting face"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Person with folded hands"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Rocket"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Helicopter"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Steam locomotive"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Railway car"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"High-speed train"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"High-speed train with bullet nose"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Train"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Metro"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Light rail"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Station"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Tram"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Tram car"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Bus"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Oncoming bus"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Tram"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Bus stop"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Minibus"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Ambulance"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Fire engine"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Police car"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Oncoming police car"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taxi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Oncoming taxi"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Automobile"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Oncoming automobile"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Recreational vehicle"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Delivery truck"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Articulated lorry"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Tractor"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Monorail"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Mountain railway"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Suspension railway"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Mountain cableway"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Aerial tramway"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Ship"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Rowing boat"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Speedboat"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Horizontal traffic light"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Vertical traffic light"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Construction sign"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Police cars revolving light"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Triangular flag on post"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Door"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"No entry sign"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Smoking symbol"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"No smoking symbol"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Put litter in its place symbol"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Do not litter symbol"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Drinking water symbol"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Non-drinking water symbol"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Bicycle"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"No bicycles"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Cyclist"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Mountain cyclist"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Pedestrian"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"No pedestrians"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Children crossing"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Mens symbol"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Womens symbol"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Restroom"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Baby symbol"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Toilet"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Water closet"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Shower"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Bath"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Bathtub"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Passport control"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Customs"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Baggage claim"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Left luggage"</string>
+</resources>
diff --git a/java/res/values-en-rAU/strings-letter-descriptions.xml b/java/res/values-en-rAU/strings-letter-descriptions.xml
new file mode 100644
index 0000000..514bc6c
--- /dev/null
+++ b/java/res/values-en-rAU/strings-letter-descriptions.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These accented letters (spoken_accented_letter_*) are unsupported by TTS.
+    These symbols (spoken_symbol_*) are also unsupported by TTS.
+    TODO: Remove these string resources when TTS/TalkBack support these letters.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_accented_letter_00AA" msgid="4374325261868451570">"Feminine ordinal indicator"</string>
+    <string name="spoken_accented_letter_00B5" msgid="9031387673828823891">"Micro sign"</string>
+    <string name="spoken_accented_letter_00BA" msgid="5045198452071207437">"Masculine ordinal indicator"</string>
+    <string name="spoken_accented_letter_00DF" msgid="2260098367028134281">"Sharp S"</string>
+    <string name="spoken_accented_letter_00E0" msgid="2234515772182387086">"A, grave"</string>
+    <string name="spoken_accented_letter_00E1" msgid="7780174500802535063">"A, acute"</string>
+    <string name="spoken_accented_letter_00E2" msgid="7054108480488102631">"A, circumflex"</string>
+    <string name="spoken_accented_letter_00E3" msgid="8252569677935693343">"A, tilde"</string>
+    <string name="spoken_accented_letter_00E4" msgid="6610118430986969466">"A, diaeresis"</string>
+    <string name="spoken_accented_letter_00E5" msgid="7630449270070348394">"A, ring above"</string>
+    <string name="spoken_accented_letter_00E6" msgid="701838036007000032">"A, E, ligature"</string>
+    <string name="spoken_accented_letter_00E7" msgid="2991289211702135310">"C, cedilla"</string>
+    <string name="spoken_accented_letter_00E8" msgid="2080035251848179782">"E, grave"</string>
+    <string name="spoken_accented_letter_00E9" msgid="2708473976407506968">"E, acute"</string>
+    <string name="spoken_accented_letter_00EA" msgid="1898848081635119449">"E, circumflex"</string>
+    <string name="spoken_accented_letter_00EB" msgid="8318942663983499634">"E, diaeresis"</string>
+    <string name="spoken_accented_letter_00EC" msgid="7643810590358306098">"I, grave"</string>
+    <string name="spoken_accented_letter_00ED" msgid="8288035355103120759">"I, acute"</string>
+    <string name="spoken_accented_letter_00EE" msgid="1137417730211688894">"I, circumflex"</string>
+    <string name="spoken_accented_letter_00EF" msgid="8993714322731956785">"I, diaeresis"</string>
+    <string name="spoken_accented_letter_00F0" msgid="3427567511221967857">"Eth"</string>
+    <string name="spoken_accented_letter_00F1" msgid="6983294908255378605">"N, tilde"</string>
+    <string name="spoken_accented_letter_00F2" msgid="2623804069332183695">"O, grave"</string>
+    <string name="spoken_accented_letter_00F3" msgid="8945987631729216917">"O, acute"</string>
+    <string name="spoken_accented_letter_00F4" msgid="2415494299699717276">"O, circumflex"</string>
+    <string name="spoken_accented_letter_00F5" msgid="7320512716652765243">"O, tilde"</string>
+    <string name="spoken_accented_letter_00F6" msgid="9101179351242478555">"O, diaeresis"</string>
+    <string name="spoken_accented_letter_00F8" msgid="1488324280918884122">"O, stroke"</string>
+    <string name="spoken_accented_letter_00F9" msgid="2823570256527173278">"U, grave"</string>
+    <string name="spoken_accented_letter_00FA" msgid="6883092085077298608">"U, acute"</string>
+    <string name="spoken_accented_letter_00FB" msgid="4948239400399514418">"U, circumflex"</string>
+    <string name="spoken_accented_letter_00FC" msgid="2496066211694000442">"U, diaeresis"</string>
+    <string name="spoken_accented_letter_00FD" msgid="2400529610834233890">"Y, acute"</string>
+    <string name="spoken_accented_letter_00FE" msgid="8788160115017853040">"Thorn"</string>
+    <string name="spoken_accented_letter_00FF" msgid="5225610161025124830">"Y, diaeresis"</string>
+    <string name="spoken_accented_letter_0101" msgid="5573209280917268157">"A, macron"</string>
+    <string name="spoken_accented_letter_0103" msgid="2469151120095164730">"A, breve"</string>
+    <string name="spoken_accented_letter_0105" msgid="8312689789855786427">"A, ogonek"</string>
+    <string name="spoken_accented_letter_0107" msgid="5708507895287798642">"C, acute"</string>
+    <string name="spoken_accented_letter_0109" msgid="7008112603489583335">"C, circumflex"</string>
+    <string name="spoken_accented_letter_010B" msgid="5641359473019753216">"C, dot above"</string>
+    <string name="spoken_accented_letter_010D" msgid="1048661826408437168">"C, caron"</string>
+    <string name="spoken_accented_letter_010F" msgid="603374318657992205">"D, caron"</string>
+    <string name="spoken_accented_letter_0111" msgid="5517997642285938260">"D, stroke"</string>
+    <string name="spoken_accented_letter_0113" msgid="2326009009311798997">"E, macron"</string>
+    <string name="spoken_accented_letter_0115" msgid="3964545407091037747">"E, breve"</string>
+    <string name="spoken_accented_letter_0117" msgid="8799753183781089777">"E, dot above"</string>
+    <string name="spoken_accented_letter_0119" msgid="3772451226935709136">"E, ogonek"</string>
+    <string name="spoken_accented_letter_011B" msgid="7663481332351461288">"E, caron"</string>
+    <string name="spoken_accented_letter_011D" msgid="1181326600595482369">"G, circumflex"</string>
+    <string name="spoken_accented_letter_011F" msgid="6843415389823096647">"G, breve"</string>
+    <string name="spoken_accented_letter_0121" msgid="6205288708713306903">"G, dot above"</string>
+    <string name="spoken_accented_letter_0123" msgid="2394277128105386261">"G, cedilla"</string>
+    <string name="spoken_accented_letter_0125" msgid="6575866461277751345">"H, circumflex"</string>
+    <string name="spoken_accented_letter_0127" msgid="1316971762214091641">"H, stroke"</string>
+    <string name="spoken_accented_letter_0129" msgid="7824912405885325754">"I, tilde"</string>
+    <string name="spoken_accented_letter_012B" msgid="6772690258769905270">"I, macron"</string>
+    <string name="spoken_accented_letter_012D" msgid="2933871131556503448">"I, breve"</string>
+    <string name="spoken_accented_letter_012F" msgid="1340511254985181663">"I, ogonek"</string>
+    <string name="spoken_accented_letter_0131" msgid="5635600720566083969">"Dotless I"</string>
+    <string name="spoken_accented_letter_0133" msgid="7593704176516791941">"I, J, ligature"</string>
+    <string name="spoken_accented_letter_0135" msgid="4521109674238248436">"J, circumflex"</string>
+    <string name="spoken_accented_letter_0137" msgid="5886444641003852175">"K, cedilla"</string>
+    <string name="spoken_accented_letter_0138" msgid="4200294389170924853">"Kra"</string>
+    <string name="spoken_accented_letter_013A" msgid="3558015385412543517">"L, acute"</string>
+    <string name="spoken_accented_letter_013C" msgid="1853639924813858734">"L, cedilla"</string>
+    <string name="spoken_accented_letter_013E" msgid="7489345561739421886">"L, caron"</string>
+    <string name="spoken_accented_letter_0140" msgid="7946718707268270589">"L, middle dot"</string>
+    <string name="spoken_accented_letter_0142" msgid="752931798111122240">"L, stroke"</string>
+    <string name="spoken_accented_letter_0144" msgid="201843550323875352">"N, acute"</string>
+    <string name="spoken_accented_letter_0146" msgid="3403847152606051818">"N, cedilla"</string>
+    <string name="spoken_accented_letter_0148" msgid="9215300786722209338">"N, caron"</string>
+    <string name="spoken_accented_letter_0149" msgid="3191850286630154063">"N, preceded by apostrophe"</string>
+    <string name="spoken_accented_letter_014B" msgid="8503022408522837410">"Eng"</string>
+    <string name="spoken_accented_letter_014D" msgid="4452323602550610641">"O, macron"</string>
+    <string name="spoken_accented_letter_014F" msgid="2795957717094385336">"O, breve"</string>
+    <string name="spoken_accented_letter_0151" msgid="8013704745216410244">"O, double acute"</string>
+    <string name="spoken_accented_letter_0153" msgid="8410582495993285221">"O, E, ligature"</string>
+    <string name="spoken_accented_letter_0155" msgid="7601517174689798560">"R, acute"</string>
+    <string name="spoken_accented_letter_0157" msgid="9071455715455643810">"R, cedilla"</string>
+    <string name="spoken_accented_letter_0159" msgid="7726911392381543439">"R, caron"</string>
+    <string name="spoken_accented_letter_015B" msgid="1854129531164494117">"S, acute"</string>
+    <string name="spoken_accented_letter_015D" msgid="4743571603550582530">"S, circumflex"</string>
+    <string name="spoken_accented_letter_015F" msgid="1519945638631588761">"S, cedilla"</string>
+    <string name="spoken_accented_letter_0161" msgid="7493478552029144246">"S, caron"</string>
+    <string name="spoken_accented_letter_0163" msgid="9103547637928833069">"T, cedilla"</string>
+    <string name="spoken_accented_letter_0165" msgid="7306159398214872062">"T, caron"</string>
+    <string name="spoken_accented_letter_0167" msgid="5578767705098672443">"T, stroke"</string>
+    <string name="spoken_accented_letter_0169" msgid="413046581387735371">"U, tilde"</string>
+    <string name="spoken_accented_letter_016B" msgid="3209778874978859441">"U, macron"</string>
+    <string name="spoken_accented_letter_016D" msgid="2983326533258602840">"U, breve"</string>
+    <string name="spoken_accented_letter_016F" msgid="4416532499516387231">"U, ring above"</string>
+    <string name="spoken_accented_letter_0171" msgid="3435171971353200807">"U, double acute"</string>
+    <string name="spoken_accented_letter_0173" msgid="4494154432483553480">"U, ogonek"</string>
+    <string name="spoken_accented_letter_0175" msgid="2154545579611918513">"W, circumflex"</string>
+    <string name="spoken_accented_letter_0177" msgid="4034463827306904781">"Y, circumflex"</string>
+    <string name="spoken_accented_letter_017A" msgid="3368292232292925369">"Z, acute"</string>
+    <string name="spoken_accented_letter_017C" msgid="2834484584505860430">"Z, dot above"</string>
+    <string name="spoken_accented_letter_017E" msgid="1209240442434887098">"Z, caron"</string>
+    <string name="spoken_accented_letter_017F" msgid="317501463253362415">"Long S"</string>
+    <string name="spoken_accented_letter_01A1" msgid="630186564859044196">"O, horn"</string>
+    <string name="spoken_accented_letter_01B0" msgid="8544012177684640443">"U, horn"</string>
+    <string name="spoken_accented_letter_0219" msgid="1960371842020076066">"S, comma below"</string>
+    <string name="spoken_accented_letter_021B" msgid="1398418662032919032">"T, comma below"</string>
+    <string name="spoken_accented_letter_0259" msgid="2464085263158415898">"Schwa"</string>
+    <string name="spoken_accented_letter_1EA1" msgid="688124877202887630">"A, dot below"</string>
+    <string name="spoken_accented_letter_1EA3" msgid="327960130366386256">"A, hook above"</string>
+    <string name="spoken_accented_letter_1EA5" msgid="637406363453769610">"A, circumflex and acute"</string>
+    <string name="spoken_accented_letter_1EA7" msgid="1419591804181615409">"A, circumflex and grave"</string>
+    <string name="spoken_accented_letter_1EA9" msgid="6068887382734896756">"A, circumflex and hook above"</string>
+    <string name="spoken_accented_letter_1EAB" msgid="7236523151662538333">"A, circumflex and tilde"</string>
+    <string name="spoken_accented_letter_1EAD" msgid="2363364864106332076">"A, circumflex and dot below"</string>
+    <string name="spoken_accented_letter_1EAF" msgid="1576329511464272935">"A, breve and acute"</string>
+    <string name="spoken_accented_letter_1EB1" msgid="4634735072816076592">"A, breve and grave"</string>
+    <string name="spoken_accented_letter_1EB3" msgid="2325245849038771534">"A, breve and hook above"</string>
+    <string name="spoken_accented_letter_1EB5" msgid="3720427596242746295">"A, breve and tilde"</string>
+    <string name="spoken_accented_letter_1EB7" msgid="700415535653646695">"A, breve and dot below"</string>
+    <string name="spoken_accented_letter_1EB9" msgid="3901338692305890487">"E, dot below"</string>
+    <string name="spoken_accented_letter_1EBB" msgid="4028688699415417302">"E, hook above"</string>
+    <string name="spoken_accented_letter_1EBD" msgid="181253633045931897">"E, tilde"</string>
+    <string name="spoken_accented_letter_1EBF" msgid="3309618845007944963">"E, circumflex and acute"</string>
+    <string name="spoken_accented_letter_1EC1" msgid="8139046749226332542">"E, circumflex and grave"</string>
+    <string name="spoken_accented_letter_1EC3" msgid="3239674223053133383">"E, circumflex and hook above"</string>
+    <string name="spoken_accented_letter_1EC5" msgid="2216559244705714587">"E, circumflex and tilde"</string>
+    <string name="spoken_accented_letter_1EC7" msgid="9012731468253986792">"E, circumflex and dot below"</string>
+    <string name="spoken_accented_letter_1EC9" msgid="2901917620195717034">"I, hook above"</string>
+    <string name="spoken_accented_letter_1ECB" msgid="5470387489820034621">"I, dot below"</string>
+    <string name="spoken_accented_letter_1ECD" msgid="1340122876914839806">"O, dot below"</string>
+    <string name="spoken_accented_letter_1ECF" msgid="2326921263882559755">"O, hook above"</string>
+    <string name="spoken_accented_letter_1ED1" msgid="2885683296042774958">"O, circumflex and acute"</string>
+    <string name="spoken_accented_letter_1ED3" msgid="6857664926477376178">"O, circumflex and grave"</string>
+    <string name="spoken_accented_letter_1ED5" msgid="2015209467290624062">"O, circumflex and hook above"</string>
+    <string name="spoken_accented_letter_1ED7" msgid="7924481354960306389">"O, circumflex and tilde"</string>
+    <string name="spoken_accented_letter_1ED9" msgid="7023315590332365554">"O, circumflex and dot below"</string>
+    <string name="spoken_accented_letter_1EDB" msgid="2379438944917634496">"O, horn and acute"</string>
+    <string name="spoken_accented_letter_1EDD" msgid="8107077534204404085">"O, horn and grave"</string>
+    <string name="spoken_accented_letter_1EDF" msgid="1846880105528347966">"O, horn and hook above"</string>
+    <string name="spoken_accented_letter_1EE1" msgid="1520037313389776718">"O, horn and tilde"</string>
+    <string name="spoken_accented_letter_1EE3" msgid="907964027171008963">"O, horn and dot below"</string>
+    <string name="spoken_accented_letter_1EE5" msgid="1522024630360038700">"U, dot below"</string>
+    <string name="spoken_accented_letter_1EE7" msgid="7815412228302952637">"U, hook above"</string>
+    <string name="spoken_accented_letter_1EE9" msgid="4219119671251485651">"U, horn and acute"</string>
+    <string name="spoken_accented_letter_1EEB" msgid="4086009841269002231">"U, horn and grave"</string>
+    <string name="spoken_accented_letter_1EED" msgid="3528151733528719847">"U, horn and hook above"</string>
+    <string name="spoken_accented_letter_1EEF" msgid="3508548229409072119">"U, horn and tilde"</string>
+    <string name="spoken_accented_letter_1EF1" msgid="1912816350401931115">"U, horn and dot below"</string>
+    <string name="spoken_accented_letter_1EF3" msgid="7211760439435946494">"Y, grave"</string>
+    <string name="spoken_accented_letter_1EF5" msgid="8998864482764007384">"Y, dot below"</string>
+    <string name="spoken_accented_letter_1EF7" msgid="922043627252869200">"Y, hook above"</string>
+    <string name="spoken_accented_letter_1EF9" msgid="6213977100552260366">"Y, tilde"</string>
+    <string name="spoken_symbol_00A1" msgid="4281758332905123408">"Inverted exclamation mark"</string>
+    <string name="spoken_symbol_00AB" msgid="4093069643313064892">"Left-pointing double angle quotation mark"</string>
+    <string name="spoken_symbol_00B7" msgid="2447718728927874920">"Middle dot"</string>
+    <string name="spoken_symbol_00B9" msgid="8026257165451461231">"Superscript one"</string>
+    <string name="spoken_symbol_00BB" msgid="1102740075655373928">"Right-pointing double angle quotation mark"</string>
+    <string name="spoken_symbol_00BF" msgid="6233794752573788098">"Inverted question mark"</string>
+    <string name="spoken_symbol_2018" msgid="4886476295598930225">"Left single quotation mark"</string>
+    <string name="spoken_symbol_2019" msgid="8892530161598134083">"Right single quotation mark"</string>
+    <string name="spoken_symbol_201A" msgid="2072987157683446644">"Single low-9 quotation mark"</string>
+    <string name="spoken_symbol_201C" msgid="4588048378803665427">"Left double quotation mark"</string>
+    <string name="spoken_symbol_201D" msgid="1642776849495925895">"Right double quotation mark"</string>
+    <string name="spoken_symbol_2020" msgid="9084628638189344431">"Dagger"</string>
+    <string name="spoken_symbol_2021" msgid="5081396468559426475">"Double dagger"</string>
+    <string name="spoken_symbol_2030" msgid="9068837172419431755">"Per mille sign"</string>
+    <string name="spoken_symbol_2032" msgid="3014506329156664396">"Prime"</string>
+    <string name="spoken_symbol_2033" msgid="1251022699713475088">"Double prime"</string>
+    <string name="spoken_symbol_2039" msgid="6989616457213775957">"Single left-pointing angle quotation mark"</string>
+    <string name="spoken_symbol_203A" msgid="31245095449823701">"Single right-pointing angle quotation mark"</string>
+    <string name="spoken_symbol_2074" msgid="2116717717093306894">"Superscript four"</string>
+    <string name="spoken_symbol_207F" msgid="1706731172134246659">"Superscript latin small letter n"</string>
+    <string name="spoken_symbol_20B1" msgid="2159994270622444689">"Peso sign"</string>
+    <string name="spoken_symbol_2105" msgid="7289404939366976829">"Care of"</string>
+    <string name="spoken_symbol_2192" msgid="827804523596125414">"Rightwards arrow"</string>
+    <string name="spoken_symbol_2193" msgid="2659541693445985717">"Downwards arrow"</string>
+    <string name="spoken_symbol_2205" msgid="4457188084269117343">"Empty set"</string>
+    <string name="spoken_symbol_2206" msgid="4856786565708380687">"Increment"</string>
+    <string name="spoken_symbol_2264" msgid="5092061257745123554">"Less than or equal to"</string>
+    <string name="spoken_symbol_2265" msgid="1907966479878036357">"Greater than or equal to"</string>
+    <string name="spoken_symbol_2605" msgid="5202920479405857753">"Black star"</string>
+</resources>
diff --git a/java/res/values-en-rAU/strings-talkback-descriptions.xml b/java/res/values-en-rAU/strings-talkback-descriptions.xml
new file mode 100644
index 0000000..78c2905
--- /dev/null
+++ b/java/res/values-en-rAU/strings-talkback-descriptions.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_use_headphones" msgid="4313642710742229868">"Plug in a headset to hear password keys spoken aloud."</string>
+    <string name="spoken_current_text_is" msgid="4240549866156675799">"Current text is %s"</string>
+    <string name="spoken_no_text_entered" msgid="1711276837961785646">"No text entered"</string>
+    <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corrects <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> to <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
+    <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> performs auto-correction"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"No suggestion"</string>
+    <string name="spoken_description_unknown" msgid="5139930082759824442">"Unknown character"</string>
+    <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"More symbols"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Symbols"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shift"</string>
+    <string name="spoken_description_delete" msgid="3878902286264983302">"Delete"</string>
+    <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Symbols"</string>
+    <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Letters"</string>
+    <string name="spoken_description_to_numeric" msgid="4560261331530795682">"Numbers"</string>
+    <string name="spoken_description_settings" msgid="7281251004003143204">"Settings"</string>
+    <string name="spoken_description_tab" msgid="8210782459446866716">"Tab"</string>
+    <string name="spoken_description_space" msgid="5908716896642059145">"Space"</string>
+    <string name="spoken_description_mic" msgid="6153138783813452464">"Voice input"</string>
+    <string name="spoken_description_emoji" msgid="7990051553008088470">"Emoji"</string>
+    <string name="spoken_description_return" msgid="3183692287397645708">"Return"</string>
+    <string name="spoken_description_search" msgid="5099937658231911288">"Search"</string>
+    <string name="spoken_description_dot" msgid="5644176501632325560">"Full stop"</string>
+    <string name="spoken_description_language_switch" msgid="6818666779313544553">"Switch language"</string>
+    <string name="spoken_description_action_next" msgid="431761808119616962">"Next"</string>
+    <string name="spoken_description_action_previous" msgid="2919072174697865110">"Previous"</string>
+    <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift enabled"</string>
+    <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps lock enabled"</string>
+    <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Symbols mode"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"More symbols mode"</string>
+    <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Letters mode"</string>
+    <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Phone mode"</string>
+    <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Phone symbols mode"</string>
+    <string name="announce_keyboard_hidden" msgid="2313574218950517779">"Keyboard hidden"</string>
+    <string name="announce_keyboard_mode" msgid="6698257917367823205">"Showing <xliff:g id="KEYBOARD_MODE">%s</xliff:g> keyboard"</string>
+    <string name="keyboard_mode_date" msgid="6597407244976713364">"date"</string>
+    <string name="keyboard_mode_date_time" msgid="3642804408726668808">"date and time"</string>
+    <string name="keyboard_mode_email" msgid="1239682082047693644">"email"</string>
+    <string name="keyboard_mode_im" msgid="3812086215529493501">"messaging"</string>
+    <string name="keyboard_mode_number" msgid="5395042245837996809">"number"</string>
+    <string name="keyboard_mode_phone" msgid="2486230278064523665">"phone"</string>
+    <string name="keyboard_mode_text" msgid="9138789594969187494">"text"</string>
+    <string name="keyboard_mode_time" msgid="8558297845514402675">"time"</string>
+    <string name="keyboard_mode_url" msgid="8072011652949962550">"URL"</string>
+    <string name="spoken_descrption_emoji_category_recents" msgid="4185344945205590692">"Recents"</string>
+    <string name="spoken_descrption_emoji_category_people" msgid="8414196269847492817">"People"</string>
+    <string name="spoken_descrption_emoji_category_objects" msgid="6116297906606195278">"Objects"</string>
+    <string name="spoken_descrption_emoji_category_nature" msgid="5018340512472354640">"Nature"</string>
+    <string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"Places"</string>
+    <string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"Symbols"</string>
+    <string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"Emoticons"</string>
+    <string name="spoken_description_upper_case" msgid="4904835255229433916">"Capital <xliff:g id="LOWER_LETTER">%s</xliff:g>"</string>
+    <string name="spoken_letter_0049" msgid="4743162182646977944">"Capital I"</string>
+    <string name="spoken_letter_0130" msgid="4766619646231612274">"Capital I, dot above"</string>
+    <string name="spoken_symbol_unknown" msgid="717298227061173706">"Unknown symbol"</string>
+    <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Unknown emoji"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Bored face"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Embarrassed face"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Face wearing sunglasses"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Surprised face"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Kissing face"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Frowning face"</string>
+    <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Alternative characters are available"</string>
+    <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Alternative characters are dismissed"</string>
+    <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Alternative suggestions are available"</string>
+    <string name="spoken_close_more_suggestions" msgid="9118455416075032839">"Alternative suggestions are dismissed"</string>
+</resources>
diff --git a/java/res/values-en-rAU/strings.xml b/java/res/values-en-rAU/strings.xml
new file mode 100644
index 0000000..332e01e
--- /dev/null
+++ b/java/res/values-en-rAU/strings.xml
@@ -0,0 +1,207 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2008, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="english_ime_input_options" msgid="3909945612939668554">"Input options"</string>
+    <string name="use_contacts_for_spellchecking_option_title" msgid="5374120998125353898">"Look up contact names"</string>
+    <string name="use_contacts_for_spellchecking_option_summary" msgid="8754413382543307713">"Spell checker uses entries from your contact list"</string>
+    <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrate on keypress"</string>
+    <string name="sound_on_keypress" msgid="6093592297198243644">"Sound on keypress"</string>
+    <string name="popup_on_keypress" msgid="123894815723512944">"Pop-up on key press"</string>
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferences"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Accounts &amp; Privacy"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Appearance &amp; Layouts"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Gesture Typing"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Text correction"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Advanced"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Theme"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Enable split keyboard"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google Keyboard Sync"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Sync is turned on"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Sync your personal dictionary across devices"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Sync now"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Delete cloud data"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Deletes your synced data from Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Your synced data will be deleted from the cloud. Are you sure?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Delete"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Cancel"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Your personal dictionary will be synced and backed up to Google servers. The statistical information of word frequency may be collected to help improve our products. The collection and usage of all the information will be compliant with "<a href="https://www.google.com/policies/privacy">"Google\'s Privacy Policy"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Please add a Google account to this device to enable this feature"</string>
+    <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Switch to other input methods"</string>
+    <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Language switch key also covers other input methods"</string>
+    <string name="show_language_switch_key" msgid="5915478828318774384">"Language switch key"</string>
+    <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Show when multiple input languages are enabled"</string>
+    <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Key pop-up dismiss delay"</string>
+    <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"No delay"</string>
+    <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Default"</string>
+    <string name="abbreviation_unit_milliseconds" msgid="8700286094028323363">"<xliff:g id="MILLISECONDS">%s</xliff:g>ms"</string>
+    <string name="settings_system_default" msgid="6268225104743331821">"System default"</string>
+    <string name="use_contacts_dict" msgid="4435317977804180815">"Suggest Contact names"</string>
+    <string name="use_contacts_dict_summary" msgid="6599983334507879959">"Use names from Contacts for suggestions and corrections"</string>
+    <string name="use_personalized_dicts" msgid="5167396352105467626">"Personalised suggestions"</string>
+    <string name="enable_metrics_logging" msgid="5506372337118822837">"Improve <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
+    <string name="use_double_space_period" msgid="8781529969425082860">"Double-space full stop"</string>
+    <string name="use_double_space_period_summary" msgid="6532892187247952799">"Double tap on spacebar inserts a full stop followed by a space"</string>
+    <string name="auto_cap" msgid="1719746674854628252">"Auto-capitalisation"</string>
+    <string name="auto_cap_summary" msgid="7934452761022946874">"Capitalise the first word of each sentence"</string>
+    <string name="edit_personal_dictionary" msgid="3996910038952940420">"Personal dictionary"</string>
+    <string name="configure_dictionaries_title" msgid="4238652338556902049">"Add-on dictionaries"</string>
+    <string name="main_dictionary" msgid="4798763781818361168">"Main dictionary"</string>
+    <string name="prefs_show_suggestions" msgid="8026799663445531637">"Show correction suggestions"</string>
+    <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Display suggested words while typing"</string>
+    <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Block offensive words"</string>
+    <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Do not suggest potentially offensive words"</string>
+    <string name="auto_correction" msgid="7630720885194996950">"Auto-correction"</string>
+    <string name="auto_correction_summary" msgid="5625751551134658006">"Correct mistyped words automatically with spacebar and punctuation"</string>
+    <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Off"</string>
+    <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Modest"</string>
+    <string name="auto_correction_threshold_mode_aggressive" msgid="7319007299148899623">"Aggressive"</string>
+    <string name="auto_correction_threshold_mode_very_aggressive" msgid="1853309024129480416">"Very aggressive"</string>
+    <string name="bigram_prediction" msgid="1084449187723948550">"Next-word suggestions"</string>
+    <string name="bigram_prediction_summary" msgid="3896362682751109677">"Use the previous word when making suggestions"</string>
+    <string name="gesture_input" msgid="826951152254563827">"Enable gesture typing"</string>
+    <string name="gesture_input_summary" msgid="9180350639305731231">"Input a word by sliding through the letters"</string>
+    <string name="gesture_preview_trail" msgid="3802333369335722221">"Show gesture trail"</string>
+    <string name="gesture_floating_preview_text" msgid="4443240334739381053">"Dynamic floating preview"</string>
+    <string name="gesture_floating_preview_text_summary" msgid="4472696213996203533">"See the suggested word while gesturing"</string>
+    <string name="gesture_space_aware" msgid="2078291600664682496">"Phrase gesture"</string>
+    <string name="gesture_space_aware_summary" msgid="4371385818348528538">"Input spaces during gestures by gliding to the space key"</string>
+    <string name="voice_input" msgid="3583258583521397548">"Voice input key"</string>
+    <string name="voice_input_disabled_summary" msgid="8141750303464726129">"No voice input methods enabled. Check Language &amp; input settings."</string>
+    <string name="configure_input_method" msgid="373356270290742459">"Configure input methods"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Languages"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Help &amp; feedback"</string>
+    <string name="select_language" msgid="5709487854987078367">"Languages"</string>
+    <string name="hint_add_to_dictionary" msgid="573678656946085380">"Touch again to save"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Touch here to save"</string>
+    <string name="has_dictionary" msgid="6071847973466625007">"Dictionary available"</string>
+    <string name="keyboard_layout" msgid="8451164783510487501">"Keyboard theme"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Change accounts"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"No accounts selected"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Currently using <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Cancel"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Sign out"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Select an account to use"</string>
+    <string name="subtype_en_GB" msgid="88170601942311355">"English (UK)"</string>
+    <string name="subtype_en_US" msgid="6160452336634534239">"English (US)"</string>
+    <string name="subtype_es_US" msgid="5583145191430180200">"Spanish (US)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Serbian (Latin)"</string>
+    <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"English (UK) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"English (US) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Spanish (US) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Serbian (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Traditional)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Compact)"</string>
+    <string name="subtype_no_language" msgid="7137390094240139495">"No language (Alphabet)"</string>
+    <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alphabet (QWERTY)"</string>
+    <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alphabet (QWERTZ)"</string>
+    <string name="subtype_no_language_azerty" msgid="8144348527575640087">"Alphabet (AZERTY)"</string>
+    <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alphabet (Dvorak)"</string>
+    <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alphabet (Colemak)"</string>
+    <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alphabet (PC)"</string>
+    <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
+    <string name="keyboard_theme" msgid="4909551808526178852">"Keyboard theme"</string>
+    <string name="custom_input_styles_title" msgid="8429952441821251512">"Customised input styles"</string>
+    <string name="add_style" msgid="6163126614514489951">"Add style"</string>
+    <string name="add" msgid="8299699805688017798">"Add"</string>
+    <string name="remove" msgid="4486081658752944606">"Remove"</string>
+    <string name="save" msgid="7646738597196767214">"Save"</string>
+    <string name="subtype_locale" msgid="8576443440738143764">"Language"</string>
+    <string name="keyboard_layout_set" msgid="4309233698194565609">"Layout"</string>
+    <string name="custom_input_style_note_message" msgid="8826731320846363423">"Your customised input style needs to be enabled before you start using it. Do you want to enable it now?"</string>
+    <string name="enable" msgid="5031294444630523247">"Enable"</string>
+    <string name="not_now" msgid="6172462888202790482">"Not now"</string>
+    <string name="custom_input_style_already_exists" msgid="8008728952215449707">"The same input style already exists: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
+    <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Keypress vibration duration"</string>
+    <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Keypress sound volume"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Key long press delay"</string>
+    <string name="button_default" msgid="3988017840431881491">"Default"</string>
+    <string name="setup_welcome_title" msgid="6112821709832031715">"Welcome to <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
+    <string name="setup_welcome_additional_description" msgid="8150252008545768953">"with Gesture Typing"</string>
+    <string name="setup_start_action" msgid="8936036460897347708">"Get started"</string>
+    <string name="setup_next_action" msgid="371821437915144603">"Next step"</string>
+    <string name="setup_steps_title" msgid="6400373034871816182">"Setting up <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
+    <string name="setup_step1_title" msgid="3147967630253462315">"Enable <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
+    <string name="setup_step1_instruction" msgid="2578631936624637241">"Please tick \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" in your Language &amp; input settings. This will authorise it to run on your device."</string>
+    <string name="setup_step1_finished_instruction" msgid="10761482004957994">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> is already enabled in your Language &amp; input settings, so this step is done. On to the next one!"</string>
+    <string name="setup_step1_action" msgid="4366513534999901728">"Enable in Settings"</string>
+    <string name="setup_step2_title" msgid="6860725447906690594">"Switch to <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
+    <string name="setup_step2_instruction" msgid="9141481964870023336">"Next, select \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" as your active text-input method."</string>
+    <string name="setup_step2_action" msgid="1660330307159824337">"Switch input methods"</string>
+    <string name="setup_step3_title" msgid="3154757183631490281">"Congratulations, you\'re all set!"</string>
+    <string name="setup_step3_instruction" msgid="8025981829605426000">"Now you can type in all your favourite apps with <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
+    <string name="setup_step3_action" msgid="600879797256942259">"Configure additional languages"</string>
+    <string name="setup_finish_action" msgid="276559243409465389">"Finished"</string>
+    <string name="app_name" msgid="6320102637491234792">"Dictionary Provider"</string>
+    <string name="dictionary_provider_name" msgid="3027315045397363079">"Dictionary Provider"</string>
+    <string name="dictionary_service_name" msgid="6237472350693511448">"Dictionary Service"</string>
+    <string name="download_description" msgid="6014835283119198591">"Dictionary update information"</string>
+    <string name="dictionary_settings_title" msgid="8091417676045693313">"Add-on dictionaries"</string>
+    <string name="dictionary_install_over_metered_network_prompt" msgid="3587517870006332980">"Dictionary available"</string>
+    <string name="dictionary_settings_summary" msgid="5305694987799824349">"Settings for dictionaries"</string>
+    <string name="user_dictionaries" msgid="3582332055892252845">"User dictionaries"</string>
+    <string name="default_user_dict_pref_name" msgid="1625055720489280530">"User dictionary"</string>
+    <string name="dictionary_available" msgid="4728975345815214218">"Dictionary available"</string>
+    <string name="dictionary_downloading" msgid="2982650524622620983">"Currently downloading"</string>
+    <string name="dictionary_installed" msgid="8081558343559342962">"Installed"</string>
+    <string name="dictionary_disabled" msgid="8950383219564621762">"Installed, disabled"</string>
+    <string name="cannot_connect_to_dict_service" msgid="9216933695765732398">"Problem connecting to dictionary service"</string>
+    <string name="no_dictionaries_available" msgid="8039920716566132611">"No dictionaries available"</string>
+    <string name="check_for_updates_now" msgid="8087688440916388581">"Refresh"</string>
+    <string name="last_update" msgid="730467549913588780">"Last updated"</string>
+    <string name="message_updating" msgid="4457761393932375219">"Checking for updates"</string>
+    <string name="message_loading" msgid="5638680861387748936">"Loading…"</string>
+    <string name="main_dict_description" msgid="3072821352793492143">"Main dictionary"</string>
+    <string name="cancel" msgid="6830980399865683324">"Cancel"</string>
+    <string name="go_to_settings" msgid="3876892339342569259">"Settings"</string>
+    <string name="install_dict" msgid="180852772562189365">"Install"</string>
+    <string name="cancel_download_dict" msgid="7843340278507019303">"Cancel"</string>
+    <string name="delete_dict" msgid="756853268088330054">"Delete"</string>
+    <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"The selected language on your mobile device has an available dictionary.&lt;br/&gt; We recommend &lt;b&gt;downloading&lt;/b&gt; the <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> dictionary to improve your typing experience.&lt;br/&gt; &lt;br/&gt; The download could take a minute or two over 3G. Charges may apply if you don\'t have an &lt;b&gt;unlimited data plan&lt;/b&gt;.&lt;br/&gt; If you are not sure which data plan you have, we recommend finding a Wi-Fi connection to start the download automatically.&lt;br/&gt; &lt;br/&gt; Tip: You can download and remove dictionaries by going to &lt;b&gt;Language &amp; input&lt;/b&gt; in the &lt;b&gt;Settings&lt;/b&gt; menu of your mobile device."</string>
+    <string name="download_over_metered" msgid="1643065851159409546">"Download now (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>MB)"</string>
+    <string name="do_not_download_over_metered" msgid="2176209579313941583">"Download over Wi-Fi"</string>
+    <string name="dict_available_notification_title" msgid="4583842811218581658">"A dictionary is available for <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>"</string>
+    <string name="dict_available_notification_description" msgid="1075194169443163487">"Press to review and download"</string>
+    <string name="toast_downloading_suggestions" msgid="6128155879830851739">"Downloading: suggestions for <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> will be ready soon."</string>
+    <string name="version_text" msgid="2715354215568469385">"Version <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
+    <string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"Add"</string>
+    <string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"Add to dictionary"</string>
+    <string name="user_dict_settings_add_screen_title" msgid="5818914331629278758">"Phrase"</string>
+    <string name="user_dict_settings_add_dialog_more_options" msgid="5671682004887093112">"More options"</string>
+    <string name="user_dict_settings_add_dialog_less_options" msgid="2716586567241724126">"Fewer options"</string>
+    <string name="user_dict_settings_add_dialog_confirm" msgid="4703129507388332950">"OK"</string>
+    <string name="user_dict_settings_add_word_option_name" msgid="6665558053408962865">"Word:"</string>
+    <string name="user_dict_settings_add_shortcut_option_name" msgid="3094731590655523777">"Shortcut:"</string>
+    <string name="user_dict_settings_add_locale_option_name" msgid="4738643440987277705">"Language:"</string>
+    <string name="user_dict_settings_add_word_hint" msgid="4902434148985906707">"Type a word"</string>
+    <string name="user_dict_settings_add_shortcut_hint" msgid="2265453012555060178">"Optional shortcut"</string>
+    <string name="user_dict_settings_edit_dialog_title" msgid="3765774633869590352">"Edit word"</string>
+    <string name="user_dict_settings_context_menu_edit_title" msgid="6812255903472456302">"Edit"</string>
+    <string name="user_dict_settings_context_menu_delete_title" msgid="8142932447689461181">"Delete"</string>
+    <string name="user_dict_settings_empty_text" msgid="558499587532668203">"You don\'t have any words in the user dictionary. Add a word by touching the Add (+) button."</string>
+    <string name="user_dict_settings_all_languages" msgid="8276126583216298886">"For all languages"</string>
+    <string name="user_dict_settings_more_languages" msgid="7131268499685180461">"More languages…"</string>
+    <string name="user_dict_settings_delete" msgid="110413335187193859">"Delete"</string>
+    <string name="user_dict_fast_scroll_alphabet" msgid="5431919401558285473">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
+</resources>
diff --git a/java/res/values-en-rGB/strings-action-keys.xml b/java/res/values-en-rGB/strings-action-keys.xml
index 6514e85..e401cae 100644
--- a/java/res/values-en-rGB/strings-action-keys.xml
+++ b/java/res/values-en-rGB/strings-action-keys.xml
@@ -23,7 +23,7 @@
     <string name="label_go_key" msgid="4033615332628671065">"Go"</string>
     <string name="label_next_key" msgid="5586407279258592635">"Next"</string>
     <string name="label_previous_key" msgid="1421141755779895275">"Prev"</string>
-    <string name="label_done_key" msgid="7564866296502630852">"Finished"</string>
+    <string name="label_done_key" msgid="7564866296502630852">"Done"</string>
     <string name="label_send_key" msgid="482252074224462163">"Send"</string>
     <string name="label_search_key" msgid="7965186050435796642">"Search"</string>
     <string name="label_pause_key" msgid="2225922926459730642">"Pause"</string>
diff --git a/java/res/values-en-rGB/strings-talkback-descriptions.xml b/java/res/values-en-rGB/strings-talkback-descriptions.xml
index e209b54..78c2905 100644
--- a/java/res/values-en-rGB/strings-talkback-descriptions.xml
+++ b/java/res/values-en-rGB/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"No text entered"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corrects <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> to <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> performs auto-correction"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"No suggestion"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Unknown character"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"More symbols"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Capital I, dot above"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Unknown symbol"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Unknown emoji"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Bored face"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Embarrassed face"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Face wearing sunglasses"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Surprised face"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Kissing face"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Frowning face"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Alternative characters are available"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Alternative characters are dismissed"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Alternative suggestions are available"</string>
diff --git a/java/res/values-en-rGB/strings.xml b/java/res/values-en-rGB/strings.xml
index 04056c2..332e01e 100644
--- a/java/res/values-en-rGB/strings.xml
+++ b/java/res/values-en-rGB/strings.xml
@@ -26,18 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrate on keypress"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Sound on keypress"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Pop-up on key press"</string>
-    <string name="settings_screen_input" msgid="2808654300248306866">"Input preferences"</string>
-    <string name="settings_screen_appearances" msgid="3611951947835553700">"Appearance"</string>
-    <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Multilingual options"</string>
-    <string name="settings_screen_gesture" msgid="9113437621722871665">"Gesture typing preferences"</string>
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferences"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Accounts &amp; Privacy"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Appearance &amp; Layouts"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Gesture Typing"</string>
     <string name="settings_screen_correction" msgid="1616818407747682955">"Text correction"</string>
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Advanced"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Theme"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Enable split keyboard"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google Keyboard Sync"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Sync is turned on"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Sync your personal dictionary across devices"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Sync now"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Delete cloud data"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Deletes your synced data from Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Your synced data will be deleted from the cloud. Are you sure?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Delete"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Cancel"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Your personal dictionary will be synced and backed up to Google servers. The statistical information of word frequency may be collected to help improve our products. The collection and usage of all the information will be compliant with "<a href="https://www.google.com/policies/privacy">"Google\'s Privacy Policy"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Please add a Google account to this device to enable this feature"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Switch to other input methods"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Language switch key also covers other input methods"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Language switch key"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Show when multiple input languages are enabled"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Show slide indicator"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Display visual cue while sliding from Shift or Symbol keys"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Key pop-up dismiss delay"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"No delay"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Default"</string>
@@ -56,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Main dictionary"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Show correction suggestions"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Display suggested words while typing"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Always show"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Show in portrait mode"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Always hide"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Block offensive words"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Do not suggest potentially offensive words"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Auto-correction"</string>
@@ -79,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Voice input key"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"No voice input methods enabled. Check Language &amp; input settings."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Configure input methods"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Input languages"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Send feedback"</string>
-    <string name="select_language" msgid="3693815588777926848">"Input languages"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Languages"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Help &amp; feedback"</string>
+    <string name="select_language" msgid="5709487854987078367">"Languages"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Touch again to save"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Touch here to save"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Dictionary available"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Keyboard theme"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Change accounts"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"No accounts selected"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Currently using <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Cancel"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Sign out"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Select an account to use"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"English (UK)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"English (US)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Spanish (US)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Serbian (Latin)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"English (UK) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"English (US) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Spanish (US) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Serbian (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Traditional)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Cyrillic)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Latin)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Compact)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"No language (Alphabet)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alphabet (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alphabet (QWERTZ)"</string>
@@ -103,10 +122,6 @@
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alphabet (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
     <string name="keyboard_theme" msgid="4909551808526178852">"Keyboard theme"</string>
-    <string name="keyboard_theme_holo_white" msgid="8506588144096428751">"Holo White"</string>
-    <string name="keyboard_theme_holo_blue" msgid="192400518003397418">"Holo Blue"</string>
-    <string name="keyboard_theme_material_dark" msgid="2701178578784760596">"Material Dark"</string>
-    <string name="keyboard_theme_material_light" msgid="3479400901818790331">"Material Light"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Customised input styles"</string>
     <string name="add_style" msgid="6163126614514489951">"Add style"</string>
     <string name="add" msgid="8299699805688017798">"Add"</string>
@@ -118,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Enable"</string>
     <string name="not_now" msgid="6172462888202790482">"Not now"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"The same input style already exists: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Key long press delay"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Keypress vibration duration"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Keypress sound volume"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Read external dictionary file"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"No dictionary files in the Downloads folder"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Select a dictionary file to install"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Really install this file for <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"There was an error"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Key long press delay"</string>
     <string name="button_default" msgid="3988017840431881491">"Default"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Welcome to <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"with Gesture Typing"</string>
@@ -143,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Now you can type in all your favourite apps with <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Configure additional languages"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Finished"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Show app icon"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Display application icon in the launcher"</string>
     <string name="app_name" msgid="6320102637491234792">"Dictionary Provider"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Dictionary Provider"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Dictionary Service"</string>
diff --git a/java/res/values-en-rIN/strings-action-keys.xml b/java/res/values-en-rIN/strings-action-keys.xml
index 6514e85..e401cae 100644
--- a/java/res/values-en-rIN/strings-action-keys.xml
+++ b/java/res/values-en-rIN/strings-action-keys.xml
@@ -23,7 +23,7 @@
     <string name="label_go_key" msgid="4033615332628671065">"Go"</string>
     <string name="label_next_key" msgid="5586407279258592635">"Next"</string>
     <string name="label_previous_key" msgid="1421141755779895275">"Prev"</string>
-    <string name="label_done_key" msgid="7564866296502630852">"Finished"</string>
+    <string name="label_done_key" msgid="7564866296502630852">"Done"</string>
     <string name="label_send_key" msgid="482252074224462163">"Send"</string>
     <string name="label_search_key" msgid="7965186050435796642">"Search"</string>
     <string name="label_pause_key" msgid="2225922926459730642">"Pause"</string>
diff --git a/java/res/values-en-rIN/strings-talkback-descriptions.xml b/java/res/values-en-rIN/strings-talkback-descriptions.xml
index e209b54..78c2905 100644
--- a/java/res/values-en-rIN/strings-talkback-descriptions.xml
+++ b/java/res/values-en-rIN/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"No text entered"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corrects <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> to <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> performs auto-correction"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"No suggestion"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Unknown character"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"More symbols"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Capital I, dot above"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Unknown symbol"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Unknown emoji"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Bored face"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Embarrassed face"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Face wearing sunglasses"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Surprised face"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Kissing face"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Frowning face"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Alternative characters are available"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Alternative characters are dismissed"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Alternative suggestions are available"</string>
diff --git a/java/res/values-en-rIN/strings.xml b/java/res/values-en-rIN/strings.xml
index 04056c2..332e01e 100644
--- a/java/res/values-en-rIN/strings.xml
+++ b/java/res/values-en-rIN/strings.xml
@@ -26,18 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrate on keypress"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Sound on keypress"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Pop-up on key press"</string>
-    <string name="settings_screen_input" msgid="2808654300248306866">"Input preferences"</string>
-    <string name="settings_screen_appearances" msgid="3611951947835553700">"Appearance"</string>
-    <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Multilingual options"</string>
-    <string name="settings_screen_gesture" msgid="9113437621722871665">"Gesture typing preferences"</string>
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferences"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Accounts &amp; Privacy"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Appearance &amp; Layouts"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Gesture Typing"</string>
     <string name="settings_screen_correction" msgid="1616818407747682955">"Text correction"</string>
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Advanced"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Theme"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Enable split keyboard"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google Keyboard Sync"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Sync is turned on"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Sync your personal dictionary across devices"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Sync now"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Delete cloud data"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Deletes your synced data from Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Your synced data will be deleted from the cloud. Are you sure?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Delete"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Cancel"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Your personal dictionary will be synced and backed up to Google servers. The statistical information of word frequency may be collected to help improve our products. The collection and usage of all the information will be compliant with "<a href="https://www.google.com/policies/privacy">"Google\'s Privacy Policy"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Please add a Google account to this device to enable this feature"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Switch to other input methods"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Language switch key also covers other input methods"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Language switch key"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Show when multiple input languages are enabled"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Show slide indicator"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Display visual cue while sliding from Shift or Symbol keys"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Key pop-up dismiss delay"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"No delay"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Default"</string>
@@ -56,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Main dictionary"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Show correction suggestions"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Display suggested words while typing"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Always show"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Show in portrait mode"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Always hide"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Block offensive words"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Do not suggest potentially offensive words"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Auto-correction"</string>
@@ -79,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Voice input key"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"No voice input methods enabled. Check Language &amp; input settings."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Configure input methods"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Input languages"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Send feedback"</string>
-    <string name="select_language" msgid="3693815588777926848">"Input languages"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Languages"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Help &amp; feedback"</string>
+    <string name="select_language" msgid="5709487854987078367">"Languages"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Touch again to save"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Touch here to save"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Dictionary available"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Keyboard theme"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Change accounts"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"No accounts selected"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Currently using <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Cancel"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Sign out"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Select an account to use"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"English (UK)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"English (US)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Spanish (US)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Serbian (Latin)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"English (UK) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"English (US) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Spanish (US) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Serbian (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Traditional)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Cyrillic)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Latin)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Compact)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"No language (Alphabet)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alphabet (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alphabet (QWERTZ)"</string>
@@ -103,10 +122,6 @@
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alphabet (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
     <string name="keyboard_theme" msgid="4909551808526178852">"Keyboard theme"</string>
-    <string name="keyboard_theme_holo_white" msgid="8506588144096428751">"Holo White"</string>
-    <string name="keyboard_theme_holo_blue" msgid="192400518003397418">"Holo Blue"</string>
-    <string name="keyboard_theme_material_dark" msgid="2701178578784760596">"Material Dark"</string>
-    <string name="keyboard_theme_material_light" msgid="3479400901818790331">"Material Light"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Customised input styles"</string>
     <string name="add_style" msgid="6163126614514489951">"Add style"</string>
     <string name="add" msgid="8299699805688017798">"Add"</string>
@@ -118,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Enable"</string>
     <string name="not_now" msgid="6172462888202790482">"Not now"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"The same input style already exists: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Key long press delay"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Keypress vibration duration"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Keypress sound volume"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Read external dictionary file"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"No dictionary files in the Downloads folder"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Select a dictionary file to install"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Really install this file for <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"There was an error"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Key long press delay"</string>
     <string name="button_default" msgid="3988017840431881491">"Default"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Welcome to <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"with Gesture Typing"</string>
@@ -143,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Now you can type in all your favourite apps with <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Configure additional languages"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Finished"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Show app icon"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Display application icon in the launcher"</string>
     <string name="app_name" msgid="6320102637491234792">"Dictionary Provider"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Dictionary Provider"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Dictionary Service"</string>
diff --git a/java/res/values-es-rUS/strings-emoji-descriptions.xml b/java/res/values-es-rUS/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..e671540
--- /dev/null
+++ b/java/res/values-es-rUS/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Signo de derechos de autor"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Signo de marca registrada"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Doble signo de exclamación"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Signos de exclamación y de interrogación"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Símbolo de marca registrada"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Fuente de información"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Flecha izquierda y derecha"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Flecha arriba y abajo"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Flecha hacia el noroeste"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Flecha hacia el noreste"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Flecha hacia el sudeste"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Flecha hacia el sudoeste"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Flecha hacia la izquierda con gancho"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Flecha hacia la derecha con gancho"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Reloj"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Reloj de arena"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Dos triángulos negros hacia la derecha"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Dos triángulos negros hacia la izquierda"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Dos triángulos negros hacia arriba"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Dos triángulos negros hacia abajo"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Despertador"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Reloj de arena con la arena cayendo"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Letra m mayúscula en un círculo"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Cuadrado negro pequeño"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Cuadrado blanco pequeño"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Triángulo negro hacia la derecha"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Triángulo negro hacia la izquierda"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Cuadrado mediano blanco"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Cuadrado mediano negro"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Cuadrado mediano pequeño blanco"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Cuadrado mediano pequeño negro"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Sol negro con rayos"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Nube"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Teléfono negro"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Casilla con marca de verificación"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Paraguas con gotas de lluvia"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Bebida caliente"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Dedo índice blanco apuntando hacia arriba"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Cara blanca sonriente"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Aries"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Tauro"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Géminis"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Cáncer"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Leo"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Virgo"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Libra"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Escorpio"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Sagitario"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Capricornio"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Acuario"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Piscis"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Palo de pica negra"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Palo de trébol negro"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Palo de corazón negro"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Palo de diamante negro"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Aguas termales"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Símbolo universal de reciclaje en negro"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Símbolo de silla de ruedas"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Ancla"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Señal de advertencia"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Señal de alto voltaje"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Círculo mediano blanco"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Círculo mediano negro"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Balón de fútbol"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Béisbol"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Muñeco de nieve sin nieve"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Sol detrás de una nube"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Ofiuco"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Prohibido entrar"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Iglesia"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Fuente"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Bandera en agujero"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Velero"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Tienda"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Bomba de combustible"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Tijeras negras"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Marca de verificación blanca gruesa"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Avión"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Sobre"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Puño levantado"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Mano levantada"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Mano haciendo la señal de la victoria"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Lápiz"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Plumín negro"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Marca de verificación gruesa"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Signo de multiplicación x grueso"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Chispas"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Asterisco de ocho puntas"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Estrella negra de ocho puntas"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Copo de nieve"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Chispa"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Marca de tachado"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Marca de tachado en negativo encuadrada"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Signo de interrogación negro ornamental"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Signo de interrogación blanco ornamental"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Signo de exclamación blanco ornamental"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Signo de exclamación grueso"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Corazón negro sólido"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Signo más grueso"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Signo menos grueso"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Signo de división grueso"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Flecha negra hacia la derecha"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Bucle"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Bucle doble"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Flecha hacia la derecha con curva hacia arriba"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Flecha hacia la derecha con curva hacia abajo"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Flecha negra hacia la izquierda"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Flecha negra hacia arriba"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Flecha negra hacia abajo"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Cuadrado negro grande"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Cuadrado blanco grande"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Estrella mediana blanca"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Círculo grande grueso"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Guion ondulado"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Marca de cambio de parte"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Ideograma de felicitaciones en un círculo"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Ideograma de secreto en un círculo"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Ficha de mahjong del dragón rojo"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Carta de comodín negro"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Grupo sanguíneo A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Grupo sanguíneo B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Grupo sanguíneo O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Estacionamiento"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Tipo sanguíneo AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"Cuadrado con símbolo de borrar"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Cuadrado con símbolo de interesante"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Cuadrado con símbolo de gratis"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"Cuadrado con símbolo de identidad"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Cuadrado con símbolo de nuevo"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Símbolo de no vale la pena encuadrado"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Símbolo de OK encuadrado"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"Símbolo de SOS encuadrado"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Símbolo de novedad encuadrado"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Símbolo de versus encuadrado"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Carácter japonés para \"aquí\" encuadrado"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Carácter japonés para \"servicio\" encuadrado"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Ideograma japonés para \"sin cargo\" encuadrado"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Ideograma japonés para \"asiento reservado\" encuadrado"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Ideograma japonés para \"prohibición\" encuadrado"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Ideograma japonés para \"libre\" encuadrado"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Ideograma japonés para \"aceptación\" encuadrado"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Ideograma japonés para \"completo\" encuadrado"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Ideograma japonés para \"pagado\" encuadrado"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Ideograma japonés para \"mensual\" encuadrado"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Ideograma japonés para \"aplicación\" encuadrado"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Ideograma japonés para \"descuento\" encuadrado"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Ideograma japonés \"abierto\" encuadrado"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Ideograma japonés para \"ventaja\" en un círculo"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Ideograma japonés para \"aceptar\" en un círculo"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Huracán"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Niebla"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Paraguas cerrado"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Noche estrellada"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Amanecer en las montañas"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Amanecer"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Paisaje urbano al atardecer"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Atardecer entre los edificios"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Arcoíris"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Puente de noche"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Ola"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Volcán"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Vía láctea"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Globo terráqueo con Europa y África"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Globo terráqueo con América"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Globo terráqueo con Asia y Australia"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Globo terráqueo con meridianos"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Símbolo de luna nueva"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Símbolo de luna nueva visible"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Símbolo de luna en cuarto creciente"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Símbolo de luna gibosa creciente"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Símbolo de luna llena"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Símbolo de luna gibosa menguante"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Símbolo de cuarto menguante"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Símbolo de luna menguante"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Luna creciente"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Luna nueva con cara"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Cuarto creciente con cara"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Cuarto menguante con cara"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Luna llena con cara"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Sol con cara"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Estrella brillante"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Estrella fugaz"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Castaña"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Brote"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Árbol de hoja perenne"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Árbol de hoja caduca"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palmera"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Cactus"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulipán"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Flor de cerezo"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Rosa"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Hibisco"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Girasol"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Flor"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Espiga de maíz"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Espiga de arroz"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Hierba"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Trébol de cuatro hojas"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Hoja de arce"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Hoja caída"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Hoja flotando en el viento"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Hongo"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Tomate"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Berenjena"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Uvas"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Melón"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Sandía"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Mandarina"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Limón"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Banana"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ananá"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Manzana roja"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Manzana verde"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Pera"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Durazno"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Cerezas"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Frutilla"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburguesa"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Porción de pizza"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Carne con hueso"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Pata de pollo"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Galleta de arroz"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Bola de arroz"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Arroz cocido"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Curry y arroz"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Tazón humeante"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Espaguetis"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Pan"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Papas fritas"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Batata asada"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Sushi"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Camarón frito"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Croqueta de pescado con forma de espiral"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Cono de helado"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Hielo triturado"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Helado"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Dona"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Galleta"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Barra de chocolate"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Dulces"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Paleta"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Flan"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Tarro de miel"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Rebanada de pastel"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Caja bento"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Tazón con comida"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Sartén"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Tenedor y cuchillo"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Taza de té sin mango"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Botella y pocillo de sake"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Copa de vino"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Copa de cóctel"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Bebida tropical"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Jarro de cerveza"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Brindar con jarros de cerveza"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Biberón"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Cinta"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Regalo envuelto"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Pastel de cumpleaños"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Linterna de Halloween"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Árbol de Navidad"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Papá Noel"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Fuegos artificiales"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Bengala"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Globo"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Cotillón"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Lluvia de papel picado"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Árbol de tanabata"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Banderas cruzadas"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Adorno de pino"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Muñecas japonesas"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Banderas en forma de carpa"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Campanilla de viento"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Ceremonia de contemplación de la luna"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Mochila"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Birrete"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Caballo de carrusel"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Vuelta al mundo"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Montaña rusa"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Caña y pescados"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Micrófono"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Cámara cinematográfica"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Cine"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Auriculares"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Paleta de artista"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Sombrero de copa"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Carpa de circo"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Boleto"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Claqueta"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Artes escénicas"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Videojuego"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Dar en el blanco"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Máquinas tragamonedas"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Billar"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Dado"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Bolos"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Naipes japoneses tradicionales"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Nota musical"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Varias notas musicales"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saxofón"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Guitarra"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Teclado musical"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Trompeta"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Violín"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Partitura"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Camiseta deportiva con banda"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Pelota y raqueta de tenis"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Bota de esquiar y esquí"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Pelota y aro de básquet"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Bandera a cuadros"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Practicante de snowboard"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Corredor"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Surfista"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Trofeo"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Carrera de caballos"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Fútbol americano"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Balón de rugby"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Nadador"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Construcción de casas"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Casa con jardín"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Edificio de oficinas"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Oficina postal japonesa"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Oficina postal europea"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Hospital"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Banco"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Cajero automático"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Hotel"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Hotel de citas"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Minimercado"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Escuela"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Centro comercial"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Fábrica"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Linterna izakaya"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Castillo japonés"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Castillo europeo"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Rata"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Ratón"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Buey"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Búfalo de agua"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Vaca"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Leopardo"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Conejo"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Gato"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Dragón"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Cocodrilo"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Ballena"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Caracol"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Serpiente"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Caballo"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Carnero"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Cabra"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Oveja"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Mono"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Gallo"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Gallina"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Perro"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Cerdo"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Jabalí"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Elefante"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Pulpo"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Concha en espiral"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Bicho"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Hormiga"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Abeja"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Mariquita"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Pez"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Pez tropical"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Pez globo"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Tortuga"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Pollito saliendo del huevo"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Pollito"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Pollito de frente"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Pájaro"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Pingüino"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Caniche"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Camello dromedario"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Camello bactriano"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Delfín"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Cabeza de ratón"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Cabeza de vaca"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Cabeza de tigre"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Cabeza de conejo"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Cabeza de gato"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Cabeza de dragón"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Ballena expulsando un chorro de agua"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Cabeza de caballo"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Cabeza de mono"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Cabeza de perro"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Cabeza de cerdo"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Cabeza de rana"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Cara de hámster"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Cabeza de lobo"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Cabeza de oso"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Cabeza de panda"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Nariz de cerdo"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Huellas de patas"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Ojos"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Orejas"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Nariz"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Boca"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Lengua"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Dorso de dedo índice blanco apuntando hacia arriba"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Dorso de dedo índice blanco apuntando hacia abajo"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Dorso de dedo índice blanco apuntando hacia la izquierda"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Dorso de dedo índice blanco apuntando hacia la derecha"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Símbolo de puño"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Signo de saludo con la mano"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Signo de OK con la mano"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Signo de pulgar hacia arriba"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Signo de pulgar hacia abajo"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Signo de manos aplaudiendo"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Signo de manos abiertas"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Corona"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Sombrero de mujer"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Anteojos"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Corbata"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Camiseta"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Jeans"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Vestido"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Vestimenta de mujer"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Monedero"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Bolso de mano"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Estuche"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Zapato de hombre"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Calzado deportivo"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Zapato de taco alto"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Sandalia de mujer"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Botas de mujer"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Huellas de pie"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Silueta de un busto"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Silueta de dos bustos"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Niño"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Niña"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Hombre"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Mujer"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Familia"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Hombre y mujer de la mano"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Dos hombres de la mano"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Dos mujeres de la mano"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Policía"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Mujer con orejas de conejo"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Novia con velo"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Persona con cabello rubio"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Hombre con gorro gua pi mao"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Hombre con turbante"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Anciano"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Anciana"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Bebé"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Obrero"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Princesa"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Ogro japonés"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Duende japonés"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Fantasma"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Ángel bebé"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Alienígena extraterrestre"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Monstruo de otro planeta"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Diablillo"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Calavera"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Persona del centro de información"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Guardia"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Bailarín"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Lápiz labial"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Esmalte de uñas"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Masaje facial"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Corte de cabello"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Poste de barbero"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Jeringa"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Píldora"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Marca de beso"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Carta de amor"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Anillo"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Piedra preciosa"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Beso"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Buqué"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Pareja con un corazón"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Boda"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Corazón latiendo"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Corazón roto"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Dos corazones"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Corazón chispeante"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Corazón creciente"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Corazón con flecha"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Corazón azul"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Corazón verde"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Corazón amarillo"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Corazón púrpura"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Corazón con cinta"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Corazones rotando"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Adorno con corazón"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Rombo con un punto en el interior"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Bombilla eléctrica"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Símbolo de ira"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bomba"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Símbolo de sueño"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Símbolo de choque"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Símbolo de gotas de sudor"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Gotita"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Símbolo de guion"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Montaña de caca"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Bíceps flexionados"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Símbolo de mareo"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Globo de conversación"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Globo de pensamiento"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Flor blanca"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Símbolo de cien puntos"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Bolso de dinero"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Cambio de moneda"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Símbolo de dólar grueso"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Tarjeta de crédito"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Billete con símbolo de yen"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Billete con signo de dólar"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Billete con símbolo de euro"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Billete con símbolo de libra"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Dinero con alas"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Tabla con tendencia ascendente y símbolo de yen"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Asiento"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Computadora personal"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Maletín"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Minidisco"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Disquete"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Disco óptico"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Carpeta de archivos"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Carpeta de archivos abierta"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Página doblada"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Página hacia arriba"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Calendario"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Calendario exfoliador"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Fichero"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Gráfico con tendencia ascendente"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Gráfico con tendencia descendente"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Gráfico de barras"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Portapapeles"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Chinche"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Chinche redonda"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Sujetapapeles"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Regla recta"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Regla triangular"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Señaladores"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Libro mayor"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Cuaderno"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Cuaderno con tapa decorada"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Libro cerrado"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Libro abierto"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Libro verde"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Libro azul"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Libro naranja"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Libros"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Distintivo con nombre"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Desplazamiento"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Nota"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Receptor del teléfono"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Localizador"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Máquina de fax"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Antena parabólica"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Altoparlante para anuncios"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Megáfono para alentar"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Bandeja de salida"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Bandeja de entrada"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Paquete"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Símbolo de correo electrónico"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Sobre de mensaje entrante"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Sobre con una flecha hacia abajo"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Buzón cerrado con bandera bajada"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Buzón cerrado con bandera levantada"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Buzón abierto con bandera levantada"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Buzón abierto con bandera baja"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Buzón"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Corneta de posta"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Periódico"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Teléfono celular"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Teléfono celular con flecha hacia la derecha en el lado izquierdo"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Modo vibración"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Teléfono celular apagado"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Teléfonos celulares prohibidos"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Antena con barras"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Cámara"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Videocámara"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Televisor"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Radio"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Videocasete"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Flechas cruzadas hacia la derecha"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Flechas hacia la izquierda y hacia la derecha en un círculo abierto en sentido horario"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Flechas hacia la izquierda y hacia la derecha en un círculo abierto en sentido horario con un número uno superpuesto"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Flechas hacia arriba y hacia abajo en un círculo abierto en sentido horario"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Flechas hacia arriba y hacia abajo en círculo abierto en sentido antihorario"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Símbolo de brillo tenue"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Símbolo de brillo intenso"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Altavoz tachado"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Altavoz"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Altavoz con una onda de sonido"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Altavoz con tres ondas de sonido"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Batería"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Enchufe eléctrico"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Lupa hacia la izquierda"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Lupa hacia la derecha"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Candado con pluma"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Candado cerrado con llave"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Llave"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Candado"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Candado abierto"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Campana"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Campana tachada"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Señalador"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Símbolo de vínculo"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Botón de radio"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Atrás con flecha hacia la izquierda encima"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"Fin con flecha hacia la izquierda encima"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"Activado con signo de exclamación y con flecha hacia la izquierda y la derecha encima"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Próximamente con flecha hacia la derecha encima"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Arriba con flecha hacia arriba encima"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Símbolo de prohibido para menores de 18 años"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Diez con forma de tecla"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Símbolo para ingresar letras latinas mayúsculas"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Símbolo para ingresar letras latinas minúsculas"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Símbolo para ingresar números"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Símbolos"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Símbolo para ingresar letras latinas"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Fuego"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Linterna"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Llave inglesa"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Martillo"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Tuerca y tornillo"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Cuchillo"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Pistola"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Microscopio"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Telescopio"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Bola de cristal"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Estrella de seis puntas con punto central"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Símbolo japonés para principiante"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Emblema con tridente"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Botón cuadrado negro"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Botón cuadrado blanco"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Círculo rojo grande"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Círculo azul grande"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Rombo naranja grande"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Rombo azul grande"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Rombo naranja pequeño"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Rombo azul pequeño"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Triángulo rojo hacia arriba"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Triángulo rojo hacia abajo"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Triángulo rojo pequeño hacia arriba"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Triángulo rojo pequeño hacia abajo"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Cara del reloj con la una en punto"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Cara del reloj con las dos en punto"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Cara del reloj con las tres en punto"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Cara del reloj con las cuatro en punto"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Cara del reloj con las cinco en punto"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Cara del reloj con las seis en punto"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Cara del reloj con las siete en punto"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Cara del reloj con las ocho en punto"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Cara del reloj con las nueve en punto"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Cara del reloj con las diez en punto"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Cara del reloj con las once en punto"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Cara del reloj con las doce en punto"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Cara del reloj con la una y media"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Cara del reloj con las dos y media"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Cara del reloj con las tres y media"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Cara del reloj con las cuatro y media"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Cara del reloj con las cinco y media"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Cara del reloj con las seis y media"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Cara del reloj con las siete y media"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Cara del reloj con las ocho y media"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Cara del reloj con las nueve y media"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Cara del reloj con las diez y media"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Cara del reloj con las once y media"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Cara del reloj con las doce y media"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Monte Fuji"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Torre de Tokio"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Estatua de la Libertad"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Silueta de Japón"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moái"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Cara con una gran sonrisa"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Cara con una gran sonrisa y ojos alegres"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Cara con lágrimas de alegría"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Cara sonriente con la boca abierta"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Cara sonriente con la boca abierta y ojos alegres"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Cara sonriente con la boca abierta y sudor frío"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Cara sonriente con la boca abierta y ojos bien cerrados"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Cara sonriente con halo"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Cara sonriente con cuernos"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Guiño"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Cara sonriente con ojos alegres"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Cara saboreando comida deliciosa"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Cara de alivio"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Cara sonriente con ojos en forma de corazón"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Cara sonriente con anteojos de sol"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Cara sonriente con ojos hacia un costado"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Cara neutral"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Cara inexpresiva"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Cara poco divertida"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Cara con sudor frío"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Cara pensativa"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Cara confundida"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Cara frustrada"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Cara dando un beso"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Cara tirando un beso"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Beso con ojos alegres"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Beso con ojos cerrados"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Cara con la lengua afuera"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Cara con la lengua afuera y guiño"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Cara con la lengua afuera y ojos bien cerrados"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Cara de decepción"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Cara de preocupación"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Cara enojada"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Cara de descontento"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Cara llorando"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Cara perseverante"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Cara con expresión de triunfo"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Cara decepcionada pero aliviada"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Cara con ceño fruncido y boca abierta"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Cara de angustia"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Cara de miedo"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Cara de sufrimiento"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Cara de sueño"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Cara de cansancio"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Muecas"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Cara llorando a gritos"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Cara con la boca abierta"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Cara perpleja"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Cara con la boca abierta y sudor frío"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Grito de miedo"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Cara de asombro"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Cara sonrojada"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Cara durmiendo"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Cara mareada"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Cara sin boca"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Cara con mascarilla"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Cara de gato con una gran sonrisa y ojos alegres"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Cara de gato con lágrimas de alegría"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Cara de gato sonriente con la boca abierta"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Cara de gato sonriente con ojos en forma de corazón"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Cara de gato con sonrisa irónica"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Cara de gato dando un beso con los ojos cerrados"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Cara de gato descontento"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Cara de gato llorando"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Cara de gato sufriendo"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Cara con gesto de no bueno"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Cara con gesto de aceptación"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Persona haciendo una reverencia"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Mono que no ve maldades"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Mono que no escucha maldades"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Mono que no dice maldades"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Persona feliz con una mano arriba"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Persona con ambas manos arriba en celebración"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Persona con el ceño fruncido"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Persona con cara de descontento"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Persona con las manos juntas"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Cohete"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Helicóptero"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Locomotora a vapor"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Coche de ferrocarril"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Tren de alta velocidad"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Tren bala de alta velocidad"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Tren"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Subterráneo"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Tren ligero"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Estación"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Tranvía"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Coche de tranvía"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Autobús"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Autobús próximo"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Trolebús"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Parada de autobús"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Minibús"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Ambulancia"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Camión de bomberos"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Patrulla de policía"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Patrulla de policía próxima"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taxi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Taxi próximo"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Automóvil"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Automóvil próximo"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Vehículo de uso recreativo"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Camión de reparto"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Camión articulado"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Tractor"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Monocarril"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Ferrocarril de montaña"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Ferrocarril de suspensión"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Teleférico de montaña"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Tranvía aéreo"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Barco"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Bote de remos"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Lancha"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Semáforo horizontal"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Semáforo vertical"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Señal de obra en construcción"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Luz de patrulla de policía"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Bandera triangular en un poste"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Puerta"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Señal de prohibido entrar"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Símbolo de permitido fumar"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Símbolo de prohibido fumar"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Símbolo de arrojar la basura en su sitio"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Símbolo de no arrojar basura al piso"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Símbolo de agua potable"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Símbolo de agua no potable"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Bicicleta"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Prohibido andar en bicicleta"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Ciclista"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Ciclista de montaña"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Peatón"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Prohibido para peatones"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Niños cruzando"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Símbolo de baño para hombres"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Símbolo de baño para mujeres"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Baños"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Símbolo de bebé"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Inodoro"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Retrete"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Ducha"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Baño"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Bañera"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Control de pasaporte"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Aduana"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Reclamo de equipajes"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Consigna"</string>
+</resources>
diff --git a/java/res/values-es-rUS/strings-talkback-descriptions.xml b/java/res/values-es-rUS/strings-talkback-descriptions.xml
index 0bde67e..7b5da26 100644
--- a/java/res/values-es-rUS/strings-talkback-descriptions.xml
+++ b/java/res/values-es-rUS/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"No se ingresó texto."</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corrige <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> por <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>."</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corrige automáticamente."</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"No hay sugerencias."</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Carácter desconocido"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Mayúsculas"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Más símbolos"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"I mayúscula, con punto superior"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Símbolo desconocido"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Emoji desconocido"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Cara de aburrimiento"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Cara de vergüenza"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Cara con anteojos de sol"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Cara de sorpresa"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Cara dando un beso"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Cara con el ceño fruncido"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Hay caracteres alternativos disponibles."</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Los caracteres alternativos se descartan."</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Hay sugerencias alternativas disponibles."</string>
diff --git a/java/res/values-es-rUS/strings.xml b/java/res/values-es-rUS/strings.xml
index 9959278..cf102f8 100644
--- a/java/res/values-es-rUS/strings.xml
+++ b/java/res/values-es-rUS/strings.xml
@@ -26,24 +26,30 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrar al pulsar teclas"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Sonar al pulsar las teclas"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Aviso emergente al pulsar tecla"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferencias"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Cuentas y privacidad"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Apariencia y diseños"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Escritura gestual"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Corrección ortográfica"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Avanzada"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Habilitar teclado dividido"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Sincronizar el Teclado de Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Sincronización activada"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Sincroniza tu diccionario personal en distintos dispositivos."</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Sincronizar ahora"</string>
+    <!-- no translation found for clear_sync_data_title (8582001557037069154) -->
     <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Elimina los datos sincronizados de Google."</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Se eliminarán los datos sincronizados de la nube. ¿Estás seguro?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Eliminar"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Cancelar"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Se creará una copia de tu diccionario personal y se sincronizará con los servidores de Google. Es posible que se recopile información estadística de la frecuencia de palabras para mejorar nuestros productos. La recopilación y el uso de toda la información se realizará conforme a la "<a href="https://www.google.com/policies/privacy">"Política de privacidad de Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Para habilitar esta función, agrega una cuenta de Google."</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Otros métodos de entrada"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"La tecla de cambio de idioma abarca otros métodos de entrada."</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Tecla de selección de idioma"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Mostrar cuando se habiliten varios idiomas de entrada"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Mostrar indicador p. deslizar"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Mostrar indic. visual al deslizar de teclas símbolo o mayúscula"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Demora para ignorar tecla emergente"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Sin demora"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Predeterminada"</string>
@@ -62,9 +68,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Diccionario principal"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Mostrar sugerencias de correcciones"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Mostrar palabras sugeridas al escribir"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Mostrar siempre"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Mostrar en modo de retrato"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Ocultar siempre"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Bloquear palabras ofensivas"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"No sugerir posibles palabras ofensivas"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Corrección automática"</string>
@@ -85,21 +88,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Tecla de entrada por voz"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"No hay métodos de entrada de voz habilitados. Comprueba la configuración de Teclado e idioma."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Configurar métodos de entrada"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Idiomas de entrada"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Enviar comentarios"</string>
-    <string name="select_language" msgid="3693815588777926848">"Idiomas de entrada"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Idiomas"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Ayuda y comentarios"</string>
+    <string name="select_language" msgid="5709487854987078367">"Idiomas"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Vuelve a tocar para guardar."</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Tocar aquí para guardar."</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Diccionario disponible"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Tema del teclado"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Cambiar cuentas"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"No hay cuentas seleccionadas."</string>
+    <string name="account_selected" msgid="2846876462199625974">"En uso actualmente: <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"Aceptar"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Cancelar"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Salir"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Seleccionar una cuenta para usar"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Inglés (Reino Unido)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Inglés (EE.UU.)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Español (EE.UU.)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Serbio (latino)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Inglés, Reino Unido (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Inglés, EE. UU. (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Español, EE. UU. (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Serbio (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tradicional)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (cirílico)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Latinoamérica)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (compacto)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Ningún idioma (alfabeto)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabeto (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabeto (QWERTZ)"</string>
@@ -108,16 +122,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabeto (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabeto (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Tema del teclado"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Estilos de entrada personalizados"</string>
     <string name="add_style" msgid="6163126614514489951">"Agr. estilo"</string>
     <string name="add" msgid="8299699805688017798">"Agregar"</string>
@@ -129,14 +134,9 @@
     <string name="enable" msgid="5031294444630523247">"Activar"</string>
     <string name="not_now" msgid="6172462888202790482">"Ahora no"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Ya existe el estilo de entrada <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>."</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Demora de presión prolongada"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Durac. vibrac. al presionar"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Vol. sonido al presionar tecla"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Leer archivo de diccionario externo"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"No hay archivos de diccionario en la carpeta de descargas."</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Seleccionar archivo de diccionario para instalar"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"¿Realmente quieres instalar este archivo para <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Se produjo un error."</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Demora de presión prolongada"</string>
     <string name="button_default" msgid="3988017840431881491">"Predeterminado"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Te damos la bienvenida a <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"con escritura gestual"</string>
@@ -154,8 +154,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Ahora puedes escribir en todas las aplicaciones que quieras con <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Configurar otros idiomas"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Listo"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Mostrar ícono de aplicación"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Mostrar ícono de aplicación en el selector"</string>
     <string name="app_name" msgid="6320102637491234792">"Proveedor de diccionarios"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Proveedor de diccionarios"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Servicio de diccionarios"</string>
diff --git a/java/res/values-es/strings-emoji-descriptions.xml b/java/res/values-es/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..315654e
--- /dev/null
+++ b/java/res/values-es/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Signo de copyright"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Signo de marca registrada"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Signo de exclamación doble"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Signos de exclamación e interrogación"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Signo de marca comercial"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Punto de información"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Flecha hacia izquierda y derecha"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Flecha hacia arriba y abajo"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Flecha hacia el noroeste"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Flecha hacia el nordeste"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Flecha hacia el sureste"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Flecha hacia el suroeste"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Flecha hacia la izquierda con gancho"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Flecha hacia la derecha con gancho"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Reloj de pulsera"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Reloj de arena"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Triángulo doble negro hacia la derecha"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Triángulo doble negro hacia la izquierda"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Triángulo doble negro hacia arriba"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Triángulo doble negro hacia abajo"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Despertador"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Reloj de arena con la arena cayendo"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Letra M mayúscula en un círculo"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Cuadrado negro pequeño"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Cuadrado blanco pequeño"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Triángulo negro hacia la derecha"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Triángulo negro hacia la izquierda"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Cuadrado mediano blanco"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Cuadrado mediano negro"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Cuadrado pequeño-mediano blanco"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Cuadrado pequeño-mediano negro"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Sol negro con rayos"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Nube"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Teléfono negro"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Casilla con marca de verificación"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Sombrilla con gotas de lluvia"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Bebida caliente"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Dedo índice hacia arriba"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Cara sonriendo"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Aries"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Tauro"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Géminis"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Cáncer"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Leo"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Virgo"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Libra"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Escorpio"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Sagitario"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Capricornio"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Acuario"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Piscis"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Palo de espadas negro"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Palo de tréboles negro"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Palo de corazones negro"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Palo de diamantes negro"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Manantial termal"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Símbolo de reciclaje universal negro"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Símbolo de silla de ruedas"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Ancla"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Signo de advertencia"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Signo de alto voltaje"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Círculo blanco mediano"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Círculo negro mediano"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Balón de fútbol"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Pelota de béisbol"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Hombre de nieve sin nieve"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Sol detrás de una nube"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Ofiuco"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Prohibida la entrada"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Iglesia"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Fuente"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Banderín en agujero"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Barco de vela"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Tienda de campaña"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Bomba de gasolinera"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Tijeras negras"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Marca de verificación blanca"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Avión"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Sobre"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Puño alzado"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Mano alzada"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Mano haciendo la señal de la victoria"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Lápiz"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Pluma estilográfica negra"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Marca de verificación"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Signo de multiplicación"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Chispas"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Asterisco de ocho puntas"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Estrella negra de ocho puntas"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Copo de nieve"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Chispa"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Marcha de tachado"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Marca de tachado en cuadrado negativo"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Signo de interrogación negro ornamental"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Signo de interrogación blanco ornamental"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Signo de exclamación blanco ornamental"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Signo de exclamación"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Corazón negro sólido"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Signo más"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Signo menos"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Signo de división"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Flecha negra hacia la derecha"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Bucle"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Bucle doble"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Flecha hacia la derecha con curva hacia arriba"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Flecha hacia la derecha con curva hacia abajo"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Flecha negra hacia la izquierda"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Flecha negra hacia arriba"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Flecha negra hacia abajo"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Cuadrado grande negro"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Cuadrado grande blanco"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Estrella mediana blanca"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Círculo grande"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Guión ondulado"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Marca de turno en una canción"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Ideograma de enhorabuena en un círculo"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Ideograma de secreto en un círculo"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Ficha de mahjong del dragón rojo"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Carta de joker negro"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Grupo sanguíneo A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Grupo sanguíneo B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Grupo sanguíneo O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Aparcamiento"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Tipo sanguíneo AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"Cuadrado con símbolo de borrar"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Cuadrado con símbolo de interesante"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Cuadrado con símbolo de gratis"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"Cuadrado con símbolo de identidad"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Cuadrado con símbolo de nuevo"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Cuadrado con símbolo de no bueno"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Cuadrado con símbolo de OK"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"Cuadrado con símbolo de SOS"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Cuadrado con símbolo de novedad"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Cuadrado con símbolo de versus"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Cuadrado con ideograma japonés para \"aquí\""</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Cuadrado con ideograma japonés para \"servicio\""</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Cuadrado con ideograma japonés para \"libre de cargo\""</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Cuadrado con ideograma japonés para \"asiento reservado\""</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Cuadrado con ideograma japonés para \"prohibición\""</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Cuadrado con ideograma japonés para \"libre\""</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Cuadrado con ideograma japonés para \"aceptación\""</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Cuadrado con ideograma japonés para \"ocupación completa\""</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Cuadrado con ideograma japonés para \"pagado\""</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Cuadrado con ideograma japonés para \"mensual\""</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Cuadrado con ideograma japonés para \"aplicación\""</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Cuadrado con ideograma japonés para \"descuento\""</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Cuadrado con ideograma japonés para \"negocio\""</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Círculo con ideograma japonés para \"ventaja\""</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Círculo con ideograma japonés para \"ocupación completa\""</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Ciclón"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Niebla"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Paraguas cerrado"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Noche con estrellas"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Amanecer entre montañas"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Amanecer"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Ciudad al atardecer"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Puesta de sol sobre edificios"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Arcoíris"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Puente de noche"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Ola de mar"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Volcán"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Vía Láctea"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Globo terráqueo con Europa-África"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Globo terráqueo con América"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Globo terráqueo con Asia-Australia"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Globo terráqueo con meridianos"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Símbolo de luna nueva"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Símbolo de luna nueva visible"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Símbolo de luna en cuarto creciente"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Símbolo de luna gibosa creciente"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Símbolo de luna nueva"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Símbolo de luna gibosa menguante"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Símbolo de luna en cuarto menguante"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Símbolo de luna menguante"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Luna creciente"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Luna nueva con cara"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Luna en cuarto creciente con cara"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Luna en cuarto menguante con cara"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Luna llena con cara"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Sol con cara"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Estrella brillante"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Estrella fugaz"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Castaña"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Planta joven"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Árbol de hoja perenne"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Árbol de hoja caduca"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palmera"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Cactus"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulipán"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Flor de cerezo"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Rosa"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Hibisco"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Girasol"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Flor"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Mazorca de maíz"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Mazorca de arroz"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Hierba"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Trébol de cuatro hojas"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Hoja de arce"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Hojas caídas"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Hojas al viento"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Seta"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Tomate"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Berenjena"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Uvas"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Melón"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Sandía"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Naranja"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Limón"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Plátano"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Piña"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Manzana roja"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Manzana verde"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Pera"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Melocotón"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Cerezas"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Fresa"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburguesa"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Trozo de pizza"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Carne con hueso"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Muslo de pollo"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Galleta de arroz"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Bola de arroz"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Arroz cocido"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Arroz con curry"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Tazón de fideos"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Espaguetis"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Pan"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Patatas fritas"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Patata asada"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Mochi"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Sushi"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Gamba frita"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Pastel de pescado con forma de espiral"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Helado suave"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Granizado"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Helado"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Dónut"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Cookie"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Barra de chocolate"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Caramelo"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Piruleta"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Flan"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Tarro de miel"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Pedazo de tarta"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Caja de bento"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Guiso"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Sartén"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Cuchillo y tenedor"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Taza de té sin mango"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Botella y tazón de sake"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Vaso de vino"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Vaso de cóctel"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Bebida tropical"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Jarra de cerveza"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Jarras de cerveza brindando"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Biberón"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Lazo"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Regalo envuelto"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Tarta de cumpleaños"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Linterna de Halloween"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Árbol de Navidad"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Papá Noel"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Fuegos artificiales"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Luz de bengala"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Globo"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Lanzador de confeti"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Lluvia de confeti"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Árbol de Tanabata"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Banderas cruzadas"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Decoración de pino"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Muñecas japonesas"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Banderín de carpas"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Campanilla de viento"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Ceremonia de contemplación de la luna"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Mochila escolar"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Birrete de graduado"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Caballito de tiovivo"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Noria de feria"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Montaña rusa"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Caña pescar con pez"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Micrófono"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Cámara cinematográfica"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Cine"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Auriculares"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Paleta de pintor"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Sombrero de copa"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Carpa de circo"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Entrada"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Claqueta"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Artes escénicas"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Videojuego"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Diana"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Máquina tragaperras"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Billar"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Dado"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Bolos"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Naipes de flor"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Nota musical"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Varias notas musicales"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saxofón"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Guitarra"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Teclado musical"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Trompeta"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Violín"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Pentagrama musical"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Camiseta con banda"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Pelota y raqueta de tenis"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Esquíes y bastones"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Balón de baloncesto y canasta"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Bandera a cuadros"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Practicante de snowboard"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Corredor"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Surfero"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Trofeo"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Carrera de caballos"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Fútbol americano"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Balón de rugby"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Nadador"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Casa"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Casa con jardín"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Edificio de oficinas"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Oficina de correos japonesa"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Oficina de correos europea"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Hospital"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Banco"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Cajero automático"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Hotel"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Hotel del amor"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Tienda de 24 horas"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Colegio"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Centro comercial"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Factoría"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Linterna de izakaya"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Castillo japonés"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Castillo europeo"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Rata"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Ratón"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Buey"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Búfalo de agua"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Vaca"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Leopardo"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Conejo"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Gato"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Dragón"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Cocodrilo"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Ballena"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Caracol"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Serpiente"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Caballo"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Carnero"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Cabra"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Oveja"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Mono"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Gallo"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Gallina"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Perro"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Cerdo"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Jabalí"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Elefante"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Pulpo"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Concha de caracol"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Error"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Hormiga"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Abeja"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Mariquita"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Pez"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Pez tropical"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Pez globo"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Tortuga"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Pollito rompiendo el cascarón"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Pollito"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Pollito de frente"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Pájaro"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Pingüino"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Caniche"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Dromedario"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Camello bactriano"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Delfín"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Cara de ratón"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Cara de vaca"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Cara de tigre"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Cara de conejo"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Cara de gato"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Cara de dragón"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Ballena soltando chorro"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Cara de caballo"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Cara de mono"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Cara de perro"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Cara de cerdo"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Cara de rana"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Cara de hámster"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Cara de lobo"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Cara de oso"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Cara de panda"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Nariz de cerdo"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Huellas de pezuñas"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Ojos"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Oreja"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Nariz"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Boca"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Lengua"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Dedo índice apuntando hacia arriba"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Dedo índice apuntando hacia abajo"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Dedo índice apuntando hacia la izquierda"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Dedo índice apuntando hacia la derecha"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Signo de puño con la mano"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Signo de agitar la mano"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Signo de OK con la mano"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Signo de pulgar hacia arriba"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Signo de pulgar hacia abajo"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Signo de manos haciendo palmas"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Signo de manos abiertas"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Corona"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Sombrero de mujer"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Anteojos"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Nudo de corbata"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Camiseta"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Vaqueros"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Vestido"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Ropa de mujer"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Monedero"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Bolso"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Bolso de mano"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Zapato de hombre"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Zapatilla deportiva"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Zapato de tacón"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Sandalia de mujer"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Botas de mujer"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Huellas de pies"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Silueta de torso"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Silueta de torsos"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Niño"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Niña"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Hombre"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Mujer"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Familia"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Hombre y mujer de la mano"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Dos hombres de la mano"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Dos mujeres de la mano"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Agente de policía"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Mujer con orejas de conejo"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Novia con velo"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Persona con pelo rubio"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Hombre con gua pi mao"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Hombre con turbante"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Hombre mayor"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Mujer mayor"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Bebé"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Obrero de la construcción"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Princesa"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Ogro japonés"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Duende japonés"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Fantasma"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Angelito"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Alienígena extraterrestre"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Monstruo alienígena"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Diablillo"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Calavera"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Empleada del centro de información"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Guardia"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Bailarina"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Lápiz de labios"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Esmalte de uñas"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Masaje facial"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Corte de pelo"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Poste de barbero"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Jeringa"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Píldora"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Marca de labios"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Carta de amor"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Anillo"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Piedra preciosa"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Beso"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Ramo de flores"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Pareja con corazón"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Boda"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Corazón palpitante"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Corazón partido"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Dos corazones"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Corazón brillante"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Corazón creciente"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Corazón con una fecha"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Corazón azul"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Corazón verde"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Corazón amarillo"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Corazón morado"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Corazón con lazo"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Corazones dando vueltas"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Decoración de corazón"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Rombo con un punto en el interior"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Bombilla eléctrica"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Símbolo de enfado"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bomba"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Símbolo de sueño"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Símbolo de colisión"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Símbolo de gotas de sudor"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Gota"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Símbolo de correr"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Caca con ojos"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Bíceps flexionado"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Símbolo de mareo"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Bocadillo de conversación"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Bocadillo de pensamiento"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Flor blanca"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Símbolo de cien puntos"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Bolsa de dinero"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Cambio de divisas"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Símbolo de dólar"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Tarjeta de crédito"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Billete con símbolo de yen"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Billete con el signo de dólar"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Billete con símbolo de euro"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Billete con símbolo de libra"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Dinero con alas"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Gráfico con símbolos de yen y tendencia ascendente"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Asiento"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Ordenador personal"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Maletín"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Minidisc"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Disquete"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Disco óptico"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Carpeta de archivos"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Carpeta de archivos abierta"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Página doblada"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Página hacia arriba"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Calendario"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Calendario con anillas"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Tarjetero"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Gráfico con tendencia ascendente"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Gráfico con tendencia descendente"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Gráfico de barras"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Tabla sujetapapeles"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Chincheta"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Chincheta redonda"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Sujetapapeles"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Regla recta"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Regla triangular"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Marcadores"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Libro de contabilidad"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Cuaderno"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Cuaderno con portada decorada"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Libro cerrado"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Libro abierto"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Libro verde"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Libro azul"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Libro naranja"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Libros"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Etiqueta identificativa"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Pergamino"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Nota"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Auricular de teléfono"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Busca"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Máquina de fax"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Antena de satélite"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Altavoz de mano"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Megáfono"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Bandeja de salida"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Bandeja de entrada"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Paquete"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Símbolo de correo electrónico"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Sobre de correo entrante"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Sobre con flecha hacia abajo encima"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Buzón cerrado con bandera bajada"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Buzón cerrado con bandera levantada"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Buzón abierto con bandera levantada"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Buzón abierto con bandera bajada"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Buzón"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Cometa de posta"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Periódico"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Teléfono móvil"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Teléfono móvil con flecha hacia la derecha a la izquierda"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Modo vibración"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Teléfono móvil apagado"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Teléfonos móviles prohibidos"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Antena con barras"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Cámara"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Videocámara"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Televisión"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Radio"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Videocasete"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Flechas entrecruzadas hacia la derecha"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Flechas hacia la izquierda y hacia la derecha formando un círculo abierto en sentido horario"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Flechas hacia la izquierda y hacia la derecha formando un círculo abierto en sentido horario con un número uno en un círculo"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Flechas hacia arriba y hacia abajo formando un círculo abierto en sentido horario"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Flechas hacia arriba y hacia abajo formando un círculo abierto en sentido antihorario"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Símbolo de brillo bajo"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Símbolo de brillo alto"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Altavoz con marca de cancelación"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Altavoz"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Altavoz con una onda de sonido"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Altavoz con tres ondas de sonido"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Batería"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Enchufe eléctrico"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Lupa hacia la izquierda"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Lupa hacia la derecha"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Candado con pluma estilográfica"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Candado cerrado con llave"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Llave"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Candado"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Candado abierto"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Campana"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Campana con signo de cancelación"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Marcador"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Símbolo de enlace"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Botón de opción"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Atrás con flecha hacia la izquierda encima"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"Final con flecha hacia la izquierda encima"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"Adelante con signo de exclamación y flecha hacia la izquierda encima"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Pronto con flecha hacia la derecha encima"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Arriba con flecha hacia arriba encima"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Prohibido menores de 18"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Tecla 10"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Símbolo de letras mayúsculas latinas"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Símbolo de letras minúsculas latinas"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Símbolo de números"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Símbolos"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Símbolo de letras latinas"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Fuego"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Linterna"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Llave inglesa"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Martillo"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Tornillo y tuerca"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Cuchillo de cocina"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Pistola"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Microscopio"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Telescopio"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Bola de cristal"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Estrella de seis puntas con punto central"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Símbolo japonés para principiante"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Emblema con tridente"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Botón cuadrado negro"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Botón cuadrado blanco"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Círculo rojo grande"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Círculo azul grande"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Rombo naranja grande"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Rombo azul grande"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Rombo naranja pequeño"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Rombo azul pequeño"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Triángulo rojo hacia arriba"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Triángulo rojo hacia abajo"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Triángulo rojo pequeño hacia arriba"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Triángulo rojo pequeño hacia abajo"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Esfera de reloj con la uno en punto"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Esfera de reloj con las dos en punto"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Esfera de reloj con las tres en punto"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Esfera de reloj con las cuatro en punto"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Esfera de reloj con las cinco en punto"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Esfera de reloj con las seis en punto"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Esfera de reloj con las siete en punto"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Esfera de reloj con las ocho en punto"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Esfera de reloj con las nueve en punto"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Esfera de reloj con las diez en punto"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Esfera de reloj con las once en punto"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Esfera de reloj con las doce en punto"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Esfera de reloj con la una y media"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Esfera de reloj con las dos y media"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Esfera de reloj con las tres y media"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Esfera de reloj con las cuatro y media"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Esfera de reloj con las cinco y media"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Esfera de reloj con las seis y media"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Esfera de reloj con las siete y media"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Esfera de reloj con las ocho y media"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Esfera de reloj con las nueve y media"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Esfera de reloj con las diez y media"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Esfera de reloj con las once y media"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Esfera de reloj con las doce y media"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Monte Fuji"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Torre de Tokio"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Estatua de la Libertad"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Silueta de Japón"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moái"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Cara sonriente"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Cara sonriente con ojos sonrientes"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Cara con lágrimas de alegría"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Cara sonriente con boca abierta"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Cara sonriente con boca abierta y ojos sonrientes"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Cara sonriente con boca abierta y sudor frío"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Cara sonriente con boca abierta y ojos muy cerrados"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Cara sonriente con aureola"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Cara sonriente con cuernos"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Cara guiñando un ojo"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Cara sonriente con ojos sonrientes"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Cara saboreando una comida deliciosa"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Cara de alivio"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Cara sonriente con corazones en los ojos"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Cara sonriente con gafas de sol"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Cara sonriendo con superioridad"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Cara neutral"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Cara inexpresiva"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Cara poco divertida"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Cara con sudor frío"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Cara pensativa"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Cara confusa"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Cara frustrada"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Cara dando un beso"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Cara lanzando un beso"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Cara dando un beso con ojos sonrientes"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Cara dando un beso con ojos cerrados"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Cara sacando la lengua"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Cara sacando la lengua y guiñando un ojo"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Cara sacando la lengua con los ojos cerrados"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Cara decepcionada"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Cara preocupada"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Cara enfadada"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Cara enojada"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Cara llorando"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Cara perseverante"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Cara con mirada de triunfo"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Cara decepcionada pero aliviada"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Cara con el ceño fruncido y la boca abierta"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Cara angustiada"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Cara asustada"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Cara cansada"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Cara con sueño"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Cara cansada"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Cara haciendo una mueca"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Cara llorando fuerte"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Cara con la boca abierta"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Cara estupefacta"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Cara con la boca abierta y sudor frío"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Cara gritando de miedo"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Cara de asombro"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Cara sonrojada"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Cara durmiendo"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Cara mareada"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Cara sin boca"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Cara con mascarilla"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Cara de gato sonriente con ojos sonrientes"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Cara de gato con lágrimas de alegría"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Cara de gato sonriente con la boca abierta"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Cara de gato con corazones en los ojos"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Cara de gato con sonrisa irónica"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Cara de gato dando un beso con los ojos cerrados"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Cara de gato enojada"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Cara de gato llorando"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Cara de gato cansada"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Cara con gesto de no está bien"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Cara con gesto de OK"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Persona haciendo una reverencia"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Mono que no ve el mal"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Mono que no oye el mal"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Mono que no dice el mal"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Persona feliz levantando una mano"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Persona levantando ambas manos en celebración"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Persona frunciendo el ceño"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Persona con cara enojada"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Persona con las manos en oración"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Cohete"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Helicóptero"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Locomotora de vapor"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Tren eléctrico"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Tren de alta velocidad"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Tren de alta velocidad con punta de bala"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Tren"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Metro"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Tren ligero"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Estación"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Tranvía"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Vagón de tranvía"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Autobús"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Autobús próximo"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Trolebús"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Parada de autobús"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Minibús"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Ambulancia"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Coche de bomberos"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Coche de policía"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Coche de policía próximo"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taxi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Taxi próximo"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Automóvil"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Automóvil próximo"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Autocaravana"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Camión de reparto"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Camión articulado"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Tractor"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Monorraíl"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Ferrocarril de montaña"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Ferrocarril de suspensión"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Telecabina de montaña"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Telecabina"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Barco"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Barca de remos"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Lancha motora"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Semáforo horizontal"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Semáforo vertical"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Signo de construcción"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Sirena de la policía"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Bandera de localización triangular"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Puerta"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Señal de prohibida la entrada"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Símbolo de fumar"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Símbolo de no fumar"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Símbolo de tirar la basura en su sitio"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Símbolo de no tirar basura"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Símbolo de agua potable"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Símbolo de agua no potable"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Bicicleta"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Prohibido montar en bicicleta"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Ciclista"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Ciclista de montaña"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Peatón"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Prohibido el paso de peatones"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Niños cruzando"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Símbolo de aseos para hombres"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Símbolo de aseos para mujeres"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Aseos"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Símbolo de bebé"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Retrete"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Servicios"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Ducha"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Baño"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Bañera"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Control de pasaportes"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Aduanas"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Recogida de equipaje"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Consigna"</string>
+</resources>
diff --git a/java/res/values-es/strings-talkback-descriptions.xml b/java/res/values-es/strings-talkback-descriptions.xml
index ef95901..d80d25c 100644
--- a/java/res/values-es/strings-talkback-descriptions.xml
+++ b/java/res/values-es/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"No se ha introducido texto"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corrige <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> a <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corregirá la palabra automáticamente"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"No hay sugerencias"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Carácter desconocido"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Mayús"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Más símbolos"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"I maýuscula, punto superior"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Símbolo desconocido"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Emoji desconocido"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Cara aburrida"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Cara avergonzada"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Cara con gafas de sol"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Cara sorprendida"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Cara dando un beso"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Cara con el ceño fruncido"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Caracteres alternativos disponibles"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Los caracteres alternativos se descartarán"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Sugerencias alternativas disponibles"</string>
diff --git a/java/res/values-es/strings.xml b/java/res/values-es/strings.xml
index a385f9e..dceecc7 100644
--- a/java/res/values-es/strings.xml
+++ b/java/res/values-es/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrar al pulsar tecla"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Sonar al pulsar tecla"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Ampliar al pulsar tecla"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferencias"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Cuentas y privacidad"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Aspecto y diseño"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Escritura gestual"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Corrección ortográfica"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Opciones avanzadas"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Habilitar teclado dividido"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Sincronización Teclado de Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Sincronización activada"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Sincronizar el diccionario personal en diferentes dispositivos"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Sincronizar"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Eliminar datos de la nube"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Elimina tus datos sincronizados de Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Los datos sincronizados se eliminarán de la nube. ¿Continuar?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Eliminar"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Cancelar"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"El diccionario personal se sincroniza con los servidores de Google, donde se crea una copia de seguridad. Se puede recopilar información estadística sobre frecuencia de palabras para mejorar nuestros productos. Toda la información se recopila y se utiliza siguiendo las disposiciones de la "<a href="https://www.google.com/policies/privacy">"Política de privacidad de Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Añade una cuenta de Google al dispositivo para activar la función"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Otros métodos de introducción"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"La tecla de cambio de idioma sirve también para otros métodos"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Tecla para cambiar de idioma"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Mostrar cuando haya varios idiomas de introducción habilitados"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Mostrar indicador deslizante"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Mostrar pista visual al deslizar desde la tecla Mayús o la tecla de símbolos"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Retraso para ampliar tecla"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Sin retraso"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Predeterminado"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Diccionario principal"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Sugerencias de correcciones"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Muestra las palabras sugeridas mientras se escribe."</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Mostrar siempre"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Mostrar en modo vertical"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Ocultar siempre"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Bloquear palabras ofensivas"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"No sugerir palabras potencialmente ofensivas"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Autocorrección"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Tecla de entrada de voz"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Sin métodos de introducción de voz habilitados. Comprueba ajustes de Idioma e introducción de texto."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Configurar métodos de entrada"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Idiomas"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Danos tu opinión"</string>
-    <string name="select_language" msgid="3693815588777926848">"Idiomas de introducción"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Idiomas"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Ayuda y sugerencias"</string>
+    <string name="select_language" msgid="5709487854987078367">"Idiomas"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Toca otra vez para guardar"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Toca aquí para guardar"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Hay un diccionario disponible"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Tema de teclado"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Cambiar de cuenta"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Ninguna cuenta seleccionada"</string>
+    <string name="account_selected" msgid="2846876462199625974">"<xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g> actualmente en uso"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"Aceptar"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Cancelar"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Cerrar sesión"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Selecciona la cuenta que quieras usar"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"inglés (Reino Unido)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"inglés (EE.UU.)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Español (EE.UU.)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Serbio (latino)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Inglés (Reino Unido) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Inglés (EE.UU.) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Español (EE.UU.) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Serbio (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tradicional)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (cirílico)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Latinoamérica)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (compacto)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Ningún idioma (alfabeto)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabeto (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabeto (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabeto (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabeto (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Tema de teclado"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Estilos de entrada personalizados"</string>
     <string name="add_style" msgid="6163126614514489951">"Añadir estilo"</string>
     <string name="add" msgid="8299699805688017798">"Añadir"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Habilitar"</string>
     <string name="not_now" msgid="6172462888202790482">"Ahora no"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Ya existe el estilo de entrada <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>."</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Retraso de pulsación prolongada"</string>
-    <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Duración vibración al pulsar"</string>
+    <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Duración de vibración al pulsar"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Volumen sonido al pulsar tecla"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Leer archivo de diccionario externo"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"No hay archivos de diccionario en la carpeta de descargas."</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Selecciona un archivo de diccionario para instalar"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"¿Seguro que quieres instalar este archivo para <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Se ha producido un error"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Retraso de pulsación prolongada"</string>
     <string name="button_default" msgid="3988017840431881491">"Predeterminado"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Te damos la bienvenida a <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"con escritura gestual"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Ahora puedes escribir en todas tus aplicaciones favoritas con <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Configura otros idiomas"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Listo"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Mostrar icono de aplicación"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Mostrar icono de aplicación en menú de aplicaciones"</string>
     <string name="app_name" msgid="6320102637491234792">"Proveedor del diccionario"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Proveedor del diccionario"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Servicio de diccionario"</string>
@@ -173,7 +170,7 @@
     <string name="no_dictionaries_available" msgid="8039920716566132611">"No hay diccionarios"</string>
     <string name="check_for_updates_now" msgid="8087688440916388581">"Actualizar"</string>
     <string name="last_update" msgid="730467549913588780">"Última actualización"</string>
-    <string name="message_updating" msgid="4457761393932375219">"Buscando actualizaciones"</string>
+    <string name="message_updating" msgid="4457761393932375219">"Buscando actualizaciones..."</string>
     <string name="message_loading" msgid="5638680861387748936">"Cargando…"</string>
     <string name="main_dict_description" msgid="3072821352793492143">"Diccionario principal"</string>
     <string name="cancel" msgid="6830980399865683324">"Cancelar"</string>
@@ -198,7 +195,7 @@
     <string name="user_dict_settings_add_shortcut_option_name" msgid="3094731590655523777">"Acceso directo:"</string>
     <string name="user_dict_settings_add_locale_option_name" msgid="4738643440987277705">"Idioma:"</string>
     <string name="user_dict_settings_add_word_hint" msgid="4902434148985906707">"Escribe una palabra"</string>
-    <string name="user_dict_settings_add_shortcut_hint" msgid="2265453012555060178">"Acceso directo opcional"</string>
+    <string name="user_dict_settings_add_shortcut_hint" msgid="2265453012555060178">"Introducir"</string>
     <string name="user_dict_settings_edit_dialog_title" msgid="3765774633869590352">"Editar palabra"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="6812255903472456302">"Editar"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="8142932447689461181">"Eliminar"</string>
diff --git a/java/res/values-et-rEE/strings-emoji-descriptions.xml b/java/res/values-et-rEE/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..499a04d
--- /dev/null
+++ b/java/res/values-et-rEE/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Autoriõiguse märk"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Registreeritud märk"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Kahekordne hüüumärk"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Hüüu- ja küsimärk"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Kaubamärgisümbol"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Teabeallikas"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Vasak-paremnool"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Üles-allanool"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Loodenool"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Kirdenool"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Kagunool"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Edelanool"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Konksuga vasaknool"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Konksuga paremnool"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Käekell"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Liivakell"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Must paremale suunatud topeltkolmnurk"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Must vasakule suunatud topeltkolmnurk"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Must ülessuunatud topeltkolmnurk"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Must allasuunatud topeltkolmnurk"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Äratuskell"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Voolava liivaga liivakell"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Ringis ladina suurtäht M"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Väike must ruut"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Väike valge ruut"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Must paremale suunatud kolmnurk"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Must vasakule suunatud kolmnurk"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Valge keskmine ruut"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Must keskmine ruut"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Valge keskmisest väiksem ruut"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Must keskmisest väiksem ruut"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Must päike kiirtega"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Pilv"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Must telefon"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Linnukesega märkeruut"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Vihmapiiskadega vihmavari"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Kuum jook"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Valge ülessuunatud nimetissõrm"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Valge naerunägu"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Jäär"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Sõnn"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Kaksikud"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Vähk"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Lõvi"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Neitsi"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Kaalud"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Skorpion"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Ambur"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Kaljukits"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Veevalaja"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Kalad"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Must poti"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Must risti"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Must ärtu"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Must ruutu"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Kuumaveeallikad"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Must universaalne taaskasutussümbol"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Ratastoolisümbol"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Ankur"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Hoiatusmärk"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Kõrgepingemärk"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Keskmine valge ring"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Keskmine must ring"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Jalgpall"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Pesapall"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Lumememm ilma lumeta"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Päike pilve taga"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Maokandja"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Sissepääsu pole"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Kirik"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Purskkaev"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Lipp augus"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Purjekas"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Telk"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Kütusepump"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Mustad käärid"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Valge paks linnukesemärk"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Lennuk"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Ümbrik"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Tõstetud rusikas"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Tõstetud käsi"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Võidukäsi"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Pliiats"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Must sulg"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Must linnukesemärk"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Paks korrutusmärk x"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Sädemed"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Kaheksaotsaline tärn"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Kaheksaotsaline must tärn"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Lumehelves"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Säde"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Rist"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Eitav rist ruudus"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Must ornament-küsimärk"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Valge ornament-küsimärk"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Valge ornament-hüüumärk"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Paks hüüumärk"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Paks must süda"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Raske plussmärk"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Paks miinusmärk"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Paks jagamismärk"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Must paremnool"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Aas"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Topeltaas"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Paremale suunatud, seejärel üles kaarduv nool"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Paremale suunatud, seejärel alla kaarduv nool"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Must vasaknool"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Must ülesnool"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Must allanool"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Must suur ruut"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Valge suur ruut"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Valge keskmine tärn"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Paks suur ring"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Lainetav kriips"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Osamuutmismärk"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Ringis idiogramm „õnnitlus”"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Ringis idiogramm „saladus”"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Mahjongi klots Punane draakon"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Mängukaart Must jokker"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Veretüüp A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Veretüüp B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Veretüüp O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Parkla"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Veretüüp AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"Ruudus „CL”"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Ruudus „cool”"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Ruudus „free”"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"Ruudus „ID”"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Ruudus „new”"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Ruudus „NG”"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Ruudus „OK”"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"Ruudus „SOS”"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Ruudus „up” koos hüüumärgiga"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Ruudus „vs”"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Ruudus katakana „siin”"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Ruudus katakana „teenus”"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Ruudus ideogramm „tasuta”"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Ruudus ideogramm „reserveeritud iste”"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Ruudus ideogramm „keeld”"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Ruudus ideogramm „vabad kohad”"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Ruudus ideogramm „heakskiit”"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Ruudus ideogramm „täiesti täis”"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Ruudus ideogramm „tasuline”"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Ruudus ideogramm „igakuine”"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Ruudus ideogramm „avaldus”"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Ruudus ideogramm „allahindlus”"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Ruudus ideogramm „tööaeg”"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Ringis ideogramm „eelis”"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Ringis ideogramm „tunnustus”"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Tsüklon"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Udune"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Kokkupandud vihmavari"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Tähine öö"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Päikesetõus mägede kohal"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Päikesetõus"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Linnavaade videvikus"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Päikeseloojang hoonete kohal"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Vikerkaar"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Öine sild"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Veelaine"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Vulkaan"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Linnutee"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Maakera: Euroopa ja Aafrika"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Maakera: Ameerikad"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Maakera: Aasia ja Austraalia"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Maakera meridiaanidega"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Noorkuu sümbol"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Kasvava poolkuu sümbol"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Poolkuu sümbol (esimene veerand)"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Kasvava kuu sümbol (kolmas veerand)"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Täiskuu sümbol"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Kahaneva kuu sümbol (kolmas veerand)"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Poolkuu sümbol (viimane veerand)"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Vanakuu sümbol"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Poolkuu"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Näoga noorkuu"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Näoga poolkuu (esimene veerand)"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Näoga vanakuu"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Näoga täiskuu"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Näoga päike"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Helendav täht"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Langev täht"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Kastan"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Võrse"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Igihaljas puu"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Lehtpuu"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palmipuu"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Kaktus"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulp"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Kirsiõis"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Roos"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Hibisk"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Päevalill"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Õis"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Maisitõlvik"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Riisitõlvik"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Taim"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Neljaleheline ristik"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Vahtraleht"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Mahalangenud leht"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Tuules lendlev leht"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Seen"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Tomat"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Baklažaan"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Viinamarjad"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Melon"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Arbuus"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Mandariin"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Sidrun"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Banaan"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ananass"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Punane õun"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Roheline õun"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Pirn"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Virsik"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Kirsid"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Maasikas"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburger"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Pitsalõik"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Lihaga kont"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Kanakoib"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Riisiküpsis"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Riisipall"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Keedetud riis"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Karri ja riis"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Aurav pott"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Spagetid"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Leib"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Friikartulid"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Röstitud bataat"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Sushi"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Praetud krevetid"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Spiraalne kalapirukas"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Pehme jäätis"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Kraabitud jää"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Jäätis"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Sõõrik"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Küpsis"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Šokolaadibatoon"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Kompvek"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Pulgakomm"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Puding"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Meepott"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Tordilõik"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Bento-karp"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Toidupott"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Küpsetamine"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Kahvel ja nuga"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Kõrvata teetass"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Sakepudel ja -pits"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Veiniklaas"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Kokteiliklaas"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Troopikajook"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Õllekapp"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Kokkulöödavad õllekapad"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Lutipudel"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Lipsuke"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Pakitud kingitus"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Sünnipäevatort"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Kõrvitsalatern"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Jõulupuu"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Jõuluvana"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Ilutulestik"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Säraküünal"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Õhupall"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Konfetid"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Konfetikuul"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Tanabatapuu"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Ristatud lipud"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Männikaunistus"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Jaapani nukud"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Tuulelipp"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Tuulekell"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Kuuvaatamise pidu"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Ranits"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Akadeemiline müts"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Karussellihobune"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Vaateratas"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Ameerika mäed"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Õng ja kala"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Mikrofon"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Filmikaamera"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Kino"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Kõrvaklapid"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Värvipalett"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Kõvakübar"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Tsirkusetelk"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Pilet"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Võtteklapp"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Näitekunst"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Videomäng"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Otsetabamus"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Mänguautomaat"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Piljard"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Täring"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Keegel"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Lillekaardid"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Noot"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Noodid"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saksofon"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Kitarr"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Klahvid"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Trompet"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Viiul"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Noodijooned"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Jooksusärk koos särbiga"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Tennisereket ja -pall"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Suusk ja suusasaabas"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Korvpall ja rõngas"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Ruudulipp"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Lumelaudur"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Jooksja"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Surfaja"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Karikas"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Kappav hobune"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Ameerika jalgpall"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Ragbi"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Ujuja"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Maja"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Maja koos aiaga"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Kontorihoone"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Jaapani postkontor"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Euroopa postkontor"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Haigla"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Pank"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Pangaautomaat"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Hotell"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Armuhotell"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Esmatarbekaupade kauplus"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Kool"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Kaubamaja"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Tehas"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Baarilatern"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Jaapani loss"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Euroopa loss"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Rott"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Hiir"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Härg"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Vesipühvel"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Lehm"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Leopard"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Küülik"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Kass"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Draakon"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Krokodill"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Vaal"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Tigu"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Madu"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Hobune"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Jäär"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Kits"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Lammas"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Ahv"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Kukk"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Kana"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Koer"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Siga"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Kult"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Elevant"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Kaheksajalg"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Spiraalne teokarp"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Putukas"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Sipelgas"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Mesilane"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Lepatriinu"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Kala"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Troopikakala"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Kerakala"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Kilpkonn"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Kooruv tibu"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Tibu"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Tibu küljelt"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Lind"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Pingviin"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koaala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Puudel"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Üksküürkaamel"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Kaksküürkaamel"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Delfiin"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Hiire nägu"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Lehma nägu"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Tiigri nägu"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Küüliku nägu"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Kassi nägu"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Draakoni nägu"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Vettpurskav vaal"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Hobuse nägu"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Ahvi nägu"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Koera nägu"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Sea nägu"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Konna nägu"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Hamstri nägu"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Hundi nägu"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Karu nägu"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Panda nägu"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Seanina"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Käpajäljed"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Silmad"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Kõrv"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Nina"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Suu"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Keel"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Valge ülessuunatud nimetissõrm"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Valge allasuunatud nimetisõrm"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Valge vasakule suunatud nimetisõrm"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Valge paremale suunatud nimetisõrm"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Rusikas käemärk"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Lehvitav käemärk"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Käemärk OK"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Ülessuunatud pöial"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Allasuunatud pöial"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Käeplaksutus"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Avatud käed"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Kroon"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Kübar"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Prillid"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Lips"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"T-särk"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Teksad"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Kleit"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikiinid"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Naisterõivad"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Mündikott"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Käekott"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Kott"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Meesteking"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Spordijalats"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Kõrge kontsaga king"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Naistesandaal"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Naistesaabas"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Jalajäljed"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Büsti siluett"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Büstisiluetid"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Poiss"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Tüdruk"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Mees"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Naine"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Perekond"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Mees ja naine käsikäes"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Kaks meest käsikäes"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Kaks naist käsikäes"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Politseinik"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Jänesekõrvadega naine"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Looriga pruut"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Blond inimene"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Murumütsiga mees"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Turbaniga mees"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Eakas mees"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Eakas naine"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Beebi"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Ehitustööline"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Printsess"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Jaapani ogre"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Jaapani goblin"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Vaim"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Inglilaps"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Tulnukas"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Tulnukkoletis"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Paharet"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Pealuu"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Infotöötaja"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Valvur"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Tantsija"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Huulepulk"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Küünelakk"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Näomassaaž"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Soeng"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Juuksurimärk"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Süstal"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Tablett"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Suudluse märk"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Armastuskiri"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Sõrmus"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Kalliskivi"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Suudlus"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Lillekimp"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Paar koos südamega"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Pulm"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Tuksuv süda"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Purunenud süda"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Kaks südant"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Sätendav süda"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Kasvav süda"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Noolega süda"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Sinine süda"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Roheline süda"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Kollane süda"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Lilla süda"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Paelaga süda"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Pöörlevad südamed"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Südamega kaunistus"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Täpiga teemandikuju"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Elektripirn"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Vihasümbol"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Pomm"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Magamissümbol"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Kokkupõrkesümbol"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Pritsiva higi sümbol"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Piisk"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Sööstmissümbol"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Kakahunnik"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Painutatud biitseps"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Pöörlemissümbol"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Jutumull"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Mõttemull"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Valge lill"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"100 punkti sümbol"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Rahakott"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Valuutavahetus"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Dollarimärk"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Krediitkaart"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Jeenitähisega rahatäht"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Dollaritähisega rahatäht"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Eurotähisega rahatäht"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Naelatähisega rahatäht"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Tiibadega raha"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Diagramm tõusva trendi ja jeenitähisega"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Iste"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Personaalarvuti"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Kohver"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Miniketas"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Flopiketas"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Optiline ketas"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Failikaust"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Avatud failikaust"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Kooldus leht"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Esiküljega leht"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Kalender"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Rebitav kalender"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Kaardiregister"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Tõusva trendiga diagramm"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Langeva trendiga diagramm"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Tulpdiagramm"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Kirjutusalus"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Knopka"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Ümara peaga knopka"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Kirjaklamber"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Sirge joonlaud"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Kolmnurkjoonlaud"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Järjehoidjakaardid"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Pearaamat"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Märkmik"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Dekoratiivse kaanega märkmik"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Suletud raamat"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Avatud raamat"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Roheline raamat"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Sinine raamat"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Oranž raamat"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Raamatud"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Nimesilt"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Paberirull"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Memo"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Telefonitoru"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Piipar"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Faksimasin"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Satelliitantenn"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Avalik valjuhääldi"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Ruupor"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Väljundkast"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Sisendkast"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Pakk"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Meilisümbol"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Saabuv ümbrik"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Ümbrik, mille kohal on allanool"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Suletud postkast koos langetatud lipuga"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Suletud postkast koos tõstetud lipuga"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Avatud postkast koos tõstetud lipuga"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Avatud postkast koos langetatud lipuga"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Postkast"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Postipasun"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Ajaleht"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Mobiiltelefon"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Mobiiiltelefon, millest vasakul on paremnool"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Värinarežiim"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Mobiiltelefon väljas"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Mobiiltelefonid pole lubatud"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Antennipostid"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Kaamera"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Videokaamera"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Televisioon"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Raadio"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Videokassett"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Keerdus paremnooled"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Päripäeva ringlevad parem- ja vasaknool"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Päripäeva ringlevad parem- ja vasaknool, mille peal on ringis number üks"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Päripäeva ringlevad üles- ja allanool"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Vastupäeva ringlevad üles- ja allanool"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Madal heledus"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Kõrge heledus"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Keelamiskriipsuga kõlar"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Kõlar"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Ühe helilainega kõlar"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Kolme helilainega kõlar"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Patarei"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Elektripistik"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Vasakule suunatud suurendusklaas"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Paremale suunatud suurendusklaas"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Lukk koos kirjutussulega"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Suletud lukk koos võtmega"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Võti"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Lukk"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Avatud lukk"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Kell"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Keelamiskriipsuga kell"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Järjehoidja"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Ahelasümbol"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Raadionupp"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Tagasinupp vasaknoolega"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"„End”, mille kohal on vasaknool"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"„On” koos hüüumärgiga, mille kohal on vasak-paremnool."</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"„Soon”, mille kohal on paremnool"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"„Top”, mille kohal on ülesnool"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Sümbol „alla 18 keelatud”"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Klahvimärk 10"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Ladina suurtähtede sisestussümbol"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Ladina väiketähtede sisestussümbol"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Numbrite sisestussümbol"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Sümbolite sisestussümbol"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Ladina tähtede sisestussümbol"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Tulekahju"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Elektritõrvik"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Mutrivõti"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Haamer"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Mutter ja polt"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Hocho"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Püstol"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Mikroskoop"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Teleskoop"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Kristallkuul"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Kuueotsaline tärn keskpunktiga"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Jaapani sümbol algaja kohta"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Kolmhargiembleem"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Must ruudukujuline nupp"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Valge ruudukujuline nupp"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Suur punane ring"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Suur sinine ring"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Suur oranž romb"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Suur sinine romb"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Väike oranž romb"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Väike sinine romb"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Ülessuunatud punane kolmnurk"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Allasuunatud punane kolmnurk"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Ülessuunatud väike punane kolmnurk"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Allasuunatud väike punane kolmnurk"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Kella numbrilaud: kell üks"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Kella numbrilaud: kell kaks"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Kella numbrilaud: kell kolm"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Kella numbrilaud: kell neli"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Kella numbrilaud: kell viis"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Kella numbrilaud: kell kuus"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Kella numbrilaud: kell seitse"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Kella numbrilaud: kell kaheksa"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Kella numbrilaud: kell üheksa"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Kella numbrilaud: kell kümme"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Kella numbrilaud: kell ükteist"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Kella numbrilaud: kell kaksteist"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Kella numbrilaud: kell pool kaks"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Kella numbrilaud: kell pool kolm"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Kella numbrilaud: kell pool neli"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Kella numbrilaud: kell pool viis"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Kella numbrilaud: kell pool kuus"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Kella numbrilaud: kell pool seitse"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Kella numbrilaud: kell pool kaheksa"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Kella numbrilaud: kell pool üheksa"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Kella numbrilaud: kell pool kümme"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Kella numbrilaud: kell pool üksteist"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Kella numbrilaud: kell pool kaksteist"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Kella numbrilaud: kell pool üks"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Fuji mägi"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Tokyo torn"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Vabadussammas"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Jaapani siluett"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moyai"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Naeratav nägu"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Naeratav nägu naerusilmadega"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Rõõmupisarates nägu"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Laia naeratusega nägu"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Laia naeratuse ja rõõmsate silmadega nägu"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Laia naeratuse ja külma higiga nägu"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Laia naeratuse ja kinnipigistatud silmadega nägu"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Naerunägu koos aupaistega"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Naerunägu koos sarvedega"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Silmapilgutav nägu"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Rõõmsate silmadega naerunägu"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Maitsvat toitu nautiv nägu"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Lõõgastunud nägu"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Südamekujuliste silmadega nägu"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Päikeseprillidega nägu"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Irvitav nägu"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Neutraalne nägu"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Ilmetu nägu"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Halvatujuline nägu"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Külma higiga nägu"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Mõtlik nägu"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Hämmingus nägu"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Segaduses nägu"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Suudlev nägu"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Õhusuudlust saatev nägu"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Naerusilmadega suudlev nägu"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Suletud silmadega suudlev nägu"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Väljaaetud keelega nägu"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Väljaaetud keelega silmapilgutav nägu"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Väljaaetud keele ja kinnipigistatud silmadega nägu"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Pettunud nägu"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Murelik nägu"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Vihane nägu"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Mossitav nägu"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Nuttev nägu"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Krimpsutav nägu"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Võidukas nägu"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Pettunud, kuid rahulik nägu"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Kulmukortsutav nägu lahtise suuga"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Ahastav nägu"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Hirmunud nägu"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Tüdinenud nägu"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Unine nägu"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Väsinud nägu"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Grimassitav nägu"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Valjult nuttev nägu"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Lahtise suuga nägu"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Vaikseks jäänud nägu"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Lahtise suu ja külma higiga nägu"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Hirmust karjuv nägu"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Üllatunud nägu"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Punastav nägu"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Magav nägu"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Uimane nägu"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Ilma suuta nägu"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Arstimaskiga nägu"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Naeratav kassinägu naerusilmadega"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Rõõmupisaratega kassinägu"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Lahtise suuga naeratav kassinägu"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Südamekujuliste silmadega naeratav kassinägu"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Virila naeratusega kassinägu"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Suletud silmadega naeratav kassinägu"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Mossitav kassinägu"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Nuttev kassinägu"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Tüdinud kassinägu"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Eitava žestiga nägu"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"OK-žestiga nägu"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Sügavalt kummardav inimene"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Silmipeitev ahv"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Kõrvupeitev ahv"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Suudpeitev ahv"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Üht kätt tõstev õnnelik inimene"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Mõlemat kätt hõiskeks tõstev inimene"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Kulmukortsutav inimene"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Mossitava näoga inimene"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Kokkupandud kätega inimene"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Rakett"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Helikopter"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Auruvedur"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Vagun"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Kiirrong"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Kuuljas kiirrong"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Rong"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Metroo"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Kergraudtee"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Jaam"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Tramm"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Trammivagun"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Buss"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Saabuv buss"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Trollibuss"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Bussipeatus"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Pisibuss"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Kiirabiauto"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Tuletõrjeauto"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Politseiauto"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Saabuv politseiauto"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Takso"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Saabuv takso"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Auto"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Saabuv auto"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Haagissuvila"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Kaubik"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Liigendveok"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Traktor"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Üherööpmeline raudtee"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Mägiraudtee"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Rippraudtee"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Mägiraudtee"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Õhutrammitee"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Laev"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Aerupaat"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Kiirpaat"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Horisontaalne valgusfoor"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Vertikaalne valgusfoor"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Ehitusmärgid"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Politseiauto pöörlev vilkur"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Kolmnurkne lipp postil"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Uks"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Sissepääs keelatud"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Suitsetamiskoha sümbol"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Suitsetamise keelamise sümbol"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Prügipaneku koha sümbol"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Prügi mahapanek keelatud"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Joogivee sümbol"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Mittejoogivee sümbol"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Jalgratas"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Jalgrattad pole lubatud"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Jalgrattur"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Mägijalgrattur"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Jalakäija"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Jalakäijad pole lubatud"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Teed ületavad lapsed"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Meestesümbol"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Naistesümbol"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Puhkeruum"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Beebisümbol"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Tualett"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"WC"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Dušš"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Vannituba"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Vann"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Passikontroll"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Toll"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Pagasi andmine"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Leitud esemed"</string>
+</resources>
diff --git a/java/res/values-et-rEE/strings-talkback-descriptions.xml b/java/res/values-et-rEE/strings-talkback-descriptions.xml
index b47df1b..ad57715 100644
--- a/java/res/values-et-rEE/strings-talkback-descriptions.xml
+++ b/java/res/values-et-rEE/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Teksti ei ole sisestatud"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> parandab sõna <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> järgmiselt: <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> teeb automaatse paranduse"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Soovitusi pole"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Tundmatu tähemärk"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Tõstuklahv"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Rohkem sümboleid"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Suurtäht I, ülapunkt"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Tundmatu sümbol"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Tundmatu emoji"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Igavlev nägu"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Piinlikkust tundev nägu"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Päikseprillidega nägu"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Üllatunud nägu"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Suudlev nägu"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Kulmu kortsutav nägu"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Alternatiivsed tähemärgid on saadaval"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Alternatiivsed tähemärgid eemaldatakse"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Alternatiivsed soovitused on saadaval"</string>
diff --git a/java/res/values-et-rEE/strings.xml b/java/res/values-et-rEE/strings.xml
index d57126d..9db7597 100644
--- a/java/res/values-et-rEE/strings.xml
+++ b/java/res/values-et-rEE/strings.xml
@@ -26,24 +26,30 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibreeri klahvivajutusel"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Heli klahvivajutusel"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Klahvivajutusel kuva hüpik"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Eelistused"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Kontod ja privaatsus"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Välimus ja paigutused"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Joonistusega sisestamine"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Tekstiparandus"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Täpsem"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Teema"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Luba kaheks jaotatud klaviatuur"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Sünkrooni Google\'i klaviatuur"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Sünkroonimine on sisse lülitatud"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Isikliku kataloogi sünkroonimine kõigis seadmetes"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Sünkrooni kohe"</string>
+    <!-- no translation found for clear_sync_data_title (8582001557037069154) -->
     <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Kustutab sünkroonitud andmed Google\'ist"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Teie sünkroonitud andmed kustutatakse pilvest. Kas olete kindel?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Kustuta"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Tühista"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Teie isiklik sõnastik sünkroonitakse ja varundatakse Google\'i serveritesse. Meie toodete parandamiseks võidakse koguda sõna esinemissageduse statistikat. Kogu teabe kogumine ja kasutamine toimub "<a href="https://www.google.com/policies/privacy">"Google\'i privaatsuseeskirjade"</a>" järgi."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Lisage selle funktsiooni lubamiseks seadmesse Google\'i konto"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Vaheta sisestusmeetodit"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Keelevahetuse võti hõlmab ka muid sisestusmeetodeid"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Keelevahetuse nupp"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Kuva, kui lubatud on mitu sisendkeelt"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Kuva lohistamisnäidik"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Tõstu- või sümboliklahvidelt lohistades anna visuaalselt märku"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Hüpiku loobumisviivitus"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Viivituseta"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Vaikeseade"</string>
@@ -62,9 +68,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Peamine sõnaraamat"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Kuva parandussoovitusi"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Kuva sisestamise ajal sõnasoovitusi"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Kuva alati"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Kuva vertikaalrežiimis"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Peida alati"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Blokeeri solvavad sõnad"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Ära soovita potentsiaals. solvavaid sõnu"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Automaatparandus"</string>
@@ -85,21 +88,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Häälesisendi klahv"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ühtegi häälsisendmeetodit pole lubatud. Kontrollige keele- ja sisendiseadeid."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Sisestusmeetodite seadistamine"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Sisestuskeeled"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Saatke tagasisidet"</string>
-    <string name="select_language" msgid="3693815588777926848">"Sisestuskeeled"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Keeled"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Abi ja tagasiside"</string>
+    <string name="select_language" msgid="5709487854987078367">"Keeled"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Salvestamiseks puudutage uuesti"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Salvestamiseks puudutage siin"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Sõnastik saadaval"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Klaviatuuri teema"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Konto vahetamine"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Ühtegi kontot pole valitud"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Praegu kasutatakse e-posti aadressi <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Tühista"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Logi välja"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Kasutatava konto valimine"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Inglise (UK)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Inglise (USA)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"hispaania (USA)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hindi-inglise"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Serbia (ladina)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Inglise (Ühendk.) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Inglise (USA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Hispaania (USA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hindi-inglise (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Serbia (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (traditsiooniline)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (kirillitsa)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ladina)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (kompaktne)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Keel puudub (tähestik)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Tähestik (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Tähestik (QWERTZ)"</string>
@@ -108,16 +122,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Tähestik (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Tähestik (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emotikon"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Klaviatuuriteema"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Kohandage sisendlaadid"</string>
     <string name="add_style" msgid="6163126614514489951">"Lisage laad"</string>
     <string name="add" msgid="8299699805688017798">"Lisa"</string>
@@ -129,14 +134,9 @@
     <string name="enable" msgid="5031294444630523247">"Luba"</string>
     <string name="not_now" msgid="6172462888202790482">"Mitte kohe"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Sama sisendstiil on juba olemas: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Pika klahvivajutuse viide"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Klahvivajutuse vibreerimise kestus"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Klahvivajutuse helitugevus"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Välise sõnastikufaili lugemine"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Kaustas Allalaadimised pole ühtegi sõnastikufaili"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Installitava sõnastikufaili valimine"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Kas soovite tõesti installida faili <xliff:g id="LANGUAGE_NAME">%s</xliff:g> keele jaoks?"</string>
-    <string name="error" msgid="8940763624668513648">"Ilmnes viga"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Pika klahvivajutuse viide"</string>
     <string name="button_default" msgid="3988017840431881491">"Vaikeväärtus"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Tere tulemast rakendusse <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"joonistusega sisestamisega"</string>
@@ -154,8 +154,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Nüüd saate rakendusega <xliff:g id="APPLICATION_NAME">%s</xliff:g> sisestada kõikides oma lemmikrakendustes."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Seadista lisakeeled"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Lõpetatud"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Kuva rakenduse ikoon"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Rakenduse ikooni kuvamine käivitajas"</string>
     <string name="app_name" msgid="6320102637491234792">"Sõnastikupakkuja"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Sõnastikupakkuja"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Sõnastikuteenus"</string>
diff --git a/java/res/values-eu-rES/strings-emoji-descriptions.xml b/java/res/values-eu-rES/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..49cf216
--- /dev/null
+++ b/java/res/values-eu-rES/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Copyright-ikurra"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Erregistratze-ikurra"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Bi harridura-ikur"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Harridura-ikurra eta galdera-ikurra"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Marka erregistratuaren ikurra"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Informazioaren ikurra"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Ezkerrera eta eskuinera gezia"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Gora eta behera gezia"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Ipar-mendebaldera gezia"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Ipar-ekialdera gezia"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Hego-ekialdera gezia"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Hego-mendebaldera gezia"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Ezkerrerantz gezia kakoarekin"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Eskuinerantz gezia kakoarekin"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Eskumuturreko erlojua"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Harea-erlojua"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Eskuinerantz begira dauden bi triangelu beltz"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Ezkerrerantz begira dauden bi triangelu beltz"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Gorantz begira dauden bi triangelu beltz"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Beherantz begira dauden bi triangelu beltz"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Iratzargailua"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Harea-erlojua eta harea erortzen"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"M letra larri latindarra zirkulu batean"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Karratu beltz txikia"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Karratu zuri txikia"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Triangelu beltza gorantz begira"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Triangelu beltza ezkerrerantz begira"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Karratu zuri ertaina"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Karratu beltz ertaina"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Karratu zuri txiki-ertaina"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Karratu beltz txiki-ertaina"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Eguzki beltza izpiekin"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Hodeia"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Telefono beltza"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Bozketa-koadroa hauta-markarekin"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Euritakoa euri-tantekin"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Edari beroa"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Hatz erakusle zuria altxatuta"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Aurpegi irribarretsu zuria"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Aharia"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Zezena"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Bikiak"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Karramarroa"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Lehoia"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Birjina"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Balantza"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Eskorpioia"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Arkularia"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Ureko ahuntza"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Akuario"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Arrainak"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Pika beltza kolorea"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Hirusta beltza kolorea"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Bihotz beltza kolorea"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Diamante beltza kolorea"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Ur termalak"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Birziklatzearen ikur beltz unibertsala"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Gurpildun aulkiaren ikurra"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Aingura"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Abisuaren ikurra"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Tentsio handiaren ikurra"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Zirkulu zuri ertaina"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Zirkulu beltz ertaina"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Futboleko baloia"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Beisboleko baloia"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Elurrezko panpina elurrik gabe"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Eguzkia hodeiaren atzean"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Ophiuchus"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Ez sartu"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Eliza"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Iturria"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Bandera zuloan"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Bela"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Kanpin-denda"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Erregai-bonba"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Artazi beltzak"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Hauta-marka lodia atzealde zuriarekin"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Hegazkina"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Gutun-azala"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Ukabila gora"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Eskua gora"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Garaipen-keinua eskuarekin"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Arkatza"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Luma-mutur beltza"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Hauta-marka lodia"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Biderketa X lodia"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Distirak"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Zortzi puntako izartxoa"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Zortzi puntako izar beltza"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Elur-maluta"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Distira"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Gurutzea"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Gurutzea betegarridun karratuan"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Galdera-ikur beltz apaingarria"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Galdera-ikur zuri apaingarria"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Harridura-ikur zuri apaingarria"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Harridura-ikur lodiaren ikurra"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Bihotz lodi beltza"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Gehi ikur lodia"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Ken ikur lodia"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Zatiketa ikur lodia"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Gezi beltza eskuinerantz"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Kiribila"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Kiribil bikoitza"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Gezia eskuinerantz begira eta gero gorantz biratuta"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Gezia eskuinerantz begira eta gero beherantz biratuta"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Gezi beltza ezkerrerantz"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Gezi beltza gorantz"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Gezi beltza beherantz"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Karratu beltz handia"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Karratu zuri handia"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Izar zuri ertaina"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Zirkulu lodi handia"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Marratxo uhinduna"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Parte-alternantziaren marka"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"\"Zorionak\" esan nahi duen hitza ideograma zirkulu batean"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"\"Sekretua\" esan nahi duen ideograma zirkulu batean"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Mahjong lauza: dragoi gorria"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Joker beltzaren karta"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"A motako odola"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"B motako odola"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"0 motako odola"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Aparkalekua"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"AB motako odola"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"\"CL\" hizkiak karratu batean"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"\"Cool\" hitza karratu batean"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"\"Free\" hitza karratu batean"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"\"ID\" hizkiak karratu batean"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"\"New\" hitza karratu batean"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"\"NG\" hizkiak karratu batean"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"\"OK\" hitza karratu batean"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"\"SOS\" hizkiak karratu batean"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"\"Up\" hitza harridura-markarekin karratu batean"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"\"vs\" hizkiak karratu batean"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Katakana silabarioko \"hemen\" esan nahi duen hitza karratu batean"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Katakana silabarioko \"zerbitzua\" esan nahi duen hitza karratu batean"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"\"Doan\" esan nahi duen ideograma karratu batean"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"\"Tokia erreserbatuta\" esan nahi duen ideograma karratu batean"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"\"Debekatuta\" esan nahi duen ideograma karratu batean"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"\"Toki librea\" esan nahi duen ideograma karratu batean"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"\"Onarpena\" esan nahi duen ideograma karratu batean"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"\"Guztiz beteta\" esan nahi duen ideograma karratu batean"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"\"Ordainduta\" esan nahi duen ideograma karratu batean"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"\"Hilero\" esan nahi duen ideograma karratu batean"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"\"Aplikazioa\" esan nahi duen ideograma karratu batean"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"\"Deskontua\" esan nahi duen ideograma karratu batean"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"\"Negozioetan\" esan nahi duen ideograma karratu batean"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"\"Abantaila\" esan nahi duen ideograma zirkulu batean"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"\"Onartu\" esan nahi duen ideograma zirkulu batean"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Zikloia"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Lainotsua"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Euritako itxia"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Gau izartsua"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Egunsentia mendi artean"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Egunsentia"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Hiria ilunabarrean"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Ilunsentia eraikinen artean"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Ortzadarra"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Zubia gauean"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Itsas olatua"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Sumendia"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Esne Bidea"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Mundua - Europa eta Afrika"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Mundua - Amerikak"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Mundua - Asia eta Australia"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Mundua meridianoekin"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Ilberriaren ikurra"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Ilgora hasi berriaren ikurra"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Ilgoraren ikurra"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Ia ilbetearen ikurra"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Ilbetearen ikurra"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Ilbehera hasi berriaren ikurra"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Ilbeheraren ikurra"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Ia ilberriaren ikurra"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Ilgora"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Ilberria aurpegiarekin"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Ilgora aurpegiarekin"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Ilbehera aurpegiarekin"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Ilbetea aurpegiarekin"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Eguzkia aurpegiarekin"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Izar distiratsua"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Izar iheskorra"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Gaztaina"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Kimua"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Hosto iraunkorreko zuhaitza"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Hosto erorkorreko zuhaitza"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palmondoa"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Kaktusa"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulipa"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Gereziondo-lorea"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Arrosa"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Hibiskoa"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Eguzki-lorea"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Lorea"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Arto-burua"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Arroz-burua"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Usain-belarra"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Lau hostoko hirusta"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Astigar-hostoa"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Eroritako hostoa"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Hostoa haizearekin hegaka"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Perretxikoa"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Tomatea"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Alberjinia"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Mahatsak"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Meloia"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Angurria"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Klementina"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Limoia"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Banana"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Anana"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Sagar gorria"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Sagar berdea"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Madaria"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Muxika"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Gereziak"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Marrubia"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hanburgesa"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Pizza zatia"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Haragia hezurrean"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Oilasko-izterra"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Arroz-gaileta"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Arroz-bola"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Arroz egosia"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Currya eta arroza"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Bol beroa"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Espagetiak"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Ogia"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Patata frijituak"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Batata egosia"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dangoa"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Odena"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Sushia"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Izkira frijitua"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Arrain-pastela zurrunbilo diseinuarekin"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Izozki txikia"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Izotz-edaria"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Izozkia"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Donuta"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Gaileta"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Txokolate-tableta"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Gozokia"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Piruleta"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Flana"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Ezti-potea"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Frutazko tarta"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Bento kutxa"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Janariz betetako eltzea"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Sukaldaritza"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Sardexka eta labana"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Kikara kirtenik gabe"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Sake-botila eta kopa"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Ardo-kopa"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Koktel-kopa"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Edari tropikala"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Garagardo-pitxerra"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Garagardo-pitxerrak topa egiten"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Biberoia"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Xingola"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Oparia paperean bilduta"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Urtebetetze-pastela"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Halloween-eko kuia-lanpara"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Gabonetako zuhaitza"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Bizarzuri"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Su artifizialak"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Bengala"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Puxika"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Konfeti-kanoia"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Konfeti-eltzea"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Tanabata zuhaitza"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Banderak gurutzatuta"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Pinu apaingarria"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Panpina japoniarrak"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Karpa-serpentina"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Haize-ezkila"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Ilargia ikusteko zeremonia"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Eskolarako bizkar-zorroa"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Graduazioko kapela"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Zaldiko-maldikoa"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Noria"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Errusiar mendia"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Kanabera eta arraina"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Mikrofonoa"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Bideo-kamera profesionala"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Zinema"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Aurikularra"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Paleta"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Kapela luzea"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Zirku-karpa"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Sarrera"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Klaketa"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Antzezpena"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Bideo-jokoa"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Itua"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Txanpon-makina"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Billarra"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Dadoa"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Boloak"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Lore-joko japoniarren kartak"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Musika-nota"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Hainbat musika-nota"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saxofoia"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Gitarra"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Musika-teklatua"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Tronpeta"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Biolina"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Pentagrama"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Korrika egiteko kamiseta, banda batekin"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Tenis-erraketa eta -pilota"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Eskia eta eski-bota"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Saskibaloiko baloia eta saskia"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Koadrodun bandera"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Snowboard-zalea"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Korrikalaria"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Surflaria"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Trofeoa"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Zaldi-lasterketa"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Futbol amerikarra"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Errugbia"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Igerilaria"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Etxea"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Etxea lorategiarekin"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Bulegoak"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Posta-bulego japoniarra"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Posta-bulego europarra"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Ospitalea"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Bankua"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Kutxazain automatikoa"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Hotela"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Maitasun-hotela"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Orotarikoen denda"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Eskola"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Saltoki handia"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Fabrika"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Izakaya lanpara"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Gaztelu japoniarra"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Gaztelu europarra"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Arratoia"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Sagua"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Idia"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Asiar bufaloa"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Behia"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Lehoinabarra"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Untxia"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Katua"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Dragoia"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Krokodiloa"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Balea"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Barraskiloa"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Sugea"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Zaldia"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Aharia"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Ahuntza"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Ardia"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Tximinoa"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Oilarra"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Oiloa"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Txakurra"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Txerria"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Basurdea"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Elefantea"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Olagarroa"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Itsas kurkuilua"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Zomorroa"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Inurria"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Erlea"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Marigorringoa"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Arraina"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Arrain tropikala"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Puxika-arraina"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Dortoka"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Txita arrautzatik irteten"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Txita"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Txita aurrera begira"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Txoria"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Pinguinoa"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Poodle txakurra"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Dromedarioa"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Gamelua"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Izurdea"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Sagu-aurpegia"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Behi-aurpegia"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Tigre-aurpegia"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Untxi-aurpegia"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Katu-aurpegia"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Dragoi-aurpegia"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Balea ura botatzen"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Zaldi-aurpegia"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Tximino-aurpegia"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Txakur-aurpegia"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Txerri-aurpegia"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Igel-aurpegia"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Hamster-aurpegia"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Otso-aurpegia"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Hartz-aurpegia"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Panda hartzaren aurpegia"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Txerri-muturra"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Atzapar-aztarnak"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Begiak"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Belarria"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Sudurra"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Ahoa"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Mihia"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Esku zuri baten atzeko aldea, hatz erakuslearekin gorantz seinalatzen duela"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Esku zuri baten atzeko aldea, hatz erakuslearekin beherantz seinalatzen duela"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Esku zuri baten atzeko aldea, hatz erakuslearekin ezkerrerantz seinalatzen duela"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Esku zuri baten atzeko aldea, hatz erakuslearekin eskuinerantz seinalatzen duela"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Ukabila"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Eskua agurtzen"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Ados keinua eskuarekin"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Erpuruak gora"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Erpuruak behera"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Txaloak"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Eskuak zabalik"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Koroa"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Emakumezkoen txanoa"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Betaurrekoak"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Gorbata eta alkandora"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Kamiseta"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Bakeroak"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Soinekoa"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimonoa"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikinia"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Emakumezkoen arropa"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Diru-zorroa"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Poltsa"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Eskuko poltsa"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Gizonezkoen zapata"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Kirol-zapatila"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Takoidun oinetakoa"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Emakumezkoen sandalia"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Emakumezkoen botak"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Oinatzak"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Bustoaren silueta"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Bustoen siluetak"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Mutila"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Neska"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Gizona"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Emakumea"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Familia"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Gizona eta emakumea, eskutik helduta"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Bi gizon, eskutik helduta"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Bi emakume, eskutik helduta"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Polizia"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Emakumea, untxi-belarriekin"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Emaztegaia, beloarekin"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Pertsona ilehoria"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Gizona, gua pi mao txanoarekin"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Gizona durbantearekin"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Adineko gizona"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Adineko emakumea"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Haurtxoa"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Eraikuntza-arloko langilea"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Printzesa"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Ogro japoniarra"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Iratxo japoniarra"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Mamua"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Aingerutxoa"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Estralurtarra"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Munstro estralurtarra"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Iratxoa"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Burezurra"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Informazio-guneko pertsona"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Guardia"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Dantzaria"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Ezpainetakoa"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Azazkaletako esmaltea"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Aurpegiko masajea"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Ile-mozketa"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Bizarginen zutoina"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Xiringa"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Pilula"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Musu-marka"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Maitasun-gutuna"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Eraztuna"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Harribitxia"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Musua"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Lore sorta"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Bikotea eta bihotza"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Ezkontza"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Bihotz taupadak"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Bihotz apurtua"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Bi bihotz"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Bihotz distiratsua"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Hazten den bihotza"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Bihotza geziarekin"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Bihotz urdina"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Bihotz berdea"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Bihotz horia"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Bihotz morea"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Bihotza zintarekin"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Bihotzak biraka"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Bihotz-apaingarria"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Diamante-forma eta puntua erdian"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Bonbilla elektrikoa"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Haserre-ikurra"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bonba"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Lotan ikurra"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Txoke-ikurra"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Izerdi-zipriztinen ikurra"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Tanta"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Korrikaldiaren ikurra"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Kaka"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Bizepsa markatuta"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Zorabioaren ikurra"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Hizketa-bunbuiloa"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Pentsamendu-bunbuiloa"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Lore zuria"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Ehun puntuen ikurra"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Diru-poltsa"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Moneta-trukaketa"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Dolarraren ikur lodia"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Kreditu-txartela"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Billetea yenaren ikurrarekin"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Billetea dolarraren ikurrarekin"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Billetea euroaren ikurrarekin"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Billetea libraren ikurrarekin"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Dirua hegoekin"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Goranzko joera duen diagrama eta yenaren ikurra"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Eserlekua"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Ordenagailu pertsonala"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Paper-zorroa"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Minidiskoa"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Disketea"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Disko optikoa"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVDa"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Fitxategien karpeta"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Fitxategi-karpeta irekia"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Orria kizkurrarekin"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Orria ahoz gora"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Egutegia"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Orriak kentzeko egutegia"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Txartel-aurkibidea"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Goranzko joerako diagrama"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Beheranzko joerako diagrama"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Barra-diagrama"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Paperak eusteko taula"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Txintxeta"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Txintxeta biribila"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Klipa"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Erregela"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Kartaboia"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Orri-markatzaileak"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Liburu nagusia"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Koadernoa"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Koadernoa, azal apainduarekin"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Liburua itxita"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Liburua zabalik"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Liburu berdea"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Liburu urdina"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Liburu laranja"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Liburuak"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Izenaren txartela"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Pergaminoa"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Txostena"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Telefonoaren heldulekua"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Bilagailua"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Fax-makina"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Satelite bidezko antena"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Eskuko bozgorailua"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Animatzeko bozgorailua"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Irteera-ontziaren erretilua"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Sarrera-ontziaren erretilua"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Paketea"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Mezu elektronikoaren ikurra"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Jasotako mezuaren gutun-azala"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Gutun-azala eta beheranzko gezia gainean"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Postontzia itxita eta bandera jaitsita"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Postontzia itxita eta bandera altxatuta"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Postontzia irekita eta bandera jaitsita"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Postontzia irekita eta bandera altxatuta"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Postontzia"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Tronpa"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Egunkaria"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Telefono mugikorra"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Telefono mugikorra eta geziak eskuinalderantz ezkerraldean"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Dardara modua"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Telefono mugikorra itzalita"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Telefono mugikorrik ez"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Antena barrekin"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Kamera"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Bideo-kamera"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Telebista"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Irratia"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Bideo-kasetea"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Elkar gurutzatzen diren geziak eskuinerantz"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Erlojuaren noranzkoan doazen zirkulu irekiko gezi horizontalak"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Erlojuaren noranzkoan doazen zirkulu irekiko gezi horizontalak, 1 zenbakiarekin"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Erlojuaren noranzkoan doazen zirkulu irekiko gezi bertikalak"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Erlojuaren noranzkoaren aurka doazen zirkulu irekiko gezi bertikalak"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Distira gutxi"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Distira asko"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Bozgorailua eta mutututa ikurra"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Bozgorailua"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Bozgorailua, soinu-uhin batekin"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Bozgorailua, hiru soinu-uhinekin"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Bateria"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Entxufe elektrikoa"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Lupa ezkerrerantz"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Lupa eskuinerantz"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Giltzarrapoa eta bolaluma"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Giltzarrapoa itxita eta giltza"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Giltza"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Giltzarrapoa"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Giltzarrapoa irekita"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Kanpaia"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Kanpaia, mutututa ikurrarekin"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Orri-markatzailea"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Estekaren ikurra"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Aukera-botoia"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"\"Back\" hitza eta ezkerrerantz gezia gainean"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"\"End\" hitza eta ezkerrerantz gezia gainean"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"\"On\" hitza harridura markarekin eta ezkerrerantz gezia gainean"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"\"Soon\" hitza eta eskuinerantz gezia gainean"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"\"Top\" hitza eta gorantz gezia gainean"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Hemezortzi urte beherakorik ez ikurra"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Hamar tekla"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Letra larri latindarren idazketa-ikurra"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Letra xehe latindarren idazketa-ikurra"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Zenbakien idazketa-ikurra"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Ikurrak idazteko ikurra"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Letra latindarren idazketa-ikurra"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Sua"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Linterna"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Giltza ingelesa"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Mailua"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Torlojua eta azkoina"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Labana"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Pistola"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Mikroskopioa"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Teleskopioa"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Kristalezko bola"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Sei puntako izarra eta erdian puntua"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Hasiberrien ikurra japoniarrez"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Hiruhortzekoa"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Botoi karratu beltza"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Botoi karratu zuria"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Zirkulu gorri handia"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Zirkulu urdin handia"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Diamante laranja handia"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Diamante urdin handia"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Diamante laranja txikia"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Diamante urdin txikia"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Gorantz begirako triangelu gorria"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Beherantz begirako triangelu gorria"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Gorantz begirako triangelu gorri txikia"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Beherantz begirako triangelu gorri txikia"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Erlojuan ordu batak"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Erlojuan ordu biak"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Erlojuan hirurak"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Erlojuan laurak"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Erlojuan bostak"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Erlojuan seiak"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Erlojuan zazpiak"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Erlojuan zortziak"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Erlojuan bederatziak"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Erlojuan hamarrak"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Erlojuan hamaikak"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Erlojuan hamabiak"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Erlojuan ordu bat eta erdiak"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Erlojuan ordu bi eta erdiak"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Erlojuan hiru eta erdiak"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Erlojuan lau eta erdiak"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Erlojuan bost eta erdiak"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Erlojuan sei eta erdiak"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Erlojuan zazpi eta erdiak"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Erlojuan zortzi eta erdiak"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Erlojuan bederatzi eta erdiak"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Erlojuan hamar eta erdiak"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Erlojuan hamaika eta erdiak"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Erlojuan hamabi eta erdiak"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Fuji mendia"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Tokioko dorrea"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Askatasunaren estatua"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Japonia mapan"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moaia"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Aurpegi irribarretsua"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Aurpegi irribarretsua begi irribarretsuekin"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Aurpegia poztasun-malkoekin"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Aurpegi irribarretsua, ahoa zabalik"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Aurpegi irribarretsua, ahora zabalik eta poztasun-begiekin"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Aurpegi irribarretsua, ahora zabalik eta izerdi-hotzeko tantarekin"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Aurpegi irribarretsua, ahoa zabalik eta begi itxi-itxiekin"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Aurpegi irribarretsua argi-koroarekin"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Aurpegi irribarretsua adarrekin"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Begi-keinua egiten ari den aurpegia"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Aurpegi irribarretsua poztasun-begiekin"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Janari gozoa dastatzearen aurpegia"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Lasaitasun-aurpegia"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Aurpegi irribarretsua bihotz formako begiekin"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Aurpegi irribarretsua betaurrekoekin"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Konplizitate irribarreko aurpegia"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Aurpegi neutroa"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Sentimendurik adierazten ez duen aurpegia"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Zerbait dibertigarria ez deneko aurpegia"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Aurpegia izerdi hotzeko tantarekin"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Aurpegi pentsakorra"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Ulertu ez izanaren aurpegia"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Nahasmendu-aurpegia"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Musu emateko aurpegia"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Aurpegia musua botatzen"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Musu emateko aurpegia poztasun-begiekin"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Musu emateko aurpegia begi itxiekin"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Aurpegia mihia aterata"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Aurpegia mihia aterata eta begi-keinua egiten"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Aurpegia mihia aterata eta begi itxi-itxiekin"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Desengainu-aurpegia"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Kezka-aurpegia"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Haserre-aurpegia"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Oso haserre-aurpegia"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Aurpegi negartia"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Pertseberantzia-aurpegia"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Aurpegia garaipen begiradarekin"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Desengainu- eta lasaitasun-aurpegia aldi berean"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Aurpegia bekokia zimurtuta eta ahoa zabalik"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Estutasun-aurpegia"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Beldur-aurpegia"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Aspertu-aurpegia"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Logura-aurpegia"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Neke-aurpegia"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Imintzio-aurpegia"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Aurpegia negar-malkotan"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Aurpegia ahoa zabalik"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Isiltasun-aurpegia"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Aurpegia ahoa zabalik eta izerdi hotzaren tantarekin"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Aurpegia izuz oihuka"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Harridura-aurpegia"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Aurpegi gorrituta"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Aurpegia lotan"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Zorabio-aurpegia"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Aurpegia ahorik gabe"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Aurpegia mediku-maskararekin"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Katu-aurpegi irribarretsua poztasun-begiekin"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Katu-aurpegia poztasun-malkoekin"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Katu-aurpegi irribarretsua, ahoa zabalik"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Katu-aurpegi irribarretsua bihotz-formako begiekin"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Katu-aurpegia irribarre ironikoarekin"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Musu emateko katu-aurpegia begi itxiekin"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Katu-aurpegia oso haserretuta"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Katu-aurpegia negarrez"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Katu-aurpegia aspertuta"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Keinu txarreko aurpegia"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Onarpen-keinuko aurpegia"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Pertsona makurtuta, agur egiten"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Tximinoa, gauza okerrak esaten ez dituena"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Tximinoa, gauza okerrak entzuten ez dituena"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Tximinoa, gaizki hitz egiten ez duena"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Pertsona alaia, eskua altxatuta"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Bostekoa bi eskuekin"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Pertsona bekoki ilunarekin"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Pertsona bat oso haserre"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Pertsona bat, eskuak batera jarrita"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Suziria"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Helikopteroa"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Lurrunezko trena"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Bagoia"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Abiadura handiko trena"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Abiadura handiko trena mutur borobilduarekin"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Trena"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Metroa"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Burdinbide arina"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Geltokia"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Tranbia"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Tranbia-bagoia"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Autobusa"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Autobusa heltzen"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Trolebusa"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Autobus-geltokia"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Minibusa"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Anbulantzia"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Suhiltzaileen kamioia"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Polizia-autoa"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Polizia-autoa heltzen"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taxia"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Taxia heltzen"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Ibilgailua"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Ibilgailua heltzen"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Aisialdirako ibilgailua"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Banaketa-kamioia"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Kamioi artikulatua"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Traktorea"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Errailbakarra"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Mendiko trena"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Tren esekia"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Mendiko teleferikoa"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Teleferikoa"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Itsasontzia"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Txalupa"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Motorrezko ontzia"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Semaforo horizontala"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Semaforo bertikala"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Obren ikurra"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Polizia-autoen argiak"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Hiruki formako bandera zutoin batean"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Atea"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Ez sartu ikurra"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Erretzearen ikurra"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Erretzea debekatuta ikurra"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Bota zaborra zaborrontzira ikurra"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Ez bota zaborrik ikurra"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Ur edangarria ikurra"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Ur ez edangarria ikurra"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Bizikleta"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Bizikletarik ez"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Txirrindularia"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Mendiko txirrindularia"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Oinezkoa"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Oinezkorik ez"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Umeak gurutzatzen"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Gizonezkoen ikurra"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Emakumezkoen ikurra"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Denentzako komuna"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Haurtxoaren ikurra"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Komuna"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"WC komuna"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Dutxa"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Bainua hartzea"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Bainuontzia"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Pasaporte-kontrola"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Aduana"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Ekipaje-erreklamazioa"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Ahaztutako maletak"</string>
+</resources>
diff --git a/java/res/values-eu-rES/strings-talkback-descriptions.xml b/java/res/values-eu-rES/strings-talkback-descriptions.xml
index 949195d..285cc7b 100644
--- a/java/res/values-eu-rES/strings-talkback-descriptions.xml
+++ b/java/res/values-eu-rES/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Ez da testurik idatzi"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> teklak \"<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>\" hitza \"<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>\" bihurtzen du"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> teklak zuzenketa automatikoa egiten du"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Ez dago iradokizunik"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Karaktere ezezaguna"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Maius"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Ikur gehiago"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"I maiuskula goi-puntuduna"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Ikur ezezaguna"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Emotikono ezezaguna"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Aurpegi aspertua"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Aurpegi lotsatua"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Eguzkitako betaurrekodun aurpegia"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Harritutako aurpegia"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Musu ematen ari den aurpegia"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Kopeta zimurtutako aurpegia"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Ordezko karaktereak erabilgarri daude"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Ordezko karaktereak baztertu dira"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Ordezko iradokizunak erabilgarri daude"</string>
diff --git a/java/res/values-eu-rES/strings.xml b/java/res/values-eu-rES/strings.xml
index 5db18a9..179ebf4 100644
--- a/java/res/values-eu-rES/strings.xml
+++ b/java/res/values-eu-rES/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Egin dar-dar sakatzean"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Egin soinua tekla sakatzean"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Handitu teklak, sakatzean"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Hobespenak"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Kontuak eta pribatutasuna"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Itxura eta diseinuak"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Keinu bidezko idazketa"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Testu-zuzenketa"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Ezarpen aurreratuak"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Gaia"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Gaitu teklatu banatua"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google teklatuaren sinkronizazioa"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Sinkronizazioa aktibatuta dago"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Izan hiztegi pertsonala sinkronizatuta gailu guztietan"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Sinkronizatu"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Ezabatu hodeiko datuak"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Sinkronizatutako datuak ezabatzen ditu Google-tik"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Datuak hodeitik ezabatuko dira. Ziur hori egin nahi duzula?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Ezabatu"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Utzi"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Hiztegi pertsonalizatua sinkronizatu egingo da eta Google zerbitzarietan gordeko da babeskopia gisa. Hitzak erabiltzeko maiztasunari buruzko estatistikak bil daitezke produktuak hobetzen laguntzeko. Informazioaren bilketak eta erabilerak "<a href="https://www.google.com/policies/privacy">"Google Pribatutasun-gidalerroak"</a>" gordeko ditu uneoro."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Eginbidea gaitzeko, gehitu Google kontua gailuan"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Aldatu idazketa-metodoa"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Hizkuntza aldatzeko teklak beste idazketa-metodoetarako ere balio du"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Hizkuntza aldatzeko tekla"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Erakutsi hainbat sarrera-hizkuntza gaituta daudenean"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Erakutsi lerratze-adierazlea"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Bistaratu ikusizko seinalea Maius edo Ikur tekletatik lerratzean"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Desagertzeko atzerapena"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Atzerapenik gabe"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Lehenetsia"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Hiztegi nagusia"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Erakutsi zuzenketa-iradokizunak"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Bistaratu iradokitako hitzak idatzi bitartean"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Erakutsi beti"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Erakutsi bertikalean"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Ezkutatu beti"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Blokeatu hitz iraingarriak"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Ez iradoki iraingarria izan daitekeen hitzik"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Zuzenketa automatikoa"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Ahots bidezko idazketaren tekla"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ez da ahots bidezko idazketa-metodorik gaitu. Egiaztatu Hizkuntza eta idazketa ataleko ezarpenak."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Konfiguratu idazketa-metodoak"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Idazketa-hizkuntzak"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Bidali oharrak"</string>
-    <string name="select_language" msgid="3693815588777926848">"Idazketa-hizkuntzak"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Hizkuntzak"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Laguntza eta iritziak"</string>
+    <string name="select_language" msgid="5709487854987078367">"Hizkuntzak"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Gordetzeko, ukitu berriro"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Gordetzeko, ukitu hau"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Hiztegia erabilgarri"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Teklatuaren gaia"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Aldatu kontuz"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Ez da konturik hautatu"</string>
+    <string name="account_selected" msgid="2846876462199625974">"<xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g> helbidea ari zara erabiltzen"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"Ados"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Utzi"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Amaitu saioa"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Hautatu erabili nahi duzun kontua"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Ingelesa (Erresuma Batua)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Ingelesa (AEB)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Gaztelania (AEB)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglisha"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Serbiarra (latindarra)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Ingelesa (Erresuma Batua) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Ingelesa (AEB) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Gaztelania (AEB) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglisha (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Serbiarra (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tradizionala)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (zirilikoa)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (latindarra)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (trinkoa)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Ez dago hizkuntzarik (alfabetoa)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabetoa (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabetoa (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabetoa (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabetoa (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emotikonoak"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Teklatuaren gaia"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Idazketa-estilo pertsonalizatuak"</string>
     <string name="add_style" msgid="6163126614514489951">"Gehitu estiloa"</string>
     <string name="add" msgid="8299699805688017798">"Gehitu"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Gaitu"</string>
     <string name="not_now" msgid="6172462888202790482">"Orain ez"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Idazketa-estilo hori badago lehendik ere: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Tekla luze sakatzearen atzerapena"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Tekla sakatzearen dardararen iraupena"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Tekla sakatzearen bolumena"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Irakurri kanpoko hiztegi-fitxategia"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Ez dago hiztegi-fitxategirik Deskargak karpetan"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Hautatu hiztegi-fitxategi bat instalatzeko"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Fitxategi hau <xliff:g id="LANGUAGE_NAME">%s</xliff:g> hizkuntzarako instalatu nahi duzu?"</string>
-    <string name="error" msgid="8940763624668513648">"Errore bat gertatu da"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Tekla luze sakatzearen atzerapena"</string>
     <string name="button_default" msgid="3988017840431881491">"Lehenetsia"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Ongi etorri <xliff:g id="APPLICATION_NAME">%s</xliff:g> aplikaziora"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"Keinu bidezko idazketarekin"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Gogokoen dituzun aplikazioetan idatz dezakezu dagoeneko <xliff:g id="APPLICATION_NAME">%s</xliff:g> erabilita."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Konfiguratu hizkuntza gehigarriak"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Amaituta"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Erakutsi aplikazioaren ikonoa"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Bistaratu aplikazioaren ikonoa abiarazlean"</string>
     <string name="app_name" msgid="6320102637491234792">"Hiztegi-hornitzailea"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Hiztegi-hornitzailea"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Hiztegi-zerbitzua"</string>
diff --git a/java/res/values-fa/strings-emoji-descriptions.xml b/java/res/values-fa/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..e10689d
--- /dev/null
+++ b/java/res/values-fa/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"علامت حق نسخه‌برداری"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"علامت ثبت شده"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"دو علامت تعجب"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"علامت تعجب و سؤال"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"علامت تجاری"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"منبع اطلاعات"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"پیکان چپ راست"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"پیکان بالا پایین"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"پیکان شمال غرب"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"پیکان شمال شرق"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"پیکان جنوب شرق"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"پیکان جنوب غرب"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"پیکان سمت چپ با قلاب"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"پیکان سمت راست با قلاب"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"ساعت مچی"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"ساعت شنی"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"دو مثلث سیاه به سمت راست"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"دو مثلث سیاه به سمت چپ"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"دو مثلث سیاه به سمت بالا"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"دو مثلث سیاه به سمت پایین"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"ساعت زنگ‌دار"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"ساعت شنی با شن‌های در جریان"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"‏حرف بزرگ M داخل دایره"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"مربع کوچک سیاه"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"مربع کوچک سفید"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"مثلث سیاه به سمت راست"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"مثلث سیاه به سمت چپ"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"مربع متوسط سفید"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"مربع متوسط سیاه"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"مربع کوچک متوسط سفید"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"مربع کوچک متوسط سیاه"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"خورشید سیاه با اشعه"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"ابر"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"تلفن سیاه"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"جعبه نظردهی علامت‌دار"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"چتر با قطرات باران"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"نوشیدنی گرم"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"انگشت اشاره سفید به سمت بالا"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"صورتک سفید خندان"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"قوچ"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"گاو"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"دوقلو"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"خرچنگ"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"شیر"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"سنبله"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"ترازو"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"عقرب"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"کمان‌دار"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"بزغاله"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"دلو"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"ماهی"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"ورق پیک سیاه"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"ورق گیشنیز سیاه"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"ورق دل سیاه"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"ورق خشت سیاه"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"چشمه‌های آب داغ"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"نماد سیاه جهانی بازیافت"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"نماد صندلی چرخ‌دار"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"لنگر"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"علامت خطر"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"علامت ولتاژ بالا"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"دایره متوسط سفید"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"دایره متوسط سیاه"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"توپ فوتبال"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"توپ بیسبال"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"آدم‌برفی بدون برف"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"خورشید پشت ابر"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"نشان مار اَفسای"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"ورود ممنوع"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"کلیسا"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"فواره"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"پرچم گلف"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"قایق بادبانی"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"چادر"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"پمپ بنزین"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"قیچی سیاه"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"تیک بزرگ سفید"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"هواپیما"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"پاکت نامه"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"مشت بالا آمده"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"دست بالا آمده"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"علامت پیروزی"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"مداد"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"نوک قلم مشکی"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"تیک بزرگ"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"علامت ضرب بزرگ"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"ستاره درخشان"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"ستاره هشت شاخه"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"ستاره هشت شاخه سیاه"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"دانه برف"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"ستاره درخشان"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"علامت ضربدر"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"علامت ضربدر در مربع منفی"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"علامت سؤال سیاه تزئینی"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"علامت سؤال سفید تزئینی"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"علامت تعجب سفید تزئینی"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"نماد علامت تعجب بزرگ"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"قلب سیاه سنگین"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"علامت مثبت بزرگ"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"علامت منفی بزرگ"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"علامت تقسیم بزرگ"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"پیکان سیاه به سمت راست"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"حلقه پیچ‌دار"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"حلقه با دو پیچ"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"پیکان منحنی به سمت راست و سپس با پیچ به سمت بالا"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"پیکان منحنی به سمت راست و سپس با پیچ به سمت پایین"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"پیکان سیاه به سمت چپ"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"پیکان سیاه به سمت بالا"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"پیکان سیاه به سمت پایین"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"مربع بزرگ سیاه"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"مربع بزرگ سفید"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"ستاره متوسط سفید"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"دایره بزرگ سفید"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"خط موج‌دار"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"علامت تغییر جزئی"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"علامت تصویری تبریک داخل دایره"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"علامت تصویری اسرار داخل دایره"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"اژدهای قرمز کاشی مهجونگ"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"ورق جوکر سیاه"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"‏گروه خونی A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"‏گروه خونی B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"‏گروه خونی O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"محوطه پارکینگ"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"‏گروه خونی AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"‏CL داخل مربع"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"‏Cool داخل مربع"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"‏Free داخل مربع"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"‏ID داخل مربع"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"‏new داخل مربع"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"‏N G داخل مربع"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"‏OK داخل مربع"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"‏SOS داخل مربع"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"‏up با علامت تعجب داخل مربع"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"‏vs داخل مربع"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"حروف کاتاکانای کلمه اینجا داخل مربع"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"حروف کاتاکانای کلمه سرویس داخل مربع"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"علامت تصویری بدون هزینه داخل مربع"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"علامت صندلی رزرو شده داخل مربع"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"علامت تصویری ممنوع داخل مربع"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"علامت تصویری جای خالی داخل مربع"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"علامت تصویری پذیرش داخل مربع"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"علامت تصویری اشغال کامل داخل مربع"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"علامت تصویری پرداخت شده داخل مربع"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"علامت تصویری ماهانه داخل مربع"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"علامت تصویری درخواست داخل مربع"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"علامت تصویری تخفیف داخل مربع"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"علامت تصویری مشغول کسب و کار داخل مربع"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"علامت تصویری مزیت داخل دایره"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"علامت تصویری پذیرش داخل دایره"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"گردباد"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"مه‌آلود"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"چتر بسته شده"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"شب پرستاره"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"طلوع خورشید بالای کوه‌ها"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"طلوع خورشید"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"منظره شهر هنگام غروب"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"غروب خورشید بالای ساختمان‌ها"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"رنگین‌کمان"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"منظره پل در شب"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"امواج آب"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"آتش‌فشان"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"راه شیری"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"کره زمین اروپا-آفریقا"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"کره زمین قاره آمریکا"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"کره زمین آسیا-استرالیا"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"کره با نصف النهارها"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"نماد هلال ماه"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"نماد هلال ماه فزاینده"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"نماد ربع اول ماه"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"نماد هلال ماه برآمده فزاینده"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"نماد ماه کامل"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"نماد هلال ماه برآمده کاهنده"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"نماد ربع ماه آخر"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"نماد هلال ماه کاهنده"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"هلال ماه"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"ماه نو با چهره"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"ربع اول ماه با چهره"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"ربع آخر ماه با چهره"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"ماه کامل با چهره"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"خورشید با چهره"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"ستاره درخشان"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"شهاب سنگ"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"شاه بلوط"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"جوانه"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"درخت همیشه سبز"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"درخت پاییزی"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"درخت نخل"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"کاکتوس"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"گل لاله"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"شکوفه‌های گیلاس"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"گل رز"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"گل ختمی ژاپنی"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"گل آفتابگردان"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"شکوفه"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"خوشه ذرت"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"خوشه برنج"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"علف"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"شبدر چهاربرگ"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"برگ افرا"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"برگ افتاده"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"برگ‌های لرزان در باد"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"قارچ"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"گوجه‌فرنگی"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"بادمجان"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"انگور"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"خربزه"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"هندوانه"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"نارنگی"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"لیمو"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"موز"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"آناناس"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"سیب قرمز"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"سیب سبز"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"گلابی"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"هلو"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"گیلاس"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"توت‌فرنگی"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"همبرگر"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"قاچ پیتزا"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"گوشت با استخوان"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"ران مرغ"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"کراکر برنج"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"کوفته برنجی"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"برنج پخته شده"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"کاری و برنج"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"کاسه بخارپز"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"اسپاگتی"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"نان"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"سیب‌زمینی سرخ کرده"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"سیب‌زمینی شیرین برشته"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"دانگو"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"اودن"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"سوشی"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"میگو سوخاری"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"کیک ماهی با طرح چرخشی"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"بستنی نرم"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"بستنی یخی"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"بستنی"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"دونات"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"کلوچه"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"تخته شکلات"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"آبنبات"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"آب‌نبات چوبی"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"کاستارد"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"ظرف عسل"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"کیک روغنی"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"جعبه سوشی بنتو"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"قابلمه غذا"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"آشپزی"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"چاقو و چنگال"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"فنجان چای بدون دسته"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"بطری و پیاله شراب برنج"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"گیلاس شراب"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"گیلاس کوکتل"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"نوشیدنی استوایی"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"لیوان آبجو"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"به هم خوردن لیوان‌های آبجو"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"پستانک بچه"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"روبان"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"هدیه کادو شده"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"کیک تولد"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"کدوی فانوسی"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"درخت کریسمس"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"بابانوئل"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"آتش‌بازی"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"آتش‌بازی جرقه‌دار"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"بالون"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"پارتی پوپر"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"توپ آبنباتی"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"درخت تاناباتا"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"پرچم‌های ضربدری"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"تزئین درخت کاج"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"عروسک‌های ژاپنی"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"پرچم ماهی‌های کپور"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"سوت سوتک بادی"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"جشن تماشای ماه"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"کیف مدرسه"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"کلاه فارغ‌التحصیلی"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"اسب چرخ و فلک"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"چرخ و فلک"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"رولرکوستر"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"چوب ماهیگیری و ماهی"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"میکروفون"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"دوربین فیلم"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"سینما"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"هدفون"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"پالت نقاشی"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"کلاه مردانه استوانه‌ای"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"چادر سیرک"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"بلیت"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"کلاکت"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"هنرهای نمایشی"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"بازی ویدیویی"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"ضربه مستقیم"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"ماشین پولی"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"بیلیارد"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"تاس بازی"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"بولینگ"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"گل ورق بازی"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"نت موسیقی"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"نت‌های چندگانه موسیقی"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"ساکسوفون"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"گیتار"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"کی‌بورد موسیقی"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"ترومپت"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"ویولون"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"نت موسیقی"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"تی‌شرت دو با حمایل"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"راکت و توپ تنیس"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"اسکی و کفش اسکی"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"بسکتبال و حلقه"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"پرچم شطرنجی"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"اسنوبورد سوار"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"دونده"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"موج‌سوار"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"جام"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"مسابقه اسب‌سواری"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"فوتبال آمریکایی"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"فوتبال راگبی"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"شناگر"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"ساختمان خانه"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"خانه با باغ"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"ساختمان اداره"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"اداره پست ژاپنی"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"اداره پست اروپایی"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"بیمارستان"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"بانک"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"دستگاه خودپرداز"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"هتل"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"هتل عشاق"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"خواروبار فروشی"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"مدرسه"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"فروشگاه زنجیره‌ای"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"کارخانه"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"فانوس ژاپنی"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"قلعه ژاپنی"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"قلعه اروپایی"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"موش صحرایی"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"موش"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"گاو"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"بوفالوی آبی"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"گاو"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"پلنگ"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"خرگوش"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"گربه"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"اژدها"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"تمساح"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"نهنگ"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"حلزون"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"مار"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"اسب"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"قوچ"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"بز"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"گوسفند"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"میمون"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"خروس"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"مرغ"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"سگ"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"خوک"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"گراز وحشی"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"فیل"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"اختاپوس"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"صدف مارپیچ"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"حشره"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"مورچه"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"زنبور عسل"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"کفشدوزک"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"ماهی"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"ماهی استوایی"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"ماهی بادکنکی"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"لاک‌پشت"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"جوجه در حال بیرون آمدن از تخم"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"جوجه"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"جوجه از رو به رو"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"پرنده"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"پنگوئن"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"کوآلا"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"سگ پشمالو"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"شتر یک‌کوهانه"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"شتر دوکوهانه"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"دولفین"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"صورت موش"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"صورت گاو"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"صورت ببر"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"صورت خرگوش"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"صورت گربه"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"صورت اژدها"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"نهنگ در حال آب پاشیدن"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"صورت اسب"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"صورت میمون"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"صورت سگ"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"صورت خوک"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"صورت قورباغه"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"صورت همستر"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"صورت گرگ"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"صورت خرس"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"صورت پاندا"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"بینی خوک"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"اثر پنجه"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"چشم‌ها"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"گوش"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"بینی"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"دهان"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"زبان"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"اشاره به بالا با دست"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"اشاره به پایین با دست"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"اشاره به چپ با دست"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"اشاره به راست با دست"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"علامت دست مشت شده"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"علامت دست درحال خداحافظی"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"علامت دست تأیید"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"علامت شصت به بالا"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"علامت شصت به پایین"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"علامت در حال دست زدن"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"علامت دو دست باز"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"تاج"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"کلاه زنانه"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"عینک"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"کراوات"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"تی‌شرت"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"شلوار جین"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"پیراهن"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"کیمونو"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"بیکینی"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"لباس زنانه"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"کیف زنانه"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"کیف دستی"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"کیف پارچه‌ای"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"کفش مردانه"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"کفش ورزشی"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"کفش پاشنه بلند"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"صندل زنانه"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"چکمه زنانه"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"رد پا"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"سایه سر و شانه"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"سایه‌های سر و شانه"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"پسر"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"دختر"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"مرد"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"زن"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"خانواده"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"مرد و زن دست در دست هم"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"دو مرد دست در دست هم"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"دو زن دست در دست هم"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"مأمور پلیس"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"زن با گوش‌های خرگوشی"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"عروس با تور"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"شخصی با موهای بلوند"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"مرد با کلاه ژاپنی"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"مرد با عمامه"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"مرد پیر"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"زن پیر"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"کودک"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"کارگر ساختمان"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"شاهزاده خانم"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"غول ژاپنی"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"جن ژاپنی"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"روح"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"فرشته کودک"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"بیگانه فرازمینی"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"هیولای بیگانه"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"شیطانک"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"جمجمه"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"کارمند میز اطلاعات"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"نگهبان"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"رقصنده"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"رژ لب"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"لاک ناخن"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"ماساژ صورت"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"کوتاه کردن مو"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"چرخه آرایشگری"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"سرنگ"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"قرص"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"علامت بوسه"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"نامه عاشقانه"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"حلقه"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"سنگ‌های قیمتی"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"بوسه"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"دسته گل"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"زوج با قلب"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"ازدواج"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"قلب تپنده"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"قلب شکسته"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"دو قلب"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"قلب درخشنده"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"قلب بزرگ‌شونده"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"قلب با پیکان"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"قلب آبی"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"قلب سبز"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"قلب زرد"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"قلب بنفش"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"قلب با روبان"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"قلب‌های گردان"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"تزئین قلب"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"شکل الماس با یک نقطه در داخل آن"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"لامپ برق"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"نماد خشم"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"بمب"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"نماد خواب"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"نماد برخورد"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"نماد ترشح عرق"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"قطره"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"نماد خط تیره"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"توده مدفوع"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"بازوی پهلوانی"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"نماد سرگیجه"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"بالون گفتگو"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"بالون تفکر"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"گل سفید"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"نماد صد امتیاز"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"کیف پول"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"تبدیل ارز"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"نماد دلار زیاد"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"کارت اعتباری"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"اسکناس با علامت ین"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"اسکناس با علامت دلار"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"اسکناس با علامت یورو"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"اسکناس با علامت پوند"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"پول بالدار"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"نمودار با روند رو به بالا و علامت ین"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"صندلی"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"رایانه شخصی"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"سامسونت"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"مینی دیسک"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"فلاپی دیسک"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"دیسک نوری"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"دی وی دی"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"پوشه فایل"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"باز کردن پوشه فایل"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"صفحه با تاخوردگی"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"صفحه رو به بالا"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"تقویم"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"تقویم پاره شده"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"کارت اطلاعات"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"نمودار با روند رو به بالا"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"نمودار با روند رو به پایین"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"نمودار میله‌ای"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"تخته رسم گیره‌دار"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"پین"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"سنجاق ته‌گرد"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"گیره کاغذ"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"خط‌کش"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"گونیا"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"برچسب‌های علامت‌گذاری"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"زونکن"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"دفترچه"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"دفترچه با جلد تزئینی"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"کتاب بسته"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"کتاب باز"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"کتاب سبز"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"کتاب آبی"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"کتاب نارنجی"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"کتاب‌ها"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"نشان نام"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"پیمایش"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"یادداشت"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"گوشی تلفن"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"پیجر"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"دستگاه نمابر"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"آنتن ماهواره"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"بلندگوی جارچی"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"بلندگوی تشویق‌کننده"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"سینی صندوق ارسال"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"سینی صندوق ورودی"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"بسته‌بندی"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"نماد ایمیل"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"پاکت نامه ورودی"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"پاکت نامه با پیکان‌های رو به پایین در بالا"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"صندوق پستی بسته شده با پرچم پایین آمده"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"صندوق پستی بسته شده با پرچم بالا آمده"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"صندوق پستی باز با پرچم بالا آمده"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"صندوق پستی باز با پرچم پایین آمده"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"صندوق پستی"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"بوق پستی"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"روزنامه"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"تلفن همراه"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"تلفن همراه با پیکان رو به راست در سمت چپ"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"حالت لرزش"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"تلفن همراه خاموش"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"تلفن همراه خاموش"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"آنتن با میله"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"دوربین"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"دوربین ویدیویی"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"تلویزیون"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"رادیو"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"نوار ویدیویی"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"پیکان‌های خم شده به سمت راست"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"پیکان‌های دایره‌ای شکل باز به سمت راست و چپ در جهت عقربه‌های ساعت"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"پیکان‌های دایره‌ای شکل باز به سمت راست و چپ در جهت عقربه‌های ساعت با یک پیکان دایره‌‌ای شکل روی آنها"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"پیکان‌های دایره‌ای شکل باز به سمت بالا و پایین در جهت عقربه‌های ساعت"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"پیکان‌های دایره‌ای شکل باز به سمت بالا و پایین در خلاف جهت عقربه‌های ساعت"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"علامت درخشندگی کم"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"علامت درخشندگی زیاد"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"بلندگو با علامت قطع صدا"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"بلندگو"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"بلندگو با یک موج صدا"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"بلندگو با سه موج صدا"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"باتری"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"دوشاخه برق"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"ذره‌بین متمایل به چپ"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"ذره‌بین متمایل به راست"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"قفل با خودنویس"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"قفل بسته با کلید"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"کلید"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"قفل"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"قفل باز"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"زنگ"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"زنگ با علامت قطع صدا"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"نشانک"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"نماد پیوند"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"دکمه رادیو"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"‏Back با پیکان سمت چپ در بالا"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"‏End با پیکان سمت چپ در بالا"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"‏ON با علامت تعجب و پیکان چپ و راست در بالا"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"‏Soon با پیکان سمت راست در بالا"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"‏Top با پیکان سمت بالا"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"نماد بالای هجده سال"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"کلید عدد ۱۰"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"نماد ورودی برای حروف بزرگ لاتین"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"نماد ورودی برای حروف کوچک لاتین"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"نماد ورودی برای اعداد"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"نماد ورودی برای نمادها"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"نماد ورودی برای حروف لاتین"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"آتش"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"چراغ قوه"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"آچار فرانسه"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"چکش"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"پیچ و مهره"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"چاقوی آشپزخانه"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"تپانچه"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"میکروسکوپ"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"تلسکوپ"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"گوی کریستال"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"ستاره شش پر با نقطه وسط"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"نماد ژاپنی برای تازه‌کار"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"علامت نیزه سه شاخه"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"دکمه مربع مشکی"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"دکمه مربع سفید"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"دایره بزرگ قرمز"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"دایره بزرگ آبی"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"الماس بزرگ نارنجی"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"الماس بزرگ آبی"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"الماس کوچک نارنجی"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"الماس کوچک آبی"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"مثلث قرمز رو به بالا"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"مثلث قرمز رو به پایین"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"مثلث کوچک قرمز رو به بالا"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"مثلث کوچک قرمز رو به پایین"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"ساعت نشان‌دهنده ساعت یک"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"ساعت نشان‌دهنده ساعت دو"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"ساعت نشان‌دهنده ساعت سه"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"ساعت نشان‌دهنده ساعت چهار"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"ساعت نشان‌دهنده ساعت پنج"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"ساعت نشان‌دهنده ساعت شش"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"ساعت نشان‌دهنده ساعت هفت"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"ساعت نشان‌دهنده ساعت هشت"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"ساعت نشان‌دهنده ساعت نه"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"ساعت نشان‌دهنده ساعت ده"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"ساعت نشان‌دهنده ساعت یازده"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"ساعت نشان‌دهنده ساعت دوازده"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"ساعت نشان‌دهنده ساعت یک و نیم"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"ساعت نشان‌دهنده ساعت دو و نیم"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"ساعت نشان‌دهنده ساعت سه و نیم"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"ساعت نشان‌دهنده ساعت چهار و نیم"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"ساعت نشان‌دهنده ساعت پنج و نیم"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"ساعت نشان‌دهنده ساعت شش و نیم"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"ساعت نشان‌دهنده ساعت هفت و نیم"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"ساعت نشان‌دهنده ساعت هشت و نیم"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"ساعت نشان‌دهنده ساعت نه و نیم"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"ساعت نشان‌دهنده ساعت ده و نیم"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"ساعت نشان‌دهنده ساعت یازده و نیم"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"ساعت نشان‌دهنده ساعت دوازده و نیم"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"کوه فوجی"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"برج توکیو"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"مجسمه آزادی"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"نقشه سایه‌ای ژاپن"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"مجسمه مویای"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"صورتک با پوزخند"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"صورتک با پوزخند و چشمان خندان"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"صورتک با اشک خوشحالی"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"صورتک خندان با دهان باز"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"صورتک خندان با دهان باز و چشمان خندان"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"صورتک خندان با دهان باز و عرق سرد"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"صورتک خندان با دهان باز و چشمان بسته"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"صورتک خندان با هاله نور"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"صورتک خندان با شاخ"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"صورتک چشمک‌زن"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"صورتک خندان با چشمان خندان"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"صورتک در حال لذت بردن از غذای خوشمزه"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"صورتک آسوده‌خاطر"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"صورتک خندان با چشمان قلب شکل"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"صورتک خندان با عینک دودی"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"صورتک پوزخندزن"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"صورتک بی‌تفاوت"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"صورتک بی‌احساس"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"صورتک کسل شده"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"صورتک با عرق سرد"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"صورتک متفکر"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"صورتک گیج"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"صورتک سردرگم"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"صورتک بوسه‌زن"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"صورت درحال پرتاب بوسه"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"صورتک بوسه‌زن با چشمان خندان"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"صورتک خندان با چشمان بسته"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"صورتک با زبان بیرون آمده"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"صورتک با زبان بیرون آمده و چشمک‌زن"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"صورتک با زبان بیرون آمده و چشمان بسته"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"صورتک ناامید"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"صورتک نگران"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"صورتک عصبانی"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"صورتک با لب‌های آویزان"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"صورتک گریان"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"صورتک مصمم"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"صورتک با حالت پیروزمندانه"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"صورتک ناامید اما آسوده خاطر"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"صورتک اخمو با دهان باز"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"صورتک نگران"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"صورتک ترسو"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"صورتک از پا افتاده"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"صورتک خواب‌آلود"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"صورتک خسته"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"صورتک دهان‌کج"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"صورتک زار زنان"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"صورتک با دهان باز"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"صورتک با علامت هیس"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"صورتک با دهان باز و عرق سرد"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"صورتک جیغ‌زنان از ترس"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"صورتک مبهوت"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"صورت قرمزشده"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"صورتک خواب‌آلود"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"صورتک گیج"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"صورتک بدون دهان"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"صورتک با ماسک پزشکی"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"صورتک گربه پوزخندزنان با چشمان خندان"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"صورتک گربه با اشک خوشحالی"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"صورتک گربه خندان با دهان باز"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"صورتک گربه خندان با چشمانی به شکل قلب"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"صورتک گربه با لبخند کنایه‌آمیز"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"صورتک گربه بوسه‌زن با چشمان بسته"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"صورتک گربه با لب‌های آویزان"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"صورتک گربه گریان"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"صورتک گربه از پا افتاده"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"صورتک با ژست «خوب نیست»"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"صورتک با ژست تأیید"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"شخصی در حال تعظیم کردن"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"میمونی با چشمان بسته"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"میمونی با گوش‌های بسته"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"میمونی با دهان بسته"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"شخص خوشحالی که یک دستش بالاست"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"فردی با دو دست بالا در حال شادی"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"شخصی در حال اخم"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"شخصی با صورت و لب‌های آویزان"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"شخصی با دستان قلاب شده"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"موشک"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"بالگرد"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"لوکوموتیو بخار"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"واگن قطار"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"قطار سریع‌السیر"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"قطار سریع‌السیر با دماغه فشنگی"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"قطار"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"مترو"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"لایت ریل"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"ایستگاه"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"تراموا"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"واگن تراموا"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"اتوبوس"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"اتوبوس‌ در حال نزدیک شدن"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"اتوبوس برقی"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"ایستگاه اتوبوس"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"مینی‌بوس"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"آمبولانس"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"ماشین آتش‌نشانی"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"ماشین پلیس"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"ماشین پلیس درحال نزدیک شدن"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"تاکسی"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"تاکسی در حال نزدیک شدن"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"اتومبیل"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"اتومبیل در حال نزدیک شدن"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"ماشین تفریحی"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"کامیون حمل کالا"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"کامیون کمرشکن"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"تراکتور"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"مونوریل"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"خط آهن کوهستانی"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"راه‌آهن معلق"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"تله‌کابین کوهستانی"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"تراموای هوایی"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"کشتی"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"قایق پارویی"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"قایق سریع‌السیر"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"چراغ راهنمایی افقی"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"چراغ‌های راهنمای عمودی"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"علامت ساخت و ساز"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"چراغ گردان ماشین پلیس"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"پرچم مثلثی روی میله"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"در"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"علامت ورود ممنوع"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"نماد سیگار کشیدن"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"نماد سیگار کشیدن ممنوع"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"نماد انداختن زباله در محل آن"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"نماد زباله ریختن ممنوع"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"نماد آب قابل شرب"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"نماد آب غیرقابل شرب"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"دوچرخه"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"دوچرخه ممنوع"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"دوچرخه‌سوار"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"دوچرخه‌سوار کوهستان"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"عابر پیاده"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"عبور عابر پیاده ممنوع"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"محل عبور اطفال"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"نماد مردان"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"نماد زنان"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"دستشویی"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"نماد کودک"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"توالت"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"‏علامت WC"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"دوش حمام"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"حمام"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"وان حمام"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"کنترل گذرنامه"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"گمرک"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"تحویل بار"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"بار جامانده"</string>
+</resources>
diff --git a/java/res/values-fa/strings-talkback-descriptions.xml b/java/res/values-fa/strings-talkback-descriptions.xml
index 988dd5c..7a11cff 100644
--- a/java/res/values-fa/strings-talkback-descriptions.xml
+++ b/java/res/values-fa/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"نوشتاری وارد نشده است"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g>، ‏<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> را به <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> تصحیح می‌کند"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> تصحیح خودکار را انجام می‌دهد"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"هیچ پیشنهادی وجود ندارد"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"نویسه نامشخص"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"نمادهای بیشتر"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"‏I بزرگ با نقطه بالایی"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"نماد نامشخص"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"‏شکلک emoji نامشخص"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"صورتک بی‌حوصله"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"صورتک شرمنده"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"صورتک با عینک آفتابی"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"صورتک شگفت‌زده"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"صورتک بوسه‌زن"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"صورتک اخمو"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"نویسه‌های جایگزین در دسترس هستند"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"از نویسه‌های جایگزین صرفنظر می‌شود"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"پیشنهادهای جایگزین در دسترس هستند"</string>
diff --git a/java/res/values-fa/strings.xml b/java/res/values-fa/strings.xml
index 1ce5ad2..c6d0595 100644
--- a/java/res/values-fa/strings.xml
+++ b/java/res/values-fa/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"لرزش با فشار کلید"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"صدا با فشار کلید"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"بازشدن با فشار کلید"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"تنظیمات ترجیحی"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"حساب‌ها و حریم خصوصی"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"شکل ظاهری و چیدمان"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"ورودی اشاره‌ای"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"اصلاح نوشتار"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"پیشرفته"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"طرح‌زمینه"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"فعال کردن دونیم‌کردن صفحه‌کلید"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"‏همگام‌سازی صفحه‌کلید Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"همگام‌سازی روشن است"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"همگام‌سازی فرهنگ لغت شخصی‌تان در همه دستگاه‌ها"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"اکنون همگام‌سازی شود"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"‏حذف داده‌های cloud"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"‏اطلاعات همگام‌سازی شده شما را از Google حذف می‌کند"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"‏داده‌های همگام‌سازی شده شما از cloud حذف می‌شوند. مطمئنید؟"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"حذف"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"لغو"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"‏فرهنگ لغت شخصی شما با سرورهای Google همگام‌سازی و در آنها پشتیبان گرفته می‌شود. ممکن است برای کمک به بهبود محصولات ما، اطلاعات آماری از فراوانی کلمه جمع‌آوری شود. جمع‌آوری و استفاده از همه اطلاعات مطابق با "<a href="https://www.google.com/policies/privacy">"خط‌مشی رازداری Google"</a>" خواهد بود."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"‏برای فعال کردن این ویژگی، یک حساب Google به این دستگاه اضافه کنید"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"تغییر به دیگر روش‌های ورودی"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"کلید تغییر زبان، سایر ورودی‌های زبان را نیز پوشش می‌دهد"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"کلید تغییر زبان"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"وقتی چند زبان ورودی فعال است نشان داده شود"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"نمایش نشانگر لغزاندن"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"‏نمایش نشان بصری، هنگام لغزاندن کلیدهای Shift یا نماد"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"تأخیر در رد کردن کلید نمایشی"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"بدون تأخیر"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"پیش‌فرض"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"فرهنگ‌ لغت اصلی"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"نمایش پیشنهادات تصحیح"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"نمایش واژه‌های پیشنهادی در حین تایپ"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"همیشه نمایش داده شود"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"نمایش در حالت عمودی"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"همیشه پنهان شود"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"عدم نمایش کلمات توهین‌آمیز"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"کلمات توهین‌آمیز احتمالی پیشنهاد نشود"</string>
     <string name="auto_correction" msgid="7630720885194996950">"تصحیح خودکار"</string>
@@ -81,25 +83,36 @@
     <string name="gesture_floating_preview_text" msgid="4443240334739381053">"پیش‌نمایش متحرک پویا"</string>
     <string name="gesture_floating_preview_text_summary" msgid="4472696213996203533">"مشاهده کلمه پیشنهادی در حین انجام حرکات"</string>
     <string name="gesture_space_aware" msgid="2078291600664682496">"‫ورود عبارت با حرکت اشاره‌ای"</string>
-    <string name="gesture_space_aware_summary" msgid="4371385818348528538">"با سراندن انگشت به کلید فاصله در زمان اشاره‌ها، فاصله را وارد کنید"</string>
+    <string name="gesture_space_aware_summary" msgid="4371385818348528538">"با سراندن انگشت روی کلید فاصله در زمان استفاده از حرکات، فاصله وارد کنید"</string>
     <string name="voice_input" msgid="3583258583521397548">"کلید ورودی صدا"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"هیچ روش ورودی صوتی فعال نشده است. تنظیمات زبان و ورودی را بررسی کنید."</string>
     <string name="configure_input_method" msgid="373356270290742459">"پیکربندی روش‌های ورودی"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"زبان‌های ورودی"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"ارسال بازخورد"</string>
-    <string name="select_language" msgid="3693815588777926848">"زبان‌های ورودی"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"زبان‌ها"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"راهنما و بازخورد"</string>
+    <string name="select_language" msgid="5709487854987078367">"زبان‌ها"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"برای ذخیره دوباره لمس کنید"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"برای ذخیره اینجا را لمس کنید"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"دیکشنری موجود است"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"طرح زمینه صفحه‌کلید"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"جابه‌جایی بین حساب‌ها"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"هیچ حسابی انتخاب نشده است"</string>
+    <string name="account_selected" msgid="2846876462199625974">"در حال حاضر در حال استفاده از <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"تأیید"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"لغو"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"خروج از سیستم"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"انتخاب یک حساب برای استفاده"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"انگلیسی (بریتانیا)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"انگلیسی (امریکا)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"اسپانیایی (آمریکا)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"هندی انگلیسی"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"صربی (لاتین)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"انگلیسی (بریتانیا) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"انگلیسی (آمریکا) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"اسپانیایی (آمریکا) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"هندی انگلیسی (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"صربی (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (سنتی)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (سیریلیک)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (لاتین)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (فشرده)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"بدون زبان (حروف الفبا)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"‏حروف الفبا (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"‏حروف الفبا (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"‏حروف الفبا (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"‏حروف الفبا (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"طرح زمینه صفحه کلید"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"سبک‌های ورودی سفارشی"</string>
     <string name="add_style" msgid="6163126614514489951">"افزودن سبک"</string>
     <string name="add" msgid="8299699805688017798">"افزودن"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"فعال کردن"</string>
     <string name="not_now" msgid="6172462888202790482">"الآن نه"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"سبک ورودی مشابهی در حال حاضر وجود دارد: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"تأخیر فشار طولانی کلید"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"طول مدت لرزش در اثر فشردن کلید"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"میزان صدای فشردن کلید"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"خواندن فایل فرهنگ لغت خارجی"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"فایل فرهنگ لغتی در پوشه دانلودها وجود ندارد"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"یک فایل فرهنگ لغت برای نصب انتخاب کنید"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"این فایل واقعاً برای <xliff:g id="LANGUAGE_NAME">%s</xliff:g> نصب شود؟"</string>
-    <string name="error" msgid="8940763624668513648">"خطایی روی داد"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"تأخیر فشار طولانی کلید"</string>
     <string name="button_default" msgid="3988017840431881491">"پیش‌فرض"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"به <xliff:g id="APPLICATION_NAME">%s</xliff:g> خوش آمدید"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"با ورودی اشاره‌ای"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"اکنون می‌توانید در همه برنامه‌های دلخواه خود با <xliff:g id="APPLICATION_NAME">%s</xliff:g> تایپ کنید."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"پیکربندی زبان‌های دیگر"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"تمام شد"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"نمایش نماد برنامه"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"نمایش نماد برنامه در راه‌انداز"</string>
     <string name="app_name" msgid="6320102637491234792">"ارائه‌دهنده فرهنگ لغت"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"ارائه‌دهنده فرهنگ لغت"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"سرویس فرهنگ لغت"</string>
diff --git a/java/res/values-fi/strings-emoji-descriptions.xml b/java/res/values-fi/strings-emoji-descriptions.xml
index ad08bbd..7d6a9f9 100644
--- a/java/res/values-fi/strings-emoji-descriptions.xml
+++ b/java/res/values-fi/strings-emoji-descriptions.xml
@@ -267,7 +267,7 @@
     <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Pikkuleipä"</string>
     <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Suklaapatukka"</string>
     <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Karamelli"</string>
-    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Tikkukaramelli"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Tikkari"</string>
     <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Vanukas"</string>
     <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Hunajapurkki"</string>
     <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Kakkuviipale"</string>
diff --git a/java/res/values-fi/strings-talkback-descriptions.xml b/java/res/values-fi/strings-talkback-descriptions.xml
index bec46ca..bd68f4a 100644
--- a/java/res/values-fi/strings-talkback-descriptions.xml
+++ b/java/res/values-fi/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Ei kirjoitettua tekstiä"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> korjaa sanan <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> sanaksi <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> suorittaa automaattisen korjauksen"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Ei ehdotusta."</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Tuntematon merkki"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Vaihto"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Lisää symboleita"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Suuraakkonen I ja yläpuolinen piste"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Tuntematon symboli"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Tuntematon emoji-merkki"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Kyllästynyt naama"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Nolostunut naama"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Naama aurinkolasit silmillä"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Yllättynyt naama"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Naama ja pusuhuulet"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Kurttuotsainen naama"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Vaihtoehtoisia merkkejä on saatavilla"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Vaihtoehtoiset merkit hylättiin"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Vaihtoehtoisia ehdotuksia on saatavilla"</string>
diff --git a/java/res/values-fi/strings.xml b/java/res/values-fi/strings.xml
index 5f2ef6a..66cc4b2 100644
--- a/java/res/values-fi/strings.xml
+++ b/java/res/values-fi/strings.xml
@@ -26,18 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Käytä värinää näppäimiä painettaessa"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Toista ääni näppäimiä painettaessa"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Ponnahdusikkuna painalluksella"</string>
-    <string name="settings_screen_input" msgid="2808654300248306866">"Syöttöasetukset"</string>
-    <string name="settings_screen_appearances" msgid="3611951947835553700">"Ulkonäkö"</string>
-    <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Kieliasetukset"</string>
-    <string name="settings_screen_gesture" msgid="9113437621722871665">"Piirtokirjoitusasetukset"</string>
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Asetukset"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Tilit ja tietosuoja"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Ulkoasu ja asettelut"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Piirtokirjoitus"</string>
     <string name="settings_screen_correction" msgid="1616818407747682955">"Tekstin korjaus"</string>
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Lisäasetukset"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Teema"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Ota jaettu näppäimistö käyttöön"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google-näppäimistön synkronointi"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Synkronointi on käytössä."</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Synkronoi oma sanakirjasi eri laitteiden välillä."</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Synkronoi"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Poista tiedot pilvestä"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Poistaa synkronoidut tietosi Googlen palveluista"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Synkronoidut tiedot poistetaan pilvestä. Oletko varma?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Poista"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Peruuta"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Oma sanakirjasi synkronoidaan ja varmuuskopiodaan Googlen palvelimille. Sanojen yleisyyttä koskevia tilastotietoja voidaan kerätä tuotteidemme parantamiseksi. Tietojen keräämisessä ja käytössä noudatetaan "<a href="https://www.google.com/policies/privacy">"Googlen tietosuojakäytäntöä"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Ota tämä ominaisuus käyttöön lisäämällä Google-tili laitteeseen."</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Käytä toista syöttötapaa"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Kielenvaihtonäppäin kattaa myös muut syöttötavat"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Kielenvaihtonäppäin"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Näytä, kun käytössä on useita syöttökieliä"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Näytä liu\'utuksen tilaosoitin"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Näytä visuaalinen vihje Vaihto- tai Symbol-näppäim. liu\'uttam."</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Näppäimen hylkäysviive"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Ei viivettä"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Oletus"</string>
@@ -56,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Pääsanakirja"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Näytä korjausehdotukset"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Näytä sanaehdotukset kirjoitettaessa"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Näytä aina"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Näytä pystysuunnassa"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Piilota aina"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Estä loukkaavat sanat"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Älä ehdota mahd. loukkaavia sanoja"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Autom. korjaus"</string>
@@ -76,24 +84,35 @@
     <string name="gesture_floating_preview_text_summary" msgid="4472696213996203533">"Näytä ehdotettu sana piirron aikana"</string>
     <string name="gesture_space_aware" msgid="2078291600664682496">"Ilmausele"</string>
     <string name="gesture_space_aware_summary" msgid="4371385818348528538">"Lisää välilyöntejä eleiden aikana liukumalla välilyöntinäppäim."</string>
-    <string name="voice_input" msgid="3583258583521397548">"Äänisyöteavain"</string>
+    <string name="voice_input" msgid="3583258583521397548">"Äänisyötenäppäin"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Äänen syöttötapoja ei ole otettu käyttöön. Tarkista Kieli ja syöttötapa -asetukset."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Määritä syöttötavat"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Syöttökielet"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Lähetä palautetta"</string>
-    <string name="select_language" msgid="3693815588777926848">"Syöttökielet"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Kielet"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Ohje ja palaute"</string>
+    <string name="select_language" msgid="5709487854987078367">"Kielet"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Tallenna koskettamalla uudelleen"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Tallenna koskettamalla tätä"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Sanakirja saatavilla"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Näppäimistöteema"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Vaihda tiliä"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Tilejä ei ole valittu"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Tällä hetkellä käytetään tiliä <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Peruuta"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Kirjaudu ulos"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Valitse käytettävä tili"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"englanti (Iso-Britannia)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"englanti (Yhdysvallat)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"espanja (Yhdysvallat)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hindienglanti"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"serbialainen (latinal.)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"englanti (UK) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"englanti (US) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"espanja (US) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hindienglanti (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"serbialainen (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (perinteinen)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (kyrillinen)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (latinalainen)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tiivis)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Ei kieltä (aakkoset)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Aakkoset (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Aakkoset (QWERTZ)"</string>
@@ -103,10 +122,6 @@
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Aakkoset (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
     <string name="keyboard_theme" msgid="4909551808526178852">"Näppäimistöteema"</string>
-    <string name="keyboard_theme_holo_white" msgid="8506588144096428751">"Valkoinen"</string>
-    <string name="keyboard_theme_holo_blue" msgid="192400518003397418">"Sininen"</string>
-    <string name="keyboard_theme_material_dark" msgid="2701178578784760596">"Tumma"</string>
-    <string name="keyboard_theme_material_light" msgid="3479400901818790331">"Vaalea"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Muokatut syöttötyylit"</string>
     <string name="add_style" msgid="6163126614514489951">"Lisää tyyli"</string>
     <string name="add" msgid="8299699805688017798">"Lisää"</string>
@@ -118,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Ota käyttöön"</string>
     <string name="not_now" msgid="6172462888202790482">"Ei nyt"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Syöttötyyli on jo olemassa: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Pitkän painalluksen viive"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Painalluksen värinän kesto"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Näppäinpainalluksen äänenvoim."</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Lue ulkoista sanakirjatiedostoa"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Lataukset-kansiossa ei ole sanakirjatiedostoja"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Valitse asennettava sanakirjatiedosto"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Haluatko asentaa tämän tiedoston kielelle <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Tapahtui virhe"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Pitkän painalluksen viive"</string>
     <string name="button_default" msgid="3988017840431881491">"Oletusarvot"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Tervetuloa käyttämään sovellusta <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"ja piirtokirjoitus"</string>
@@ -143,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Nyt voit kirjoittaa kaikissa lempisovelluksissasi sovelluksen <xliff:g id="APPLICATION_NAME">%s</xliff:g> avulla."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Määritä lisää kieliä"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Valmis"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Näytä sovelluskuvake"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Näytä sovelluskuvake käynnistysohjelmassa."</string>
     <string name="app_name" msgid="6320102637491234792">"Sanakirjan tarjoaja"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Sanakirjan tarjoaja"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Sanakirjapalvelu"</string>
@@ -170,9 +178,9 @@
     <string name="install_dict" msgid="180852772562189365">"Asenna"</string>
     <string name="cancel_download_dict" msgid="7843340278507019303">"Peruuta"</string>
     <string name="delete_dict" msgid="756853268088330054">"Poista"</string>
-    <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Laitteesi käyttökielelle on saatavilla sanakirja.&lt;br/&gt; Suosittelemme <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>-sanakirjan &lt;b&gt;lataamista&lt;/b&gt;, sillä se helpottaa laitteella kirjoittamista.&lt;br/&gt; &lt;br/&gt; Lataus kestää useimmiten muutaman minuutin 3G-yhteydellä. Latauksesta saatetaan periä maksu, ellei käytössäsi ole &lt;b&gt;rajoittamatonta tiedonsiirtopakettia&lt;/b&gt;.&lt;br/&gt; Jos et ole varma tiedonsiirtosopimuksesi tyypistä, etsi käyttöösi wifi-yhteys, niin lataus alkaa automaattisesti.&lt;br/&gt; &lt;br/&gt; Vinkki: voit ladata ja poistaa sanakirjoja mobiililaitteesi &lt;b&gt;Asetukset&lt;/b&gt;-valikon &lt;b&gt;Kieli ja syöttötapa&lt;/b&gt; -osiossa."</string>
+    <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Laitteesi käyttökielelle on saatavilla sanakirja.&lt;br/&gt; Suosittelemme <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>-sanakirjan &lt;b&gt;lataamista&lt;/b&gt;, sillä se helpottaa laitteella kirjoittamista.&lt;br/&gt; &lt;br/&gt; Lataus kestää useimmiten muutaman minuutin 3G-yhteydellä. Latauksesta saatetaan periä maksu, ellei käytössäsi ole &lt;b&gt;rajoittamatonta tiedonsiirtopakettia&lt;/b&gt;.&lt;br/&gt; Jos et ole varma tiedonsiirtosopimuksesi tyypistä, etsi käyttöösi Wi-Fi-yhteys, niin lataus alkaa automaattisesti.&lt;br/&gt; &lt;br/&gt; Vinkki: voit ladata ja poistaa sanakirjoja mobiililaitteesi &lt;b&gt;Asetukset&lt;/b&gt;-valikon &lt;b&gt;Kieli ja syöttötapa&lt;/b&gt; -osiossa."</string>
     <string name="download_over_metered" msgid="1643065851159409546">"Lataa nyt (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g> Mt)"</string>
-    <string name="do_not_download_over_metered" msgid="2176209579313941583">"Lataa wifi-yhteydellä"</string>
+    <string name="do_not_download_over_metered" msgid="2176209579313941583">"Lataa Wi-Fi-yhteydellä"</string>
     <string name="dict_available_notification_title" msgid="4583842811218581658">"Sanakirja on saatavilla kielelle <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>"</string>
     <string name="dict_available_notification_description" msgid="1075194169443163487">"Paina tätä, jos haluat tarkastella kohdetta ja ladata sen"</string>
     <string name="toast_downloading_suggestions" msgid="6128155879830851739">"Ladataan: kielen <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> ehdotukset ovat pian käytettävissä."</string>
diff --git a/java/res/values-fr-rCA/strings-emoji-descriptions.xml b/java/res/values-fr-rCA/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..e2337f6
--- /dev/null
+++ b/java/res/values-fr-rCA/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Signe de droit d\'auteur"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Signe de marque déposée"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Double point d\'exclamation"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Point d\'interrogation et d\'exclamation"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Signe de marque de commerce"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Source d\'information"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Double flèche horizontale"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Double flèche verticale"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Flèche nord-ouest"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Flèche nord-est"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Flèche sud-est"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Flèche sud-ouest"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Flèche courbe vers la gauche"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Flèche courbe vers la droite"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Montre"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Sablier"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Deux triangles noirs pointant vers la droite"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Deux triangles noirs pointant vers la gauche"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Deux triangles noirs pointant vers le haut"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Deux triangles noirs pointant vers le bas"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Réveil"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Sablier avec du sable qui coule"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"M majuscule encerclé"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Petit carré noir"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Petit carré blanc"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Triangle noir pointant vers la droite"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Triangle noir pointant vers la gauche"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Carré moyen blanc"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Carré moyen noir"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Carré blanc moyennement petit"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Carré noir moyennement petit"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Soleil noir avec des rayons"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Nuage"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Téléphone noir"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Urne avec case cochée"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Parapluie avec gouttes de pluie"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Boisson chaude"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Index blanc pointant vers le haut"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Visage souriant blanc"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Bélier"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Taureau"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Gémeaux"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Cancer"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Lion"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Vierge"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Balance"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Scorpion"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Sagittaire"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Capricorne"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Verseau"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Poisson"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Couleur de carte pique noir"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Couleur de carte trèfle noir"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Couleur de carte cœur noir"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Couleur de carte carreau noir"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Sources thermales"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Symbole noir universel du recyclage"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Symbole de fauteuil roulant"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Ancre marine"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Signal d\'avertissement"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Signal de haute tension"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Cercle moyen blanc"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Cercle moyen noir"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Ballon de soccer"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Baseball"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Bonhomme de neige sans neige"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Soleil derrière un nuage"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Serpentaire"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Interdiction d\'entrer"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Église"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Fontaine"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Drapeau dans un trou"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Bateau à voile"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Tente"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Pompe à carburant"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Ciseaux noirs"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Coche blanche en gras"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Avion"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Enveloppe"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Poing levé"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Main levée"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Signe de la victoire"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Crayon"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Plume de stylo noire"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Coche noire en gras"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Signe de multiplication en gras"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Plusieurs étincelles"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Astérisque à huit branches"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Étoile noire à huit branches"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Flocon de neige"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Étincelle"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Croix"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Croix en négatif dans un carré"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Point d\'interrogation noir décoratif"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Point d\'interrogation blanc décoratif"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Point d\'exclamation blanc décoratif"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Symbole point d\'exclamation en gras"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Cœur noir en gras"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Signe plus en gras"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Signe moins en gras"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Signe diviser en gras"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Flèche noire vers la droite"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Boucle"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Double boucle"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Flèche pointant vers la droite, puis recourbée vers le haut"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Flèche pointant vers la droite, puis recourbée vers le bas"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Flèche noire vers la gauche"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Flèche noire vers le haut"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Flèche noire vers le bas"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Grand carré noir"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Grand carré blanc"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Étoile moyenne blanche"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Grand cercle en gras"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Trait d\'union ondulé"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Symbole de début d\'une chanson en japonais"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Idéogramme « Félicitations » dans un cercle"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Idéogramme « Secret » dans un cercle"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Tuile Mahjong de dragon rouge"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Carte de joker noir"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Groupe sanguin A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Groupe sanguin B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Groupe sanguin O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Stationnement"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Groupe sanguin AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"Icône de Craiglist dans un carré"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Icone Cool dans un carré"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Icône Free dans un carré"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"Icône ID dans un carré"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Icône New dans un carré"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Icône NG dans un carré"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Icône OK dans un carré"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"Icône SOS dans un carré"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Icône UP! dans un carré"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Icône vs dans un carré"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Icône « Ici » en katakana dans un carré"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Icône « Service » en katakana dans un carré"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Idéogramme « Gratuit » dans un carré"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Idéogramme « Siège réservé » dans un carré"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Idéogramme « Interdiction » dans un carré"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Idéogramme « Vide » dans un carré"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Idéogramme « Acceptance » dans un carré"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Idéogramme « Complet » dans un carré"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Idéogramme « Payé » dans un carré"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Idéogramme « Mensuel » dans un carré"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Idéogramme « Application » dans un carré"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Idéogramme « Rabais » dans un carré"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Idéogramme « Affaires » dans un carré"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Idéogramme « Avantage » dans un cercle"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Idéogramme « Accepter » dans un carré"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Cyclone"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Brouillard"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Parapluie fermé"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Nuit étoilée"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Lever de soleil sur la montagne"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Lever de soleil"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Paysage urbain au crépuscule"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Coucher de soleil derrière des immeubles"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Arc-en-ciel"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Pont de nuit"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Vague"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Volcan"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Voie lactée"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Globe terrestre Europe-Afrique"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Globe terrestre Amériques"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Globe terrestre Asie-Australie"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Globe avec méridiens"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Symbole de nouvelle lune"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Symbole de premier croissant de lune"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Symbole de premier quartier de lune"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Symbole de lune gibbeuse ascendante"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Symbole de pleine lune"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Symbole de lune gibbeuse descendante"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Symbole de dernier quartier de lune"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Symbole de dernier croissant de lune"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Croissant de lune"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Nouvelle lune avec un visage"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Premier quartier de lune avec un visage"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Dernier quartier de lune avec un visage"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Pleine lune avec un visage"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Soleil avec un visage"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Étoile brillante"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Étoile filante"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Marron"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Jeune plant"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Arbre à feuilles persistantes"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Arbre à feuilles décidues"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palmier"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Cactus"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulipe"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Fleur de cerisier"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Rose"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Hibiscus"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Tournesol"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Fleur"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Épi de maïs"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Épi de riz"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Herbe"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Trèfle à quatre feuilles"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Feuille d\'érable"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Feuille morte"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Feuille emportée par le vent"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Champignon"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Tomate"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Aubergine"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Raisin"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Melon"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Melon d\'eau"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Mandarine"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Citron"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Jaune banane"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ananas"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Pomme rouge"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Pomme verte"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Poire"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Pêche"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Cerises"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Fraise"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburger"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Tranche de pizza"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Viande avec os"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Cuisse de volaille"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Galette de riz"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Boulette de riz"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Bol de riz"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Riz et curry"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Bol chaud"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Spaghetti"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Pain"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Frites"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Patate douce rôtie"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Sushi"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Crevettes frites"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Gâteau de poisson avec motif de tourbillon"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Crème glacée molle"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Glace pilée"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Crème glacée"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Beigne"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Biscuit"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Barre de chocolat"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Bonbon"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Sucette"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Crème anglaise"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Pot de miel"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Sablé"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Bento"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Pot de nourriture"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Cuisine"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Fourchette et couteau"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Tasse de thé sans poignée"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Bouteille de saké et gobelet"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Verre de vin"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Verre à cocktail"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Boisson tropicale"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Chope de bière"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Chopes de bière qui trinquent"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Biberon"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Ruban"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Cadeau emballé"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Gâteau d\'anniversaire"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Citrouille illuminée"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Sapin de Noël"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Père Noël"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Feux d\'artifice"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Cierge merveilleux"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Ballon"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Cotillons"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Boule de confettis"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Arbre Tanabata"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Drapeaux croisés"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Bambou décoratif"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Poupées japonaises"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Bannière avec motif de carpe"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Carillon"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Cérémonie de la pleine lune"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Cartable d\'école"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Chapeau de remise de diplôme"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Cheval de manège"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Grande roue"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Montagnes russes"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Canne à pêche et poisson"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Microphone"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Caméra de cinéma"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Cinéma"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Écouteurs"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Palette de peintre"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Haut-de-forme"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Chapiteau de cirque"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Billet"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Clap de cinéma"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Arts du spectacle"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Jeu vidéo"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Flèche dans le mille"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Machine à sous"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Billard"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Dé à jouer"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Quilles"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Cartes à jouer japonaises"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Note de musique"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Plusieurs notes de musique"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saxophone"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Guitare"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Clavier de piano"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Trompette"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Violon"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Partition de musique"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Maillot de course avec bande en diagonale"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Raquette et balle de tennis"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Ski et chaussure de ski"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Ballon et panier de basketball"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Drapeau à carreaux"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Surfeur des neiges"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Coureur à pied"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Surfeur"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Trophée"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Course hippique"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Football américain"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Ballon de rugby"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Nageur"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Maison"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Maison avec jardin"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Bâtiment de bureaux"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Bureau de poste japonais"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Bureau de poste européen"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Hôpital"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Banque"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Guichet automatique"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Hôtel"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Hôtel de l\'amour"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Dépanneur"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"École"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Grand magasin"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Usine"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Lanterne japonaise"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Château japonais"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Château européen"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Rat"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Souris"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Bœuf"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Buffle"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Vache"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Léopard"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Lapin"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Chat"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Dragon"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Crocodile"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Baleine"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Escargot"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Serpent"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Cheval"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Bélier"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Chèvre"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Mouton"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Singe"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Coq"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Poulet"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Chien"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Cochon"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Sanglier"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Éléphant"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Pieuvre"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Coquille spiralée"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Insecte"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Fourmi"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Abeille"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Coccinelle"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Poisson"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Poisson tropical"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Poisson-globe"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Tortue"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Éclosion de poussin"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Poussin"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Poussin de face"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Oiseau"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Manchot"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Caniche"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Dromadaire"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Chameau"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Dauphin"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Tête de souris"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Tête de vache"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Tête de tigre"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Tête de lapin"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Tête de chat"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Tête de dragon"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Baleine soufflant"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Tête de cheval"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Tête de singe"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Tête de chien"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Tête de cochon"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Tête de grenouille"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Visage de hamster"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Tête de loup"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Tête d\'ours"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Tête de panda"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Groin"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Empreintes de pattes"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Yeux"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Oreille"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Nez"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Bouche"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Langue"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Main blanche avec index pointant vers le haut"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Main blanche avec index pointant vers le bas"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Main blanche avec index pointant vers la gauche"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Main blanche avec index pointant vers la droite"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Main en forme de poing"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Main qui fait signe"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Main qui fait le signe OK"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Pouce vers le haut"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Pouce vers le bas"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Mains qui applaudissent"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Mains ouvertes"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Couronne"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Chapeau de femme"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Lunettes"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Cravate"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"T-shirt"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Jeans"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Robe"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Vêtements de femme"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Sacoche"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Sac à main"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Pochette"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Chaussure d\'homme"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Chaussures de sport"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Chaussure à talons hauts"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Sandales de femme"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Bottes de femme"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Empreintes de pas"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Silhouette de buste"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Silhouettes de deux bustes"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Garçon"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Fille"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Homme"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Femme"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Famille"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Homme et femme qui se tiennent la main"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Deux hommes qui se tiennent la main"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Deux femmes qui se tiennent la main"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Policier"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Femme avec oreilles de lapin"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Mariée avec voile"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Personne aux cheveux blonds"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Homme portant un gua pi mao"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Homme portant un turban"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Homme âgé"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Femme âgée"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Bébé"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Ouvrier du bâtiment"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Princesse"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Ogre japonais"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Gobelin japonais"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Fantôme"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Chérubin"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Extraterrestre"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Monstre extraterrestre"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Lutin"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Crâne"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Personne à un comptoir de renseignements"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Gardien"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Danseur"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Rouge à lèvres"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Vernis à ongles"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Massage facial"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Coupe de cheveux"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Enseigne de barbier"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Seringue"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Pilule"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Trace de baiser"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Lettre d\'amour"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Bague"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Pierre précieuse"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Bisou"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Bouquet"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Couple avec un cœur"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Mariage"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Cœur qui bat"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Cœur brisé"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Deux cœurs"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Cœur étincelant"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Cœur qui grossit"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Cœur avec une flèche"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Cœur bleu"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Cœur vert"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Cœur jaune"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Cœur violet"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Cœur avec un ruban"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Ronde de cœurs"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Décoration à motif de cœur"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Diamant avec un point à l\'intérieur"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Ampoule électrique"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Symbole de la colère"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bombe"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Symbole du sommeil"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Symbole d\'une collision"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Symbole de transpiration profuse"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Goutte d\'eau"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Symbole de la vitesse"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Tas de caca"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Biceps contracté"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Symbole de l\'étourdissement"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Bulle de discours"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Bulle de pensée"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Fleur blanche"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Symbole de cent points"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Sac d\'argent"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Conversion de devises"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Symbole du dollar en gras"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Carte de crédit"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Billet avec symbole du yen"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Billets de banque avec signe de dollar"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Billet avec symbole de l\'euro"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Billet avec symbole de la livre sterling"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Argent avec des ailes"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Graphique avec courbe croissante et symbole du yen"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Siège"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Ordinateur personnel"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Mallette"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Minidisque"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Disquette"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Disque optique"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Dossier de fichiers"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Dossier ouvert"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Page que l\'on tourne"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Page recto"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Calendrier"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Calendrier à effeuiller"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Classeur à fiches"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Graphique avec courbe croissante"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Graphique avec courbe décroissante"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Histogramme"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Presse-papiers"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Punaise"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Punaise ronde"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Trombone"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Règle"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Équerre"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Languettes marque-pages"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Grand livre"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Bloc-notes"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Cahier avec couverture décorative"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Livre fermé"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Livre ouvert"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Livre vert"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Livre bleu"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Livre orange"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Livres"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Badge de nom"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Parchemin"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Mémo"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Combiné de téléphone"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Téléavertisseur"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Télécopieur"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Antenne satellite"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Haut-parleur pour s\'adresser au public"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Mégaphone d\'encouragement"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Bac de départ du courrier"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Bac d\'arrivée du courrier"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Colis"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Symbole de courriel"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Enveloppe de nouveau message"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Enveloppe surmontée d\'une flèche vers le bas"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Boîte aux lettres fermée avec drapeau baissé"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Boîte aux lettres fermée avec drapeau levé"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Boîte aux lettres ouverte avec drapeau levé"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Boîte aux lettres ouverte avec drapeau baissé"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Boîte aux lettres"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Corne des services postaux"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Journal"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Téléphone cellulaire"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Téléphone mobile avec flèche orientée vers la droite sur la gauche"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Mode vibreur"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Téléphone cellulaire éteint"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Pas de téléphone cellulaire"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Antenne avec barres"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Appareil photo"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Caméscope"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Télévision"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Radio"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Cassette vidéo"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Deux flèches croisées vers la droite"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Cercle formé par deux flèches horizontales tournant dans le sens des aiguilles d\'une montre"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Cercle formé par deux flèches horizontales tournant dans le sens des aiguilles d\'une montre, avec chiffre un dans une pastille"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Cercle formé par deux flèches verticales tournant dans le sens des aiguilles d\'une montre"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Cercle formé par deux flèches verticales tournant dans le sens inverse des aiguilles d\'une montre"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Symbole de faible luminosité"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Symbole de forte luminosité"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Haut-parleur barré"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Haut-parleur"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Haut-parleur avec une onde sonore"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Haut-parleur avec trois ondes sonores"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Pile"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Prise électrique"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Loupe orientée vers la gauche"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Loupe orientée vers la droite"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Cadenas avec stylo-plume"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Cadenas fermé avec clé"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Clé"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Cadenas"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Serrure ouverte"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Cloche"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Cloche barrée"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Favoris"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Symbole de lien"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Bouton radio"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"« Back » surmonté d\'une flèche vers la gauche"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"« End » surmonté d\'une flèche vers la gauche"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"« On » avec un point d\'exclamation surmonté d\'une flèche vers la gauche et la droite"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"« Soon » surmonté d\'une flèche vers la droite"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"« Top » surmonté d\'une flèche vers le haut"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Symbole d\'interdiction aux moins de 18 ans"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Touche avec le nombre 10"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Symbole d\'entrée pour les majuscules latines"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Symbole d\'entrée pour les minuscules latines"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Symbole d\'entrée pour les chiffres"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Symbole d\'entrée pour les symboles"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Symbole d\'entrée pour les lettres latines"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Flamme"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Lampe de poche électrique"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Clé anglaise"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Marteau"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Écrou et boulon"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Couteau hocho"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Pistolet"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Microscope"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Télescope"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Boule de cristal"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Étoile à six branches avec point au centre"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Symbole japonais pour « débutant »"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Emblème à trident"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Bouton carré noir"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Bouton carré blanc"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Grand cercle rouge"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Grand cercle bleu"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Grand losange orange"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Grand losange bleu"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Petit losange orange"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Petit losange bleu"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Triangle rouge pointant vers le haut"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Triangle rouge pointant vers le bas"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Petit triangle rouge pointant vers le haut"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Petit triangle rouge pointant vers le bas"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Horloge affichant 1 h 00"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Horloge affichant 2 h 00"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Horloge affichant 3 h 00"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Horloge affichant 4 h 00"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Horloge affichant 5 h 00"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Horloge affichant 6 h 00"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Horloge affichant 7 h 00"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Horloge affichant 8 h 00"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Horloge affichant 9 h 00"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Horloge affichant 10 h 00"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Horloge affichant 11 h 00"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Horloge affichant 12 h 00"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Horloge affichant 1 h 30"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Horloge affichant 2 h 30"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Horloge affichant 3 h 30"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Horloge affichant 4 h 30"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Horloge affichant 5 h 30"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Horloge affichant 6 h 30"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Horloge affichant 7 h 30"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Horloge affichant 8 h 30"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Horloge affichant 9 h 30"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Horloge affichant 10 h 30"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Horloge affichant 11 h 30"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Horloge affichant 12 h 30"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Mont Fuji"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Tour de Tokyo"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Statue de la Liberté"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Silhouette du Japon"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moaï"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Visage souriant à pleines dents"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Visage grimaçant avec les yeux souriants"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Visage avec des larmes de joie"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Visage souriant avec la bouche ouverte"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Visage souriant avec la bouche ouverte et des yeux rieurs"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Visage souriant avec la bouche ouverte et des sueurs froides"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Visage souriant avec la bouche ouverte et les yeux bien fermés"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Visage souriant avec un halo"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Visage souriant avec des cornes"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Visage faisant un clin d\'œil"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Visage souriant avec des yeux rieurs"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Visage savourant un plat délicieux"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Visage soulagé"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Visage souriant avec des yeux en forme de cœur"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Visage souriant avec des lunettes de soleil"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Visage souriant en coin"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Visage neutre"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Visage sans expression"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Visage pas amusé"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Visage avec des sueurs froides"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Visage pensif"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Visage confus"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Visage déconcerté"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Visage faisant un baiser"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Visage envoyant un baiser"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Visage faisant un baiser avec des yeux rieurs"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Visage faisant un baiser avec les yeux fermés"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Visage tirant la langue"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Visage tirant la langue et faisant un clin d\'œil"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Visage tirant la langue avec les yeux bien fermés"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Visage déçu"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Visage inquiet"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Visage en colère"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Visage qui boude"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Visage qui pleure"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Visage persévérant"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Visage avec un air de triomphe"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Visage déçu, mais soulagé"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Visage fronçant les sourcils avec la bouche ouverte"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Visage angoissé"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Visage apeuré"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Visage fatigué"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Visage endormi"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Visage épuisé"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Visage grimaçant"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Visage pleurant à chaudes larmes"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Visage avec la bouche ouverte"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Visage calmé"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Visage avec la bouche ouverte et des sueurs froides"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Visage qui hurle de peur"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Visage étonné"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Visage tout rouge"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Visage endormi"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Visage pris de vertige"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Visage sans bouche"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Visage avec un masque médical"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Tête de chat qui sourit avec des yeux rieurs"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Tête de chat avec des larmes de joie"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Tête de chat qui sourit avec la bouche ouverte"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Tête de chat qui sourit avec des yeux en forme de cœur"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Visage de chat avec sourire ironique"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Tête de chat faisant un baiser avec les yeux fermés"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Tête de chat qui boude"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Tête de chat qui pleure"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Tête de chat fatigué"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Visage faisant signe que rien ne va"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Visage faisant signe que tout va bien"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Personne faisant la révérence"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Singe qui fait semblant de n\'avoir rien vu"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Singe qui fait semblant de n\'avoir rien entendu"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Singe qui fait semblant de n\'avoir rien dit"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Personne heureuse qui lève une main"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Personne qui lève les deux bras en signe de victoire"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Personne fronçant les sourcils"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Personne avec visage qui boude"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Personne les mains jointes"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Fusée"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Hélicoptère"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Locomotive à vapeur"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Wagon"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Train à grande vitesse"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Train à grande vitesse avec nez en pointe"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Train"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Métro"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Train léger"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Gare"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Tramway"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Voiture de tramway"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Autobus"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Autobus venant de face"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Trolley"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Arrêt d\'autobus"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Minibus"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Ambulance"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Camion d\'incendie"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Voiture de police"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Voiture de police venant en sens inverse"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taxi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Taxi venant en sens inverse"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Automobile"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Automobile venant en sens inverse"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Véhicule récréatif"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Camion de livraison"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Semi-remorque"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Tracteur"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Monorail"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Chemin de fer de montagne"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Train suspendu"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Téléphérique de montagne"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Téléphérique"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Bateau"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Chaloupe"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Hors-bord"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Feu de circulation horizontal"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Feu de circulation vertical"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Signe de travaux routiers"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Gyrophare de voiture de police"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Drapeau triangulaire sur un poteau"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Porte"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Panneau d\'interdiction d\'entrée"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Symbole de permission de fumer"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Symbole d\'interdiction de fumer"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Déposez les déchets dans son symbole de lieu"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Ne salissez pas le symbole"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Symbole d\'eau potable"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Symbole d\'eau non potable"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Vélo"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Vélos interdits"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Cycliste"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Cycliste de montagne"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Piéton"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Piétons interdits"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Passage d\'enfants"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Symbole d\'homme"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Symbole de femme"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Salle de bain"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Symbole de bébé"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Toilettes"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Salle de bain"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Douche"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Bain"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Baignoire"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Contrôle de passeport"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Douane"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Zone de récupération des bagages"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Consigne à bagages"</string>
+</resources>
diff --git a/java/res/values-fr-rCA/strings-talkback-descriptions.xml b/java/res/values-fr-rCA/strings-talkback-descriptions.xml
index df644c0..368de9f 100644
--- a/java/res/values-fr-rCA/strings-talkback-descriptions.xml
+++ b/java/res/values-fr-rCA/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Aucun texte entré"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"La touche <xliff:g id="KEY_NAME">%1$s</xliff:g> permet de remplacer <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> par <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"La touche <xliff:g id="KEY_NAME">%1$s</xliff:g> permet d\'effectuer une correction automatique"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Aucune suggestion"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Caractère inconnu"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Majuscule"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Autres symboles"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"I majuscule, point en chef"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Symbole inconnu"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Emoji inconnu"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Ennuyé"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Embarrassé"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Lunettes de soleil"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Surpris"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Bisou"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Sourcils froncés"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Des caractères supplémentaires sont proposés"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Les caractères supplémentaires sont ignorés"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Des suggestions supplémentaires sont proposées"</string>
diff --git a/java/res/values-fr-rCA/strings.xml b/java/res/values-fr-rCA/strings.xml
index fd34ba9..f0cd0ed 100644
--- a/java/res/values-fr-rCA/strings.xml
+++ b/java/res/values-fr-rCA/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrer à chaque touche"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Son à chaque touche"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Agrandir les caractères"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Préférences"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Comptes et confidentialité"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Apparence et dispositions"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Entrée gestuelle"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Correction du texte"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Avancés"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Thème"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Activer le clavier en deux parties"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Synchronisation du clavier Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"La synchronisation est activée"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Synchronisez votre dictionnaire personnel sur plusieurs appareils"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Synchroniser maintenant"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Supprimer les données du nuage"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Supprime vos données synchronisées de Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Vos données synchronisées seront suppr. du nuage. Êtes-vous sûr?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Supprimer"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Annuler"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Votre dictionnaire personnel sera synchronisé et sauvegardé sur les serveurs de Google. Des statistiques concernant la fréquence des mots peuvent être recueillies pour nous aider à améliorer nos produits. La collecte et l\'utilisation de toutes les données sont effectuées conformément à la "<a href="https://www.google.com/policies/privacy">"politique de confidentialité de Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Ajoutez un compte Google à cet appareil pour activer la fonction."</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Autres modes de saisie"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"La touche de sélection de langue couvre d\'autres modes de saisie"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Touche de sélection de langue"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Afficher lorsque plusieurs langues de saisie sont activées"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Aff. indicateur saisie gestuelle"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Aff. un repère visuel si l\'utilisateur appuie sur Maj ou Symboles"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Masquer touche agrandie"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Aucun délai"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Par défaut"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Dictionnaire principal"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Suggestions de correction"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Afficher les suggestions de terme lors de la saisie"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Toujours afficher"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Afficher en mode Portrait"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Toujours masquer"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Bloquer les termes choquants"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Pas de termes potentiellement choquants"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Correction auto"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Touche de saisie vocale"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Aucun mode d\'entrée vocale n\'a été activé. Vérifiez les paramètres de langues et d\'entrée de texte."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Configurer les modes de saisie"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Langues de saisie"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Envoyer des commentaires"</string>
-    <string name="select_language" msgid="3693815588777926848">"Langues de saisie"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Langues"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Aide et commentaires"</string>
+    <string name="select_language" msgid="5709487854987078367">"Langues"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Appuyer de nouveau pour enregistrer"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Touchez ici pour enregistrer le mot dans le dictionnaire"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Dictionnaire disponible"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Thème du clavier"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Changer de compte"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Aucun compte sélectionné"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Vous utilisez actuellement le compte <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Annuler"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Déconnexion"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Sélectionnez le compte à utiliser"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Anglais (britannique)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Anglais (États-Unis)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Espagnol (États-Unis)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Serbe (latin)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"anglais (Royaume-Uni) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"anglais (États-Unis) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"espagnol (États-Unis) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Serbe (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (traditionnel)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (cyrillique)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (latin)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (compact)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Aucune langue (alphabet)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alphabet latin (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alphabet latin (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alphabet latin (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alphabet latin (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Thème du clavier"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Styles saisie personnalisés"</string>
     <string name="add_style" msgid="6163126614514489951">"Ajouter style"</string>
     <string name="add" msgid="8299699805688017798">"Ajouter"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Activer"</string>
     <string name="not_now" msgid="6172462888202790482">"Pas maintenant"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Le style de saisie suivant existe déjà : <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>."</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Délai appui prolongé sur touche"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Durée vibration press. touche"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Volume pression de touche"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Lire un fichier de dictionnaire externe"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Aucun fichier de dictionnaire dans le dossier \"Téléchargements\""</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Sélectionner un fichier de dictionnaire à installer"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Installer ce fichier pour la langue « <xliff:g id="LANGUAGE_NAME">%s</xliff:g> »?"</string>
-    <string name="error" msgid="8940763624668513648">"Une erreur s\'est produite"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Délai appui prolongé sur touche"</string>
     <string name="button_default" msgid="3988017840431881491">"Par défaut"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Bienvenue dans <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"avec la saisie gestuelle"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Avec <xliff:g id="APPLICATION_NAME">%s</xliff:g>, vous pouvez saisir du texte dans toutes vos applications préférées."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Configurer des langues supplémentaires"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"OK"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Afficher icône application"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Afficher l\'icône de l\'application dans le lanceur"</string>
     <string name="app_name" msgid="6320102637491234792">"Fournisseur de dictionnaires"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Fournisseur de dictionnaires"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Service de dictionnaires"</string>
diff --git a/java/res/values-fr/strings-emoji-descriptions.xml b/java/res/values-fr/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..1f99ee3
--- /dev/null
+++ b/java/res/values-fr/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Symbole de copyright"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Symbole de marque déposée"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Double point d\'exclamation"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Point d\'exclamation et point d\'interrogation"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Symbole de marque commerciale"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Source d\'informations"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Flèche vers la gauche et la droite"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Flèche vers le haut et le bas"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Flèche en direction du nord-ouest"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Flèche en direction du nord-est"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Flèche en direction du sud-est"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Flèche en direction du sud-ouest"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Flèche courbe vers la gauche"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Flèche courbe vers la droite"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Montre"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Sablier"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Deux triangles noirs pointant vers la droite"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Deux triangles noirs pointant vers la gauche"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Deux triangles noirs pointant vers le haut"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Deux triangles noirs pointant vers le bas"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Réveil"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Sablier avec du sable qui coule"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Lettre majuscule latine m dans un cercle"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Petit carré noir"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Petit carré blanc"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Triangle noir pointant vers la droite"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Triangle noir pointant vers la gauche"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Carré moyen blanc"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Carré moyen noir"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Carré blanc moyennement petit"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Carré noir moyennement petit"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Soleil noir avec des rayons"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Nuage"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Téléphone noir"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Case cochée"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Parapluie avec des gouttes de pluie"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Boisson chaude"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Index blanc pointant vers le haut"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Visage souriant blanc"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Bélier"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Taureau"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Gémeaux"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Cancer"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Lion"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Vierge"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Balance"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Scorpion"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Sagittaire"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Capricorne"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Verseau"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Poisson"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Couleur de carte pique noir"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Couleur de carte trèfle noir"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Couleur de carte cœur noir"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Couleur de carte carreau noir"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Sources thermales"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Symbole noir universel du recyclage"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Symbole de fauteuil roulant"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Ancre marine"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Signal d\'avertissement"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Signal haute tension"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Cercle moyen blanc"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Cercle moyen noir"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Ballon de foot"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Balle de base-ball"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Bonhomme de neige sans neige"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Soleil derrière un nuage"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Serpentaire"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Interdiction d\'entrer"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Église"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Fontaine"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Drapeau dans un trou"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Bateau à voile"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Tente"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Pompe à carburant"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Ciseaux noirs"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Coche blanche en gras"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Avion"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Enveloppe"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Poing levé"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Main levée"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Signe de la victoire"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Crayon"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Plume de stylo noire"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Coche noire en gras"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Signe multiplier en gras"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Plusieurs étincelles"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Astérisque à huit branches"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Étoile noire à huit branches"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Flocon de neige"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Étincelle"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Croix"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Croix en négatif dans un carré"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Point d\'interrogation noir décoratif"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Point d\'interrogation blanc décoratif"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Point d\'exclamation blanc décoratif"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Symbole point d\'exclamation en gras"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Cœur noir en gras"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Signe plus en gras"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Signe moins en gras"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Signe diviser en gras"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Flèche noire vers la droite"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Boucle"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Double boucle"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Flèche pointant vers la droite, puis recourbée vers le haut"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Flèche pointant vers la droite, puis recourbée vers le bas"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Flèche noire vers la gauche"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Flèche noire vers le haut"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Flèche noire vers le bas"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Grand carré noir"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Grand carré blanc"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Étoile moyenne blanche"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Grand cercle en gras"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Trait d\'union ondulé"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Symbole de début d\'une chanson en japonais"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Idéogramme \"félicitations\" dans un cercle"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Idéogramme \"secret\" dans un cercle"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Tuile de mah-jong dragon rouge"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Carte à jouer joker noir"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Groupe sanguin A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Groupe sanguin B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Groupe sanguin O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Parking"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Groupe sanguin AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"\"CL\" dans un carré"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"\"Cool\" dans un carré"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"\"Free\" dans un carré"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"\"ID\" dans un carré"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"\"New\" dans un carré"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"\"NG\" dans un carré"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"\"OK\" dans un carré"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"\"SOS\" dans un carré"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"\"Up\" dans un carré avec un point d\'exclamation"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"\"Vs\" dans un carré"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"\"Ici\" en katakana dans un carré"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"\"Service\" en katakana dans un carré"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Idéogramme \"gratuit\" dans un carré"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Idéogramme \"siège réservé\" dans un carré"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Idéogramme \"interdiction\" dans un carré"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Idéogramme \"libre\" dans un carré"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Idéogramme \"acceptation\" dans un carré"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Idéogramme \"complet\" dans un carré"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Idéogramme \"payant\" dans un carré"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Idéogramme \"mensuel\" dans un carré"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Idéogramme \"application\" dans un carré"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Idéogramme \"remise\" dans un carré"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Idéogramme \"affaires\" dans un carré"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Idéogramme \"avantage\" dans un cercle"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Idéogramme \"accepter\" dans un cercle"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Cyclone"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Brouillard"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Parapluie fermé"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Nuit étoilée"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Lever de soleil sur la montagne"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Lever de soleil"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Paysage urbain au crépuscule"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Coucher de soleil derrière des buildings"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Arc-en-ciel"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Pont de nuit"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Vague"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Volcan"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Voie lactée"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Globe terrestre Europe-Afrique"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Globe terrestre Amériques"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Globe terrestre Asie-Australie"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Globe avec méridiens"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Symbole nouvelle lune"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Symbole premier croissant de lune"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Symbole premier quartier de lune"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Symbole lune gibbeuse ascendante"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Symbole pleine lune"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Symbole lune gibbeuse descendante"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Symbole dernier quartier de lune"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Symbole dernier croissant de lune"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Croissant de lune"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Nouvelle lune avec un visage"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Premier quartier de lune avec un visage"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Dernier quartier de lune avec un visage"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Pleine lune avec un visage"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Soleil avec un visage"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Étoile brillante"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Étoile filante"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Marron"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Jeune plant"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Arbre à feuilles persistantes"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Arbre à feuilles caduques"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palmier"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Cactus"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulipe"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Fleur de cerisier"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Rose"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Hibiscus"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Tournesol"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Fleur ouverte"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Épi de maïs"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Épi de riz"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Herbe"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Trèfle à quatre feuilles"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Feuille d\'érable"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Feuille morte"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Feuille emportée par le vent"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Champignon"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Tomate"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Aubergine"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Raisin"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Melon"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Pastèque"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Mandarine"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Citron"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Banane"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ananas"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Pomme rouge"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Pomme verte"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Poire"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Pêche"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Cerises"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Fraise"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburger"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Part de pizza"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Viande avec os"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Cuisse de volaille"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Galette de riz"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Boulette de riz"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Bol de riz"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Riz au curry"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Bol fumant"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Spaghettis"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Pain"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Frites"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Patate douce grillée"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Sushi"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Crevette frite"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Croquette de poisson motif tourbillon"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Glace à l\'italienne"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Glace pilée"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Glace"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Beignet"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Biscuit"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Barre de chocolat"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Bonbon"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Sucette"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Crème anglaise"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Pot de miel"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Sablé"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Bento"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Marmite"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Cuisine"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Fourchette et couteau"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Tasse de thé sans anse"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Bouteille de saké et gobelet"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Verre de vin"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Cocktail"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Boisson tropicale"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Chope de bière"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Chopes de bière qui trinquent"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Biberon"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Ruban"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Cadeau emballé"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Gâteau d\'anniversaire"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Citrouille éclairée"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Sapin de Noël"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Père Noël"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Feu d\'artifice"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Feu de Bengale"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Ballon"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Cotillons"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Ballon de confettis"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Arbre Tanabata"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Drapeaux croisés"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Décoration en pin"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Poupées japonaises"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Bannière avec motif de carpe"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Carillon"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Cérémonie de la pleine lune"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Cartable d\'écolier"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Chapeau de remise de diplôme"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Cheval de manège"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Grande roue"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Grand huit"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Canne à pêche et poisson"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Microphone"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Caméra de cinéma"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Cinéma"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Casque audio"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Palette de peintre"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Haut-de-forme"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Chapiteau de cirque"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Billet"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Clap de cinéma"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Arts du spectacle"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Jeu vidéo"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Flèche dans le mille"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Machine à sous"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Billard"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Dé à jouer"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Bowling"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Cartes à jouer japonaises"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Note de musique"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Plusieurs notes de musique"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saxophone"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Guitare"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Clavier de piano"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Trompette"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Violon"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Partition de musique"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Maillot de course avec bande en diagonale"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Raquette et balle de tennis"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Ski et chaussure de ski"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Ballon de basket et panier"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Drapeau à carreaux"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Snowboardeur"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Coureur à pied"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Surfeur"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Trophée"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Course hippique"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Football américain"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Ballon de rugby"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Nageur"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Maison"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Maison avec jardin"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Bâtiment de bureaux"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Bureau de poste japonais"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Bureau de poste européen"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Hôpital"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Banque"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Distributeur de billets"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Hôtel"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Love hotel"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Supérette"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"École"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Grand magasin"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Usine"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Lanterne japonaise"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Château japonais"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Château européen"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Rat"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Souris"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Bœuf"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Buffle"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Vache"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Léopard"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Lapin"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Chat"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Dragon"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Crocodile"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Baleine"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Escargot"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Serpent"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Cheval"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Bélier"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Chèvre"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Mouton"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Singe"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Coq"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Poulet"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Chien"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Cochon"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Sanglier"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Éléphant"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Pieuvre"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Coquille spiralée"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Insecte"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Fourmi"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Abeille"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Coccinelle"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Poisson"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Poisson tropical"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Poisson-globe"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Tortue"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Éclosion de poussin"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Poussin"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Poussin de face"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Oiseau"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Pingouin"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Caniche"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Dromadaire"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Chameau"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Dauphin"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Tête de souris"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Tête de vache"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Tête de tigre"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Tête de lapin"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Tête de chat"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Tête de dragon"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Baleine soufflant"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Tête de cheval"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Tête de singe"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Tête de chien"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Tête de cochon"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Tête de grenouille"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Tête de hamster"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Tête de loup"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Tête d\'ours"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Tête de panda"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Groin"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Empreintes de pattes"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Yeux"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Oreille"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Nez"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Bouche"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Langue"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Main blanche avec index pointant vers le haut"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Main blanche avec index pointant vers le bas"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Main blanche avec index pointant vers la gauche"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Main blanche avec index pointant vers la droite"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Main en forme de poing"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Main qui fait signe"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Main qui fait le signe OK"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Pouce vers le haut"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Pouce vers le bas"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Mains qui applaudissent"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Mains ouvertes"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Couronne"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Chapeau de femme"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Lunettes"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Cravate"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"T-shirt"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Jean"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Robe"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Vêtements de femme"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Porte-monnaie"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Sac à main"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Pochette"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Chaussure d\'homme"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Chaussure de sport"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Talon aiguille"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Sandale de femme"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Bottes de femme"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Empreintes de pas"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Silhouette de buste"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Silhouettes de deux bustes"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Garçon"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Fille"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Homme"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Femme"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Famille"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Homme et femme qui se tiennent la main"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Deux hommes qui se tiennent la main"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Deux femmes qui se tiennent la main"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Officier de police"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Femme avec oreilles de lapin"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Mariée avec voile"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Personne aux cheveux blonds"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Homme portant un gua pi mao"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Homme portant un turban"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Homme âgé"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Femme âgée"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Bébé"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Ouvrier du bâtiment"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Princesse"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Ogre japonais"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Gobelin japonais"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Fantôme"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Chérubin"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Extraterrestre"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Monstre extraterrestre"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Lutin"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Crâne"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Personne à un comptoir de renseignements"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Gardien"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Danseur"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Rouge à lèvres"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Vernis à ongles"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Massage facial"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Coupe de cheveux"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Enseigne de barbier"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Seringue"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Pilule"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Trace de baiser"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Lettre d\'amour"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Bague"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Pierre précieuse"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Baiser"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Bouquet"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Couple avec un cœur"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Mariage"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Cœur qui bat"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Cœur brisé"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Deux cœurs"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Cœur étincelant"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Cœur qui grossit"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Cœur avec une flèche"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Cœur bleu"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Cœur vert"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Cœur jaune"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Cœur violet"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Cœur avec un ruban"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Ronde de cœurs"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Décoration motif cœur"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Diamant avec un point à l\'intérieur"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Ampoule électrique"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Symbole de la colère"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bombe"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Symbole du sommeil"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Symbole d\'une collision"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Symbole de projection de gouttes de sueur"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Goutte d\'eau"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Symbole de la vitesse"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Tas de caca"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Biceps contracté"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Symbole de l\'étourdissement"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Bulle de discours"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Bulle de pensée"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Fleur blanche"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Symbole cent points"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Sac d\'argent"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Conversion de devises"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Symbole du dollar en gras"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Carte de paiement"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Billet avec symbole du yen"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Billet avec symbole du dollar"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Billet avec symbole de l\'euro"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Billet avec symbole de la livre sterling"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Liasse de billets avec des ailes"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Graphique avec courbe croissante et symbole du yen"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Siège"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"PC"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Sacoche"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Minidisque"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Disquette"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Disque optique"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Dossier de fichiers"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Dossier ouvert"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Page que l\'on tourne"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Page recto"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Calendrier"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Calendrier à effeuiller"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Classeur à fiches"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Graphique avec courbe croissante"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Graphique avec courbe décroissante"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Histogramme"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Presse-papiers"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Punaise"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Punaise ronde"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Trombone"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Règle"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Équerre"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Languettes marque-pages"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Registre"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Cahier"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Cahier avec couverture décorative"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Livre fermé"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Livre ouvert"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Livre vert"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Livre bleu"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Livre orange"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Livres"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Badge nominatif"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Parchemin"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Mémo"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Combiné de téléphone"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Pager"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Fax"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Antenne satellite"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Haut-parleur pour s\'adresser au public"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Mégaphone d\'encouragement"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Bac de départ du courrier"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Bac d\'arrivée du courrier"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Colis"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Symbole e-mail"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Enveloppe de nouveau message"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Enveloppe surmontée d\'une flèche vers le bas"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Boîte aux lettres fermée avec drapeau baissé"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Boîte aux lettres fermée avec drapeau levé"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Boîte aux lettres ouverte avec drapeau levé"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Boîte aux lettres ouverte avec drapeau baissé"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Boîte aux lettres"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Corne des services postaux"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Journal"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Téléphone mobile"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Téléphone mobile avec flèche orientée vers la droite sur la gauche"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Mode vibreur"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Téléphone mobile éteint"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Pas de téléphone mobile"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Antenne avec barres"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Appareil photo"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Caméscope"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Télévision"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Radio"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Cassette vidéo"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Deux flèches croisées vers la droite"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Cercle formé par deux flèches horizontales tournant dans le sens des aiguilles d\'une montre"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Cercle formé par deux flèches horizontales tournant dans le sens des aiguilles d\'une montre, avec chiffre un dans une pastille"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Cercle formé par deux flèches verticales tournant dans le sens des aiguilles d\'une montre"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Cercle formé par deux flèches verticales tournant dans le sens inverse des aiguilles d\'une montre"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Symbole de faible luminosité"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Symbole de forte luminosité"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Haut-parleur barré"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Haut-parleur"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Haut-parleur avec une onde sonore"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Haut-parleur avec trois ondes sonores"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Pile"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Prise électrique"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Loupe orientée vers la gauche"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Loupe orientée vers la droite"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Cadenas avec stylo-plume"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Cadenas fermé avec clé"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Clé"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Cadenas"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Cadenas ouvert"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Cloche"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Cloche barrée"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Marque-page"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Maillons de chaîne"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Bouton radio"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"\"Back\" surmonté d\'une flèche vers la gauche"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"\"End\" surmonté d\'une flèche vers la gauche"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"\"On\" avec un point d\'exclamation surmonté d\'une flèche vers la gauche et la droite"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"\"Soon\" surmonté d\'une flèche vers la droite"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"\"Top\" surmonté d\'une flèche vers le haut"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Symbole d\'interdiction aux moins de 18 ans"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Touche avec le nombre 10"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Symbole de saisie pour les majuscules latines"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Symbole de saisie pour les minuscules latines"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Symbole de saisie pour les chiffres"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Symbole de saisie pour les symboles"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Symbole de saisie pour les lettres latines"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Feu"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Torche électrique"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Clé anglaise"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Marteau"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Écrou et boulon"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Couteau hocho"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Pistolet"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Microscope"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Télescope"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Boule de cristal"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Étoile à six branches avec un point au centre"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Symbole japonais pour \"débutant\""</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Emblème à trident"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Bouton carré noir"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Bouton carré blanc"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Grand cercle rouge"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Grand cercle bleu"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Grand losange orange"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Grand losange bleu"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Petit losange orange"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Petit losange bleu"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Triangle rouge pointant vers le haut"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Triangle rouge pointant vers le bas"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Petit triangle rouge pointant vers le haut"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Petit triangle rouge pointant vers le bas"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Horloge affichant 1 h 00"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Horloge affichant 2 h 00"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Horloge affichant 3 h 00"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Horloge affichant 4 h 00"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Horloge affichant 5 h 00"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Horloge affichant 6 h 00"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Horloge affichant 7 h 00"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Horloge affichant 8 h 00"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Horloge affichant 9 h 00"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Horloge affichant 10 h 00"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Horloge affichant 11 h 00"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Horloge affichant 12 h 00"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Horloge affichant 1 h 30"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Horloge affichant 2 h 30"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Horloge affichant 3 h 30"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Horloge affichant 4 h 30"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Horloge affichant 5 h 30"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Horloge affichant 6 h 30"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Horloge affichant 7 h 30"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Horloge affichant 8 h 30"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Horloge affichant 9 h 30"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Horloge affichant 10 h 30"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Horloge affichant 11 h 30"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Horloge affichant 12 h 30"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Mont Fuji"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Tour de Tokyo"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Statut de la Liberté"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Silhouette du Japon"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moaï"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Visage souriant à pleines dents"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Visage souriant à pleines dents avec des yeux rieurs"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Visage avec des larmes de joie"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Visage souriant avec la bouche ouverte"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Visage souriant avec la bouche ouverte et des yeux rieurs"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Visage souriant avec la bouche ouverte et des sueurs froides"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Visage souriant avec la bouche ouverte et les yeux bien fermés"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Visage souriant avec un halo"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Visage souriant avec des cornes"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Visage faisant un clin d\'œil"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Visage souriant avec des yeux rieurs"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Visage savourant un plat délicieux"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Visage soulagé"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Visage souriant avec des yeux en forme de cœur"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Visage souriant avec des lunettes de soleil"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Visage souriant en coin"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Visage neutre"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Visage sans expression"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Visage pas amusé"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Visage avec des sueurs froides"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Visage pensif"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Visage confus"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Visage déconcerté"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Visage faisant un baiser"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Visage envoyant un baiser"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Visage faisant un baiser avec des yeux rieurs"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Visage faisant un baiser avec les yeux fermés"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Visage tirant la langue"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Visage tirant la langue et faisant un clin d\'œil"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Visage tirant la langue avec les yeux bien fermés"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Visage déçu"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Visage inquiet"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Visage en colère"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Visage qui boude"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Visage qui pleure"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Visage persévérant"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Visage avec un air de triomphe"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Visage déçu, mais soulagé"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Visage fronçant les sourcils avec la bouche ouverte"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Visage anxieux"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Visage apeuré"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Visage fatigué"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Visage assoupi"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Visage épuisé"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Visage grimaçant"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Visage pleurant à chaudes larmes"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Visage avec la bouche ouverte"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Visage calmé"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Visage avec la bouche ouverte et des sueurs froides"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Visage criant de peur"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Visage étonné"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Visage tout rouge"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Visage endormi"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Visage pris de vertige"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Visage sans bouche"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Visage avec un masque médical"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Tête de chat qui sourit avec des yeux rieurs"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Tête de chat avec des larmes de joie"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Tête de chat qui sourit avec la bouche ouverte"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Tête de chat qui sourit avec des yeux en forme de cœur"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Tête de chat avec un sourire narquois"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Tête de chat faisant un baiser avec les yeux fermés"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Tête de chat qui boude"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Tête de chat qui pleure"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Tête de chat fatigué"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Visage faisant signe que rien ne va"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Visage faisant signe que tout va bien"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Personne faisant la révérence"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Singe qui fait semblant de n\'avoir rien vu"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Singe qui fait semblant de n\'avoir rien entendu"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Singe qui fait semblant de n\'avoir rien dit"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Personne heureuse qui lève une main"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Personne qui lève les deux bras en signe de victoire"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Personne fronçant les sourcils"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Personne qui boude"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Personne avec les mains croisées"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Fusée"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Hélicoptère"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Locomotive à vapeur"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Wagon"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Train à grande vitesse"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Train à grande vitesse avec nez arrondi"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Train"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Métro"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Train léger"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Gare"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Tramway"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Voiture de tramway"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Bus"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Bus venant de face"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Trolley"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Arrêt de bus"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Minibus"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Ambulance"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Camion de pompiers"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Voiture de police"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Voiture de police venant de face"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taxi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Taxi venant de face"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Automobile"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Automobile venant de face"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Camping-car"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Camion de livraison"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Camion remorque"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Tracteur"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Monorail"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Train de montagne"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Train suspendu"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Téléphérique"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Tramway aérien"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Bateau"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Barque"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Hors-bord"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Feu de circulation horizontal"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Feu de circulation vertical"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Panneau de chantier"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Gyrophare de voiture de police"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Drapeau triangulaire sur un poteau"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Porte"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Panneau d\'interdiction d\'entrée"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Symbole \"zone fumeurs\""</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Symbole \"Interdiction de fumer\""</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Symbole \"jeter les ordures à la poubelle\""</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Symbole \"ne pas jeter d\'ordures\""</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Symbole \"eau potable\""</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Symbole \"eau non potable\""</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Vélo"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Interdit aux vélos"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Cycliste"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"VTTiste"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Piéton"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Interdit aux piétons"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Enfants qui traversent"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Symbole \"homme\""</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Symbole \"femme\""</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Toilettes"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Symbole \"bébé\""</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Siège de toilette"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"WC"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Douche"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Bain"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Baignoire"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Contrôle des passeports"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Douane"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Zone de récupération des bagages"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Consigne à bagages"</string>
+</resources>
diff --git a/java/res/values-fr/strings-talkback-descriptions.xml b/java/res/values-fr/strings-talkback-descriptions.xml
index 7ae2056..bda0595 100644
--- a/java/res/values-fr/strings-talkback-descriptions.xml
+++ b/java/res/values-fr/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Aucun texte saisi"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"La touche <xliff:g id="KEY_NAME">%1$s</xliff:g> permet de remplacer \"<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>\" par \"<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>\"."</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"La touche <xliff:g id="KEY_NAME">%1$s</xliff:g> permet d\'effectuer une correction automatique."</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Aucune suggestion"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Caractère inconnu."</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Maj"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Autres symboles"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"I majuscule, point en chef"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Symbole inconnu."</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Emoji inconnu."</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Ennui"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Embarras"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Lunettes de soleil"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Surpris"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Bisou"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Sourcils froncés"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Des caractères supplémentaires sont disponibles."</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Les caractères supplémentaires sont ignorés."</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Des suggestions supplémentaires sont disponibles."</string>
diff --git a/java/res/values-fr/strings.xml b/java/res/values-fr/strings.xml
index 9cefdad..e1598e2 100644
--- a/java/res/values-fr/strings.xml
+++ b/java/res/values-fr/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrer à chaque touche"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Son à chaque touche"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Agrandir les caractères"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Préférences"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Comptes et confidentialité"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Apparence et dispositions"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Saisie gestuelle"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Correction du texte"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Paramètres avancés"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Thème"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Activer le clavier en deux parties"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Synchronisation du clavier Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"La synchronisation est activée."</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Synchronisez votre dictionnaire personnel sur plusieurs appareils."</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Synchroniser"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Supprimer les données du cloud"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Supprime vos données synchronisées de Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Les données synchronisées seront supprimées du cloud. Continuer ?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Supprimer"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Annuler"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Votre dictionnaire personnel sera synchronisé et sauvegardé sur les serveurs de Google. Des statistiques concernant la fréquence des mots peuvent être recueillies pour nous aider à améliorer nos produits. La collecte et l\'utilisation de toutes les informations sont effectuées conformément aux "<a href="https://www.google.com/policies/privacy">"Règles de confidentialité de Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Ajoutez compte Google à cet appareil pour activer fonctionnalité."</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Autres modes de saisie"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"La touche de sélection de langue couvre d\'autres modes de saisie."</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Touche de sélection de langue"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Afficher lorsque plusieurs langues de saisie sont activées"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Aff. indicateur saisie gest."</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Aff. un repère visuel si l\'utilisateur appuie sur Maj ou Symboles"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Masquer touche agrandie"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Sans délai"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Par défaut"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Dictionnaire principal"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Suggestions de correction"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Afficher les suggestions de terme lors de la saisie"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Toujours afficher"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Afficher en mode Portrait"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Toujours masquer"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Bloquer les termes choquants"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Pas de termes potentiellement choquants"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Correction auto"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Touche de saisie vocale"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Aucun mode de saisie vocale activé. Vérifiez les paramètres de langue et de saisie."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Configurer les modes de saisie"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Langues de saisie"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Envoyer des commentaires"</string>
-    <string name="select_language" msgid="3693815588777926848">"Langues de saisie"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Langues"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Aide et commentaires"</string>
+    <string name="select_language" msgid="5709487854987078367">"Langues"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Appuyer de nouveau pour enregistrer"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Appuyez ici pour enregistrer."</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Dictionnaire disponible"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Thème du clavier"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Changer de compte"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Aucun compte sélectionné"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Vous utilisez actuellement le compte <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Annuler"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Déconnexion"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Sélectionner le compte à utiliser"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Anglais (Royaume-Uni)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Anglais (États-Unis)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Espagnol (États-Unis)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hindi/Anglais"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Serbe (latin)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"anglais (Royaume-Uni) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"anglais (États-Unis) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"espagnol (États-Unis) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hindi/Anglais (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Serbe (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (traditionnel)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (cyrillique)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (latin)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Compact)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Aucune langue (latin)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alphabet latin (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alphabet latin (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alphabet latin (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alphabet latin (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Thème du clavier"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Styles saisie personnalisés"</string>
     <string name="add_style" msgid="6163126614514489951">"Ajouter style"</string>
     <string name="add" msgid="8299699805688017798">"Ajouter"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Activer"</string>
     <string name="not_now" msgid="6172462888202790482">"Pas maintenant"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Le style de saisie suivant existe déjà : <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>."</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Délai appui prolongé sur touche"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Durée vibration press. touche"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Volume son pression de touche"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Lire un fichier de dictionnaire externe"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Aucun fichier de dictionnaire dans le dossier \"Téléchargements\""</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Sélectionner un fichier de dictionnaire à installer"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Installer ce fichier pour la langue \"<xliff:g id="LANGUAGE_NAME">%s</xliff:g>\" ?"</string>
-    <string name="error" msgid="8940763624668513648">"Une erreur s\'est produite"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Délai appui prolongé sur touche"</string>
     <string name="button_default" msgid="3988017840431881491">"Par défaut"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Bienvenue dans <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"avec la saisie gestuelle"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Avec <xliff:g id="APPLICATION_NAME">%s</xliff:g>, vous pouvez saisir du texte dans toutes vos applications préférées."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Configurer des langues supplémentaires"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"OK"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Afficher icône application"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Afficher l\'icône de l\'application dans le lanceur"</string>
     <string name="app_name" msgid="6320102637491234792">"Fournisseur de dictionnaires"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Fournisseur de dictionnaires"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Service de dictionnaires"</string>
diff --git a/java/res/values-gl-rES/strings-emoji-descriptions.xml b/java/res/values-gl-rES/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..cdb67fa
--- /dev/null
+++ b/java/res/values-gl-rES/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Signo de copyright"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Signo de rexistro"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Signo de dobre exclamación"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Signo de interrogación exclamativa"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Símbolo de marca rexistrada"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Fonte de información"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Frecha cara á esquerda e cara á dereita"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Frecha cara arriba e cara abaixo"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Frecha cara o noroeste"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Frecha cara o nordeste"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Frecha cara o sudeste"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Frecha cara o sueste"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Frecha á esquerda con gancho"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Frecha á dereita con gancho"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Ver"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Reloxo de area"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Duplo triángulo negro cara á dereita"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Duplo triángulo negro cara á esquerda"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Duplo triángulo negro cara arriba"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Duplo triángulo negro cara abaixo"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Espertador"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Reloxo de area en movemento"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Letra latina m en maiúscula en círculo"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Cadrado negro pequeno"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Cadrado branco pequeno"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Triángulo negro cara á dereita"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Triángulo que apunta á esquerda"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Cadrado branco mediano"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Cadrado negro mediano"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Cadrado branco pequeno e mediano"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Cadrado negro mediano e pequeno"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Sol negro con raios"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Nube"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Teléfono negro"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Caixa de selección con marca de verificación"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Paraugas con gotas de choiva"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Bebida quente"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Dedo índice branco apuntando cara arriba"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Cara branca sorrinte"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Aries"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Tauro"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Xémini"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Cáncer"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Leo"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Virgo"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Libra"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Escorpio"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Saxitario"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Capricornio"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Acuario"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Piscis"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Picas negras"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Trevos negros"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Corazóns negros"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Diamantes negros"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Fontes termais"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Símbolo universal da reciclaxe negro"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Símbolo de carreira de rodas"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Áncora"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Símbolo de advertencia"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Sinal de alta voltaxe"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Círculo branco mediano"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Círculo negro mediano"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Balón de fútbol"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Béisbol"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Boneco de neve sen neve"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Sol tapado por unha nube"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Ofiuco"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Prohibido pasar"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Igrexa"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Fonte"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Bandeira nun burato"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Bote de vela"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Tenda"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Gasolineira"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Tesoiras negras"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Marca de verificación branca de trazo groso"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Avión"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Sobre"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Puño erguido"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Man erguida"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Man co sinal de vitoria"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Lapis"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Estilográfica negra"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Marca de verificación de trazo groso"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Símbolo de multiplicación x de trazo groso"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Faíscas"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Asterisco de oito puntas"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Estrela negra de oito puntas"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Folerpa"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Faísca"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Cruz"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Cruz branca sobre cadrado de fondo negro"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Signo de interrogación negro"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Signo de interrogación branco"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Signo de exclamación branco"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Signo de exclamación de trazo groso"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Corazón negro de trazo groso"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Signo máis de trazo groso"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Signo menos de trazo groso"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Signo de división de trazo groso"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Frecha negra cara a dereita"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Lazo"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Lazo dobre"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Frecha cara a dereita e curvada cara arriba"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Frecha cara a dereita e curvada cara abaixo"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Frecha negra cara a esquerda"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Frecha negra cara arriba"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Frecha negra cara abaixo"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Cadrado negro grande"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Cadrado branco grande"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Estrela mediana branca"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Círculo grande de trazo ancho"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Guión ondulado"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Marca de alternancia de parte"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Ideograma de felicitación en círculo"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Ideograma de segredo en círculo"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Mosaico Mahjong do dragón vermello"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Comodín negro (carta)"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Tipo sanguíneo A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Tipo sanguíneo B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Tipo sanguíneo O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Aparcadoiro"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Tipo sanguíneo AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"CL sobre cadrado"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Cool sobre cadrado"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Free sobre cadrado"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"ID sobre cadrado"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"New sobre cadrado"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"N G sobre cadrado"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"OK sobre cadrado"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"SOS sobre cadrado"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"UP con signo de exclamación sobre cadrado"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"vs sobre cadrado"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Katakana aquí sobre cadrado"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Servizo katakana sobre cadrado"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Ideograma de uso gratuíto sobre cadrado"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Ideograma de asento reservado sobre cadrado"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Ideograma de prohibición sobre cadrado"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Ideograma de posto vacante sobre cadrado"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Ideograma de aceptación sobre cadrado"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Ideograma de ocupación completa sobre cadrado"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Pago do ideograma sobre cadrado"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Ideograma mensual sobre cadrado"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Ideograma de aplicación sobre cadrado"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Ideograma de desconto sobre cadrado"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Ideograma de negocios sobre cadrado"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Ideograma de beneficios sobre círculo"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Ideograma de aceptar sobre círculo"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Ciclón"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Neboento"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Paraugas pechado"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Noite con estrelas"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Amencer sobre as montañas"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Amencer"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Paisaxe urbana ao anoitecer"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Solpor sobre edificios"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Arco da vella"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Ponte pola noite"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Onda de auga"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Volcán"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Vía láctea"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Europa e África no globo terráqueo"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"As Américas no globo terráqueo"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Asia e Australia no globo terráqueo"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Globo cos meridianos"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Símbolo de lúa nova"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Lúa nova visible"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Símbolo de lúa en cuarto crecente"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Símbolo de lúa xibosa"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Símbolo de lúa chea"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Símbolo de lúa xibosa minguante"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Símbolo de lúa en cuarto minguante"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Símbolo de lúa minguante"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Lúa crecente"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Lúa nova con cara"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Lúa en cuarto crecente con cara"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Lúa en cuarto minguante con cara"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Lúa chea con cara"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Sol con cara"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Estrela brillante"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Estrela fugaz"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Castaña"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Plántula"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Árbore de folla perenne"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Árbore de folla caduca"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palmeira"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Cacto"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulipán"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Flor da cerdeira"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Rosa"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Hibiscos"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Xirasol"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Flor"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Mazaroca de millo"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Planta de arroz"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Planta"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Trevo de catro follas"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Folla de pradairo"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Folla caída"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Folla a voar co vento"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Cogomelo"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Tomate"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Berenxena"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Uvas"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Melón"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Sandía"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Tanxerina"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Limón"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Banana"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Piña"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Mazá vermella"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Mazá verde"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Pera"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Melocotón"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Cereixas"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Fresa"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburguesa"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Porción de pizza"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Carne con óso"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Pata de ave"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Torta de arroz"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Bóla de arroz"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Arroz cocido"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Curry e arroz"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Cunca fumeante"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Spaghetti"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Pan"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Patacas fritidas"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Pataca doce asada"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Sushi"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Camarón frito"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Croqueta de peixe con forma de remuíño"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Xeado"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Granizado"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Xeado de bóla"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Rosquilla"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Galleta"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Barra de chocolate"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Caramelo"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Chupa-chupa"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Crema"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Tarro de mel"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Pastel"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Comida para levar"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Pota con comida"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Cociña"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Garfo e coitelo"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Cunca do té sen agarradoira"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Botella de sake e cunca"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Copa de viño"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Copa de cóctel"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Bebida tropical"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Xerra de cervexa"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Xerras de cervexa en brinde"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Biberón"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Cinta"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Agasallo con envoltorio"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Torta de aniversario"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Cabaza de Halloween"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Árbore de Nadal"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Papá Noel"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Fogos de artificio"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Luces dos fogos de artificio"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Globo"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Decoración para festas"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Bóla de confeti"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Árbore de Tanabata"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Bandeiras cruzadas"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Piñeiro para decorar"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Bonecas xaponesas"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Bandeira con forma de carpa"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Campá de vento"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Cerimonia de contemplación da lúa"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Maletín escolar"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Barrete de graduación"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Cabaliños"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Nora"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Patín"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Cana de pescar e peixe"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Micrófono"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Cámara de cine"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Cine"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Auricular"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Paleta de cores"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Chapeu de copa"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Carpa de circo"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Tícket"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Claqueta"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Artes escénicas"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Videoxogo"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Dardo no centro da diana"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Máquina recreativa"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Billar"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Dado"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Bolos"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Baralla de flores"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Nota musical"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Varias notas musicais"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saxofón"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Guitarra"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Teclado musical"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Trompeta"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Violín"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Partitura"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Camisola para correr cunha banda"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Raqueta de tenis e pelota"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Esquí e bota de esquí"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Baloncesto e canastra"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Bandeira con cadros de xadrez"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Persoa que practica snowboard"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Corredor"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Surfista"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Trofeo"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Carreira de cabalos"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Fútbol americano"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Rugby"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Nadador"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Casa"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Casa con xardín"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Edificio de oficinas"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Oficina de correos xaponesa"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Oficina de correos europea"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Hospital"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Banco"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Caixeiro automático"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Hotel"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Hotel do amor"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Tenda 24 horas"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Escola"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Grandes almacéns"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Fábrica"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Lámpada Izakaya"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Castelo xaponés"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Castelo europeo"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Rata"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Rato"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Boi"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Búfalo de auga"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Vaca"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Leopardo"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Coello"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Gato"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Dragón"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Crocodilo"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Balea"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Caracol"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Cobra"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Cabalo"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Carneiro"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Cabra"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Ovella"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Mono"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Galo"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Polo"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Can"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Porco"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Xabaril"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Elefante"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Polbo"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Cuncha con espiral"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Bicho"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Formiga"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Abella"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Xoaniña"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Peixes"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Peixe tropical"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Peixe globo"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Tartaruga"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Galiña a chocar"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Pitiño"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Pitiño de fronte"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Paxaro"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Pingüín"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Coala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Cachorro"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Dromedario"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Camelo"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Golfiño"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Cara de rato"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Cara de vaca"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Cara de tigre"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Cara de coello"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Cara de gato"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Cara de dragón"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Balea que bota auga"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Cara de cabalo"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Cara de mono"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Cara de can"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Cara de porco"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Cara de ra"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Cara de hámster"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Cara de lobo"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Cara de oso"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Cara de panda"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Nariz de porco"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Pegadas de patas de animais"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Ollos"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Orella"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Nariz"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Boca"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Lingua"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Man branca co índice a sinalar cara a arriba"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Man branca co índice a sinalar cara a abaixo"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Man branca co índice a sinalar cara á esquerda"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Man branca co índice a sinalar cara á dereita"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Puño"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Man con aceno de saudar"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Man con aceno de aprobación"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Polgar cara arriba"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Polgar cara abaixo"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Mans a dar palmas"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Mans abertas"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Coroa"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Sombreiro de muller"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Lentes"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Gravata de lazo"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Camiseta"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Vaqueiros"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Vestido"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Quimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Roupa de muller"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Portamoedas"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Bolso"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Neceser"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Zapato de home"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Zapato de deporte"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Zapato de tacón"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Sandalia de muller"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Botas de muller"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Pegadas"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Silueta de persoa"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Siluetas de persoas"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Chico"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Chica"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Home"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Muller"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Familia"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Home e muller collidos da man"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Dous homes collidos da man"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Dúas mulleres collidas da man"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Policía"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Muller con orellas de coello"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Noiva con veo"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Persoa co cabelo louro"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Home con bigote xaponés"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Home con turbante"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Ancián"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Anciá"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Bebé"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Obreiro"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Princesa"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Ogro xaponés"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Trasno xaponés"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Pantasma"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Anxo bebé"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Extraterrestre"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Monstro alien"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Demo"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Caveira"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Persoa de atención ao cliente"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Soldado"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Bailarín"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Pintalabios"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Pintauñas"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Masaxe facial"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Corte de cabelo"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Sinal de barbaría"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Xiringa"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Pílula"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Bico"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Carta de amor"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Anel"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Pedra preciosa"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Bico"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Papel bouquet"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Parella con corazón"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Vodas"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Corazón que bate"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Corazón roto"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Dous corazóns"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Corazón brillante"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Corazón que crece"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Corazón con frecha"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Corazón azul"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Corazón verde"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Corazón amarelo"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Corazón violeta"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Corazón con cinta"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Corazóns que dan voltas"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Corazón decorativo"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Diamante cun punto dentro"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Lámpada"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Símbolo da ira"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bomba"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Símbolo de durmir"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Símbolo de colisión"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Símbolo de suor a caer"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Pinga"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Raia"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Montón de caca"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Bíceps flexionados"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Símbolo de mareado"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Globo de discurso"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Globo de pensamento"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Flor branca"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Símbolo de cen puntos"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Carteira"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Cambio de moeda"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Símbolo groso do dólar"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Tarxeta de crédito"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Billete co símbolo do ien"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Billete co símbolo do dólar"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Billete co símbolo do euro"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Billete co símbolo da libra"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Diñeiro con ás"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Gráfica ascendente e o símbolo do ien"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Asento"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Computador"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Portadocumentos"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Minidisc"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Disquete"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Disco óptico"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"Dvd"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Cartafol de ficheiros"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Cartafol aberto"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Folla cunha parte curva"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Páxina cara arriba"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Calendario"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Calendario de follas soltas"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Clasificador de tarxetas"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Gráfica ascendente"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Gráfica descendente"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Gráfica de barras"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Portapapeis"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Alfinete"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Chincheta redonda"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Clip"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Regra"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Cartabón"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Marcapáxinas"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Papel de contabilidade"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Caderno de notas"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Caderno con portada decorativa"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Libro pechado"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Libro aberto"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Libro verde"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Libro azul"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Libro laranxa"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Libros"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Identificación"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Desprazar"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Nota"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Auricular do teléfono"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Busca"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Fax"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Antena de satélite"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Altofalante"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Megáfono"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Caixa de saída"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Caixa de entrada"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Paquete"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Símbolo de correo electrónico"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Sobre recibido"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Sobre con frecha cara abaixo enriba"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Caixa de correo pechada coa bandeiriña baixada"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Caixa de correo pechada coa bandeiriña erguida"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Caixa de correo aberta coa bandeiriña subida"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Caixa de correo aberta coa bandeiriña baixada"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Caixa de correo"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Corneta de posta"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Prensa"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Teléfono móbil"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Teléfono móbil con frecha cara a dereita na esquerda"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Modo de vibración"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Teléfono móbil apagado"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Prohibido teléfonos móbiles"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Antena con barras"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Cámara"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Videocámara"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Televisión"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Radio"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Videocasete"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Frechas cara á dereita enroscadas"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Frechas en círculo cara a dereita e cara a esquerda que xiran no sentido das agullas do reloxo"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Frechas en círculo cara a dereita e cara a esquerda que xiran no sentido das agullas do reloxo co número 1 en círculo superposto"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Frechas en círculos abertos que xira cara a dereita e cara arriba e abaixo"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Frechas en círculo cara arriba e cara abaixo que xiran no sentido contrario das agullas do reloxo"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Símbolo de luminosidade baixa"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Símbolo de luminosidade alta"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Altofalante con trazo de cancelación"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Altofalante"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Altofalante cunha onda de son"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Altofalante con tres ondas de son"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Batería"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Enchufe"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Lupa inclinada cara a esquerda"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Lupa inclinada cara a dereita"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Cadeado con estilográfica"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Cadeado pechado coa chave"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Chave"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Cadeado"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Cadeado aberto"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Campá"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Campá con trazo de cancelación"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Marcador"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Símbolo de ligazón"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Botón de opción"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"\"Back\" cunha frecha cara a esquerda enriba"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"\"End\" cunha frecha cara a esquerda enriba"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"\"On\" cun signo de exclamación e cunha frecha dobre cara a esquerda e cara a dereita enriba"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"\"Soon\" cunha frecha cara a dereita enriba"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"\"Top\" cunha frecha cara arriba enriba"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Símbolo de prohibido a menores de dezaoito"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Tecla co número dez"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Símbolo de entrada para letras maiúsculas latinas"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Símbolo de entrada para letras minúsculas latinas"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Símbolo de entrada para números"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Símbolo de entrada para símbolos"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Símbolo de entrada para letras latinas"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Lume"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Lanterna"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Chave inglesa"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Martelo"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Parafuso e porca"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Hocho"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Pistola"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Microscopio"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Telescopio"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Bóla de cristal"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Estrela de seis puntas cun punto no medio"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Símbolo xaponés para principiante"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Tridente"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Botón cadrado negro"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Botón cadrado branco"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Círculo vermello grande"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Círculo azul grande"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Diamante laranxa grande"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Diamante azul grande"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Diamante laranxa pequeno"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Diamante azul pequeno"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Triángulo vermello apuntando cara arriba"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Triángulo vermello cara abaixo"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Triángulo vermello pequeno apuntando cara arriba"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Triángulo vermello pequeno apuntando cara abaixo"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Reloxo que marca a unha en punto"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Reloxo que marca as dúas en punto"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Reloxo que marca as tres en punto"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Reloxo que marca as catro en punto"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Reloxo que marca as cinco en punto"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Reloxo que marca as seis en punto"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Reloxo que marca as sete en punto"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Reloxo que marca as oito en punto"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Reloxo que marca as nove en punto"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Reloxo que marca as dez en punto"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Reloxo que marca as once en punto"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Reloxo que marca as doce en punto"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Reloxo que marca a unha e media"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Reloxo que marca as dúas e media"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Reloxo que marca as tres e media"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Reloxo que marca as catro e media"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Reloxo que marca as cinco e media"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Reloxo que marca as seis e media"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Reloxo que marca as sete e media"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Reloxo que marca as oito e media"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Reloxo que marca as nove e media"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Reloxo que marca as dez e media"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Reloxo que marca as once e media"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Reloxo que marca as doce e media"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Monte Fuji"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Torre de Toquio"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Estatua da Liberdade"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Silueta do Xapón"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moyai"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Cara con sorriso burlón"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Cara con sorriso burlón e ollos sorrintes"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Cara con bágoas de alegría"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Cara sorrinte coa boca aberta"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Cara sorrinte coa boca aberta e ollos sorrintes"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Cara sorrinte coa boca aberta e suor frío"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Cara sorrinte coa boca aberta e os ollos pechados con forza"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Cara sorrinte con halo"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Cara sorrinte con cornos"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Cara que chisca un ollo"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Cara sorrinte con ollos sorrintes"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Cara saboreando unha comida deliciosa"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Cara con sensación de alivio"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Cara sorrinte con ollos en forma de corazón"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Cara sorrinte con gafas de sol"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Cara con sorriso burlón"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Cara neutral"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Cara sen expresión"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Cara de pouca graza"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Cara con suor frío"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Cara pensativa"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Cara confusa"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Cara de confusión"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Cara con labios para bicar"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Cara a mandar un bico"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Cara con labios para bicar con ollos sorrintes"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Cara con labios para bicar cos ollos pechados"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Cara coa lingua fóra"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Cara coa lingua fóra e un ollos chiscado"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Cara coa lingua fóra e os ollos pechados con forza"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Cara de desgusto"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Cara de preocupación"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Cara de enfado"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Cara de moito enfado"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Cara a chorar"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Cara de tenacidade"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Cara con aspecto de gañar"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Cara de desgusto pero con sensación de alivio"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Cara triste coa boca aberta"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Cara de angustia"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Cara de medo"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Cara de desánimo"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Cara de sono"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Cara de cansazo"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Cara con xesto"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Cara que chora desconsoladamente"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Cara coa boca aberta"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Cara de silencio"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Cara coa boca aberta e suor frío"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Cara que grita de medo"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Cara de asombro"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Cara de vergoña"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Cara a durmir"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Cara de mareo"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Cara sen boca"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Cara con máscara médica"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Cara con sorriso burlón e ollos sorrintes"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Cara con bágoas de alegría"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Cara de gato sorrinte coa boca aberta"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Cara de gato sorrinte cos ollos en forma de corazón"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Cara de gato con sorriso pícaro"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Cara de gato que dá un bico e cos ollos pechados"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Cara de gato moi enfadado"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Cara de gato a chorar"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Cara de gato cansado"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Cara con xesto de desaprobación"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Cara con xesto de aprobación"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Persoa facendo unha reverencia"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Mono que non quere ver nada malo"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Mono que non quere oír nada malo"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Mono que non quere falar de nada malo"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Persoa feliz a erguer unha man"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Persoa a erguer as dúas mans como celebración"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Persoa co cello engurrado"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Persoa con cara moi enfadada"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Persoa coas mans xuntas"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Foguete"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Helicóptero"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Locomotora a vapor"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Vagón"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Tren de alta velocidade"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Tren de alta velocidade con morro en forma de bala"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Tren"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Metro"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Tren lixeiro"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Estación"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Tranvía"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Tranvía"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Autobús"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Autobús próximo"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Trolebús"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Parada de autobús"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Minibús"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Ambulancia"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Camión dos bombeiros"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Coche de policía"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Coche de policía próximo"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taxi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Taxi próximo"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Automóbil"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Automóbil próximo"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Caravana"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Camión de entrega"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Camión articulado"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Tractor"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Monorraíl"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Vía de tren na montaña"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Vía férrea en suspensión"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Teleférico na montaña"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Teleférico"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Nave"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Bote de remos"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Lancha motora"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Semáforo"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Semáforo"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Símbolo de construción"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Coches de policía coas luces acesas"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Bandeira con forma de triángulo pendurada nun poste"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Porta"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Símbolo de prohibido pasar"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Símbolo de fumar"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Símbolo de prohibido fumar"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Símbolo de poñer o lixo neste lugar"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Símbolo de prohibido contaminar"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Símbolo de auga potable"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Símbolo de auga non potable"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Bicicleta"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Prohibido bicicletas"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Ciclista"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Ciclista de montaña"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Peón"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Prohibido peóns"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Nenos a cruzar"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Símbolo de homes"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Símbolo de mulleres"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Aseo"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Símbolo de bebé"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Baño"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Retrete"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Ducha"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Baño"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Bañeira"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Control de pasaportes"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Aduanas"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Zona de recollida de equipaxes"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Equipaxe en depósito"</string>
+</resources>
diff --git a/java/res/values-gl-rES/strings-talkback-descriptions.xml b/java/res/values-gl-rES/strings-talkback-descriptions.xml
index d253d34..70732a0 100644
--- a/java/res/values-gl-rES/strings-talkback-descriptions.xml
+++ b/java/res/values-gl-rES/strings-talkback-descriptions.xml
@@ -20,112 +20,69 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for spoken_use_headphones (4313642710742229868) -->
-    <skip />
-    <!-- no translation found for spoken_current_text_is (4240549866156675799) -->
-    <skip />
-    <!-- no translation found for spoken_no_text_entered (1711276837961785646) -->
-    <skip />
-    <!-- no translation found for spoken_auto_correct (8989324692167993804) -->
-    <skip />
-    <!-- no translation found for spoken_auto_correct_obscured (7769449372355268412) -->
-    <skip />
+    <string name="spoken_use_headphones" msgid="4313642710742229868">"Conecta uns auriculares para escoitar as teclas do contrasinal pronunciadas."</string>
+    <string name="spoken_current_text_is" msgid="4240549866156675799">"O texto actual é %s"</string>
+    <string name="spoken_no_text_entered" msgid="1711276837961785646">"Non se introduciu ningún texto"</string>
+    <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corrixe <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> por <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
+    <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> leva a cabo a corrección automática"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Non hai suxestións"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Carácter descoñecido"</string>
-    <!-- no translation found for spoken_description_shift (7209798151676638728) -->
-    <skip />
-    <!-- no translation found for spoken_description_symbols_shift (3483198879916435717) -->
-    <skip />
-    <!-- no translation found for spoken_description_shift_shifted (3122704922642232605) -->
-    <skip />
-    <!-- no translation found for spoken_description_symbols_shift_shifted (5179175466878186081) -->
-    <skip />
-    <!-- no translation found for spoken_description_caps_lock (1224851412185975036) -->
-    <skip />
-    <!-- no translation found for spoken_description_delete (3878902286264983302) -->
-    <skip />
-    <!-- no translation found for spoken_description_to_symbol (8244903740201126590) -->
-    <skip />
-    <!-- no translation found for spoken_description_to_alpha (4081215210530031950) -->
-    <skip />
-    <!-- no translation found for spoken_description_to_numeric (4560261331530795682) -->
-    <skip />
-    <!-- no translation found for spoken_description_settings (7281251004003143204) -->
-    <skip />
-    <!-- no translation found for spoken_description_tab (8210782459446866716) -->
-    <skip />
-    <!-- no translation found for spoken_description_space (5908716896642059145) -->
-    <skip />
-    <!-- no translation found for spoken_description_mic (6153138783813452464) -->
-    <skip />
-    <!-- no translation found for spoken_description_emoji (7990051553008088470) -->
-    <skip />
-    <!-- no translation found for spoken_description_return (3183692287397645708) -->
-    <skip />
-    <!-- no translation found for spoken_description_search (5099937658231911288) -->
-    <skip />
-    <!-- no translation found for spoken_description_dot (5644176501632325560) -->
-    <skip />
-    <!-- no translation found for spoken_description_language_switch (6818666779313544553) -->
-    <skip />
-    <!-- no translation found for spoken_description_action_next (431761808119616962) -->
-    <skip />
-    <!-- no translation found for spoken_description_action_previous (2919072174697865110) -->
-    <skip />
-    <!-- no translation found for spoken_description_shiftmode_on (5107180516341258979) -->
-    <skip />
-    <!-- no translation found for spoken_description_shiftmode_locked (7307477738053606881) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_symbol (111186851131446691) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_symbol_shift (4305607977537665389) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_alpha (4676004119618778911) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_phone (2061220553756692903) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_phone_shift (7879963803547701090) -->
-    <skip />
-    <!-- no translation found for announce_keyboard_hidden (2313574218950517779) -->
-    <skip />
-    <!-- no translation found for announce_keyboard_mode (6698257917367823205) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_date (6597407244976713364) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_date_time (3642804408726668808) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_email (1239682082047693644) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_im (3812086215529493501) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_number (5395042245837996809) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_phone (2486230278064523665) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_text (9138789594969187494) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_time (8558297845514402675) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_url (8072011652949962550) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_recents (4185344945205590692) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_people (8414196269847492817) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_objects (6116297906606195278) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_nature (5018340512472354640) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_places (1163315840948545317) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_symbols (474680659024880601) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_emoticons (456737544787823539) -->
-    <skip />
+    <string name="spoken_description_shift" msgid="7209798151676638728">"Maiús"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Máis símbolos"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Maiús"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Símbolos"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Maiús"</string>
+    <string name="spoken_description_delete" msgid="3878902286264983302">"Suprimir"</string>
+    <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Símbolos"</string>
+    <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Letras"</string>
+    <string name="spoken_description_to_numeric" msgid="4560261331530795682">"Números"</string>
+    <string name="spoken_description_settings" msgid="7281251004003143204">"Configuración"</string>
+    <string name="spoken_description_tab" msgid="8210782459446866716">"Pestana"</string>
+    <string name="spoken_description_space" msgid="5908716896642059145">"Espazo"</string>
+    <string name="spoken_description_mic" msgid="6153138783813452464">"Entrada de voz"</string>
+    <string name="spoken_description_emoji" msgid="7990051553008088470">"Emoji"</string>
+    <string name="spoken_description_return" msgid="3183692287397645708">"Volver"</string>
+    <string name="spoken_description_search" msgid="5099937658231911288">"Buscar"</string>
+    <string name="spoken_description_dot" msgid="5644176501632325560">"Punto"</string>
+    <string name="spoken_description_language_switch" msgid="6818666779313544553">"Cambiar idioma"</string>
+    <string name="spoken_description_action_next" msgid="431761808119616962">"Seguinte"</string>
+    <string name="spoken_description_action_previous" msgid="2919072174697865110">"Anterior"</string>
+    <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Maiús activadas"</string>
+    <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Bloqueo de maiúsculas activado"</string>
+    <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Modo de símbolos"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Modo máis símbolos"</string>
+    <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Modo de cartas"</string>
+    <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Modo teléfono"</string>
+    <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Modo de símbolos do teléfono"</string>
+    <string name="announce_keyboard_hidden" msgid="2313574218950517779">"Teclado oculto"</string>
+    <string name="announce_keyboard_mode" msgid="6698257917367823205">"Mostrar teclado <xliff:g id="KEYBOARD_MODE">%s</xliff:g>"</string>
+    <string name="keyboard_mode_date" msgid="6597407244976713364">"data"</string>
+    <string name="keyboard_mode_date_time" msgid="3642804408726668808">"data e hora"</string>
+    <string name="keyboard_mode_email" msgid="1239682082047693644">"correo electrónico"</string>
+    <string name="keyboard_mode_im" msgid="3812086215529493501">"mensaxería"</string>
+    <string name="keyboard_mode_number" msgid="5395042245837996809">"número"</string>
+    <string name="keyboard_mode_phone" msgid="2486230278064523665">"teléfono"</string>
+    <string name="keyboard_mode_text" msgid="9138789594969187494">"texto"</string>
+    <string name="keyboard_mode_time" msgid="8558297845514402675">"hora"</string>
+    <string name="keyboard_mode_url" msgid="8072011652949962550">"URL"</string>
+    <string name="spoken_descrption_emoji_category_recents" msgid="4185344945205590692">"Recentes"</string>
+    <string name="spoken_descrption_emoji_category_people" msgid="8414196269847492817">"Persoas"</string>
+    <string name="spoken_descrption_emoji_category_objects" msgid="6116297906606195278">"Obxectos"</string>
+    <string name="spoken_descrption_emoji_category_nature" msgid="5018340512472354640">"Natureza"</string>
+    <string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"Lugares"</string>
+    <string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"Símbolos"</string>
+    <string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"Emoticonas"</string>
     <string name="spoken_description_upper_case" msgid="4904835255229433916">"<xliff:g id="LOWER_LETTER">%s</xliff:g> maiúscula"</string>
     <string name="spoken_letter_0049" msgid="4743162182646977944">"I maiúscula"</string>
     <string name="spoken_letter_0130" msgid="4766619646231612274">"I maiúscula, punto superior"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Símbolo descoñecido"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Emoji descoñecido"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Cara aburrida"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Cara con vergoña"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Cara con gafas de sol"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Cara de sorpresa"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Cara con labios para bicar"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Cara engurrando o cello"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Os caracteres alternativos están dispoñibles"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Descártanse os caracteres alternativos"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"As suxestións alternativas están dispoñibles"</string>
diff --git a/java/res/values-gl-rES/strings.xml b/java/res/values-gl-rES/strings.xml
index a02e383..8370aed 100644
--- a/java/res/values-gl-rES/strings.xml
+++ b/java/res/values-gl-rES/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrar ao tocar as teclas"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Son ao premer as teclas"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Ventás emerxentes ao premer as teclas"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferencias"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Contas e privacidade"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Aparencia e deseños"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Escritura xestual"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Corrección de texto"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Opcións avanzadas"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Activar teclado dividido"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Sincronización do teclado Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"A sincronización está activada"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Sincroniza o teu dicionario persoal nos dispositivos"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Sincronizar agora"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Eliminar datos da nube"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Elimina os teus datos sincronizados de Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Os teus datos sincronizados eliminaranse da nube. Estás seguro?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Eliminar"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Cancelar"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Sincronizarase o teu dicionario persoal e realizarase unha copia de seguranza nos servidores de Google. Quizais se recompile información estatística da frecuencia das palabras para axudar a mellorar os nosos produtos. A recompilación e o uso de toda a información cumprirán coa "<a href="https://www.google.com/policies/privacy">"Política de privacidade de Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Engade unha conta de Google ao dispositivo para activar a función"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Outros métodos de entrada"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"A tecla de cambio de idioma inclúe outros métodos de entrada"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Tecla de cambio de idioma"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Mostra cando hai varios idiomas de entrada activados"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Mostrar indicador movemento"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Indicación visual ao pasar o dedo nas teclas Maiús ou de símbolos"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Retraso ao ampliar tecla"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Sen retraso"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Predeterminado"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Dicionario principal"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Mostrar suxestións de corrección"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Mostra palabras suxeridas mentres escribes"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Mostrar sempre"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Mostrar en modo vertical"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Ocultar sempre"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Bloquear palabras ofensivas"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Non suxerir palabras potencialmente ofensivas"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Autocorrección"</string>
@@ -85,24 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Tecla de entrada de voz"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Non hai ningún método de entrada de voz activado. Comproba a configuración de Idioma e entrada de texto."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Configurar métodos de entrada"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Idiomas de entrada"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Enviar comentarios"</string>
-    <string name="select_language" msgid="3693815588777926848">"Idiomas de entrada"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Idiomas"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Axuda e suxerencias"</string>
+    <string name="select_language" msgid="5709487854987078367">"Idiomas"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Toca de novo para gardar"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Toca aquí para gardar"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Dicionario dispoñible"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Tema do teclado"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Cambiar contas"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Non se seleccionou ningunha conta"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Actualmente utilizando <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"Aceptar"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Cancelar"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Pechar sesión"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Selecciona unha conta para usar"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Inglés (Reino Unido)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Inglés (EUA)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Español (EUA)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Serbio (latino)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Inglés (Reino Unido) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Inglés (EUA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Español (EUA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
-    <!-- no translation found for subtype_generic_traditional (8584594350973800586) -->
-    <skip />
-    <!-- no translation found for subtype_generic_cyrillic (7486451947618138947) -->
-    <skip />
-    <!-- no translation found for subtype_generic_latin (9128716486310604145) -->
-    <skip />
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Serbio (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tradicional)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (compacto)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Ningún idioma (alfabeto)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabeto (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabeto (QWERTZ)"</string>
@@ -111,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabeto (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabeto (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Tema do teclado"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Estilos de entrada personalizados"</string>
     <string name="add_style" msgid="6163126614514489951">"Engadir estilo"</string>
     <string name="add" msgid="8299699805688017798">"Engadir"</string>
@@ -132,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Activar"</string>
     <string name="not_now" msgid="6172462888202790482">"Agora non"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Xa existe o mesmo estilo de entrada: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Retraso de pulsación prolongada"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Duración vibración ao premer teclas"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Volume do son ao premer teclas"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Ler ficheiro de dicionario externo"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Non hai ningún ficheiro de dicionario no cartafol de descargas"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Selecciona un ficheiro de dicionario para instalar"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Realmente queres instalar este ficheiro para <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Produciuse un erro"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Retraso de pulsación prolongada"</string>
     <string name="button_default" msgid="3988017840431881491">"Predeterminado"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Benvido a <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"con escritura xestual"</string>
@@ -157,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Agora podes escribir en todas as túas aplicacións favoritas con <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Configurar idiomas adicionais"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Finalizado"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Mostrar icona da aplicación"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Mostra a icona da aplicación no menú de aplicacións"</string>
     <string name="app_name" msgid="6320102637491234792">"Fornecedor do dicionario"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Fornecedor do dicionario"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Servizo de dicionario"</string>
@@ -176,7 +170,7 @@
     <string name="no_dictionaries_available" msgid="8039920716566132611">"Non hai dicionarios"</string>
     <string name="check_for_updates_now" msgid="8087688440916388581">"Actualizar"</string>
     <string name="last_update" msgid="730467549913588780">"Última actualización"</string>
-    <string name="message_updating" msgid="4457761393932375219">"Comprobando se hai actualizacións"</string>
+    <string name="message_updating" msgid="4457761393932375219">"Buscando actualizacións"</string>
     <string name="message_loading" msgid="5638680861387748936">"Cargando..."</string>
     <string name="main_dict_description" msgid="3072821352793492143">"Dicionario principal"</string>
     <string name="cancel" msgid="6830980399865683324">"Cancelar"</string>
diff --git a/java/res/values-hi/donottranslate-config-spacing-and-punctuations.xml b/java/res/values-hi/donottranslate-config-spacing-and-punctuations.xml
new file mode 100644
index 0000000..4ef36c0
--- /dev/null
+++ b/java/res/values-hi/donottranslate-config-spacing-and-punctuations.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- The sentence separator code point, for double-space-to-period -->
+    <!-- U+007C: "|" VERTICAL LINE ; 7Ch = 124d -->
+    <integer name="sentence_separator">124</integer>
+</resources>
diff --git a/java/res/values-hi/strings-action-keys.xml b/java/res/values-hi/strings-action-keys.xml
index 7237c24..8768ee7 100644
--- a/java/res/values-hi/strings-action-keys.xml
+++ b/java/res/values-hi/strings-action-keys.xml
@@ -21,7 +21,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="label_go_key" msgid="4033615332628671065">"जाएं"</string>
-    <string name="label_next_key" msgid="5586407279258592635">"अगला"</string>
+    <string name="label_next_key" msgid="5586407279258592635">"आगे"</string>
     <string name="label_previous_key" msgid="1421141755779895275">"पिछला"</string>
     <string name="label_done_key" msgid="7564866296502630852">"पूर्ण"</string>
     <string name="label_send_key" msgid="482252074224462163">"भेजें"</string>
diff --git a/java/res/values-hi/strings-config-important-notice.xml b/java/res/values-hi/strings-config-important-notice.xml
index 3f22541..c3332bb 100644
--- a/java/res/values-hi/strings-config-important-notice.xml
+++ b/java/res/values-hi/strings-config-important-notice.xml
@@ -20,5 +20,5 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="use_personalized_dicts_summary" msgid="590432261305469627">"सुझावों में सुधार हेतु अपने संचार और लिखे गए डेटा से जानकारी पाएं"</string>
+    <string name="use_personalized_dicts_summary" msgid="590432261305469627">"सुझावों में सुधार के लिए अपने संचार और लिखे गए डेटा से जानकारी पाएं"</string>
 </resources>
diff --git a/java/res/values-hi/strings-emoji-descriptions.xml b/java/res/values-hi/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..1f18e6a
--- /dev/null
+++ b/java/res/values-hi/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"कॉपीराइट चिह्न"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"पंजीकृत चिह्न"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"दोहरा विस्मयादिबोधक चिह्न"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"विस्मयादिबोधक प्रश्नवाचक चिह्न"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"ट्रेडमार्क चिह्न"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"जानकारी स्रोत"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"बायां दायां तीर"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"ऊपर नीचे तीर"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"उत्तर पश्चिम तीर"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"उत्तर पूर्व तीर"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"दक्षिण पूर्व तीर"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"दक्षिण पश्चिम तीर"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"हुक वाला बाईं ओर मुड़ा तीर"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"हुक वाला दाईं ओर मुड़ा तीर"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"देखें"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"रेतघड़ी"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"काला दाईं ओर इंगित करता दोहरा त्रिभुज"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"काला बाईं ओर इंगित करता दोहरा त्रिभुज"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"काला ऊपर की ओर इंगित करता दोहरा त्रिभुज"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"काला नीचे इंगित करता हुआ दोहरा त्रिभुज"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"अलार्म घड़ी"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"बहती रेत वाली रेत घड़ी"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"घेराबद्ध बड़ा अक्षर m"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"काला छोटा वर्ग"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"सफेद छोटा वर्ग"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"काला दाईं ओर इंगित करता हुआ त्रिभुज"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"काला बाईं ओर इंगित करता हुआ त्रिभुज"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"सफेद मध्यम वर्ग"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"काला मध्यम वर्ग"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"सफेद मध्यम छोटा वर्ग"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"काला मध्यम छोटा वर्ग"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"किरणों वाला काला सूर्य"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"बादल"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"काला टेलीफ़ोन"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"चेक वाला बैलट बॉक्स"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"बारिश की बूंदों वाला छाता"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"गर्म पेय"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"सफेद ऊपर इंगित करता हुआ सूचक"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"सफेद हंसता हुआ चेहरा"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"मेष"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"वृषभ"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"मिथुन"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"कर्क"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"सिंह"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"कन्या"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"तुला"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"वृश्चिक"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"धनु"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"मकर"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"कुंभ"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"मीन"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"कालापान"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"चिड़ी"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"कालापान"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"ईंट"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"उष्ण बसंत"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"काला वैश्विक रिसायक्लिंग प्रतीक"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"व्हीलचेयर प्रतीक"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"एंकर"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"चेतावनी चिह्न"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"उच्च वोल्टेज चिह्न"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"मध्यम सफेद घेरा"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"मध्यम काला घेरा"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"फुटबॉल"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"बेसबॉल"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"बिना बर्फ वाला स्नोमेन"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"बादलों के पीछे सूर्य"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"ऑफ़ीयूकस"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"प्रवेश नहीं"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"गिरजाघर"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"फव्वारा"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"छिद्र में झंडा"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"पाल-नौका"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"तम्बू"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"फ्यूल पंप"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"काली कैंचियां"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"सफेद मोटा चेक मार्क"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"हवाईजहाज़"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"लिफ़ाफ़ा"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"उठी हुई मुठ्ठी"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"उठा हुआ हाथ"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"विजयी हाथ"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"पेंसिल"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"काली निब"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"मोटा चेक मार्क"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"मोटा गुणन x"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"चिंगारियां"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"आठ सलाखों वाला तारा"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"आठ भुजाओं वाला काला तारा"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"स्नोफ्लेक"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"चिंगारी"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"क्रॉस चिह्न"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"नेगेटिव वर्ग वाला क्रॉस चिह्न"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"काला प्रश्नवाचक चिह्न आभूषण"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"सफेद प्रश्नवाचक चिह्न आभूषण"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"सफेद विसमयादिबोधक चिह्न आभूषण"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"मोटा विस्मयादिबोधक चिह्न प्रतीक"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"मोटा काला दिल"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"मोटा धन चिह्न"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"मोटा ऋण चिह्न"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"मोटा विभाजन चिह्न"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"काला दायां तीर"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"घुमावदार लूप"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"दोहरा घुमावदार लूप"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"दाईं ओर होकर ऊपर तीर"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"दाईं ओर होकर नीचे तीर"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"बाएं काला तीर"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"ऊपर काला तीर"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"नीचे काला तीर"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"काला बड़ा वर्ग"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"सफेद बड़ा वर्ग"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"सफेद मध्यम तारा"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"मोटा बड़ा चक्र"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"लहरिल डैश"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"भाग विकल्प चिह्न"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"चक्रित आइडियोग्राफ़़ बधाई"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"चक्रित आइडियोग्राफ़ रहस्य"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"माहजोंग टाइल लाल ड्रेगन"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"प्लेइंग कार्ड काला जोकर"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"रक्त प्रकार A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"रक्त प्रकार B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"रक्त प्रकार O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"पार्किंग स्थल"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"रक्त प्रकार AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"चौकोर CL"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"शानदार चौकोर"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"मुक्त चौकोर"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"चौकोर आईडी"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"नया चौकोर"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"चौकोर N G"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"चौकोर ठीक"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"चौकोर SOS"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"चौकोर आकार के साथ विस्मयादिबोधक चिह्न"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"चौकोर बनाम"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"चौकोर काताकाना"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"चौकोर काताकाना सेवा"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"चौकोर आइडियोग्राफ़़ निशुल्क"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"चौकोर आइडियोग्राफ़ आरक्षित सीट"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"चौकोर आइडियोग्राफ़ प्रतिबंध"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"चौकोर आइडियोग्राफ़ वेकेंसी"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"चौकोर ऑडियोग्राफ़ स्वीकार्यता"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"चौकोर आइडियोग्राफ़़ पूर्ण अधिकार"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"चौकोर आइडियोग्राफ़ सशुल्क"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"चौकोर आइडियोग्राफ़़ मासिक"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"चौकोर आइडियोग्राफ़़ ऐप्लिकेशन"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"चौकोर आइडियोग्राफ़़ छूट"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"व्यवसाय में चौकोर आइडियोग्राफ़़"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"गोल आइडियोग्राफ़़ लाभ"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"गोल आइडियोग्राफ़़ स्वीकार"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"चक्रवात"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"कोहरे वाला"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"बंद छाता"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"तारों भरी रात"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"पहाड़ों पर सूर्योदय"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"सूर्योदय"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"संध्याकाल में शहर का दृश्य"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"बिल्डिंग पर सूर्यास्त"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"इंद्रधनुष"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"रात में पुल"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"पानी की लहर"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"ज्वालामुखी"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"आकाशगंगा"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"विश्व ग्लोब यूरोप-अफ़्रीका"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"विश्व ग्लोब अमेरिका"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"विश्व ग्लोब एशिया-ऑस्ट्रेलिया"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"मध्याह्न रेखाओं वाला ग्लोब"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"नए चंद्रमा का प्रतीक"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"शुक्लपक्षीय चाप के आकार का चंद्र प्रतीक"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"शुल्कपक्षीय अर्द्धचंद्र प्रतीक"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"शुक्लपक्षीय तीन-चौथाई आकार का चंद्र प्रतीक"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"पूर्ण चंद्र प्रतीक"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"कृष्णपक्षीय तीन-चौथाई आकार का चंद्र प्रतीक"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"कृष्णपक्षीय अर्द्धचंद्र प्रतीक"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"कृष्णपक्षीय अर्धचंद्र का प्रतीक"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"कृष्णपक्षीय चाप के आकार का चंद्र प्रतीक"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"चेहरे वाला नव चंद्र"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"चेहरे वाला शुल्कपक्षीय अर्द्धचंद्र"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"चेहरे वाला कृष्णपक्षीय अर्द्धचंद्र"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"चेहरे वाला पूर्ण चंद्र"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"चेहरे वाला सूरज"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"चमकता सितारा"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"टूटा तारा"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"शाहबलूत"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"अंकुर"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"सदाबहार वृक्ष"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"पर्णपाती वृक्ष"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"ताड़ का वृक्ष"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"कैक्टस"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"ट्यूलिप"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"चेरी के फूल"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"गुलाब"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"गुड़हल"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"सूर्यमुखी"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"फूल"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"मक्के का भुट्टा"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"चावल की बाली"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"जड़ी-बूटी"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"चार पत्तियों वाला क्लोवर"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"चिनार की पत्ती"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"गिरी हुई पत्ती"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"हवा में फड़फड़ाती पत्ती"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"कुकुरमुत्ता"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"टमाटर"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"बैंगन"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"अंगूर"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"खरबूजा"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"तरबूज"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"कीनू"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"नींबू"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"केला"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"अनानास"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"लाल सेब"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"हरा सेब"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"नाशपाती"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"आड़ू"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"चेरी"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"स्ट्रॉबेरी"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"हैमबर्गर"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"पिज्जा स्लाइस"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"हड्डी पर मांस"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"मुर्गे की टांग"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"चावल का बिस्कुट"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"राइस बॉल"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"पका हुआ चावल"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"करी और चावल"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"स्टीमिंग बाउल"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"स्पैगेटी"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"ब्रेड"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"फ्रेंच फ्राइज़"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"भुना हुआ शकरकंद"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"डेंगो"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"ऑडेन"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"सुशी"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"तला हुआ केकड़ा"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"घुमावदार आकृति वाला फिश केक"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"सॉफ़्ट आइस्क्रीम"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"छीली हुई बर्फ"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"आइस्क्रीम"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"डोनट"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"कुकी"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"चॉकलेट बार"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"कैंडी"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"लॉलीपॉप"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"दही"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"शहद का बर्तन"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"शॉर्टकेक"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"बेंटो बॉक्स"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"भोजन का बरतन"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"पाक कला"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"कांटा और चाकू"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"बिना हैंडल वाला चाय का कप"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"मदिरा की बोतल और कप"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"शराब का ग्‍लास"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"कॉकटेल ग्लास"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"ट्रॉपिकल ड्रिंक"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"बीयर मग"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"क्लिंकिंग बीयर मग"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"छोटी बॉटल"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"रिबन"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"लिपटा हुआ उपहार"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"जन्मदिन का केक"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"कद्दू का हैलोवीन लालटेन"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"क्रिसमस ट्री"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"फ़ादर क्रिसमस"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"आतिशबाज़ी"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"आतिशबाज़ी स्पार्कलर"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"गुब्बारा"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"पार्टी पॉपर"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"कंफेटी बॉल"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"तानाबाटा वृक्ष"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"क्रॉस किए गए फ़्लैग"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"पाइन की सजावट"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"जापानी गुड़िया"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"कार्प स्ट्रीमर"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"विंड चाइम"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"चांद देखने का उत्सव"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"स्कूल का बस्ता"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"ग्रेजुएशन कैप"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"घोड़े वाला झूला"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"फ़ेरिस झूला"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"घुमावदार रेल-पथ"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"मछली पकड़ने का डंडा और मछली"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"माइक्रोफ़ोन"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"मूवी कैमरा"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"सिनेमा"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"हेडफ़ोन"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"कलाकार की पैलेट"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"टोप हैट"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"सर्कस का तंबू"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"टिकट"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"क्लेपर बोर्ड"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"अभिनय कला"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"वीडियो गेम"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"सीधा हिट"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"स्लॉट मशीन"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"बिलियर्ड्स"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"गेम डाइ"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"बॉलिंग"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"फूल वाले खेलने के कार्ड"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"संगीत नोट"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"एकाधिक संगीत नोट"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"सैक्सोफ़ोन"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"गिटार"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"संगीत कीबोर्ड"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"तुरही"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"वायलिन"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"संगीत स्कोर"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"बेल्ट वाली रनिंग शर्ट"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"टेनिस रैकेट और गेंद"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"स्की और स्की बूट"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"बास्केटबॉल और हूप"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"चौकड़ी वाला ध्वज"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"बर्फ़ की बॉर्डर"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"धावक"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"सर्फ़र"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"ट्रॉफ़ी"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"घुड़दौड़"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"अमेरिकी फ़ुटबाल"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"रग्बी फ़ुटबाल"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"तैराक"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"गृह निर्माण"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"बगीचे वाला घर"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"कार्यालय का भवन"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"जापानी पोस्ट ऑफ़िस"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"यूरोपियन पोस्ट ऑफिस"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"अस्पताल"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"बैंक"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"स्वचालित टेलर मशीन"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"होटल"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"लव होटल"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"सुविधा स्‍टोर"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"विद्यालय"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"डिपार्टमेंट स्टोर"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"कारखाना"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"इज़ाक्या लैंटर्न"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"जापानी किला"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"यूरोपीय किला"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"चूहा"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"माउस"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"बैल"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"भैंस"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"गाय"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"बाघ"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"खरगोश"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"बिल्ली"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"ड्रैगन"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"मगरमच्छ"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"व्हेल"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"घोंघा"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"सांप"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"घोड़ा"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"राम"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"बकरी"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"भेड़"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"बंदर"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"मुर्गा"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"चूज़ा"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"कुत्ता"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"सुअर"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"जंगली सुअर"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"हाथी"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"ऑक्टोपस"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"सर्पिल आवरण"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"बग"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"चींटी"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"मधुमक्खी"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"मादा भौंरा"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"मछली"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"ट्रॉपिकल मछली"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"ब्लॉफिश"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"कछुआ"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"हैचिंग चिक"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"छोटा चूज़ा"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"सामने की ओर चेहरा किया हुआ छोटा चूज़ा"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"पक्षी"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"पेंगुइन"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"कोआला"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"पूडल"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"ड्रॉमेडेरी ऊंट"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"बैक्ट्रीयन ऊंट"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"डॉल्फ़िन"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"चूहे का चेहरा"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"गाय का चेहरा"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"चीते का चेहरा"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"खरगोश का चेहरा"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"बिल्ली का चेहरा"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"ड्रेगन का चेहरा"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"स्पाउटिंग व्हेल"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"घोड़े का चेहरा"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"बंदर का चेहरा"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"कुत्ते का चेहरा"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"सुअर का चेहरा"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"मेंढक का चेहरा"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"हैम्स्टर का चेहरा"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"भेड़िये का चेहरा"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"भालू का चेहरा"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"पांडा का चेहरा"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"सुअर की नाक"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"पंजों के निशान"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"आंखें"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"कान"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"नाक"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"मुंह"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"जीभ"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"तर्जनी से ऊपर इंगित करता हाथ"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"तर्जनी से नीचे इंगित करता हाथ"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"तर्जनी से बाएं इंगित करता हाथ"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"तर्जनी से दाएं इंगित करता हाथ"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"मुठ्ठीबंद हाथ का चिह्न"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"हिलते हुए हाथ का चिह्न"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"ओके दर्शाने वाले हाथ का चिह्न"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"थंब्स अप का चिह्न"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"थंब्स डाउन का चिह्न"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"ताली बजाते हुए हाथ का चिह्न"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"खुले हाथ का चिह्न"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"मुकुट"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"महिलाओं की टोपी"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"आंखों का चश्मा"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"गले की टाइ"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"टी-शर्ट"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"जीन्स"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"पोशाक"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"किमोनो"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"बिकनी"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"महिलाओं के कपड़े"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"बटुआ"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"हैंडबेग"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"पाउच"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"पुरुषों के जुते"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"एथलेटिक जूते"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"ऊंची एड़ी वाला जूता"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"महिलाओं की सैंडल"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"महिलाओं के बूट"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"पैर के निशान"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"वक्ष की रूपरेखा"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"वक्षों की रूपरेखा"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"लड़का"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"लड़की"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"मनुष्य"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"महिला"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"परिवार"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"हाथ पकड़े हुए महिला और पुरुष"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"हाथ पकड़े हुए दो पुरुष"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"हाथ पकड़े हुए दो महिलाएं"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"पुलिस अधिकारी"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"खरगोश के कानों वाली महिला"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"पर्दे वाली दुल्हन"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"सुनहरे बालों वाला व्यक्ति"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"गुआ पि माओ वाला व्यक्ति"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"पगड़ी वाला व्यक्ति"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"बूढ़ा आदमी"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"बूढ़ी महिला"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"बच्‍चा"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"ठेकेदारी मजदूर"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"राजकुमारी"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"जापानी राक्षस"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"जापानी गोब्लिन"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"भूत"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"नन्हा फरिश्ता"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"परग्रही एलियन"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"एलियन राक्षस"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"बौना"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"खोपड़ी"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"जानकारी डेस्क पर मौजूद व्यक्ति"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"संतरी"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"नर्तक"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"लिपस्टिक"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"नैल पॉलिश"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"चेहरे की मसाज"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"बाल काटना"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"नाई की दुकान"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"सिरिंज"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"पिल"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"चुबंन चिह्न"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"प्रेम पत्र"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"अंगूठी"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"जेम स्टोन"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"चुंबन"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"गुलदस्‍ता"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"दिल वाला जोड़ा"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"विवाह"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"धड़कता दिल"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"टूटा हुआ दिल"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"दो दिल"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"चमकता दिल"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"बढ़ता हुआ दिल"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"तीर वाला दिल"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"नीला दिल"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"हरा दिल"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"पीला दिल"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"बैंगनी दिल"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"रिबन वाला दिल"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"घूमने वाला दिल"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"सजावट वाला दिल"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"अंदर एक डॉट के साथ हीरे का आकार"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"बिजली का बल्ब"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"गुस्से का प्रतीक"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"बम"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"सोने का प्रतीक"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"टकराव का प्रतीक"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"पसीने के छींटे का प्रतीक"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"बूंद का प्रतीक"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"डैश प्रतीक"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"मल का ढेर"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"हाथ की उभरी हुई मांसपेशियां"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"भ्रमित प्रतीक"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"स्पीच बलून"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"विचारों का बलून"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"सफेद फूल"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"सौ बिंदुओं का प्रतीक"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"पैसों का झोला"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"मुद्रा विनिमय"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"डॉलर का मोटा चिह्न"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"क्रेडिट कार्ड"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"येन चिह्न वाला बैंकनोट"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"डॉलर चिह्न वाला बैंकनोट"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"यूरो चिह्न वाला बैंकनोट"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"पाउंड चिह्न वाला बैंकनोट"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"पंखों वाला पैसा"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"ऊपरी रुझान और येन चिह्न वाला चार्ट"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"सीट"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"व्यक्तिगत कंप्यूटर"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"ब्रीफकेस"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"मिनीडिस्क"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"फ्लॉपी डिस्क"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"ऑप्टिकल डिस्क"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"Dvd"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"फ़ाइल फ़ोल्डर"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"खुला फ़ाइल फ़ोल्डर"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"मुड़ा हुआ पृष्ठ"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"पृष्ठ का सामने वाला भाग"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"कैलेंडर"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"टीयर-ऑफ़ कैलेंडर"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"कार्ड अनुक्रमणिका"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"ऊपरी रूझान वाला चार्ट"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"नीचे रूझान वाला चार्ट"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"बार चार्ट"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"क्लिपबोर्ड"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"पुशपिन"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"गोलाकार पुशपिन"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"पेपरक्लिप"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"सीधी पट्टी"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"त्रिभूजाकार पट्टी"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"बुकमार्क टैब"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"लेजर"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"नोटबुक"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"सजावटी कवर वाली नोटबुक"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"बंद पुस्तिका"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"खुली किताब"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"हरी किताब"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"नीली किताब"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"नारंगी किताब"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"किताबें"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"नाम बैज"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"स्क्रॉल"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"मेमो"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"टेलीफोन रिसीवर"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"पेजर"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"फैक्स मशीन"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"सैटेलाइट एंटीना"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"सार्वजनिक संबोधन लाउडस्पीकर"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"चीयरिंग मेगाफोन"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"आउटबॉक्स ट्रे"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"इनबॉक्स ट्रे"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"पैकेज"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"ईमेल चिह्न"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"इनकमिंग लिफाफा"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"ऊपर से नीचे तीर वाला लिफाफा"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"झुके हुए झंडे वाला बंद मेलबॉक्स"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"उठे हुए झंडे वाला बंद मेलबॉक्स"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"उठे हुए झंडे वाला खुला मेलबॉक्स"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"झुके हुए झंडे वाला खुला मेलबॉक्स"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"पोस्टबॉक्स"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"पोस्टल होर्न"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"समाचारपत्र"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"मोबाइल फ़ोन"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"बाईं ओर तीर वाला मोबाइल फ़ोन"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"कंपन मोड"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"बंद मोबाइल फोन"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"कोई मोबाइल फ़ोन नहीं"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"बार वाला एंटीना"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"कैमरा"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"वीडियो कैमरा"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"टेलीविज़न"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"रेडियो"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"वीडियो कैसेट"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"दाई ओर मुड़े तीर"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"दाईं एवं बाईं ओर मुड़े खुले चक्र तीर"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"एक अधिव्यापन से घेरेनुमा घड़ी की दिशा में बाईं ओर एवं दाईं ओर खुले गोल चिह्न"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"घड़ी की सुई की दिशा में नीचे एवं ऊपर की ओर खुले चक्रिय तीर"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"घड़ी की विपरीत दिशा में नीचे एवं ऊपर की ओर खुले चक्र तीर"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"कम चमकीले वाले प्रतीक"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"अधिक चमकीले प्रतीक"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"रद्दीकारण स्ट्रोक वाले स्पीकर"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"स्‍पीकर"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"एकल ध्वनि तरंग वाले स्पीकर"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"तीन ध्वनि तरंगों वाले स्पीकर"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"बैटरी"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"इलैक्ट्रिक प्लग"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"बाईं ओर इंगित करता हुआ आवर्धक कांच"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"दाईं ओर इंगित करता हुआ आवर्धक कांच"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"इंक पेन वाला लॉक"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"कुंजी वाला बंद किया लॉक"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"कुंजी"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"लॉक करें"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"खुला लॉक"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"घंटी"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"रद्दीकरण स्ट्रोक वाली घंटी"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"बुकमार्क"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"लिंक प्रतीक"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"रेडियो बटन"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"ऊपर बाईंओर तीर के साथ वापस"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"ऊपर बाई ओर तीर के साथ वापस"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"ऊपर बाएं दाएं तीर वाले विस्मयादिबोधक चिह्न पर"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"जल्द ही ऊपर बाईं ओर के तीर के साथ"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"ऊपर की ओर तीर वाला टोप"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"अठारह प्रतीक के अंतर्गत कोई नहीं"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"कीकैप टेन"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"लैटिन बड़े अक्षराें के लिए इनपुट प्रतीक"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"लैटिन छोटे अक्षरों के लिए इनपुट प्रतीक"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"संख्याओं के लिए इनपुट प्रतीक"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"प्रतीकों के लिए इनपुट प्रतीक"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"लैटिन अक्षरों के लिए इनपुट प्रतीक"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"आग"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"इलैक्ट्रिक टॉर्च"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"पाना"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"हथौड़ा"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"नट और बोल्ट"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"होचो"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"पिस्टल"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"सूक्ष्मदर्शी यंत्र"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"टेलीस्कोप"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"क्रिस्टल बॉल"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"मध्य बिंदु के साथ छ: सलाखों वाला तारा"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"आरंभक के लिए जापानी प्रतीक"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"त्रिशूल चिह्न"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"काला चौकोर बटन"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"सफेद चौकोर बटन"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"बड़ा लाल घेरा"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"बड़ा नीला घेरा"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"बड़ा नारंगी हीरा"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"बड़ा नीला हीरा"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"छोटा नारंगी हीरा"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"छोटा नीला हीरा"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"ऊपर इंगित करने वाला लाल त्रिभुज"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"नीचे इंगित करने वाला लाल त्रिभुज"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"ऊपर इंगित करने वाला छोटा लाल त्रिभुज"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"नीचे इंगित करने वाला छोटा लाल त्रिभुज"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"घड़ी का डायल एक बजे"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"घड़ी का डायल दो बजे"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"घड़ी का डायल तीन बजे"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"घड़ी का डायल चार बजे"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"घड़ी का डायल पांच बजे"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"घड़ी का डायल छ: बजे"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"घड़ी का डायल सात बजे"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"घड़ी का डायल आठ बजे"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"घड़ी का डायल नौ बजे"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"घड़ी का डायल दस बजे"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"घड़ी का डायल ग्यारह बजे"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"घड़ी का डायल बारह बजे"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"घड़ी का डायल डेढ़ बजे"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"घड़ी का डायल ढाई बजे"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"घड़ी का डायल साढ़े तीन बजे"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"घड़ी का डायल साढ़े चार बजे"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"घड़ी का डायल साढ़े पांच बजे"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"घड़ी का डायल साढ़े छ:"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"घड़ी का डायल साढ़े सात"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"घड़ी का डायल साढ़े आठ"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"घड़ी का डायल साढ़े नौ"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"घड़ी का डायल साढ़े दस"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"घड़ी का डायल साढ़े ग्यारह"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"घड़ी का डायल साढ़े बारह"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"माउंट फुजी"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"टोकियो टावर"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"स्टैच्यू ऑफ़ लिबर्टी"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"जापान का छायाचित्र"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"मोयाई"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"बनावटी चेहरा"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"मुस्कुराती आंखों वाला दांत दिखाता चेहरा"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"खुशी के आंसु वाला चेहरा"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"खुले चेहरा वाला हंसता हुआ चेहरा"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"खुले चेहरा और हंसती आंखों वाला हंसता हुआ चेहरा"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"खुले चेहरा और पसीने वाला हंसता हुआ चेहरा"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"खुले चेहरा और कसके बंद हुई आंखों वाला हंसता हुआ चेहरा"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"हालो वाला हंसता हुआ चेहरा"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"सींगो वाला हंसता हुआ चेहरा"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"पलक झपकाता चेहरा"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"हंंसती आंखाें वाला हंसता हुआ चेहरा"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"स्वादिष्ट भोजन का आनंद लेता हुआ चेहरा"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"चिंता मुक्त चेहरा"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"हृदयाकार आंखों वाला हंसता हुआ चेहरा"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"सनग्लास वाला हंसता हुआ चेहरा"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"बनावटी हंसी वाला चेहरा"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"उदासीन चेहरा"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"भावहीन चेहरा"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"नाराज़ चेहरा"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"पसीने वाला चेहरा"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"विचारमग्न चेहरा"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"उलझन भरा चेहरा"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"हैरान चेहरा"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"चुमता हुआ चेहरा"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"चुंबन करता चेहरा"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"हंसती आंखों वाला चुमता हुआ चेहरा"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"बंद आंखों वाला चुमता हुआ चेहरा"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"बाहर निकली जीभ वाला चेहरा"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"बाहर निकली जीभ और आंख मारता हुआ चेहरा"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"बाहर निकली जीभ और कसकर बंद की हुई आंखों वाला चेहरा"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"उदास चेहरा"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"चिंतित चेहरा"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"गुस्से वाला चेहरा"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"चेहरा फुलाया हुआ चेहरा"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"रोता हुआ चेहरा"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"दृढ़ चेहरा"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"विजयी मुद्रा वाला चेहरा"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"उदास लेकिन चिंतामुक्त चेहरा"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"खुले चेहरा वाला क्रोधित चेहरा"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"दुखी चेहरा"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"क्रोधित चेहरा"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"घबराया हुआ चेहरा"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"सोता हुआ चेहरा"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"थका हुआ चेहरा"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"चेहरा बनाता हुआ चेहरा"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"जोर से रोता हुआ चेहरा"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"खुले चेहरा वाला चेहरा"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"निस्तब्ध चेहरा"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"खुला चेहरा और पसीने से भीगा चेहरा"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"क्रोध से रोता हुआ चेहरा"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"हैरान चेहरा"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"उत्तेजित चेहरा"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"सोता हुआ चेहरा"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"भौचक चेहरा"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"बिना चेहरा वाला चेहरा"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"मेडिकल मास्क वाला चेहरा"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"हंसती आंखों वाला मुस्कराता बिल्ली का चेहरा"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"खुशी के आंसु वाला बिल्ली का चेहरा"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"खुले चेहरा वाला बिल्ली का हंसता हुआ चेहरा"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"हृदयाकार आंखों वाला बिल्ली का हंसता हुआ चेहरा"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"राइ मुस्कान वाला बिल्ली का चेहरा"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"बंद आंखों वाला बिल्ली का चुमता हुआ चेहरा"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"खीझता हुआ बिल्ली का चेहरा"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"रोता हुआ बिल्ली का चेहरा"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"ऊबा हुआ बिल्ली का चेहरा"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"बिना अच्छी मुद्रा वाला चेहरा"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"ठीक है कि मुद्रा वाला चेहरा"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"बहुत अधिक झुकता हुआ व्यक्ति"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"बूरा न देखो वाला बंदर"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"बूरा न सुनो वाला बंदर"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"बूरा न बोलो वाला बंदर"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"एक हाथ उठाता हुआ खुश व्यक्ति"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"खुशी में दोनों हाथ उठाए हुए व्यक्ति"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"क्रोधित व्यक्ति"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"खीझते चेहरे वाला व्यक्ति"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"बंद हाथाें वाला व्यक्ति"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"रॉकेट"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"हैलीकॉप्टर"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"भाप लोकोमोटीव"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"रेलवे कार"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"अधिक गति वाली ट्रेन"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"गोली जैसी नाक वाली उच्च गति की ट्रेन"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"रेलगाड़ी"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"मेट्रो"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"हल्की रेल"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"स्टेशन"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"ट्राम"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"ट्राम कार"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"बस"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"आती हुई बस"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"ट्रॉलीबस"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"बस स्टॉप"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"मिनीबस"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"एम्बुलेंस"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"दमकल"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"पुलिस कार"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"आती हुई पुलिस कार"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"टैक्सी"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"आती हुई टैक्सी"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"ऑटोमोबाइल"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"आता हुआ ऑटोमोबाइल"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"मनोरंजात्मक वाहन"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"डिलीवरी ट्रक"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"ट्रेलर ट्रक"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"ट्रैक्टर"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"मोनोरेल"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"पर्वतीय रेलवे"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"सस्पेंशन रेलवे"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"माउंटेन केबलवे"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"एरीयल ट्रामवे"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"शिप करें"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"रोबोट"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"स्पीडबोट"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"क्षैतिज ट्रैफ़िक लाइट"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"उर्ध्वाधर ट्रैफ़िक लाइट"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"निर्माण चिह्न"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"घुमती हुई लाइट वाली पुलिस कार"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"पोस्ट पर तिरंगा झंडा"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"दरवाजा"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"प्रवेश नहीं चिह्न"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"धुम्रपान करता हुआ व्यक्ति"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"धूम्रपान निषेध प्रतीक"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"इस स्थान पर कचरा रखें वाला प्रतीक"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"कचरा न करें वाला प्रतीक"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"पेयजल प्रतीक"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"अपेयजल प्रतीक"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"साइकिल"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"कोई साइकिल नहीं"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"साइक्लिस्ट"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"माउंटेन साइक्लिस्ट"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"पैदल यात्री"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"कोई पैदल यात्री नहीं"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"पार करते हुए बच्चे"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"पुरुष प्रतीक"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"महिला प्रतीक"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"शौचालय"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"बच्चों का प्रतीक"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"शौचालय"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"शौचालय"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"शोवर"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"स्नान"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"बाथटब"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"पासपोर्ट नियंत्रण"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"प्रथाएं"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"सामान पर दावा"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"शेष सामान"</string>
+</resources>
diff --git a/java/res/values-hi/strings-letter-descriptions.xml b/java/res/values-hi/strings-letter-descriptions.xml
index ecf589a..1e817fd 100644
--- a/java/res/values-hi/strings-letter-descriptions.xml
+++ b/java/res/values-hi/strings-letter-descriptions.xml
@@ -200,7 +200,7 @@
     <string name="spoken_symbol_2105" msgid="7289404939366976829">"द्वारा"</string>
     <string name="spoken_symbol_2192" msgid="827804523596125414">"दायां तीर"</string>
     <string name="spoken_symbol_2193" msgid="2659541693445985717">"नीचे तीर"</string>
-    <string name="spoken_symbol_2205" msgid="4457188084269117343">"रिक्त सेट"</string>
+    <string name="spoken_symbol_2205" msgid="4457188084269117343">"खाली सेट"</string>
     <string name="spoken_symbol_2206" msgid="4856786565708380687">"वृद्धि"</string>
     <string name="spoken_symbol_2264" msgid="5092061257745123554">"इससे कम या इसके बराबर"</string>
     <string name="spoken_symbol_2265" msgid="1907966479878036357">"इससे अधिक या इसके बराबर"</string>
diff --git a/java/res/values-hi/strings-talkback-descriptions.xml b/java/res/values-hi/strings-talkback-descriptions.xml
index aba2592..1ae49c8 100644
--- a/java/res/values-hi/strings-talkback-descriptions.xml
+++ b/java/res/values-hi/strings-talkback-descriptions.xml
@@ -21,10 +21,11 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="spoken_use_headphones" msgid="4313642710742229868">"जोर से बोली जाने वाली पासवर्ड कुंजियां सुनने के लिए हैडसेट प्‍लग करें."</string>
-    <string name="spoken_current_text_is" msgid="4240549866156675799">"वर्तमान पाठ %s है"</string>
-    <string name="spoken_no_text_entered" msgid="1711276837961785646">"कोई पाठ नहीं डाला गया"</string>
+    <string name="spoken_current_text_is" msgid="4240549866156675799">"वर्तमान लेख %s है"</string>
+    <string name="spoken_no_text_entered" msgid="1711276837961785646">"कोई लेख नहीं डाला गया"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> को सुधार कर <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> करता है"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> स्वत: सुधार करता है"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"कोई सुझाव नहीं"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"अज्ञात वर्ण"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"शिफ़्ट"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"और प्रतीक"</string>
@@ -44,7 +45,7 @@
     <string name="spoken_description_search" msgid="5099937658231911288">"खोजें"</string>
     <string name="spoken_description_dot" msgid="5644176501632325560">"डॉट"</string>
     <string name="spoken_description_language_switch" msgid="6818666779313544553">"भाषा स्विच करें"</string>
-    <string name="spoken_description_action_next" msgid="431761808119616962">"अगला"</string>
+    <string name="spoken_description_action_next" msgid="431761808119616962">"आगे"</string>
     <string name="spoken_description_action_previous" msgid="2919072174697865110">"पिछला"</string>
     <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"शिफ़्ट सक्षम किया गया"</string>
     <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"कैप्स लॉक सक्षम किया गया"</string>
@@ -61,7 +62,7 @@
     <string name="keyboard_mode_im" msgid="3812086215529493501">"संदेश सेवा"</string>
     <string name="keyboard_mode_number" msgid="5395042245837996809">"संख्या"</string>
     <string name="keyboard_mode_phone" msgid="2486230278064523665">"फ़ोन"</string>
-    <string name="keyboard_mode_text" msgid="9138789594969187494">"पाठ"</string>
+    <string name="keyboard_mode_text" msgid="9138789594969187494">"लेख"</string>
     <string name="keyboard_mode_time" msgid="8558297845514402675">"समय"</string>
     <string name="keyboard_mode_url" msgid="8072011652949962550">"URL"</string>
     <string name="spoken_descrption_emoji_category_recents" msgid="4185344945205590692">"हाल ही के"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"बड़ा आई, बिंदु ऊपर"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"अज्ञात प्रतीक"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"अज्ञात इमोजी"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"उदास चेहरा"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"शर्मिंदा चेहरा"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"चश्मा पहना हुआ चेहरा"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"अचंभित चेहरा"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"चूमता हुआ चेहरा"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"क्रोधित चेहरा"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"वैकल्पिक वर्ण उपलब्ध हैं"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"वैकल्पिक वर्ण ख़ारिज कर दिए जाते हैं"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"वैकल्पिक सुझाव उपलब्ध हैं"</string>
diff --git a/java/res/values-hi/strings.xml b/java/res/values-hi/strings.xml
index 5abbecd..4d159d9 100644
--- a/java/res/values-hi/strings.xml
+++ b/java/res/values-hi/strings.xml
@@ -26,24 +26,30 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"कुंजी दबाने पर कंपन करता है"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"कुंजी दबाने पर आवाज"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"कुंजी दबाने पर पॉपअप दिखाएं"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"प्राथमिकताएं"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"खाते और गोपनीयता"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"दिखावट और सज्जा"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"हावभाव लेखन"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"लेख सुधार"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"अतिरिक्त सेटिंग"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"थीम"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"स्प्लिट कीबोर्ड सक्षम करें"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google कीबोर्ड समन्‍वयन"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"समन्‍वयन चालू किया गया है"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"अपना व्‍यक्‍तिगत शब्‍दकोश सभी डिवाइसों में समन्‍वयित करें"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"अभी समन्वयन करें"</string>
+    <!-- no translation found for clear_sync_data_title (8582001557037069154) -->
     <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Google से आपका समन्वयित डेटा हटाता है"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"आपका समन्‍वयित डेटा क्‍लाउड से हटा दिया जाएगा. आप सुनिश्‍चित हैं?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"हटाएं"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"रहने दें"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"आपका व्यक्तिगत शब्दकोश Google सर्वरों पर समन्वयित किया जाएगा और उसका बैक अप लिया जाएगा. हमारे उत्पादों को बेहतर बनाने में सहायता करने के लिए शब्द को दोहराने की सांख्यिकीय जानकारी एकत्र की जा सकती है. सभी जानकारी को एकत्र करना और उपयोग करना "<a href="https://www.google.com/policies/privacy">"Google की गोपनीयता नीति"</a>" के अनुपालन में होगा."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"यह सुविधा सक्षम करने के लिए इस डिवाइस पर एक Google खाता जोड़ें"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"अन्‍य इनपुट पद्धतियों पर जाएं"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"भाषा स्‍विच कुंजी में अन्‍य इनपुट पद्धतियां भी शामिल हैं"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"भाषा स्विच कुंजी"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"एकाधिक इनपुट भाषाएं सक्षम होने पर दिखाएं"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"स्लाइड संकेतक दिखाएं"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Shift या Symbol कुंजियो से स्लाइड करते समय विज़ुअल क्यू दिखाएं"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"कुंजी पॉपअप खारिज़ विलंब"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"कोई विलंब नहीं"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"सामान्य"</string>
@@ -57,14 +63,11 @@
     <string name="use_double_space_period_summary" msgid="6532892187247952799">"स्पेसबार पर डबल टैप करने से पीरियड शामिल हो जाता है जिसके बाद एक रिक्ति होती है"</string>
     <string name="auto_cap" msgid="1719746674854628252">"स्‍वत: अक्षर बड़े करना"</string>
     <string name="auto_cap_summary" msgid="7934452761022946874">"प्रत्येक वाक्य के पहले शब्द को बड़ा लिखें"</string>
-    <string name="edit_personal_dictionary" msgid="3996910038952940420">"व्यक्तिगत शब्दकोश"</string>
+    <string name="edit_personal_dictionary" msgid="3996910038952940420">"निजी शब्दकोश"</string>
     <string name="configure_dictionaries_title" msgid="4238652338556902049">"एड-ऑन शब्दकोश"</string>
     <string name="main_dictionary" msgid="4798763781818361168">"मुख्‍य डिक्‍शनरी"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"सुधार सुझाव दिखाएं"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"लिखते समय सुझाए गए शब्‍द दिखाएं"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"हमेशा दिखाएं"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"पोर्ट्रेट मोड में दिखाएं"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"हमेशा छुपाएं"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"आपत्तिजनक शब्द अवरुद्ध करें"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"संभावित आपत्तिजनक शब्दों का सुझाव न दें"</string>
     <string name="auto_correction" msgid="7630720885194996950">"स्‍वत: सुधार"</string>
@@ -85,21 +88,32 @@
     <string name="voice_input" msgid="3583258583521397548">"ध्‍वनि‍ इनपुट कुंजी"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"कोई ध्वनि इनपुट पद्धति सक्षम नहीं है. भाषा और इनपुट सेटिंग जांचें."</string>
     <string name="configure_input_method" msgid="373356270290742459">"इनपुट पद्धति कॉन्‍फ़िगर करें"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"इनपुट भाषा"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"सुझाव भेजें"</string>
-    <string name="select_language" msgid="3693815588777926848">"इनपुट भाषाएं"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"भाषाएं"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"सहायता और फ़ीडबैक"</string>
+    <string name="select_language" msgid="5709487854987078367">"भाषाएं"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"सहेजने के लिए पुन: स्‍पर्श करें"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"सहेजने के लिए यहां स्पर्श करें"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"शब्‍दकोश उपलब्‍ध है"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"कीबोर्ड थीम"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"खाते स्‍विच करें"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"कोई खाता नहीं चुना गया"</string>
+    <string name="account_selected" msgid="2846876462199625974">"वर्तमान में <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g> का उपयोग कर रहा है"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"ठीक"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"रहने दें"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"प्रस्थान करें"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"उपयोग करने के लिए कोई खाता चुनें"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"अंग्रेज़ी (यूके)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"अंग्रेज़ी (यूएस)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"स्पेनिश (यूएस)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"हिंग्लिश"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"सर्बियाई (लैटिन)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"अंग्रेज़ी (यूके) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"अंग्रेज़ी (यूएस) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"स्‍पेनिश (यूएस) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"हिंग्लिश (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"सर्बियाई (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (पारंपरिक)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (सिरिलिक)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (लैटिन)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (संक्षिप्त)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"भाषा उपलब्ध नहीं है (लैटिन वर्णाक्षर)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"वर्णाक्षर (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"वर्णाक्षर (QWERTZ)"</string>
@@ -108,35 +122,21 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"वर्णाक्षर (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"वर्णाक्षर (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"कीबोर्ड थीम"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"कस्‍टम इनपुट शैलियां"</string>
     <string name="add_style" msgid="6163126614514489951">"शैली जोड़ें"</string>
     <string name="add" msgid="8299699805688017798">"जोड़ें"</string>
     <string name="remove" msgid="4486081658752944606">"निकालें"</string>
-    <string name="save" msgid="7646738597196767214">"सहेजें"</string>
+    <string name="save" msgid="7646738597196767214">"जोड़ें"</string>
     <string name="subtype_locale" msgid="8576443440738143764">"भाषा"</string>
     <string name="keyboard_layout_set" msgid="4309233698194565609">"लेआउट"</string>
     <string name="custom_input_style_note_message" msgid="8826731320846363423">"कस्‍टम इनपुट शैली का उपयोग करने से पहले सक्षम करना होगा. उसे सक्षम करना चाहते हैं?"</string>
     <string name="enable" msgid="5031294444630523247">"सक्षम करें"</string>
     <string name="not_now" msgid="6172462888202790482">"अभी नहीं"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"ऐसी ही इनपुट शैली पहले से मौजूद है: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"कुंजी को देर तक दबाने का विलंब"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"कुंजी-स्पर्श कंपन अवधि"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"कुंजी-स्पर्श ध्वनि आवाज़"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"बाहरी शब्दकोश फ़ाइल पढ़ें"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"डाउनलोड फ़ोल्डर में कोई शब्दकोश फ़ाइल नहीं है"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"इंस्टॉल करने के लिए कोई शब्दकोश फ़ाइल चुनें"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"क्या वाकई <xliff:g id="LANGUAGE_NAME">%s</xliff:g> के लिए यह फ़ाइल इंस्‍टॉल करें?"</string>
-    <string name="error" msgid="8940763624668513648">"कोई त्रुटि हुई थी"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"कुंजी को देर तक दबाने का विलंब"</string>
     <string name="button_default" msgid="3988017840431881491">"सामान्य"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> में आपका स्वागत है"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"हावभाव लेखन के साथ"</string>
@@ -144,18 +144,16 @@
     <string name="setup_next_action" msgid="371821437915144603">"अगला चरण"</string>
     <string name="setup_steps_title" msgid="6400373034871816182">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> सेट करना"</string>
     <string name="setup_step1_title" msgid="3147967630253462315">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> को सक्षम करें"</string>
-    <string name="setup_step1_instruction" msgid="2578631936624637241">"कृपया अपनी भाषा और अक्षर सेटिंग में \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" को चेक करें. इससे वह आपके उपकरण पर चलने के लिए अधिकृत हो जाएगा."</string>
+    <string name="setup_step1_instruction" msgid="2578631936624637241">"कृपया अपनी भाषा और अक्षर सेटिंग में \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" को चेक करें. इससे वह आपके डिवाइस पर चलने के लिए अधिकृत हो जाएगा."</string>
     <string name="setup_step1_finished_instruction" msgid="10761482004957994">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> आपकी भाषा और अक्षर सेटिंग में पहले से सक्षम है, इसलिए यह चरण पूर्ण हो गया है. अगले चरण पर जाएं!"</string>
     <string name="setup_step1_action" msgid="4366513534999901728">"सेटिंग में सक्षम करें"</string>
     <string name="setup_step2_title" msgid="6860725447906690594">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> पर स्विच करें"</string>
-    <string name="setup_step2_instruction" msgid="9141481964870023336">"इसके बाद, \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" को अपनी सक्रिय पाठ-इनपुट पद्धति के रूप में चुनें."</string>
+    <string name="setup_step2_instruction" msgid="9141481964870023336">"इसके बाद, \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" को अपनी सक्रिय लेख-इनपुट पद्धति के रूप में चुनें."</string>
     <string name="setup_step2_action" msgid="1660330307159824337">"इनपुट पद्धतियां स्विच करें"</string>
     <string name="setup_step3_title" msgid="3154757183631490281">"बधाई हो, आप बिल्कुल तैयार हैं!"</string>
     <string name="setup_step3_instruction" msgid="8025981829605426000">"अब आप <xliff:g id="APPLICATION_NAME">%s</xliff:g> के साथ अपने सभी पसंदीदा ऐप्स  में लिख सकते हैं."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"अतिरिक्त भाषाएं कॉन्फ़िगर करना"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"समाप्त"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"ऐप्स  आइकन दिखाएं"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"लॉन्चर में ऐप्स  आइकन प्रदर्शित करें"</string>
     <string name="app_name" msgid="6320102637491234792">"डिक्‍शनरी प्रदाता"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"डिक्‍शनरी प्रदाता"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"डिक्‍शनरी सेवा"</string>
@@ -176,18 +174,18 @@
     <string name="message_updating" msgid="4457761393932375219">"नई जानकारी देखा जा रहा हैं"</string>
     <string name="message_loading" msgid="5638680861387748936">"लोड हो रहा है…"</string>
     <string name="main_dict_description" msgid="3072821352793492143">"मुख्‍य डिक्‍शनरी"</string>
-    <string name="cancel" msgid="6830980399865683324">"रद्द करें"</string>
+    <string name="cancel" msgid="6830980399865683324">"रहने दें"</string>
     <string name="go_to_settings" msgid="3876892339342569259">"सेटिंग"</string>
     <string name="install_dict" msgid="180852772562189365">"इंस्टॉल करें"</string>
-    <string name="cancel_download_dict" msgid="7843340278507019303">"रद्द करें"</string>
+    <string name="cancel_download_dict" msgid="7843340278507019303">"रहने दें"</string>
     <string name="delete_dict" msgid="756853268088330054">"हटाएं"</string>
-    <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"आपके मोबाइल पर चयनित भाषा के लिए शब्‍दकोश उपलब्‍ध है.&lt;br/&gt; हम आपके लेखन अनुभव को बेहतर बनाने के लिए <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> शब्‍दकोश &lt;b&gt;डाउनलोड करने&lt;/b&gt; की अनुशंसा करते हैं.&lt;br/&gt; &lt;br/&gt; 3G में डाउनलोड करने पर एक या दो मिनट लगेंगे. यदि आपके पास &lt;b&gt;असीमित डेटा योजना&lt;/b&gt; नहीं है, तो शुल्क लागू हो सकते हैं.&lt;br/&gt; यदि आप अपनी डेटा योजना के बारे में सुनिश्चित नहीं हैं, तो हम अपने आप डाउनलोड प्रारंभ करने के लिए Wi-Fi कनेक्‍शन ढूंढने की अनुशंसा करते हैं.&lt;br/&gt; &lt;br/&gt; युक्ति: आप अपने मोबाइल उपकरण के &lt;b&gt;सेटिंग&lt;/b&gt; मेनू में &lt;b&gt;भाषा और इनपुट&lt;/b&gt; पर जाकर शब्‍दकोशों को डाउनलोड कर सकते हैं और निकाल सकते हैं."</string>
+    <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"आपके मोबाइल पर चयनित भाषा के लिए शब्‍दकोश उपलब्‍ध है.&lt;br/&gt; हम आपके लेखन अनुभव को बेहतर बनाने के लिए <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> शब्‍दकोश &lt;b&gt;डाउनलोड करने&lt;/b&gt; की सुझाव देते हैं.&lt;br/&gt; &lt;br/&gt; 3G में डाउनलोड करने पर एक या दो मिनट लगेंगे. यदि आपके पास &lt;b&gt;असीमित डेटा योजना&lt;/b&gt; नहीं है, तो शुल्क लागू हो सकते हैं.&lt;br/&gt; यदि आप अपनी डेटा योजना के बारे में सुनिश्चित नहीं हैं, तो हम अपने आप डाउनलोड प्रारंभ करने के लिए वाई-फ़ाई  कनेक्‍शन ढूंढने की सुझाव देते हैं.&lt;br/&gt; &lt;br/&gt; युक्ति: आप अपने मोबाइल डिवाइस के &lt;b&gt;सेटिंग&lt;/b&gt; मेनू में &lt;b&gt;भाषा और इनपुट&lt;/b&gt; पर जाकर शब्‍दकोशों को डाउनलोड कर सकते हैं और निकाल सकते हैं."</string>
     <string name="download_over_metered" msgid="1643065851159409546">"अभी डाउनलोड करें (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>MB)"</string>
-    <string name="do_not_download_over_metered" msgid="2176209579313941583">"Wi-Fi से डाउनलोड करें"</string>
+    <string name="do_not_download_over_metered" msgid="2176209579313941583">"वाई-फ़ाई  से डाउनलोड करें"</string>
     <string name="dict_available_notification_title" msgid="4583842811218581658">"<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> के लिए एक शब्‍दकोश उपलब्‍ध है"</string>
     <string name="dict_available_notification_description" msgid="1075194169443163487">"समीक्षा करने और डाउनलोड करने के लिए दबाएं"</string>
     <string name="toast_downloading_suggestions" msgid="6128155879830851739">"डाउनलोड प्रारंभ हो रहा है: <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> के लिए सुझाव जल्दी ही उपलब्ध होंगे."</string>
-    <string name="version_text" msgid="2715354215568469385">"संस्करण <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
+    <string name="version_text" msgid="2715354215568469385">"वर्शन <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
     <string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"जोड़ें"</string>
     <string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"शब्दकोश में जोड़ें"</string>
     <string name="user_dict_settings_add_screen_title" msgid="5818914331629278758">"वाक्यांश"</string>
diff --git a/java/res/values-hr/strings-emoji-descriptions.xml b/java/res/values-hr/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..aee3901
--- /dev/null
+++ b/java/res/values-hr/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Znak autorskih prava"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Znak \"registrirano\""</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Dvostruki uskličnik"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Uskličnik i upitnik"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Zaštitni znak (™)"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Izvor informacija"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Strelica lijevo-desno"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Strelica gore-dolje"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Strelica koja pokazuje \"sjeverozapad\""</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Strelica koja pokazuje \"sjeveroistok\""</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Strelica koja pokazuje \"jugoistok\""</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Strelica koja pokazuje \"jugozapad\""</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Strelica ulijevo s kukom"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Strelica udesno s kukom"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Sat"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Pješčani sat"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Dvostruki trokut koji pokazuje ulijevo i udesno"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Crni dvostruki trokut koji pokazuje ulijevo"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Crni dvostruki trokut koji pokazuje prema gore"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Crni dvostruki trokut koji pokazuje prema dolje"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Budilica"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Pješčani sat s pijeskom koji curi"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Zaokruženo latinično veliko slovo m"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Maleni crni kvadrat"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Maleni bijeli kvadrat"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Crni trokut koji pokazuje udesno"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Crni trokut koji pokazuje ulijevo"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Bijeli srednji kvadrat"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Crni srednji kvadrat"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Bijeli srednje mali kvadrat"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Crni srednje mali kvadrat"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Crno sunce sa zrakama"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Oblak"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Crni telefon"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Glasački okvir s kvačicom"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Kišobran s kišnim kapima"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Topli napitak"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Bijeli kažiprst koji pokazuje prema gore"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Bijelo nasmiješeno lice"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Ovan"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Bik"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Blizanci"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Rak"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Lav"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Djevica"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Vaga"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Škorpion"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Strijelac"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Jarac"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Vodenjak"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Ribe"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Karte crni pik"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Karte crni tref"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Karte crni herc"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Karte crni karo"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Topli izvori"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Crni univerzalni simbol recikliranja"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Simbol za osobe u invalidskim kolicima"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Sidro"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Znak upozorenja"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Znak visokog napona"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Srednji bijeli krug"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Srednji crni krug"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Nogometna lopta"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Bejzbol"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Snjegović bez snijega"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Sunce iza oblaka"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Sazvježđe Ophiuchus"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Zabranjen ulaz"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Crkva"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Fontana"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Zastava u rupi"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Jedrilica"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Šator"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Benzinska crpka"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Crne škare"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Masno otisnuta bijela kvačica"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Zrakoplov"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Omotnica"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Podignuta šaka"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Podignuti dlan"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Pobjednička ruka"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Olovka"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Crno pero"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Masno otisnuta kvačica"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Masno otisnuto slovo x koje označava množenje"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Iskre"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Osmerokraka zvjezdica"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Osmerokraka crna zvijezda"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Snježna pahuljica"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Iskra"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Znak križa"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Križić u kvadratu koji označava negaciju"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Ukras u obliku crnog upitnika"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Ukras u obliku bijelog upitnika"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Ukras u obliku bijelog uskličnika"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Masno otisnuti znak uskličnika"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Teško crno srce"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Masno otisnuti znak plus"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Masno otisnuti znak minus"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Masno otisnuti znak dijeljenja"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Crna strelica udesno"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Vitičasta petlja"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Dvostruka vitičasta petlja"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Strelica koja pokazuje udesno, a zatim se zakrivljuje prema gore"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Strelica koja pokazuje udesno, a zatim se zakrivljuje prema dolje"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Crna strelica ulijevo"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Crna strelica gore"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Crna strelica dolje"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Veliki crni kvadrat"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Veliki bijeli kvadrat"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Bijela srednja zvijezda"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Veliki masno otisnuti krug"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Valovita crtica"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Oznaka djelomične alternacije"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Zaokruženi ideogram \"čestitke\""</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Zaokruženi ideogram \"tajna\""</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Mahjong pločica crveni zmaj"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Igraća karta crni joker"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Krvna grupa A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Krvna grupa B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Krvna grupa 0"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Parkiralište"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Krvna grupa AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"\"CL\" u kvadratu"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"\"Cool\" u kvadratu"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"\"Free\" u kvadratu"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"\"ID\" u kvadratu"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"\"New\" u kvadratu"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"\"N G\" u kvadratu"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"\"OK\" u kvadratu"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"\"SOS\" u kvadratu"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"\"Up\" s uskličnikom u kvadratu"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"\"Vs\" u kvadratu"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Ovdje dolazi \"katakana\" u kvadratu"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"\"Katakana service\" u kvadratu"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Ideogram \"besplatno\" u kvadratu"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Ideogram \"rezervirano sjedalo\" u kvadratu"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Ideogram zabrane u kvadratu"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Ideogram slobodnog mjesta u kvadratu"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Ideogram prihvaćanja u kvadratu"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Ideogram potpune popunjenosti u kvadratu"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Ideogram \"plaćeno\" u kvadratu"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Ideogram \"mjesečno\" u kvadratu"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Ideogram aplikacije u kvadratu"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Ideogram popusta u kvadratu"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Ideogram poslovanja u kvadratu"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Zaokruženi ideogram prednosti"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Zaokruženi ideogram prihvaćanja"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Ciklon"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Maglovito"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Zatvoreni kišobran"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Zvjezdana noć"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Izlazak sunca iznad planina"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Izlazak sunca"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Slika grada u sumrak"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Zalazak sunca iznad zgrada"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Duga"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Most noću"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Vodeni val"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Vulkan"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Mliječna staza"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Prikaz Europe i Afrike na globusu"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Prikaz Sjeverne i Južne Amerike na globusu"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Prikaz Azije i Australije na globusu"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Globus s meridijanima"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Simbol mlađaka"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Simbol mladog mjeseca"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Simbol prve četvrti mjeseca"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Simbol posljednje četvrti mjeseca"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Simbol punog mjeseca"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Simbol prve četvrti mjeseca"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Simbol posljednje četvrti mjeseca"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Simbol balzamičkog mjeseca"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Polumjesec"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Mladi mjesec s licem"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Prva četvrt mjeseca s licem"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Posljednja četvrt mjeseca s licem"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Puni mjesec s licem"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Sunce s licem"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Sjajna zvijezda"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Zvijezda padalica"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Kesten"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Sadnica"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Zimzeleno drvo"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Bjelogorično drvo"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palmino drvo"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Kaktus"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulipan"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Trešnjin cvijet"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Ruža"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Hibiskus"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Suncokret"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Cvjetanje"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Klas kukuruza"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Klas riže"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Biljka"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Četverolisna djetelina"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"List javora"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Otpali list"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"List koji treperi na vjetru"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Gljiva"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Rajčica"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Patlidžan"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Grožđe"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Dinja"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Lubenica"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Mandarina"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Limun"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Banana"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ananas"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Crvena jabuka"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Zelena jabuka"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Kruška"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Breskva"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Višnje"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Jagoda"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburger"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Kriška pizze"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Meso s kostima"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Pileći batak"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Keks od riže"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Kuglica od riže"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Kuhana riža"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Curry i riža"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Kipuća zdjelica"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Špageti"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Kruh"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Pomfrit"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Pečeni batat"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Suši"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Prženi škamp"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Riblji kolač s motivom spirale"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Meki sladoled"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Sladoled s komadićima leda"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Sladoled"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Krafna"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Kolačić"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Čokoladna pločica"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Bombon"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lizaljka"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Krema od jaja"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Vrč s medom"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Biskvit"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Bento kutija"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Lonac s hranom"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Kuhanje"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Vilica i nož"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Šalica bez ručke"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Boca i čaša sa sakeom"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Čaša za vino"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Čaša za koktel"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Tropsko piće"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Krigla za pivo"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Zdravica kriglama piva"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Bočica za bebe"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Traka"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Umotani poklon"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Rođendanski kolač"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Izrezbarena bundeva"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Božićno drvce"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Djed Božićnjak"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Vatromet"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Prskalica"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Balon"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Praskalo za tulume"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Kugla sa snijegom u boji"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Drvo tanabata"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Ukrštene zastave"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Ukras od šišarki"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Japanske lutke"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Cjevasti zmaj u obliku ribe"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Vjetrena zvona"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Svečanost promatranja mjeseca"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Školska torba"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Maturalna kapa"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Konjić na vrtuljku"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Panoramski kotač"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Vlak smrti"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Štap za pecanje i riba"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Mikrofon"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Filmska kamera"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Kino"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Slušalice"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Slikarska paleta"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Cilindar"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Cirkuski šator"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Ulaznica"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Klapa"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Izvedbene umjetnosti"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Videoigra"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Izravan pogodak"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Jednoruki Jack"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Biljar"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Igraća kocka"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Kuglanje"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Cvjetne igraće karte"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Glazbena nota"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Više glazbenih nota"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saksofon"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Gitara"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Klavijatura"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Truba"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Violina"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Notno crtovlje"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Majica za trčanje s oznakom trkača"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Teniski reket i loptica"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Skija i pancerica"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Košarkaška lopta i obruč"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Zastava sa šahovnicom"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Daskaš na snijegu"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Trkač"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Surfer"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Trofej"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Konjičke utrke"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Američki nogomet"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Ragbi nogomet"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Plivač"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Kuća"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Kuća s vrtom"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Uredska zgrada"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Japanski poštanski ured"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Europski poštanski ured"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Bolnica"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Banka"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Bankomat"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Hotel"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Ljubavni hotel"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Trgovina mješovitom robom"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Škola"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Robna kuća"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Tvornica"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Lampion izakaya"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Japanski dvorac"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Europski dvorac"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Štakor"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Miš"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Vol"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Vodeni bizon"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Krava"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Leopard"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Zec"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Mačka"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Zmaj"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Krokodil"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Kit"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Puž"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Zmija"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Konj"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Ovan"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Koza"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Ovca"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Majmun"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Pijetao"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Kokoš"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Pas"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Svinja"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Vepar"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Slon"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Hobotnica"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Spiralna školjka"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Buba"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Mrav"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Pčela"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Bubamara"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Riba"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Tropska ribica"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Riba balon"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Kornjača"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Pile izleglo iz jajeta"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Pile"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Pile okrenuto prema naprijed"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Ptica"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Pingvin"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Pudlica"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Jednogrba deva"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Dvogrba deva"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Dupin"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Lice miša"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Lice krave"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Lice tigra"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Lice zeca"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Lice mačke"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Lice zmaja"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Kit koji izbacuje mlaz vode"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Lice konja"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Lice majmuna"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Lice psa"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Lice svinje"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Lice žabe"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Lice hrčka"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Lice vuka"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Lice medvjeda"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Lice pande"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Svinjski nos"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Otisci šape"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Oči"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Uho"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Nos"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Usta"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Jezik"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Bijeli kažiprst koji pokazuje prema gore"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Bijeli kažiprst koji pokazuje prema dolje"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Bijeli kažiprst koji pokazuje ulijevo"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Bijeli kažiprst koji pokazuje udesno"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Znak stisnute šake"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Znak ruke koja maše"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Znak šake koja pokazuje \"u redu\""</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Znak \"palac gore\""</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Znak \"palac dolje\""</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Znak ruku koje plješću"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Znak otvorenih ruku"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Kruna"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Ženski šešir"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Naočale"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Kravata"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Majica s kratkim rukavima"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Traperice"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Haljina"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Ženska odjeća"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Torbica"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Ručna torba"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Vrećica"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Muška cipela"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Sportska cipela"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Cipela s visokom potpeticom"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Ženska sandala"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Ženske čizme"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Otisci stopala"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Poprsje u silueti"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Poprsja u silueti"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Dječak"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Djevojčica"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Muškarac"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Žena"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Obitelj"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Muškarac i žena koji se drže za ruke"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Dva muškarca koji se drže za ruke"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Dvije žene koje se drže za ruke"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Policajac"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Žena sa zečjim ušima"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Mladenka s velom"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Osoba plave kose"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Muškarac s kapom gua pi mao"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Muškarac s turbanom"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Stariji muškarac"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Starija žena"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Beba"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Građevinski radnik"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Princeza"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Japanski div"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Japanski goblin"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Duh"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Beba anđeo"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Izvanzemaljac"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Izvanzemaljsko čudovište"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Vražićak"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Lubanja"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Službenik na infopultu"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Stražar"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Plesač"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Ruž za usne"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Lak za nokte"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Masaža lica"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Frizura"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Stup koji označava brijačnicu"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Šprica"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Pilula"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Trag poljupca"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Ljubavno pismo"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Prsten"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Dragulj"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Poljubac"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Buket"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Par sa srcem"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Vjenčanje"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Srce koje kuca"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Slomljeno srce"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Dva srca"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Svjetlucavo srce"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Srce koje raste"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Srce sa strelicom"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Plavo srce"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Zeleno srce"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Žuto srce"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Ljubičasto srce"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Srce s trakom"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Srca koja kruže"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Ukras srca"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Oblik dijamanta s točkom"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Električna žarulja"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Simbol ljutnje"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bomba"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Simbol spavanja"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Simbol sudara"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Sličica prskanja znoja"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Kapljica"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Znak crtice"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Hrpica izmeta"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Napeti biceps"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Simbol vrtoglavice"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Balončić za tekst govora"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Balončić za tekst misli"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Bijeli cvijet"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Simbol za sto bodova"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Vreća s novcem"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Mjenjačnica"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Masno otisnuti znak dolara"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Kreditna kartica"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Novčanica sa znakom jena"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Novčanica sa znakom dolara"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Novčanica sa znakom eura"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Novčanica sa znakom funte"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Novac s krilima"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Grafikon s uzlaznim trendom i znakom jena"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Sjedalo"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Osobno računalo"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Aktovka"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Minidisk"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Disketa"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Optički disk"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"Dvd"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Mapa"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Otvori mapu datoteka"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Savinuta stranica"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Stranica okrenuta prema gore"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Kalendar"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Kalendar na trganje"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Indeks kartica"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Grafikon s uzlaznim trendom"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Grafikon sa silaznim trendom"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Stupčasti grafikon"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Međuspremnik"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Pribadača"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Zaobljena pribadača"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Spajalica"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Ravnalo"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Trokutno ravnalo"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Jezičci knjiških oznaka"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Glavna knjiga"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Bilježnica"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Bilježnica s ukrasnim omotom"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Zatvorena knjiga"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Otvorena knjiga"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Zelena knjiga"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Plava knjiga"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Narančasta knjiga"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Knjige"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Bedž s imenom"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Pomicanje"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Dopis"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Telefonski prijemnik"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Dojavljivač"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Faks"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Satelitska antena"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Megafon"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Navijački megafon"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Ladica izlazne pošte"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Ladica dolazne pošte"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Paket"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Simbol e-pošte"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Omotnica dolazne pošte"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Omotnica sa strelicom odozgo prema dolje"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Zatvoreni poštanski sandučić sa spuštenom zastavicom"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Zatvoreni poštanski sandučić s podignutom zastavicom"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Otvoreni poštanski sandučić s podignutom zastavicom"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Otvoreni poštanski sandučić sa spuštenom zastavicom"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Poštanski sandučić"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Poštanska truba"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Novine"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Mobitel"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Mobitel sa strelicom udesno u lijevom dijelu"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Način vibracije"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Mobitel je isključen"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Bez mobitela"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Antena s crticama"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Fotoaparat"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Videokamera"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Televizor"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Radio"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Videokaseta"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Zakrivljene strelice udesno"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Otvoreni krug strelica ulijevo i udesno u smjeru kazaljke na satu"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Otvoreni krug strelica ulijevo i udesno u smjeru kazaljke na satu s jedinicom u krugu"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Otvoreni krug strelica prema gore i prema dolje u smjeru kazaljke na satu"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Otvoreni krug strelica prema gore i prema dolje suprotno od kazaljke na satu"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Simbol niske svjetline"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Simbol visoke svjetline"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Zvučnik s linijom isključenja"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Zvučnik"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Zvučnik s jednim zvučnim valom"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Zvučnik s tri zvučna vala"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Baterija"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Strujni utikač"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Povećalo usmjereno ulijevo"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Povećalo usmjereno udesno"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Lokot s naliv-perom"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Zatvoreni lokot s ključem"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Ključ"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Lokot"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Otvoreni lokot"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Zvono"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Zvono s linijom isključenja"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Oznaka"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Simbol veze"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Izborni gumb"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Natpis \"Back\" sa strelicom lijevo iznad njega"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"Natpis \"End\" sa strelicom lijevo iznad njega"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"Natpis \"On\" s uskličnikom i strelicom lijevo-desno iznad njega"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Natpis \"Soon\" sa strelicom desno iznad njega"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Natpis \"Top\" sa strelicom gore iznad njega"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Simbol \"zabranjeno mlađima od osamnaest\""</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Kapica tipke s oznakom \"deset\""</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Simbol unosa za velika latinična slova"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Simbol unosa za mala latinična slova"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Simbol unosa za brojeve"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Ulazni simbol za simbole"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Simbol unosa za latinična slova"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Vatra"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Električna svjetiljka"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Ključ"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Čekić"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Matica i vijak"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Nož hocho"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Pištolj"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Mikrofon"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Teleskop"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Kristalna kugla"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Šesterokraka zvijezda s točkom u sredini"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Japanski simbol za početnika"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Znak trozupca"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Gumb s crnim kvadratom"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Gumb s bijelim kvadratom"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Veliki crveni krug"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Veliki plavi krug"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Veliki narančasti dijamant"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Veliki plavi dijamant"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Maleni narančasti dijamant"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Maleni plavi dijamant"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Crveni trokut koji pokazuje prema gore"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Crveni trokut koji pokazuje prema dolje"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Maleni crveni trokut koji pokazuje prema gore"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Maleni crveni trokut koji pokazuje prema dolje"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Brojčanik sata koji pokazuje \"jedan sat\""</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Brojčanik sata koji pokazuje \"dva sata\""</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Brojčanik sata koji pokazuje \"tri sata\""</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Brojčanik sata koji pokazuje \"četiri sata\""</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Brojčanik sata koji pokazuje \"pet sati\""</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Brojčanik sata koji prikazuje \"šest sati\""</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Brojčanik sata koji prikazuje \"sedam sati\""</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Brojčanik sata koji prikazuje \"osam sati\""</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Brojčanik sata koji prikazuje \"devet sati\""</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Brojčanik sata koji prikazuje \"deset sati\""</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Brojčanik sata koji prikazuje \"jedanaest sati\""</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Brojčanik sata koji prikazuje \"dvanaest sati\""</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Brojčanik sata koji prikazuje \"jedan i trideset\""</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Brojčanik sata koji prikazuje \"dva i trideset\""</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Brojčanik sata koji prikazuje \"tri i trideset\""</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Brojčanik sata koji prikazuje \"četiri i trideset\""</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Brojčanik sata koji prikazuje \"pet i trideset\""</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Brojčanik sata koji prikazuje \"šest i trideset\""</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Brojčanik sata koji prikazuje \"sedam i trideset\""</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Brojčanik sata koji prikazuje \"osam i trideset\""</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Brojčanik sata koji prikazuje \"devet i trideset\""</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Brojčanik sata koji prikazuje \"deset i trideset\""</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Brojčanik sata koji prikazuje \"jedanaest i trideset\""</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Brojčanik sata koji prikazuje \"dvanaest i trideset\""</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Planina Fuji"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Tokijski toranj"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Kip slobode"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Obris Japana"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moyai"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Nasmiješeno lice"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Nasmiješeno lice"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Lice sa suzama radosnicama"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Nasmiješeno lice s otvorenim ustima"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Nasmiješeno lice s otvorenim ustima i nasmiješenim očima"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Nasmiješeno lice s otvorenim ustima i hladnim znojem"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Nasmiješeno lice s otvorenim ustima i čvrsto zatvorenim očima"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Nasmiješeno lice s aureolom"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Nasmiješeno lice s rogovima"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Lice koje namiguje"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Nasmiješeno lice s nasmiješenim očima"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Lice s izrazom uživanja u ukusnoj hrani"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Lice s izrazom olakšanja"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Nasmiješeno lice s očima u obliku srca"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Nasmiješeno lice sa sunčanim naočalama"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Usiljeno lice"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Neutralno lice"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Bezizražajno lice"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Lice s izrazom dosade"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Lice s hladnim znojem"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Zamišljeno lice"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Zbunjeno lice"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Lice sa zbunjenim izrazom"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Lice koje ljubi"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Lice koje šalje poljubac"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Lice koje ljubi nasmiješenih očiju"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Lice koje ljubi zatvorenih očiju"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Lice s isplaženim jezikom"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Lice koje namiguje s isplaženim jezikom"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Lice s isplaženim jezikom i čvrsto zatvorenim očima"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Razočarano lice"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Zabrinuto lice"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Ljutito lice"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Lice koje se duri"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Uplakano lice"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Odlučno lice"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Lice pobjedonosnog izraza"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Lice koje je razočarano, ali s izrazom olakšanja"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Namršteno lice otvorenih usta"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Izmučeno lice"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Preplašeno lice"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Umorno lice"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Pospano lice"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Umorno lice"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Lice s grimasom"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Lice koje glasno plače"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Lice otvorenih usta"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Lice koje ušutkava"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Lice otvorenih usta u hladnom znoju"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Lice koje vrišti od straha"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Zapanjeno lice"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Rumeno lice"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Lice koje spava"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Lice s vrtoglavicom"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Lice bez usta"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Lice s medicinskom maskom"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Nasmiješeno lice mačke s nasmiješenim očima"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Lice mačke sa suzama radosnicama"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Nasmiješeno lice mačke s otvorenim ustima"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Nasmiješeno lice mačke s očima u obliku srca"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Lice mačke s kiselim osmjehom"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Lice mačke koja ljubi zatvorenih očiju"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Lice mačke koja se duri"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Uplakano lice mačke"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Tegobno lice mačke"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Lice s gestom \"nije dobro\""</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Lice s gestom \"u redu\""</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Osoba koja se duboko klanja"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Majmun koji \"ne vidi ništa loše\""</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Majmun koji \"ne čuje ništa loše\""</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Majmun koji \"ne govori ništa loše\""</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Sretna osoba koja podiže jednu ruku"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Osoba koja slavodobitno podiže obje ruke"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Osoba koja se mršti"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Osoba s licem koje se duri"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Osoba prekriženih ruku"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Raketa"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Helikopter"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Parna lokomotiva"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Vagon"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Brzi vlak"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Brzi vlak s lokomotivom u obliku metka"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Vlak"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Metro"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Laka željeznica"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Postaja"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Tramvaj"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Vagon tramvaja"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Autobus"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Autobus u dolasku"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Trolejbus"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Autobusna postaja"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Minibus"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Hitna pomoć"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Vatrogasno vozilo"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Policijski automobil"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Policijski automobil u dolasku"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taksi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Taksi u dolasku"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Automobil"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Automobil u dolasku"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Rekreacijsko vozilo"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Dostavni kamion"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Šleper"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Traktor"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Jednotračna željeznica"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Planinska željeznica"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Viseća željeznica"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Žičara"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Zračni tramvaj"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Brod"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Čamac s veslima"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Gliser"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Vodoravni semafor"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Okomiti semafor"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Znak radova"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Rotirajuće svjetlo policijskog automobila"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Trokutasta zastava na stupu"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Vrata"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Znak zabranjenog ulaza"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Znak pušenja"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Znak zabranjenog pušenja"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Znak \"stavite otpatke tamo gdje pripadaju\""</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Simbol \"ne bacajte otpatke\""</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Simbol pitke vode"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Simbol vode koja nije za piće"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Bicikl"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Zabranjeno za bicikle"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Biciklist"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Brdski biciklist"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Pješak"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Zabranjeno za pješake"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Djeca prelaze cestu"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Simbol muškog toaleta"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Simbol ženskog toaleta"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Toalet"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Simbol bebe"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Toalet"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Nužnik"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Tuš"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Kupaonica"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Kada"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Kontrola putovnica"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Carina"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Preuzimanje prtljage"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Zaboravljena prtljaga"</string>
+</resources>
diff --git a/java/res/values-hr/strings-talkback-descriptions.xml b/java/res/values-hr/strings-talkback-descriptions.xml
index e86db07..65a52f8 100644
--- a/java/res/values-hr/strings-talkback-descriptions.xml
+++ b/java/res/values-hr/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Nije unesen tekst"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> ispravlja <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> u <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> vrši samoispravljanje"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Nema prijedloga"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Nepoznati znak"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Više simbola"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Veliko slovo I, s točkicom iznad"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Nepoznati simbol"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Nepoznati emoji"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Lice s izrazom dosade"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Lice s izrazom neugode"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Lice sa sunčanim naočalama"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Iznenađeno lice"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Lice koje ljubi"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Namršteno lice"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Dostupni su zamjenski znakovi"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Zamjenski su znakovi isključeni"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Dostupni su zamjenski prijedlozi"</string>
diff --git a/java/res/values-hr/strings.xml b/java/res/values-hr/strings.xml
index 0cdc74a..8cf4e52 100644
--- a/java/res/values-hr/strings.xml
+++ b/java/res/values-hr/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibracija pri pritisku na tipku"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Zvuk pri pritisku tipke"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Povećanja na pritisak tipke"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Postavke"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Računi i privatnost"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Izgled i rasporedi"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Pisanje kretnjama"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Ispravljanje teksta"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Napredno"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Omogući razdvojenu tipkovnicu"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Sink. Googleove tipkovnice"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Sinkronizacija je uključena"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Sinkronizirajte svoj osobni rječnik na više uređaja"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Sinkroniziraj sada"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Brisanje podataka iz oblaka"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Brisanje vaših sinkroniziranih podataka s Googlea"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Vaši sinkronizirani podaci izbrisat će se iz oblaka. Sigurni ste?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Izbriši"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Odustani"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Vaš osobni rječnik sinkronizirat će se i sigurnosno kopirati na Googleovim poslužiteljima. Moguće je prikupljanje statističkih podataka o učestalosti riječi radi poboljšanja naših proizvoda. Prikupljanje i upotreba svih podataka odvijat će se u skladu s "<a href="https://www.google.com/policies/privacy">"Googleovim pravilima o privatnosti"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Dodajte Google račun na uređaj da biste omogućili tu značajku"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Prebaci na druge unose"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Tipka za prebacivanje jezika pokriva i druge načine unosa"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Tipka za izmjenjivanje jezika"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Prikaži kada je omogućen unos na više jezika"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Prikaži pokazivač klizanja"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Prikaži vizualni znak tijekom klizanja od tipke Shift ili tipki sa znakovima"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Odgoda prikaza tipki"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Bez odgode"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Zadano"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Glavni rječnik"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Pokaži prijedloge ispravka"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Prikazivanje predloženih riječi prilikom upisivanja"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Uvijek prikaži"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Prikaži u portretnom načinu"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Uvijek sakrij"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Blokiraj uvredljive riječi"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Ne predlaži potencijalno uvredljive riječi"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Automatski ispravak"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Tipka za glasovni unos"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nije omogućen nijedan način glasovnog unosa. Provjerite postavke jezika i unosa."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Konfiguriraj načine ulaza"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Jezici unosa"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Slanje povratnih informacija"</string>
-    <string name="select_language" msgid="3693815588777926848">"Jezici unosa"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Jezici"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Pomoć i povratne informacije"</string>
+    <string name="select_language" msgid="5709487854987078367">"Jezici"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Dodirnite ponovo za spremanje"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Dodirnite ovdje za spremanje"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Rječnik je dostupan"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Tema tipkovnice"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Prijelaz na drugi račun"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Nije odabran nijedan račun"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Trenutačno upotrebljavate <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"U redu"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Odustani"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Odjava"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Odaberite račun za upotrebu"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Engleski (UK)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Engleski (SAD)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"španjolski (SAD)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Srpski (latinica)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"engleska (UK) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"engleska (SAD) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"španjolska (SAD) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Srpski (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tradicionalni)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ćirilica)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (latinica)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (kompaktna)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Nema jezika (abeceda)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Abeceda (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Abeceda (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Abeceda (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Abeceda (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Tema tipkovnice"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Prilagođeni stilovi unosa"</string>
     <string name="add_style" msgid="6163126614514489951">"Dodaj stil"</string>
     <string name="add" msgid="8299699805688017798">"Dodaj"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Omogući"</string>
     <string name="not_now" msgid="6172462888202790482">"Ne sada"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Već postoji isti stil unosa: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Odgoda dugog pritiska tipke"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Trajanje vibracije pritiska"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Glasnoća pritiska tipke"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Čitanje datoteke vanjskog rječnika"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"U mapi Preuzimanja nema datoteka rječnika"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Odabir datoteke rječnika za instaliranje"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Želite li zaista instalirati tu datoteku za <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Došlo je do pogreške"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Odgoda dugog pritiska tipke"</string>
     <string name="button_default" msgid="3988017840431881491">"Zadano"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Dobro došli u aplikaciju <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"s Pisanjem kretnjama"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Sada možete pisati u svim svojim omiljenim aplikacijama pomoću aplikacije <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Konfiguriraj dodatne jezike"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Završeno"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Prikaži ikonu aplikacije"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Prikazivanje ikone aplikacije u pokretaču"</string>
     <string name="app_name" msgid="6320102637491234792">"Davatelj rječnika"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Davatelj rječnika"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Usluga rječnika"</string>
diff --git a/java/res/values-hu/strings-emoji-descriptions.xml b/java/res/values-hu/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..b72f298
--- /dev/null
+++ b/java/res/values-hu/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Szerzői jog embléma"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Regisztrált embléma"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Kettős felkiáltójel"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Felkiáltó- és kérdőjel"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Védjegy jel"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Információs pont"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Kétágú vízszintes nyíl"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Kétágú függőleges nyíl"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Északnyugatra mutató nyíl"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Északkeletre mutató nyíl"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Délkeletre mutató nyíl"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Délnyugatra mutató nyíl"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Balra mutató kampós nyíl"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Jobbra mutató kampós nyíl"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Karóra"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Homokóra"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Jobbra mutató fekete kettős háromszög"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Balra mutató fekete kettős háromszög"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Felfelé mutató fekete kettős háromszög"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Lefelé mutató fekete kettős háromszög"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Ébresztőóra"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Homokóra folyó homokkal"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Latin nagy m betű egy körben"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Kis fekete négyzet"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Kis fehér négyzet"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Jobbra mutató fekete háromszög"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Balra mutató fekete háromszög"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Közepes fehér négyzet"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Közepes fekete négyzet"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Közepesen kicsi fehér négyzet"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Közepesen kicsi fekete négyzet"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Fekete nap sugarakkal"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Felhő"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Fekete telefon"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Szavazónégyzet pipával"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Esernyő esőcseppekkel"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Forró ital"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Fehér felfelé mutató ujj"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Fehér mosolygó arc"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Kos"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Bika"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Ikrek"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Rák"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Oroszlán"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Szűz"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Mérleg"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Skorpió"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Nyilas"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Bak"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Vízöntő"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Halak"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Fekete pikk"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Fekete treff"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Fekete szív"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Fekete káró"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Hőforrások"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Fekete általános újrahasznosítás jel"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Kerekes szék szimbólum"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Horgony"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Figyelmeztető jel"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Nagyfeszültség jele"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Közepes fehér kör"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Közepes fekete kör"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Focilabda"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Baseball-labda"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Hóember hó nélkül"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Nap felhő mögött"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Kígyótartó"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Behajtani tilos"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Templom"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Szökőkút"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Golfzászló lyukban"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Vitorláshajó"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Sátor"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Benzinkút"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Fekete olló"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Nagy fehér pipa jel"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Repülőgép"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Boríték"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Felemelt ököl"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Felemelt kéz"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Győzelmet mutató kéz"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Ceruza"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Fekete tollhegy"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Nagy pipa jel"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Nagy szorzásjel"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Szikrák"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Nyolcágú csillag"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Nyolcágú fekete csillag"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Hópehely"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Szikra"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Kereszt"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Kereszt négyzetben negatívban"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Fekete kérdőjel"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Fehér kérdőjel"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Fehér felkiáltójel"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Nagy fekete felkiáltójel"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Fekete szív"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Nagy pluszjel"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Nagy mínuszjel"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Nagy osztásjel"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Fekete jobbra mutató nyíl"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Hurok"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Dupla hurok"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Jobbra mutató, majd felfelé kanyarodó nyíl"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Jobbra mutató, majd lefelé kanyarodó nyíl"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Balra mutató fekete nyíl"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Felfelé mutató fekete nyíl"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Lefelé mutató fekete nyíl"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Nagy fekete négyzet"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Nagy fehér négyzet"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Közepes fehér csillag"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Nagy kör"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Hullámos vonal"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Dalrész kezdete jel"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Gratuláció ideogram körben"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Titok ideogram körben"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Madzsong vörös sárkány kő"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Fekete dzsóker kártya"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"A vércsoport"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"B vércsoport"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"0 vércsoport"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Parkoló"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"AB vércsoport"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"CL négyzetben"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Cool négyzetben"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Free négyzetben"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"ID négyzetben"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"New négyzetben"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"NG négyzetben"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"OK négyzetben"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"SOS négyzetben"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Up felkiáltójellel négyzetben"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"VS négyzetben"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Itt katakana négyzetben"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Szolgáltatás katakana négyzetben"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Díjmentes ideogram négyzetben"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Foglalt hely ideogram négyzetben"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Tiltás ideogram négyzetben"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Üresedés ideogram négyzetben"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Elfogadás ideogram négyzetben"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Teljes foglaltság ideogram négyzetben"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Kifizetve ideogram négyzetben"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Havi ideogram négyzetben"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Alkalmazás ideogram négyzetben"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Kedvezmény ideogram négyzetben"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Munkában ideogram négyzetben"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Előny ideogram körben"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Elfogad ideogram körben"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Ciklon"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Ködös"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Összecsukott esernyő"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Éjszakai ég csillagokkal"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Napfelkelte a hegyek fölött"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Napfelkelte"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Városi látkép alkonyatkor"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Napnyugta épületek felett"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Szivárvány"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Híd éjszaka"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Hullám"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Vulkán"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Tejút"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Földgömb Európával és Afrikával"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Földgömb Észak- és Dél-Amerikával"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Földgömb Ázsiával és Ausztráliával"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Földgömb délkörökkel"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Újhold szimbólum"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Növekvő félhold szimbólum"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Első negyed holdfázis szimbólum"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Növekvő hold szimbólum"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Telihold szimbólum"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Fogyó hold szimbólum"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Utolsó negyed holdfázis szimbólum"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Fogyó félhold szimbólum"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Holdsarló"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Újhold arccal"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Első negyed holdfázis arccal"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Utolsó negyed holdfázis arccal"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Telihold arccal"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Nap arccal"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Tündöklő csillag"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Hullócsillag"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Gesztenye"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Palánta"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Örökzöld fa"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Lombhullató fa"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Pálmafa"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Kaktusz"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulipán"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Cseresznyevirág"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Rózsa"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Hibiszkusz"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Napraforgó"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Virág"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Kukoricacső"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Rizskalász"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Gyógynövény"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Négylevelű lóhere"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Juharlevél"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Lehullott levél"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Hulló falevél"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Gomba"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Paradicsom"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Padlizsán"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Szőlő"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Dinnye"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Görögdinnye"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Mandarin"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Citrom"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Banán"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ananász"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Piros alma"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Zöldalma"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Körte"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Barack"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Cseresznye"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Eper"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburger"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Pizzaszelet"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Hús csonttal"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Csirkecomb"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Rizskeksz"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Rizsgombóc"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Főtt rizs"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Currys rizs"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Tészta tálban"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Spagetti"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Kenyér"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Sült krumpli"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Sült édesburgonya"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Szusi"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Sült garnéla"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Haltorta örvény mintával"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Fagylalt"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Jégkása"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Jégkrém"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Fánk"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Sütemény"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Csokoládé"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Cukorka"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lollipop"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Sodó"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Mézesbödön"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Tortaszelet"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Bento tál"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Egy fazék étel"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Serpenyő"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Kés és villa"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Fületlen teáscsésze"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Szakés kancsó és csésze"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Borospohár"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Koktélos pohár"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Trópusi ital"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Söröskorsó"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Koccintó söröskorsók"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Cumisüveg"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Masni"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Becsomagolt ajándék"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Születésnapi torta"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Töklámpás"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Karácsonyfa"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Télapó"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Tűzijáték"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Csillagszóró"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Léggömb"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Mini konfettiágyú"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Konfettigömb"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Tanabata fa"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Keresztbe tett zászlók"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Fenyődísz"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Japán babák"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Ponty alakú szélzsákok"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Szélharang"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Holdszemlélő ünnep"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Iskolatáska"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Diplomaosztón viselt kalap"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Ló körhintán"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Óriáskerék"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Hullámvasút"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Horgászbot hallal"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Mikrofon"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Filmfelvevő gép"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Mozi"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Fejhallgató"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Festőpaletta"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Cilinder"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Cirkuszi sátor"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Jegy"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Csapó"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Előadóművészetek"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Videojáték"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Telitalálat"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Játékgép"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Biliárd"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Dobókocka"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Bowling"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Virág kártya"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Hangjegy"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Több hangjegy"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Szaxofon"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Gitár"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Zenei billentyűzet"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Trombita"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Hegedű"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Kotta"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Futótrikó vállszalaggal"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Teniszütő és -labda"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Síléc és sícipő"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Kosárlabda és kosár"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Kockás zászló"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Snowboardozó"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Futó"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Szörfös"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Kupa"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Lóverseny"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Amerikaifutball-labda"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Rögbilabda"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Úszó"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Ház"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Ház kerttel"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Irodaépület"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Japán posta"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Európai posta"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Kórház"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Bank"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"ATM"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Szálloda"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Motel"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Kisbolt"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Iskola"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Áruház"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Gyár"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Japán lámpás"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Japán kastély"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Európai kastély"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Patkány"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Egér"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Ökör"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Vízibivaly"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Tehén"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Leopárd"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Nyúl"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Macska"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Sárkány"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Krokodil"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Bálna"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Csiga"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Kígyó"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Ló"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Kos"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Kecske"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Juh"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Majom"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Kakas"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Csirke"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Kutya"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Sertés"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Vaddisznó"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Elefánt"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Polip"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Csavart kagyló"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Rovar"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Hangya"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Méh"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Katicabogár"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Hal"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Trópusi hal"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Gömbhal"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Teknős"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Kikelő csibe"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Kiscsibe"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Szembe forduló kiscsibe"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Madár"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Pingvin"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Pudli"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Egypúpú teve"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Kétpúpú teve"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Delfin"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Egérfej"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Tehénfej"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Tigrisfej"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Nyúlfej"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Macskafej"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Sárkányfej"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Vízsugarat fújó bálna"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Lófej"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Majomfej"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Kutyafej"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Disznófej"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Békafej"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Hörcsögfej"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Farkasfej"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Medvefej"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Pandafej"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Malacorr"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Mancsnyomok"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Szempár"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Fül"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Orr"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Száj"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Nyelv"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Felfelé mutató fehér kéz"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Lefelé mutató fehér kéz"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Balra mutató fehér kéz"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Jobbra mutató fehér kéz"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Ökölbe szorított kéz"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Integető kéz"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Rendben jelet mutató kéz"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Felfelé mutató hüvelykujj"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Lefelé mutató hüvelykujj"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Tapsoló kéz"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Kinyitott kéz"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Korona"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Női kalap"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Szemüveg"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Nyakkendő"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Póló"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Farmer"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Női ruha"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimonó"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Blúz"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Pénztárca"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Női táska"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Kézitáska"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Férficipő"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Sportcipő"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Magas sarkú cipő"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Női szandál"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Női csizma"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Lábnyomok"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Felsőtest sziluettje"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Felsőtestek sziluettje"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Fiú"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Lány"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Férfi"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Nő"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Család"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Férfi és nő kézen fogva"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Két férfi kézen fogva"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Két nő kézen fogva"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Rendőr"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Nő nyuszifülekkel"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Menyasszony fátyollal"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Szőke lány"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Kínai férfi"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Turbános férfi"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Idős férfi"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Idős nő"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Kisbaba"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Építőmunkás"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Hercegnő"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Japán ogre"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Japán manó"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Kísértet"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Szárnyas puttó"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Földönkívüli"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Idegen szörny"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Manó"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Koponya"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Információs pultban ülő személy"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Gárdista"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Táncos"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Rúzs"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Körömlakk"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Arcmasszázs"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Hajvágás"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Borbélycégér"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Fecskendő"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Pirula"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Rúzsos csóknyom"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Szerelmes levél"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Gyűrű"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Drágakő"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Csók"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Csokor"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Szerelmespár szívvel"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Esküvő"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Dobogó szív"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Összetört szív"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Két szív"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Csillogó szív"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Növekvő szív"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Szív nyíllal"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Kék szív"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Zöld szív"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Sárga szív"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Lila szív"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Szív szalaggal"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Kört alkotó szívek"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Szív díszítés"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Gyémánt alakzat ponttal a közepén"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Villanykörte"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Harag szimbóluma"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bomba"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Alvás szimbóluma"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Robbanás szimbóluma"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Fröcskölő izzadtság szimbólum"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Vízcsepp"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Száguldás szimbóluma"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Ürülékkupac"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Megfeszített bicepsz"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Szédülés szimbóluma"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Szövegbuborék"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Gondolatbuborék"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Fehér virág"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Század jele"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Pénzeszsák"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Pénzváltás"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Nagy dollárjel"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Hitelkártya"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Bankjegy a jen jelével"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Bankjegy dollárjellel"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Bankjegy az euró jelével"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Bankjegy a font jelével"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Szárnyas pénz"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Növekvő tendenciát jelző diagram a jen jelével"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Ülés"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Számítógép"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Aktatáska"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Minidisc"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Floppy lemez"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"CD"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Irattartó"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Nyitott mappa"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Felkunkorodó aljú papír"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Felfelé néző papír"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Naptár"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Letéphető oldalú naptár"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Kartoték"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Növekvő tendenciát jelző diagram"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Csökkenő tendenciát jelző diagram"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Oszlopdiagram"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Jegyzettömb"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Rajzszög"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Gömb fejű rajzszög"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Gemkapocs"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Egyenes vonalzó"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Háromszögvonalzó"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Könyvjelzők"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Főkönyv"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Jegyzetfüzet"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Jegyzetfüzet díszes borítóval"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Csukott könyv"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Nyitott könyv"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Zöld könyv"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Kék könyv"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Narancssárga könyv"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Könyvek"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Névkitűző"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Papírtekercs"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Emlékeztető"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Telefonkagyló"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Személyhívó"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Fax"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Parabolaantenna"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Köztéri hangosbeszélő"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Kézi megafon"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Tálcáról le"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Tálcára rá"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Csomag"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"E-mail jele"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Beérkező levél borítékja"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Boríték és felette lefelé mutató nyíl"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Csukott postaláda leeresztett zászlóval"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Csukott postaláda felemelt zászlóval"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Nyitott postaláda felemelt zászlóval"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Nyitott postaláda leeresztett zászlóval"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Levélszekrény"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Postakürt"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Újság"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Mobiltelefon"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Mobiltelefon jobbra mutató nyíllal a bal oldalán"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Rezgő üzemmód"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Mobiltelefon ki"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Mobiltelefon nem használható"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Antenna sávokkal"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Fényképezőgép"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Videokamera"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Televízió"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Rádió"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Videokazetta"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Összecsavarodott jobbra mutató nyilak"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Az óramutató járásának megfelelően jobbra és balra mutató, kört formázó nyilak"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Az óramutató járásának megfelelően jobbra és balra mutató, kört formázó nyilak, felettük egy körben lévő egyessel"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Az óramutató járásának megfelelően fel és le mutató, kört formázó nyilak"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Az óramutató járásával ellentétesen le és fel mutató, kört formázó nyilak"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Kis fényerő szimbólum"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Nagy fényerő szimbólum"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Hangszóró áthúzva"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Hangszóró"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Hangszóró egy hanghullámmal"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Hangszóró három hanghullámmal"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Elem"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Dugós csatlakozó"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Balra dőlő nagyító"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Jobbra dőlő nagyító"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Lakat töltőtollal"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Bezárt lakat kulccsal"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Kulcs"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Lakat"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Nyitott lakat"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Csengő"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Csengő áthúzva"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Könyvjelző"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Link szimbóluma"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Választógomb"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Back szó felette balra mutató nyíllal"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"End szó felette balra mutató nyíllal"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"On szó felkiáltójellel és felette kétágú vízszintes nyíllal"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Soon szó jobbra mutató nyíllal"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Top szó felette felfelé mutató nyíllal"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Tizennyolc éven aluliaknak tilos jel"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Tízes billentyű"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Beviteli szimbólum latin nagybetűkhöz"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Beviteli szimbólum latin kisbetűkhöz"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Bevitel szimbólum számokhoz"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Bevitel szimbólum szimbólumokhoz"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Beviteli szimbólum latin betűkhöz"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Tűz"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Elemlámpa"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Csavarkulcs"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Kalapács"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Csavar és anya"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Japán kés"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Pisztoly"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Mikroszkóp"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Távcső"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Kristálygömb"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Hatágú csillag a közepén ponttal"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"A kezdő japán szimbóluma"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Háromágú szigony embléma"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Fekete négyzetes gomb"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Fehér négyzetes gomb"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Nagy piros kör"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Nagy kék kör"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Nagy narancssárga gyémánt"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Nagy kék gyémánt"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Kis narancssárga gyémánt"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Kis kék gyémánt"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Felfelé mutató piros háromszög"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Lefelé mutató piros háromszög"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Felfelé mutató kicsi piros háromszög"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Lefelé mutató kicsi piros háromszög"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Óra számlapja egy órát mutat"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Óra számlapja két órát mutat"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Óra számlapja három órát mutat"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Óra számlapja négy órát mutat"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Óra számlapja öt órát mutat"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Óra számlapja hat órát mutat"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Óra számlapja hét órát mutat"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Óra számlapja nyolc órát mutat"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Óra számlapja kilenc órát mutat"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Óra számlapja tíz órát mutat"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Óra számlapja tizenegy órát mutat"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Óra számlapja tizenkét órát mutat"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Óra számlapja fél kettőt mutat"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Óra számlapja fél hármat mutat"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Óra számlapja fél négyet mutat"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Óra számlapja fél ötöt mutat"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Óra számlapja fél hatot mutat"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Óra számlapja fél hetet mutat"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Óra számlapja fél nyolcat mutat"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Óra számlapja fél kilencet mutat"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Óra számlapja fél tízet mutat"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Óra számlapja fél tizenegyet mutat"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Óra számlapja fél tizenkettőt mutat"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Óra számlapja fél egyet mutat"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Fudzsi hegy"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Tokiói torony"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Szabadság-szobor"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Japán körvonala"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moai"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Vigyorgó arc"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Vigyorgó arc mosolygó szemmel"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Örömében síró arc"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Tátott szájjal nevető arc"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Tátott szájjal nevető, mosolygó szemű arc"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Tátott szájjal nevető, izzadó arc"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Tátott szájjal nevető, szorosan becsukott szemű arc"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Mosolygó arc glóriával"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Mosolygó arc ördögszarvakkal"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Kacsintó arc"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Mosolygó arc mosolygó szemmel"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Szája szélét nyalogató arc"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Megkönnyebbült arc"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Mosolygó arc szív alakú szemmel"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Mosolygó arc napszemüvegben"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Csücsörítve mosolygó arc"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Semleges arc"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Kifejezéstelen arc"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Unott arc"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Hidegen verejtékező arc"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Tűnődő arc"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Zavarodott arc"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Megdöbbent arc"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Csókot adó arc"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Csókot küldő arc"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Csókot adó arc mosolygó szemmel"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Csókot adó arc csukott szemmel"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Arc kinyújtott nyelvvel"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Arc kinyújtott nyelvvel és kacsintó szemmel"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Arc kinyújtott nyelvvel és szorosan becsukott szemmel"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Csalódott arc"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Aggódó arc"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Mérges arc"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Duzzogó arc"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Síró arc"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Állhatatos arc"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Diadalmas arc"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Csalódott, de megkönnyebbült arc"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Tátott szájjal meglepődő arc"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Szenvedő arc"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Félelemmel teli arc"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Elcsigázott arc"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Álmos arc"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Fáradt arc"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Grimaszoló arc"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Zokogó arc"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Arc tátott szájjal"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Csendes arc"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Tátott szájú, izzadó arc"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Félelmében sikoltó arc"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Elképedt arc"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Kipirult arc"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Alvó arc"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Szédülő arc"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Száj nélküli arc"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Arc orvosi maszkkal"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Vigyorgó macskafej mosolygó szemmel"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Örömében síró macskafej"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Tátott szájjal nevető macskafej"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Mosolygó macskafej szív alakú szemmel"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Macskafej fanyar mosollyal"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Csókot adó macskafej csukott szemmel"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Duzzogó macskafej"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Síró macskafej"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Elcsigázott macskafej"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Nem jó jelet mutató arc"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"OK jelet mutató arc"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Mélyen meghajló ember"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Nem látok majom"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Nem hallok majom"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Nem beszélek majom"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Boldog ember, egyik kezét felemelve"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Égnek emelt kézzel örülő személy"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Meggörnyedt ember"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Duzzogó arcú ember"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Összekulcsolt kezű ember"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Űrrakéta"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Helikopter"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Gőzmozdony"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Vasúti kocsi"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Gyorsvasút"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Gyorsvasút lekerekített orral"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Vonat"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Metró"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Hév"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Állomás"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Villamos"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Villamoskocsi"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Busz"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Érkező busz"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Trolibusz"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Buszmegálló"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Minibusz"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Mentőautó"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Tűzoltóautó"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Rendőrautó"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Érkező rendőrautó"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taxi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Érkező taxi"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Autó"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Érkező autó"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Utcai terepjáró"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Teherautó"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Kamion"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Traktor"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Egysínű vasút"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Hegyi vasút"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Függővasút"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Hegyi kábelvasút"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Drótkötélpályás felvonó"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Hajó"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Evezős csónak"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Motorcsónak"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Vízszintes jelzőlámpa"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Függőleges jelzőlámpa"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Útépítés jelző"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Rendőrautó forgó fényjelzése"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Háromszög alakú zászló rúdon"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Ajtó"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Belépni tilos jelzés"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Dohányzás jel"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Dohányozni tilos jel"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Dobja ki a szemetet jel"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Ne szemeteljen jel"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Ivóvíz szimbólum"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Nem ivóvíz szimbólum"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Kerékpár"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Kerékpárral behajtani tilos"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Kerékpáros"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Hegyikerékpáros"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Gyalogos"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Gyalog bemenni tilos"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Átkelő gyermekekkel"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Férfiak jelzés"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Nők jelzés"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Mosdó"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Pelenkázó jelzés"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"WC"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Toalett"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Zuhanyzó"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Fürdő"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Fürdőkád"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Útlevélvizsgálat"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Vám"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Poggyászkiadó terminál"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Elveszett poggyász"</string>
+</resources>
diff --git a/java/res/values-hu/strings-talkback-descriptions.xml b/java/res/values-hu/strings-talkback-descriptions.xml
index ae0c047..84e758b 100644
--- a/java/res/values-hu/strings-talkback-descriptions.xml
+++ b/java/res/values-hu/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Nincs szöveg megadva"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> billentyű – <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> szóra javítja a következőt: <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> billentyű automatikus javítást végez"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Nincs javaslat"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Ismeretlen karakter"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"További szimbólumok"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Nagy I, felette ponttal"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Ismeretlen szimbólum"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Ismeretlen hangulatjel"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Unott arc"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Zavarban lévő arc"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Napszemüveges arc"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Meglepődött arc"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Csókot adó arc"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Homlokráncoló arc"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Az alternatív karakterek elérhetők"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Az alternatív karakterek billentyűzete bezárva"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Az alternatív javaslatok elérhetők"</string>
diff --git a/java/res/values-hu/strings.xml b/java/res/values-hu/strings.xml
index 8e65921..4c9a4b3 100644
--- a/java/res/values-hu/strings.xml
+++ b/java/res/values-hu/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Rezgés gombnyomásra"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Hangjelzés gombnyomásra"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Nagyobb billentyű gombnyomásra"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Beállítások"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Fiókok és adatvédelem"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Megjelenés és elrendezés"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Kézmozdulatokkal történő gépelés"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Szövegjavítás"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Speciális"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Téma"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Megosztott billentyűzet bekapcsolása"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google-billentyűzet szinkronizálása"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"A szinkronizálás be van kapcsolva"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Szinkronizálja személyes szótárát eszközei között"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Szinkronizálás most"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Adatok törlése a felhőből"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Törli a Google rendszeréből a szinkronizált adatokat"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"A szinkronizált adatok törlődnek a felhőből. Biztosan folytatja?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Törlés"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Mégse"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"A rendszer szinkronizálni fogja az Ön személyes szótárát, és biztonsági mentést készít róla a Google szerverein. Termékeink továbbfejlesztése érdekében a rendszer a szavak előfordulási gyakoriságára vonatkozó statisztikai adatokat gyűjthet. Ezen információkat a "<a href="https://www.google.com/policies/privacy">"Google adatvédelmi irányelveivel"</a>" összhangban gyűjtjük és használjuk fel."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"A funkció engedélyezéséhez adjon egy Google-fiókot az eszközhöz"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Váltás más beviteli módra"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"A nyelvkapcsoló gomb egyéb beviteli módokat is tartalmaz"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"A nyelvkapcsoló"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Megjelenítés, ha több beviteli nyelv engedélyezett"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Diajelző megjelenítése"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Vizuális jelzés Shift vagy Szimbólumok billentyűről csúsztatásnál"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Gombeltüntetés késése"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Nincs késés"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Alapbeállítás"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Fő szótár"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Javítási ajánlások megjelenítése"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"A javasolt szavak megjelenítése gépelés közben"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Mindig látszik"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Megjelenítés álló tájolásban"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Mindig rejtve"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Sértő szavak kizárása"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Ne javasoljon esetlegesen sértő szavakat"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Automatikus javítás"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Hangbeviteli gomb"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nincs engedélyezett hangbeviteli módszer. Nézze meg a Nyelvi és beviteli beállításokat."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Beviteli módok beállítása"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Beviteli nyelvek"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Visszajelzés küldése"</string>
-    <string name="select_language" msgid="3693815588777926848">"Beviteli nyelvek"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Nyelvek"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Súgó és visszajelzés"</string>
+    <string name="select_language" msgid="5709487854987078367">"Nyelvek"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Érintse meg újból a mentéshez"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"A mentéshez érintse meg itt"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Van elérhető szótár"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Billentyűzettéma"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Fiókváltás"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Nem választott fiókot"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Jelenleg használt fiók: <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Mégse"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Kijelentkezés"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Válassza ki a használni kívánt fiókot"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"angol (brit)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"angol (amerikai)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"spanyol (USA)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish (hindi-angol)"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Szerb (latin)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"angol (UK) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"angol (USA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"spanyol (USA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (hindi-angol, <xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Szerb (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (hagyományos)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (cirill)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (latin)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (kompakt)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Nincs nyelv (ábécé)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Ábécé (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Ábécé (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Ábécé (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Ábécé (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Hangulatjel"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Billentyűzettéma"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Egyedi bevitelstílusok"</string>
     <string name="add_style" msgid="6163126614514489951">"Új stílus"</string>
     <string name="add" msgid="8299699805688017798">"Hozzáadás"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Engedélyezés"</string>
     <string name="not_now" msgid="6172462888202790482">"Most nem"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Ugyanez a bemenetstílus már létezik: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Hosszú nyomás késleltetése"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Gombnyomás rezgési időtartama"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Gombnyomás hangereje"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Külső szótárfájl olvasása"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Nincs szótárfájl a Letöltések mappában."</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Válasszon ki egy szótárfájlt a telepítéshez."</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Valóban telepíti ezt a fájlt <xliff:g id="LANGUAGE_NAME">%s</xliff:g> nyelvhez?"</string>
-    <string name="error" msgid="8940763624668513648">"Hiba történt."</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Hosszú nyomás késleltetése"</string>
     <string name="button_default" msgid="3988017840431881491">"Alapértelmezett"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Üdvözli a(z) <xliff:g id="APPLICATION_NAME">%s</xliff:g>!"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"kézmozdulatokkal történő bevitellel"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Immár minden kedvenc alkalmazásában gépelhet a(z) <xliff:g id="APPLICATION_NAME">%s</xliff:g> segítségével."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Állítson be további nyelveket"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Befejeződött"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Alkalmazásikon megjelenítése"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Alkalmazásikon megjelenítése az indítóban"</string>
     <string name="app_name" msgid="6320102637491234792">"Szótárszolgáltató"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Szótárszolgáltató"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Szótárszolgáltatás"</string>
diff --git a/java/res/values-hy-rAM/strings-emoji-descriptions.xml b/java/res/values-hy-rAM/strings-emoji-descriptions.xml
index f41f2fc..7339db6 100644
--- a/java/res/values-hy-rAM/strings-emoji-descriptions.xml
+++ b/java/res/values-hy-rAM/strings-emoji-descriptions.xml
@@ -267,7 +267,7 @@
     <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Թխվածքաբլիթ"</string>
     <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Շոկոլադի սալիկ"</string>
     <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Կոնֆետ"</string>
-    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Սառնաշաքար կոնֆետ"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Շաքարաքլոր"</string>
     <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Եփովի կրեմ"</string>
     <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Մեղրանոթ"</string>
     <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Տորթի կտոր"</string>
@@ -552,8 +552,8 @@
     <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Ճկուն սկավառակ"</string>
     <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Օպտիկական սկավառակ"</string>
     <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
-    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Ֆայլերի թղթապանակ"</string>
-    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Ֆայլերի բաց թղթապանակ"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Ֆայլերի պանակ"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Ֆայլերի բաց պանակ"</string>
     <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Ոլորված ծայրով էջ"</string>
     <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Թեքված էջ"</string>
     <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Օրացույց"</string>
diff --git a/java/res/values-hy-rAM/strings-talkback-descriptions.xml b/java/res/values-hy-rAM/strings-talkback-descriptions.xml
index 44784bd..014f499 100644
--- a/java/res/values-hy-rAM/strings-talkback-descriptions.xml
+++ b/java/res/values-hy-rAM/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Տեքստ չի մուտքագրվել"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g>-ը շտկում է <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>-ը՝ դարձնելով <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> ստեղնը ինքնաշտկում է կատարում"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Առաջարկներ չկան"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Անհայտ տառանշան"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Հավելյալ նշաններ"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Մեծատառ I, վերևում կետիկ"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Անհայտ նշան"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Անհայտ զմայլիկ"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Ձանձրացող դեմք"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Շփոթված դեմք"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Արևային ակնոցներով դեմք"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Զարմացած դեմք"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Համբուրող դեմք"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Խոժոռված դեմք"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Լրացուցիչ տառանշաններով ստեղնաշարը հասանելի է"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Լրացուցիչ տառանշաններով ստեղնաշարը փակված է"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Լրացուցիչ առաջարկներով վահանակը հասանելի է"</string>
diff --git a/java/res/values-hy-rAM/strings.xml b/java/res/values-hy-rAM/strings.xml
index f606c4b..acd99eb 100644
--- a/java/res/values-hy-rAM/strings.xml
+++ b/java/res/values-hy-rAM/strings.xml
@@ -26,18 +26,30 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Թրթռալ սեղմման ժամանակ"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Ձայնը սեղմման ժամանակ"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Ելնող պատուհան՝ ստեղնի հպման դեպքում"</string>
-    <string name="settings_screen_input" msgid="2808654300248306866">"Ներածման նախընտրանքներ"</string>
-    <string name="settings_screen_appearances" msgid="3611951947835553700">"Արտաքին տեսք"</string>
-    <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Բազմալեզու տարբերակներ"</string>
-    <string name="settings_screen_gesture" msgid="9113437621722871665">"Ժեստերով մուտքագրման նախընտրանքներ"</string>
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Նախընտրանքներ"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Հաշիվներ և գաղտնիություն"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Արտաքին տեսք և դասավորություն"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Ժեստերով մուտքագրում"</string>
     <string name="settings_screen_correction" msgid="1616818407747682955">"Տեքստի ուղղում"</string>
-    <string name="settings_screen_advanced" msgid="7472408607625972994">"Ընդլայնված"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Հավելյալ"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Թեմա"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Միացնել բաժանված ստեղնաշարը"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google Ստեղնաշարի համաժամեցում"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Համաժամեցումը միացված է"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Համաժամեցնել ձեր անհատական բառարանը սարքերի միջև"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Համաժամացնել հիմա"</string>
+    <!-- no translation found for clear_sync_data_title (8582001557037069154) -->
+    <skip />
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Google- ից ջնջում է ձեր համաժամեցրած տվյալները"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Ձեր համաժամեցրած տվյալները ջնջվելու են ամպից: Շարունակե՞լ:"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Ջնջել"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Չեղարկել"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Ձեր անհատական բառարանը համաժամեցվելու և կրկնօրինակվելու է Google սերվերներում: Կարող են հավաքվել բառերի օգտագործման հաճախականության վիճակագրական տվյալներ՝ մեր արտադրանքների որակը բարելավելու նպատակով: Բոլոր տվյալները հավաքվելու և օգտագործվելու են "<a href="https://www.google.com/policies/privacy">"Google-ի Գաղտնիության քաղաքականության"</a>" դրույթների համաձայն:"</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Այս հնարավորությունն ընձեռելու համար սարքում հավելեք Google հաշիվ"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Անցնել մուտքագրման այլ եղանակների"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Լեզվի փոխարկման բանալին ընդգրկում է այլ մուտքագրման եղանակներ ևս"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Լեզվի փոխարկման ստեղն"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Ցույց տալ, երբ մուտքագրման մի քանի լեզուներ են միացված"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Ցուցադրել սահքի ցուցիչը"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Ցուցադրել տեսողական հուշումը Shift-ի կամ նշանների ստեղներից սահեցման ընթացքում"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Ելնող պատուհանի հեռացման հետաձգման ստեղն"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Առանց հետաձգման"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Նախնականը"</string>
@@ -56,9 +68,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Հիմնական բառարան"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Ցուցադրել ուղղումների առաջարկներ"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Ցուցադրել առաջարկվող բառերը մուտքագրման ընթացքում"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Միշտ ցուցադրել"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Ցուցադրել դիմանկարային ռեժիմում"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Միշտ թաքցնել"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Արգելափակել վիրավորական բառերը"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Չառաջարկել հավանական վիրավորական բառերը"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Ինքնուղղում"</string>
@@ -79,21 +88,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Ձայնային մուտքագրման ստեղն"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ձայնային ներածման որևէ եղանակ միացված չէ։ Ստուգեք Լեզվի և ներածման կարգավորումները։"</string>
     <string name="configure_input_method" msgid="373356270290742459">"Կարգավորել մուտքագրման մեթոդները"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Մուտքագրման լեզուներ"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Արձագանքել"</string>
-    <string name="select_language" msgid="3693815588777926848">"Մուտքագրման լեզուներ"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Լեզուներ"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Օգնություն և հետադարձ կապ"</string>
+    <string name="select_language" msgid="5709487854987078367">"Լեզուներ"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Պահպանելու համար կրկին հպեք"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Պահելու համար հպեք այստեղ"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Բառարանն առկա է"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Ստեղնաշարի թեման"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Փոխարկել հաշիվները"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Հաշիվ չի ընտրվել"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Ներկայումս օգտագործում է՝ <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"Լավ"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Չեղարկել"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Դուրս գալ"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Ընտրեք հաշիվ՝ օգտագործելու համար"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Անգլերեն (ՄԹ)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Անգլերեն (ԱՄՆ)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Իսպաներեն (ԱՄՆ)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Հինգլիշ"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Սերբերեն (Լատինական)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Անգլերեն (ՄԹ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Անգլերեն (ԱՄՆ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Իսպաներեն (ԱՄՆ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Հինգլիշ (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Սերբերեն (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ավանդական)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (կյուրեղյան)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (լատինական)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (սեղմ)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Ոչ մի լեզվով (Այբուբեն)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Այբուբեն (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Այբուբեն (QWERTZ)"</string>
@@ -103,10 +123,6 @@
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Այբուբեն (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Զմայլիկներ"</string>
     <string name="keyboard_theme" msgid="4909551808526178852">"Ստեղնաշարի թեման"</string>
-    <string name="keyboard_theme_holo_white" msgid="8506588144096428751">"Պայծառ"</string>
-    <string name="keyboard_theme_holo_blue" msgid="192400518003397418">"Բաց կապույտ"</string>
-    <string name="keyboard_theme_material_dark" msgid="2701178578784760596">"Մուգ"</string>
-    <string name="keyboard_theme_material_light" msgid="3479400901818790331">"Բաց"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Մուտքագրման հատուկ ոճեր"</string>
     <string name="add_style" msgid="6163126614514489951">"Ավելացնել ոճ"</string>
     <string name="add" msgid="8299699805688017798">"Ավելացնել"</string>
@@ -118,14 +134,9 @@
     <string name="enable" msgid="5031294444630523247">"Միացնել"</string>
     <string name="not_now" msgid="6172462888202790482">"Ոչ հիմա"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Մուտքագրման այսպիսի ոճ արդեն գոյություն ունի՝ <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Ստեղնի երկար սեղմման ուշացում"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Սեղմման թրթռոցի տևողություն"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Սեղմման ձայնի բարձրությունը"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Կարդալ արտաքին բառարանի ֆայլը"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Ներբեռնումների թղթապանակում բառարանային ֆայլեր չկան"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Ընտրեք բառարանային ֆայլը տեղադրման համար"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Տեղադրե՞լ այս ֆայլը <xliff:g id="LANGUAGE_NAME">%s</xliff:g> լեզվի համար:"</string>
-    <string name="error" msgid="8940763624668513648">"Տեղի է ունեցել սխալ"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Ստեղնի երկար սեղմման ուշացում"</string>
     <string name="button_default" msgid="3988017840431881491">"Լռելյայնը"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Բարի գալուստ <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"Ժեստային մուտքագրմամբ"</string>
@@ -143,8 +154,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Այժմ դուք կարող եք մուտքագրել ձեր բոլոր սիրելի հավելվածներում <xliff:g id="APPLICATION_NAME">%s</xliff:g>-ով:"</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Կարգավորել լրացուցիչ լեզուները"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Ավարտված"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Ցույց տալ հավելվածի պատկերակը"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Ցուցադրել հավելվածի պատկերակը թողարկչում"</string>
     <string name="app_name" msgid="6320102637491234792">"Բառարանի մատակարար"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Բառարանի մատակարար"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Բառարանի ծառայություն"</string>
@@ -171,7 +180,7 @@
     <string name="cancel_download_dict" msgid="7843340278507019303">"Չեղարկել"</string>
     <string name="delete_dict" msgid="756853268088330054">"Ջնջել"</string>
     <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Ձեր բջջային սարքում ընտրված լեզվով առկա է բառարան:<br/> Խորհուրդ ենք տալիս &lt;b&gt;ներբեռնել&lt;/b&gt; <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> բառարանը՝ ձեր մուտքագրման հմտությունների բարելավման համար:&lt;br/&gt; &lt;br/&gt; Ներբեռնումը կարող է խլել մեկ կամ երկու րոպե 3G-ի դեպքում: Հնարավոր է գանձում կատարվի, եթե դուք չունեք &lt;b&gt;տվյալների անսահմանափակ փաթեթ&lt;/b&gt;.&lt;br/&gt; Եթե դուք վստահ չեք, թե տվյալների որ փաթեթն ունեք, խորհուրդ ենք տալիս գտնել Wi-Fi կապ՝ ներբեռնումն ավտոմատ սկսելու համար:&lt;br/&gt; &lt;br/&gt; Հուշում. դուք կարող եք ներբեռնել և հեռացնել բառարաններ՝ անցնելով ձեր բջջային սարքի &lt;b&gt;Կարգավորումներ ցանկի Լեզու և մուտքագրում&lt;/b&gt; բաժինը:"</string>
-    <string name="download_over_metered" msgid="1643065851159409546">"Ներբեռնել հիմա (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>Մբ)"</string>
+    <string name="download_over_metered" msgid="1643065851159409546">"Ներբեռնել հիմա (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>ՄԲ)"</string>
     <string name="do_not_download_over_metered" msgid="2176209579313941583">"Ներբեռնել Wi-Fi-ով"</string>
     <string name="dict_available_notification_title" msgid="4583842811218581658">"<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> լեզվի համար առկա է բառարան"</string>
     <string name="dict_available_notification_description" msgid="1075194169443163487">"Սեղմեք՝ վերանայելու և ներբեռնելու համար"</string>
diff --git a/java/res/values-in/strings-emoji-descriptions.xml b/java/res/values-in/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..9eade09
--- /dev/null
+++ b/java/res/values-in/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Tanda hak cipta"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Tanda terdaftar"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Tanda seru ganda"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Tanda tanya dan tanda seru"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Tanda merek dagang"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Sumber informasi"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Panah kanan kiri"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Panah atas bawah"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Panah barat laut"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Panah timur laut"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Panah tenggara"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Panah barat daya"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Panah melengkung ke kiri"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Panah melengkung ke kanan"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Jam tangan"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Jam pasir"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Segitiga hitam ganda mengarah ke kanan"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Segitiga hitam ganda mengarah ke kiri"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Segitiga hitam ganda mengarah ke atas"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Segitiga hitam ganda mengarah ke bawah"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Jam alarm"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Jam pasir dengan pasir mengalir"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Lingkaran bertuliskan huruf kapital M"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Persegi kecil hitam"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Persegi kecil putih"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Segitiga hitam mengarah ke kanan"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Segitiga hitam mengarah ke kiri"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Persegi sedang putih"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Persegi sedang hitam"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Persegi kecil menengah putih"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Persegi kecil menengah putih"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Matahari hitam dengan cahaya"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Awan"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Telepon hitam"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Kotak dengan tanda centang"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Patung dengan tetesan hujan"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Minuman panas"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Indeks menunjuk ke atas"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Wajah tersenyum putih"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Aries"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Taurus"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Gemini"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Cancer"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Leo"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Virgo"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Libra"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Scorpio"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Sagitarius"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Capricorn"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Aquarius"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Pisces"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Kartu sekop hitam"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Kartu keriting hitam"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Kartu hati hitam"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Kartu wajik hitam"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Mata air panas"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Simbol daur ulang universal hitam"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Simbol kursi roda"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Jangkar"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Tanda peringatan"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Tanda voltase tinggi"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Lingkaran sedang putih"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Lingkaran sedang hitam"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Sepak bola"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Bisbol"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Manusia salju tanpa salju"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Matahari di belakang awan"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Ofiukus"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Dilarang masuk"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Gereja"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Air mancur"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Bendera di lapangan golf"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Perahu layar"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Tenda"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Pompa bahan bakar"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Gunting hitam"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Tanda centang tebal putih"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Pesawat terbang"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Amplop"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Kepalan tangan diangkat"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Tangan diangkat"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Tanda kemenangan"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Pensil"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Ujung pena hitam"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Tanda centang tebal"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"X perkalian tebal"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Kilauan"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Delapan jeruji seperti tanda bintang"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Bintang hitam dengan delapan ujung runcing"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Kepingan salju"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Kilauan"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Tanda silang"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Tanda silang dalam kotak negatif"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Ornamen tanda tanya hitam"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Ornamen tanda tanya putih"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Ornamen tanda seru putih"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Simbol tanda seru tebal"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Bentuk hati berwarna hitam"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Tanda plus tebal"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Tanda minus tebal"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Tanda bagi tebal"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Panah hitam ke arah kanan"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Lingkaran ikal"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Lingkaran ikal ganda"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Panah mengarah ke kanan lalu ke belok ke atas"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Panah mengarah ke kanan lalu ke belok ke bawah"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Panah hitam ke kiri"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Panah hitam ke atas"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Panah hitam ke bawah"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Persegi besar hitam"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Persegi besar putih"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Bintang sedang putih"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Lingkaran besar tebal"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Tanda pisah bergelombang"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Tanda bagian awal"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Lingkaran bertuliskan ideograf selamat"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Lingkaran bertuliskan ideograf rahasia"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Naga merah ubin Mahjong"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Kartu permainan joker hitam"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Golongan darah A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Golongan darah B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Golongan darah O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Tempat parkir"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Golongan darah AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"Persegi bertuliskan CL"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Persegi bertuliskan COOL"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Persegi bertuliskan FREE"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"Persegi bertuliskan ID"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Persegi bertuliskan NEW"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Persegi bertuliskan N G"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Persegi bertuliskan OK"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"Persegi bertuliskan SOS"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Persegi bertuliskan UP dengan tanda seru"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Persegi bertuliskan VS"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Persegi bertuliskan huruf katakana koko"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Persegi bertuliskan katakana sa"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Persegi bertuliskan ideograf gratis"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Persegi bertuliskan ideograf kursi dipesan"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Persegi bertuliskan ideograf larangan"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Persegi bertuliskan ideograf lowongan"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Persegi bertuliskan ideograf penerimaan"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Persegi bertuliskan ideograf hunian penuh"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Persegi bertuliskan ideograf berbayar"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Persegi bertuliskan ideograf bulanan"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Persegi bertuliskan ideograf aplikasi"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Persegi bertuliskan ideograf diskon"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Persegi bertuliskan ideograf di bidang bisnis"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Lingkaran bertuliskan ideograf keuntungan"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Lingkaran bertuliskan terima"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Topan"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Berkabut"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Payung tertutup"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Malam dengan bintang"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Matahari terbit di atas pegunungan"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Matahari terbit"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Pemandangan kota saat senja"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Matahari terbenam di atas gedung"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Pelangi"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Jembatan saat malam"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Ombak"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Gunung berapi"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Bima sakti"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Globe benua eropa-afrika"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Globe benua amerika"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Globe benua asia-australia"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Globe dengan garis bujur"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Simbol bulan baru"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Simbol bulan sabit muda"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Simbol bulan seperempat pertama"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Simbol bulan hampir penuh"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Simbol bulan purnama"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Simbol bulan sesudah purnama"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Simbol bulan seperempat akhir"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Simbol bulan sabit tua"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Bulan sabit"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Bulan baru dengan wajah"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Bulan seperempat pertama dengan wajah"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Bulan seperempat akhir dengan wajah"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Bulan purnama dengan wajah"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Matahari dengan wajah"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Bintang bersinar"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Bintang jatuh"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Kastanya"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Bibit"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Pohon cemara"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Tumbuhan peluruh"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Pohon palem"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Kaktus"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulip"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Sakura"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Mawar"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Bunga sepatu"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Bunga matahari"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Sakura"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Kelobot jagung"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Tanaman padi"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Rumput"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Daun semanggi"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Daun maple"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Daun jatuh"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Daun yang tertiup angin"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Jamur"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Tomat"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Terung"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Anggur"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Melon"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Semangka"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Jeruk"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Lemon"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Pisang"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Nanas"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Apel merah"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Apel hijau"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Pir"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Persik"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Ceri"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Stroberi"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburger"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Sepotong pizza"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Iga sapi"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Paha ayam"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Biskuit"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Onigiri"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Nasi"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Nasi dan kari"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Semangkuk ramen"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Spageti"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Roti"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Kentang goreng"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Ubi manis panggang"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Sushi"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Udang goreng"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Kue ikan dengan desain pusaran"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Es krim lembut"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Es serut"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Es krim"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Donat"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Kue"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Coklat batangan"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Permen"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lollipop"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Saus puding"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Pot madu"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Kue bolu"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Bekal makanan"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Semangkuk makanan"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Memasak"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Garpu dan pisau"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Cangkir teh tanpa pegangan"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Cangkir dan botol sake"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Gelas anggur"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Gelas koktail"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Minuman tropis"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Gelas bir"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Mendentingkan gelas bir"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Botol bayi"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Pita"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Kado"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Kue ulang tahun"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Jack-o-lantern"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Pohon natal"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Sinterklas"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Kembang api"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Percikan kembang api"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Balon"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Tembakan kertas"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Confetti bentuk bola"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Pohon tanabata"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Bendera disilangkan"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Dekorasi pinus"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Boneka jepang"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Bendera koi"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Lonceng angin"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Upacara melihat bulan"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Tas sekolah"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Topi wisuda"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Kuda komidi putar"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Bianglala"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Roller coaster"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Alat pancing dan ikan"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Mikrofon"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Kamera film"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Bioskop"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Headphone"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Palet"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Topi tinggi"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Tenda sirkus"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Tiket"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Papan tanda"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Seni drama"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Video game"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Tembakan langsung"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Mesin slot"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Biliar"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Game dadu"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Boling"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Kartu remi bunga"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Not balok"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Berbagai not balok"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saksofon"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Gitar"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Kibor"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Terompet"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Biola"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Partitur musik"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Kaos lari dengan selempang"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Bola dan raket tenis"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Ski dan sepatu ski"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Ring dan bola basket"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Bendera papan catur"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Peseluncur salju"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Pelari"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Peselancar"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Piala"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Balapan kuda"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Sepak bola Amerika"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Sepak bola rugbi"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Perenang"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Bangunan rumah"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Rumah dengan kebun"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Bangunan kantor"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Kantor pos Jepang"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Kantor pos Eropa"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Rumah sakit"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Bank"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Mesin kasir otomatis"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Hotel"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Hotel cinta"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Toko kelontong"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Sekolah"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Toko serba ada"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Pabrik"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Lampion Izakaya"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Istana Jepang"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Kastil Eropa"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Tikus besar"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Tikus kecil"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Sapi jantan"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Kerbau"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Sapi"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Macan tutul"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Kelinci"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Kucing"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Naga"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Buaya"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Paus"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Siput"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Ular"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Kuda"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Domba jantan"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Kambing"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Domba"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Monyet"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Ayam jantan"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Ayam"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Anjing"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Babi"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Babi jantan"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Gajah"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Gurita"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Cangkang spiral"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Kutu"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Semut"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Lebah"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Kumbang koksi"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Ikan"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Ikan tropis"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Ikan buntal"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Kura-kura"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Anak ayam yang menetas"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Anak ayam"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Wajah anak ayam menghadap ke depan"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Burung"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Penguin"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Pudel"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Unta arab"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Unta baktria"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Lumba-lumba"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Wajah tikus"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Wajah sapi"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Wajah harimau"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Wajah kelinci"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Wajah kucing"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Wajah naga"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Paus menyembur"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Wajah kuda"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Wajah monyet"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Wajah anjing"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Wajah babi"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Wajah katak"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Wajah hamster"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Wajah serigala"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Wajah beruang"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Wajah panda"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Hidung babi"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Jejak kaki anjing"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Mata"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Telinga"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Hidung"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Mulut"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Lidah"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Indeks tangan menunjuk ke atas"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Indeks tangan menunjuk ke bawah"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Indeks tangan menunjuk ke kiri"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Indeks tangan menunjuk ke kanan"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Tanda mengepal"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Tanda tangan melambai"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Tanda oke"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Tanda suka"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Tanda tidak suka"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Tanda tepuk tangan"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Tanda membuka tangan"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Mahkota"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Topi wanita"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Kacamata"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Dasi"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Kaos"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Jins"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Gaun"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Pakaian wanita"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Tas dompet"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Tas tangan"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Dompet"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Sepatu pria"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Sepatu atletik"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Sepatu hak tinggi"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Sandal wanita"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Bot wanita"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Jejak kaki"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Siluet patung dada"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Siluet patung dada"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Anak laki-laki"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Anak perempuan"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Pria"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Wanita"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Keluarga"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Pria dan wanita saling berpegangan tangan"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Dua pria saling berpegangan tangan"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Dua wanita saling berpegangan tangan"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Polisi"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Wanita dengan telinga kelinci"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Pengantin wanita dengan tudung"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Orang berambut pirang"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Pria mengenakan gua pi mao"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Pria mengenakan serban"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Pria tua"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Wanita tua"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Bayi"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Pekerja konstruksi"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Putri raja"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Ogre Jepang"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Goblin Jepang"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Hantu"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Malaikat bayi"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Makhluk ekstraterestrial"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Makhluk asing"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Setan"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Tengkorak"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Petugas meja informasi"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Pengawal"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Penari"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Lipstik"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Cat kuku"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Pijat wajah"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Potong rambut"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Tiang tukang cukur"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Semprotan"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Pil"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Tanda ciuman"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Surat cinta"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Cincin"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Permata"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Ciuman"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Buket"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Pasangan dengan tanda hati"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Pernikahan"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Hati yang berdebar"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Patah hati"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Dua hati"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Hati yang berkilauan"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Tanda hati yang membesar"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Hati yang terpanah"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Hati biru"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Hati hijau"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Hati kuning"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Hati ungu"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Hati dengan pita"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Hati yang berputar"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Dekorasi hati"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Bentuk berlian degan titik di dalamnya"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Bohlam listrik"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Simbol marah"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bom"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Simbol tidur"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Simbol benturan"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Simbol cipratan keringat"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Tetesan"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Simbol tanda pisah"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Tumpukan kotoran"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Bisep ditekuk"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Simbol pusing"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Balon ucapan"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Balon pemikiran"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Bunga putih"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Simbol angka 100"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Tas uang"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Nilai tukar mata uang"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Tanda dolar tebal"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Kartu kredit"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Uang kertas dengan tanda yen"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Uang kertas dengan tanda dolar"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Uang kertas dengan tanda euro"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Uang kertas dengan tanda poundsterling"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Uang dengan sayap"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Grafik dengan tren ke atas dan tanda yen"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Kursi"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Komputer pribadi"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Tas kantor"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Disk mini"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Disket"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Piringan disk"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Folder file"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Buka folder file"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Halaman dengan gulungan"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Halaman menghadap ke atas"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Kalender"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Kalender dirobek"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Indeks kartu"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Grafik dengan tren meningkat"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Grafik dengan tren menurun"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Grafik batang"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Papan klip"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Pin"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Pin bulat"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Penjepit kertas"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Penggaris lurus"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Penggaris segitiga"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Tab bookmark"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Buku besar"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Bloknot"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Bloknot dengan sampul dekoratif"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Buku tertutup"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Buku terbuka"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Buku hijau"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Buku biru"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Buku oranye"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Buku"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Lencana nama"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Gulungan perkamen"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Memo"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Gagang telepon"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Pager"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Mesin faks"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Antena satelit"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Pengeras suara ditujukan untuk publik"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Suara megafon"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Baki keluaran"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Baki masukan"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Paket"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Simbol email"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Amplop yang masuk"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Amplop dengan panah ke bawah di atas"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Kotak pos tertutup dengan bendera turun"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Kotak pos tertutup dengan bendera terangkat"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Kotak pos terbuka dengan bendera terangkat"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Kotak pos terbuka dengan bendera turun"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Kotak pos"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Terompet kantor pos"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Koran"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Ponsel"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Ponsel dengan panah ke kanan di sebelah kiri"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Mode getar"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Ponsel nonaktif"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Tidak boleh menggunakan ponsel"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Antena dengan simbol batang"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Kamera"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Kamera video"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Televisi"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Radio"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Kaset video"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Panah melilit ke arah kanan"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Simbol ulang horizontal"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Simbol ulang sekali horizontal"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Simbol ulang vertikal dengan panah searah jarum jam"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Simbol ulang vertikal dengan panah berlawanan arah jarum jam"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Simbol kecerahan rendah"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Simbol kecerahan tinggi"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Simbol pengeras suara nonaktif"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Pengeras suara"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Speaker dengan satu gelombang suara"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Speaker dengan tiga gelombang suara"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Baterai"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Steker listrik"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Kaca pembesar mengarah ke kiri"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Kaca pembesar mengarah ke kanan"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Gembok dengan pena tinta"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Kunci dan gembok terkunci"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Kunci"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Gembok"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Gembok terbuka"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Bel"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Bel dengan tanda coret"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Bookmark"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Simbol tautan"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Tombol radio"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Tulisan BACK dengan panah ke kiri di atas"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"Tulisan END dengan panah ke kiri di atas"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"Tulisan ON dengan tanda seru serta panah kiri kanan di atas"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Tulisan SOON dengan panah ke kiri di atas"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Tulisan TOP dengan panah ke kiri di atas"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Simbol khusus 18 tahun"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Cap tombol 10"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Simbol masukan untuk huruf kapital"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Simbol masukan untuk huruf kecil"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Simbol masukan untuk angka"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Simbol masukan untuk simbol"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Simbol masukan untuk huruf"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Api"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Obor listrik"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Kunci pas"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Palu"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Mur dan baut"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Pisau Jepang"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Pistol"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Mikroskop"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Teleskop"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Bola kristal"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Heksagram dengan titik di tengah"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Simbol Jepang untuk pemula"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Lambang trisula"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Tombol kotak hitam"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Tombol kotak putih"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Lingkaran besar merah"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Lingkaran besar biru"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Lingkaran besar oranye"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Permata besar biru"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Permata kecil oranye"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Permata kecil biru"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Segitiga merah menunjuk ke atas"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Segitiga merah menunjuk ke bawah"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Segitiga kecil merah menunjuk ke atas"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Segitiga kecil merah menunjuk ke bawah"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Jam menunjukkan pukul satu"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Jam menunjukkan pukul dua"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Jam menunjukkan pukul tiga"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Jam menunjukkan pukul empat"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Jam menunjukkan pukul lima"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Jam menunjukkan pukul enam"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Jam menunjukkan pukul tujuh"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Jam menunjukkan pukul delapan"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Jam menunjukkan pukul sembilan"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Jam menunjukkan pukul sepuluh"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Jam menunjukkan pukul sebelas"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Jam menunjukkan pukul dua belas"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Jam menunjukkan pukul setengah dua"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Jam menunjukkan pukul setengah tiga"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Jam menunjukkan pukul setengah empat"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Jam menunjukkan pukul setengah lima"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Jam menunjukkan pukul setengah enam"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Jam menunjukkan pukul setengah tujuh"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Jam menunjukkan pukul setengah delapan"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Jam menunjukkan pukul setengah sembilan"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Jam menunjukkan pukul setengah sepuluh"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Jam menunjukkan pukul setengah sebelas"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Jam menunjukkan pukul setengah dua belas"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Jam menunjukkan pukul setengah satu"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Gunung fuji"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Menara Tokyo"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Patung Liberty"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Siluet Jepang"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moyai"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Wajah menyeringai"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Wajah meringis dengan mata tersenyum"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Wajah dengan air mata bahagia"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Wajah tersenyum dengan mulut terbuka"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Wajah tersenyum dengan mulut terbuka dan mata tersenyum"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Wajah tersenyum dengan mulut terbuka dan keringat dingin"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Wajah tersenyum dengan mulut terbuka dan mata tertutup rapat"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Wajah tersenyum dengan lingkaran cahaya"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Wajah tersenyum dengan tanduk"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Wajah dengan salah satu mata mengedip"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Wajah tersenyum dengan mata tersenyum"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Wajah sedang menikmati makanan lezat"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Wajah lega"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Wajah tersenyum dengan mata bentuk hati"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Wajah tersenyum dengan kacamata"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Wajah mencibir"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Wajah netral"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Wajah tanpa ekspresi"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Wajah tidak senang"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Wajah dengan keringat dingin"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Wajah murung"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Wajah bingung"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Wajah kacau"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Wajah mencium"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Wajah melempar ciuman"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Wajah mencium dengan mata tersenyum"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Wajah mencium dengan mata tertutup"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Wajah menjulurkan lidah"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Wajah menjulurkan lidah dengan salah satu mata berkedip"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Wajah menjulurkan lidah dengan mata tertutup rapat"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Wajah kecewa"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Wajah khawatir"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Wajah marah"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Wajah cemberut"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Wajah menangis"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Wajah gigih"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Wajah dengan ekspresi kemenangan"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Kecewa tapi berwajah lega"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Wajah merengut dengan mulut terbuka"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Wajah sedih"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Wajah takut"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Wajah letih"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Wajah mengantuk"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Wajah lelah"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Wajah meringis"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Wajah menangis keras"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Wajah dengan mulut terbuka"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Wajah hening"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Wajah dengan mulut terbuka dan keringat dingin"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Wajak berteriak dalam ketakutan"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Wajah kaget"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Wajah merona"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Wajah tidur"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Wajah pusing"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Wajah tanpa mulut"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Wajah dengan masker bedah"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Wajah menyeringai dengan mata tersenyum"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Wajah kucing dengan air mata bahagia"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Wajah kucing tersenyum dengan mulut terbuka"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Wajah kucing tersenyum dengan mata bentuk hati"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Wajah kucing dengan senyum sinis"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Wajah kucing mencium dengan mata tertutup"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Wajah kucing cemberut"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Wajah kucing menangis"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Wajah kucing letih"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Wajah dengan isyarat tidak setuju"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Wajah dengan isyarat oke"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Orang yang membungkuk dalam-dalam"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Monyet menutup mata"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Monyet menutup telinga"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Monyet menutup mulut"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Orang yang bahagia mengangkat satu tangan"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Orang bersorak dengan mengangkat kedua tangan"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Orang merengut"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Orang dengan wajah cemberut"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Orang dengan tangan terlipat"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Roket"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Helikopter"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Lokomotif uap"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Gerbong"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Kereta kecepatan tinggi"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Kereta kecepatan tinggi dengan ujung seperti peluru"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Kereta api"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Angkutan cepat"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Kereta listrik"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Stasiun"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Trem"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Trem"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Bus"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Bus yang melaju"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Bus listrik"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Halte bus"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Bus mini"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Ambulan"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Mobil pemadam kebakaran"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Mobil polisi"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Mobil polisi yang melaju"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taksi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Taksi yang melaju"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Mobil"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Mobil yang melaju"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Mobil rumah"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Truk pengiriman"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Truk gandeng"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Traktor"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Monorel"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Jalur kereta gunung"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Kereta monorel suspensi"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Gondola gunung"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Kereta gantung"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Kapal"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Perahu dayung"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Perahu motor cepat"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Lampu lalu lintas mendatar"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Lampu lalu lintas tegak lurus"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Tanda kontruksi"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Lampu putar mobil polisi"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Bendera segitiga di pos"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Pintu"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Tanda larangan masuk"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Simbol merokok"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Simbol dilarang merokok"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Simbol masukkan sampah di tempatnya"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Simbol jangan buang sampah sembarangan"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Simbol air minum"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Simbol air tidak dapat diminum"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Sepeda"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Sepeda dilarang melintas"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Pengendara sepeda"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Pengendara sepeda gunung"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Pejalan kaki"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Pejalan kaki dilarang melintas"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Tempat anak menyebrang"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Simbol pria"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Simbol wanita"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Ruang istirahat"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Simbol bayi"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Toilet"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"WC"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Pancuran"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Kamar mandi"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Bak mandi"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Kontrol paspor"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Bea cukai"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Klaim bagasi"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Bagasi tertinggal"</string>
+</resources>
diff --git a/java/res/values-in/strings-talkback-descriptions.xml b/java/res/values-in/strings-talkback-descriptions.xml
index f7334d9..fb6b6f9 100644
--- a/java/res/values-in/strings-talkback-descriptions.xml
+++ b/java/res/values-in/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Tidak ada teks yang dimasukkan"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> mengoreksi <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> menjadi <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> melakukan koreksi otomatis"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Tidak ada saran"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Karakter tak dikenal"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Simbol lainnya"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Huruf kapital I dengan aksen titik di bagian atas"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Simbol tak dikenal"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Emoji tak dikenal"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Wajah bosan"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Wajah malu"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Wajah mengenakan kacamata hitam"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Wajah terkejut"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Wajah mencium"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Wajah merengut"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Karakter alternatif tersedia"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Karakter alternatif ditolak"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Saran alternatif tersedia"</string>
diff --git a/java/res/values-in/strings.xml b/java/res/values-in/strings.xml
index 129a23c..49873b8 100644
--- a/java/res/values-in/strings.xml
+++ b/java/res/values-in/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Getar jika tombol ditekan"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Berbunyi jika tombol ditekan"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Muncul saat tombol ditekan"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferensi"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Akun &amp; Privasi"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Tampilan &amp; Tata Letak"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Ketikan Isyarat"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Koreksi teks"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Lanjutan"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Aktifkan keyboard terpisah"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Sinkronisasi Keyboard Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Sinkronisasi diaktifkan"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Menyinkronkan kamus pribadi di perangkat"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Sinkronkan sekarang"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Menghapus data awan"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Menghapus data yang disinkronkan dari Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Data yang disinkronkan akan dihapus dari awan. Anda yakin?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Hapus"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Batal"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Kamus pribadi akan disinkronkan dan dicadangkan ke server Google. Informasi statistik tentang frekuensi kata dapat dikumpulkan untuk membantu menyempurnakan produk kami. Pengumpulan dan penggunaan data tunduk pada "<a href="https://www.google.com/policies/privacy">"Kebijakan Privasi Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Tambahkan akun Google ke perangkat ini untuk mengaktifkan fitur ini"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Beralih ke metode masukan lain"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Tombol beralih bahasa juga mencakup metode masukan lain"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Tombol pengalih bahasa"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Tampilkan saat beberapa bahasa masukan diaktifkan"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Tampilkan indikator geser"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Tampilkan isyarat visual saat menggeser dari tombol Shift/Simbol"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Tundaan singkir munculan kunci"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Tanpa penundaan"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Default"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Kamus utama"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Tampilkan saran koreksi"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Tampilkan kata yang disarankan ketika mengetik"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Selalu tampilkan"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Tampilkan dalam mode potret"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Selalu sembunyikan"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Blokir kata tak pantas"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Jangan sarankan kata yang berpotensi menyinggung"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Koreksi otomatis"</string>
@@ -77,7 +79,7 @@
     <string name="bigram_prediction_summary" msgid="3896362682751109677">"Gunakan kata sebelumnya dalam membuat saran"</string>
     <string name="gesture_input" msgid="826951152254563827">"Aktifkan pengetikan isyarat"</string>
     <string name="gesture_input_summary" msgid="9180350639305731231">"Masukkan kata dengan menggeser huruf ke kanan/kiri"</string>
-    <string name="gesture_preview_trail" msgid="3802333369335722221">"Tampilkan jalur isyarat"</string>
+    <string name="gesture_preview_trail" msgid="3802333369335722221">"Tampilkan jejak isyarat"</string>
     <string name="gesture_floating_preview_text" msgid="4443240334739381053">"Pratinjau mengambang dinamis"</string>
     <string name="gesture_floating_preview_text_summary" msgid="4472696213996203533">"Lihat kata yang disarankan saat melakukan isyarat"</string>
     <string name="gesture_space_aware" msgid="2078291600664682496">"Isyarat frasa"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Tombol masukan suara"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Tidak ada metode masukan suara yang diaktifkan. Periksa setelan Bahasan &amp; masukan."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Konfigurasikan metode masukan"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Bahasa masukan"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Kirim masukan"</string>
-    <string name="select_language" msgid="3693815588777926848">"Bahasa masukan"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Bahasa"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Bantuan &amp; masukan"</string>
+    <string name="select_language" msgid="5709487854987078367">"Bahasa"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Sentuh lagi untuk menyimpan"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Sentuh di sini untuk menyimpan"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Kamus yang tersedia"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Tema keyboard"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Beralih akun"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Tidak ada akun yang dipilih"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Saat ini menggunakan <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"Oke"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Batal"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Keluar"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Pilih akun yang akan digunakan"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Inggris (Inggris)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Inggris (AS)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Spanyol (AS)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Serbia (Latin)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"(<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>) Inggris (Inggris)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"(<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>) Inggris (AS)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"(<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>) Spanyol (AS)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Serbia (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Tradisional)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Sirilik)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Latin)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Rapat)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Tidak ada bahasa (Abjad)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Abjad (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Abjad (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Abjad (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Abjad (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Tema keyboard"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Gaya masukan khusus"</string>
     <string name="add_style" msgid="6163126614514489951">"Tambah gaya"</string>
     <string name="add" msgid="8299699805688017798">"Tambahkan"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Aktifkan"</string>
     <string name="not_now" msgid="6172462888202790482">"Nanti saja"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Sudah ada gaya masukan yang sama: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Penundaan tekan lama tombol"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Durasi getar saat tekan tombol"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Volume suara saat tekan tombol"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Membaca file kamus eksternal"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Tidak ada file kamus di folder Unduhan"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Pilih file kamus untuk dipasang"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Yakin ingin memasang file ini untuk <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Terjadi kesalahan"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Penundaan tekan lama tombol"</string>
     <string name="button_default" msgid="3988017840431881491">"Default"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Selamat datang di <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"dengan Ketikan Isyarat"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Sekarang Anda dapat mengetik di semua aplikasi favorit Anda dengan <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Konfigurasikan bahasa tambahan"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Selesai"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Tampilkan ikon aplikasi"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Menampillkan ikon aplikasi di peluncur"</string>
     <string name="app_name" msgid="6320102637491234792">"Penyedia Kamus"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Penyedia Kamus"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Layanan Kamus"</string>
diff --git a/java/res/values-is-rIS/strings-talkback-descriptions.xml b/java/res/values-is-rIS/strings-talkback-descriptions.xml
index 978b079..b4f2a14 100644
--- a/java/res/values-is-rIS/strings-talkback-descriptions.xml
+++ b/java/res/values-is-rIS/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Engin texti sleginn inn"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> leiðréttir <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> yfir í <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> framkvæmir sjálfvirka leiðréttingu"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Engin tillaga"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Óþekktur stafur"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Fleiri tákn"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Hástafurinn I með depli"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Óþekkt tákn"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Óþekkt emoji-tákn"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Andlit sem leiðist"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Skömmustulegt andlit"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Andlit með sólgleraugu"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Andlit sem undrast"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Andlit sem kyssir"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Andlit með grettu"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Aukalegir stafir eru í boði"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Aukalegum stöfum lokað"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Aukalegar tillögur eru í boði"</string>
diff --git a/java/res/values-is-rIS/strings.xml b/java/res/values-is-rIS/strings.xml
index c5b489f..9e63a76 100644
--- a/java/res/values-is-rIS/strings.xml
+++ b/java/res/values-is-rIS/strings.xml
@@ -26,18 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Titringur þegar ýtt er á lykla"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Hljóð þegar ýtt er á lykil"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Stækkaðir stafir við innslátt"</string>
-    <string name="settings_screen_input" msgid="2808654300248306866">"Inntaksvalkostir"</string>
-    <string name="settings_screen_appearances" msgid="3611951947835553700">"Útlit"</string>
-    <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Tungumálavalkostir"</string>
-    <string name="settings_screen_gesture" msgid="9113437621722871665">"Still. bendingainnsláttar"</string>
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Kjörstillingar"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Reikningar og persónuvernd"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Útlit og uppsetning"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Bendingainnsláttur"</string>
     <string name="settings_screen_correction" msgid="1616818407747682955">"Textaleiðrétting"</string>
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Ítarlegt"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Þema"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Virkja skipt lyklaborð"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Samstilling Google lyklaborðs"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Kveikt er á samstillingu"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Samstilltu orðabókina þína á milli tækja"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Samstilla núna"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Eyða gögnum í skýi"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Eyðir samstilltum gögnum af Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Samstilltum gögnum frá þér verður eytt úr skýinu. Ertu viss?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Eyða"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Hætta við"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Orðabókin þín verður samstillt og afrituð á netþjóna Google. Hugsanlega verður talnagögnum um tíðni orða safnað til að gera vörur okkar betri. Söfnun og notkun allra upplýsinga fellur undir "<a href="https://www.google.com/policies/privacy">"persónuverndarstefnu Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Bættu Google reikningi við tækið til að virkja þennan eiginleika"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Skipta um innsláttaraðferð"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Lykill til að skipta um mál inniheldur aðrar innsláttaraðferðir"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Lykill til að breyta tungumáli"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Sýna þegar mörg innsláttartungumál eru virk"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Sýna rennivísi"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Sýna myndræna vísbendingu þegar rennt er af Shift eða táknalykli"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Hunsunartöf lyklaglugga"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Engin töf"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Sjálfgefið"</string>
@@ -56,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Aðalorðabók"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Sýna leiðréttingartillögur"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Sýna orðatillögur við innslátt"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Sýna alltaf"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Sýna í skammsniði"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Fela alltaf"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Útiloka dónaleg orð"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Ekki stinga upp á orðum sem kunna að vera dónaleg"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Sjálfv. leiðrétting"</string>
@@ -79,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Raddinntakslykill"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Engar innsláttaraðferðir fyrir rödd virkar. Kannaðu stillingar tungumáls og innsláttar."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Stilla innsláttaraðferðir"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Innsláttartungumál"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Senda inn álit"</string>
-    <string name="select_language" msgid="3693815588777926848">"Innsláttartungumál"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Tungumál"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Hjálp og ábendingar"</string>
+    <string name="select_language" msgid="5709487854987078367">"Tungumál"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Snertu aftur til að vista"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Snertu hér til að vista"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Orðabók í boði"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Þema lyklaborðs"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Skipta um reikning"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Engir reikningar valdir"</string>
+    <string name="account_selected" msgid="2846876462199625974">"<xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g> í notkun"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"Í lagi"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Hætta við"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Skrá út"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Veldu reikning til að nota"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Enskt (Bretland)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Enskt (Bandaríkin)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Spænskt (US)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Serbneskt (latneskt)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Enskt (Bretland) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Enskt (Bandaríkin) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Spænskt (Bandaríkin) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Serbneskt (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (hefðbundið)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (kyrillískt)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (latneskt)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (lítið)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Ekkert tungumál (stafróf)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Stafróf (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Stafróf (QWERTZ)"</string>
@@ -103,10 +122,6 @@
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Stafróf (tölva)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji-tákn"</string>
     <string name="keyboard_theme" msgid="4909551808526178852">"Lyklaborðsþema"</string>
-    <string name="keyboard_theme_holo_white" msgid="8506588144096428751">"Hvítt gegnsætt"</string>
-    <string name="keyboard_theme_holo_blue" msgid="192400518003397418">"Blátt gegnsætt"</string>
-    <string name="keyboard_theme_material_dark" msgid="2701178578784760596">"Dökkt"</string>
-    <string name="keyboard_theme_material_light" msgid="3479400901818790331">"Ljóst"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Sérsniðnar innsláttaraðferðir"</string>
     <string name="add_style" msgid="6163126614514489951">"Bæta stíl við"</string>
     <string name="add" msgid="8299699805688017798">"Bæta við"</string>
@@ -118,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Kveikja"</string>
     <string name="not_now" msgid="6172462888202790482">"Ekki núna"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Sama innsláttaraðferð er þegar fyrir hendi: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Töf áður en lykli er haldið inni"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Lengd lyklatitrings"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Styrkur lyklahljóða"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Lesa utanaðkomandi orðabókarskrá"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Engar orðabókarskrár í niðurhalsmöppunni"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Veldu orðabókarskrá til að setja upp"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Viltu setja upp þessa skrá fyrir <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Villa kom upp"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Töf áður en lykli er haldið inni"</string>
     <string name="button_default" msgid="3988017840431881491">"Sjálfgefið"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Velkomin(n) í <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"með bendingainnslætti"</string>
@@ -143,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Nú geturðu notað <xliff:g id="APPLICATION_NAME">%s</xliff:g> til að skrifa í öllum uppáhaldsforritunum þínum."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Stilla önnur tungumál"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Lokið"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Sýna forritstákn"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Sýna forritstákn í ræsiforritinu"</string>
     <string name="app_name" msgid="6320102637491234792">"Orðabókarveita"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Orðabókarveita"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Orðabókarþjónusta"</string>
diff --git a/java/res/values-it/strings-emoji-descriptions.xml b/java/res/values-it/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..9fccbf1
--- /dev/null
+++ b/java/res/values-it/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Simbolo di copyright"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Simbolo di marchio registrato"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Doppio punto esclamativo"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Punto esclamativo e punto di domanda"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Simbolo del marchio registrato"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Informazioni"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Freccia a sinistra e a destra"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Freccia in giù e in su"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Freccia nord ovest"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Freccia nord est"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Freccia sud est"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Freccia sud ovest"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Freccia a sinistra con gancio"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Freccia a destra con gancio"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Orologio"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Clessidra"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Doppio triangolo nero verso destra"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Doppio triangolo nero verso sinistra"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Doppio triangolo nero verso l\'alto"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Doppio triangolo nero verso il basso"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Sveglia"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Clessidra con sabbia che scorre"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Lettera M maiuscola cerchiata"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Quadrato piccolo pieno"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Quadrato piccolo vuoto"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Triangolo nero verso destra"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Triangolo nero verso sinistra"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Triangolo medio vuoto"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Triangolo medio pieno"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Quadrato medio piccolo vuoto"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Quadrato medio piccolo pieno"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Sole nero con raggi"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Nuvola"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Telefono"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Casella selezionata"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Ombrello con gocce di pioggia"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Bevanda calda"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Indice alzato"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Faccina che sorride"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Ariete"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Toro"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Gemelli"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Cancro"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Leone"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Vergine"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Bilancia"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Scorpione"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Sagittario"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Capricorno"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Aquario"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Pesci"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Picche"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Fiori"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Cuori"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Quadri"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Sorgente termale"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Simbolo universale del riciclo"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Simbolo della sedia a rotelle"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Ancora"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Simbolo di attenzione"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Simbolo dell\'alta tensione"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Cerchio medio vuoto"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Cerchio medio pieno"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Pallone da calcio"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Palla da baseball"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Pupazzo di neve"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Sole coperto"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Ofiuco"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Divieto di accesso"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Chiesa"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Fontana"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Bandiera in buca"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Barca a vela"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Tenda"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Pompa di benzina"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Forbici"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Segno di spunta grande vuoto"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Aereo"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Busta"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Pugno alzato"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Mano alzata"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Segno di vittoria"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Matita"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Pennino"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Segno di spunta pieno"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Segno di moltiplicazione pieno"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Stelline"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Asterisco a otto punte"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Stella a otto punte"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Fiocco di neve"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Scintilla"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Croce"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Croce in negativo con quadrato"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Punto di domanda pieno"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Punto di domanda vuoto"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Punto esclamativo vuoto"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Punto esclamativo pieno"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Cuore nero pieno"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Segno più"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Segno meno"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Segno diviso"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Freccia nera verso destra"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Occhiello"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Doppio occhiello"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Freccia curva da sinistra diretta verso l\'alto"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Freccia curva da sinistra diretta verso il basso"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Freccia nera verso sinistra"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Freccia nera verso l\'alto"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Freccia nera verso il basso"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Quadrato grande pieno"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Quadrato grande vuoto"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Stella media vuota"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Cerchio grande con contorno"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Trattino ondulato"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Simbolo di cambio parte"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Ideogramma \"congratulazioni\" cerchiato"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Ideogramma \"segreto\" cerchiato"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Tessera del drago rosso Mahjong"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Joker nero delle carte"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Gruppo sanguigno A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Gruppo sanguigno B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Gruppo sanguigno O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Parcheggio"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Gruppo sanguigno AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"Simbolo quadrato CL"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Simbolo quadrato Cool"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Simbolo quadrato Free"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"Simbolo quadrato ID"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Simbolo quadrato New"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Simbolo quadrato NG"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Simbolo quadrato OK"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"Simbolo quadrato SOS"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Simbolo quadrato UP con punto esclamativo"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Simbolo quadrato VS"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Parola giapponese \"qui\""</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Parola giapponese \"servizio\""</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Ideogramma quadrato \"gratis\""</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Ideogramma quadrato \"posto prenotato\""</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Ideogramma quadrato \"divieto\""</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Ideogramma quadrato \"vacanza\""</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Ideogramma quadrato \"consenso\""</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Ideogramma quadrato \"al completo\""</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Ideogramma quadrato \"a pagamento\""</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Ideogramma quadrato \"mensile\""</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Ideogramma quadrato \"richiesta\""</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Ideogramma quadrato \"sconto\""</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Ideogramma quadrato \"in funzione\""</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Ideogramma rotondo \"vantaggio\""</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Ideogramma rotondo \"accetta\""</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Ciclone"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Nebbia"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Ombrello chiuso"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Notte stellata"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Alba sulle montagne"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Alba"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Città al tramonto"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Tramonto"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Arcobaleno"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Ponte di notte"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Onda"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Vulcano"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Via Lattea"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Globo Europa-Africa"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Globo Americhe"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Globo Asia-Australia"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Globo con meridiani"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Simbolo della luna nuova"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Simbolo della luna crescente"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Simbolo del primo quarto di luna"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Simbolo della gibbosa crescente"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Simbolo della luna piena"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Simbolo della gibbosa calante"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Simbolo dell\'ultimo quarto di luna"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Simbolo della luna calante"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Luna crescente"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Luna nuova con faccina"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Primo quarto di luna con faccina"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Ultimo quarto di luna con faccina"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Luna piena con faccina"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Sole con faccina"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Stella che brilla"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Stella cadente"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Nocciola"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Germoglio"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Albero sempreverde"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Albero deciduo"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palma"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Cactus"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulipano"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Fiore di ciliegio"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Rosa"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Ibisco"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Girasole"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Fiore"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Pannocchia"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Spiga di riso"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Pianta"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Quadrifoglio"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Foglia d\'acero"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Foglia caduta"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Foglia al vento"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Fungo"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Pomodoro"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Melanzana"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Uva"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Melone"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Anguria"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Mandarino"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Limone"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Banana"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ananas"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Mela rossa"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Mela verde"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Pera"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Pesca"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Ciliegie"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Fragola"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburger"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Fetta di pizza"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Carne con osso"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Coscia di pollo"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Galletta di riso"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Arancino di riso"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Riso bollito"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Riso al curry"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Ramen"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Spaghetti"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Pane"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Patatine fritte"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Patata arrosto"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Sushi"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Gambero fritto"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Crocchetta di pesce con decorazione a spirale"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Cono gelato"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Granita"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Coppa gelato"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Ciambella"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Biscotto"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Barretta di cioccolato"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Caramella"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lecca lecca"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Budino"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Vaso di miele"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Fetta di torta"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Piatto pronto"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Ciotola di cibo"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Padella"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Forchetta e coltello"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Tazza senza manico"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Bottiglia e tazza di sake"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Bicchiere di vino"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Bicchiere da cocktail"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Cocktail tropicale"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Boccale di birra"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Brindisi con boccali di birra"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Biberon"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Fiocco"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Pacchetto regalo"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Torta di compleanno"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Zucca di Halloween"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Albero di Natale"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Babbo Natale"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Fuochi d\'artificio"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Stella filante"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Palloncino"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Spara coriandoli"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Palla di coriandoli"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Bambù decorato"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Bandiere incrociate"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Pino decorato"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Bambole giapponesi"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Aquilone a forma di carpa"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Campana al vento"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Festa della contemplazione della luna"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Zaino di scuola"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Cappello da laureato"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Cavallo da giostra"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Ruota panoramica"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Montagne russe"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Canna da pesca con pesce"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Microfono"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Cinepresa"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Cinema"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Cuffie"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Tavolozza dei colori"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Cilindro"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Tendone da circo"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Biglietto"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Ciak"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Maschere"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Videogioco"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Bersaglio"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Slot machine"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Biliardo"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Dado da gioco"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Bowling"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Carte dei fiori"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Nota musicale"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Note musicali"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Sassofono"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Chitarra"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Tastiera"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Tromba"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Violino"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Pentagramma"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Maglia da corsa con fascia"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Racchetta e pallina da tennis"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Sci e scarpone da sci"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Pallone da basket e canestro"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Bandiera a scacchi"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Omino in snowboard"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Omino che corre"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Omino che fa surf"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Coppa"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Ippica"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Football americano"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Pallone da rugby"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Omino che nuota"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Casa"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Casa con giardino"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Uffici"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Ufficio postale giapponese"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Ufficio postale europeo"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Ospedale"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Banca"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Bancomat"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Hotel"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Motel"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Autogrill"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Scuola"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Centro commerciale"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Fabbrica"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Lanterna rossa"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Casa giapponese"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Castello"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Ratto"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Topo"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Bue"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Bufalo"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Mucca"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Leopardo"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Coniglio"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Gatto"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Drago"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Coccodrillo"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Balena"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Lumaca"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Serpente"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Cavallo"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Ariete"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Capra"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Pecora"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Scimmia"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Gallo"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Gallina"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Cane"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Maiale"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Cinghiale"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Elefante"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Polpo"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Conchiglia a spirale"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Insetto"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Formica"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Ape"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Coccinella"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Pesce"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Pesce tropicale"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Pesce palla"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Tartaruga"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Pulcino che esce dall\'uovo"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Pulcino"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Pulcino visto di fronte"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Uccellino"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Pinguino"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Barboncino"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Dromedario"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Cammello"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Delfino"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Faccina di topo"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Faccina di mucca"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Faccina di tigre"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Faccina di coniglio"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Faccina di gatto"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Faccina di drago"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Balena che spruzza acqua"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Faccina di cavallo"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Faccina di scimmia"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Faccina di cane"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Faccina di maiale"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Faccina di rana"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Faccina di criceto"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Faccina di lupo"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Faccina di orso"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Faccina di panda"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Naso di maiale"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Impronte di zampe"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Occhi"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Orecchio"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Naso"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Bocca"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Lingua"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Indice verso l\'alto"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Indice verso il basso"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Indice verso sinistra"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Indice verso destra"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Pugno chiuso"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Mano che saluta"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Mano che fa OK"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Pollice alzato"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Pollice abbassato"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Mani che applaudono"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Mani aperte"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Corona"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Cappello da donna"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Occhiali da vista"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Cravatta"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Maglietta"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Jeans"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Abito"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Vestiti da donna"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Porta monete"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Borsa"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Borsetta"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Scarpa da uomo"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Scarpa da ginnastica"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Scarpa con il tacco"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Sandalo da donna"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Stivali da donna"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Impronte"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Profilo di persona"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Profilo di due persone"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Bambino"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Bambina"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Uomo"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Donna"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Famiglia"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Uomo e donna mano nella mano"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Due uomini mano nella mano"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Due donne mano nella mano"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Poliziotto"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Coniglietta"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Sposa con il velo"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Persona con i capelli biondi"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Uomo con zucchetto"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Uomo con turbante"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Uomo anziano"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Donna anziana"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Neonato"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Operaio edile"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Principessa"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Orco giapponese"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Goblin giapponese"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Fantasma"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Angioletto"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Alieno extraterrestre"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Mostro alieno"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Diavoletto"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Teschio"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Punto informazioni"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Guardia"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Omino che balla"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Rossetto"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Smalto per unghie"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Massaggio facciale"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Taglio di capelli"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Barbiere"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Siringa"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Pastiglia"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Segno delle labbra"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Lettera d\'amore"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Anello"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Diamante"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Bacio"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Mazzo di fiori"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Coppia con cuore"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Matrimonio"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Cuore che batte"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Cuore infranto"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Due cuori"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Cuore con stelline"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Cuore che cresce"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Cuore con freccia"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Cuore blu"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Cuore verde"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Cuore giallo"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Cuore viola"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Cuore con fiocco"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Cuori che girano"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Decorazione con cuore"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Forma di diamante con punto centrale"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Lampadina"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Simbolo della rabbia"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bomba"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Simbolo del sonno"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Simbolo di collisione"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Simbolo bagno di sudore"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Goccia"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Nuvola di polvere"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Cacca"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Bicipite teso"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Simbolo della testa che gira"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Fumetto"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Nuvoletta"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Fiorellino"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Simbolo dei cento punti"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Sacco per soldi"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Cambio di valuta"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Simbolo del dollaro"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Carta di credito"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Banconota con il simbolo dello yen"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Banconota con il simbolo del dollaro"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Banconota con il simbolo dell\'euro"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Banconota con il simbolo della sterlina"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Soldi con le ali"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Grafico ascendente con simbolo dello yen"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Posto a sedere"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Personal computer"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Valigetta"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Minidisc"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Floppy disk"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Disco ottico"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Cartella di file"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Cartella di file aperta"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Pagina arricciata"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Pagina vista di fronte"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Calendario"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Calendario a strappo"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Schedario"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Grafico ascendente"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Grafico discendente"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Grafico a barre"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Portablocco"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Puntina"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Puntina con testa arrotondata"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Graffetta"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Righello"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Squadra"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Linguette segnalibro"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Registro"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Taccuino"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Taccuino con copertina decorata"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Libro chiuso"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Libro aperto"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Libro verde"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Libro blu"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Libro arancione"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Libri"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Tesserino per nome"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Pergamena"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Memo"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Cornetta del telefono"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Cercapersone"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Fax"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Antenna satellitare"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Altoparlante"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Megafono"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Posta in uscita"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Posta in entrata"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Pacco"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Simbolo dell\'email"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Posta in arrivo"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Busta con sopra una freccia verso il basso"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Cassetta postale chiusa con bandierina in giù"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Cassetta postale chiusa con bandierina in su"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Cassetta postale aperta con bandierina in su"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Cassetta postale aperta con bandierina in giù"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Cassetta delle lettere"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Corno postale"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Quotidiano"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Cellulare"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Cellulare con freccia verso destra a sinistra"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Modalità vibrazione"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Cellulare spento"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Cellulare con simbolo di divieto"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Antenna con tacche"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Fotocamera"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Videocamera"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Televisione"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Radio"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Videocassetta"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Frecce incrociate verso destra"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Circuito aperto in senso orario con freccia sinistra e destra"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Circuito aperto in senso orario con freccia sinistra e destra e numero uno cerchiato sovrapposto"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Circuito aperto in senso orario con freccia verso l\'alto e verso il basso"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Circuito aperto in senso antiorario con freccia verso l\'alto e verso il basso"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Simbolo di bassa luminosità"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Simbolo di alta luminosità"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Altoparlante con simbolo di divieto"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Altoparlante"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Altoparlante con un\'onda sonora"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Altoparlante con tre onde sonore"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Batteria"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Spina elettrica"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Lente di ingrandimento verso sinistra"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Lente di ingrandimento verso destra"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Lucchetto con penna stilo"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Lucchetto chiuso con chiave"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Chiave"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Lucchetto"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Lucchetto aperto"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Campana"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Campana con simbolo di divieto"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Segnalibro"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Simbolo di legame"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Pulsante opzione"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"\"Back\" con sopra freccia verso sinistra"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"\"End\" con sopra freccia verso sinistra"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"\"On\" e punto esclamativo con sopra freccia verso sinistra e destra"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"\"Soon\" con sopra freccia verso destra"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"\"Top\" con sopra freccia verso l\'alto"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Simbolo vietato ai minori di diciotto anni"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Tasto dieci"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Simbolo di immissione per lettere maiuscole"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Simbolo di immissione per lettere minuscole"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Simbolo di immissione per numeri"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Simbolo di immissione per i simboli"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Simbolo di immissione per caratteri alfabetici"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Fuoco"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Torcia elettrica"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Chiave inglese"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Martello"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Bullone"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Coltello da cucina"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Pistola"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Microscopio"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Telescopio"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Sfera di cristallo"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Stella a sei punte con punto centrale"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Simbolo giapponese per \"principiante\""</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Simbolo del tridente"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Pulsante quadrato pieno"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Pulsante quadrato vuoto"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Cerchio rosso grande"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Cerchio blu grande"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Rombo arancione grande"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Rombo blu grande"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Rombo arancione piccolo"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Rombo blu piccolo"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Triangolo rosso con punta verso l\'alto"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Triangolo rosso con punta verso il basso"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Triangolo rosso piccolo con punta verso l\'alto"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Triangolo rosso piccolo con punta verso il basso"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Orologio che segna l\'una"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Orologio che segna le due"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Orologio che segna le tre"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Orologio che segna le quattro"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Orologio che segna le cinque"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Orologio che segna le sei"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Orologio che segna le sette"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Orologio che segna le otto"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Orologio che segna le nove"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Orologio che segna le dieci"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Orologio che segna le undici"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Orologio che segna le dodici"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Orologio che segna l\'una e mezza"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Orologio che segna le due e mezza"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Orologio che segna le tre e mezza"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Orologio che segna le quattro e mezza"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Orologio che segna le cinque e mezza"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Orologio che segna le sei e mezza"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Orologio che segna le sette e mezza"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Orologio che segna le otto e mezza"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Orologio che segna le nove e mezza"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Orologio che segna le dieci e mezza"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Orologio che segna le undici e mezza"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Orologio che segna le dodici e mezza"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Monte Fuji"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Tokyo Tower"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Statua della Libertà"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Mappa del Giappone"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moyai"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Faccina che sogghigna"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Faccina che sogghigna con gli occhi sorridenti"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Faccina con lacrime di gioia"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Faccina sorridente con la bocca aperta"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Faccina che ride con la bocca aperta e gli occhi sorridenti"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Faccina sorridente con la bocca aperta e le gocce di sudore"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Faccina sorridente con la bocca aperta e gli occhi chiusi"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Faccina sorridente con l\'aureola"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Faccina sorridente con le corna"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Faccina che fa l\'occhiolino"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Faccina che sorride con gli occhi sorridenti"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Faccina che si lecca i baffi"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Faccina sollevata"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Faccina sorridente con gli occhi a forma di cuore"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Faccina sorridente con gli occhiali da sole"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Faccina che fa un sorrisetto"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Faccina neutra"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Faccina inespressiva"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Faccina contrariata"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Faccina sudata"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Faccina pensierosa"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Faccina confusa"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Faccina frustrata"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Faccina che dà baci"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Faccina che manda un bacio"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Faccina che dà baci con gli occhi sorridenti"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Faccina che dà baci con gli occhi chiusi"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Faccina con la lingua fuori"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Faccina con la lingua fuori che fa l\'occhiolino"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Faccina con la lingua fuori e gli occhi chiusi"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Faccina delusa"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Faccina preoccupata"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Faccina arrabbiata"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Faccina imbronciata"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Faccina che piange"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Faccina perseverante"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Faccina trionfante"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Faccina delusa ma sollevata"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Faccina corrucciata con la bocca aperta"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Faccina angosciata"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Faccina impaurita"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Faccina esausta"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Faccina assonnata"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Faccina stanca"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Faccina che fa una smorfia"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Faccina che piange disperata"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Faccina con la bocca aperta"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Faccina sommessa"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Faccina sudata con la bocca aperta"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Faccina che grida di paura"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Faccina stupita"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Faccina con le guance rosse"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Faccina addormentata"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Faccina frastornata"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Faccina senza bocca"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Faccina con mascherina di protezione"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Gatto che sogghigna con occhi sorridenti"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Gatto con lacrime di gioia"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Gatto sorridente con la bocca aperta"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Gatto sorridente con gli occhi a forma di cuore"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Gatto con sorriso sarcastico"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Gatto che dà baci con gli occhi chiusi"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Gatto imbronciato"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Gatto che piange"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Gatto esausto"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Faccina con gesto di rifiuto"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Faccina con gesto OK"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Persona che fa l\'inchino"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Scimmietta non vedo"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Scimmietta non sento"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Scimmietta non parlo"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Persona felice che alza una mano"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Persona con le mani alzate in segno di giubilo"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Persona corrucciata"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Persona con faccina imbronciata"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Persona con le mani giunte"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Razzo"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Elicottero"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Locomotiva a vapore"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Vagone"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Treno ad alta velocità"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Treno ad alta velocità con la punta arrotondata"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Treno"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Metropolitana"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Metrotranvia"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Stazione"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Tram"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Vagone del tram"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Autobus"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Autobus in arrivo"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Filobus"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Fermata dell\'autobus"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Minibus"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Ambulanza"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Camion dei pompieri"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Auto della polizia"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Auto della polizia in arrivo"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taxi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Taxi in arrivo"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Automobile"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Automobile in arrivo"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Camper"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Camion"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Bilico"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Trattore"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Monorotaia"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Ferrovia di montagna"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Funivia"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Funicolare"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Funivia aerea"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Nave"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Barca a remi"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Motoscafo"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Semaforo orizzontale"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Semaforo verticale"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Cartello area cantiere"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Lampeggiante della polizia"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Bandierina rossa"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Porta"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Cartello Divieto di accesso"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Simbolo della sigaretta"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Simbolo Vietato fumare"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Simbolo della raccolta rifiuti"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Simbolo Vietato gettare rifiuti"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Simbolo di acqua potabile"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Simbolo di acqua non potabile"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Bicicletta"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Divieto di transito alle biciclette"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Ciclista"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Ciclista in mountain bike"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Pedone"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Divieto di transito ai pedoni"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Attraversamento bambini"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Simbolo del bagno degli uomini"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Simbolo del bagno delle donne"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Bagni"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Simbolo del neonato"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Toilette"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"WC"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Doccia"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Bagno"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Vasca da bagno"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Controllo passaporto"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Dogana"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Ritiro bagagli"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Deposito bagagli"</string>
+</resources>
diff --git a/java/res/values-it/strings-talkback-descriptions.xml b/java/res/values-it/strings-talkback-descriptions.xml
index 8665530..6b23710 100644
--- a/java/res/values-it/strings-talkback-descriptions.xml
+++ b/java/res/values-it/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Nessun testo inserito"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corregge <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> con <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> esegue la correzione automatica"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Nessun suggerimento"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Carattere sconosciuto"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Maiusc"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Altri simboli"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"I maiuscola, punto sovrascritto"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Simbolo sconosciuto"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Emoji sconosciuta"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Faccina annoiata"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Faccina imbarazzata"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Faccina che indossa occhiali da sole"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Faccina sorpresa"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Faccina che dà baci"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Faccina corrucciata"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Sono disponibili caratteri alternativi"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"I caratteri alternativi vengono ignorati"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Sono disponibili suggerimenti alternativi"</string>
diff --git a/java/res/values-it/strings.xml b/java/res/values-it/strings.xml
index 9b7f18c..fc5fed3 100644
--- a/java/res/values-it/strings.xml
+++ b/java/res/values-it/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrazione tasti"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Suono tasti"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Popup sui tasti"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferenze"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Account e privacy"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Aspetto e layout"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Digitazione gestuale"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Correzione testo"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Avanzate"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Attiva tastiera divisa"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Sincronizzazione tastiera Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"La sicronizzazione è attiva"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Sincronizza il tuo dizionario personale sui dispositivi"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Sincronizza ora"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Elimina dati cloud"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"I dati sincronizzati vengono eliminati da Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"I tuoi dati sincronizzati verranno eliminati dalla cloud. Vuoi procedere?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Elimina"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Annulla"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Il·tuo·dizionario personale verrà·sincronizzato sui server di Google e ne verrà effettuato il backup. Potrebbero essere raccolte informazioni·statistiche·relative alla frequenza delle·parole·per migliorare i·nostri·prodotti. La·raccolta·e l\'utilizzo di tutte le informazioni·saranno·conformi·alle·"<a href="https://www.google.com/policies/privacy">"Norme sulla privacy di Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Per attivare la funzione, aggiungi un account Google al dispositivo"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Altri metodi immissione"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Il tasto per cambiare lingua offre altri metodi di immissione"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Tasto cambio lingua"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Mostra quando sono attive più lingue di immissione"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Mostra indicatore scorrimento"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Visualizza indicatore durante scorrimento da Maiusc o Simbolo"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Ritardo eliminaz. popup tasto"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Nessun ritardo"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Predefinito"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Dizionario principale"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Mostra suggerimenti correzioni"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Visualizza le parole suggerite durante la digitazione"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Mostra sempre"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Mostra in modalità verticale"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Nascondi sempre"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Blocca parole offensive"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Non suggerire parole potenzialmente offensive"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Correzione automatica"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Tasto input vocale"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nessun metodo di immissione vocale abilitato. Controlla le impostazioni Lingua e input."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Configura metodi di immissione"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Lingue comandi"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Invia feedback"</string>
-    <string name="select_language" msgid="3693815588777926848">"Lingue comandi"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Lingue"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Guida e feedback"</string>
+    <string name="select_language" msgid="5709487854987078367">"Lingue"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Tocca di nuovo per salvare"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Tocca qui per salvare"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Dizionario disponibile"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Tema della tastiera"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Cambia account"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Nessun account selezionato"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Attualmente in uso: <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Annulla"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Esci"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Seleziona un account da utilizzare"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Inglese (UK)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Inglese (USA)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Spagnolo (USA)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Serbo (latino)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Inglese (Regno Unito) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Inglese (Stati Uniti) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Spagnolo (Stati Uniti) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Serbo (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tradizionale)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Cirillico)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Latino)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (compatto)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Nessuna lingua (alfabeto)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabeto (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabeto (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabeto (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabeto (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Tema della tastiera"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Stili personalizzati"</string>
     <string name="add_style" msgid="6163126614514489951">"Aggiungi stile"</string>
     <string name="add" msgid="8299699805688017798">"Aggiungi"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Attiva"</string>
     <string name="not_now" msgid="6172462888202790482">"Non ora"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Esiste già uno stile di inuput uguale: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Ritardo pressione lunga tasti"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Durata vibraz. pressione tasto"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Volume audio a pressione tasto"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Leggi file dizionario esterno"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Nessun file di dizionario nella cartella Download"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Seleziona un file di dizionario da installare"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Vuoi davvero installare questo file per <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Si è verificato un errore"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Ritardo pressione lunga tasti"</string>
     <string name="button_default" msgid="3988017840431881491">"Predefinito"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Benvenuto in <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"con la Digitazione gestuale"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Ora puoi digitare in tutte le tue app preferite con <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Configura altre lingue"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Terminato"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Mostra icona app"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Mostra l\'icona dell\'app in Avvio applicazioni"</string>
     <string name="app_name" msgid="6320102637491234792">"Dictionary Provider"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Dictionary Provider"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Servizio dizionario"</string>
diff --git a/java/res/values-iw/strings-emoji-descriptions.xml b/java/res/values-iw/strings-emoji-descriptions.xml
index 975ca10..fc4435a 100644
--- a/java/res/values-iw/strings-emoji-descriptions.xml
+++ b/java/res/values-iw/strings-emoji-descriptions.xml
@@ -267,7 +267,7 @@
     <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"עוגייה"</string>
     <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"חפיסת שוקולד"</string>
     <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"סוכרייה"</string>
-    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"סוכרייה על מקל"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lollipop"</string>
     <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"רפרפת"</string>
     <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"סיר דבש"</string>
     <string name="spoken_emoji_1F370" msgid="7243244547866114951">"עוגת פירות"</string>
@@ -556,8 +556,8 @@
     <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"תיקיית קבצים פתוחה"</string>
     <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"דף עם גלילה מלמטה"</string>
     <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"דף פונה כלפי מעלה"</string>
-    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"לוח שנה"</string>
-    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"לוח שנה נתלש"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"יומן"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"יומן נתלש"</string>
     <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"כרטסת"</string>
     <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"תרשים עם מגמת עלייה"</string>
     <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"תרשים עם מגמת ירידה"</string>
@@ -590,7 +590,7 @@
     <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"מגש דואר יוצא"</string>
     <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"מגש דואר נכנס"</string>
     <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"חבילה"</string>
-    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"סמל דוא\"ל"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"סמל אימייל"</string>
     <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"מעטפה נכנסת"</string>
     <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"מעטפה ועליה חץ למטה"</string>
     <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"תיבת דואר סגורה עם דגל מורד"</string>
diff --git a/java/res/values-iw/strings-talkback-descriptions.xml b/java/res/values-iw/strings-talkback-descriptions.xml
index a43b64e..afadfbd 100644
--- a/java/res/values-iw/strings-talkback-descriptions.xml
+++ b/java/res/values-iw/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"לא הוזן טקסט"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> מתקן את <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> ל-<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> מבצע תיקון אוטומטי"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"אין הצעה"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"תו לא מוכר"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"סמלים נוספים"</string>
@@ -57,7 +58,7 @@
     <string name="announce_keyboard_mode" msgid="6698257917367823205">"מציג מקלדת <xliff:g id="KEYBOARD_MODE">%s</xliff:g>"</string>
     <string name="keyboard_mode_date" msgid="6597407244976713364">"תאריך"</string>
     <string name="keyboard_mode_date_time" msgid="3642804408726668808">"תאריך ושעה"</string>
-    <string name="keyboard_mode_email" msgid="1239682082047693644">"דוא\"ל"</string>
+    <string name="keyboard_mode_email" msgid="1239682082047693644">"אימייל"</string>
     <string name="keyboard_mode_im" msgid="3812086215529493501">"העברת הודעות"</string>
     <string name="keyboard_mode_number" msgid="5395042245837996809">"מספרים"</string>
     <string name="keyboard_mode_phone" msgid="2486230278064523665">"מספרי טלפון"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"‏I גדולה, נקודה מעל"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"סמל לא מוכר"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"‏Emoji לא מוכר"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"פרצוף משועמם"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"פרצוף נבוך"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"פרצוף עם משקפי שמש"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"פרצוף מופתע"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"פרצוף מנשק"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"פרצוף זועף"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"תווים חלופיים זמינים"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"תווים חלופיים נדחים"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"הצעות חלופיות זמינות"</string>
diff --git a/java/res/values-iw/strings.xml b/java/res/values-iw/strings.xml
index d36d3ce..2acc08c 100644
--- a/java/res/values-iw/strings.xml
+++ b/java/res/values-iw/strings.xml
@@ -26,18 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"רטט בלחיצה על מקשים"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"צלילים בעת לחיצה על מקשים"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"חלון קופץ בלחיצה על מקש"</string>
-    <string name="settings_screen_input" msgid="2808654300248306866">"העדפות קלט"</string>
-    <string name="settings_screen_appearances" msgid="3611951947835553700">"מראה"</string>
-    <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"אפשרויות ריבוי שפות"</string>
-    <string name="settings_screen_gesture" msgid="9113437621722871665">"העדפות של הקלדת החלקה"</string>
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"העדפות"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"חשבונות ופרטיות"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"מראה ופריסות"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"הקלדת החלקה"</string>
     <string name="settings_screen_correction" msgid="1616818407747682955">"תיקון טקסט"</string>
     <string name="settings_screen_advanced" msgid="7472408607625972994">"מתקדם"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"עיצוב"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"הפעל מקלדת מפוצלת"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"‏סנכרון מקלדת Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"הסנכרון פועל"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"סנכרן את המילון האישי בין מכשירים"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"סנכרן עכשיו"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"מחק נתונים בענן"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"‏מוחק את הנתונים המסונכרנים שלך מ-Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"הנתונים המסונכרנים שלך יימחקו מהענן. האם אתה בטוח?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"מחק"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"בטל"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"‏המילון האישי שלך יסונכרן ויגובה בשרתי Google. ייתכן שהמידע הסטטיסטי לגבי תדירות מילים ייאסף כדי לעזור בשיפור המוצרים שלנו. איסוף המידע והשימוש בו יעשו בהתאם ל"<a href="https://www.google.com/policies/privacy">"מדיניות הפרטיות של Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"‏הוסף חשבון Google במכשיר הזה כדי להפעיל את התכונה הזו"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"עבור לשיטות קלט אחרות"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"מתג החלפת השפה מכסה גם שיטות קלט אחרות"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"מתג החלפת שפה"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"הצג כאשר ניתן להשתמש בשפות קלט מרובות"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"הצג את סמן ההסטה"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"‏הצג סימון ויזואלי בעת הסטה מ-Shift או ממקשי סמלים"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"עיכוב בסגירת חלון קופץ של מקש"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"ללא עיכוב"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"ברירת מחדל"</string>
@@ -56,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"מילון ראשי"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"הצג הצעות לתיקונים"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"הצג הצעות למילים בעת הקלדה"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"הצג תמיד"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"הצג בפריסה לאורך"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"הסתר תמיד"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"חסום מילים פוגעניות"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"אל תציע מילים שעלולות להיות פוגעניות"</string>
     <string name="auto_correction" msgid="7630720885194996950">"תיקון אוטומטי"</string>
@@ -79,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"מקש קלט קולי"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"לא הופעלו שיטות של קלט קולי. בדוק את הגדרות השפה והקלט."</string>
     <string name="configure_input_method" msgid="373356270290742459">"הגדרת שיטות קלט"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"שפות קלט"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"שלח משוב"</string>
-    <string name="select_language" msgid="3693815588777926848">"שפות קלט"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"שפות"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"עזרה ומשוב"</string>
+    <string name="select_language" msgid="5709487854987078367">"שפות"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"גע שוב כדי לשמור"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"גע כאן כדי לשמור"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"מילון זמין"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"עיצוב מקלדת"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"החלף חשבונות"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"לא נבחרו חשבונות"</string>
+    <string name="account_selected" msgid="2846876462199625974">"משתמש כרגע ב-<xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"אישור"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"בטל"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"צא"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"בחר באיזה חשבון חשבון להשתמש"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"אנגלית (בריטניה)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"אנגלית (ארה\"ב)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"ספרדית (ארצות הברית)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"אנגלית הודית"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"סרבית (באותיות לטיניות)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"אנגלית (בריטניה)‏ (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"אנגלית (ארה\"ב) ‏(<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"ספרדית (ארה\"ב) ‏(<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"אנגלית הודית (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"סרבית (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (מסורתית)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (קירילית)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (לטינית)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (קומפקטית)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"ללא שפה (אלף-בית)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"‏אלף-בית (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"‏אלף-בית (QWERTZ)"</string>
@@ -103,10 +122,6 @@
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"‏אלף-בית (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"אמוג\'י"</string>
     <string name="keyboard_theme" msgid="4909551808526178852">"עיצוב מקלדת"</string>
-    <string name="keyboard_theme_holo_white" msgid="8506588144096428751">"לבן מלא"</string>
-    <string name="keyboard_theme_holo_blue" msgid="192400518003397418">"כחול מלא"</string>
-    <string name="keyboard_theme_material_dark" msgid="2701178578784760596">"שחור כהה"</string>
-    <string name="keyboard_theme_material_light" msgid="3479400901818790331">"לבן בהיר"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"סגנונות קלט מותאמים אישית"</string>
     <string name="add_style" msgid="6163126614514489951">"הוסף סגנון"</string>
     <string name="add" msgid="8299699805688017798">"הוסף"</string>
@@ -118,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"הפעל"</string>
     <string name="not_now" msgid="6172462888202790482">"לא עכשיו"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"סגנון קלט זהה כבר קיים: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"השהיית לחיצה ארוכה על מקש"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"משך רטט של לחיצת מקש"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"עוצמת קול של לחיצת מקש"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"קריאה של קובץ מילון חיצוני"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"אין קובצי מילונים בתיקיית ההורדות"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"בחירת קובץ מילון להתקנה"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"האם אתה באמת רוצה להתקין את הקובץ הזה עבור <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"אירעה שגיאה"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"השהיית לחיצה ארוכה על מקש"</string>
     <string name="button_default" msgid="3988017840431881491">"ברירת מחדל"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"ברוך הבא אל <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"עם הקלדת החלקה"</string>
@@ -143,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"כעת תוכל להקליד בכל האפליקציות המועדפות עליך באמצעות <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"הגדר שפות נוספות"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"סיום"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"הצג את סמל האפליקציה"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"הצג את סמל האפליקציה במפעיל"</string>
     <string name="app_name" msgid="6320102637491234792">"ספק המילון"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"ספק המילון"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"שירות מילון"</string>
diff --git a/java/res/values-ja/strings-emoji-descriptions.xml b/java/res/values-ja/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..2e674c8
--- /dev/null
+++ b/java/res/values-ja/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"コピーライトのマーク"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"登録商標のマーク"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"二重感嘆符"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"感嘆符疑問符"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"トレードマーク"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"情報ソース"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"左右の矢印"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"上下の矢印"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"左上の矢印"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"右上の矢印"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"右下の矢印"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"左下の矢印"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"左に戻る矢印"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"右に戻る矢印"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"腕時計"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"砂時計"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"黒い右向きの二重三角"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"黒い左向きの二重三角"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"黒い上向きの二重三角"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"黒い下向きの二重三角"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"目覚まし時計"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"使用中の砂時計"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"丸付きM"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"黒い極小四角"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"白い極小四角"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"黒い右向きの三角"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"黒い左向きの三角"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"白い中四角"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"黒い中四角"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"白い小四角"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"黒い小四角"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"黒い太陽と日光"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"雲"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"黒い電話"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"ONのチェックボックス"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"傘と雨だれ"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"温かい飲み物"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"白い上向き指差し"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"白い笑顔"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"牡羊座"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"牡牛座"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"双子座"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"蟹座"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"獅子座"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"乙女座"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"天秤座"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"蠍座"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"射手座"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"山羊座"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"水瓶座"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"魚座"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"黒いスペード"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"黒いクラブ"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"黒いハート"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"黒いダイヤ"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"温泉"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"黒いリサイクルのマーク"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"車椅子のマーク"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"アンカー"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"警告のマーク"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"高圧のマーク"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"白い中丸"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"黒い中丸"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"サッカーボール"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"野球ボール"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"雪だるまと雪"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"雲の後ろの太陽"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"へびつかい座"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"進入禁止"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"教会"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"噴水"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"ゴルフのホールと旗"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"ヨット"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"テント"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"ガソリンスタンド"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"黒いはさみ"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"白い太いチェックマーク"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"飛行機"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"封筒"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"グー"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"パー"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"チョキ"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"鉛筆"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"黒いペン先"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"太いチェックマーク"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"太い乗算記号"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"キラキラ"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"8点アスタリスク"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"黒い8稜星"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"雪マーク"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"スパークル"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"バツマーク"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"黒い囲み付きバツマーク"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"黒い装飾疑問符"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"白い装飾疑問符"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"白い装飾感嘆符"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"太い感嘆符"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"太い黒いハート"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"太いプラス記号"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"太いマイナス記号"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"太い除算記号"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"黒い右矢印"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"ループ"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"二重ループ"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"左から上向き矢印"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"左から下向き矢印"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"黒い左矢印"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"黒い上矢印"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"黒い下矢印"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"黒い大四角"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"白い大四角"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"白い中星"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"太い大きい丸"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"波ダッシュ"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"歌記号"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"丸付き祝"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"丸秘"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"麻雀牌の中"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"トランプの黒のジョーカー"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"血液型のA"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"血液型のB"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"血液型のO"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"駐車場"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"血液型のAB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"囲み付きCL"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"囲み付きCOOL"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"囲み付きFREE"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"囲み付きID"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"囲み付きNEW"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"囲み付きNG"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"囲み付きOK"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"囲み付きSOS"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"囲み付きUP!"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"囲み付きVS"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"囲み付きココ"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"囲み付きサービス"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"囲み付き無料"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"囲み付き指定席"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"囲み付き禁止"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"囲み付き空き"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"囲み付き合格"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"囲み付き満車"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"囲み付き有料"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"囲み付き月極め"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"囲み付き申し込み"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"囲み付き割引"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"囲み付き営業中"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"丸付きお得"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"丸付き可能"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"台風"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"霧"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"閉じた傘"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"夜空と星"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"山の上の太陽"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"日の出"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"夕方の街並み"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"ビルの上の夕日"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"虹"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"夜の橋"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"波"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"火山"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"天の川"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"ヨーロッパとアフリカの地球"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"アメリカ大陸の地球"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"アジアとオーストラリアの地球"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"地球と子午線"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"新月の記号"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"満ちていく三日月の記号"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"上弦の半月の記号"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"凸月の記号"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"満月の記号"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"やや欠け月の記号"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"下弦の半月の記号"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"欠けていく三日月の記号"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"三日月"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"顔付き新月"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"顔付き上弦の月"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"顔付き下弦の月"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"顔付き満月"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"顔付き太陽"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"輝く星"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"流れ星"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"クリ"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"双葉"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"針葉樹"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"広葉樹"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"ヤシの木"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"サボテン"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"チューリップ"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"サクラ"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"バラ"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"ハイビスカス"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"ヒマワリ"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"花"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"トウモロコシ"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"稲穂"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"ハーブ"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"四つ葉のクローバー"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"モミジの葉"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"落ち葉"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"風に舞う葉"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"キノコ"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"トマト"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"ナス"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"ブドウ"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"メロン"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"スイカ"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"ミカン"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"レモン"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"バナナ"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"パイナップル"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"赤いリンゴ"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"青いリンゴ"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"洋ナシ"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"モモ"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"サクランボ"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"イチゴ"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"ハンバーガー"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"ピザの一切れ"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"骨付き肉"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"チキンの足"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"おせんべい"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"おにぎり"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"ごはん"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"カレー"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"ラーメン"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"スパゲッティ"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"食パン"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"フライドポテト"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"やきいも"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"だんご"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"おでん"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"お寿司"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"エビフライ"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"なると"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"ソフトクリーム"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"かき氷"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"アイスクリーム"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"ドーナツ"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"クッキー"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"板チョコ"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"キャンディ"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"ぺろぺろキャンディ"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"プリン"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"ハチミツのポット"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"ショートケーキ"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"お弁当"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"鍋物"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"料理"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"ナイフとフォーク"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"湯のみ"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"お銚子とおちょこ"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"ワイングラス"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"カクテルグラス"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"トロピカルドリンク"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"ビールジョッキ"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"乾杯"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"ほ乳瓶"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"リボン"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"プレゼントの包み"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"バースデーケーキ"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"ジャックランタン"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"クリスマスツリー"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"サンタクロース"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"花火"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"線香花火"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"風船"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"クラッカー"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"くす玉"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"七夕飾り"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"祝日のマーク"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"門松"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"お雛様"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"こいのぼり"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"風鈴"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"お月見"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"ランドセル"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"卒業式の角帽"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"メリーゴーランド"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"観覧車"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"ジェットコースター"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"釣り竿と魚"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"マイク"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"映画カメラ"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"映画"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"ヘッドフォン"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"パレット"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"シルクハット"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"サーカステント"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"チケット"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"カチンコ"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"演劇"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"ビデオゲーム"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"当選弓矢"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"スロットマシン"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"ビリヤード"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"サイコロ"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"ボウリング"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"花札"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"音符"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"複数の音符"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"サックス"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"ギター"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"鍵盤"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"トランペット"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"バイオリン"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"楽譜"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"ランニングシャツとタスキ"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"テニスのラケットとボール"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"スキーとスキー靴"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"バスケットボールとゴール"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"チェッカーフラグ"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"スノーボーダー"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"ランナー"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"サーファー"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"トロフィー"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"競馬"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"アメリカンフットボール"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"ラグビー"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"水泳"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"家"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"家と庭"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"オフィスビル"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"日本の郵便局"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"ヨーロッパの郵便局"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"病院"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"銀行"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"ATM"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"ホテル"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"ラブホテル"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"コンビニ"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"学校"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"デパート"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"工場"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"赤ちょうちん"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"日本の城"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"ヨーロッパの城"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"ネズミ"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"ハツカネズミ"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"雄ウシ"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"水牛"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"乳牛"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"ヒョウ"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"ウサギ"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"ネコ"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"ドラゴン"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"ワニ"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"クジラ"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"カタツムリ"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"ヘビ"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"ウマ"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"雄ヒツジ"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"ヤギ"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"ヒツジ"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"サル"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"オンドリ"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"ニワトリ"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"イヌ"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"ブタ"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"イノシシ"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"ゾウ"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"タコ"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"巻き貝"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"毛虫"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"アリ"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"ミツバチ"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"テントウムシ"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"魚"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"熱帯魚"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"フグ"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"カメ"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"孵化したヒヨコ"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"ヒヨコ"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"正面向きのヒヨコ"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"鳥"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"ペンギン"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"コアラ"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"プードル"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"ヒトコブラクダ"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"フタコブラクダ"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"イルカ"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"ネズミの顔"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"ウシの顔"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"トラの顔"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"ウサギの顔"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"ネコの顔"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"ドラゴンの顔"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"クジラの潮吹き"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"ウマの顔"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"サルの顔"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"イヌの顔"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"ブタの顔"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"カエルの顔"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"ハムスターの顔"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"オオカミの顔"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"クマの顔"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"パンダの顔"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"ブタの鼻"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"イヌの足跡"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"目"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"耳"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"鼻"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"口"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"舌"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"上を指す白い手の甲"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"下を指す白い手の甲"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"左を指す白い手の甲"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"右を指す白い手の甲"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"ゲンコツのマーク"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"手をふるマーク"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"手でOKのマーク"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"サムズアップのマーク"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"サムズダウンのマーク"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"拍手のマーク"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"おっはーのマーク"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"王冠"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"女性の帽子"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"メガネ"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"ネクタイ"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Tシャツ"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"ジーンズ"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"ドレス"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"着物"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"ビキニ"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"婦人服"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"がま口"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"ハンドバッグ"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"ポーチ"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"男性の靴"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"スニーカー"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"ハイヒール"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"女性のサンダル"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"女性のブーツ"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"足跡"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"上半身の人影"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"複数の人影"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"男の子"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"女の子"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"男性"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"女性"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"家族"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"手をつなぐ男女"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"手をつなぐ男性同士"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"手をつなぐ女性同士"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"警官"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"バニーガール"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"ベールをかぶった花嫁"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"金髪の白人"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"中国人"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"インド人"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"おじいさん"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"おばあさん"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"赤ちゃん"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"工事現場の人"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"お姫様"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"なまはげ"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"天狗"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"お化け"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"エンゼル"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"宇宙人"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"エイリアン"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"悪魔"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"ドクロ"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"受付"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"衛兵"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"ダンサー"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"口紅"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"マニキュア"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"エステ"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"美容院"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"床屋の看板柱"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"注射器"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"薬"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"キスマーク"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"ラブレター"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"指輪"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"宝石"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"キス"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"花束"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"カップルとハート"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"結婚式"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"揺れるハート"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"ハートブレイク"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"2つのハート"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"光るハート"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"ドキドキしているハート"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"矢が刺さっているハート"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"青色のハート"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"緑色のハート"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"黄色のハート"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"紫色のハート"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"ハートとリボン"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"回転するハート"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"ハートの装飾"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"菱型の中に点"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"電球"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"怒っているマーク"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"爆弾"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"眠っているマーク"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"衝突のマーク"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"飛び散るアセのマーク"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"汗"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"ダッシュのマーク"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"うんち"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"力こぶ"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"クラクラのマーク"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"吹き出し"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"吹き出しコメント"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"白い花"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"100点のマーク"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"ドル袋"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"両替"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"太いドル記号"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"クレジットカード"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"円の紙幣"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"ドルの紙幣"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"ユーロの紙幣"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"ポンドの紙幣"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"羽の生えた紙幣"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"上昇のグラフと円記号"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"座席"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"パソコン"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"書類カバン"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"MD"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"フロッピーディスク"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"CD"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"フォルダ"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"開いているフォルダ"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"カールした書類"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"正面向きの書類"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"カレンダー"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"日めくりカレンダー"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"カード索引"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"上昇のグラフ"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"下降のグラフ"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"棒グラフ"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"クリップボード"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"押しピン"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"丸い押しピン"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"クリップ"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"定規"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"三角定規"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"ページに付けたタブ"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"帳簿"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"ノート"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"きれいな表紙のノート"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"閉じた本"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"開いた本"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"緑色の本"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"青色の本"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"オレンジ色の本"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"複数の本"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"名札"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"スクロール"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"メモ"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"受話器"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"ポケベル"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"ファックス"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"パラボラアンテナ"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"拡声器"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"メガホン"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"送信トレイ"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"受信トレイ"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"段ボール"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"メールのマーク"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"メールの受信"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"メールの送信"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"送信のないメールボックス"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"送信するメールボックス"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"受信したメールボックス"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"受信のないメールボックス"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"郵便ポスト"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"郵便の角笛"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"新聞紙"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"携帯電話"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"左に右矢印が付いた携帯電話"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"マナーモード"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"携帯電話の電源をOFF"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"携帯電話の使用禁止"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"圏内のアンテナ"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"カメラ"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"ビデオカメラ"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"テレビ"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"ラジオ"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"ビデオテープ"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"シャッフルを表す矢印"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"リピートを表す矢印"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"リプレイを表す矢印"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"再読み込みを表す矢印"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"逆再読み込みを表す矢印"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"弱い輝度のマーク"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"強い輝度のマーク"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"無音のスピーカー"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"スピーカー"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"小さい音量のスピーカー"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"大きい音量のスピーカー"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"電池"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"コンセント"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"左に傾いた虫めがね"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"右に傾いた虫めがね"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"ロックとペン"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"閉じたロックと鍵"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"鍵"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"ロック"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"開いたロック"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"ベル"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"無音のベル"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"ブックマーク"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"リンクのマーク"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"ラジオボタン"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"BACKの上に左矢印"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"ENDの上に左矢印"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"ON!の上に左右の矢印"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"SOONの上に右矢印"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"TOPの上に上矢印"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"18禁のマーク"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"キーキャップ10"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"大文字の入力マーク"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"小文字の入力マーク"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"数字の入力マーク"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"記号の入力マーク"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"英字の入力マーク"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"炎"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"懐中電灯"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"レンチ"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"ハンマー"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"ボルトとナット"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"包丁"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"ピストル"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"顕微鏡"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"望遠鏡"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"水晶玉"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"六芒星"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"日本の初心者マーク"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"錨のエンブレム"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"黒い四角いボタン"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"白い四角いボタン"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"大きい赤い丸"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"大きい青い丸"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"大きいオレンジ色の菱型"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"大きい青色の菱型"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"小さいオレンジ色の菱型"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"小さい青色の菱型"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"上向きの赤い三角"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"下向きの赤い三角"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"上向きの小さい赤い三角"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"下向きの小さい赤い三角"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"1時の時計"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"2時の時計"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"3時の時計"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"4時の時計"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"5時の時計"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"6時の時計"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"7時の時計"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"8時の時計"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"9時の時計"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"10時の時計"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"11時の時計"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"12時の時計"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"1時半の時計"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"2時半の時計"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"3時半の時計"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"4時半の時計"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"5時半の時計"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"6時半の時計"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"7時半の時計"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"8時半の時計"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"9時半の時計"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"10時半の時計"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"11時半の時計"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"12時半の時計"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"富士山"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"東京タワー"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"自由の女神"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"日本のシルエット"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"モヤイ像"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"ニヤリとした顔"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"ニヤリとした笑顔"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"泣き笑いの顔"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"口を開けた笑顔"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"口と目が笑った顔"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"口を開けて冷や汗の笑顔"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"照れた笑顔"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"昇天の笑顔"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"角の生えた笑顔"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"ウインクした顔"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"ニコニコした笑顔"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"おいしい顔"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"ほっとした顔"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"目がハートの笑顔"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"サングラスをかけた笑顔"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"冷笑の顔"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"標準の顔"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"無表情の顔"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"横目の顔"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"冷や汗の顔"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"考えている顔"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"混乱した顔"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"悲しい顔"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"キスしている顔"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"投げキスの顔"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"キスしている笑顔"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"目を閉じてキスしている顔"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"ペロリと舌を出した顔"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"アッカンベーの顔"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"イーの顔"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"落胆した顔"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"不安な顔"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"怒った顔"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"ふくれっ面"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"泣き顔"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"がまんしている顔"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"勝ち誇った顔"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"ヤレヤレとした顔"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"ドキッっとした顔"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"苦悩に満ちた顔"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"青ざめた顔"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"うんざりした顔"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"あくびした顔"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"疲れた顔"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"しかめっ面"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"大泣きの顔"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"ポカーンとした顔"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"シーンとした顔"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"あせって冷や汗の顔"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"悲鳴をあげている顔"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"びっくりした顔"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"赤くなった顔"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"寝顔"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"クラクラしている顔"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"口のない顔"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"マスクした顔"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"ニヤリとした笑顔のネコ"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"泣き笑いのネコ"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"口を開けた笑顔のネコ"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"目がハートの笑顔のネコ"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"苦笑しているネコ"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"目を閉じてキスしている顔のネコ"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"ふくれっ面のネコ"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"泣き顔のネコ"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"うんざりした顔のネコ"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"NGのジェスチャーと顔"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"OKのジェスチャーと顔"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"深くお辞儀している人"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"見ざる"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"聞かざる"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"言わざる"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"片手を上げてハッピーの人"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"万歳している人"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"しょんぼりしている人"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"ふくれっ面の人"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"手を合わせている人"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"ロケット"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"ヘリコプター"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"蒸気機関車"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"電車"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"新幹線"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"旧型新幹線"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"列車"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"地下鉄"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"路面電車"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"駅"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"市内電車"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"市街電車"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"バス"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"対向のバス"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"トロリーバス"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"バス停"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"マイクロバス"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"救急車"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"消防車"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"パトカー"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"対向のパトカー"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"タクシー"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"対向のタクシー"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"車"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"対向車"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"RV車"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"トラック"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"トレーラー"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"トラクター"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"モノレール"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"山岳鉄道"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"空中鉄道"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"ケーブルカー"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"ロープウェイ"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"船"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"ボート"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"競艇ボート"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"横型の信号機"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"縦型の信号機"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"工事中のマーク"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"パトカーのランプ"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"ポストの三角の旗"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"ドア"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"進入禁止のマーク"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"喫煙のマーク"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"禁煙のマーク"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"ゴミ箱のマーク"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"ポイ捨て禁止のマーク"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"飲料水のマーク"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"飲めない水のマーク"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"自転車"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"自転車乗り入れ禁止"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"自転車に乗る人"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"マウンテンバイクの人"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"歩行者"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"歩行禁止"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"学童横断路"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"男性のマーク"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"女性のマーク"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"公衆トイレ"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"赤ちゃんのマーク"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"トイレ"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"水洗トイレ"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"シャワー"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"お風呂"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"浴槽"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"入国手続き"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"税関"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"手荷物受取所"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"コインロッカー"</string>
+</resources>
diff --git a/java/res/values-ja/strings-talkback-descriptions.xml b/java/res/values-ja/strings-talkback-descriptions.xml
index e4f5db5..c884973 100644
--- a/java/res/values-ja/strings-talkback-descriptions.xml
+++ b/java/res/values-ja/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"テキストが入力されていません"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g>は<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>を<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>に修正します"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g>で自動修正が実行されます"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"候補はありません"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"不明な文字"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"記号拡張"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"大文字I、上点"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"不明な記号"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"不明な絵文字"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"退屈そうな顔"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"恥ずかしそうな顔"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"サングラスをかけた顔"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"驚いた顔"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"キスしている顔"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"しかめっ面の顔"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"代替文字が利用可能です"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"代替文字が消去されます"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"代替候補が利用可能です"</string>
diff --git a/java/res/values-ja/strings.xml b/java/res/values-ja/strings.xml
index 741dbb6..56b6a1b 100644
--- a/java/res/values-ja/strings.xml
+++ b/java/res/values-ja/strings.xml
@@ -26,24 +26,30 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"キー操作バイブ"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"キー操作音"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"キー押下時ポップアップ"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"設定"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"アカウントとプライバシー"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"外観とレイアウト"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"ジェスチャー入力"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"テキストの修正"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"詳細設定"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"テーマ"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"スプリットキーボードを有効にする"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Googleキーボードの同期"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"同期はON"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"端末間で単語リストを同期する"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"今すぐ同期"</string>
+    <!-- no translation found for clear_sync_data_title (8582001557037069154) -->
     <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Googleから同期データを削除します"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"クラウドから同期データを削除します。よろしいですか？"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"削除"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"キャンセル"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"単語リストがGoogleのサーバーと同期され、サーバーにバックアップされます。Googleのサービス改善を目的として、語句の使用頻度に関する統計情報が収集される場合があります。収集した情報およびその利用方法は、"<a href="https://www.google.com/policies/privacy">"Googleプライバシーポリシー"</a>"に準拠します。"</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"この機能を有効にするには端末にGoogleアカウントを追加してください"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"他の入力方法に切り替え"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"言語切り替えキーは他の入力方法にも対応しています"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"言語切り替えキー"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"複数の入力言語が有効なときに表示"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"スライドインジケーターを表示"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Shiftまたは記号キーからスライドするとビジュアルキューを表示します"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"キーのポップアップ時間"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"すぐに消去"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"デフォルト"</string>
@@ -62,9 +68,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"メイン辞書"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"修正候補を表示する"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"入力中に入力候補を表示する"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"常に表示"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"縦向きで表示"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"常に非表示"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"不適切な語句をブロック"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"不適切な可能性がある語句を候補にしない"</string>
     <string name="auto_correction" msgid="7630720885194996950">"自動修正"</string>
@@ -85,21 +88,32 @@
     <string name="voice_input" msgid="3583258583521397548">"音声入力キー"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"有効になっている音声入力方法がありません。[言語と入力]設定をご確認ください。"</string>
     <string name="configure_input_method" msgid="373356270290742459">"入力方法を設定"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"入力言語"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"フィードバックを送信"</string>
-    <string name="select_language" msgid="3693815588777926848">"入力言語"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"言語"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"ヘルプとフィードバック"</string>
+    <string name="select_language" msgid="5709487854987078367">"言語"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"保存するにはもう一度タップ"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"ここをタップして保存します"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"辞書を利用できます"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"キーボードのテーマ"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"アカウントの切り替え"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"アカウントが選択されていません"</string>
+    <string name="account_selected" msgid="2846876462199625974">"現在 <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g> を使用しています"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"キャンセル"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"ログアウト"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"使用するアカウントの選択"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"英語 (英国)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"英語 (米国)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"スペイン語 (米国)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"ヒングリッシュ"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"セルビア語（ラテン文字）"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"英語（英国）（<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>）"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"英語（米国）（<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>）"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"スペイン語（米国）（<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>）"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"ヒングリッシュ（<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>）"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"セルビア語（<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>）"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g>（伝統言語）"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g>（キリル文字）"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g>（ラテン文字）"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g>（コンパクト）"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"言語なし（アルファベット）"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"アルファベット（QWERTY）"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"アルファベット（QWERTZ）"</string>
@@ -108,16 +122,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"アルファベット（Colemak）"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"アルファベット（PC）"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"絵文字"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"キーボードのテーマ"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"カスタム入力スタイル"</string>
     <string name="add_style" msgid="6163126614514489951">"スタイル追加"</string>
     <string name="add" msgid="8299699805688017798">"追加"</string>
@@ -129,14 +134,9 @@
     <string name="enable" msgid="5031294444630523247">"有効にする"</string>
     <string name="not_now" msgid="6172462888202790482">"後で行う"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"同じ入力スタイルが既に存在します: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"キーの長押し時間"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"キー操作バイブの振動時間"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"キー操作音の音量"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"外部辞書ファイルの読み取り"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"ダウンロードフォルダに辞書ファイルはありません"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"インストールする辞書ファイルの選択"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"この<xliff:g id="LANGUAGE_NAME">%s</xliff:g>のファイルをインストールしますか？"</string>
-    <string name="error" msgid="8940763624668513648">"エラーが発生しました"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"キーの長押し時間"</string>
     <string name="button_default" msgid="3988017840431881491">"デフォルト"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g>へようこそ"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"新しいジェスチャー入力をお試しください"</string>
@@ -154,8 +154,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"これで、お気に入りのすべてのアプリで<xliff:g id="APPLICATION_NAME">%s</xliff:g>を使用して入力できます。"</string>
     <string name="setup_step3_action" msgid="600879797256942259">"別の言語を設定する"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"完了"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"アプリアイコンを表示"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"ランチャーにアプリアイコンを表示します"</string>
     <string name="app_name" msgid="6320102637491234792">"辞書提供元"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"辞書提供元"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"辞書"</string>
diff --git a/java/res/values-ka-rGE/strings-talkback-descriptions.xml b/java/res/values-ka-rGE/strings-talkback-descriptions.xml
index 5d23b09..fa250db 100644
--- a/java/res/values-ka-rGE/strings-talkback-descriptions.xml
+++ b/java/res/values-ka-rGE/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"ტექსტი შეყვანილი არ არის"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> შეასწორებს <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>-ს <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>-ად"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> ასრულებს ავტოკორექციას"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"შემოთავაზება არ არის"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"უცნობი სიმბოლო"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"დამატებითი სიმბოლოები"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Capital I, dot above"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"უცნობი სიმბოლო"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"უცნობი emoji"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"შეწუხებული სახე"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"შერცხვენილი სახე"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"სახე მზის სათვალით"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"გაოცებული სახე"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"კოცნის სახე"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"წარბშეჭმუხნილი სახე"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"ალტერნატიული სიმბოლოები ხელმისაწვდომია"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"ალტერნატიული სიმბოლოები გამოტოვებულია"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"ალტერნატიული შეთავაზებები ხელმისაწვდომია"</string>
diff --git a/java/res/values-ka-rGE/strings.xml b/java/res/values-ka-rGE/strings.xml
index 17e6b7e..d7b3b60 100644
--- a/java/res/values-ka-rGE/strings.xml
+++ b/java/res/values-ka-rGE/strings.xml
@@ -26,18 +26,30 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"ვიბრაცია კლავიშზე დაჭერისას"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"ხმა კლავიშზე დაჭერისას"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"გადიდება ღილაკზე დაჭერისას"</string>
-    <string name="settings_screen_input" msgid="2808654300248306866">"შეყვანის პარამეტრები"</string>
-    <string name="settings_screen_appearances" msgid="3611951947835553700">"იერსახე"</string>
-    <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"მრავალენობრივი ვარიანტები"</string>
-    <string name="settings_screen_gesture" msgid="9113437621722871665">"ჟესტით შეყვ. პარამეტრები"</string>
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"პარამეტრები"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"ანგარიშები &amp; კონფიდენციალურობა"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"იერსახე &amp; განლაგებები"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"ჟესტებით წერა"</string>
     <string name="settings_screen_correction" msgid="1616818407747682955">"ტექსტის კორექცია"</string>
     <string name="settings_screen_advanced" msgid="7472408607625972994">"გაფართოებული"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"თემა"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"გაყოფილი კლავიატურის გააქტიურება"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google კლავიატურის სინქრონიზება"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"სინქრონიზება ჩართულია"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"აწარმოეთ თქვენი პერს. ლექსიკონის სინქ. მოწყობილობების მასშტაბით"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"ახლა სინქრონიზაცია"</string>
+    <!-- no translation found for clear_sync_data_title (8582001557037069154) -->
+    <skip />
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"წაშლის Google-თან თქვენს სინქრონიზებულს მონაცემებს"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"თქვენი სინქ. მონაც. წაიშლება ღრუბ. სივრციდან. დარწმუნებული ხართ?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"წაშლა"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"გაუქმება"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"თქვენი პერსონალური ლექსიკონი სინქრონიზდება და შეინახება სარეზერვოდ Google სერვერებზე. ჩვენი პროდუქტების გასაუმჯობესებლად, შეიძლება შეგროვდეს სტატისტიკური ინფორმაცია სიტყვების სიხშირის შესახებ. ნებისმიერი ინფორმაციის შეგროვება და გამოყენება "<a href="https://www.google.com/policies/privacy">"Google-ის კონფიდენციალურობის პოლიტიკასთან"</a>" შესაბამისობაში იქნება."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"ფუნქციის ჩასართავად, გთხოვთ მოწყობილობას Google ანგარიში დაამატოთ"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"შეყვანის სხვა მეთოდებზე გადართვა"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"ენის გადართვის ღილაკს შეყვანის სხვა მეთოდებსაც შეიცავს"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"ენის გადართვის კლავიში"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"აჩვენე, როდესაც ჩართულია სხვადასხვა შეყვანის ენა"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"გასრიალების ინდიკატ. ჩვენება"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Shift ან Symbol კლავიშებიდან გასრიალებისას ვიზუალური მინიშნების ჩვენება"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"ამომხტ.კლავიშის დაყოვნება"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"არ დაყოვნდეს"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"ნაგულისხმევი"</string>
@@ -56,9 +68,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"მთავარი ლექსიკონი"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"კორექციის შეთავაზებების ჩვენება"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"წერისას შეთავაზებული სიტყვების ჩვენება"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"ყოველთვის ჩვენება"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"პორტრეტის რეჟიმში ჩვენება"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"ყოველთვის დამალვა"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"შეურაცხმყოფელი სიტყვების დაბლოკვა"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"არ მოხდეს პოტენციურად შეურაცხმყოფელი სიტყვების შეთავაზება"</string>
     <string name="auto_correction" msgid="7630720885194996950">"ავტოკორექცია"</string>
@@ -79,21 +88,32 @@
     <string name="voice_input" msgid="3583258583521397548">"ხმოვანი შეყვანის კლავიში"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"ხმოვანი შეყვანის მეთოდები ჩართული არ არის. შეამოწმეთ ენის &amp; შეყვანის პარამეტრები."</string>
     <string name="configure_input_method" msgid="373356270290742459">"შეყვანის მეთოდების კონფიგურაცია"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"შეყვანის ენები"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"უკუკავშირის გაგზავნა"</string>
-    <string name="select_language" msgid="3693815588777926848">"შეყვანის ენები"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"ენები"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"დახმარება და უკუკავშირი"</string>
+    <string name="select_language" msgid="5709487854987078367">"ენები"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"შეეხეთ ისევ შესანახად"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"აქ შეეხეთ, რომ შეინახოს"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"ხელმისაწვდომია ლექსიკონი"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"კლავიატურის თემა"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"ანგარიშების გადართვა"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"ანგარიშები არჩეული არ არის"</string>
+    <string name="account_selected" msgid="2846876462199625974">"ამჟამად გამოიყენება <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"კარგი"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"გაუქმება"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"გამოსვლა"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"აირჩიეთ გამოსაყენებელი ანგარიში"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"ინგლისური (გართ. სამ.)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"ინგლისური (აშშ)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"ესპანური (აშშ)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"ჰინგლისური"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"სერბული (ლათინური)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"ინგლისური (გაერთ.სამ.) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"ინგლისური (აშშ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"ესპანური (აშშ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"ჰინგლისური (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"სერბული (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ტრადიციული)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (კირილიცა)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ლათინური)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (კომპაქტური)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"ენის გარეშე (ანბანი)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"ანბანი (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"ანბანი (QWERTZ)"</string>
@@ -103,10 +123,6 @@
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"ანბანი (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"სიცილაკები"</string>
     <string name="keyboard_theme" msgid="4909551808526178852">"კლავიატურის თემა"</string>
-    <string name="keyboard_theme_holo_white" msgid="8506588144096428751">"ჰოლო-თეთრი"</string>
-    <string name="keyboard_theme_holo_blue" msgid="192400518003397418">"ჰოლო-ლურჯი"</string>
-    <string name="keyboard_theme_material_dark" msgid="2701178578784760596">"მუქი მასალა"</string>
-    <string name="keyboard_theme_material_light" msgid="3479400901818790331">"ღია მასალა"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"შეყვანის სტილების კონფიგურაცია"</string>
     <string name="add_style" msgid="6163126614514489951">"სტილის დამატება"</string>
     <string name="add" msgid="8299699805688017798">"დამატება"</string>
@@ -118,14 +134,9 @@
     <string name="enable" msgid="5031294444630523247">"ჩართვა"</string>
     <string name="not_now" msgid="6172462888202790482">"ახლა არა"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"შეყვანის იგივე სტილი უკვე არსებობს: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"კლავიშზე გრძელი დაჭერის დაყოვნება"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"კლავიშზე დაჭერის ვიბრაციის ხანგრძლივობა"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"კლავიშზე დაჭერის ხმა"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"გარე ლექსიკონის ფაილის წაკითხვა"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"ჩამოტვირთვების საქაღალდეში ლექსიკონის ფაილები არ არის"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"ინსტალაციისათვის აირჩიეთ ლექსიკონის ფაილი"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"ნამდვილად გსურთ ამ ფაილის <xliff:g id="LANGUAGE_NAME">%s</xliff:g>-ისთვის ინსტალაცია?"</string>
-    <string name="error" msgid="8940763624668513648">"წარმოიშვა შეცდომა"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"კლავიშზე გრძელი დაჭერის დაყოვნება"</string>
     <string name="button_default" msgid="3988017840431881491">"ნაგულისხმევი"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"კეთილი იყოს თქვენი მობრძანება <xliff:g id="APPLICATION_NAME">%s</xliff:g>-ში"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"ჟესტებით წერით"</string>
@@ -143,8 +154,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"ამიერიდან შეძლებთ ყველა სასურველ აპში <xliff:g id="APPLICATION_NAME">%s</xliff:g>-ით წერას."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"დამატებითი ენების კონფიგურაცია"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"დასრულებული"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"აპის ხატულის ჩვენება"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"გაშვების ხატულის ჩვენება გამშვებში"</string>
     <string name="app_name" msgid="6320102637491234792">"ლექსიკონის პროვაიდერი"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"ლექსიკონის პროვაიდერი"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"ლექსიკონის სერვისი"</string>
diff --git a/java/res/values-kk-rKZ/strings-action-keys.xml b/java/res/values-kk-rKZ/strings-action-keys.xml
index 0214423..1183117 100644
--- a/java/res/values-kk-rKZ/strings-action-keys.xml
+++ b/java/res/values-kk-rKZ/strings-action-keys.xml
@@ -20,19 +20,12 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for label_go_key (4033615332628671065) -->
-    <skip />
-    <!-- no translation found for label_next_key (5586407279258592635) -->
-    <skip />
-    <!-- no translation found for label_previous_key (1421141755779895275) -->
-    <skip />
-    <!-- no translation found for label_done_key (7564866296502630852) -->
-    <skip />
-    <!-- no translation found for label_send_key (482252074224462163) -->
-    <skip />
+    <string name="label_go_key" msgid="4033615332628671065">"Өту"</string>
+    <string name="label_next_key" msgid="5586407279258592635">"Келесі"</string>
+    <string name="label_previous_key" msgid="1421141755779895275">"Алдыңғы"</string>
+    <string name="label_done_key" msgid="7564866296502630852">"Дайын"</string>
+    <string name="label_send_key" msgid="482252074224462163">"Жіберу"</string>
     <string name="label_search_key" msgid="7965186050435796642">"Іздеу"</string>
-    <!-- no translation found for label_pause_key (2225922926459730642) -->
-    <skip />
-    <!-- no translation found for label_wait_key (5891247853595466039) -->
-    <skip />
+    <string name="label_pause_key" msgid="2225922926459730642">"Кідірту"</string>
+    <string name="label_wait_key" msgid="5891247853595466039">"Күту"</string>
 </resources>
diff --git a/java/res/values-kk-rKZ/strings-config-important-notice.xml b/java/res/values-kk-rKZ/strings-config-important-notice.xml
new file mode 100644
index 0000000..9bb8dc3
--- /dev/null
+++ b/java/res/values-kk-rKZ/strings-config-important-notice.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="use_personalized_dicts_summary" msgid="590432261305469627">"Ұсыныстарды жақсарту үшін хабарлардан және терілген деректерден үйрену"</string>
+</resources>
diff --git a/java/res/values-kk-rKZ/strings-emoji-descriptions.xml b/java/res/values-kk-rKZ/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..87c5556
--- /dev/null
+++ b/java/res/values-kk-rKZ/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Авторлық құқық белгісі"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Тіркелген белгі"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Қос леп белгісі"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Леп белгісі мен сұрақ белгісі"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Сауда белгісі"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Ақпарат көзі"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Сол оң көрсеткісі"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Жоғары төмен көрсеткісі"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Солтүстік батыс көрсеткісі"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Солтүстік шығыс көрсеткісі"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Оңтүстік шығыс көрсеткісі"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Оңтүстік батыс көрсеткісі"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Ілгегі бар солға көрсеткісі"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Ілгегі бар оңға көрсеткісі"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Сағат"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Құм сағат"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Қара, оңға бағытталған қос үшбұрыш"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Қара, солға бағытталған қос үшбұрыш"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Қара, жоғары бағытталған қос үшбұрыш"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Қара, төмен бағытталған қос үшбұрыш"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Оятқыш"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Құм ағып жатқан құм сағат"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"m дөңгелек латын бас әрпі"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Қара, шағын шаршы"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Ақ, шағын шаршы"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Қара, оңға бағытталған үшбұрыш"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Қара солға бағытталған үшбұрыш"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Ақ, орташа шаршы"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Қара, орташа шаршы"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Ақ, орташа, шағын шаршы"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Қара, орташа, шағын шаршы"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Сәулелері бар қара күн"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Бұлт"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Қара телефон"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Құсбелгісі бар дауыс беру шаршысы"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Жаңбыр тамшылары бар қолшатыр"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Ыстық сусын"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Ақ, жоғары бағытталған сұқ саусақ"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Ақ, күлімсіреген бет"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Тоқты"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Торпақ"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Егіздер"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Шаян"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Арыстан"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Бикеш"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Таразы"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Сарышаян"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Қауыс"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Таутеке"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Суқұйғыш"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Балықтар"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Қара қарға түсі"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Қара шыбын түсі"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Қара түйе табан түсі"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Қара қиық түсі"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Ыстық бастаулар"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Қара әмбебап қайта өңдеу таңбасы"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Инвалидтік кресло таңбасы"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Зәкір"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Ескерту белгісі"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Жоғары кернеу белгісі"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Орташа, ақ шеңбер"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Орташа, қара шеңбер"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Футбол добы"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Бейсбол"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Қарсыз аққала"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Бұлт артындағы күн"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Жылан алып жүруші"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Жазба жоқ"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Шіркеу"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Бұрқақ"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Тесіктегі жалау"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Желкенді кеме"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Шатыр"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Отын сорабы"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Қара қайшы"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Ақ, қалың құсбелгі"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Ұшақ"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Хатқалта"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Көтерілген жұдырық"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Көтерілген қол"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Жеңіс қолы"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Қарындаш"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Қара қауырсын"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Қалың құсбелгі"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Қалың көбейту x"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Ұшқындар"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Сегіз бұрыштық жұлдыз"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Сегіз бұрыштық қара жұлдыз"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Қар ұшқыны"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Ұшқын"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Сызу белгісі"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Негатив шаршыдағы сызу белгісі"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Қара сұрақ белгісі өрнегі"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Ақ сұрақ белгісі өрнегі"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Ақ леп белгісі өрнегі"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Қалың леп белгісі таңбасы"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Қатты қара жүрек"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Қалың қосу белгісі"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Қалың алу белгісі"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Қалың бөлу белгісі"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Қара оңға көрсеткісі"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Ілмек"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Қос ілмек"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Оңға бағытталған, содан кейін жоғары қарай қиғаштаған көрсеткі"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Оңға бағытталған, содан кейін төмен қарай қиғашталған көрсеткі"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Солға қара көрсеткісі"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Жоғары қара көрсеткісі"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Төменге қара көрсеткісі"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Қара, үлкен шаршы"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Ақ, үлкен шаршы"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Ақ, орташа жұлдыз"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Қалың, үлкен шеңбер"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Толқынды сызық"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Бөліктің өзгеруі белгісі"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Құттықтау дөңгелек идеограммасы"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Шеңбердегі құпия идеограммасы"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Маджонг плиткасы: қызыл айдаһар"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Ойын картасы: қара джокер"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Қан түрі: A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Қан түрі: B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Қан түрі: O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Тұрақ орны"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Қан түрі: AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"Шаршыдағы CL"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Шаршыдағы «cool»"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Шаршыдағы «free»"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"Шаршыдағы ID"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Шаршыдағы «new»"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Шаршыдағы «N G»"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Шаршыдағы «OK»"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"Шаршыдағы «SOS»"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Шаршыдағы «Up» және леп белгісі"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Шаршыдағы «vs»"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Осы жерде шаршыдағы катакана"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Шаршыдағы катакана қызметі"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Шаршыдағы тегін идеограммасы"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Шаршыдағы кейінге сақталған идеограммасы"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Шаршыдағы тыйым салу идеограммасы"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Шаршыдағы вакансия идеограммасы"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Шаршыдағы қабылдау идеограммасы"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Шаршыдағы толық айналысу идеограммасы"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Шаршыдағы төленген идеограммасы"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Шаршыдағы ай сайын идеограммасы"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Шаршыдағы қолданба идеограммасы"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Шаршыдағы жеңілдік идеограммасы"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Шаршыдағы бос емес идеограммасы"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Артықшылық дөңгелек идеограммасы"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Қабылдау дөңгелек идеограммасы"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Циклон"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Тұманды"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Жабық қолшатыр"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Жұлдызды түн"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Таулардың үстінде күн шығуы"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Күн шығуы"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Ымырт жабылған кездегі қала пейзажы"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Ғимараттар үстіндегі күннің батуы"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Кемпірқосақ"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Түндегі көпір"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Су толқыны"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Вулкан"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Құс жолы"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Жер шары: Еуропа-Африка"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Жер шары: Америка континенттері"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Жер шары: Азия-Австралия"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Меридиандар бар жер шары"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Жаңа ай таңбасы"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Толып жатқан жарты ай таңбасы"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Бірінші ширек ай таңбасы"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Толып жатқан дөңес ай таңбасы"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Толық ай таңбасы"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Кішірейіп жатқан дөңес ай таңбасы"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Соңғы ширек ай таңбасы"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Кішірейіп жатқан жарты ай таңбасы"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Жарты ай"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Беті бар жаңа ай"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Беті бар бірінші ширек айы"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Беті бар соңғы ширек айы"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Беті бар толық ай"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Беті бар күн"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Жарық жұлдыз"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Метеор"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Каштан"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Көшет"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Мәңгі жасыл ағаш"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Жапырақты ағаш"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Пальма"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Кактус"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Қызғалдақ"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Шиенің гүлдеуі"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Раушан"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Гибискус"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Күнбағыс"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Гүлдеу"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Жүгері собығы"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Күріш масағы"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Шөп"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Төрт жапырақты жоңышқа"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Үйеңкі жапырағы"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Түскен жапырақ"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Желде шайқалған жапырақ"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Саңырауқұлақ"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Қызанақ"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Баялды"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Жүзім"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Қауын"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Қарбыз"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Танжерин"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Лимон"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Банан"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ананас"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Қызыл алма"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Жасыл алма"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Алмұрт"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Шабдалы"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Шиелер"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Құлпынай"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Гамбургер"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Пицца тілімі"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Сүйектегі ет"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Құс аяғы"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Күріш крекері"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Күріш шаригі"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Әзірленген күріш"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Карри және күріш"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Бумен әзірлеу ыдысы"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Спагетти"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Нан"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Француз картобы"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Қуырылған жаңа картоп"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Данго"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Одэн"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Суши"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Қуырылған асшаян"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Шырмауық дизайны бар балық торты"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Жұмсақ балмұздақ"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Мұз жоңқасы"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Балмұздақ"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Майға пісірілген бүйрекше бәліш"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Печенье"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Шоколад плиткасы"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Кәмпит"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Мұз кәмпит"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Пісірілген крем"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Бал қыш құмырасы"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Жеміс салындысы бар қаттама торт"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Тамақ қорабы"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Тамақ қыш құмырасы"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Әзірлеу"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Шанышқы мен пышақ"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Тұтқасыз шай шыныаяғы"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Саке бөтелкесі мен шыныаяғы"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Шарап стаканы"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Коктейль стаканы"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Тропикалық сусын"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Сыра саптыаяғы"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Соқтықтырылған сыра саптыаяқтары"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Нәресте бөтелкесі"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Таспа"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Оралған сыйлық"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Туған күн торты"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Джектің майшамы"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Рождестволық шырша"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Аяз ата"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Отшашулар"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Бенгал оты"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Әуе шары"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Шартылдақ"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Конфетти шары"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Танабата ағашы"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Айқас жалаулар"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Қарағай әшекейі"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Жапондық қуыршақтар"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Тұқы түріндегі желді көрсеткіш"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Жел қоңырауы"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Айды көру салтанаты"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Мектеп сөмкесі"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Оқу бітіру қалпағы"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Әткеншек аты"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Шолу дөңгелегі"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Американдық төбешіктер"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Қармақ және балық"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Микрофон"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Бейнекамера"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Кинотеатр"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Құлақаспап"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Суретшінің палитрасы"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Цилиндр"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Цирк шатыры"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Билет"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Шартылдағы бар нумератор"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Орындау өнер түрлері"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Бейне ойын"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Тікелей тию"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Ойын автоматы"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Бильярд"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Ойын кубигі"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Боулинг"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Гүл ойын карталары"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Музыкалық нота"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Бірнеше музыкалық нота"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Саксофон"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Гитар"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Музыкалық пернетақта"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Керней"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Скрипка"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Партитура"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Лентасы бар жүгіру майкасы"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Теннис ракеткасы және кішкене доп"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Шаңғы және шаңғы бәтеңкесі"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Баскетбол және себет"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Торлы жалау"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Сноубордист"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Жүгіруші"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Серфер"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Жүлде"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Ат жарысы"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Американдық футбол"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Регби футболы"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Жүзуші"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Үй соғу"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Бағы бар үй"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Кеңсе соғу"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Жапондық пошта"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Еуропалық пошта"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Аурухана"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Банк"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Банкомат"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Қонақ үй"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Махаббат қонақ үйі"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Шағын супермаркет"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Мектеп"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Әмбебап дүкен"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Зауыт"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Изакайя шамы"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Жапондық сарай"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Еуропалық сарай"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Егеуқұйрық"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Тышқан"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Өгіз"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Азиялық енеке"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Сиыр"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Леопард"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Қоян"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Мысық"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Айдаһар"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Қолтырауын"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Кит"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Ұлу"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Жылан"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Жылқы"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Қой"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Ешкі"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Қой"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Маймыл"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Қораз"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Тауық"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Ит"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Шошқа"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Аю"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Піл"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Сегізаяқ"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Шиыршық тәрізді бақалшық"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Жәндік"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Құмырсқа"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Ара"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Қызыл қоңыз"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Балық"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Тропикалық балық"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Ине қарынды балық"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Тасбақа"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Жұмыртқаны жарып шыққан балапан"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Балапан"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Алға қарап тұрған балапан"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Құс"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Пингвин"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Коала"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Пудель"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Жалғыз өркешті түйме"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Қос өркешті түйе"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Дельфин"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Тышқанның тұмсығы"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Сиырдың тұмсығы"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Тигрдің тұмсығы"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Қоянның тұмсығы"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Мысықтың беті"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Айдаһардың тұмсығы"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Су шашыратып жатқан кит"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Жылқының тұмсығы"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Маймылдың тұмсығы"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Иттің беті"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Шошқаның тұмсығы"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Бақаның тұмсығы"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Аламанның беті"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Қасқырдың тұмсығы"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Аюдың тұмсығы"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Панданың тұмсығы"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Шошқаның танауы"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Табан іздері"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Көздер"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Құлақ"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Мұрын"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Ауыз"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Тіл"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Ақ жоғарыға бағытталған қолдың сыртқы жағындағы сұқ саусақ"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Ақ төменге бағытталған қолдың сыртқы жағындағы сұқ саусақ"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Ақ сол жаққа бағытталған алақанның сырт жағындағы сұқ саусақ"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Ақ оң жаққа бағытталған алақанның сырт жағындағы сұқ саусақ"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Жұдырық белгісі"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Қол бұлғау белгісі"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Жарайды белгісі"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Басбармақ жоғары белгісі"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Басбармақ төмен белгісі"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Шапалақтау белгісі"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Ашық қолдар белгісі"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Корона"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Әйелдер қалпағы"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Көзілдірік"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Галстук"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Футболка"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Джинсы"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Көйлек"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Кимоно"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Бикини"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Әйелдердің киімдері"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Әмиян"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Қол сөмкесі"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Әмиян"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Еркектер туфлиі"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Спорт аяқ киімі"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Өкшесі биік туфли"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Әйелдер сандалы"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Әйелдер бәтеңкесі"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Іздер"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Мүсіннің силуэты"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Бюсттердің силуэты"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Бала"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Қыз"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Еркек"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Әйел"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Отбасы"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Қолдарын ұстасып тұрған әйел мен еркек"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Қолдарын ұстасып тұрған екі еркек"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Қолдарын ұстасып тұрған екі әйел"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Полиция офицері"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Қоян құлақтары бар әйел"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Бетпердесі бар қалыңдық"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Сары шашты адам"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Гуа пи мао киген адам"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Сәлдесі бар еркек"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Кәрі еркек"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Кәрі әйел"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Нәресте"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Құрылыс жұмысшысы"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Принцесса"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Жапондық огр"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Жапондық гоблин"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Елес"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Нәресте періште"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Басқа планеталық"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Басқа планеталық құбыжық"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Сайтанның баласы"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Бассүйек"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Анықтама беретін орын қызметкері"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Гвардияшы"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Биші"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Далап"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Тырнаққа арналған лак"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Бетті уқалау"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Шаш үлгісі"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Шиыршық ақ-қызыл бояуы бар баған"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Шприц"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Домалақ дәрі"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Сүю белгісі"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Махаббат хаты"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Сақина"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Асыл тас"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Сүю"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Букет"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Жүрек бар жұп"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Үйлену"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Соғып тұрған жүрек"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Жарылған жүрек"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Екі жүрек"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Жарқыраған жүрек"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Өсіп жатқан жүрек"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Оқ бар жүрек"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Көк жүрек"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Жасыл жүрек"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Сары жүрек"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Күлгін жүрек"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Лентасы бар жүрек"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Айналып жатқан жүректер"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Жүрек әшекейі"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Ішінде нүкте бар бриллиант пішіні"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Электр шам"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Ашу таңбасы"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Бомба"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Ұйықтау таңбасы"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Соқтығысу таңбасы"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Шашыраған тер таңбасы"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Кішкентай тамшы"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Сызықша таңбасы"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Нәжіс"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Ширатылған бицепстер"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Бас айналу таңбасы"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Сөз шеңбері"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Ой шеңбері"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Ақ гүл"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Жүз нүкте таңбасы"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Ақша толған сөмке"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Валюта айырбастау"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Ауыр доллар белгісі"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Несие картасы"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Йена белгісі бар банкнота"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Доллар белгісі бар банкнот"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Еуро белгісі бар банкнота"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Фунт белгісі бар банкнота"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Сақиналар бар ақша"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Жоғары қарай тренді және йена белгісі бар диаграмма"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Орындық"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Жеке компьютер"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Портфель"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Шағын диск"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Дискета"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Оптикалық диск"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Тіркеу қалтасы"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Ашық тіркеу қалтасы"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Оралған шеті бар бет"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Жоғары қарап тұрған бет"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Күнтізбе"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Жыртпалы күнтізбе"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Картотека"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Жоғары қарай тренді бар диаграмма"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Төмен қарай тренді бар диаграмма"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Гистограмма"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Буфер"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Канцеляриялық бүркеншікті шеге"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Дөңгелек бүркеншікті шеге"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Қағаз қыстырғыш"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Түзу сызғыш"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Үшбұрыштық сызғыш"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Бетбелгілер"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Бас кітап"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Жазу кітапшасы"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Безендірілген мұқабасы бар жазу кітапшасы"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Жабық кітап"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Ашық кітап"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Жасыл кітап"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Көк кітап"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Сарғылт кітап"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Кітаптар"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Ат бейджигі"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Айналдыру"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Жаднама"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Телефон қабылдағышы"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Пейджер"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Факс"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Жерсерік антеннасы"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Дыбыстандыру және күшейту жүйесінің дыбыс зорайтқышы"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Рухтандыру мегафоны"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Шығыс науасы"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Кіріс науасы"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Бума"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Электрондық пошта таңбасы"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Кіріс хатқалта"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Үстінде төменге көрсеткісі бар хатқалта"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Төмен түсірілген жалаушасы бар жабық пошта жәшігі"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Көтерілген жалауша бар жабық пошта жәшігі"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Көтерілген жалаушасы бар ашық пошта жәшігі"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Төмен түсірілген жалаушасы бар ашық пошта жәшігі"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Пошта жәшігі"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Пошталық мүйіз"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Газет"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Мобильдік телефон"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Сол жағында оңға көрсеткісі бар мобильдік телефон"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Діріл режимі"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Мобильдік телефон өшірулі"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Мобильдік телефондар жоқ"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Жолақтары бар антенна"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Камера"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Бейнекамера"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Теледидар"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Радио"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Бейнетаспа"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Оңға бұралған көрсеткілер"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Сағат тілімен оңға және солға ашық дөңгелек көрсеткілер"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Дөңгелек бір қабаттасу бар сағат тілімен оңға және солға ашық дөңгелек көрсеткілер"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Сағат тілімен төменге және оңға ашық дөңгелек көрсеткілер"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Сағат тіліне кері төмен және жоғары қарай ашық дөңгелек көрсеткілер"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Төмен жарықтық таңбасы"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Жоғары жарықтық таңбасы"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Дыбысты өшіру сызығы бар динамик"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Динамик"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Бір дыбыстық толқыны бар динамик"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Үш дыбыстық толқыны бар динамик"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Батарея"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Аша"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Солға бағытталған үлкейту әйнегі"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Оңға бағытталған үлкейту әйнегі"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Сиялы қаламсап бар құлып"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Кілт бар жабық құлып"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Кілт"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Құлып"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Ашық құлып"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Қоңырау"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Дыбысты өшіру сызығы бар қоңырау"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Бетбелгі"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Түйін таңбасы"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Айырып-қосқыш"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Үстінде солға көрсеткісі бар «Back»"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"Үстінде солға көрсеткісі бар «End»"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"Үстінде солға оңға көрсеткісі бар леп белгісі бар қосулы «On»"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Үстінде оңға көрсеткісі бар «Soon»"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Үстінде жоғары көрсеткісі бар «Top»"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Он сегіз жастан төмен емес таңбасы"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Он пернесі"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Латын бас әріптері үшін енгізу таңбасы"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Латын кіші әріптері үшін енгізу таңбасы"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Сандар үшін енгізу таңбасы"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Таңбалар үшін енгізу таңбасы"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Латын әріптері үшін енгізу таңбасы"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Өрт"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Қалта шам"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Гайка кілті"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Балға"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Гайка мен болт"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Пышақ"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Пистолет"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Микроскоп"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Телескоп"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Кристалл шар"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Ортасында нүкте бар алты бұрышты жұлдыз"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Бастаушы жапондық таңбасы"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Үш ашалы айыр эмблемасы"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Қара шаршы түймесі"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Ақ шаршы түймесі"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Үлкен қызыл шеңбер"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Үлкен көк шеңбер"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Үлкен сарғылт бриллиант"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Үлкен көк бриллиант"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Шағын сарғылт бриллиант"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Шағын көк бриллиант"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Жоғары бағытталған қызыл үшбұрыш"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Төмен қарап тұрған қызыл үшбұрыш"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Жоғары бағытталған шағын қызыл үшбұрыш"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Төмен бағытталған шағын қызыл үшбұрыш"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Циферблат: бір сағат"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Циферблат: екі сағат"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Циферблат: үш сағат"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Циферблат: төрт сағат"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Циферблат: бес сағат"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Циферблат: алты сағат"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Циферблат: жеті сағат"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Циферблат: сегіз сағат"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Циферблат: тоғыз сағат"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Циферблат: он сағат"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Циферблат: он бір сағат"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Циферблат: он екі сағат"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Циферблат: бір жарым"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Циферблат: екі жарым"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Циферблат: үш жарым"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Циферблат: төрт жарым"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Циферблат: бес жарым"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Циферблат: алты жарым"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Циферблат: жеті жарым"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Циферблат: сегіз жарым"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Циферблат: тоғыз жарым"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Циферблат: он жарым"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Циферблат: он бір жарым"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Циферблат: он екі жарым"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Фудзи тауы"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Токио мұнарасы"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Еркіндік статуясы"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Жапондықтың силуэты"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Моаи"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Ыржиып күліп тұрған бет"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Күлімсіреген көздері бар ыржиып күліп тұрған бет"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Қуаныштан жас шыққан бет"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Аузы ашық күлімсіреген бет"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Аузы ашық және көздері күлімсіреп тұрған күлімсіреген бет"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Аузы ашық және салқын тері бар күлімсіреген бет"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Аузы ашық және көздері қатты жұмылған күлімсіреген бет"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Галосы бар күлімсіреген бет"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Мүйіздері бар күлімсіреген бет"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Жымиған бет"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Күлімсіреп тұрған көздері бар күлімсіреген бет"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Тәтті тамақтан ләззат алып жатқан бет"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Жеңілдік сезінген бет"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Жүрек пішінді көздері бар күлімсіреген бет"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Көзілдірік бар күлімсіреген бет"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Миығынан күлген бет"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Бейтарап бет"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Эмоциясыз бет"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Таң қалмаған бет"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Салқын тер бар бет"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Мұңды бет"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Абдыраған бет"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Қысылған бет"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Сүю беті"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Сүю жіберген бет"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Күлімсіреп тұрған көздері бар сүю беті"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Көздері жабық сүю беті"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Тілі шығып тұрған бет"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Тілі шығып тұрған және жымиған көзі бар бет"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Тілі шығып тұрған және қатты жабылған көздері бар бет"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Көңілі қалған бет"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Алаңдаған бет"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Ашулы бет"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Ернін бұлтитқан бет"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Жылап жатқан бет"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Табанды бет"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Триумфтық қарас бар бет"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Көңілі қалған, бірақ жеңілдік сезінген бет"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Аузы ашық, қабағын түйген бет"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Қайғылы бет"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Қорыққан бет"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Қажыған бет"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Ұйқылы бет"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Шаршаған бет"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Бет-аузын қисайтқан бет"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Қатты жылап жатқан бет"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Аузы ашық бет"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Жекіргендегі бет"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Аузы ашық және салқын тер бар бет"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Қорқыныштан айқайлаған бет"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Таң қалған бет"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Қызарған бет"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Ұйықтап жатқан бет"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Басы айналған бет"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Аузы жоқ бет"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Медициналық маска бар бет"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Күлімсіреген көздері бар ыржиып күліп тұрған мысық беті"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Қуаныштан шыққан жас бар мысық беті"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Аузы ашық, күлімсіреген мысық беті"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Жүрек пішінді көздері бар күлімсіреген мысық беті"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Қыжырта өтірік күлімсіреген мысық беті"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Көздері жабық, сүйіп жатқан мысық беті"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Ернін бұлтитқан мысық беті"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Жылап жатқан мысық беті"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Қажыған мысық беті"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Жақсы емес қимылы бар бет"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Жарайды қимылы бар бет"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Қатты иілген адам"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Жаманды көріп тұрмаған маймыл"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Жаманды естімейтін маймыл"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Жаман сөйлемейтін маймыл"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Бір қолын көтерген бақытты адам"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Қуанғаннан екі қолын көтерген адам"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Қабағын түйген адам"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Ернін бұлтитқан беті бар адам"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Қолдарын жинаған адам"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Ракета"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Тікұшақ"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Бумен жүретін локомотив"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Вагон"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Жылдамдығы жоғары пойыз"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Оқ тұмсығы бар жылдамдығы жоғары пойыз"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Пойыз"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Метро"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Монорельс"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Станция"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Трамвай"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Трамвай вагоны"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Автобус"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Келе жатқан автобус"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Троллейбус"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Автобус аялдамасы"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Микроавтобус"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Жедел жәрдем көлігі"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Өрт сөндіру машинасы"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Полиция көлігі"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Келе жатқан полиция көлігі"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Такси"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Келе жатқан такси"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Автокөлік"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Келе жатқан автокөлік"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Тұрғын көлік"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Жеткізу жүк көлігі"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Автопойыз"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Трактор"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Монорельс"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Тау пойыз жолы"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Аспалы темір жолы"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Таудағы арқан жолы"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Аспалы арқан жол"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Кеме"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Қайық"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Жылдам жүретін катер"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Көлденең бағдаршам"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Тік бағдаршам"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Құрылыс белгісі"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Полиция көліктерінің айналатын шамы"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Бағандағы үшбұрыштық жалау"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Есік"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Кірмеу белгісі"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Темекі шегу белгісі"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Темекі шекпеу белгісі"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Қоқысты орнына лақтырыңыз таңбасы"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Қоқыс лақтырмаңыз таңбасы"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Ауыз су таңбасы"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Ауыз су емес таңбасы"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Велосипед"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Велосипедтерге тыйым салынған"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Велосипедші"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Тау велосипедшісі"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Жолаушы"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Жолаушыларға тыйым салынған"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Балалар өтіп жатыр"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Еркектер таңбасы"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Әйелдер таңбасы"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Демалу бөлмесі"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Нәресте таңбасы"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Дәретхана"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Әжетхана"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Душ"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Ванна"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Ванна"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Паспортты бақылау"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Кеден"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Бағажды беру"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Қалдырылған багаж"</string>
+</resources>
diff --git a/java/res/values-kk-rKZ/strings-talkback-descriptions.xml b/java/res/values-kk-rKZ/strings-talkback-descriptions.xml
index 2d61bde..106d3c5 100644
--- a/java/res/values-kk-rKZ/strings-talkback-descriptions.xml
+++ b/java/res/values-kk-rKZ/strings-talkback-descriptions.xml
@@ -20,112 +20,69 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for spoken_use_headphones (4313642710742229868) -->
-    <skip />
-    <!-- no translation found for spoken_current_text_is (4240549866156675799) -->
-    <skip />
-    <!-- no translation found for spoken_no_text_entered (1711276837961785646) -->
-    <skip />
-    <!-- no translation found for spoken_auto_correct (8989324692167993804) -->
-    <skip />
-    <!-- no translation found for spoken_auto_correct_obscured (7769449372355268412) -->
-    <skip />
+    <string name="spoken_use_headphones" msgid="4313642710742229868">"Дауыстап айтылған құпия сөз пернелерін есту үшін гарнитураны қосыңыз."</string>
+    <string name="spoken_current_text_is" msgid="4240549866156675799">"Ағымдағы мәтін – %s"</string>
+    <string name="spoken_no_text_entered" msgid="1711276837961785646">"Мәтін енгізілмеген"</string>
+    <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> дегенді <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> деп түзетеді"</string>
+    <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> автоматты түрде түзетуді орындайды"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Ұсыныс жоқ"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Белгісіз таңба"</string>
-    <!-- no translation found for spoken_description_shift (7209798151676638728) -->
-    <skip />
-    <!-- no translation found for spoken_description_symbols_shift (3483198879916435717) -->
-    <skip />
-    <!-- no translation found for spoken_description_shift_shifted (3122704922642232605) -->
-    <skip />
-    <!-- no translation found for spoken_description_symbols_shift_shifted (5179175466878186081) -->
-    <skip />
-    <!-- no translation found for spoken_description_caps_lock (1224851412185975036) -->
-    <skip />
-    <!-- no translation found for spoken_description_delete (3878902286264983302) -->
-    <skip />
-    <!-- no translation found for spoken_description_to_symbol (8244903740201126590) -->
-    <skip />
-    <!-- no translation found for spoken_description_to_alpha (4081215210530031950) -->
-    <skip />
-    <!-- no translation found for spoken_description_to_numeric (4560261331530795682) -->
-    <skip />
-    <!-- no translation found for spoken_description_settings (7281251004003143204) -->
-    <skip />
-    <!-- no translation found for spoken_description_tab (8210782459446866716) -->
-    <skip />
-    <!-- no translation found for spoken_description_space (5908716896642059145) -->
-    <skip />
-    <!-- no translation found for spoken_description_mic (6153138783813452464) -->
-    <skip />
-    <!-- no translation found for spoken_description_emoji (7990051553008088470) -->
-    <skip />
-    <!-- no translation found for spoken_description_return (3183692287397645708) -->
-    <skip />
-    <!-- no translation found for spoken_description_search (5099937658231911288) -->
-    <skip />
-    <!-- no translation found for spoken_description_dot (5644176501632325560) -->
-    <skip />
-    <!-- no translation found for spoken_description_language_switch (6818666779313544553) -->
-    <skip />
-    <!-- no translation found for spoken_description_action_next (431761808119616962) -->
-    <skip />
-    <!-- no translation found for spoken_description_action_previous (2919072174697865110) -->
-    <skip />
-    <!-- no translation found for spoken_description_shiftmode_on (5107180516341258979) -->
-    <skip />
-    <!-- no translation found for spoken_description_shiftmode_locked (7307477738053606881) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_symbol (111186851131446691) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_symbol_shift (4305607977537665389) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_alpha (4676004119618778911) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_phone (2061220553756692903) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_phone_shift (7879963803547701090) -->
-    <skip />
-    <!-- no translation found for announce_keyboard_hidden (2313574218950517779) -->
-    <skip />
-    <!-- no translation found for announce_keyboard_mode (6698257917367823205) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_date (6597407244976713364) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_date_time (3642804408726668808) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_email (1239682082047693644) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_im (3812086215529493501) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_number (5395042245837996809) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_phone (2486230278064523665) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_text (9138789594969187494) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_time (8558297845514402675) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_url (8072011652949962550) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_recents (4185344945205590692) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_people (8414196269847492817) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_objects (6116297906606195278) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_nature (5018340512472354640) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_places (1163315840948545317) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_symbols (474680659024880601) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_emoticons (456737544787823539) -->
-    <skip />
+    <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Қосымша таңбалар"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Таңбалар"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shift"</string>
+    <string name="spoken_description_delete" msgid="3878902286264983302">"Жою"</string>
+    <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Таңбалар"</string>
+    <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Әріптер"</string>
+    <string name="spoken_description_to_numeric" msgid="4560261331530795682">"Сандар"</string>
+    <string name="spoken_description_settings" msgid="7281251004003143204">"Параметрлер"</string>
+    <string name="spoken_description_tab" msgid="8210782459446866716">"Tab"</string>
+    <string name="spoken_description_space" msgid="5908716896642059145">"Бос орын"</string>
+    <string name="spoken_description_mic" msgid="6153138783813452464">"Дауыспен енгізу"</string>
+    <string name="spoken_description_emoji" msgid="7990051553008088470">"Эмодзи"</string>
+    <string name="spoken_description_return" msgid="3183692287397645708">"Қайтару"</string>
+    <string name="spoken_description_search" msgid="5099937658231911288">"Іздеу"</string>
+    <string name="spoken_description_dot" msgid="5644176501632325560">"Нүкте"</string>
+    <string name="spoken_description_language_switch" msgid="6818666779313544553">"Тілді ауыстыру"</string>
+    <string name="spoken_description_action_next" msgid="431761808119616962">"Келесі"</string>
+    <string name="spoken_description_action_previous" msgid="2919072174697865110">"Алдыңғы"</string>
+    <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift қосылған"</string>
+    <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps lock қосылған"</string>
+    <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Таңбалар режимі"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Қосымша таңбалар режимі"</string>
+    <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Әріптер режимі"</string>
+    <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Телефон режимі"</string>
+    <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Телефон таңбалары режимі"</string>
+    <string name="announce_keyboard_hidden" msgid="2313574218950517779">"Пернетақта жасырылды"</string>
+    <string name="announce_keyboard_mode" msgid="6698257917367823205">"<xliff:g id="KEYBOARD_MODE">%s</xliff:g> пернетақтасы көрсетілген"</string>
+    <string name="keyboard_mode_date" msgid="6597407244976713364">"күн"</string>
+    <string name="keyboard_mode_date_time" msgid="3642804408726668808">"күн мен уақыт"</string>
+    <string name="keyboard_mode_email" msgid="1239682082047693644">"электрондық пошта"</string>
+    <string name="keyboard_mode_im" msgid="3812086215529493501">"хабар алмасу"</string>
+    <string name="keyboard_mode_number" msgid="5395042245837996809">"сан"</string>
+    <string name="keyboard_mode_phone" msgid="2486230278064523665">"телефон"</string>
+    <string name="keyboard_mode_text" msgid="9138789594969187494">"мәтін"</string>
+    <string name="keyboard_mode_time" msgid="8558297845514402675">"уақыт"</string>
+    <string name="keyboard_mode_url" msgid="8072011652949962550">"URL"</string>
+    <string name="spoken_descrption_emoji_category_recents" msgid="4185344945205590692">"Жақындағылар"</string>
+    <string name="spoken_descrption_emoji_category_people" msgid="8414196269847492817">"Адамдар"</string>
+    <string name="spoken_descrption_emoji_category_objects" msgid="6116297906606195278">"Заттар"</string>
+    <string name="spoken_descrption_emoji_category_nature" msgid="5018340512472354640">"Табиғат"</string>
+    <string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"Орындар"</string>
+    <string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"Таңбалар"</string>
+    <string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"Эмотикондар"</string>
     <string name="spoken_description_upper_case" msgid="4904835255229433916">"Бас <xliff:g id="LOWER_LETTER">%s</xliff:g>"</string>
     <string name="spoken_letter_0049" msgid="4743162182646977944">"Бас I"</string>
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Үстінде нүктесі бар бас I"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Белгісіз таңба"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Белгісіз эмодзи"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Зеріккен бет"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Қысылған бет"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Көзілдірік киген бет"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Таңданған бет"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Сүю беті"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Қабағын түйген бет"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Баламалы таңбалар қол жетімді"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Баламалы таңбалар еленбейді"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Баламалы ұсыныстар қол жетімді"</string>
diff --git a/java/res/values-kk-rKZ/strings.xml b/java/res/values-kk-rKZ/strings.xml
index 24c99b3..05c7f2d 100644
--- a/java/res/values-kk-rKZ/strings.xml
+++ b/java/res/values-kk-rKZ/strings.xml
@@ -26,24 +26,30 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Пернені басқан кездегі діріл"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Пернені басу кезіндегі дыбыс"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Пернені басқан кездегі ашылмалы мәзір"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Қалауларыңыз"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Есептік жазбалар және құпиялық"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Сыртқы түр және орналасулар"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Қимыл арқылы теру"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Мәтінді түзету"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Кеңейтілген"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Тақырып"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Бөлінген пернетақтаны қосу"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google пернетақтасын синхрондау"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Синхрондау қосылды"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Жеке сөздікті құрылғылар арасында синхрондау"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Қазір синхрондау"</string>
+    <!-- no translation found for clear_sync_data_title (8582001557037069154) -->
     <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Синхрондалған деректерді Google жүйесінен жояды"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Синхрондалған деректер бұлттан жойылады. Сіз сенімдісіз бе?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Жою"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Бас тарту"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Жеке сөздігіңіз синхрондалады және Google серверлеріне сақтық көшірмесі жасалады. Сөз жиілігінің статистикалық ақпараты өнімдерімізді жақсарту үшін жинақталуы мүмкін. Барлық ақпаратты жинау және пайдалану "<a href="https://www.google.com/policies/privacy">" Google құпиялылық саясатына "</a>"сәйкес орындалады."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Мүмкіндікті қосу үшін құрылғыға Google есептік жазбасын қосыңыз"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Басқа енгізу әдістеріне ауыстырыңыз"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Тілді ауыстыру пернесі басқа енгізу әдістерін де қамтиды"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Тілді ауыстыру пернесі"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Бірнеше енгізу тілдері қосылған кезде көрсету"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Жылжыту индикаторын көрсету"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Shift немесе Таңба пернелерінен жылжыту кезіндегі көрнекі сөзкөмекті көрсету"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Перненің ашылмалы мәзірі кідірісті жояды"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Кідіріс жоқ"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Әдепкі"</string>
@@ -51,8 +57,7 @@
     <string name="settings_system_default" msgid="6268225104743331821">"Жүйе әдепкісі"</string>
     <string name="use_contacts_dict" msgid="4435317977804180815">"Контакт аттарын ұсыну"</string>
     <string name="use_contacts_dict_summary" msgid="6599983334507879959">"Ұсыныстар мен түзетулер үшін контакт аттарын пайдалану"</string>
-    <!-- no translation found for use_personalized_dicts (5167396352105467626) -->
-    <skip />
+    <string name="use_personalized_dicts" msgid="5167396352105467626">"Жекелендірілген ұсыныстар"</string>
     <string name="enable_metrics_logging" msgid="5506372337118822837">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> жақсарту"</string>
     <string name="use_double_space_period" msgid="8781529969425082860">"Қос бос орын кезеңі"</string>
     <string name="use_double_space_period_summary" msgid="6532892187247952799">"Бос орынға екі рет түрту бос орыннан кейінгі кезеңді енгізеді"</string>
@@ -63,9 +68,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Негізгі сөздік"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Түзету ұсыныстарын көрсету"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Теру кезінде ұсынылған сөздерді көрсету"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Үнемі көрсету"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Портрет режимінде көрсету"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Үнемі жасыру"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Қорлаушы сөздерді құлыптамау"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Қорлаушы сөздерді ұсынбау"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Авто түзету"</string>
@@ -81,35 +83,37 @@
     <string name="gesture_preview_trail" msgid="3802333369335722221">"Қимыл қадамын көрсету"</string>
     <string name="gesture_floating_preview_text" msgid="4443240334739381053">"Динамикалық қалқымалы қарап шығу"</string>
     <string name="gesture_floating_preview_text_summary" msgid="4472696213996203533">"Қимылдау кезінде ұсынылған сөзді көру"</string>
-    <!-- no translation found for gesture_space_aware (2078291600664682496) -->
-    <skip />
-    <!-- no translation found for gesture_space_aware_summary (4371385818348528538) -->
-    <skip />
+    <string name="gesture_space_aware" msgid="2078291600664682496">"Фраза қимылы"</string>
+    <string name="gesture_space_aware_summary" msgid="4371385818348528538">"Бос орын пернесіне сырғыту арқылы қимылдар барысында бос орындарды енгізу"</string>
     <string name="voice_input" msgid="3583258583521397548">"Дауыстық енгізу пернесі"</string>
-    <!-- no translation found for voice_input_disabled_summary (8141750303464726129) -->
-    <skip />
+    <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Дауыспен енгізу әдістері қосылмаған. «Тіл және енгізу параметрлері» тармағын тексеріңіз."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Енгізу әдістерін теңшеу"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Енгізу тілдері"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Кері байланыс жіберу"</string>
-    <string name="select_language" msgid="3693815588777926848">"Енгізу тілдері"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Тілдер"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Анықтама және кері байланыс"</string>
+    <string name="select_language" msgid="5709487854987078367">"Тілдер"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Сақтау үшін қайта түртіңіз"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Сақтау үшін осы жерді түртіңіз"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Сөздік қолжетімді"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Пернетақта тақырыбы"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Есептік жазбаларды ауыстыру"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Есептік жазбалар таңдалмаған"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Қазіргі уақытта <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g> пайдаланылуда"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"Жарайды"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Бас тарту"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Шығу"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Пайдаланатын есептік жазбаны таңдау"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"ағылшын (ҰБ)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"ағылшын (АҚШ)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Испан (АҚШ)"</string>
-    <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
-    <skip />
-    <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
-    <skip />
-    <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
-    <skip />
-    <!-- no translation found for subtype_generic_traditional (8584594350973800586) -->
-    <skip />
-    <!-- no translation found for subtype_generic_cyrillic (7486451947618138947) -->
-    <skip />
-    <!-- no translation found for subtype_generic_latin (9128716486310604145) -->
-    <skip />
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Хинглиш"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Серб (латын жазуы)"</string>
+    <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Ағылшын (Құрама Корольдік) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Ағылшын (АҚШ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Испан (АҚШ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Хинглиш (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Серб (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (дәстүрлі)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (шағын)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Тіл жоқ (әліпби)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Әліпби (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Әліпби (QWERTZ)"</string>
@@ -117,18 +121,8 @@
     <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Әліпби (Dvorak)"</string>
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Әліпби (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Әліпби (ДК)"</string>
-    <!-- no translation found for subtype_emoji (7483586578074549196) -->
-    <skip />
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="subtype_emoji" msgid="7483586578074549196">"Эмодзи"</string>
+    <string name="keyboard_theme" msgid="4909551808526178852">"Пернетақта тақырыбы"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Реттелетін енгізу стильдері"</string>
     <string name="add_style" msgid="6163126614514489951">"Стиль қосу"</string>
     <string name="add" msgid="8299699805688017798">"Қосу"</string>
@@ -140,15 +134,9 @@
     <string name="enable" msgid="5031294444630523247">"Қосу"</string>
     <string name="not_now" msgid="6172462888202790482">"Қазір емес"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Бірдей енгізу стилі бұрыннан бар: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Пернені ұзақ басу кідірісі"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Пернені басқан кездегі діріл ұзақтығы"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Пернені басқан кездегі дыбыс деңгейі"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Сыртқы сөздік файлын оқу"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Жүктеп алулар қалтасында сөздік файлдары жоқ"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Орнату үшін сөздік файлын таңдау"</string>
-    <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
-    <skip />
-    <string name="error" msgid="8940763624668513648">"Қате болды"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Пернені ұзақ басу кідірісі"</string>
     <string name="button_default" msgid="3988017840431881491">"Әдепкі"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> қолданбасына қош келдіңіз"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"Қимылмен теру арқылы"</string>
@@ -166,8 +154,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Қазір барлық таңдаулы қолданбаларда <xliff:g id="APPLICATION_NAME">%s</xliff:g> арқылы теруге болады."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Қосымша тілдерді теңшеу"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Аяқталған"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Қолданба белгішесін көрсету"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Іске қосу құралындағы қолданба белгішесін көрсету"</string>
     <string name="app_name" msgid="6320102637491234792">"Сөздік провайдері"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Сөздік провайдері"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Сөздік қызметі"</string>
@@ -186,24 +172,19 @@
     <string name="check_for_updates_now" msgid="8087688440916388581">"Жаңарту"</string>
     <string name="last_update" msgid="730467549913588780">"Соңғы жаңартылған"</string>
     <string name="message_updating" msgid="4457761393932375219">"Жаңартуларды тексеру"</string>
-    <!-- no translation found for message_loading (5638680861387748936) -->
-    <skip />
+    <string name="message_loading" msgid="5638680861387748936">"Жүктеу…"</string>
     <string name="main_dict_description" msgid="3072821352793492143">"Негізгі сөздік"</string>
     <string name="cancel" msgid="6830980399865683324">"Болдырмау"</string>
-    <!-- no translation found for go_to_settings (3876892339342569259) -->
-    <skip />
+    <string name="go_to_settings" msgid="3876892339342569259">"Параметрлер"</string>
     <string name="install_dict" msgid="180852772562189365">"Орнату"</string>
     <string name="cancel_download_dict" msgid="7843340278507019303">"Болдырмау"</string>
     <string name="delete_dict" msgid="756853268088330054">"Жою"</string>
-    <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
-    <skip />
+    <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Мобильдік құрылғыда таңдалған тіл үшін сөздік қол жетімді.&lt;br/&gt; Теру тәжірибесін жақсарту үшін <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> сөздігін &lt;b&gt;жүктеу&lt;/b&gt; ұсынылады.&lt;br/&gt; &lt;br/&gt; Жүктеу 3G арқылы бір немесе екі минут алуы мүмкін. Сізде &lt;b&gt;шектеусіз деректер жоспары&lt;/b&gt; болмаса, ақылар алынуы мүмкін.&lt;br/&gt; Егер өзіңіздегі деректер жоспарын білмесеңіз, жүктеуді автоматты түрде бастау үшін Wi-Fi байланысын табу ұсынылады.&lt;br/&gt; &lt;br/&gt; Кеңес: мобильдік құрылғының &lt;b&gt;Параметрлер&lt;/b&gt; мәзірінде &lt;b&gt;Тіл және енгізу&lt;/b&gt; тармағына өту арқылы сөздіктерді жүктеуге және жоюға болады."</string>
     <string name="download_over_metered" msgid="1643065851159409546">"Қазір жүктеп алу (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>МБ)"</string>
     <string name="do_not_download_over_metered" msgid="2176209579313941583">"Wi-Fi арқылы жүктеп алу"</string>
-    <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
-    <skip />
+    <string name="dict_available_notification_title" msgid="4583842811218581658">"<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> үшін сөздік қол жетімді"</string>
     <string name="dict_available_notification_description" msgid="1075194169443163487">"Қарап шығу және жүктеп алу үшін басу"</string>
-    <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
-    <skip />
+    <string name="toast_downloading_suggestions" msgid="6128155879830851739">"<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> үшін ұсыныстарды жүктеу жақында дайын болады."</string>
     <string name="version_text" msgid="2715354215568469385">"<xliff:g id="VERSION_NUMBER">%1$s</xliff:g> нұсқасы"</string>
     <string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"Қосу"</string>
     <string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"Сөздікке қосу"</string>
diff --git a/java/res/values-km-rKH/strings-emoji-descriptions.xml b/java/res/values-km-rKH/strings-emoji-descriptions.xml
index 757df50..e9b8780 100644
--- a/java/res/values-km-rKH/strings-emoji-descriptions.xml
+++ b/java/res/values-km-rKH/strings-emoji-descriptions.xml
@@ -267,7 +267,7 @@
     <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"ខូគី"</string>
     <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"​​សូកូឡា"</string>
     <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"ស្ករគ្រាប់"</string>
-    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"ស្ករ​គ្រាប់​មាន​ដង​​កាន់"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lollipop"</string>
     <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"សង់ខ្យា"</string>
     <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"ថូ"</string>
     <string name="spoken_emoji_1F370" msgid="7243244547866114951">"នំ​ខេក"</string>
diff --git a/java/res/values-km-rKH/strings-talkback-descriptions.xml b/java/res/values-km-rKH/strings-talkback-descriptions.xml
index e5b7860..5e99209 100644
--- a/java/res/values-km-rKH/strings-talkback-descriptions.xml
+++ b/java/res/values-km-rKH/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"គ្មាន​អត្ថបទ​​​បាន​បញ្ចូល"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> កែ <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> ទៅ​ជា <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> អនុវត្ត​ការ​កែ​ស្វ័យ​ប្រវត្តិ"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"គ្មានការផ្តល់យោបល់ទេ"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"មិន​ស្គាល់​តួអក្សរ"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"និមិត្ត​សញ្ញា​​ច្រើន​ទៀត"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"សញ្ញា İ"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"មិន​ស្គាល់​និមិត្តសញ្ញា"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"មិន​ស្គាល់​សញ្ញា​អារម្មណ៍"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"មុខ​អផ្សុក"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"មុខ​ខ្មាស​​អៀន"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"ពាក់​វ៉ែនតា​"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"មុខ​ភ្ញាក់ផ្អើល"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"មុខ​ថើប"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"មុខ​ចង​ចិញ្ចើម"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"តួអក្សរ​ជំនួស​អាច​ប្រើ​បាន"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"បាន​បដិសេធ​តួអក្សរ​ជំនួស"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"ការ​ស្នើ​ជំនួស​អាច​ប្រើ​បាន"</string>
diff --git a/java/res/values-km-rKH/strings.xml b/java/res/values-km-rKH/strings.xml
index 1c64583..26ca12d 100644
--- a/java/res/values-km-rKH/strings.xml
+++ b/java/res/values-km-rKH/strings.xml
@@ -26,18 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"ញ័រ​នៅ​ពេល​ចុច​គ្រាប់ចុច"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"សំឡេង​នៅ​ពេល​ចុច​គ្រាប់ចុច"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"លេច​ឡើង​នៅ​​ពេល​ចុច​គ្រាប់​ចុច"</string>
-    <string name="settings_screen_input" msgid="2808654300248306866">"ចំណូលចិត្ត​បញ្ចូល"</string>
-    <string name="settings_screen_appearances" msgid="3611951947835553700">"រូបរាង"</string>
-    <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"ជម្រើស​ភាសា​​ច្រើន"</string>
-    <string name="settings_screen_gesture" msgid="9113437621722871665">"ចំណូលចិត្តបញ្ចូលកាយវិការ"</string>
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"ចំណូលចិត្ត"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"គណនី &amp;amp ភាពឯកជន"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"រូបរាង &amp;amp ប្លង់"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"កាយវិការ​បញ្ចូល"</string>
     <string name="settings_screen_correction" msgid="1616818407747682955">"ការ​កែ​​អត្ថបទ"</string>
     <string name="settings_screen_advanced" msgid="7472408607625972994">"កម្រិត​ខ្ពស់"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"រូបរាង"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"បើក​ការ​បំបែក​ក្ដារចុច"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"សមកាលកម្មលើក្តារចុច Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"សមកាលម្មត្រូវបានបើក"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"ធ្វើសមកាលកម្មបញ្ជីឯកសារផ្ទាល់ខ្លួនឆ្លងឧបករណ៍"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"ធ្វើសម្មកាលកម្មឥឡូវនេះ"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"លុបទិន្នន័យក្លោត"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"លុបទិន្នន័យដែលបានធ្វើសមកាលកម្មរបស់អ្នកចេញពី Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"ទិន្នន័យធ្វើសមកាលកម្មរបស់អ្នកនឹងត្រូវបានលុបពីពពក។ តើអ្នកប្រាកដទេ?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"លុប"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"បោះបង់"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"បញ្ជីឯកសារផ្ទាល់ខ្លួនរបស់អ្នកនឹងត្រូវបានធ្វើសមកាលកម្ម និងបម្រុងទុកនៅក្នុងម៉ាស៊ីនមេ Google។ ព័ត៌មានស្ថិតិនៃចំនួនពាក្យដែលឧស្សាហ៍ប្រើអាចត្រូវបានប្រមូលដើម្បីធ្វើឲ្យផលិតផលរបស់ពួកយើងប្រសើរជាងមុន។ ការប្រមូល និងការប្រើប្រាស់ព័ត៌មាន នឹងត្រូវអនុលោមតាម "<a href="https://www.google.com/policies/privacy">"គោលការណ៍ភាពឯកជនរបស់ Google"</a>"។"</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"សូមបន្ថែមគណនី Google ទៅឧបករណ៍នេះដើម្បីបើកដំណើរការលក្ខណៈពិសេសនេះ"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"ប្ដូរ​ទៅ​​​វិធីសាស្ត្រ​បញ្ចូល​​​ផ្សេង​ទៀត"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"គ្រាប់ចុច​ប្ដូរ​ភាសា​តាម​វិធីសាស្ត្រ​បញ្ចូល​ផ្សេងទៀត"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"គ្រាប់​ចុច​ប្ដូរ​​ភាសា"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"បង្ហាញ​នៅ​ពេល​ដែល​បើក​ភាសា​បញ្ចូល​ច្រើន"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"បង្ហាញ​ទ្រនិច​បង្ហាញ​ស្លាយ"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"បង្ហាញ​​សញ្ញា​មើល​​ឃើញ​ខណៈ​ពេល​ដែល​រុញ​ពី​ឆ្វេង ឬ​​គ្រាប់​ចុច​​និមិត្ត​សញ្ញា"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"​សោ​លេចឡើង​បោះបង់​ការ​​ពន្យារពេល​"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"គ្មាន​ការ​ពន្យារពេល"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"លំនាំដើម"</string>
@@ -56,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"វចនានុក្រម​ចម្បង"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"បង្ហាញ​ការ​ស្នើ​​កែ"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"បង្ហាញ​ពាក្យ​​បាន​​ផ្ដល់​​ស្នើ​​ខណៈ​ពេល​​​វាយ​បញ្ចូល"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"បង្ហាញ​ជា​និច្ច"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"បង្ហាញ​នៅ​ក្នុង​របៀប​បញ្ឈរ"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"លាក់​ជានិច្ច"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"ទប់ស្កាត់​​ពាក្យ​​បំពាន"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"កុំ​ស្នើ​ឲ្យ​ពាក្យ​បំពាន​មាន​សក្ដានុពល​"</string>
     <string name="auto_correction" msgid="7630720885194996950">"ការ​កែ​​​ស្វ័យប្រវត្តិ"</string>
@@ -79,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"គ្រាប់​ចុច​បញ្ចូល​​សំឡេង"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"គ្មាន​វិធីសាស្ត្រ​បញ្ចូល​សំឡេង​បាន​បើក។ ពិនិត្យ​មើល​ការ​កំណត់​ភាសា &amp; ការ​បញ្ចូល។"</string>
     <string name="configure_input_method" msgid="373356270290742459">"កំណត់​រចនាសម្ព័ន្ធ​វិធីសាស្ត្រ​បញ្ចូល"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"បញ្ចូល​ភាសា"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"ផ្ញើ​មតិ​អ្នក​ប្រើ"</string>
-    <string name="select_language" msgid="3693815588777926848">"​​បញ្ចូល​ភាសា"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"ភាសា"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"ជំនួយ &amp; មតិ​ត្រឡប់"</string>
+    <string name="select_language" msgid="5709487854987078367">"ភាសា"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"ប៉ះ​ម្ដង​ទៀត​ ដើម្បី​រក្សា​ទុក"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"ប៉ះ​ទីនេះ​ដើម្បី​រក្សាទុក"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"មាន​វចនានុក្រម"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"រូបរាង​ក្ដារចុច"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"ប្ដូរ​គណនី"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"មិន​បាន​ជ្រើស​គណនី"</string>
+    <string name="account_selected" msgid="2846876462199625974">"កំពុង​ប្រើ <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"យល់ព្រម"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"បោះបង់"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"ចេញ"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"ជ្រើស​គណនី​ដើម្បី​ប្រើ"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"អង់គ្លេស (​អង់គ្លេស)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"អង់គ្លេស (សហរដ្ឋ​អាមេរិក)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"អេស្ប៉ាញ (សហរដ្ឋ​អាមេរិក​)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"សើប (ឡាតាំង​)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"អង់គ្លេស (ចក្រភព​អង់គ្លេស) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"អង់គ្លេស (អាមេរិក) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"អេស្ប៉ាញ (អាមេរិក) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"សើប (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (អក្សរ​ពេញ)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ស៊ីរី)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ឡាតាំង)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (បង្រួម)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"គ្មាន​ភាសា (អក្សរ​ក្រម)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"តាម​លំដាប់​អក្សរក្រម (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"តាម​លំដាប់​អក្សរក្រម (QWERTZ)"</string>
@@ -103,10 +122,6 @@
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"តាម​លំដាប់​អក្សរក្រម (កុំព្យូទ័រ)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"សញ្ញា​អារម្មណ៍"</string>
     <string name="keyboard_theme" msgid="4909551808526178852">"រូបរាង​ក្ដារចុច"</string>
-    <string name="keyboard_theme_holo_white" msgid="8506588144096428751">"ស​ផ្លេកៗ​"</string>
-    <string name="keyboard_theme_holo_blue" msgid="192400518003397418">"ខៀវ​ខ្ចី"</string>
-    <string name="keyboard_theme_material_dark" msgid="2701178578784760596">"ងងឹត"</string>
-    <string name="keyboard_theme_material_light" msgid="3479400901818790331">"ភ្លឺ"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"រចនាប័ទ្ម​បញ្ចូល​ផ្ទាល់ខ្លួន"</string>
     <string name="add_style" msgid="6163126614514489951">"បន្ថែម​រចនាប័ទ្ម"</string>
     <string name="add" msgid="8299699805688017798">"បន្ថែម"</string>
@@ -118,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"បើក"</string>
     <string name="not_now" msgid="6172462888202790482">"មិនមែន​ឥឡូវ"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"មាន​រចនាប័ទ្ម​បញ្ចូល​ដូច​គ្នា​ដូច​ហើយ៖ <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"ពន្យារពេល​​​ចុច​គ្រាប់​ចុច​ឲ្យ​​យូរ"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"ថិរវេលា​​ញ័រ​​ពេល​ចុច​គ្រាប់ចុច"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"កម្រិត​សំឡេង​ពេល​ចុច​គ្រាប់​ចុច"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"អាន​ឯកសារ​វចនានុក្រម​ខាង​ក្រៅ"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"គ្មាន​ឯកសារ​វចនានុក្រម​នៅ​ក្នុង​ថត​ទាញ​យក​​"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"ជ្រើស​ឯកសារ​វចនានុក្រម​ ដើម្បី​ដំឡើង"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"ពិត​ជា​ដំឡើង​ឯកសារ​នេះ​សម្រាប់ <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"មាន​កំហុស"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"ពន្យារពេល​​​ចុច​គ្រាប់​ចុច​ឲ្យ​​យូរ"</string>
     <string name="button_default" msgid="3988017840431881491">"លំនាំដើម"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"សូម​ស្វាគមន៍​មក​កាន់ <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"ជាមួយ​​​ការ​វាយ​បញ្ចូល​ដោយ​ប្រើ​​​កាយវិការ"</string>
@@ -143,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"ឥឡូវ​​អ្នក​អាច​​វាយ​បញ្ចូល​នៅ​ក្នុង​​កម្មវិធី​​ពេញ​ចិត្ត​របស់​អ្នក​ទាំងអស់​ជាមួយ <xliff:g id="APPLICATION_NAME">%s</xliff:g> ។"</string>
     <string name="setup_step3_action" msgid="600879797256942259">"កំណត់​រចនា​សម្ព័ន្ធ​ភាសា​បន្ថែម"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"បាន​បញ្ចប់"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"បង្ហាញ​រូប​តំណាង​កម្មវិធី"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"បង្ហាញ​រូប​តំណាង​កម្មវិធី​នៅ​ក្នុង​កម្ម​​វិធី​ចាប់ផ្ដើម"</string>
     <string name="app_name" msgid="6320102637491234792">"កម្មវិធី​ផ្ដល់​វចនានុក្រម"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"កម្មវិធី​ផ្ដល់​វចនានុក្រម"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"សេវាកម្ម​​វចនានុក្រម"</string>
diff --git a/java/res/values-kn-rIN/strings-emoji-descriptions.xml b/java/res/values-kn-rIN/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..a013c27
--- /dev/null
+++ b/java/res/values-kn-rIN/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"ಹಕ್ಕುಸ್ವಾಮ್ಯದ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"ನೋಂದಾವಣಿ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"ಎರಡು ಆಶ್ಚರ್ಯಕರ ಚಿಹ್ನೆಗಳು"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"ಆಶ್ಚರ್ಯಸೂಚಕ ಪ್ರಶ್ನೆ ಗುರುತು"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"ಟ್ರೇಡ್‌ಮಾರ್ಕ್ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"ಮಾಹಿತಿ ಮೂಲ"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"ಎಡ ಬಲ ಬಾಣದ ಗುರುತು"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"ಮೇಲೆ ಕೆಳಗೆ ಬಾಣದ ಗುರುತು"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"ವಾಯುವ್ಯ ದಿಕ್ಕಿನ ಬಾಣದ ಗುರುತು"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"ಈಶಾನ್ಯ ದಿಕ್ಕಿನ ಬಾಣದ ಗುರುತು"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"ಅಗ್ನೇಯ ದಿಕ್ಕಿನ ಬಾಣದ ಗುರುತು"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"ನೈಋತ್ಯ ದಿಕ್ಕಿನ ಬಾಣದ ಗುರುತು"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"ಕೊಕ್ಕೆ ಆಕಾರದ ಎಡ ದಿಕ್ಕಿನ ಬಾಣ"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"ಕೊಕ್ಕೆ ಆಕಾರದ ಬಲ ದಿಕ್ಕಿನ ಬಾಣ"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"ವಾಚ್"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"ಹವರ್‌ಗ್ಲಾಸ್"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"ಬಲಕ್ಕೆ ಸೂಚಿಸುವ ಕಪ್ಪು ಬಣ್ಣದ ದ್ವಿ ತ್ರಿಕೋನ"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"ಎಡಕ್ಕೆ ಸೂಚಿಸುವ ಕಪ್ಪು ಬಣ್ಣದ ದ್ವಿ ತ್ರಿಕೋನ"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"ಮೇಲಕ್ಕೆ ಸೂಚಿಸುವ ಕಪ್ಪು ಬಣ್ಣದ ದ್ವಿ ತ್ರಿಕೋನ"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"ಕೆಳಕ್ಕೆ ಸೂಚಿಸುವ ಕಪ್ಪು ಬಣ್ಣದ ದ್ವಿ ತ್ರಿಕೋನ"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"ಆಲಾರಾಂ ಗಡಿಯಾರ"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"ಸುರಿಯುತ್ತಿರುವ ಮರಳಿನ ಹವರ್‌ಗ್ಲಾಸ್"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"ವೃತ್ತದೊಳಗಿನ ಲ್ಯಾಟೀನ್ ದೊಡ್ಡಕ್ಷರ ಎಮ್"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"ಕಪ್ಪು ಬಣ್ಣದ ಸಣ್ಣ ಚೌಕ"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"ಬಿಳಿ ಬಣ್ಣದ ಸಣ್ಣ ಚೌಕ"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"ಬಲಕ್ಕೆ ಸೂಚಿಸುವ ಕಪ್ಪು ಬಣ್ಣದ ತ್ರಿಕೋನ"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"ಎಡಕ್ಕೆ ಸೂಚಿಸುವ ಕಪ್ಪು ಬಣ್ಣದ ತ್ರಿಕೋನ"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"ಬಿಳಿ ಬಣ್ಣದ ಮಧ್ಯಮ ಚೌಕ"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"ಕಪ್ಪು ಬಣ್ಣದ ಮಧ್ಯಮ ಚೌಕ"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"ಬಿಳಿ ಬಣ್ಣದ ಮಧ್ಯಮ ಆಕಾರದ ಸಣ್ಣ ಚೌಕ"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"ಕಪ್ಪು ಬಣ್ಣದ ಮಧ್ಯಮ ಆಕಾರದ ಸಣ್ಣ ಚೌಕ"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"ಕಪ್ಪು ಕಿರಣಗಳ ಸೂರ್ಯ"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"ಮೇಘ"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"ಕಪ್ಪು ಟೆಲಿಫೋನ್"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"ಟಿಕ್ ಗುರುತಿನ ಬ್ಯಾಲೆಟ್ ಬಾಕ್ಸ್"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"ಮಳೆ ಹನಿಗಳೊಂದಿಗೆ ಕೊಡೆ"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"ಬಿಸಿ ಪಾನೀಯ"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"ಮೇಲ್ಮುಖ ಸೂಚನೆ"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"ಬಿಳಿ ಬಣ್ಣದ ಮಂದಸ್ಮಿತ ಮುಖ"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"ಮೇಷ ರಾಶಿ"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"ವೃಷಭ ರಾಶಿ"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"ಮಿಥುನ ರಾಶಿ"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"ಕರ್ಕಾಟಕ ರಾಶಿ"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"ಸಿಂಹ ರಾಶಿ"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"ಕನ್ಯಾ ರಾಶಿ"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"ತುಲಾ ರಾಶಿ"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"ಕಟಕ ರಾಶಿ"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"ಧನು ರಾಶಿ"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"ಮಕರ ರಾಶಿ"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"ಕುಂಭ ರಾಶಿ"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"ಮೀನ ರಾಶಿ"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"ಬ್ಲ್ಯಾಕ್ ಸ್ಪೇಡ್ ಸ್ಯೂಟ್"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"ಬ್ಲ್ಯಾಕ್ ಕ್ಲಬ್ ಸ್ಯೂಟ್"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"ಬ್ಲ್ಯಾಕ್ ಹಾರ್ಟ್ ಸ್ಯೂಟ್"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"ಬ್ಲ್ಯಾಕ್ ಡೈಮಂಡ್ ಸ್ಯೂಟ್"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"ಹಾಟ್ ಸ್ಪ್ರಿಂಗ್ಸ್"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"ಕಪ್ಪು ಬಣ್ಣದ ಸಾರ್ವಜನಿಕ ಮರುಬಳಕೆಯ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"ವೀಲ್‌ಚೇರ್ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"ಆಂಕರ್"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"ಎಚ್ಚರಿಕೆ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"ಹೈ ವೋಲ್ಟೇಜ್ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"ಮಧ್ಯಮ ಬಿಳಿ ಬಣ್ಣದ ವೃತ್ತ"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"ಮಧ್ಯಮ ಕಪ್ಪು ಬಣ್ಣದ ವೃತ್ತ"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"ಸಾಕರ್ ಬಾಲ್"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"ಬೇಸ್‌ಬಾಲ್"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"ಹಿಮವಿಲ್ಲದ ಸ್ನೋಮ್ಯಾನ್"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"ಮೋಡದ ಮರೆಯಲ್ಲಿ ಸೂರ್ಯ"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"ಆಪ್ಯೂಕಸ್"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"ಪ್ರವೇಶವಿಲ್ಲ"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"ಚರ್ಚ್"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"ಕಾರಂಜಿ"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"ಕುಳಿಯಲ್ಲಿ ಧ್ವಜ"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"ಹಾಯಿದೋಣಿ"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"ಟೆಂಟ್"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"ಇಂಧನ ಪಂಪ್"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"ಕಪ್ಪು ಕತ್ತರಿ"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"ಗಾಢ ಬಿಳಿ ಬಣ್ಣದ ಟಿಕ್ ಗುರುತು"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"ಏರ್‌ಪ್ಲೇನ್"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"ಎನ್ವಲಪ್"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"ಎತ್ತಿಹಿಡಿದ ಬಿಗಿಮುಷ್ಟಿ"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"ಮೇಲೆತ್ತಿದ ಕೈ"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"ವಿಜಯದ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"ಪೆನ್ಸಿಲ್‌"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"ಕಪ್ಪು ಮುಳ್ಳು"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"ಗಾಢವಾದ ಟಿಕ್ ಗುರುತು"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"ಗಾಢ ಬಣ್ಣದ ಗುಣಾಕಾರ x"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"ಬೆಳಕುಗಳು"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"ಎಂಟು ಗೆರೆಗಳುಳ್ಳ ನಕ್ಷತ್ರ"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"ಎಂಟು ಬಿಂದುಗಳುಳ್ಳ ಕಪ್ಪು ನಕ್ಷತ್ರ"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"ಸ್ನೋಫ್ಲೇಕ್"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"ಸ್ಪಾರ್ಕಲ್"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"ಅಡ್ಡ ಗುರುತು"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"ನಕಾರಾತ್ಮಕ ಚೌಕಾಕೃತ ಅಡ್ಡ ಗುರುತು"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"ಕಪ್ಪು ಬಣ್ಣದ ಪ್ರಶ್ನೆ ಗುರುತು ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"ಬಿಳಿ ಬಣ್ಣದ ಪ್ರಶ್ನೆ ಗುರುತು ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"ಬಿಳಿ ಬಣ್ಣದ ಆಶ್ಚರ್ಯಸೂಚಕ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"ಗಾಢ ಬಣ್ಣದ ಆಶ್ಚರ್ಯಸೂಚಕ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"ಗಾಢ ಕಪ್ಪಗಿನ ಹೃದಯದ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"ಗಾಢ ಬಣ್ಣದ ಸಂಕಲನ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"ಗಾಢ ಬಣ್ಣದ ವ್ಯವಕಲನ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"ಗಾಢ ಬಣ್ಣದ ಭಾಗಾಕಾರ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"ಕಪ್ಪು ಬಣ್ಣದ ಎಡದಿಕ್ಕಿನ ಬಾಣ"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"ಸುರುಳಿ ಕುಣಿಕೆ"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"ಎರಡು ಸುರುಳಿ ಕುಣಿಕೆ"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"ಬಲಕ್ಕೆ ಸೂಚಿಸುತ್ತಾ ಮೇಲಕ್ಕೆ ಬಾಗುವ ಬಾಣ"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"ಬಲಕ್ಕೆ ಸೂಚಿಸುತ್ತಾ ಕೆಳಮುಖವಾಗಿ ಬಾಗಿರುವ ಬಾಣ"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"ಬಲದಿಕ್ಕಿನ ಕಪ್ಪು ಬಣ್ಣದ ಬಾಣ"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"ಮೇಲ್ಮುಖವಾದ ಕಪ್ಪು ಬಣ್ಣದ ಬಾಣ"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"ಕೆಳಮುಖವಾದ ಕಪ್ಪು ಬಣ್ಣದ ಬಾಣ"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"ಕಪ್ಪು ಬಣ್ಣದ ದೊಡ್ಡ ಚೌಕ"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"ಬಿಳಿ ಬಣ್ಣದ ದೊಡ್ಡ ಚೌಕ"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"ಬಿಳಿ ಬಣ್ಣದ ಮಧ್ಯಮ ಚೌಕ"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"ದೊಡ್ಡ ಗಾತ್ರದ ವೃತ್ತ"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"ವೇವಿ ಡ್ಯಾಶ್"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"ಭಾಗ ಪರ್ಯಾಯ ಗುರುತು"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"ವೃತ್ತಾಕಾರದ ಈಡಿಯೋಗ್ರಾಫ್ ಅಭಿನಂದನೆ"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"ವೃತ್ತಾಕಾರದ ಈಡಿಯೋಗ್ರಾಫ್ ರಹಸ್ಯ"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"ಮಹ್ಜಾಂಗ್ ಟೈಲ್ ಕೆಂಪು ಡ್ರ್ಯಾಗನ್"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"ಪ್ಲೇಯಿಂಗ್ ಕಾರ್ಡ್ ಬ್ಲ್ಯಾಕ್ ಜೋಕರ್"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"ರಕ್ತದ ಗುಂಪು A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"ರಕ್ತದ ಗುಂಪು B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"ರಕ್ತದ ಗುಂಪು O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"ವಾಹನ ನಿಲುಗಡೆ ಸ್ಥಳ"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"ರಕ್ತದ ಗುಂಪು AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"ಚೌಕಾಕಾರದ CL ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"ಚೌಕಾಕಾರದ ಕೂಲ್ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"ಚೌಕಾಕಾರದ ಉಚಿತ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"ಚೌಕಾಕಾರದ ID"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"ಚೌಕಾಕಾರದ ಹೊಸ"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"ಚೌಕಾಕಾರದ N G"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"ಚೌಕಾಕಾರದ ಸರಿ"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"ಚೌಕಾಕಾರದ SOS"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"ಆಶ್ಚರ್ಯಕರ ಚಿಹ್ನೆಯಿಂದ ಚೌಕಾಕೃತ"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"ಚೌಕಾಕಾರದ ವಿರುದ್ಧ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"ಚೌಕಾಕಾರದ ಕಟಕಾನಾ ಇಲ್ಲಿ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"ಚೌಕಾಕಾರದ ಕಟಕಾನಾ ಸೇವಾ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"ಚೌಕಾಕಾರದ ಈಡಿಯೋಗ್ರಾಫ್ ಚಾರ್ಜ್-ಮುಕ್ತ"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"ಚೌಕಾಕೃತ ಈಡಿಯೋಗ್ರಾಫ್ ಕಾಯ್ದಿರಿಸಿದ-ಆಸನ"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"ಚೌಕಾಕೃತ ಈಡಿಯೋಗ್ರಾಫ್ ನಿಷೇಧ"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"ಚೌಕಾಕೃತ ಈಡಿಯೋಗ್ರಾಫ್ ಖಾಲಿಹುದ್ದೆ"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"ಚೌಕಾಕೃತ ಈಡಿಯೋಗ್ರಾಫ್ ಸಮ್ಮತಿ"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"ಚೌಕಾಕೃತ ಈಡಿಯೋಗ್ರಾಫ್ ಸಂಪೂರ್ಣ ಆಕ್ಯುಪೆನ್ಸಿ"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"ಚೌಕಾಕಾರದ ಈಡಿಯೋಗ್ರಾಫ್ ಪಾವತಿ"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"ಚೌಕಾಕೃತ ಈಡಿಯೋಗ್ರಾಫ್ ಮಾಸಿಕ"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"ಚೌಕಾಕೃತ ಈಡಿಯೋಗ್ರಾಫ್ ಅಪ್ಲಿಕೇಶನ್"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"ಚೌಕಾಕೃತ ಈಡಿಯೋಗ್ರಾಫ್ ರಿಯಾಯಿತಿ"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"ಚೌಕಾಕೃತ ವ್ಯಾಪಾರದ ಈಡಿಯೋಗ್ರಾಫ್"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"ವೃತ್ತಾಕಾರದ ಈಡಿಯೋಗ್ರಾಫ್ ಪ್ರಯೋಜನ"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"ವೃತ್ತಾಕಾರದ ಈಡಿಯೋಗ್ರಾಫ್ ಸಮ್ಮತಿ"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"ಸೈಕ್ಲೋನ್"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"ಮಸುಕು"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"ಮುಚ್ಚಿದ ಛತ್ರಿ"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"ನಕ್ಷತ್ರಗಳಿಂದ ತುಂಬಿದ ರಾತ್ರಿ"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"ಪರ್ವತಗಳ ತಪ್ಪಲಿನಲ್ಲಿ ಸೂರ್ಯೋದಯ"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"ಸೂರ್ಯೋದಯ"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"ಮುಸ್ಸಂಜೆಯ ನಗರವೈಭವ"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"ಕಟ್ಟಡಗಳ ನಡುವೆ ಸೂರ್ಯಾಸ್ತ"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"ಕಾಮನಬಿಲ್ಲು"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"ರಾತ್ರಿಯಲ್ಲಿ ಸೇತುವೆ ನೋಟ"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"ನೀರಿನ ಅಲೆಗಳು"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"ಅಗ್ನಿಪರ್ವತ"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"ಕ್ಷೀರಪಥ"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"ಅರ್ಥ್ ಗ್ಲೋಬ್ ಯೂರೋಪ್-ಆಫ್ರಿಕಾ"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"ಅರ್ಥ್ ಗ್ಲೋಬ್ ಅಮೆರಿಕಾಸ್"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"ಅರ್ಥ್ ಗ್ಲೋಬ್ ಎಷ್ಯಾ-ಆಸ್ಟ್ರೇಲಿಯಾ"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"ಮೆರಿಡಿಯನ್‌ಗಳಿಂದ ಕೂಡಿದ ಗ್ಲೋಬ್"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"ಹುಣ್ಣಿಮೆಯ ಚಂದ್ರ"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"ಅರ್ಧಚಂದ್ರದ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"ಮೊದಲ ಭಾಗದ ಚಂದ್ರನ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"ಮುಂದಕ್ಕೆ ಉಬ್ಬಿದ ಚಂದ್ರನ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"ಪೂರ್ಣ ಚಂದ್ರ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"ಕ್ಷೀಣಿಸುವ ಚಂದ್ರನ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"ಕೊನೆಯ ಭಾಗದ ಚಂದ್ರನ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"ಕ್ಷೀಣಿಸುತ್ತಿರುವ ಅರ್ಧಚಂದ್ರನ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"ಅರ್ಧಚಂದ್ರ"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"ಮುಖವಿರುವ ಚಂದ್ರಾಕೃತಿ"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"ಮುಖವಿರುವ ಹುಣ್ಣಿಮೆ ಚಂದ್ರನ ಮೊದಲ ಭಾಗ"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"ಮುಖವಿರುವ ಹುಣ್ಣಿಮೆ ಚಂದ್ರನ ಕೊನೆಯ ಭಾಗ"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"ಮುಖವಿರುವ ಪೂರ್ಣ ಚಂದ್ರ"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"ಮುಖವುಳ್ಳ ಸೂರ್ಯನ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"ಬೆಳಗುವ ನಕ್ಷತ್ರ"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"ಶೂಟಿಂಗ್ ಸ್ಟಾರ್"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"ಚೆಸ್ಟ್‌ನಟ್"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"ಮೊಳಕೆ"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"ನಿತ್ಯಹರಿದ್ವರ್ಣದಿಂದ ಕೂಡಿದ ಮರ"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"ಎಲೆ ಉದುರುವ ಮರ"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"ತಾಳೆ ಮರ"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"ಪಾಪಾಸು ಕಳ್ಳಿ"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"ಟುಲಿಪ್"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"ಚೆರ್ರಿ ಬ್ಲಾಸಮ್"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"ಗುಲಾಬಿ"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"ದಾಸವಾಳ"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"ಸೂರ್ಯಕಾಂತಿ‌"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"ಬ್ಲಾಸಮ್"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"ಸುಲಿದ ಮೆಕ್ಕೆ ಜೋಳ"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"ಭತ್ತದ ತೆನೆ"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"ಮೂಲಿಕೆ"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"ನಾಲ್ಕು ಎಲೆಯ ಮೂರೆಲೆ ಗಿಡ"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"ಮ್ಯಾಪಲ್ ಲೀಫ್"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"ಉದುರಿರುವ ಎಲೆ"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"ಗಾಳಿಯಲ್ಲಿ ತೇಲುತ್ತಿರುವ ಎಲೆ"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"ಅಣಬೆ"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"ಟೊಮ್ಯಾಟೊ"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"ಬದನೆಕಾಯಿ"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"ದ್ರಾಕ್ಷಿ"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"ಕರಬೂಜ ಹಣ್ಣು"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"ಕಲ್ಲಂಗಡಿ ಹಣ್ಣು"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"ಕಿತ್ತಳೆ ಹಣ್ಣು"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"ನಿಂಬೆ"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"ಬಾಳೆಹಣ್ಣು"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"ಅನಾನಾಸ್ ಹಣ್ಣು"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"ಕೆಂಪು ಸೇಬು"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"ಹಸಿರು ಸೇಬು"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"ಪೇರು ಹಣ್ಣು"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"ಪೀಚ್‌ ಹಣ್ಣು"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"ಚೆರ್ರಿಗಳು"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"ಸ್ಟ್ರಾಬೆರಿ"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"ಹ್ಯಾಮ್‌ಬರ್ಗರ್"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"ಪಿಜ್ಜಾ ತುಂಡು"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"ಮೂಳೆ ಮಾಂಸ"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"ಕೋಳಿಯ ಕಾಲುಮೂಳೆ ಮಾಂಸ"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"ರೈಸ್ ಕ್ರ್ಯಾಕರ್"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"ಅನ್ನದ ಮುದ್ದೆ"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"ಬೇಯಿಸಿದ ಅನ್ನ"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"ಅನ್ನ ಮತ್ತು ಮೇಲೋಗರ"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"ಆವಿ ಬಟ್ಟಲು"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"ಸ್ಪಾಗೆಟ್ಟಿ"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"ಬ್ರೆಡ್"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"ಫ್ರೆಂಚ್ ಫ್ರೈಸ್"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"ಹುರಿದ ಸಿಹಿ ಆಲೂಗೆಡ್ಡೆ"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"ಡ್ಯಾಂಗೊ"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"ಓಡನ್"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"ಸುಶಿ"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"ಹುರಿದ ಸೀಗಡಿ"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"ಸುಳಿಯ ವಿನ್ಯಾಸದ ಫಿಶ್ ಕೇಕ್"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"ಮೃದು ಐಸ್ ಕ್ರೀಂ"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"ಶೇವಡ್ ಐಸ್ ಕ್ರೀಂ"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"ಐಸ್ ಕ್ರೀಂ"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"ಡೋನಟ್"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"ಕುಕಿ"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"ಚಾಕೊಲೇಟ್ ಬಾರ್"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"ಕ್ಯಾಂಡಿ"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lollipop"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"ಕಸ್ಟರ್ಡ್"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"ಜೇನಿನ ಮಡಕೆ"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"ಶಾರ್ಟ್‌ಕೇಕ್"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"ಬೆಂಟ್ ಬಾಕ್ಸ್"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"ಆಹಾರದ ಡಬ್ಬಿ"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"ಅಡಿಗೆ"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"ಫೋರ್ಕ್ ಮತ್ತು ಚಾಕು"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"ಹಿಡಿ ಇಲ್ಲದ ಟೀಕಪ್"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"ಸೇಕ್ ಬಾಟಲ್ ಮತ್ತು ಕಪ್"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"ವೈನ್ ಗ್ಲಾಸ್"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"ಕಾಕ್‌ಟೇಲ್ ಗ್ಲಾಸ್"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"ಉಷ್ಣವಲಯದ ಪಾನೀಯ"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"ಬಿಯರ್ ಮಗ್"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"ತಾಗಿಸುತ್ತಿರುವ ಬಿಯರ್ ಮಗ್‌ಗಳು"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"ಬೇಬಿ ಬಾಟಲ್"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"ರಿಬ್ಬನ್"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"ಸುತ್ತಿದ ಉಡುಗೊರೆ"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"ಹುಟ್ಟುಹಬ್ಬದ ಕೇಕ್"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"ಜಾಕ್-ಓ-ಲಾಟೀನು"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"ಕ್ರಿಸ್‌ಮಸ್ ಟ್ರೀ"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"ಫಾದರ್ ಕ್ರಿಸ್‌ಮಸ್"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"ಸುಡುಮದ್ದುಗಳು"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"ಸುಡುಮದ್ದು ಚಿತ್ತಾರ"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"ಬಲೂನ್"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"ಪಾರ್ಟಿ ಪಾಪ್ಪರ್"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"ಬಣ್ಣದ ಚೆಂಡು"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"ಟ್ಯಾನಾಬಾಟಾ ಟ್ರೀ"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"ಅಡ್ಡಲಾದ ಧ್ವಜಗಳು"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"ಪೈನ್ ಅಲಂಕಾರ"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"ಜಾಪನೀಸ್ ಗೊಂಬೆಗಳು"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"ಕಾರ್ಪ್ ಪತಾಕೆ"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"ಗಾಳಿಯ ಸಾಲುಗಂಟೆ"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"ಚಂದ್ರ ವೀಕ್ಷಣೆ ಸಮಾರಂಭ"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"ಶಾಲೆಯ ಸಣ್ಣ ಚೀಲ"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"ಪದವಿ ಕ್ಯಾಪ್"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"ಕರೋಸೆಲ್ ಕುದುರೆ"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"ಫೆರ್ರಿಸ್ ಚಕ್ರ"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"ರೋಲರ್ ಕೋಸ್ಟರ್"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"ಮೀನಿನ ಗಾಳ ಮತ್ತು ಮೀನು"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"ಮೈಕ್ರೋಫೋನ್‌"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"ಚಲನಚಿತ್ರದ ಕ್ಯಾಮರಾ"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"ಚಲನಚಿತ್ರ"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"ಹೆಡ್‌ಫೋನ್"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"ಕಲಾವಿದರ ಪ್ಯಾಲೆಟ್"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"ಮೇಲಿನ ಟೊಪ್ಪಿಗೆ"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"ಸರ್ಕಸ್ ಟೆಂಟ್"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"ಟಿಕೆಟ್"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"ಕ್ಲಾಪ್ಪರ್ ಬೋರ್ಡ್"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"ಪ್ರದರ್ಶನ ಕಲೆಗಳು"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"ವಿಡಿಯೋ ಗೇಮ್"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"ನೇರ ಹೊಡೆತ"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"ಸ್ಲಾಟ್ ಯಂತ್ರ"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"ಬಿಲಿಯರ್ಡ್ಸ್"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"ಗೇಮ್ ಡೈ"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"ಬೌಲಿಂಗ್"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"ಫ್ಲವರ್ ಪ್ಲೇಯಿಂಗ್ ಕಾರ್ಡ್ಸ್"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"ಮ್ಯೂಸಿಕಲ್ ನೋಟ್"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"ಬಹು ಮ್ಯೂಸಿಕಲ್ ನೋಟ್ಸ್"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"ಸ್ಯಾಕ್ಸೋಫೋನ್"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"ಗಿಟಾರು"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"ಮ್ಯೂಸಿಕಲ್ ಕೀಬೋರ್ಡ್"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"ತುತ್ತೂರಿ"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"ಪಿಟೀಲು"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"ಮ್ಯೂಸಿಕಲ್ ಸ್ಕೋರ್"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"ತೂಗುಪಟ್ಟಿ ಇರುವ ರನ್ನಿಂಗ್ ಶರ್ಟ್"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"ಟೆನಿಸ್ ರಾಕೆಟ್ ಮತ್ತು ಚೆಂಡು"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"ಸ್ಕೀ ಮತ್ತು ಸ್ಕೀ ಬೂಟ್"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"ಬ್ಯಾಸ್ಕೆಟ್‌ಬಾಲ್ ಮತ್ತು ಹುಪ್"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"ಚೌಕಗಳಿರುವ ಧ್ವಜ"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"ಸ್ನೋಬೋರ್ಡರ್"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"ರನ್ನರ್"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"ಕಡಲಲೆ ಸವಾರಿ ಕ್ರೀಡಾಪಟು"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"ಟ್ರೋಫಿ"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"ಕುದುರೆ ರೇಸಿಂಗ್"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"ಅಮೆರಿಕನ್‌ ಫುಟ್‌‌ಬಾಲ್‌"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"ರಗ್ಬಿ ಫುಟ್‌ಬಾಲ್‌"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"ಈಜುಗಾರ"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"ಮನೆಯ ಕಟ್ಟಡ"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"ತೋಟದ ಮನೆ"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"ಕಚೇರಿ ಕಟ್ಟಡ"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"ಜಾಪನೀಸ್ ಅಂಚೆ ಕಚೇರಿ"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"ಯೂರೋಪಿಯನ್ ಅಂಚೆ ಕಚೇರಿ"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"ಆಸ್ಪತ್ರೆ"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"ಬ್ಯಾಂಕ್"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"ಸ್ವಯಂಚಾಲಿತ ಹಣ ಪಾವತಿ ಯಂತ್ರ"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"ಹೋಟೆಲ್‌"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"ಲವ್ ಹೋಟೆಲ್"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"ಕನ್ವೀನಿಯನ್ಸ್ ಸ್ಟೋರ್"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"ಶಾಲೆ"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"ಡಿಪಾರ್ಟ್‌ಮೆಂಟ್ ಸ್ಟೋರ್"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"ಕಾರ್ಖಾನೆ"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"ಇಝಾಕಾಯ ಲಾಟೀನು"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"ಜಪಾನೀಸ್ ಕೋಟೆ"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"ಯುರೋಪಿಯನ್ ಕೋಟೆ"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"ಇಲಿ"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"ಇಲಿ"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"ಎತ್ತು"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"ಎಮ್ಮೆ"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"ಹಸು"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"ಚಿರತೆ"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"ಮೊಲ"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"ಬೆಕ್ಕು"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"ಡ್ರ್ಯಾಗನ್‌"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"ಮೊಸಳೆ"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"ತಿಮಿಂಗಿಲ"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"ಬಸವನ ಹುಳು"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"ಹಾವು"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"ಕುದುರೆ"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"ಠಗರು"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"ಮೇಕೆ"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"ಕುರಿ"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"ಕೋತಿ"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"ಬಿಳಿ ಹುಂಜ"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"ಕೋಳಿಮರಿ"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"ನಾಯಿ"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"ಹಂದಿ"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"ಗಂಡು ಹಂದಿ"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"ಆನೆ"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"ಆಕ್ಟೊಪಸ್"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"ಶಂಖ"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"ಕೀಟ"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"ಇರುವೆ"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"ಜೇನುನೊಣ"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"ಹೆಣ್ಣು ಜೀರುಂಡೆ"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"ಮೀನು"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"ಉಷ್ಣವಲಯದ ಮೀನು"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"ಬ್ಲೋಫಿಶ್‌‌"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"ಆಮೆ"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"ಕೋಳಿಮರಿ"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"ಸಣ್ಣ ಕೋಳಿಮರಿ"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"ಎದುರುಗಾಣುತ್ತಿರುವ ಕೋಳಿಮರಿ"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"ಪಕ್ಷಿ"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"ಪೆಂಗ್ವಿನ್"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"ಕೋಲಾಲ"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"ಪೂಡ್ಲ್‌"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"ಸವಾರಿ ಒಂಟೆ"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"ಬ್ಯಾಕ್ಟ್ರಿಯನ್ ಒಂಟೆ"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"ಡಾಲ್ಫಿನ್"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"ಇಲಿ ಮುಖ"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"ಹಸು ಮುಖ"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"ಹುಲಿ ಮುಖ"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"ಮೊಲದ ಮುಖ"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"ಬೆಕ್ಕಿನ ಮುಖ"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"ಡ್ರ್ಯಾಗನ್ ಮುಖ"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"ನೀರನ್ನು ಚುರಕಿ ಹೊಡೆಯುವ ತಿಮಿಂಗಿಲ"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"ಕುದುರೆ ಮುಖ"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"ಕೋತಿಯ ಮುಖ"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"ನಾಯಿಯ ಮುಖ"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"ಹಂದಿ ಮುಖ"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"ಕಪ್ಪೆ ಮುಖ"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"ಹ್ಯಾಮ್‌ಸ್ಟರ್ ಮುಖ"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"ತೋಳದ ಮುಖ"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"ಕರಡಿ ಮುಖ"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"ಪಾಂಡಾ ಮುಖ"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"ಹಂದಿಯ ಮೂಗು"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"ಹೆಜ್ಜೆ ಗುರುತುಗಳು"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"ಕಣ್ಣುಗಳು"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"ಕಿವಿ"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"ಮೂಗು"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"ಬಾಯಿ"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"ನಾಲಿಗೆ"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"ಮೇಲ್ಮುಖದ ಕೈಬೆರಳು"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"ಕೆಳಮುಖದ ಕೈಬೆರಳು"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"ಎಡಕ್ಕೆ ಸೂಚಿಸುವ ಕೈಬೆರಳು"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"ಬಲಕ್ಕೆ ಸೂಚಿಸುವ ಕೈಬೆರಳು"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"ಬಿಗಿಮುಷ್ಠಿಯ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"ಬೀಸುತ್ತಿರುವ ಕೈ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"ಸರಿ ಸೂಚನೆಯ ಕೈಬೆರಳಿನ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"ಒಪ್ಪಿಗೆ ಸೂಚನೆಯ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"ಅಸಮ್ಮತಿ ಸೂಚನೆಯ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"ಚಪ್ಪಾಳೆ ಕೈಗಳ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"ತೆರೆದ ಕೈಗಳ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"ಕಿರೀಟ"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"ಹೆಂಗಸರ ಟೋಪಿ"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"ಕನ್ನಡಕ"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"ಕತ್ತಿನ ಟೈ"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"ಟಿ-ಶರ್ಟ್"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"ಜೀನ್ಸ್"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"ಉಡುಪು"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"ಸೊಂಟಪಟ್ಟಿ ಕಟ್ಟಿದ ಉಡುಗೆ"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"ಹೆಂಗಸರ ಒಳ ಉಡುಪು"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"ಹೆಂಗಸರ ಬಟ್ಟೆ"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"ಪರ್ಸ್"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"ಕೈಚೀಲ"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"ಕೈಚೀಲ"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"ಪುರುಷರ ಶೂ"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"ಅಥ್ಲೆಟಿಕ್ ಶೂ"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"ಎತ್ತರದ-ಹಿಮ್ಮಡಿಯ ಶೂ"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"ಸ್ತ್ರೀಯರ ಚಪ್ಪಲಿ"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"ಸ್ತ್ರೀಯರ ಬೂಟು"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"ಹೆಜ್ಜೆಗುರುತುಗಳು"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"ನೆರಳುಚಿತ್ರದಲ್ಲಿ ಪ್ರತಿಮೆ"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"ನೆರಳುಚಿತ್ರದಲ್ಲಿ ಪ್ರತಿಮೆಗಳು"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"ಹುಡುಗ"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"ಹುಡುಗಿ"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"ಪುರುಷ"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"ಸ್ತ್ರೀ"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"ಕುಟುಂಬ"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"ಕೈ ಹಿಡಿದುಕೊಂಡಿರುವ ಪುರುಷ ಮತ್ತು ಸ್ತ್ರೀ"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"ಕೈ ಹಿಡಿದುಕೊಂಡಿರುವ ಇಬ್ಬರು ಪುರುಷರು"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"ಕೈ ಹಿಡಿದಿರುವ ಇಬ್ಬರು ಸ್ತ್ರೀಯರು"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"ಪೊಲೀಸ್ ಅಧಿಕಾರಿ"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"ಬನ್ನಿ ಕಿವಿಗಳನ್ನು ಧರಿಸಿರುವ ಸ್ತ್ರೀ"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"ಮುಸುಕು ಹೊದ್ದಿರುವ ಸ್ತ್ರೀ"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"ಹೊಂಬಣ್ಣದ ಕೂದಲುಳ್ಳ ವ್ಯಕ್ತಿ"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"ಗುವ ಪೈ ಮಾವೋ ಧರಿಸಿರುವ ವ್ಯಕ್ತಿ"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"ಪೇಟ ತೊಟ್ಟಿರುವ ವ್ಯಕ್ತಿ"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"ವೃದ್ಧ"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"ವೃದ್ಧೆ"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"ಮಗು"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"ಕಟ್ಟಡ ನಿರ್ಮಾಣ ಕಾರ್ಮಿಕ"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"ರಾಜಕುಮಾರಿ"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"ಜಾಪನೀಸ್ ರಾಕ್ಷಸ"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"ಜಾಪನೀಸ್ ಗಾಬ್ಲಿನ್"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"ಪ್ರೇತ"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"ಪುಟ್ಟ ರಾಜಕುಮಾರಿ"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"ಅನ್ಯಲೋಕ ಜೀವಿ"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"ಏಲಿಯನ್ ದೈತ್ಯ"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"ದೆವ್ವದ ಕೂಸು"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"ತಲೆಬುರುಡೆ"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"ಮಾಹಿತಿ ಡೆಸ್ಕ್ ವ್ಯಕ್ತಿ"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"ಕಾಪುದಳದ ವ್ಯಕ್ತಿ"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"ನೃತ್ಯಗಾರ್ತಿ"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"ಲಿಪ್‌ಸ್ಟಿಕ್"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"ಉಗುರು ಬಣ್ಣ"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"ಮುಖ ಮರ್ಧನ"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"ಕ್ಷೌರ"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"ಬಾರ್ಬರ್ ಪೋಲ್"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"ಸಿರಿಂಜ್"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"ಮಾತ್ರೆ"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"ಮುತ್ತಿನ ಗುರುತು"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"ಪ್ರೇಮ ಪತ್ರ"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"ಉಂಗುರ"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"ವಜ್ರ"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"ಮುತ್ತು"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"ಪುಷ್ಪಗುಚ್ಛ"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"ಹೃದಯ ಜೋಡಿ"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"ವಿವಾಹ"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"ಹೃದಯ ಬಡಿತ"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"ಒಡೆದ ಹೃದಯ"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"ಎರಡು ಹೃದಯಗಳು"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"ಮಿನುಗುತ್ತಿರುವ ಹೃದಯ"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"ಉಬ್ಬುತ್ತಿರುವ ಹೃದಯ"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"ಬಾಣದ ಹೃದಯ"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"ನೀಲಿ ಬಣ್ಣದ ಹೃದಯ"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"ಹಸಿರು ಬಣ್ಣದ ಹೃದಯ"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"ಹಳದಿ ಬಣ್ಣದ ಹೃದಯ"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"ನೇರಳೆ ಬಣ್ಣದ ಹೃದಯ"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"ರಿಬ್ಬನ್‌ನಿಂದ ಸುತ್ತುವರೆದಿರುವ ಹೃದಯ"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"ಗಿರಕಿಹೊಡೆಯುತ್ತಿರುವ ಹೃದಯಗಳು"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"ಹೃದಯಾಲಂಕಾರ"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"ಚುಕ್ಕೆ ಇರುವ ವಜ್ರಾಕಾರ"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"ಎಲೆಕ್ಟ್ರಿಕ್ ಲೈಟ್ ಬಲ್ಬ್"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"ಕೋಪದ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"ಬಾಂಬ್"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"ಮಲಗುವ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"ಘರ್ಷಣೆಯ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"ಚಿಮ್ಮುವ ಬೆವರಿನ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"ನೀರಿನ ಹನಿ"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"ಡ್ಯಾಶ್ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"ಪೂ ಪೈಲ್"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"ಬಾಗಿದ ತೋಳು"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"ಡಿಜ್ಜಿ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"ಭಾಷಣದ ಬಲೂನ್"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"ಚಿಂತನಶೀಲ ಬಲೂನ್"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"ಬಿಳಿ ಹೂವು"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"ನೂರು ಅಂಕಗಳ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"ಹಣದ ಚೀಲ"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"ಕರೆನ್ಸಿ ವಿನಿಮಯ"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"ಹೆವಿ ಡಾಲರ್ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"ಯೆನ್ ಚಿಹ್ನೆಯ ಬ್ಯಾಂಕ್‌ನೋಟ್"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"ಡಾಲರ್ ಚಿಹ್ನೆಯ ಬ್ಯಾಂಕ್‌ನೋಟ್"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"ಯೂರೋ ಚಿಹ್ನೆಯ ಬ್ಯಾಂಕ್‌ನೋಟ್"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"ಪೌಂಡ್ ಚಿಹ್ನೆಯ ಬ್ಯಾಂಕ್‌ನೋಟ್"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"ರೆಕ್ಕೆ ಇರುವ ಹಣ"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"ಮೇಲಕ್ಕೇರುತ್ತಿರುವ ಪ್ರವೃತ್ತಿಯ ಚಾರ್ಟ್ ಮತ್ತು ಯೆನ್ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"ಆಸನ"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"ಪರ್ಸನಲ್ ಕಂಪ್ಯೂಟರ್"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"ಬ್ರೀಫ್‌ಕೇಸ್"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"ಮಿನಿ ಡಿಸ್ಕ್"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"ಫ್ಲಾಪಿ ಡಿಸ್ಕ್‌"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"ಆಪ್ಟಿಕಲ್‌ ಡಿಸ್ಕ್‌"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"ಡಿವಿಡಿ"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"ಫೈಲ್ ಫೋಲ್ಡರ್"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"ತೆರೆದ ಫೈಲ್ ಫೋಲ್ಡರ್"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"ಮುದುಡಿಕೊಂಡಿರುವ ಪುಟ"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"ಮೇಲ್ಮುಖವಾಗಿರುವ ಪುಟ"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"ಕ್ಯಾಲೆಂಡರ್"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"ಟಿಯರ್-ಆಫ್-ಕ್ಯಾಲೆಂಡರ್"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"ಕಾರ್ಡ್ ಇಂಡೆಕ್ಸ್"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"ಮೇಲಕ್ಕೇರುತ್ತಿರುವ ಪ್ರವೃತ್ತಿಯ ಚಾರ್ಟ್"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"ಕೆಳಗಿಳಿಯುತ್ತಿರುವ ಪ್ರವೃತ್ತಿಯ ಚಾರ್ಟ್"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"ಬಾರ್ ಚಾರ್ಟ್"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"ಕ್ಲಿಪ್‌ಬೋರ್ಡ್"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"ಪುಶ್‌ಪಿನ್"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"ದುಂಡು ಪಿನ್"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"ಕಾಗದದ ಕ್ಲಿಪ್"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"ನೇರ ಅಳತೆಮಾಪಕ"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"ತ್ರಿಕೋನ ಮಾಪಕ"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"ಬುಕ್‌ಮಾರ್ಕ್ ಟ್ಯಾಬ್‌ಗಳು"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"ಲೆಡ್ಜರ್"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"ನೋಟ್‌ಬುಕ್"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"ಅಲಂಕಾರಿಕ ಕವರ್‌ನ ನೋಟ್‌ಬುಕ್"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"ಮುಚ್ಚಿದ ಪುಸ್ತಕ"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"ತೆರೆದ ಪುಸ್ತಕ"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"ಹಸಿರು ಬಣ್ಣದ ಪುಸ್ತಕ"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"ನೀಲಿ ಬಣ್ಣದ ಪುಸ್ತಕ"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"ಕಿತ್ತಳೆ ಬಣ್ಣದ ಪುಸ್ತಕ"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"ಪುಸ್ತಕಗಳು"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"ಹೆಸರಿನ ಬ್ಯಾಡ್ಜ್"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"ಸ್ಕ್ರಾಲ್"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"ಮೆಮೊ"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"ಟೆಲಿಫೋನ್ ರಿಸೀವರ್"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"ಪೇಜರ್"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"ಫ್ಯಾಕ್ಸ್ ಯಂತ್ರ"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"ಉಪಗ್ರಹ ಆಂಟೆನಾ"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"ಸಾರ್ವಜನಿಕ ಧ್ವನಿವರ್ಧಕ"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"ಹರ್ಷೋದ್ಗಾರದ ಧ್ವನಿವರ್ಧಕ"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"ಔಟ್‌ಬಾಕ್ಸ್ ಟ್ರೇ"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"ಇನ್‌ಬಾಕ್ಸ್ ಟ್ರೇ"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"ಪ್ಯಾಕೇಜ್"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"ಇಮೇಲ್ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"ಒಳಬರುವ ಹೊದಿಕೆ"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"ಮೇಲ್ಭಾಗದಲ್ಲಿ ಕೆಳಮುಖ ಬಾಣವಿರುವ ಎನ್ವಲಪ್"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"ಕೆಳಮುಖ ಫ್ಲ್ಯಾಗ್ ಚಿಹ್ನೆ ಇರುವ ಮುಚ್ಚಿದ ಮೇಲ್‌ಬಾಕ್ಸ್"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"ಫ್ಲ್ಯಾಗ್ ಚಿಹ್ನೆ ಮೇಲ್ಮುಖವಾಗಿರುವ ಮುಚ್ಚಿದ ಮೇಲ್‌ಬಾಕ್ಸ್"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"ಫ್ಲ್ಯಾಗ್ ಚಿಹ್ನೆ ಮೇಲ್ಮುಖವಾಗಿರುವ ತೆರೆದ ಮೇಲ್‌ಬಾಕ್ಸ್"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"ಕೆಳಮುಖವಾಗಿರುವ ಫ್ಲ್ಯಾಗ್ ಚಿಹ್ನೆ ತೆರೆದ ಮೇಲ್‌ಬಾಕ್ಸ್"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"ಪೋಸ್ಟ್‌ಬಾಕ್ಸ್"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"ಪೋಸ್ಟ್ ಹಾರ್ನ್"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"ವೃತ್ತಪತ್ರಿಕೆ"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"ಮೊಬೈಲ್‌ ಫೋನ್"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"ಎಡಕ್ಕೆ ಬಲದಿಕ್ಕಿಗೆ ಸೂಚಿಸುವ ಬಾಣದ ಮೊಬೈಲ್ ಫೋನ್"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"ವೈಬ್ರೇಷನ್ ಮೋಡ್"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"ಮೊಬೈಲ್ ಫೋನ್ ಆಫ್"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"ಮೊಬೈಲ್ ಫೋನ್‌ಗಳಿಲ್ಲ"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"ಬಾರ್‌ಗಳಿರುವ ಆಂಟೆನಾ"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"ಕ್ಯಾಮರಾ"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"ವೀಡಿಯೊ ಕ್ಯಾಮರಾ"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"ದೂರದರ್ಶನ"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"ರೇಡಿಯೋ"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"ವೀಡಿಯೊ ಕ್ಯಾಸೆಟ್"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"ಬಲದಿಕ್ಕಿಗೆ ತಿರುಚಿರುವ ಬಾಣಗಳು"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"ಪ್ರದಕ್ಷಿಣಾಕಾರದ ಬಲದಿಕ್ಕು ಮತ್ತು ಎಡದಿಕ್ಕಿನ ಕಡೆಗೆ ತೆರೆದ ವಲಯದ ಬಾಣಗಳು"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"ಒಂದು ಒವರ್‌ಲೇ ಜೊತೆಗೆ ಪ್ರದಕ್ಷಿಣಾಕಾರದ ಬಲದಿಕ್ಕು ಮತ್ತು ಎಡದಿಕ್ಕುಗಳ ಕಡೆಗೆ ತೆರೆದ ವಲಯದ ಬಾಣಗಳು"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"ಪ್ರದಕ್ಷಿಣಾಕಾರವಾಗಿ ಕೆಳಕ್ಕೆ ಮತ್ತು ಮೇಲಕ್ಕೆ ತೆರೆದ ವಲಯದ ಬಾಣಗಳು"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"ಅಪ್ರದಕ್ಷಿಣಾಕಾರವಾಗಿ ಕೆಳಮುಖ ಮತ್ತು ಮೇಲ್ಮುಖವಾಗಿರುವ ತೆರೆದ ವಲಯದ ಬಾಣಗಳು"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"ಕಡಿಮೆ ಹೊಳಪಿನ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"ಹೆಚ್ಚು ಹೊಳಪಿನ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"ರದ್ದು ಸ್ಟ್ರೋಕ್‌ನ ಸ್ಪೀಕರ್"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"ಸ್ಪೀಕರ್‌"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"ಏಕ ಧ್ವನಿ ತರಂಗದ ಸ್ಪೀಕರ್"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"ಮೂರು ಧ್ವನಿ ತರಂಗಗಳ ಸ್ಪೀಕರ್"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"ಬ್ಯಾಟರಿ"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"ಎಲೆಕ್ಟ್ರಿಕ್ ಪ್ಲಗ್"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"ಎಡಕ್ಕೆ ತಿರುಗಿದ ಬೂದುಗನ್ನಡಿ"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"ಬಲಕ್ಕೆ ತಿರುಗಿದ ಬೂದುಗನ್ನಡಿ"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"ಇಂಕ್ ಪೆನ್‌ನಿಂದ ಲಾಕ್"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"ಕೀಲಿಯಿಂದ ಮುಚ್ಚಿದ ಲಾಕ್"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"ಕೀಲಿ"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"ಲಾಕ್"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"ತೆರೆದ ಲಾಕ್"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"ಬೆಲ್"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"ರದ್ದು ಸ್ಟ್ರೋಕ್ ಬೆಲ್"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"ಬುಕ್‌ಮಾರ್ಕ್‌"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"ಲಿಂಕ್ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"ರೇಡಿಯೋ ಬಟನ್"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"ಮೇಲೆ ಎಡದಿಕ್ಕಿನ ಕಡೆಗಿನ ಬಾಣವನ್ನು ಹೊಂದಿರುವ ಹಿಂದಕ್ಕೆ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"ಮೇಲೆ ಎಡದಿಕ್ಕಿನ ಕಡೆಗೆ ಬಾಣವಿರುವ ಅಂತ್ಯದ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"ಮೇಲೆ ಎಡ ಮತ್ತು ಬಲ ಬಾಣವಿರುವ ಆಶ್ಚರ್ಯಕರ ಚಿಹ್ನೆಯನ್ನು ಹೊಂದಿರುವ ಆನ್ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"ಮೇಲೆ ಬಲದಿಕ್ಕಿನ ಕಡೆಗಿನ ಬಾಣವಿರುವ ಶೀಘ್ರದಲ್ಲಿಯೇ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"ಮೇಲೆ ಮೇಲ್ಮುಖ ಬಾಣದ ಗುರುತು ಹೊಂದಿರುವ ಮೇಲಕ್ಕೆ ಚಿಹ್ನೆ"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"ಹದಿನೆಂಟು ಚಿಹ್ನೆಯ ಅಡಿಯಲ್ಲಿ ಯಾವುದೂ ಇಲ್ಲ"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"ಕ್ಯೀಕ್ಯಾಪ್ ಟೆನ್"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"ಲ್ಯಾಟಿನ್ ದೊಡ್ಡಕ್ಷರಗಳಿಗಾಗಿ ಇನ್‌ಪುಟ್ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"ಲ್ಯಾಟಿನ್ ಸಣ್ಣಕ್ಷರಗಳಿಗಾಗಿ ಇನ್‌ಪುಟ್ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"ಸಂಖ್ಯೆಗಳಿಗಾಗಿ ಇನ್‌ಪುಟ್ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"ಸಂಕೇತಗಳಿಗಾಗಿ ಇನ್‌ಪುಟ್ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"ಲ್ಯಾಟಿನ್ ಅಕ್ಷರಗಳಿಗೆ ಇನ್‌ಪುಟ್ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"ಬೆಂಕಿ"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"ಎಲೆಕ್ಟ್ರಿಕ್ ಟಾರ್ಚ್"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"ವ್ರೆಂಚ್"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"ಸುತ್ತಿಗೆ"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"ನಟ್ ಮತ್ತು ಬೋಲ್ಟ್"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"ಚೂರಿ"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"ಪಿಸ್ತೂಲು"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"ಸೂಕ್ಷ್ಮ ದರ್ಶಕ"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"ಟೆಲಿಸ್ಕೋಪ್"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"ಕ್ರಿಸ್ಟಲ್ ಬಾಲ್"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"ಮಧ್ಯ ಬಿಂದು ಸೇರಿದಂತೆ ಆರು ಬಿಂದುಗಳುಳ್ಳ ನಕ್ಷತ್ರ"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"ಹೊಸಬರಿಗೆ ಜಾಪನೀಸ್ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"ಟ್ರಿಡೆಂಟ್ ಲಾಂಛನ"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"ಕಪ್ಪು ಚೌಕದ ಬಟನ್"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"ಬಿಳಿ ಚೌಕದ ಬಟನ್"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"ದೊಡ್ಡ ಕೆಂಪು ಬಣ್ಣದ ವೃತ್ತ"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"ದೊಡ್ಡ ನೀಲಿ ಬಣ್ಣದ ವೃತ್ತ"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"ದೊಡ್ಡ ಕಿತ್ತಳೆ ಬಣ್ಣದ ವಜ್ರ"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"ದೊಡ್ಡ ನೀಲಿ ಬಣ್ಣದ ವಜ್ರ"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"ಸಣ್ಣ ಕಿತ್ತಳೆ ಬಣ್ಣದ ವಜ್ರ"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"ಸಣ್ಣ ನೀಲಿ ಬಣ್ಣದ ವಜ್ರ"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"ಮೇಲಕ್ಕೆ ಸೂಚಿಸುವ ಕೆಂಪು ಬಣ್ಣದ ತ್ರಿಕೋನ"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"ಕೆಳಕ್ಕೆ ಸೂಚಿಸುವ ಕೆಂಪು ಬಣ್ಣದ ತ್ರಿಕೋನ"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"ಮೇಲಕ್ಕೆ ಸೂಚಿಸುವ ಕೆಂಪು ಬಣ್ಣದ ತ್ರಿಕೋನ"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"ಕೆಳಕ್ಕೆ ಸೂಚಿಸುವ ಕೆಂಪು ಬಣ್ಣದ ತ್ರಿಕೋನ"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"ಒಂದು ಗಂಟೆಯ ಗಡಿಯಾರ"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"ಎರಡು ಗಂಟೆಯ ಗಡಿಯಾರ"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"ಮೂರು ಗಂಟೆಯ ಗಡಿಯಾರ"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"ನಾಲ್ಕು ಗಂಟೆಯ ಗಡಿಯಾರ"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"ಐದು ಗಂಟೆಯ ಗಡಿಯಾರ"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"ಆರು ಗಂಟೆಯ ಗಡಿಯಾರ"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"ಏಳು ಗಂಟೆಯ ಗಡಿಯಾರ"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"ಎಂಟು ಗಂಟೆಯ ಗಡಿಯಾರ"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"ಒಂಬತ್ತು ಗಂಟೆಯ ಗಡಿಯಾರ"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"ಹತ್ತು ಗಂಟೆಯ ಗಡಿಯಾರ"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"ಹನ್ನೊಂದು ಗಂಟೆಯ ಗಡಿಯಾರ"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"ಹನ್ನೆರಡು ಗಂಟೆಯ ಗಡಿಯಾರ"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"ಒಂದು-ಮೂವತ್ತರ ಗಡಿಯಾರ"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"ಎರಡು-ಮೂವತ್ತರ ಗಡಿಯಾರ"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"ಮೂರು-ಮೂವತ್ತರ ಗಡಿಯಾರ"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"ನಾಲ್ಕು-ಮೂವತ್ತರ ಗಡಿಯಾರ"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"ಐದು-ಮೂವತ್ತರ ಗಡಿಯಾರ"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"ಆರು-ಮೂವತ್ತರ ಗಡಿಯಾರ"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"ಏಳು-ಮೂವತ್ತರ ಗಡಿಯಾರ"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"ಎಂಟು-ಮೂವತ್ತರ ಗಡಿಯಾರ"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"ಒಂಬತ್ತು-ಮೂವತ್ತರ ಗಡಿಯಾರ"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"ಹತ್ತು-ಮೂವತ್ತರ ಗಡಿಯಾರ"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"ಹನ್ನೊಂದು-ಮೂವತ್ತರ ಗಡಿಯಾರ"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"ಹನ್ನೆರಡು-ಮೂವತ್ತರ ಗಡಿಯಾರ"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"ಮೌಂಟ್ ಫುಜಿ"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"ಟೋಕಿಯೋ ಟವರ್"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"ಲಿಬರ್ಟಿ ಪ್ರತಿಮೆ"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"ಜಪಾನ್‌ನ ಸಿಲೋಟ್"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"ಮೋಯೈ"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"ಮಂದಸ್ಮಿತ ಮುಖ"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"ಮಂದಸ್ಮಿತ ಕಣ್ಣುಗಳುಳ್ಳ ನಗುಮುಖ"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"ಸಂತೋಷದ ಕಣ್ಣೀರಿಡುವ ಮುಖ"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"ತೆರೆದ ಬಾಯಿಯ ಮಂದಸ್ಮಿತ ಮುಖ"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"ತೆರೆದ ಬಾಯಿ ಮತ್ತು ನಗು ಕಣ್ಣುಗಳ ಮಂದಸ್ಮಿತ ಮುಖ"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"ತೆರೆದ ಬಾಯಿ ಮತ್ತು ತಣ್ಣನೆಯ ಬೆವರಿನ ಮಂದಸ್ಮಿತ ಮುಖ"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"ತೆರೆದ ಮುಖ ಮತ್ತು ಬಿಗಿಯಾಗಿ ಮುಚ್ಚಿದ ಕಣ್ಣುಗಳ ಮಂದಸ್ಮಿತ ಮುಖ"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"ಹಾಲೋ ಮಂದಸ್ಮಿತ ಮುಖ"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"ಹಾರ್ನ್ಸ್ ಮಂದಸ್ಮಿತ ಮುಖ"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"ಕಣ್ಣು ಮಿಟುಕಿಸುತ್ತಿರುವ ಮುಖ"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"ನಗು ಕಣ್ಣುಗಳ ಮಂದಸ್ಮಿತ ಮುಖ"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"ನಾಲಿಗೆ ಚಪ್ಪರಿಸುತ್ತಿರುವ ಮುಖ"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"ನೆಮ್ಮದಿ ತೋರುವ ಮುಖ"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"ಹೃದಯಾಕಾರದ ಕಣ್ಣುಗಳ ಮಂದಸ್ಮಿತ ಮುಖ"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"ಕನ್ನಡಕ ಹಾಕಿಕೊಂಡ ಮಂದಸ್ಮಿತ ಮುಖ"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"ಆಲಸ್ಯ ಭಾವನೆಯ ಮುಖ"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"ತಟಸ್ಥ ಭಾವನೆಯ ಮುಖ"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"ಭಾವನೆ ಇಲ್ಲದ ಮುಖ"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"ಹಾಸ್ಯಗ್ರಹಿಸದ ಮುಖ"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"ಬೆವರಿನಿಂದ ಕೂಡಿದ ಮುಖ"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"ಚಿಂತಾಕ್ರಾಂತ ಮುಖ"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"ಗೊಂದಲ ಭಾವನೆಯ ಮುಖ"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"ತಲೆಕೆಳಗು ಭಾವನೆಯ ಮುಖ"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"ಚುಂಬನ ಭಾವನೆಯ ಮುಖ"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"ಮುತ್ತು ಹೊರಗೆಡುವ ಮುಖ"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"ನಗು ಕಣ್ಣುಗಳ ಚುಂಬನ ಭಾವನೆಯ ಮುಖ"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"ಮುಚ್ಚಿದ ಕಣ್ಣುಗಳ ಚುಂಬನದ ಭಾವನೆಯ ಮುಖ"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"ಸೊಕ್ಕಿನ ನಾಲಿಗೆ ಭಾವನೆಯ ಮುಖ"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"ಸೊಕ್ಕಿನ ನಾಲಿಗೆ ಮತ್ತು ಮಿಟುಕಿಸುತ್ತಿರುವ ಕಣ್ಣಿನ ಮುಖ"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"ಸೊಕ್ಕಿನ ನಾಲಿಗೆ ಮತ್ತು ಬಿಗಿಯಾಗಿ ಮುಚ್ಚಿದ ಕಣ್ಣುಗಳ ಮುಖ"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"ಬೇಸರ ಭಾವನೆಯ ಮುಖ"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"ಆತಂಕದ ಭಾವನೆಯ ಮುಖ"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"ಕೋಪೋದ್ರಿಕ್ತ ಮುಖ"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"ಮೊಂಡುತನದ ಮುಖ"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"ಅಳಲು ಭಾವನೆಯ ಮುಖ"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"ನಿಷ್ಠೂರ ಭಾವನೆಯ ಮುಖ"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"ವಿಜಯೋತ್ಸವದ ನಗೆ ಬೀರುವ ಮುಖ"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"ಬೇಸರವಿದ್ದರೂ, ನೆಮ್ಮದಿ ಭಾವನೆಯ ಮುಖ"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"ತೆರೆದ ಬಾಯಿಯ ಹುಬ್ಬು ಗಂಟಿಕ್ಕಿದ ಮುಖ"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"ಅಳು ಮುಖ"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"ನಡತೆ ಭಾವನೆಯ ಮುಖ"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"ಅಸಹನೆ ಭಾವನೆಯ ಮುಖ"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"ನಿದ್ರಾವಸ್ಥೆಯ ಮುಖ"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"ಆಯಾಸ ಭಾವನೆಯ ಮುಖ"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"ಸೊಟ್ಟ ಮೋರೆ"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"ಜೋರಾಗಿ ಅಳುವ ಮುಖ"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"ತೆರೆದ ಬಾಯಿಯ ಮುಖ"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"ಗೋಪ್ಯತಾ ಭಾವನೆಯ ಮುಖ"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"ತೆರೆದ ಬಾಯಿ ಮತ್ತು ಬೆವರಿನಿಂದ ಕೂಡಿದ ಮುಖ"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"ಭಯದಲ್ಲಿ ಕಿರಿಚುತ್ತಿರುವ ಮುಖ"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"ಆಶ್ಚರ್ಯಚಕಿತ ಮುಖ"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"ಕೆಂಪೇರಿದ ಮುಖ"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"ಮಲಗಿರುವ ಮುಖ"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"ಡಿಜ್ಜಿ ಮುಖ"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"ಬಾಯಿಲ್ಲದ ಮುಖ"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"ವೈದ್ಯಕೀಯ ಮುಖವಾಡದ ಮುಖ"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"ನಗು ಕಣ್ಣುಗಳ ಹಾಸ್ಯದ ನಗೆ ಬೀರುವ ಬೆಕ್ಕಿನ ಮುಖ"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"ಸಂತೋಷದ ಕಣ್ಣೀರಿಡಿರುವ ಮಂದಸ್ಮಿತ ಬೆಕ್ಕಿನ ಮುಖ"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"ತೆರೆದ ಬಾಯಿಯ ಮಂದಸ್ಮಿತ ಬೆಕ್ಕಿನ ಮುಖ"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"ಹೃದಯಾಕಾರದ ಕಣ್ಣುಗಳುಳ್ಳ ಮಂದಸ್ಮಿತ ಬೆಕ್ಕಿನ ಮುಖ"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"ವಕ್ರ ನಗುವಿನ ಬೆಕ್ಕಿನ ಮುಖ"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"ಮುಚ್ಚಿದ ಕಣ್ಣುಗಳ ಚುಂಬನ ಭಾವನೆಯ ಬೆಕ್ಕಿನ ಮುಖ"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"ಮೊಂಡುತನ ಭಾವನೆಯ ಬೆಕ್ಕಿನ ಮುಖ"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"ಅಳು ಭಾವನೆಯ ಬೆಕ್ಕಿನ ಮುಖ"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"ಅಸಹನೆ ಭಾವನೆಯ ಬೆಕ್ಕಿನ ಮುಖ"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"ಉತ್ತಮ ಸನ್ನೆ ಇಲ್ಲದ ಮುಖ"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"ಸರಿ ಸನ್ನೆ ಮಾಡುವ ಮುಖ"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"ದೀರ್ಘವಾಗಿ ತಲೆಬಾಗಿರುವ ವ್ಯಕ್ತಿ"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"ಕಣ್ಣು ಮುಚ್ಚಿಕೊಂಡಿರುವ ಕೋತಿ"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"ಕಿವಿ ಮುಚ್ಚಿಕೊಂಡಿರುವ ಕೋತಿ"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"ಬಾಯಿ ಮುಚ್ಚಿಕೊಂಡಿರುವ ಕೋತಿ"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"ಸಂತೋಷದಿಂದ ಒಂದು ಕೈ ಎತ್ತಿರುವ ವ್ಯಕ್ತಿ"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"ಸಂಭ್ರಮಾಚರಣೆಯಲ್ಲಿ ಎರಡೂ ಕೈಗಳನ್ನು ಎತ್ತುವ ವ್ಯಕ್ತಿ"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"ಹುಬ್ಬು ಗಂಟಿಕ್ಕಿದ ವ್ಯಕ್ತಿ"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"ಮೊಂಡುತನ ಭಾವನೆಯ ಮುಖದ ವ್ಯಕ್ತಿ"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"ನಮಸ್ಕಾರ ಸೂಚನೆಯ ವ್ಯಕ್ತಿ"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"ರಾಕೆಟ್"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"ಹೆಲಿಕಾಪ್ಟರ್"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"ಉಗಿಬಂಡಿ ಯಂತ್ರ"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"ರೈಲ್ವೆ ಕಾರು"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"ಹೈ-ಸ್ಪೀಡ್ ರೈಲು"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"ಬುಲೆಟ್ ಮೂತಿಯುಳ್ಳ ಹೈ-ಸ್ಪೀಡ್ ರೈಲು"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"ರೈಲು"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"ಮೆಟ್ರೋ"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"ಹಗುರ ರೈಲು"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"ನಿಲ್ದಾಣ"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"ಟ್ರ್ಯಾಮ್"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"ಟ್ರ್ಯಾಮ್ ಕಾರ್"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"ಬಸ್ಸು"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"ಮುಂದು ಬರುತ್ತಿರುವ ಬಸ್ಸು"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"ಟ್ರಾಲಿಬಸ್"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"ಬಸ್ ತಂಗುದಾಣ"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"ಮಿನಿಬಸ್"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"ಆಂಬುಲೆನ್ಸ್"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"ಅಗ್ನಿಶಾಮಕ ಯಂತ್ರ"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"ಪೊಲೀಸ್ ಕಾರು"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"ಮುಂದು ಬರುತ್ತಿರುವ ಪೊಲೀಸ್ ಕಾರು"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"ಟ್ಯಾಕ್ಸಿ"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"ಮುಂದು ಬರುತ್ತಿರುವ ಟ್ಯಾಕ್ಸಿ"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"ಆಟೊಮೊಬೈಲ್"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"ಮುಂದು ಬರುತ್ತಿರುವ ಆಟೊಮೊಬೈಲ್"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"ಮನರಂಜನೆ ವಾಹನ"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"ಡೆಲಿವರಿ ಟ್ರಕ್"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"ಜಂಟಿ ಲಾರಿ"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"ಟ್ರ್ಯಾಕ್ಟರ್"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"ಮೋನೊರೈಲ್"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"ಪರ್ವತ ರೈಲು"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"ತೂಗು ರೈಲ್ವೆ"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"ಪರ್ವತದ ಕೇಬಲ್ ಮಾರ್ಗ"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"ಏರಿಯಲ್ ಟ್ರ್ಯಾಮ್ ವೇ"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"ಹಡಗು"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"ಹಾಯಿದೋಣಿ"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"ವೇಗದ ಮೋಟಾರು ದೋಣಿ"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"ಅಡ್ಡ ಸಂಚಾರಿ ದೀಪ"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"ಲಂಬ ಸಂಚಾರಿ ದೀಪ"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"ನಿರ್ಮಾಣ ಹಂತದ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"ಪೊಲೀಸ್ ಕಾರುಗಳು ಸುತ್ತುತ್ತಿರುವ ಬೆಳಕು"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"ಪೋಸ್ಟ್‌ನಲ್ಲಿ ತ್ರಿಕೋನಾಕಾರದ ಧ್ವಜ"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"ಬಾಗಿಲು"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"ಪ್ರವೇಶವಿಲ್ಲ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"ಧೂಮಪಾನ ನಿಷೇಧದ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"ಧೂಮಪಾನ ನಿಷೇಧದ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"ಕಸವನ್ನು ಅದರ ಸ್ಥಳದಲ್ಲಿ ಹಾಕಿ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"ಕಸ ಹಾಕಬಾರದು ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"ಕುಡಿಯುವ ನೀರು ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"ನೀರು ಕುಡಿಯಲು ಯೋಗ್ಯವಲ್ಲ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"ಸೈಕಲ್"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"ಸೈಕಲ್‌ಗಳಿಗೆ ಪ್ರವೇಶವಿಲ್ಲ"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"ಬೈಸಿಕಲ್ ಪಟು"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"ಪರ್ವತದ ಸೈಕಲ್ ಪಟು"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"ಪಾದಚಾರಿ"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"ಪಾದಚಾರಿಗಳಿಗೆ ಪ್ರವೇಶವಿಲ್ಲ"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"ಮಕ್ಕಳು ದಾಟುವ ಮಾರ್ಗ"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"ಪುರುಷರು ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"ಮಹಿಳೆಯರು ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"ಶೌಚಾಲಯ"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"ಮಗುವಿನ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"ಟಾಯ್ಲೆಟ್ ಸಂಕೇತ"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"ವಾಟರ್ ಕ್ಲೋಸೆಟ್"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"ಷವರ್"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"ಸ್ನಾನ"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"ಸ್ನಾನದ ತೊಟ್ಟಿ"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"ಪಾಸ್‌ಪೋರ್ಟ್ ನಿಯಂತ್ರಣ"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"ಕಸ್ಟಮ್ಸ್"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"ಸರಕು ಹಕ್ಕು"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"ಬಿಟ್ಟಿರುವ ಸಾಮಾನು"</string>
+</resources>
diff --git a/java/res/values-kn-rIN/strings-talkback-descriptions.xml b/java/res/values-kn-rIN/strings-talkback-descriptions.xml
index 15cef7c..a2445e2 100644
--- a/java/res/values-kn-rIN/strings-talkback-descriptions.xml
+++ b/java/res/values-kn-rIN/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"ಯಾವುದೇ ಪಠ್ಯವನ್ನು ನಮೂದಿಸಿಲ್ಲ"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> ನಿಂದ <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> ಆಗಿ <xliff:g id="KEY_NAME">%1$s</xliff:g> ಸರಿಪಡಿಸುತ್ತದೆ"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> ಸ್ವಯಂ ತಿದ್ದುಪಡಿಯನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"ಯಾವುದೇ ಸಲಹೆ ಇಲ್ಲ"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"ಅಪರಿಚಿತ ಅಕ್ಷರ"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"ಇನ್ನಷ್ಟು ಸಂಕೇತಗಳು"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"ಕ್ಯಾಪಿಟಲ್ I, ಮೇಲೆ ಡಾಟ್"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"ಅಪರಿಚಿತ ಚಿಹ್ನೆ"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"ಅಪರಿಚಿತ ಎಮೋಜಿ"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"ಬೇಸರದ ಮುಖ"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"ಸಂಕೋಚದ ಮುಖ"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"ಸನ್‌ಗ್ಲಾಸ್‌ಗಳನ್ನು ಧರಿಸಿರುವ ಮುಖ"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"ಆಶ್ಚರ್ಯದ ಮುಖ"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"ಚುಂಬನದ ಮುಖ"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"ತಿರಸ್ಕಾರದ ಮುಖ"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"ಪರ್ಯಾಯ ಅಕ್ಷರಗಳು ಲಭ್ಯ"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"ಪರ್ಯಾಯ ಅಕ್ಷರಗಳನ್ನು ವಜಾಗೊಳಿಸಲಾಗಿದೆ"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"ಪರ್ಯಾಯ ಸಲಹೆಗಳು ಲಭ್ಯ"</string>
diff --git a/java/res/values-kn-rIN/strings.xml b/java/res/values-kn-rIN/strings.xml
index 6cc78ec..b8d61ec 100644
--- a/java/res/values-kn-rIN/strings.xml
+++ b/java/res/values-kn-rIN/strings.xml
@@ -26,24 +26,30 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"ಕೀಲಿಯನ್ನು ಒತ್ತಿದಾಗ ವೈಬ್ರೇಷನ್‌"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"ಕೀಲಿಯನ್ನು ಒತ್ತಿದಾಗ ಶಬ್ದಮಾಡು"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"ಕೀ ಒತ್ತಿದಾಗ ಪಾಪ್ ಅಪ್‌ ಮಾಡು"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"ಆದ್ಯತೆಗಳು"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"ಖಾತೆಗಳ ಗೌಪ್ಯತೆ"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"ಗೋಚರತೆಯ ಲೇಔಟ್‌ಗಳ"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"ಗೆಸ್ಚರ್ ಟೈಪಿಂಗ್"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"ಪಠ್ಯ ತಿದ್ದುಪಡಿ"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"ಸುಧಾರಿತ"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"ಥೀಮ್"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"ಬೇರ್ಪಡೆ ಕೀಬೋರ್ಡ್ ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google ಕೀಬೋರ್ಡ್‌ ಸಿಂಕ್‌"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"ಸಿಂಕ್‌ ಆನ್‌ ಆಗಿದೆ"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ನಿಘಂಟನ್ನು ಸಾಧನಗಳಲ್ಲಿ ಸಿಂಕ್ ಮಾಡಿ"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"ಇದೀಗ ಸಿಂಕ್ ಮಾಡಿ"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"ಮೇಘ ಡೇಟಾವನ್ನು ಅಳಿಸಿ"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Google ನಿಂದ ನಿಮ್ಮ ಸಿಂಕ್ ಮಾಡಲಾದ ಡೇಟಾವನ್ನು ಅಳಿಸುತ್ತದೆ"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"ನಿಮ್ಮ ಸಿಂಕ್‌ ಮಾಡಲಾದ ಡೇಟಾವನ್ನು ಮೇಘದಿಂದ ಅಳಿಸಲಾಗುತ್ತದೆ. ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"ಅಳಿಸು"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"ರದ್ದುಮಾಡು"</string>
+    <!-- unknown quoting pattern: original -1, translation 1 -->
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ನಿಘಂಟನ್ನು Google ಸರ್ವರ್‌ಗಳಿಗೆ ಸಿಂಕ್‌ ಮಾಡಲಾಗುತ್ತದೆ &amp;amp; ಬ್ಯಾಕಪ್‌ ಮಾಡಲಾಗುತ್ತದೆ. ನಮ್ಮ ಉತ್ಪನ್ನಗಳನ್ನು ಸುಧಾರಿಸಲು ಸಹಾಯ ಮಾಡಲು ಪದ ಆವರ್ತನೆ ಅಂಕಿಅಂಶವನ್ನು ಸಂಗ್ರಹಿಸಬಹುದು. ಎಲ್ಲಾ ಮಾಹಿತಿಯ ಸಂಗ್ರಹಣೆ ಮತ್ತು ಬಳಕೆಯ "<a href="https://www.google.com/policies/privacy">"Google ನ ಗೌಪ್ಯತೆ ನೀತಿ"</a>" ಯ ಅಡಿಯಲ್ಲಿ ಅನುಸರಣೆ ಮಾಡಲಾಗುತ್ತದೆ."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"ಈ ಸಾಧನಕ್ಕೆ ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ದಯವಿಟ್ಟು Google ಖಾತೆಯನ್ನು ಸೇರಿಸಿ"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"ಇತರೆ ಇನ್‌ಪುಟ್ ವಿಧಾನಗಳಿಗೆ ಬದಲಾಯಿಸು"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"ಭಾಷಾ ಬದಲಾವಣೆ ಕೀಯು ಇತರೆ ಇನ್‌ಪುಟ್ ವಿಧಾನಗಳನ್ನು ಕೂಡ ಒಳಗೊಂಡಿರುತ್ತದೆ"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"ಭಾಷೆ ಬದಲಾವಣೆ ಕೀ"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"ಬಹು ಇನ್‌ಪುಟ್ ಭಾಷೆಗಳು ಸಕ್ರಿಯಗೊಂಡಾಗ ತೋರಿಸು"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"ಸ್ಲೈಡ್ ಸೂಚಕ ತೋರಿಸು"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Shift ಅಥವಾ ಚಿಹ್ನೆ ಕೀಗಳಿಂದ ಸ್ಲೈಡ್ ಮಾಡುವಾಗ ದೃಶ್ಯ ಕ್ಯೂ ಪ್ರದರ್ಶಿಸು"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"ಕೀ ಪಾಪ್‌ಅಪ್‌ನ ವಜಾ ವಿಳಂಬ"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"ಯಾವುದೇ ವಿಳಂಬವಿಲ್ಲ"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"ಡೀಫಾಲ್ಟ್"</string>
@@ -62,9 +68,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"ಮುಖ್ಯ ನಿಘಂಟು"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"ತಿದ್ದುಪಡಿ ಸಲಹೆಗಳನ್ನು ತೋರಿಸು"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"ಟೈಪ್ ಮಾಡುವಾಗ ಸಲಹೆ ನೀಡಿದ ಪದಗಳನ್ನು ಪ್ರದರ್ಶಿಸು"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"ಯಾವಾಗಲೂ ತೋರಿಸು"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"ಪೋಟ್ರೇಟ್ ಮೋಡ್‌ನಲ್ಲಿ ತೋರಿಸು"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"ಯಾವಾಗಲೂ ಮರೆಮಾಡು"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"ಅಕ್ಷೇಪಾರ್ಹ ಪದಗಳನ್ನು ನಿರ್ಬಂಧಿಸು"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"ಸಂಭಾವ್ಯ ಆಕ್ಷೇಪಾರ್ಹ ಪದಗಳ ಸಲಹೆ ನೀಡದಿರು"</string>
     <string name="auto_correction" msgid="7630720885194996950">"ಸ್ವಯಂ-ತಿದ್ದುಪಡಿ"</string>
@@ -85,21 +88,32 @@
     <string name="voice_input" msgid="3583258583521397548">"ಧ್ವನಿ ಇನ್‌ಪುಟ್ ಕೀ"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"ಯಾವುದೇ ಧ್ವನಿ ಇನ್‌ಪುಟ್ ವಿಧಾನಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿಲ್ಲ. ಭಾಷೆ &amp; ಇನ್‌ಪುಟ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ."</string>
     <string name="configure_input_method" msgid="373356270290742459">"ಇನ್‌ಪುಟ್ ವಿಧಾನಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"ಇನ್‌ಪುಟ್ ಭಾಷೆಗಳು"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"ಪ್ರತಿಕ್ರಿಯೆ ಕಳುಹಿಸಿ"</string>
-    <string name="select_language" msgid="3693815588777926848">"ಇನ್‌ಪುಟ್ ಭಾಷೆಗಳು"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"ಭಾಷೆಗಳು"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"ಸಹಾಯ &amp; ಪ್ರತಿಕ್ರಿಯೆ"</string>
+    <string name="select_language" msgid="5709487854987078367">"ಭಾಷೆಗಳು"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"ಉಳಿಸಲು ಮತ್ತೆ ಸ್ಪರ್ಶಿಸಿ"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"ಉಳಿಸಲು ಇಲ್ಲಿ ಸ್ಪರ್ಶಿಸಿ"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"ನಿಘಂಟು ಲಭ್ಯವಿದೆ"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"ಕೀಬೋರ್ಡ್ ಥೀಮ್"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"ಖಾತೆಗಳನ್ನು ಬದಲಿಸು"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"ಯಾವುದೇ ಖಾತೆಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿಲ್ಲ"</string>
+    <string name="account_selected" msgid="2846876462199625974">"ಪ್ರಸ್ತತವಾಗಿ <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g> ಅನ್ನು ಬಳಸುತ್ತಿರುವಿರಿ"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"ಸರಿ"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"ರದ್ದುಮಾಡು"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"ಸೈನ್ ಔಟ್"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"ಬಳಸಲು ಖಾತೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"ಇಂಗ್ಲಿಷ್ (UK)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"ಇಂಗ್ಲಿಷ್ (US)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"ಸ್ಪ್ಯಾನಿಷ್ (US)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"ಹಿಂಗ್ಲಿಷ್"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"ಸರ್ಬಿಯನ್ (ಲ್ಯಾಟಿನ್)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"ಇಂಗ್ಲಿಷ್ (UK) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"ಇಂಗ್ಲಿಷ್ (US) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"ಸ್ಪ್ಯಾನಿಷ್ (US) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"ಹಿಂಗ್ಲಿಷ್ (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"ಸರ್ಬಿಯನ್ (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ಸಾಂಪ್ರದಾಯಿಕ)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ಸಿರಿಲಿಕ್)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ಲ್ಯಾಟಿನ್)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ಕಾಂಪ್ಯಾಕ್ಟ್‌‌)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"ಯಾವುದೇ ಭಾಷೆಯಿಲ್ಲ (ವರ್ಣಮಾಲೆ)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"ವರ್ಣಮಾಲೆ (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"ವರ್ಣಮಾಲೆ (QWERTZ)"</string>
@@ -108,16 +122,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"ವರ್ಣಮಾಲೆ (ಕೋಲ್‌ಮ್ಯಾಕ್)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"ವರ್ಣಮಾಲೆ (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"ಎಮೋಜಿ"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"ಕೀಬೋರ್ಡ್ ಥೀಮ್"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"ಕಸ್ಟಮ್ ಇನ್‌ಪುಟ್ ಶೈಲಿಗಳು"</string>
     <string name="add_style" msgid="6163126614514489951">"ಶೈಲಿ ಸೇರಿಸು"</string>
     <string name="add" msgid="8299699805688017798">"ಸೇರಿಸು"</string>
@@ -129,14 +134,9 @@
     <string name="enable" msgid="5031294444630523247">"ಸಕ್ರಿಯಗೊಳಿಸು"</string>
     <string name="not_now" msgid="6172462888202790482">"ಸದ್ಯಕ್ಕೆ ಬೇಡ"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"ಅದೇ ರೀತಿಯ ಇನ್‌ಪುಟ್ ಶೈಲಿಯು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"ಕೀಯ ದೀರ್ಘ ಒತ್ತುವ ವಿಳಂಬ"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"ಕೀಒತ್ತುವ ವೈಬ್ರೇಷನ್‌‌ ಅವಧಿ"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"ಕೀಒತ್ತುವ ಶಬ್ದದ ವಾಲ್ಯೂಮ್"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"ಬಾಹ್ಯ ನಿಘಂಟು ಫೈಲ್ ಓದಿ"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"ಡೌನ್‌ಲೋಡ್ ಫೋಲ್ಡರ್‌ನಲ್ಲಿ ಯಾವುದೇ ನಿಘಂಟು ಫೈಲ್‌ಗಳಿಲ್ಲ"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"ಸ್ಥಾಪಿಸಬೇಕಾದ ನಿಘಂಟು ಫೈಲ್ ಆಯ್ಕೆಮಾಡಿ"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> ಗಾಗಿ ಈ ಫೈಲ್‌ ಅನ್ನು ನಿಜಕ್ಕೂ ಸ್ಥಾಪಿಸುವುದೇ?"</string>
-    <string name="error" msgid="8940763624668513648">"ದೋಷ ಉಂಟಾಗಿದೆ"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"ಕೀಯ ದೀರ್ಘ ಒತ್ತುವ ವಿಳಂಬ"</string>
     <string name="button_default" msgid="3988017840431881491">"ಡೀಫಾಲ್ಟ್"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> ಗೆ ಸುಸ್ವಾಗತ"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"ಗೆಶ್ಚರ್ ಟೈಪಿಂಗ್‌ನೊಂದಿಗೆ"</string>
@@ -154,8 +154,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"ಈಗ ನೀವು <xliff:g id="APPLICATION_NAME">%s</xliff:g> ನೊಂದಿಗೆ ನಿಮ್ಮ ಎಲ್ಲ ಮೆಚ್ಚಿನ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ ಟೈಪ್ ಮಾಡಬಹುದು."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"ಹೆಚ್ಚುವರಿ ಭಾಷೆಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡು"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"ಮುಕ್ತಾಯಗೊಂಡಿದೆ"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"ಅಪ್ಲಿಕೇಶನ್ ಐಕಾನ್ ತೋರಿಸು"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"ಲಾಂಚರ್‌ನಲ್ಲಿ ಅಪ್ಲಿಕೇಶನ್ ಐಕಾನ್ ಪ್ರದರ್ಶಿಸು"</string>
     <string name="app_name" msgid="6320102637491234792">"ನಿಘಂಟು ಪೂರೈಕೆದಾರರು"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"ನಿಘಂಟು ಪೂರೈಕೆದಾರರು"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"ನಿಘಂಟು ಸೇವೆ"</string>
diff --git a/java/res/values-ko/strings-emoji-descriptions.xml b/java/res/values-ko/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..c4e16f1
--- /dev/null
+++ b/java/res/values-ko/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"저작권 기호"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"등록 기호"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"느낌표 2개"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"느낌표 물음표"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"상표 기호"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"안내소"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"좌우 양방향 화살표"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"상하 양방향 화살표"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"북서쪽 화살표"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"북동쪽 화살표"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"남동쪽 화살표"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"남서쪽 화살표"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"왼쪽을 가리키는 갈고리 화살표"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"오른쪽을 가리키는 갈고리 화살표"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"손목시계"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"모래시계"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"오른쪽을 가리키는 검은색 이중 삼각형"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"왼쪽을 가리키는 검은색 이중 삼각형"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"위를 가리키는 검은색 이중 삼각형"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"아래를 가리키는 검은색 이중 삼각형"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"알람 시계"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"모래가 떨어지는 모래시계"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"라틴어 M 원문자"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"작은 검은색 정사각형"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"작은 흰색 정사각형"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"오른쪽을 가리키는 검은색 삼각형"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"왼쪽을 가리키는 검은색 삼각형"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"중간 크기의 흰색 정사각형"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"중간 크기의 검은색 정사각형"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"중소형의 흰색 정사각형"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"중소형의 검은색 정사각형"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"햇살이 있는 검은색 태양"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"구름"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"검은색 전화기"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"체크표시가 있는 정사각형"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"우산과 빗방울"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"뜨거운 음료"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"위를 가리키는 흰색 검지"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"웃는 흰색 얼굴"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"양자리"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"황소자리"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"쌍둥이자리"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"게자리"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"사자자리"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"처녀자리"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"천칭자리"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"전갈자리"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"궁수자리"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"염소자리"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"물병자리"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"물고기자리"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"검은색 스페이드"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"검은색 클로버"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"검은색 하트"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"검은색 다이아몬드"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"온천"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"검은색 보편적인 재활용 기호"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"휠체어 기호"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"닻"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"경고 기호"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"고압 전류 기호"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"중간 크기의 흰색 원"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"중간 크기의 검은색 원"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"축구공"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"야구공"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"눈송이 없는 눈사람"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"구름에 가려진 태양"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"뱀주인자리"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"진입 금지"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"교회"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"분수"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"골프 홀에 있는 깃발"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"범선"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"텐트"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"주유기"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"검은색 가위"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"굵은 흰색 체크표시"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"비행기"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"봉투"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"위를 향한 주먹"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"위를 향한 손"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"승리의 V를 한 손"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"연필"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"검은색 펜촉"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"굵은 체크표시"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"굵은 곱셈 표시"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"반짝임"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"8각 별표"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"8각 검은 별"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"눈송이"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"광채"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"곱셈 표시"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"음각 곱셈 표시 블록"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"검은색 물음표"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"흰색 물음표"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"흰색 느낌표"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"굵은 느낌표 기호"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"검은색 하트"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"굵은 덧셈 기호"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"굵은 뺄셈 기호"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"굵은 나눗셈 기호"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"검은색 오른쪽 화살표"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"한 번 꼬인 선"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"두 번 꼬인 선"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"오른쪽을 가리키다가 위로 꺾어지는 화살표"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"오른쪽을 가리키다가 아래로 꺾어지는 화살표"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"검은색 왼쪽 화살표"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"검은색 위 화살표"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"검은색 아래 화살표"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"큰 검은색 정사각형"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"큰 흰색 정사각형"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"중간 크기의 흰색 화살표"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"굵은 선으로 된 흰색 원"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"물결 대시"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"부품 교체 마크"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"한자 표기 축하 원문자"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"한자 표기 비밀 원문자"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"마작패 붉은 용"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"블랙 조커 카드"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"혈액형 A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"혈액형 B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"혈액형 O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"주차장"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"혈액형 AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"CL 블록"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"COOL 블록"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"FREE 블록"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"ID 블록"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"NEW 블록"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"NG 블록"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"OK 블록"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"SOS 블록"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"UP! 블록"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"VS 블록"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"카타카나 여기 블록"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"카타카나 서비스 블록"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"한자 표기 무료 블록"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"한자 표기 예약석 블록"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"한자 표기 금지 블록"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"한자 표기 빈자리 블록"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"한자 표기 수락 블록"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"한자 표기 빈자리 없음 블록"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"한자 표기 유료 블록"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"한자 표기 월 블록"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"한자 표기 적용 블록"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"한자 표기 할인 블록"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"한자 표기 영업 중 블록"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"한자 표기 이익 원문자"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"한자 표기 수락 원문자"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"태풍"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"안개"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"접은 우산"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"별 밤"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"산 위의 일출"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"일출"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"황혼녘 도시 전경"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"빌딩 너머로 지는 해"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"무지개"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"교량 야경"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"파도"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"화산"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"은하수"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"지구본 유럽-아프리카"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"지구본 미주"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"지구본 아시아-오세아니아"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"자오선이 있는 지구본"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"삭 기호"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"삭현간 요월 기호"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"상현달 기호"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"현망간 철월 기호"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"보름달 기호"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"망현간 철월 기호"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"하현달 기호"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"현삭간 요월 기호"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"초승달"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"얼굴이 있는 삭"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"얼굴이 있는 상현달"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"얼굴이 있는 하현달"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"얼굴이 있는 보름달"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"얼굴이 있는 태양"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"반짝이는 별"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"별똥별"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"밤"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"묘목"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"상록수"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"낙엽수"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"야자나무"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"선인장"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"튤립"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"벚꽃"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"장미"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"무궁화"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"해바라기"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"꽃"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"옥수수"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"벼 이삭"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"허브"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"네 잎 클로버"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"단풍잎"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"낙엽"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"바람에 흩날리는 잎"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"버섯"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"토마토"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"가지"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"포도"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"멜론"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"수박"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"귤"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"레몬"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"바나나"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"파인애플"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"빨간 사과"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"초록 사과"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"배"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"복숭아"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"체리"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"딸기"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"햄버거"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"피자 조각"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"뼈에 붙은 고기"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"닭다리"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"쌀 과자"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"주먹밥"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"공기밥"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"카레라이스"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"라면"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"스파게티"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"빵"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"프렌치프라이"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"군고구마"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"경단 꼬치"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"어묵 꼬지"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"초밥"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"새우튀김"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"소용돌이무늬가 있는 어묵"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"소프트아이스크림"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"빙수"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"아이스크림"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"도넛"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"쿠키"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"초콜릿 바"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"사탕"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"막대 사탕"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"푸딩"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"꿀단지"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"조각 케이크"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"도시락"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"전골냄비"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"프라이팬"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"포크와 나이프"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"손잡이 없는 찻잔"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"술병과 잔"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"와인잔"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"칵테일잔"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"열대음료"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"맥주잔"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"맥주잔 건배"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"젖병"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"리본"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"포장된 선물"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"생일 케이크"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"호박 초롱"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"크리스마스 트리"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"산타클로스"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"불꽃놀이"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"불꽃놀이 폭죽"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"풍선"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"파티 폭죽"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"박 터트리기"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"일본 칠석제 나무"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"교차하는 깃발"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"소나무 장식"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"일본 인형"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"잉어 모양 깃발"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"풍경"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"달맞이 행사"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"책가방"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"학사모"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"회전목마"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"관람차"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"롤러코스터"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"낚싯대와 물고기"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"마이크"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"영화 카메라"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"극장"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"헤드폰"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"그림 팔레트"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"중절모"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"서커스 천막"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"입장권"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"슬레이트"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"공연"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"비디오 게임"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"명중"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"슬롯머신"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"당구"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"주사위"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"볼링"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"화투"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"음표"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"여러 개의 음표"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"색소폰"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"기타"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"건반"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"트럼펫"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"바이올린"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"악보"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"띠를 두른 셔츠"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"테니스 라켓과 공"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"스키와 스키 부츠"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"농구공과 농구 골대"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"바둑판무늬 깃발"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"스노보드를 타는 사람"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"달리는 사람"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"서핑을 하는 사람"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"트로피"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"경마"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"미식축구"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"럭비"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"수영하는 사람"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"주택"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"뜰이 있는 집"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"사무실 건물"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"일본 우체국"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"유럽 우체국"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"병원"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"은행"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"ATM"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"호텔"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"러브호텔"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"편의점"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"학교"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"백화점"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"공장"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"주점 초롱"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"일본 성"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"유럽 성"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"쥐"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"생쥐"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"소"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"물소"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"소"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"표범"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"토끼"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"고양이"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"용"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"악어"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"고래"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"달팽이"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"뱀"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"말"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"숫양"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"염소"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"양"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"원숭이"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"수탉"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"닭"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"개"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"돼지"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"수퇘지"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"코끼리"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"문어"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"소라껍데기"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"벌레"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"개미"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"꿀벌"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"무당벌레"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"물고기"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"열대어"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"복어"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"거북이"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"알 까는 병아리"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"병아리 옆모습"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"병아리 앞모습"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"새"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"펭귄"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"코알라"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"푸들"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"단봉낙타"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"쌍봉낙타"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"돌고래"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"생쥐 얼굴"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"소 얼굴"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"호랑이 얼굴"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"토끼 얼굴"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"고양이 얼굴"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"용 얼굴"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"물 뿜는 고래"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"말 얼굴"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"원숭이 얼굴"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"개 얼굴"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"돼지 얼굴"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"개구리 얼굴"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"햄스터 얼굴"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"늑대 얼굴"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"곰 얼굴"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"판다 얼굴"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"돼지 코"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"동물 발자국"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"눈"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"귀"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"코"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"입"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"혀"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"검지가 위를 가리키는 흰색 손등"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"검지가 아래를 가리키는 흰색 손등"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"검지가 왼쪽을 가리키는 흰색 손등"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"검지가 오른쪽을 가리키는 흰색 손등"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"주먹 기호"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"손을 흔드는 기호"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"OK 하는 손 기호"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"엄지를 올린 손 기호"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"엄지를 내린 손 기호"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"손뼉 치는 손 기호"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"양손을 벌린 기호"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"왕관"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"여성용 모자"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"안경"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"넥타이"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"티셔츠"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"청바지"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"원피스"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"기모노"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"비키니"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"블라우스"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"지갑"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"핸드백"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"파우치"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"남성 구두"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"운동화"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"하이힐"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"여성 샌들"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"여성 부츠"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"발자국"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"상반신 실루엣"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"여러 명의 상반신 실루엣"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"소년"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"소녀"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"남자"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"여자"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"가족"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"손을 잡고 있는 남자와 여자"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"손을 잡고 있는 두 남자"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"손을 잡고 있는 두 여자"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"경찰관"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"토끼 귀를 한 여자"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"면사포를 쓴 신부"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"머리가 금발인 사람"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"중국 전통 모자를 쓴 남자"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"터번을 두른 남자"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"할아버지"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"할머니"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"아기"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"건설 노동자"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"공주"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"도깨비"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"코가 큰 마귀"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"유령"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"아기 천사"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"외계인"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"우주 괴물"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"꼬마 도깨비"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"해골"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"안내 데스크 직원"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"근위대원"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"무용수"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"립스틱"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"매니큐어"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"얼굴 마사지"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"헤어컷"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"이발소의 간판 기둥"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"주사기"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"알약"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"키스 자국"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"연애편지"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"반지"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"보석"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"키스"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"부케"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"연인과 하트"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"결혼"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"두근거리는 하트"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"깨진 하트"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"두 개의 하트"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"반짝이는 하트"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"점점 커지는 하트"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"화살 맞은 하트"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"파란색 하트"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"녹색 하트"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"노란색 하트"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"보라색 하트"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"리본 달린 하트"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"회전하는 하트"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"하트 장식"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"내부에 점에 있는 마름모 도형"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"전구"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"분노 기호"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"폭탄"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"수면 기호"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"충돌 기호"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"땀방울"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"작은 물방울"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"대시 기호"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"똥 덩어리"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"울퉁불퉁한 이두박근"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"어지러움 기호"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"말풍선"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"생각 풍선"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"흰색 꽃"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"백점 기호"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"돈 가방"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"환전"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"굵은 달러 기호"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"신용카드"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"엔화 지폐"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"달러 지폐"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"유로화 지폐"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"파운드화 지폐"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"날개 달린 돈다발"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"엔화 기호가 있는 상향 추세의 차트"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"좌석"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"개인 컴퓨터"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"서류 가방"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"미니 디스크"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"플로피 디스크"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"광학 디스크"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"파일 폴더"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"열려있는 파일 폴더"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"끝이 둥글게 말린 종이"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"종이 앞면"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"달력"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"일일달력"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"카드 색인 바인더"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"상향 추세의 차트"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"하향 추세의 차트"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"막대그래프"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"클립보드"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"압정"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"둥근 압정"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"클립"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"막대자"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"삼각자"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"즐겨찾기 탭"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"원장"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"공책"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"장식 표지가 있는 공책"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"덮인 책"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"펼친 책"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"녹색 책"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"파란색 책"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"주황색 책"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"여러 권의 책"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"명찰"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"두루마리"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"메모"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"전화 수화기"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"호출기"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"팩스기"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"위성 안테나"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"확성기"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"응원 메가폰"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"보낼 편지함 트레이"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"받은 편지함 트레이"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"소포"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"이메일 기호"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"수신 메시지 봉투"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"아래 화살표가 위에 있는 봉투"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"깃발을 내리고 닫혀 있는 우편함"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"깃발을 올리고 닫혀 있는 우편함"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"깃발을 올리고 열려 있는 우편함"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"깃발을 내리고 열려 있는 우편함"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"우체통"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"나팔"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"신문"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"휴대전화"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"오른쪽 화살표가 왼쪽에 있는 휴대전화"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"진동 모드"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"휴대전화 끄기"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"휴대전화 사용 금지"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"신호가 강한 안테나"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"카메라"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"비디오 카메라"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"텔레비전"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"라디오"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"비디오 카세트"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"서로 교차하는 오른쪽 화살표"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"시계 방향으로 오른쪽과 왼쪽으로 각각 순환하는 열린 화살표"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"시계 방향으로 오른쪽과 왼쪽으로 각각 순환하는 열린 화살표와 그 위에 있는 원문자 1"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"시계 방향으로 위아래로 각각 순환하는 열린 화살표"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"시계 반대 방향으로 위아래로 각각 순환하는 열린 화살표"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"낮은 명도 기호"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"높은 명도 기호"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"스피커 사용 중지"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"스피커"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"하나의 음파가 있는 스피커"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"세 개의 음파가 있는 스피커"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"배터리"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"전기 플러그"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"왼쪽을 향한 돋보기"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"오른쪽을 향한 돋보기"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"잉크 펜과 자물쇠"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"열쇠와 자물쇠"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"열쇠"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"자물쇠"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"열려있는 자물쇠"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"종"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"종 사용 중지"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"책갈피"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"사슬 기호"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"라디오 버튼"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"왼쪽 화살표가 위에 있는 BACK"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"왼쪽 화살표가 위에 있는 END"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"좌우 양방향 화살표가 위에 있는 ON!"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"오른쪽 화살표가 위에 있는 SOON"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"위 화살표가 위에 있는 TOP"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"18세 이하 금지 기호"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"키 캡 10"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"라틴어 대문자 입력 기호"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"라틴어 소문자 입력 기호"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"숫자 입력 기호"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"기호 입력 기호"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"라틴어 문자 입력 기호"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"불"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"손전등"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"렌치"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"망치"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"너트와 볼트"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"식칼"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"권총"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"현미경"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"망원경"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"수정구"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"중앙에 점이 있고 6각별"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"일본식 초보자 기호"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"삼지창 엠블럼"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"정사각형 검은색 버튼"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"정사각형 흰색 버튼"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"큰 빨간색 원"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"큰 파란색 원"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"큰 주황색 마름모"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"큰 파란색 마름모"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"작은 주황색 마름모"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"작은 파란색 마름모"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"빨간색 삼각형"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"빨간색 역삼각형"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"작은 빨간색 삼각형"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"작은 빨간색 역삼각형"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"1시를 가리키는 시계"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"2시를 가리키는 시계"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"3시를 가리키는 시계"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"4시를 가리키는 시계"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"5시를 가리키는 시계"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"6시를 가리키는 시계"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"7시를 가리키는 시계"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"8시를 가리키는 시계"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"9시를 가리키는 시계"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"10시를 가리키는 시계"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"11시를 가리키는 시계"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"12시를 가리키는 시계"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"1시 30분을 가리키는 시계"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"2시 30분을 가리키는 시계"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"3시 30분을 가리키는 시계"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"4시 30분을 가리키는 시계"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"5시 30분을 가리키는 시계"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"6시 30분을 가리키는 시계"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"7시 30분을 가리키는 시계"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"8시 30분을 가리키는 시계"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"9시 30분을 가리키는 시계"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"10시 30분을 가리키는 시계"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"11시 30분을 가리키는 시계"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"12시 30분을 가리키는 시계"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"후지 산"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"도쿄 타워"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"자유의 여신상"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"일본의 실루엣"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"모아의 석상"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"이를 드러내고 활짝 웃는 얼굴"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"미소 짓는 눈으로 웃는 얼굴"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"기쁨의 눈물을 흘리는 얼굴"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"입을 벌리고 웃는 얼굴"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"입을 벌리고 미소 짓는 눈으로 웃는 얼굴"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"입을 벌리고 식은땀을 흘리며 웃는 얼굴"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"입을 벌리고 눈을 꼭 감은 채로 웃는 얼굴"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"후광이 있는 웃는 얼굴"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"뿔 달린 웃는 얼굴"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"윙크하는 얼굴"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"미소 짓는 눈으로 웃는 얼굴"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"맛있는 음식을 음미하는 얼굴"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"안심하는 얼굴"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"하트 눈으로 웃는 얼굴"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"선글라스를 쓰고 웃는 얼굴"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"능글맞게 웃는 얼굴"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"감정을 드러내지 않은 얼굴"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"무표정한 얼굴"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"지루해하는 얼굴"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"식은땀 나는 얼굴"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"사색에 잠긴 얼굴"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"혼란에 빠진 얼굴"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"당혹해하는 얼굴"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"키스하는 얼굴"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"키스를 날리는 얼굴"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"미소 짓는 눈으로 키스하는 얼굴"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"눈을 감은 채 키스하는 얼굴"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"메롱 하는 얼굴"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"윙크하며 메롱 하는 얼굴"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"눈을 꼭 감은 채 메롱 하는 얼굴"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"실망한 얼굴"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"걱정하는 얼굴"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"화난 얼굴"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"입을 삐죽 내민 얼굴"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"우는 얼굴"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"인내하는 얼굴"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"의기양양한 얼굴"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"실망하지만 안심하는 얼굴"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"입을 벌리고 찡그리는 얼굴"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"고뇌에 찬 얼굴"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"두려워하는 얼굴"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"지친 얼굴"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"졸린 얼굴"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"피곤해하는 얼굴"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"찡그린 얼굴"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"엉엉 우는 얼굴"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"입을 벌린 얼굴"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"숨죽인 얼굴"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"입을 벌리고 식은땀 흘리는 얼굴"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"공포의 비명을 지르는 얼굴"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"놀라는 얼굴"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"빨개진 얼굴"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"잠자는 얼굴"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"어지러워하는 얼굴"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"입이 없는 얼굴"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"마스크를 한 얼굴"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"미소 짓는 눈으로 웃는 고양이 얼굴"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"기쁨의 눈물을 흘리는 고양이 얼굴"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"입을 벌리고 웃는 고양이 얼굴"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"하트 눈으로 웃는 고양이 얼굴"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"쓴웃음을 짓는 고양이 얼굴"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"눈을 감은 채 키스하는 고양이 얼굴"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"입을 삐죽 내민 고양이 얼굴"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"우는 고양이 얼굴"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"지친 고양이 얼굴"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"안 된다는 신호를 하는 얼굴"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"OK 신호를 하는 얼굴"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"절하는 사람"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"눈을 가린 원숭이"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"귀를 막은 원숭이"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"입을 막은 원숭이"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"한 손을 든 행복한 사람"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"두 손을 들고 축하하는 사람"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"눈살을 찌푸린 사람"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"입을 삐죽 내민 사람"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"두 손을 모은 사람"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"로켓"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"헬리콥터"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"증기 기관차"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"철도 차량"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"고속 열차"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"고속 탄환 열차"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"기차"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"지하철"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"경전철"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"역"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"전차"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"전차 차량"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"버스"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"다가오는 버스"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"트롤리버스"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"버스 정류장"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"미니버스"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"구급차"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"소방차"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"경찰차"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"다가오는 경찰차"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"택시"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"다가오는 택시"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"자동차"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"다가오는 자동차"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"SUV"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"배달 트럭"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"트레일러"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"트랙터"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"모노레일"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"산악 기차"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"케이블카"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"산악용 케이블카"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"공중 케이블카"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"배"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"노 젓는 보트"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"모터보트"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"가로 신호등"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"세로 신호등"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"공사 표지"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"경찰차 사이렌"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"깃대에 있는 삼각 깃발"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"문"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"출입 금지 기호"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"흡연 기호"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"금연 기호"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"쓰레기통 사용 권장 기호"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"쓰레기 무단 투기 금지 기호"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"식수 기호"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"식수 금지 기호"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"자전거"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"자전거 금지"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"자전거 타는 사람"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"산악자전거 타는 사람"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"보행자"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"보행 금지"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"길 건너는 어린이"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"남자 기호"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"여자 기호"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"화장실"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"아기 기호"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"변기"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"WC"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"샤워"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"목욕"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"욕조"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"출입국 관리"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"세관"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"수하물"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"미수취 수하물"</string>
+</resources>
diff --git a/java/res/values-ko/strings-talkback-descriptions.xml b/java/res/values-ko/strings-talkback-descriptions.xml
index 2a3fe88..c42765d 100644
--- a/java/res/values-ko/strings-talkback-descriptions.xml
+++ b/java/res/values-ko/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"입력한 텍스트 없음"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g>을(를) 누르면 <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>을(를) <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>(으)로 수정합니다."</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g>을(를) 누르면 자동 수정됩니다."</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"추천 항목 없음"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"알 수 없는 문자"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift 키"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"기호 더보기"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"대문자 아이, 위 닷"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"알 수 없는 기호"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"알 수 없는 그림 이모티콘"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"지루한 얼굴"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"당황한 얼굴"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"선글라스 쓴 얼굴"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"놀란 얼굴"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"키스하는 얼굴"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"찌푸린 얼굴"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"대체 문자를 사용할 수 있습니다"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"대체 문자를 닫았습니다."</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"대체 추천 단어를 사용할 수 있습니다"</string>
diff --git a/java/res/values-ko/strings.xml b/java/res/values-ko/strings.xml
index b6f93e6..c71dbbd 100644
--- a/java/res/values-ko/strings.xml
+++ b/java/res/values-ko/strings.xml
@@ -26,24 +26,30 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"키를 누를 때 진동 발생"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"키를 누를 때 소리 발생"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"키를 누를 때 팝업"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"환경설정"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"계정 및 개인정보 보호"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"모양 및 레이아웃"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"제스처 타이핑"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"텍스트 수정"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"고급"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"테마"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"분할 키보드 사용"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google 키보드 동기화"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"동기화가 사용 설정됩니다."</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"개인 사전을 기기 간에 동기화합니다."</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"지금 동기화"</string>
+    <!-- no translation found for clear_sync_data_title (8582001557037069154) -->
     <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Google에서 동기화된 데이터 삭제"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"동기화된 데이터가 클라우드에서 삭제됩니다. 계속하시겠습니까?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"삭제"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"취소"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"개인 사전이 Google 서버에 동기화되며 백업됩니다. Google의 제품 개선을 위해 단어 빈도에 관한 통계 정보가 수집될 수 있습니다. 모든 정보는 "<a href="https://www.google.com/policies/privacy">"Google 개인정보취급방침"</a>"에 따라 수집되고 사용됩니다."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"이 기능을 사용하려면 기기에 Google 계정을 추가하세요."</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"다른 입력 방법으로 전환"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"언어 전환 키가 제공하는 기타 입력 방법"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"언어 전환 키"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"여러 입력 언어를 사용하도록 설정할 때 표시"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"슬라이드 표시기 표시"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Shift 또는 기호 키에서 슬라이드하는 동안 시각 효과 표시"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"키 팝업 해제 지연"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"지연 없음"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"기본값"</string>
@@ -62,9 +68,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"기본 사전"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"수정 제안 표시"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"글자를 입력하는 동안 추천 단어 표시"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"항상 표시"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"세로 모드로 표시"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"항상 숨기기"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"불쾌감을 주는 단어 차단"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"불쾌감을 줄 수 있는 단어는 추천하지 않음"</string>
     <string name="auto_correction" msgid="7630720885194996950">"자동 수정"</string>
@@ -80,26 +83,37 @@
     <string name="gesture_preview_trail" msgid="3802333369335722221">"제스처 흔적 표시"</string>
     <string name="gesture_floating_preview_text" msgid="4443240334739381053">"동적 플로팅 미리보기"</string>
     <string name="gesture_floating_preview_text_summary" msgid="4472696213996203533">"제스처에 따라 추천 단어 보기"</string>
-    <string name="gesture_space_aware" msgid="2078291600664682496">"구문 동작"</string>
+    <string name="gesture_space_aware" msgid="2078291600664682496">"구문 제스처"</string>
     <string name="gesture_space_aware_summary" msgid="4371385818348528538">"동작 중에 스페이스바 쪽으로 움직여 공백 입력"</string>
     <string name="voice_input" msgid="3583258583521397548">"음성 입력 키"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"사용 설정된 음성 입력 방법이 없습니다. 언어 및 입력 설정을 확인하세요."</string>
     <string name="configure_input_method" msgid="373356270290742459">"입력 방법 설정"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"입력 언어"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"의견 보내기"</string>
-    <string name="select_language" msgid="3693815588777926848">"입력 언어"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"언어"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"도움말 및 의견"</string>
+    <string name="select_language" msgid="5709487854987078367">"언어"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"저장하려면 다시 터치"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"저장하려면 여기를 터치하세요."</string>
     <string name="has_dictionary" msgid="6071847973466625007">"사전 사용 가능"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"키보드 테마"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"계정 전환"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"선택한 계정이 없습니다."</string>
+    <string name="account_selected" msgid="2846876462199625974">"현재 <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>을(를) 사용 중입니다."</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"확인"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"취소"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"로그아웃"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"사용할 계정 선택"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"영어(영국)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"영어(미국)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"스페인어(미국)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"인도 영어"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"세르비아어(라틴 문자)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"영어(영국)(<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"영어(미국)(<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"스페인어(미국)(<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"인도 영어(<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"세르비아어(<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g>(번체)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g>(키릴어)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g>(라틴어)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g>(컴팩트)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"언어 없음(알파벳)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"알파벳(QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"알파벳(QWERTZ)"</string>
@@ -108,16 +122,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"알파벳(콜맥)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"알파벳(PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"이모티콘"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"키보드 테마"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"맞춤 입력 스타일"</string>
     <string name="add_style" msgid="6163126614514489951">"스타일 추가"</string>
     <string name="add" msgid="8299699805688017798">"추가"</string>
@@ -129,14 +134,9 @@
     <string name="enable" msgid="5031294444630523247">"사용"</string>
     <string name="not_now" msgid="6172462888202790482">"나중에"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"같은 입력 스타일이 다음과 같이 이미 존재합니다. <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"키 길게 누르기 지연"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"키를 누를 때 진동 시간"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"키를 누를 때 소리 볼륨"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"외부 사전 파일 읽기"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"다운로드 폴더에 사전 파일이 없음"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"설치할 사전 파일 선택"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"이 파일을 <xliff:g id="LANGUAGE_NAME">%s</xliff:g>(으)로 설치하시겠습니까?"</string>
-    <string name="error" msgid="8940763624668513648">"오류 발생"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"키 길게 누르기 지연"</string>
     <string name="button_default" msgid="3988017840431881491">"기본값"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g>에 오신 것을 환영합니다."</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"제스처 타이핑 사용"</string>
@@ -154,8 +154,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"이제 즐겨찾는 앱을 <xliff:g id="APPLICATION_NAME">%s</xliff:g>에 입력할 수 있습니다."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"추가 언어 설정"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"완료됨"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"앱 아이콘 표시"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"실행기에 애플리케이션 아이콘 표시"</string>
     <string name="app_name" msgid="6320102637491234792">"사전 제공업체"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"사전 제공업체"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"사전 서비스"</string>
diff --git a/java/res/values-ky-rKG/strings-action-keys.xml b/java/res/values-ky-rKG/strings-action-keys.xml
index 115a392..ffc5d1e 100644
--- a/java/res/values-ky-rKG/strings-action-keys.xml
+++ b/java/res/values-ky-rKG/strings-action-keys.xml
@@ -20,19 +20,12 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for label_go_key (4033615332628671065) -->
-    <skip />
-    <!-- no translation found for label_next_key (5586407279258592635) -->
-    <skip />
-    <!-- no translation found for label_previous_key (1421141755779895275) -->
-    <skip />
-    <!-- no translation found for label_done_key (7564866296502630852) -->
-    <skip />
-    <!-- no translation found for label_send_key (482252074224462163) -->
-    <skip />
+    <string name="label_go_key" msgid="4033615332628671065">"Өтүү"</string>
+    <string name="label_next_key" msgid="5586407279258592635">"Кийинки"</string>
+    <string name="label_previous_key" msgid="1421141755779895275">"Мурунку"</string>
+    <string name="label_done_key" msgid="7564866296502630852">"Аткарылды"</string>
+    <string name="label_send_key" msgid="482252074224462163">"Жөнөтүү"</string>
     <string name="label_search_key" msgid="7965186050435796642">"Издөө"</string>
-    <!-- no translation found for label_pause_key (2225922926459730642) -->
-    <skip />
-    <!-- no translation found for label_wait_key (5891247853595466039) -->
-    <skip />
+    <string name="label_pause_key" msgid="2225922926459730642">"Бир аз токт"</string>
+    <string name="label_wait_key" msgid="5891247853595466039">"Күтүү"</string>
 </resources>
diff --git a/java/res/values-ky-rKG/strings-appname.xml b/java/res/values-ky-rKG/strings-appname.xml
new file mode 100644
index 0000000..4766fe9
--- /dev/null
+++ b/java/res/values-ky-rKG/strings-appname.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="english_ime_name" msgid="5940510615957428904">"Android Баскычтобу (AOSP)"</string>
+    <string name="spell_checker_service_name" msgid="1254221805440242662">"Android Орфографияны Текшергич (AOSP)"</string>
+    <string name="english_ime_settings" msgid="5760361067176802794">"Android Баскычтоп жөндөөлөрү (AOSP)"</string>
+    <string name="android_spell_checker_settings" msgid="6123949487832861885">"Android Орфографияны текшергич жөндөөлөрү (AOSP)"</string>
+</resources>
diff --git a/java/res/values-ky-rKG/strings-config-important-notice.xml b/java/res/values-ky-rKG/strings-config-important-notice.xml
new file mode 100644
index 0000000..44b9f9e
--- /dev/null
+++ b/java/res/values-ky-rKG/strings-config-important-notice.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="use_personalized_dicts_summary" msgid="590432261305469627">"Сунуштарды байланыш каражаттарыңыздын жана терилген дайындардын негизинде жакшыртыңыз"</string>
+</resources>
diff --git a/java/res/values-ky-rKG/strings-emoji-descriptions.xml b/java/res/values-ky-rKG/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..7d836d0
--- /dev/null
+++ b/java/res/values-ky-rKG/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Автордук укук белгиси"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Катталган белги"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Кош илеп белгиси"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Илептүү суроо белгиси"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Соода марка белгиси"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Маалымат булагы"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Солго-оңго багытталган жебе"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Өйдө-төмөн жебе"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Түндүк-батыш жебеси"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Түндүк-чыгыш жебеси"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Түштүк-чыгыш жебеси"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Түштүк-батыш жебеси"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Солго багытталган илмектүү жебе"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Оңго багытталган илмектүү жебе"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Саат"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Кум сааты"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Оң жакты караган кара кош үч бурчтук"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Солду караган кара кош үч бурчтук"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Өйдө караган кара кош үч бурчтук"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Төмөн караган кара кош үч бурчтук"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Ойготкуч саат"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Куму агып жаткан кум сааты"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Тегеректелген чоң латын m тамгасы"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Кичине кара чарчы"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Кичине ак чарчы"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Оң жакты караган кара үч бурчтук"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Солду караган кара үч бурчтук"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Орточо ак чарчы"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Орточо кара чарчы"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Орточо кичине ак чарчы"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Орточо кичине кара чарчы"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Нур чачыраган кара күн"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Булут"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Кара телефон"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Белги коюлган кутуча"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Кол чатыр менен жамгыр тамчылары"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Ысык суусундук"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Жогору караган ак көрсөткүч"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Жылмайган ак жүз"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Кой"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Букачар"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Эгиздер"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Бөйөн"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Арстан"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Бийкеч"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Тараза"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Чаян"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Жаачы"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Текечер"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Суу куйду"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Балык"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Карга белгиси"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Чырым белгиси"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Ача белгиси"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Момун белгиси"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Ысык булак"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Колдонулган нерселерди кайра иштетүү символу"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Майыптар арабасы символу"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Якорь"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Эскертүү белгиси"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Жогорку чыңалгандык белгиси"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Орточо ак тегерек"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Орточо кара тегерек"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Футбол тобу"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Бейсбол"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Карсыз кар киши"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Булутка жашынган күн"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Жылан көтөргүч"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Кирүүгө болбойт"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Чиркөө"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Фонтан"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Көзөнөктөгү желек"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Парус кайыгы"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Чатыр"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Күйүүчү май насосу"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Кара кайчы"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Жоон ак белги"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Учак"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Конверт"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Көтөрүлгөн муштум"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Көтөрүлгөн кол"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Жеңиш колу"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Калем"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Кара калем учу"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Жоон белги"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Жоон көбөйтүү белгиси x"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Жылтырактар"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Сегиз бурчтуу жылдыз"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Сегиз бурчтуу кара жылдыз"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Кар бүртүгү"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Жылтылдоо"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Крест белгиси"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Чарчыланган крест белгиси"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Кара суроо белгилери менен жасалгалоо"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Ак суроо белгилер менен жасалгалоо"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Ак илеп белгилер менен жасалгалоо"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Жоон илеп белгисинин символу"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Жоон кара жүрөк"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Жоон кошуу белгиси"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Жоон кемитүү белгиси"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Жоон бөлүү белгиси"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Оңго багытталган кара жебе"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Тармал илмек"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Кош тармал илмек"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Оңго багытталып, андан соң өйдө карай ийилген жебе"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Оңго багытталып, андан соң төмөн карай ийилген жебе"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Солго багытталган кара жебе"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Жогору караган кара жебе"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Төмөн багытталган кара жебе"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Чоң кара чарчы"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Чоң ак чарчы"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Орточо ак жылдыз"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Жоон чоң тегерек"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Толкундуу сызык"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Бөлүк кезектешүү белгиси"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Тегеректелген идеограмма, куттуктоо"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Тегеректелген идеограмма купуясы"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Маджонг сөөкчөсү кызыл ажыдаар"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Оюн картасынын кара джокери"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Экинчи топтогу кан"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Үчүнчү топтогу кан"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Биринчи топтогу кан"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Унаа токтотмосу"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Төртүнчү топтогу кан"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"Чарчы CL"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Чарчыланган салкын"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Чарчыланган бош"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"Чарчыланган ID"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Чарчыланган жаңы"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Чарчыланган N G"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Чарчыланган OK"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"Чарчыланган SOS"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Илеп белгиси менен чарчыланган"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Чарчыланганга каршы"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Чарчыланган катакана бул жерде"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Чарчыланган катакана кызматы"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Чарчыланган идеограмма, акысыз"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Чарчыланган идеограмма, бош эмес орундук"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Чарчыланган идеограмма, тыюу салуу"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Чарчыланган идеограмма, вакансиясы"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Чарчыланган идеограмма, кабыл алуу"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Чарчыланган идеограмма, жыш отурукташкан"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Чарчыланган идеограмма, төлөндү"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Чарчыланган идеограмма, ай сайын"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Чарчыланган идеограмма, колдонмо"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Чарчыланган идеограмма, арзандатуу"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Бизнестеги чарчыланган идеограмма"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Тегеректелген идеограмма, артыкчылык"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Тегеректелген идеограмма, кабыл алуу"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Циклон"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Тумандуу"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Жабык кол чатыр"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Жылдыздуу түн"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Тоо үстүнөн күндүн чыгышы"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Күндүн чыгышы"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Күүгүмдөгү шаар көрүнүшү"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Имараттардын үстүнөн күндүн батышы"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Асан-үсөн"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Түнкү көпүрө"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Суу толкуну"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Жанар тоо"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Саманчынын жолу"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Жер шары Европа-Африка"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Жер шары жана америка"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Жер шары Азия-Австралия"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Меридиандары көрсөтүлгөн глобус"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Жаңы ай белгиси"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Момдон жасалган жарым ай белгиси"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Биринчи чейректеги ай белгиси"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Момдон жасалган ийилген ай белгиси"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Толгон ай белгиси"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Кемип жаткан ийилген ай белгиси"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Акыркы чейректеги ай белгиси"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Кемип жаткан жарым ай белгиси"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Жарым ай"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Жаңы ай бети менен"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Биринчи чейректеги ай бети менен"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Акыркы чейректеги ай бети менен"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Толгон ай бети менен"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Күн бети менен"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Жаркыраган жылдыз"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Учкан жылдыз"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Каштан"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Көчөт"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Түбөлүктүү жашыл дарак"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Жалбырагы түшүп жаткан дарак"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Пальма дарагы"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Кактус"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Жоогазын"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Алча гүлү"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Роза"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Гибискус"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Күнкарама"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Гүлдөө"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Жүгөрү сотосу"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Күрүч машагы"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Чөп"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Төрт жалбырактуу беде"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Клён жалбырагы"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Үзүлгөн жалбырак"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Шамалга дирилдеген жалбырак"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Козу карын"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Помидор"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Баклажан"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Жүзүм"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Коон"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Дарбыз"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Мандарин"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Лимон"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Банан"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ананас"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Кызыл алма"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Көк алма"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Алмурут"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Шабдаалы"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Алча"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Кулпунай"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Гамбургер"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Бир кесим пицца"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Сөөктүү эт"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Канаттуунун шыйрагы"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Күрүч печеньеси"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Күрүч тобу"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Бышкан күрүч"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Карри жана күрүч"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Бууланган казан"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Спагетти"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Нан"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Картөшкө-фри"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Куурулган таттуу картөшкө"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Данго"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Оден"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Суши"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Куурулган креветка"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Айланма жасалгалуу балык торту"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Жумшак балмуздак"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Жылмаланган муз"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Балмуздак"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Пончик"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Булочка"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Шоколад тилкеси"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Момпосуй"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Чыбыктагы момпосуй"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Крем"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Бал чөйчөк"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Үбөлөнмө торт"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Бенто кутусу"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Бир чөйчөк тамак"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Ашпозчулук"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Вилка жана бычак"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Чыны"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Сакэ шишеси жана чөйчөк"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Вино бокалы"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Коктейль бокалы"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Тропикалык суусундук"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Сыра кружкасы"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Шыңгыраган сыра кружкалары"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Баланын шишеси"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Тасма"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Оролгон белек"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Туулган күн торту"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Ашкабак чырагы"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Рождество балатысы"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Аяз ата"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Фейерверктер"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Бенгал шамы"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Шар"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Жардыргыч"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Конфетти"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Танабата дарагы"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Кайчылашкан желектер"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Кызыл карагай жасалгасы"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Жапон куурчактары"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Түстүү карптар"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Кытай жылаажындары"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Айды көрүү аземи"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Мектеп сумкасы"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Бүтүрүүчүнүн баш кийими"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Каруселдеги жылкылар"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Шайтандын дөңгөлөгү"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Америка дөбөлөрү"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Кайырмак жана балык"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Микрофон"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Тасма камерасы"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Кинотеатр"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Гарнитура"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Сүрөтчүнүн боёктору"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Бийик шляпа"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Цирк чатыры"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Билет"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Чык этме нумератору"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Аткаруу чеберчилиги"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Видео оюн"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Таамай тийүү"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Оюн автоматы"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Бильярд"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Оюн сөөгү"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Боулинг"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Гүлдүү оюн картасы"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Музыкалык нота"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Бир нече музыкалык нота"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Саксофон"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Гитара"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Музыкалык баскычтоп"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Сурнай"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Скрипка"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Музыканын коштоосу"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Арта салынган тасмасы бар майка"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Теннис ракеткасы жана тобу"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Лыжа жана лыжа өтүгү"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Баскетбол жана себет"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Чакмактуу желек"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Сноубордчу"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Жөө күлүк"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Сёрфингчи"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Олжо"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Ат чабыш"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Америка футболу"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Регби"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Сүзүүчү"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Үй имараты"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Короосу бар үй"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Кеңсе имараты"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Жапон почтасы"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Европа почтасы"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Оорукана"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Банк"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Банкомат"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Мейманкана"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Сүйүү мейманканасы"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Чакан дүкөн"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Мектеп"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Универмаг"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Завод"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Идзакая чырагы"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Жапон сепили"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Европа сепили"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Келемиш"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Чычкан"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Өгүз"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Азия буйволу"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Уй"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Леопард"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Коён"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Мышык"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Ажыдаар"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Крокодил"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Кит"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Үлүл"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Жылан"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Жылкы"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Кочкор"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Эчки"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Кой"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Маймыл"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Короз"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Жөжө"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Ит"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Чочко"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Каман"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Пил"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Осьминог"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Буралма кабык"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Коңуз"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Кумурска"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Бал аары"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Эл кайда көчөт"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Балык"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Тропикалык балык"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Ит балык"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Ташбака"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Жаңы чыккан жөжө"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Балапан"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Алдыны карап турган балапан"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Куш"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Пингвин"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Коала"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Пудель"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Бир өркөчтүү төө"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Эки өркөчтүү төө"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Дельфин"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Чычкан"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Уйдун башы"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Жолборс"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Коён"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Мышык"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Ажыдаар"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Суу бүрккөн кит"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Жылкы"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Маймыл"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Ит"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Чочко"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Бака"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Хомяк"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Бөрү"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Аюу"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Панда"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Чочко мурун"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Жаныбарлардын издери"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Көздөр"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Кулак"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Мурун"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Ооз"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Тил"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Сөөмөйүн жогору караткан ак кол көрсөткүчү"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Cөөмөйүн төмөн караткан ак кол көрсөткүчү"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Сөөмөйүн солго караткан ак кол көрсөткүчү"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Cөөмөйүн оңго караткан ак кол көрсөткүчү"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Түйүлгөн муштум белгиси"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Кол булгалоо белгиси"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Ok кол белгиси"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Жогору караган бармак белгиси"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Ылдый караган бармак белгиси"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Кол чабуу белгиси"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Алакандар белгиси"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Таажы"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Кыз-келиндердин шляпасы"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Көз айнек"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Галстук"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Футболка"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Джинсы"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Көйнөк"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Кимоно"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Бикини"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Кыз-келиндердин кийимдери"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Капчык"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Кол баштык"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Баштык"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Эркектердин бут кийими"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Спорттук бут кийим"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Шиш така"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Кыз-келиндер сандалы"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Кыз-келиндердин өтүгү"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Бут изи"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Бюст карааны"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Бюст карааны"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Эркек бала"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Кыз"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Эркек киши"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Аял"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Үй-бүлө"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Кол кармашкан эркек менен аял"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Кол кармашкан эки эркек"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Кол кармашкан эки аял"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Полиция офицери"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Коёндун кейпин кийген аял"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Ак үлбүрчөктүү колукту"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Ак саргыл чачтуу адам"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Гуа пи маочон киши"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Селдечен киши"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Абышка"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Кемпир"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Наристе"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Куруучу"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Ханбийке"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Жапон дөөсү"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Жапон гоблини"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Арбак"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Наристе периште"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Бөтөн планеталык"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Бөтөн планеталык желмогуз"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Шайтан"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Баш сөөк"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Маалымат тактасынын адамы"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Кароолчу"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Бийчи"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Ооз боёк"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Тырмак боёгу"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Жүздү укалоо"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Чач жасалгасы"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Чачтарач мамысы"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Шприц"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Дары"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Өбүү белгиси"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Сүйүү каты"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Шакек"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Акак таш"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Өбүү"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Гүлдесте"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Түгөйлөр жана жүрөк"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Үлпөт"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Соккон жүрөк"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Жараланган жүрөк"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Эки жүрөк"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Жаркылдаган жүрөк"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Өсүп жаткан жүрөк"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Жебе сайылган жүрөк"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Көк жүрөк"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Жашыл жүрөк"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Сары жүрөк"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Кызгылт сыя жүрөк"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Тасма байланган жүрөк"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Айланган жүрөктөр"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Жүрөк жасалгасы"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Ичинде чекити бар алмаз формасы"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Электр лампочкасы"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Ачуулануу символу"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Бомба"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Уйку символу"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Кагылыш символу"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Куюлуп жаткан тер символу"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Тамчы"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Сызыкча белгиси"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Үйүлгөн заң"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Түйүлгөн булчуң"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Баш айлануу символу"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Кеп булутчасы"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Ой булутчасы"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Ак гүл"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Жүз упай символу"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Акча баштыгы"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Валюта алмаштыруу"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Оор доллар белгиси"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Насыя картасы"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Йен банкнотасы"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Доллар банкнотасы"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Евро банкнотасы"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Фунт банкнотасы"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Канаттары бар акча"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Жогору багытталган диаграмма жана йен белгиси"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Орун"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Жеке компьютер"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Портфель"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Минидиск"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Дискета"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Оптикалык диск"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"Dvd"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Файлдар папкасы"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Ачык файл папкасы"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Чети бүгүлгөн барак"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Жогору караган барак"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Жылнаама"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Айрыма жылнаама"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Карта индекси"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Жогору карай багытталган диаграмма"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Төмөн карай багытталган диаграмма"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Тилке диаграммасы"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Алмашуу буфери"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Сайгыч"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Тегерек сайгыч"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Кыстыргыч"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Сызгыч"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Үч бурчтук сызгыч"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Кыстарылган кыстырмалар"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Эсеп-кысап китепчеси"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Блокнот"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Кооз мукабалуу блокнот"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Жабык китеп"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Ачык китеп"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Жашыл китеп"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Көк китеп"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Кызгылтым сары китеп"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Китептер"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Ысым төш белгиси"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Сыдырып кароо"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Мемо"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Телефон трубкасы"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Пейжер"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Факс машинасы"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Спутник антеннасы"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Катуу сүйлөгүч"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Сүрөөчү рупор"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Жөнөтүүчү себет"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Алуучу себет"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Таңгак"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"E-mail символу"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Алынуучу конверт"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Үстүндө төмөн караган жебелүү конверт"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Желеги түшүрүлгөн жабык кат кутусу"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Желеги көтөрүлгөн жабык кат кутусу"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Желеги көтөрүлгөн ачык кат кутусу"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Желеги түшүрүлгөн ачык кат кутусу"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Почта кутусу"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Труба"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Гезит"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Мобилдик телефон"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Сол жагында оңго багытталган жебелүү уюлдук телефон"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Дирилдөө режими"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Мобилдик телефон өчүк"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Мобилдик телефондор жок"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Тилкелүү антенна"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Камера"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Видео камера"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Сыналгы"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Радио"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Видеокассета"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Оңду карай айланган жебелер"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Саат жебеси боюнча оңду жана солду карай айланган ачык тегеректүү жебелер"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Оңду карай саат жебеси боюнча жана солду карай айланган ачык тегеректүү жебелер тегеректелген бир катмар менен"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Саат жебеси боюнча төмөн карай жана өйдө карай айланган ачык тегеректүү жебелер"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Төмөн карай саат жебесине каршы айланган жана өйдө караган ачык тегеректүү жебелер"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Төмөн жарык символу"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Жогорку деңгээлдеги жарык символу"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Тыюу салынган катуу сүйлөткүч"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Катуу сүйлөткүч"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Бир толкундуу катуу сүйлөткүч"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Үч толкундуу катуу сүйлөткүч"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Батарея"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Электр сайгычы"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Сол жакты караган чоңойтуу айнеги"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Оң жакты караган чоңойтуу айнеги"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Сыя калеми менен кулпулоо"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Ачкычы жанында турган жабык кулпу"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Ачкыч"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Кулпу"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Ачык кулпу"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Коңгуроо"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Тыюу салынган коңгуроо"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Кыстарма"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Шилтеме символу"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Радио баскычы"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Үстүндөгү солго багытталган жебе менен артка"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"Үстүндөгү солго багытталган жебе менен аягына"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"Үстүндөгү солго багытталган жебелүү илеп белгиси менен күйгүзүү"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Үстүндөгү оңго багытталган жебе менен жакында"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Үстүндөгү өйдө багытталган жебе менен башына"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Он сегиз жашка чейинкилерге тыюу салынат символу"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Он деген баскычтын капкакчасы"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Латын чоң тамгаларын киргизүү символу"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Кичине латын тамгаларын киргизүү символу"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Сандарды киргизүү символу"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Символдорду киргизүү символу"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Латын тамгаларын киргизүү символу"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Өрт"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Электр колчырагы"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Үлүк ачкычы"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Балка"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Үлүк менен болт"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Хочо"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Тапанча"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Микроскоп"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Телескоп"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Сыйкырдуу кристалл"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Ортосунда чекити бар алты чекиттүү жылдыз"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Башталгыч үчүн жапон символу"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Үч тиштүү эмблема"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Кара чарчы баскыч"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Ак чарчы баскыч"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Чоң кызыл тегерек"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Чоң көк тегерек"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Чоң кызгылт сары алмаз"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Чоң көк алмаз"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Кичине кызгылт сары алмаз"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Кичине көк алмаз"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Жогору караган кызыл үч бурчтук"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Төмөн караган кызыл үч бурчтук"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Жогору караган кичинекей кызыл үч бурчтук"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Төмөн караган кичинекей кызыл үч бурчтук"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Бирди көрсөткөн саат"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Экини көрсөткөн саат"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Үчтү көрсөткөн саат"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Төрттү көрсөткөн саат"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Бешти көрсөткөн саат"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Алтыны көрсөткөн саат"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Жетини көрсөткөн саат"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Сегизди көрсөткөн саат"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Тогузду көрсөткөн саат"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Онду көрсөткөн саат"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Он бирди көрсөткөн саат"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Он экини көрсөткөн саат"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Бир жарымды көрсөткөн саат"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Эки жарымды көрсөткөн саат"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Үч жарымды көрсөткөн саат"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Төрт жарымды көрсөткөн саат"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Беш жарымды көрсөткөн саат"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Алты жарымды көрсөткөн саат"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Жети жарымды көрсөткөн саат"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Сегиз жарымды көрсөткөн саат"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Тогуз жарымды көрсөткөн саат"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Он жарымды көрсөткөн саат"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Он бир жарымды көрсөткөн саат"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Он эки жарымды көрсөткөн саат"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Фудзияма тоосу"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Токио мунарасы"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Эркиндик статуясы"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Жапон карааны"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Мойай"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Арсаңдаган жүз"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Күлмүңдөгөн көздөр менен арсаңдаган жүз"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Көздөрүнөн жаш чыккыча күлгөн жүз"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Оозун ачып жылмайган бет"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Көздөрүн күлмүңдөтүп оозун ачып алып жылмайган жүз"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Оозун ачып жана муздак тер басып жылмайган жүз"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Көздөрүн чылк жумуп оозун ачып жылмайган жүз"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Кудайга ыраазы болуп жылмайган жүз"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Кытмыр жылмайган шайтан"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Көз кыскан жүз"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Күлмүңдөгөн көздөр менен жылмайган жүз"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Даамдуу тамакка тамшанган жүз"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Жеңилденген жүз"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Жүрөкчө көздөр менен жылмайган жүз"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Көз айнекчен жылмайган жүз"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Мыйыгынан жылмайган жүз"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Кайдыгер жүз"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Сезимсиз жүз"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Кызыксыз жүз"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Муздак тер баскан жүз"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Ойго баткан жүз"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Абдаарыган жүз"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Маң болгон жүз"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Өөп жаткан жүз"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Өбүү ыргыткан жүз"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Күлмүңдөгөн көздөр менен жылмайган жүз"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Көздөрүн чылк жумуп алып өөп жаткан жүз"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Тилин көрсөткөн жүз"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Тилин сунуп көз кыскан жүз"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Көздөрүн чылк жумуп алып тилин сунган жүз"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Көңүлү калган жүз"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Тынчсызданган жүз"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Ачууланган жүз"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Тултуйган жүз"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Ыйлап жаткан жүз"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Көшөргөн жүз"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Жеңишке жеткен жүз"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Көңүлү калган бирок жеңилдеген жүз"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Оозун ачып кабагын чытыган жүз"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Кыйналган жүз"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Үрөйү учкан жүз"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Зериккен жүз"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Уйкусураган жүз"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Чарчаган жүз"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Кебетесин бузган жүз"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Боздогон жүз"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Оозун ачкан жүз"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Унчукпаган бет"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Оозун ачкан муздак тер баскан жүз"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Коркуп кыйкырып жаткан жүз"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Таң калган жүз"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Бети кызарып уялган жүз"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Уктап жаткан жүз"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Башы айланган жүз"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Оозу жок жүз"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Медициналык маскачан жүз"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Күлмүңдөгөн көздөр менен арсаңдаган мышык"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Көздөрүнөн жаш чыккыча күлгөн мышык"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Оозун ачып жылмайган мышык"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Жүрөкчө көздөр менен жылмайган мышык"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Мыйыгынан жылмайган мышык"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Көздөрүн чылк жумуп өөп жаткан мышык"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Тултуйган мышык"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Ыйлап жаткан мышык"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Зериккен мышык"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Болбойт деп жаңсаган жүз"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Жарайт деп жаңсаган жүз"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Жүгүнүп жаткан адам"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Эч нерсе көрбөйм деген маймыл"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Эч нерсе укпайм деген маймыл"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Эч нерсе айтпайм деген маймыл"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Бир колун көтөрүп жыргаган адам"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Эки колун көтөрүп сүйүнгөн адам"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Кабагын бүркөгөн адам"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Тултуйган жүз"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Колдорун бооруна алган адам"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Ракета"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Вертолёт"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Буу локомотиви"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Темир жол вагону"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Жогорку ылдамдыктагы поезд"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Ок тумшуктуу жогорку ылдамдыктагы поезд"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Поезд"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Метро"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Электропоезд"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Бекет"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Трамвай"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Трамвай вагону"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Автобус"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Келе жаткан автобус"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Троллейбус"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Автобус аялдамасы"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Минибус"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Тез жардам машинасы"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Өрт өчүргүч унаасы"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Полиция машинасы"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Келе жаткан полиция машинасы"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Такси"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Келе жаткан такси"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Автоунаа"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Келе жаткан автоунаа"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Турак-жай унаасы"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Оор жүк ташуучу унаа"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Оор жүк ташыган унаа"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Трактор"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Жалгыз рельстүү"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Тоодогу темир жол"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Асма темир жол"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Тоо аркан жолу"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Асма аркан жолу"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Кеме"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Калактуу кайык"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Ылдам жүргөн кайык"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Жантык жол чырак"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Тик жол чырак"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Курулуш белгиси"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Полиция машинасынын айланма жарыгы"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Кармагычы бар үч бурчтуу желек"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Эшик"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Жол жок белгиси"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Чылым чегүүгө уруксат берген символ"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Чылым чегүүгө тыюу салган символ"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Таштандыны туш келди жерге ыргытпа символу"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Булгаба символу"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Таза суу символу"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Ичүүгө жараксыз суу символу"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Велосипед"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Велосипед тебүүгө тыюу салынат"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Велосипедчи"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Тоо велосипедчи"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Жөө киши"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Жөө кишилерге жүрүүгө тыюу салынган"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Балдар өтүп жатат"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Эркектер белгиси"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Кыз-келиндердин символу"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Даараткана"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Жаш балдар символу"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Ажаткана"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Даараткана"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Душ"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Ванна"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Ванна таштеги"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Паспорт текшерүү"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Бажы"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Жүктү алуу"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Жүктү калтыруу"</string>
+</resources>
diff --git a/java/res/values-ky-rKG/strings-talkback-descriptions.xml b/java/res/values-ky-rKG/strings-talkback-descriptions.xml
index 70c7792..a19b695 100644
--- a/java/res/values-ky-rKG/strings-talkback-descriptions.xml
+++ b/java/res/values-ky-rKG/strings-talkback-descriptions.xml
@@ -20,112 +20,69 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for spoken_use_headphones (4313642710742229868) -->
-    <skip />
-    <!-- no translation found for spoken_current_text_is (4240549866156675799) -->
-    <skip />
-    <!-- no translation found for spoken_no_text_entered (1711276837961785646) -->
-    <skip />
-    <!-- no translation found for spoken_auto_correct (8989324692167993804) -->
-    <skip />
-    <!-- no translation found for spoken_auto_correct_obscured (7769449372355268412) -->
-    <skip />
+    <string name="spoken_use_headphones" msgid="4313642710742229868">"Катуу айтылган сырсөз ачкычтарын угуу үчүн гарнитураны туташтырыңыз."</string>
+    <string name="spoken_current_text_is" msgid="4240549866156675799">"Учурдагы текст %s"</string>
+    <string name="spoken_no_text_entered" msgid="1711276837961785646">"Текст киргизилген жок"</string>
+    <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> сөзүн <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> сөзүнө оңдойт"</string>
+    <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> авто оңдойт"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Сунуш жок"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Белгисиз белги"</string>
-    <!-- no translation found for spoken_description_shift (7209798151676638728) -->
-    <skip />
-    <!-- no translation found for spoken_description_symbols_shift (3483198879916435717) -->
-    <skip />
-    <!-- no translation found for spoken_description_shift_shifted (3122704922642232605) -->
-    <skip />
-    <!-- no translation found for spoken_description_symbols_shift_shifted (5179175466878186081) -->
-    <skip />
-    <!-- no translation found for spoken_description_caps_lock (1224851412185975036) -->
-    <skip />
-    <!-- no translation found for spoken_description_delete (3878902286264983302) -->
-    <skip />
-    <!-- no translation found for spoken_description_to_symbol (8244903740201126590) -->
-    <skip />
-    <!-- no translation found for spoken_description_to_alpha (4081215210530031950) -->
-    <skip />
-    <!-- no translation found for spoken_description_to_numeric (4560261331530795682) -->
-    <skip />
-    <!-- no translation found for spoken_description_settings (7281251004003143204) -->
-    <skip />
-    <!-- no translation found for spoken_description_tab (8210782459446866716) -->
-    <skip />
-    <!-- no translation found for spoken_description_space (5908716896642059145) -->
-    <skip />
-    <!-- no translation found for spoken_description_mic (6153138783813452464) -->
-    <skip />
-    <!-- no translation found for spoken_description_emoji (7990051553008088470) -->
-    <skip />
-    <!-- no translation found for spoken_description_return (3183692287397645708) -->
-    <skip />
-    <!-- no translation found for spoken_description_search (5099937658231911288) -->
-    <skip />
-    <!-- no translation found for spoken_description_dot (5644176501632325560) -->
-    <skip />
-    <!-- no translation found for spoken_description_language_switch (6818666779313544553) -->
-    <skip />
-    <!-- no translation found for spoken_description_action_next (431761808119616962) -->
-    <skip />
-    <!-- no translation found for spoken_description_action_previous (2919072174697865110) -->
-    <skip />
-    <!-- no translation found for spoken_description_shiftmode_on (5107180516341258979) -->
-    <skip />
-    <!-- no translation found for spoken_description_shiftmode_locked (7307477738053606881) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_symbol (111186851131446691) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_symbol_shift (4305607977537665389) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_alpha (4676004119618778911) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_phone (2061220553756692903) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_phone_shift (7879963803547701090) -->
-    <skip />
-    <!-- no translation found for announce_keyboard_hidden (2313574218950517779) -->
-    <skip />
-    <!-- no translation found for announce_keyboard_mode (6698257917367823205) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_date (6597407244976713364) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_date_time (3642804408726668808) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_email (1239682082047693644) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_im (3812086215529493501) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_number (5395042245837996809) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_phone (2486230278064523665) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_text (9138789594969187494) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_time (8558297845514402675) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_url (8072011652949962550) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_recents (4185344945205590692) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_people (8414196269847492817) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_objects (6116297906606195278) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_nature (5018340512472354640) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_places (1163315840948545317) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_symbols (474680659024880601) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_emoticons (456737544787823539) -->
-    <skip />
+    <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Дагы символдор"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Символдор"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shift"</string>
+    <string name="spoken_description_delete" msgid="3878902286264983302">"Жок кылуу"</string>
+    <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Символдор"</string>
+    <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Тамгалар"</string>
+    <string name="spoken_description_to_numeric" msgid="4560261331530795682">"Сандар"</string>
+    <string name="spoken_description_settings" msgid="7281251004003143204">"Жөндөөлөр"</string>
+    <string name="spoken_description_tab" msgid="8210782459446866716">"Кыстырма"</string>
+    <string name="spoken_description_space" msgid="5908716896642059145">"Боштук"</string>
+    <string name="spoken_description_mic" msgid="6153138783813452464">"Үн менен киргизүү"</string>
+    <string name="spoken_description_emoji" msgid="7990051553008088470">"Эмодзи"</string>
+    <string name="spoken_description_return" msgid="3183692287397645708">"Кайтуу"</string>
+    <string name="spoken_description_search" msgid="5099937658231911288">"Издөө"</string>
+    <string name="spoken_description_dot" msgid="5644176501632325560">"Чекит"</string>
+    <string name="spoken_description_language_switch" msgid="6818666779313544553">"Тилди которуштуруу"</string>
+    <string name="spoken_description_action_next" msgid="431761808119616962">"Кийинки"</string>
+    <string name="spoken_description_action_previous" msgid="2919072174697865110">"Мурунку"</string>
+    <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift иштетилген"</string>
+    <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps lock иштетилди"</string>
+    <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Символдор режими"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Дагы символдор режими"</string>
+    <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Тамгалар режими"</string>
+    <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Телефон режими"</string>
+    <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Телефон символдор режими"</string>
+    <string name="announce_keyboard_hidden" msgid="2313574218950517779">"Баскытоп жашырылган"</string>
+    <string name="announce_keyboard_mode" msgid="6698257917367823205">"<xliff:g id="KEYBOARD_MODE">%s</xliff:g> баскычтобу көрсөтүлүүдө"</string>
+    <string name="keyboard_mode_date" msgid="6597407244976713364">"күнү"</string>
+    <string name="keyboard_mode_date_time" msgid="3642804408726668808">"күнү жана убакыты"</string>
+    <string name="keyboard_mode_email" msgid="1239682082047693644">"email"</string>
+    <string name="keyboard_mode_im" msgid="3812086215529493501">"SMS/MMS"</string>
+    <string name="keyboard_mode_number" msgid="5395042245837996809">"сан"</string>
+    <string name="keyboard_mode_phone" msgid="2486230278064523665">"телефон"</string>
+    <string name="keyboard_mode_text" msgid="9138789594969187494">"текст"</string>
+    <string name="keyboard_mode_time" msgid="8558297845514402675">"убакыт"</string>
+    <string name="keyboard_mode_url" msgid="8072011652949962550">"URL"</string>
+    <string name="spoken_descrption_emoji_category_recents" msgid="4185344945205590692">"Акыркылар"</string>
+    <string name="spoken_descrption_emoji_category_people" msgid="8414196269847492817">"Адамдар"</string>
+    <string name="spoken_descrption_emoji_category_objects" msgid="6116297906606195278">"Объекттер"</string>
+    <string name="spoken_descrption_emoji_category_nature" msgid="5018340512472354640">"Жаратылыш"</string>
+    <string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"Жерлер"</string>
+    <string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"Символдор"</string>
+    <string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"Жымыңдар"</string>
     <string name="spoken_description_upper_case" msgid="4904835255229433916">"Баш тамга <xliff:g id="LOWER_LETTER">%s</xliff:g>"</string>
     <string name="spoken_letter_0049" msgid="4743162182646977944">"Баш тамга I"</string>
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Баш тамга I, төбөсүндө чекити бар"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Белгисиз символ"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Белгисиз эмодзи"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Зериккен жүз"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Уялган жүз"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Кара көз айнекчен жүз"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Таң калган жүз"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Өөп жаткан жүз"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Кабагын бүркөгөн жүз"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Альтернативалуу белгилер бар"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Альтернативалуу белгилер этибарга алынбайт"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Альтернативалуу сунуштар бар"</string>
diff --git a/java/res/values-ky-rKG/strings.xml b/java/res/values-ky-rKG/strings.xml
index cf60508..fc1bb21 100644
--- a/java/res/values-ky-rKG/strings.xml
+++ b/java/res/values-ky-rKG/strings.xml
@@ -20,355 +20,189 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for english_ime_input_options (3909945612939668554) -->
+    <string name="english_ime_input_options" msgid="3909945612939668554">"Дайндрд киргзүү парамтрлр"</string>
+    <string name="use_contacts_for_spellchecking_option_title" msgid="5374120998125353898">"Байланыш ысымдарын издөө"</string>
+    <string name="use_contacts_for_spellchecking_option_summary" msgid="8754413382543307713">"Орфографияны текшергич байланыштар тизмеңиздги жазуулрды пайдалнт"</string>
+    <string name="vibrate_on_keypress" msgid="5258079494276955460">"Баскыч басылганда дирилдесин"</string>
+    <string name="sound_on_keypress" msgid="6093592297198243644">"Баскыч басылганда чыккан үн"</string>
+    <string name="popup_on_keypress" msgid="123894815723512944">"Баскыч басылганда калкып чыкма"</string>
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Мүмкүнчүлүктөрдү тандоо"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Каттоо эсептери жана купуялык"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Көрүнүш жана жайгашуулар"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Жаңсап терүү"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Текстти оңдоо"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Өркүндөтүлгөн"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Тема"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Баскычтопту бөлүүнү иштетүү"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google тергичин шайкештирүү"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Шайкештирүү өчүрүлгөн"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Жеке сөздүгүңүздү бардык түзмөктөрүңүздө шайкештириңиз"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Азыр шайкштр"</string>
+    <!-- no translation found for clear_sync_data_title (8582001557037069154) -->
     <skip />
-    <!-- no translation found for use_contacts_for_spellchecking_option_title (5374120998125353898) -->
-    <skip />
-    <!-- no translation found for use_contacts_for_spellchecking_option_summary (8754413382543307713) -->
-    <skip />
-    <!-- no translation found for vibrate_on_keypress (5258079494276955460) -->
-    <skip />
-    <!-- no translation found for sound_on_keypress (6093592297198243644) -->
-    <skip />
-    <!-- no translation found for popup_on_keypress (123894815723512944) -->
-    <skip />
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
-    <!-- no translation found for include_other_imes_in_language_switch_list (4533689960308565519) -->
-    <skip />
-    <!-- no translation found for include_other_imes_in_language_switch_list_summary (840637129103317635) -->
-    <skip />
-    <!-- no translation found for show_language_switch_key (5915478828318774384) -->
-    <skip />
-    <!-- no translation found for show_language_switch_key_summary (7343403647474265713) -->
-    <skip />
-    <!-- no translation found for sliding_key_input_preview (6604262359510068370) -->
-    <skip />
-    <!-- no translation found for sliding_key_input_preview_summary (6340524345729093886) -->
-    <skip />
-    <!-- no translation found for key_preview_popup_dismiss_delay (6213164897443068248) -->
-    <skip />
-    <!-- no translation found for key_preview_popup_dismiss_no_delay (2096123151571458064) -->
-    <skip />
-    <!-- no translation found for key_preview_popup_dismiss_default_delay (2166964333903906734) -->
-    <skip />
-    <!-- no translation found for abbreviation_unit_milliseconds (8700286094028323363) -->
-    <skip />
-    <!-- no translation found for settings_system_default (6268225104743331821) -->
-    <skip />
-    <!-- no translation found for use_contacts_dict (4435317977804180815) -->
-    <skip />
-    <!-- no translation found for use_contacts_dict_summary (6599983334507879959) -->
-    <skip />
-    <!-- no translation found for use_personalized_dicts (5167396352105467626) -->
-    <skip />
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Шайкештештирилген дайындарыңыз Google\'дан жок кылынат"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Шайкештирилген дайындарыңыз булуттан жок кылынат. Макулсузбу?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Жок кылуу"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Жокко чыгаруу"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Жеке сөздүгүңүз шайкештирилет жана Google серверлерине сакталат. Өндүрүмдөрүбүздү жакшыртууга жардамдашуу максатында сөз жыштыгынын статистикалык маалыматы топтолушу мүмкүн. Бардык маалыматты топтоо жана колдонуу "<a href="https://www.google.com/policies/privacy">"Google\'дун Купуялык Саясатына"</a>" ылайык болот."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Бул өзгөчөлүктү иштт ү-н ушул түзмөккө Google каттоо эсбн кошңз"</string>
+    <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Башка киргзүү ыкмалрна которуу"</string>
+    <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Тил которуштуруу баскычында башка киргизүү ыкмалары дагы камтылган"</string>
+    <string name="show_language_switch_key" msgid="5915478828318774384">"Тил которуштуруу баскычы"</string>
+    <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Бир нече киргизүү тили иштетилгенде көрсөтүлсүн"</string>
+    <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Кечигүүнү өткөрүү калкып чыкма баскычы"</string>
+    <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Дароо"</string>
+    <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Демейки"</string>
+    <string name="abbreviation_unit_milliseconds" msgid="8700286094028323363">"<xliff:g id="MILLISECONDS">%s</xliff:g>мсек."</string>
+    <string name="settings_system_default" msgid="6268225104743331821">"Демейки тутум"</string>
+    <string name="use_contacts_dict" msgid="4435317977804180815">"Байланш ысымдарн сунуштоо"</string>
+    <string name="use_contacts_dict_summary" msgid="6599983334507879959">"Сунуштар жана оңдоолор үчүн Байланыштардагы ысымдарды пайдалануу"</string>
+    <string name="use_personalized_dicts" msgid="5167396352105467626">"Жекечелештирилгн сунуштр"</string>
     <string name="enable_metrics_logging" msgid="5506372337118822837">"Жакшыртуу <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
-    <!-- no translation found for use_double_space_period (8781529969425082860) -->
-    <skip />
-    <!-- no translation found for use_double_space_period_summary (6532892187247952799) -->
-    <skip />
-    <!-- no translation found for auto_cap (1719746674854628252) -->
-    <skip />
-    <!-- no translation found for auto_cap_summary (7934452761022946874) -->
-    <skip />
-    <!-- no translation found for edit_personal_dictionary (3996910038952940420) -->
-    <skip />
-    <!-- no translation found for configure_dictionaries_title (4238652338556902049) -->
-    <skip />
-    <!-- no translation found for main_dictionary (4798763781818361168) -->
-    <skip />
-    <!-- no translation found for prefs_show_suggestions (8026799663445531637) -->
-    <skip />
-    <!-- no translation found for prefs_show_suggestions_summary (1583132279498502825) -->
-    <skip />
-    <!-- no translation found for prefs_suggestion_visibility_show_name (3219916594067551303) -->
-    <skip />
-    <!-- no translation found for prefs_suggestion_visibility_show_only_portrait_name (3859783767435239118) -->
-    <skip />
-    <!-- no translation found for prefs_suggestion_visibility_hide_name (6309143926422234673) -->
-    <skip />
-    <!-- no translation found for prefs_block_potentially_offensive_title (5078480071057408934) -->
-    <skip />
-    <!-- no translation found for prefs_block_potentially_offensive_summary (2371835479734991364) -->
-    <skip />
-    <!-- no translation found for auto_correction (7630720885194996950) -->
-    <skip />
-    <!-- no translation found for auto_correction_summary (5625751551134658006) -->
-    <skip />
-    <!-- no translation found for auto_correction_threshold_mode_off (8470882665417944026) -->
-    <skip />
-    <!-- no translation found for auto_correction_threshold_mode_modest (8788366690620799097) -->
-    <skip />
-    <!-- no translation found for auto_correction_threshold_mode_aggressive (7319007299148899623) -->
-    <skip />
-    <!-- no translation found for auto_correction_threshold_mode_very_aggressive (1853309024129480416) -->
-    <skip />
-    <!-- no translation found for bigram_prediction (1084449187723948550) -->
-    <skip />
-    <!-- no translation found for bigram_prediction_summary (3896362682751109677) -->
-    <skip />
-    <!-- no translation found for gesture_input (826951152254563827) -->
-    <skip />
-    <!-- no translation found for gesture_input_summary (9180350639305731231) -->
-    <skip />
-    <!-- no translation found for gesture_preview_trail (3802333369335722221) -->
-    <skip />
-    <!-- no translation found for gesture_floating_preview_text (4443240334739381053) -->
-    <skip />
-    <!-- no translation found for gesture_floating_preview_text_summary (4472696213996203533) -->
-    <skip />
-    <!-- no translation found for gesture_space_aware (2078291600664682496) -->
-    <skip />
-    <!-- no translation found for gesture_space_aware_summary (4371385818348528538) -->
-    <skip />
-    <!-- no translation found for voice_input (3583258583521397548) -->
-    <skip />
-    <!-- no translation found for voice_input_disabled_summary (8141750303464726129) -->
-    <skip />
-    <!-- no translation found for configure_input_method (373356270290742459) -->
-    <skip />
-    <!-- no translation found for language_selection_title (1651299598555326750) -->
-    <skip />
-    <!-- no translation found for send_feedback (1780431884109392046) -->
-    <skip />
-    <!-- no translation found for select_language (3693815588777926848) -->
-    <skip />
-    <!-- no translation found for hint_add_to_dictionary (573678656946085380) -->
-    <skip />
-    <!-- no translation found for has_dictionary (6071847973466625007) -->
-    <skip />
-    <!-- no translation found for keyboard_layout (8451164783510487501) -->
-    <skip />
-    <!-- no translation found for subtype_en_GB (88170601942311355) -->
-    <skip />
-    <!-- no translation found for subtype_en_US (6160452336634534239) -->
-    <skip />
-    <!-- no translation found for subtype_es_US (5583145191430180200) -->
-    <skip />
-    <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
-    <skip />
-    <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
-    <skip />
-    <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
-    <skip />
-    <!-- no translation found for subtype_generic_traditional (8584594350973800586) -->
-    <skip />
-    <!-- no translation found for subtype_generic_cyrillic (7486451947618138947) -->
-    <skip />
-    <!-- no translation found for subtype_generic_latin (9128716486310604145) -->
-    <skip />
-    <!-- no translation found for subtype_no_language (7137390094240139495) -->
-    <skip />
-    <!-- no translation found for subtype_no_language_qwerty (244337630616742604) -->
-    <skip />
-    <!-- no translation found for subtype_no_language_qwertz (443066912507547976) -->
-    <skip />
-    <!-- no translation found for subtype_no_language_azerty (8144348527575640087) -->
-    <skip />
-    <!-- no translation found for subtype_no_language_dvorak (1564494667584718094) -->
-    <skip />
-    <!-- no translation found for subtype_no_language_colemak (5837418400010302623) -->
-    <skip />
-    <!-- no translation found for subtype_no_language_pcqwerty (5354918232046200018) -->
-    <skip />
-    <!-- no translation found for subtype_emoji (7483586578074549196) -->
-    <skip />
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
-    <!-- no translation found for custom_input_styles_title (8429952441821251512) -->
-    <skip />
-    <!-- no translation found for add_style (6163126614514489951) -->
-    <skip />
-    <!-- no translation found for add (8299699805688017798) -->
-    <skip />
-    <!-- no translation found for remove (4486081658752944606) -->
-    <skip />
-    <!-- no translation found for save (7646738597196767214) -->
-    <skip />
-    <!-- no translation found for subtype_locale (8576443440738143764) -->
-    <skip />
-    <!-- no translation found for keyboard_layout_set (4309233698194565609) -->
-    <skip />
-    <!-- no translation found for custom_input_style_note_message (8826731320846363423) -->
-    <skip />
-    <!-- no translation found for enable (5031294444630523247) -->
-    <skip />
-    <!-- no translation found for not_now (6172462888202790482) -->
-    <skip />
-    <!-- no translation found for custom_input_style_already_exists (8008728952215449707) -->
-    <skip />
-    <!-- no translation found for prefs_key_longpress_timeout_settings (6102240298932897873) -->
-    <skip />
-    <!-- no translation found for prefs_keypress_vibration_duration_settings (7918341459947439226) -->
-    <skip />
-    <!-- no translation found for prefs_keypress_sound_volume_settings (6027007337036891623) -->
-    <skip />
-    <!-- no translation found for prefs_read_external_dictionary (2588931418575013067) -->
-    <skip />
-    <!-- no translation found for read_external_dictionary_no_files_message (4947420942224623792) -->
-    <skip />
-    <!-- no translation found for read_external_dictionary_multiple_files_title (7637749044265808628) -->
-    <skip />
-    <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
-    <skip />
-    <!-- no translation found for error (8940763624668513648) -->
-    <skip />
-    <!-- no translation found for button_default (3988017840431881491) -->
-    <skip />
-    <!-- no translation found for setup_welcome_title (6112821709832031715) -->
-    <skip />
-    <!-- no translation found for setup_welcome_additional_description (8150252008545768953) -->
-    <skip />
-    <!-- no translation found for setup_start_action (8936036460897347708) -->
-    <skip />
-    <!-- no translation found for setup_next_action (371821437915144603) -->
-    <skip />
-    <!-- no translation found for setup_steps_title (6400373034871816182) -->
-    <skip />
-    <!-- no translation found for setup_step1_title (3147967630253462315) -->
-    <skip />
-    <!-- no translation found for setup_step1_instruction (2578631936624637241) -->
-    <skip />
-    <!-- no translation found for setup_step1_finished_instruction (10761482004957994) -->
-    <skip />
-    <!-- no translation found for setup_step1_action (4366513534999901728) -->
-    <skip />
-    <!-- no translation found for setup_step2_title (6860725447906690594) -->
-    <skip />
-    <!-- no translation found for setup_step2_instruction (9141481964870023336) -->
-    <skip />
-    <!-- no translation found for setup_step2_action (1660330307159824337) -->
-    <skip />
-    <!-- no translation found for setup_step3_title (3154757183631490281) -->
-    <skip />
-    <!-- no translation found for setup_step3_instruction (8025981829605426000) -->
-    <skip />
-    <!-- no translation found for setup_step3_action (600879797256942259) -->
-    <skip />
-    <!-- no translation found for setup_finish_action (276559243409465389) -->
-    <skip />
-    <!-- no translation found for show_setup_wizard_icon (5008028590593710830) -->
-    <skip />
-    <!-- no translation found for show_setup_wizard_icon_summary (4119998322536880213) -->
-    <skip />
-    <!-- no translation found for app_name (6320102637491234792) -->
-    <skip />
-    <!-- no translation found for dictionary_provider_name (3027315045397363079) -->
-    <skip />
-    <!-- no translation found for dictionary_service_name (6237472350693511448) -->
-    <skip />
-    <!-- no translation found for download_description (6014835283119198591) -->
-    <skip />
-    <!-- no translation found for dictionary_settings_title (8091417676045693313) -->
-    <skip />
-    <!-- no translation found for dictionary_install_over_metered_network_prompt (3587517870006332980) -->
-    <skip />
-    <!-- no translation found for dictionary_settings_summary (5305694987799824349) -->
-    <skip />
-    <!-- no translation found for user_dictionaries (3582332055892252845) -->
-    <skip />
-    <!-- no translation found for default_user_dict_pref_name (1625055720489280530) -->
-    <skip />
-    <!-- no translation found for dictionary_available (4728975345815214218) -->
-    <skip />
-    <!-- no translation found for dictionary_downloading (2982650524622620983) -->
-    <skip />
-    <!-- no translation found for dictionary_installed (8081558343559342962) -->
-    <skip />
-    <!-- no translation found for dictionary_disabled (8950383219564621762) -->
-    <skip />
-    <!-- no translation found for cannot_connect_to_dict_service (9216933695765732398) -->
-    <skip />
-    <!-- no translation found for no_dictionaries_available (8039920716566132611) -->
-    <skip />
-    <!-- no translation found for check_for_updates_now (8087688440916388581) -->
-    <skip />
-    <!-- no translation found for last_update (730467549913588780) -->
-    <skip />
-    <!-- no translation found for message_updating (4457761393932375219) -->
-    <skip />
-    <!-- no translation found for message_loading (5638680861387748936) -->
-    <skip />
-    <!-- no translation found for main_dict_description (3072821352793492143) -->
-    <skip />
-    <!-- no translation found for cancel (6830980399865683324) -->
-    <skip />
-    <!-- no translation found for go_to_settings (3876892339342569259) -->
-    <skip />
-    <!-- no translation found for install_dict (180852772562189365) -->
-    <skip />
-    <!-- no translation found for cancel_download_dict (7843340278507019303) -->
-    <skip />
-    <!-- no translation found for delete_dict (756853268088330054) -->
-    <skip />
-    <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
-    <skip />
-    <!-- no translation found for download_over_metered (1643065851159409546) -->
-    <skip />
-    <!-- no translation found for do_not_download_over_metered (2176209579313941583) -->
-    <skip />
-    <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
-    <skip />
-    <!-- no translation found for dict_available_notification_description (1075194169443163487) -->
-    <skip />
-    <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
-    <skip />
-    <!-- no translation found for version_text (2715354215568469385) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_menu_title (1254195365689387076) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_dialog_title (4096700390211748168) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_screen_title (5818914331629278758) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_dialog_more_options (5671682004887093112) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_dialog_less_options (2716586567241724126) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_dialog_confirm (4703129507388332950) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_word_option_name (6665558053408962865) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_shortcut_option_name (3094731590655523777) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_locale_option_name (4738643440987277705) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_word_hint (4902434148985906707) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_shortcut_hint (2265453012555060178) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_edit_dialog_title (3765774633869590352) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_context_menu_edit_title (6812255903472456302) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_context_menu_delete_title (8142932447689461181) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_empty_text (558499587532668203) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_all_languages (8276126583216298886) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_more_languages (7131268499685180461) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_delete (110413335187193859) -->
-    <skip />
-    <!-- no translation found for user_dict_fast_scroll_alphabet (5431919401558285473) -->
-    <skip />
+    <string name="use_double_space_period" msgid="8781529969425082860">"Эки жолу боштук чекити"</string>
+    <string name="use_double_space_period_summary" msgid="6532892187247952799">"Боштук баскычы эки жолу таптлгнда аркаснда боштгу бар чекит коюлт"</string>
+    <string name="auto_cap" msgid="1719746674854628252">"Авто чоң тамгалоо"</string>
+    <string name="auto_cap_summary" msgid="7934452761022946874">"Ар бир сүйлөмдүн биринчи сөзүн чоң тамгалоо"</string>
+    <string name="edit_personal_dictionary" msgid="3996910038952940420">"Жеке сөздүк"</string>
+    <string name="configure_dictionaries_title" msgid="4238652338556902049">"Кошумча сөздүктөр"</string>
+    <string name="main_dictionary" msgid="4798763781818361168">"Негизги сөздүк"</string>
+    <string name="prefs_show_suggestions" msgid="8026799663445531637">"Оңдоо сунуштары көрсөтүлсүн"</string>
+    <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Терүү учурунда сунушталган сөздөрдү көрсөтүү"</string>
+    <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Адепсиз сөздөрдү бөгөттө"</string>
+    <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Адепсиз сөздөр сунушталбасын"</string>
+    <string name="auto_correction" msgid="7630720885194996950">"Авто оңдоо"</string>
+    <string name="auto_correction_summary" msgid="5625751551134658006">"Боштук жана тыныш белгиси автоматтык түрдө туура эмес терилген сөздөрдү оңдойт"</string>
+    <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Өчүк"</string>
+    <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Жөнөкөй"</string>
+    <string name="auto_correction_threshold_mode_aggressive" msgid="7319007299148899623">"Күжүрмөн"</string>
+    <string name="auto_correction_threshold_mode_very_aggressive" msgid="1853309024129480416">"Аябай күжүрмөн"</string>
+    <string name="bigram_prediction" msgid="1084449187723948550">"Кийинки сөздү сунуштоо"</string>
+    <string name="bigram_prediction_summary" msgid="3896362682751109677">"Сунуштоодо мурунку сөздү пайдалануу"</string>
+    <string name="gesture_input" msgid="826951152254563827">"Жаңсап терүүнү иштетүү"</string>
+    <string name="gesture_input_summary" msgid="9180350639305731231">"Тамгаларды сүрүп сөз киргизүү"</string>
+    <string name="gesture_preview_trail" msgid="3802333369335722221">"Жаңсоо изи көрүнүп турсун"</string>
+    <string name="gesture_floating_preview_text" msgid="4443240334739381053">"Динамикалык калкыма алдын-ала көрүү"</string>
+    <string name="gesture_floating_preview_text_summary" msgid="4472696213996203533">"Жаңсалганда сунушталган сөздү көрүү"</string>
+    <string name="gesture_space_aware" msgid="2078291600664682496">"Сөз айкашын жаңсоо"</string>
+    <string name="gesture_space_aware_summary" msgid="4371385818348528538">"Боштук баскычын сылоо менен боштуктарды жаңсап киргизиңиз"</string>
+    <string name="voice_input" msgid="3583258583521397548">"Үн менен киргизүү баскычы"</string>
+    <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Үн менен киргизүү ыкмаларынын бири да иштетилген эмес. Тил &amp; киргизүү жөндөөлөрүн текшериңиз."</string>
+    <string name="configure_input_method" msgid="373356270290742459">"Дайндрд киргзүү ыкмалрн конфигрцлоо"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Тилдер"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Жардам &amp; жооп пикир"</string>
+    <string name="select_language" msgid="5709487854987078367">"Тилдер"</string>
+    <string name="hint_add_to_dictionary" msgid="573678656946085380">"Сактоо үчүн кайра тийип коюңуз"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Сактоо үчүн бул жерди басыңыз"</string>
+    <string name="has_dictionary" msgid="6071847973466625007">"Сөздүк бар"</string>
+    <string name="keyboard_layout" msgid="8451164783510487501">"Баскычтоп темасы"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Каттоо эсептерин которуштуруу"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Бир дагы каттоо эсеби тандалган жок"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Учурда <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g> колдонулууда"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Жокко чыгаруу"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Чыгуу"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Колдонуу үчүн каттоо эсебин тандаңыз"</string>
+    <string name="subtype_en_GB" msgid="88170601942311355">"Англисче (UK)"</string>
+    <string name="subtype_en_US" msgid="6160452336634534239">"Англисче (US)"</string>
+    <string name="subtype_es_US" msgid="5583145191430180200">"Испанча (US)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Хинглиш"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Сербче (Латын)"</string>
+    <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Англисче (UK) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Англисче (US) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Испанча (US) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Хинглиш (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Сербче (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Салттык)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Чакан)"</string>
+    <string name="subtype_no_language" msgid="7137390094240139495">"Тил жок (Алфавит)"</string>
+    <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Алфавит (QWERTY)"</string>
+    <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Алфавит (QWERTZ)"</string>
+    <string name="subtype_no_language_azerty" msgid="8144348527575640087">"Алфавит (AZERTY)"</string>
+    <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Алфавит (Dvorak)"</string>
+    <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Алфавит (Colemak)"</string>
+    <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Алфавит (PC)"</string>
+    <string name="subtype_emoji" msgid="7483586578074549196">"Эмодзи"</string>
+    <string name="keyboard_theme" msgid="4909551808526178852">"Баскычтоп темасы"</string>
+    <string name="custom_input_styles_title" msgid="8429952441821251512">"Өзгөчөлөштүрүлгөн киргизүү стилдери"</string>
+    <string name="add_style" msgid="6163126614514489951">"Стиль кошуу"</string>
+    <string name="add" msgid="8299699805688017798">"Кошуу"</string>
+    <string name="remove" msgid="4486081658752944606">"Алып салуу"</string>
+    <string name="save" msgid="7646738597196767214">"Сактоо"</string>
+    <string name="subtype_locale" msgid="8576443440738143764">"Тил"</string>
+    <string name="keyboard_layout_set" msgid="4309233698194565609">"Баскычтардын жайгашуусу"</string>
+    <string name="custom_input_style_note_message" msgid="8826731320846363423">"Өзгөчөлөштүрүлгөн киргизүү стилин колдонуп баштоодон мурун, аны иштетүү керек. Азыр иштетесизби?"</string>
+    <string name="enable" msgid="5031294444630523247">"Иштетүү"</string>
+    <string name="not_now" msgid="6172462888202790482">"Азыр эмес"</string>
+    <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Мындай жазуу стили мурунтан бар: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
+    <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Басылган баскычтын дирлдөө узактгы"</string>
+    <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Басылган баскычтын үнүнүн катуулугу"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Баскычты көпкө басууну кечиктирүү"</string>
+    <string name="button_default" msgid="3988017840431881491">"Демейки"</string>
+    <string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> кош келиңиз"</string>
+    <string name="setup_welcome_additional_description" msgid="8150252008545768953">"Жаңсап терүү менен"</string>
+    <string name="setup_start_action" msgid="8936036460897347708">"Баштоо"</string>
+    <string name="setup_next_action" msgid="371821437915144603">"Кийинки кадам"</string>
+    <string name="setup_steps_title" msgid="6400373034871816182">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> орнотулууда"</string>
+    <string name="setup_step1_title" msgid="3147967630253462315">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> иштетүү"</string>
+    <string name="setup_step1_instruction" msgid="2578631936624637241">"Тил &amp; Киргизүү жөндөөлөрүңүздөн \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" текшериңиз. Ушуну менен аны түзмөгүңүздө иштете аласыз."</string>
+    <string name="setup_step1_finished_instruction" msgid="10761482004957994">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> буга чейин эле Тил &amp; Киргизүү жөндөөлөрүндө иштетилгендиктен бул кадам аткарылды деск болт. Кийинкисине өтө бериңз!"</string>
+    <string name="setup_step1_action" msgid="4366513534999901728">"Жөндөөлөрдөн иштетүү"</string>
+    <string name="setup_step2_title" msgid="6860725447906690594">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> которулуу"</string>
+    <string name="setup_step2_instruction" msgid="9141481964870023336">"Андан соң, \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" жигердүү текст киргизүү ыкмасы катары коюңуз."</string>
+    <string name="setup_step2_action" msgid="1660330307159824337">"Киргизүү ыкмаларын которуштуруу"</string>
+    <string name="setup_step3_title" msgid="3154757183631490281">"Куттуктайбыз, бардыгы коюлду!"</string>
+    <string name="setup_step3_instruction" msgid="8025981829605426000">"Эми бардык сүйүктүү колдонмолоруңузда <xliff:g id="APPLICATION_NAME">%s</xliff:g> менен тере аласыз."</string>
+    <string name="setup_step3_action" msgid="600879797256942259">"Кошумча тилдерди конфигурациялоо"</string>
+    <string name="setup_finish_action" msgid="276559243409465389">"Аяктады"</string>
+    <string name="app_name" msgid="6320102637491234792">"Сөздүк жабдуучусу"</string>
+    <string name="dictionary_provider_name" msgid="3027315045397363079">"Сөздүк жабдуучусу"</string>
+    <string name="dictionary_service_name" msgid="6237472350693511448">"Сөздүк кызматы"</string>
+    <string name="download_description" msgid="6014835283119198591">"Сөздүктү жаңыртуу маалыматы"</string>
+    <string name="dictionary_settings_title" msgid="8091417676045693313">"Кошумча сөздүктөр"</string>
+    <string name="dictionary_install_over_metered_network_prompt" msgid="3587517870006332980">"Сөздүк бар"</string>
+    <string name="dictionary_settings_summary" msgid="5305694987799824349">"Сөздүктүн жөндөөлөрү"</string>
+    <string name="user_dictionaries" msgid="3582332055892252845">"Колдонуучу сөздүктөрү"</string>
+    <string name="default_user_dict_pref_name" msgid="1625055720489280530">"Колдонуучунун сөздүгү"</string>
+    <string name="dictionary_available" msgid="4728975345815214218">"Сөздүк бар"</string>
+    <string name="dictionary_downloading" msgid="2982650524622620983">"Учурда жүктөлүп алынууда"</string>
+    <string name="dictionary_installed" msgid="8081558343559342962">"Орнотулду"</string>
+    <string name="dictionary_disabled" msgid="8950383219564621762">"Орнотулду, өчүрүлдү"</string>
+    <string name="cannot_connect_to_dict_service" msgid="9216933695765732398">"Сөздүк кызматына туташуу көйгөйү"</string>
+    <string name="no_dictionaries_available" msgid="8039920716566132611">"Сөздүктөр жок"</string>
+    <string name="check_for_updates_now" msgid="8087688440916388581">"Жаңылоо"</string>
+    <string name="last_update" msgid="730467549913588780">"Акыркы жолу жаңыртылган"</string>
+    <string name="message_updating" msgid="4457761393932375219">"Жаңыртуулар изделүүдө"</string>
+    <string name="message_loading" msgid="5638680861387748936">"Жүктөлүүдө…"</string>
+    <string name="main_dict_description" msgid="3072821352793492143">"Негизги сөздүк"</string>
+    <string name="cancel" msgid="6830980399865683324">"Жокко чыгаруу"</string>
+    <string name="go_to_settings" msgid="3876892339342569259">"Жөндөөлөр"</string>
+    <string name="install_dict" msgid="180852772562189365">"Орнотуу"</string>
+    <string name="cancel_download_dict" msgid="7843340278507019303">"Жокко чыгаруу"</string>
+    <string name="delete_dict" msgid="756853268088330054">"Жок кылуу"</string>
+    <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Мобилдик түзмөгүңүздөгү тандалган тилде сөздүк бар.&lt;br/&gt; Терүү аракетиңизди жакшыртуу &lt;b&gt;үчүн&lt;/b&gt; <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> тилиндеги сөздүктү жүктөп алыңыз.&lt;br/&gt; &lt;br/&gt; 3G аркылуу жүктөп алууда бир нече мүнөт талап кылынышы мүмкүн. Эгер тарифтик планыңыз чектелген болсо, &lt;b&gt;акы төлөп калышыңыз мүмкүн&lt;/b&gt;.&lt;br/&gt; Ал эми кандай тарифтик планды колдонуп жатканыңызды билбесеңиз, жүктөп алуу аракетин автоматтык түрдө иштетүү үчүн Wi-Fi\'га туташыңыз.&lt;br/&gt; &lt;br/&gt; Кеңеш: Мобилдик түзмөгүңүздөгү &lt;b&gt;Жөндөөлөр&lt;/b&gt; менюсундагы уюлдук түзмөгүңүздүн менюсундагы <b>Тил &amp; киргизүү</b> бөлүмүнө өтүп, сөздүктөрдү жүктөп алсаңыз же алып салсаңыз болот."</string>
+    <string name="download_over_metered" msgid="1643065851159409546">"Азыр жүктөп алуу (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>Мб)"</string>
+    <string name="do_not_download_over_metered" msgid="2176209579313941583">"Wi-Fi аркылуу жүктөп алуу"</string>
+    <string name="dict_available_notification_title" msgid="4583842811218581658">"<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> тилинде сөздүк бар"</string>
+    <string name="dict_available_notification_description" msgid="1075194169443163487">"Карап көрүү жана жүктөп алуу үчүн басыңыз"</string>
+    <string name="toast_downloading_suggestions" msgid="6128155879830851739">"Жүктөлүп алынууда: <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> үчүн сунуштар жакында даяр болот."</string>
+    <string name="version_text" msgid="2715354215568469385">"Версиясы <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
+    <string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"Кошуу"</string>
+    <string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"Сөздүккө кошуу"</string>
+    <string name="user_dict_settings_add_screen_title" msgid="5818914331629278758">"Сөз айкашы"</string>
+    <string name="user_dict_settings_add_dialog_more_options" msgid="5671682004887093112">"Көбүрөөк параметр"</string>
+    <string name="user_dict_settings_add_dialog_less_options" msgid="2716586567241724126">"Азыраак параметр"</string>
+    <string name="user_dict_settings_add_dialog_confirm" msgid="4703129507388332950">"OK"</string>
+    <string name="user_dict_settings_add_word_option_name" msgid="6665558053408962865">"Сөз:"</string>
+    <string name="user_dict_settings_add_shortcut_option_name" msgid="3094731590655523777">"Кыска жол:"</string>
+    <string name="user_dict_settings_add_locale_option_name" msgid="4738643440987277705">"Тил:"</string>
+    <string name="user_dict_settings_add_word_hint" msgid="4902434148985906707">"Сөз териңиз"</string>
+    <string name="user_dict_settings_add_shortcut_hint" msgid="2265453012555060178">"Кошумча кыска жол"</string>
+    <string name="user_dict_settings_edit_dialog_title" msgid="3765774633869590352">"Сөздү түзөтүү"</string>
+    <string name="user_dict_settings_context_menu_edit_title" msgid="6812255903472456302">"Түзөтүү"</string>
+    <string name="user_dict_settings_context_menu_delete_title" msgid="8142932447689461181">"Жок кылуу"</string>
+    <string name="user_dict_settings_empty_text" msgid="558499587532668203">"Колдонуучу сөздүгүңүздө бир дагы сөз жок. Сөз кошуу үчүн Кошуу (+) баскычына тийип коюңуз."</string>
+    <string name="user_dict_settings_all_languages" msgid="8276126583216298886">"Бардык тилдер үчүн"</string>
+    <string name="user_dict_settings_more_languages" msgid="7131268499685180461">"Дагы тилдер…"</string>
+    <string name="user_dict_settings_delete" msgid="110413335187193859">"Жок кылуу"</string>
+    <string name="user_dict_fast_scroll_alphabet" msgid="5431919401558285473">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
 </resources>
diff --git a/java/res/values-lo-rLA/strings-emoji-descriptions.xml b/java/res/values-lo-rLA/strings-emoji-descriptions.xml
index 0747fa6..335fc19 100644
--- a/java/res/values-lo-rLA/strings-emoji-descriptions.xml
+++ b/java/res/values-lo-rLA/strings-emoji-descriptions.xml
@@ -267,7 +267,7 @@
     <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"​ຄຸ​ກ​ກີ້"</string>
     <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"​ຊັອກ​ໂກ​ແລັດບາ"</string>
     <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"ແຄນດີ້"</string>
-    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"​ໂລ​ລິ​ປັອບ"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"ເຂົ້າໜົມອົມຍິ້ມ"</string>
     <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"​ຄັ​ສ​ຕາດ"</string>
     <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"ໝໍ້​ນ້ຳ​ເຜິ້ງ"</string>
     <string name="spoken_emoji_1F370" msgid="7243244547866114951">"ຊັອດ​ເຄັກ"</string>
diff --git a/java/res/values-lo-rLA/strings-talkback-descriptions.xml b/java/res/values-lo-rLA/strings-talkback-descriptions.xml
index 187b63a..5f2d1c8 100644
--- a/java/res/values-lo-rLA/strings-talkback-descriptions.xml
+++ b/java/res/values-lo-rLA/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"ບໍ່ມີ​ການໃສ່​ຂໍ້ຄວາມ"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> ແກ້​ໄຂ​ <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> ເປັນ <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> ດຳ​ເນີນ​ການ​ແກ້​ໄຂ​ອັດ​ຕະ​ໂນ​ມັດ"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"ບໍ່​ມີ​ຄຳ​ແນະ​ນຳ"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"​ໂຕ​ອັກ​ສອນ​ທີ່ບໍ່​ຮູ້​ຈັກ"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"​ສັນ​ຍາ​ລັກ​ເພີ່ມ​ເຕີມ"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"​ໂຕພິມ​ໃຫຍ່ I ມີ​ຈ້ຳ​ເມັດ​ຢູ່​ເທິງ"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"ສັນ​ຍາ​ລັກ​ທີ່ບໍ່​ຮູ້​ຈັກ"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"ອີ​ໂມ​ຈິ​ທີ່ບໍ່​ຮູ້​ຈັກ"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"ໜ້າ​ຮູ້​ສຶກເບື່ອ"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"​ໜ້າ​ຮູ້​ສຶກ​ອາຍ"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"​ໜ້າ​ໃສ່​ແວ່ນ​ຕາ​ດຳ"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"​ໜ້າ​ຕົກ​ໃຈ"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"​ໜ້າ​ຈູບ"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"​ໜ້າ​ບູດ"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"​ມີ​ໂຕ​ອັກ​ສອນ​ສຳ​ຮອງ​ໃຫ້​ເລືອກ"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"​ປິດ​ໂຕ​ອັກ​ສອນ​ສຳ​ຮອງ​ແລ້ວ"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"​ມີ​ຄຳ​ແນະ​ນຳ​ສຳ​ຮອງ​ໃຫ້​ເລືອກ"</string>
diff --git a/java/res/values-lo-rLA/strings.xml b/java/res/values-lo-rLA/strings.xml
index b0e090a..37e4121 100644
--- a/java/res/values-lo-rLA/strings.xml
+++ b/java/res/values-lo-rLA/strings.xml
@@ -26,18 +26,30 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"ສັ່ນເຕືອນເມື່ອພິມ"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"ສຽງໃນການກົດປຸ່ມ"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"ໂຕອັກສອນເວລາພິມ"</string>
-    <string name="settings_screen_input" msgid="2808654300248306866">"​ການ​ຕັ້ງ​ຄ່າ​ການ​ປ້ອນ​ຂໍ້​ມູນ"</string>
-    <string name="settings_screen_appearances" msgid="3611951947835553700">"​ຮູບ​ແບບ​ໜ້າ​ຕາ"</string>
-    <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"​ໂຕ​ເລືອກ​ລະ​ບົບຫຼາຍ​ພາ​ສາ"</string>
-    <string name="settings_screen_gesture" msgid="9113437621722871665">"​ການ​ຕັ້ງ​ຄ່າ​ການ​ພິມ​ດ້ວຍ​ທ່າ​ທາງ"</string>
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"​​ການ​ຕັ້ງ​ຄ່າ"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"ບັນຊີ &amp; ​ຄວາມ​ເປັນ​ສ່ວນ​ຕົວ"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"​ລັກ​ສະ​ນະ &amp; ໂຄງ​ຮ່າງ"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"​ກາ​ນ​ພິມ​ແບບ​ລາກ​ນິ້ວ"</string>
     <string name="settings_screen_correction" msgid="1616818407747682955">"​ການ​ແປງ​ຄຳ​ໃຫ້​ຖືກ​ຕ້ອງ"</string>
     <string name="settings_screen_advanced" msgid="7472408607625972994">"​ຂັ້ນ​ສູງ"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"ຮູບແບບສີສັນ"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"ເປີດ​ນຳ​ໃຊ້​ແປ້ນ​ພິມ​ແຍກ​ຕົວ"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"ການ​ຊິງ​ຄ໌​ແປ້ນ​ພິມ Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"ຊິງ​ຄ໌​ເປ​ີດ​ແລ້ວ"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"ຊິງ​ຄ໌​ພົດ​ຈະ​ນາ​ນຸ​ກົມ​ສ່ວນ​ຕົວ​ຂອງ​ທ່ານ​ໃນ​ທຸກ​ອຸ​ປະ​ກອນ"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"ຊິງ​ຄ໌ດຽວນີ້"</string>
+    <!-- no translation found for clear_sync_data_title (8582001557037069154) -->
+    <skip />
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"ລຶບ​ຂໍ້​ມູນ​ທີ່​ຊິງ​ຄ໌​ແລ້ວ​ຂອງ​ທ່ານ​ຈາກ Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"ຂໍ້​ມູນ​ທີ່​ຊິງ​ຄ໌​ແລ້ວ​ຂອງ​ທ່ານ​ຈະ​ຖືກ​ລຶບ​ໄປ​ຈາກ​ຄ​ລາວ. ທ່ານ​ແນ່​ໃຈ​ບໍ?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"ລຶບ"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"ຍົກເລີກ"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"ພົດ​ຈະ​ນາ​ນຸ​ກົມ​ສ່ວນ​ຕົວ​ຂອງ​ທ່ານ​ຈະ​ຖືກ​ຊິງ​ຄ໌ ແລະ​ສຳ​ຮອງ​ໄປ​ໃສ່​ເຊີບ​ເວີ Google. ຂໍ້​ມູນ​ສະ​ຖິ​ຕິ​ຂອງ​ຄວາມ​ຖີ່​ຄຳ​ເວົ້າ​ອາດ​ຈະ​ຖືກ​ເກັບ​ກຳ ເພື່ອ​ຊ່ວຍ​ປັບ​ປຸງ​ຜະ​ລິດ​ຕະ​ພັນ​ຂອງ​ທ່ານ. ການ​ເກັບ​ກຳ ແລະ​ການ​ນຳ​ໃຊ້​ທຸກ​ຂໍ້​ມູນ​ຈະ​ເປັນ​ໄປ​ຕາມ "<a href="https://www.google.com/policies/privacy">"ນະ​ໂຍ​ບາຍ​ຄວາມ​ເປັນ​ສ່ວນ​ຕົວ​ຂອງ Googl"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"ກະ​ລຸ​ນາ​ເພີ່ມ​ບັນ​ຊີ Google ໃສ່​ອຸ​ປະ​ກອນ​ນີ້ ເພື່ອ​ເປີດ​ໃຊ້​ງານ​ຄຸນ​ສົມ​ບັດ​ນີ້"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"ປ່ຽນໄປໃຊ້ການປ້ອນຂໍ້ມູນແບບອື່ນ"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"ໂຕປ່ຽນພາສາເປັນທັງໂຕປ່ຽນຮູບແບບການປ້ອນຂໍ້ມູນເຊັ່ນກັນ"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"ປຸ່ມປ່ຽນພາສາ"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"ສະແດງໃນເວລາທີ່ຕົວເລືອກການປ້ອນຂໍ້ມູນຫຼາຍໂຕຖືກເປີດຢູ່"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"ສະແດງໂຕບົ່ງບອກການສະໄລ້"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"ສະແດງແນວທາງໃນຂະນະທີ່ສະໄລ້ຈາກ Shift ຫຼື ປຸ່ມເຄື່ອງໝາຍ"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"ໄລຍະເວລາການສະແດງໂຕອັກສອນ"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"ບໍ່ຕ້ອໜ່ວງເວລາ"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"ຄ່າເລີ່ມຕົ້ນ"</string>
@@ -56,9 +68,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"ວັດຈະນານຸກົມຫຼັກ"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"ສະແດງການແນະນຳຄຳທີ່ຖືກຕ້ອງ"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"ສະແດງຄຳສັບທີ່ແນະນຳໃນເວລາທີ່ກຳລັງພິມ"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"ສະແດງຕະຫລອດ"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"ກົດທີ່ຄຳສັບທີ່ພິມລົງໄປເພື່ອແປງໃຫ້ມັນຖືກຕ້ອງ"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"ເຊື່ອງໄວ້ຕະຫລອດ"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"ປິດກັ້ນຄຳທີ່ບໍ່ສຸພາບ"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"ຫ້າມແນະນຳຄຳທີ່ບໍ່ສຸພາບ"</string>
     <string name="auto_correction" msgid="7630720885194996950">"ໂຕຊ່ວຍສະກົດຄຳ"</string>
@@ -79,21 +88,32 @@
     <string name="voice_input" msgid="3583258583521397548">"ປຸ່ມປ້ອນຂໍ້ມູນດ້ວຍສຽງ"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"ບໍ່ມີວິທີການປ້ອນສຽງເປີດນໍາໃຊ້. ໃຫ້ກວດເບິ່ງການຕັ້ງຄ່າໃນເມນູ ພາສາ &amp; ການປ້ອນຂໍ້ມູນ."</string>
     <string name="configure_input_method" msgid="373356270290742459">"ຕັ້ງຄ່າຮູບແບບການປ້ອນຂໍ້ມູນ"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"ພາສາການປ້ອນຂໍ້ມູນ"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"ສົ່ງຄຳຕິຊົມ"</string>
-    <string name="select_language" msgid="3693815588777926848">"ພາສາການປ້ອນຂໍ້ມູນ"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"ພາ​ສາ"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"ຊ່ວຍ​ເຫຼືອ &amp; ຄຳ​ຕິ​ຊົມ"</string>
+    <string name="select_language" msgid="5709487854987078367">"ພາ​ສາ"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"ກົດອີກຄັ້ງເພື່ອບັນທຶກ"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"ແຕະ​ບ່ອນ​ນີ້​ເພື່ອ​ບັນ​ທຶກ"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"ມີວັດຈະນານຸກົມ"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"ສີສັນແປ້ນພິມ"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"ສະລັບບັນຊີ"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"​ບໍ່​ໄດ້​ເລືອກ​ບັນ​ຊີ​ເທື່ອ"</string>
+    <string name="account_selected" msgid="2846876462199625974">"ຕອນ​ນີ້​ກຳ​ລັງ​ໃຊ້ <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"ຕົກລົງ"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"​ຍົກ​ເລີກ"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"ອອກຈາກລະບົບ"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"​ເລືອກ​ບັນ​ຊີ​ທີ່​ຈະ​ໃຊ້"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"ອັງກິດ (ສະຫະລາດຊະອານາຈັກ)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"ອັງກິດ (ສະຫະລັດຯ)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"ສະເປນ (ອາເມລິກາ)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"ຮິງ​ລິສ"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"ເຊີ​ບຽນ (​ລາ​ຕິນ)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"ອັງ​ກິດ (ສະ​ຫະ​ລາດ​ຊະ​ອາ​ນາ​ຈັກ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"ອັງ​ກິດ (ສະ​ຫະ​ລັດຯ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"ສະ​ແປນ​ນິດ (ສະ​ຫະ​ລັດຯ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"ຮິງ​ລິສ (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"ເຊີ​ບຽນ (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ດັ້ງ​ເດີມ)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ຊິ​ຣິວ​ລິກ)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ລາ​ຕິນ)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ກະ​ທັດ​ຮັດ)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"ບໍ່ມີພາສາ (ໂຕອັກສອນ)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"ໂຕອັກສອນ (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"ໂຕອັກສອນ (QWERTZ)"</string>
@@ -103,10 +123,6 @@
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"ໂຕອັກສອນ (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"ອີໂມຈິ"</string>
     <string name="keyboard_theme" msgid="4909551808526178852">"ຮູບ​ແບບ​ສີ​ສັນ​ແປ້ນ​ພິມ"</string>
-    <string name="keyboard_theme_holo_white" msgid="8506588144096428751">"​ຂາວ​ແຈ້ງ"</string>
-    <string name="keyboard_theme_holo_blue" msgid="192400518003397418">"ຟ້າ​ແຈ​້ງ"</string>
-    <string name="keyboard_theme_material_dark" msgid="2701178578784760596">"​ສະ​ສານ​ມືດ"</string>
-    <string name="keyboard_theme_material_light" msgid="3479400901818790331">"​ສະ​ສານ​ແຈ້ງ"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"ຮູບແບບການປ້ອນຂໍ້ມູນສ່ວນຕົວ"</string>
     <string name="add_style" msgid="6163126614514489951">"ເພີ່ມຮູບແບບ"</string>
     <string name="add" msgid="8299699805688017798">"ເພີ່ມ"</string>
@@ -118,14 +134,9 @@
     <string name="enable" msgid="5031294444630523247">"ເປີດນຳໃຊ້"</string>
     <string name="not_now" msgid="6172462888202790482">"ບໍ່ແມ່ນຕອນນີ້"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"ຮູບແບບການປ້ອນຂໍ້ມູນທີ່ຄືກັນມີຢູ່ແລ້ວ: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"ໄລຍະເວລາຂອງການກົດປຸ່ມ"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"ໄລຍະເວລາຂອງການສັ່ນໃນການກົດປຸ່ມ"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"ລະດັບສຽງຂອງການກົດປຸ່ມ"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"ອ່ານໄຟລ໌ວັດຈະນານຸກົມພາຍນອກ"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"ບໍ່ມີໄຟລ໌ວັດຈະນານຸກົມໃນໂຟນເດີຂອງການດາວໂຫລດ"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"ເລືອກໄຟລ໌ວັດຈະນານຸກົມເພື່ອຕິດຕັ້ງ"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"ຕິດ​ຕັ້ງ​ໄຟ​ລ໌​ນີ້​ສຳ​ລັບ <xliff:g id="LANGUAGE_NAME">%s</xliff:g> ແທ້ບໍ່??"</string>
-    <string name="error" msgid="8940763624668513648">"ມີຂໍ້ຜິດພາດເກີດຂຶ້ນ"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"ໄລຍະເວລາຂອງການກົດປຸ່ມ"</string>
     <string name="button_default" msgid="3988017840431881491">"ຄ່າເລີ່ມຕົ້ນ"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"ຍິນ​ດີ​ຕ້ອນ​ຮັບສູ່ <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"ດ້ວຍການພິມແບບ Gesture"</string>
@@ -143,8 +154,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"ຕອນນີ້ທ່ານສາມາດພິມໃນແອັບຯທີ່ທ່ານມັກໄດ້ທຸກແອັບຯດ້ວຍ <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"ປັບຄ່າພາສາເພີ່ມເຕີມ"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"ສຳເລັດແລ້ວ"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"ສະແດງໄອຄອນຂອງແອັບຯ"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"ສະແດງໄອຄອນຂອງແອັບຯໃນ Launcher"</string>
     <string name="app_name" msgid="6320102637491234792">"ຜູ່​ສະ​ຫນອງ​ວັດຈະ​ນາ​ນຸ​ກົມ"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"ຜູ່​ສະ​ຫນອງ​ວັດຈະ​ນາ​ນຸ​ກົມ"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"ບໍລິການວັດຈະນານຸກົມ"</string>
diff --git a/java/res/values-lt/strings-emoji-descriptions.xml b/java/res/values-lt/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..afe9ac0
--- /dev/null
+++ b/java/res/values-lt/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Autorių teisių simbolis"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Registruoto prekės ženklo simbolis"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Du šauktukai"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Šauktukas ir klaustukas"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Prekės ženklo simbolis"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Informacijos šaltinis"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Rodyklė į kairę ir dešinę"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Rodyklė į viršų ir apačią"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Rodyklė į viršų ir kairę"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Rodyklė į viršų ir dešinę"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Rodyklė į apačią ir dešinę"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Rodyklė į apačią ir kairę"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Lenkta rodyklė į kairę"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Lenkta rodyklė į dešinę"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Laikrodis"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Smėlio laikrodis"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Du juodi trikampiai į dešinę"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Du juodi trikampiai į kairę"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Du juodi trikampiai į viršų"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Du juodi trikampiai į apačią"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Žadintuvas"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Smėlio laikrodis su byrančiu smėliu"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Lotyniška didžioji raidė M apskritime"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Juodas mažas kvadratas"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Baltas mažas kvadratas"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Juodas trikampis į dešinę"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Juodas trikampis į kairę"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Baltas vidutinio storio kvadratas"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Juodas vidutinio storio kvadratas"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Baltas vidutinio storio mažas kvadratas"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Juodas vidutinio storio mažas kvadratas"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Juoda saulė su spinduliais"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Debesis"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Juodas telefonas"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Apklausos langelis su varnele"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Skėtis su lietaus lašais"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Karštas gėrimas"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Baltas į viršų rodantis pirštas"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Baltas besišypsantis veidas"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Avinas"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Tauras"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Dvyniai"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Vėžys"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Liūtas"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Mergelė"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Svarstyklės"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Skorpionas"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Šaulys"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Ožiaragis"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Vandenis"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Žuvys"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Juodų pikų korta"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Juodų kryžių korta"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Juodų širdžių korta"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Juodų būgnų korta"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Karštieji šaltiniai"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Universalus juodas perdirbimo simbolis"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Invalido vežimėlio simbolis"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Inkaras"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Įspėjimo ženklas"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Aukštos įtampos ženklas"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Vidutinio dydžio baltas apskritimas"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Vidutinio dydžio juodas apskritimas"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Futbolo kamuolys"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Beisbolo kamuoliukas"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Senis besmegenis be sniego"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Saulė už debesies"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Gyvatnešis"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Įeiti / įvažiuoti draudžiama"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Bažnyčia"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Fontanas"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Vėliavėlė skylutėje"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Burlaivis"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Palapinė"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Kuro siurblys"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Juodos žirklės"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Balta stora žymėjimo varnelė"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Lėktuvas"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Vokas"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Pakeltas kumštis"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Pakelta ranka"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Pergalės ženklą rodanti ranka"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Pieštukas"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Juoda plunksna"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Stora žymėjimo varnelė"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Storas daugybos ženklas x"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Žėrėjimas"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Aštuoniakampė žvaigždutė"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Aštuoniakampė juoda žvaigždė"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Snaigė"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Kibirkštėlė"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Kryžiuko ženklas"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Neigiamas kryžiuko ženklas kvadrate"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Juodas klaustuko ornamentas"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Baltas klaustuko ornamentas"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Baltas šauktuko ornamentas"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Storas šauktukas"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Stora juoda širdelė"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Storas pliuso ženklas"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Storas minuso ženklas"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Storas dalybos ženklas"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Juoda rodyklė į dešinę"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Kilpelė"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Dviguba kilpelė"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Rodyklė, nukreipta į kairę ir užlenkta į viršų"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Rodyklė, nukreipta į dešinę ir nulenkta žemyn"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Juoda rodyklė į kairę"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Juoda rodyklė aukštyn"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Juoda rodyklė žemyn"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Juodas didelis kvadratas"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Baltas didelis kvadratas"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Balta vidutinė žvaigždė"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Storas didelis apskritimas"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Vingiuotas brūkšnys"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Dalių apkeitimo ženklas"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Pasveikinimo hieroglifas apskritime"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Paslapties hieroglifas apskritime"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Madžongo kaladėlė su raudonu drakonu"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Žaidimo korta su juodu juokdariu"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"A kraujo grupė"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"B kraujo grupė"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"O kraujo grupė"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Stovėjimo aikštelė"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"AB kraujo grupė"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"CL kvadrate"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"COOL kvadrate"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"FREE kvadrate"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"ID kvadrate"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"NEW kvadrate"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"NG kvadrate"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"OK kvadrate"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"SOS kvadrate"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"UP ir šauktukas kvadrate"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"VS kvadrate"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"KATAKANA KOKO kvadrate"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"KATAKANA SA kvadrate"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Nemokamas paslaugas reiškiantis hieroglifas kvadrate"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Rezervuotą vietą reiškiantis hieroglifas kvadrate"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Draudimą reiškiantis hieroglifas kvadrate"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Laisvą vietą reiškiantis hieroglifas kvadrate"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Sutikimą reiškiantis hieroglifas kvadrate"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Visiškai užimtą vietą reiškiantis hieroglifas kvadrate"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Mokamas paslaugas reiškiantis hieroglifas kvadrate"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Mėnesio laikotarpį reiškiantis hieroglifas kvadrate"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Prašymą reiškiantis hieroglifas kvadrate"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Nuolaidą reiškiantis hieroglifas kvadrate"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Darbo valandas reiškiantis hieroglifas kvadrate"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Pranašumą reiškiantis hieroglifas apskritime"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Sutikimą reiškiantis hieroglifas apskritime"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Ciklonas"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Tirštas rūkas"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Suskleistas skėtis"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Žvaigždėta naktis"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Saulėtekis virš kalnų"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Saulėtekis"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Sutemos virš miesto"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Saulėlydis virš pastatų"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Vaivorykštė"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Tiltas naktį"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Vandens banga"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Ugnikalnis"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Paukščių Takas"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Žemės rutulys su Europos ir Afrikos žemynais"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Žemės rutulys su Šiaurės ir Pietų Amerikos žemynais"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Žemės rutulys su Azijos ir Australijos žemynais"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Žemės rutulys su dienovidiniais"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Jaunaties simbolis"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Priešpilnio (pradžios) simbolis"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Priešpilnio (pirmo fazės ketvirčio) simbolis"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Priešpilnio (pabaigos) simbolis"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Pilnaties simbolis"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Delčios (pradžios) simbolis"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Delčios (paskutinio fazės ketvirčio) simbolis"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Delčios (pabaigos) simbolis"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Pusmėnulis"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Jaunas mėnulis su veidu"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Priešpilnio mėnulis su veidu"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Delčios mėnulis su veidu"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Pilnaties mėnulis su veidu"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Saulė su veidu"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Žėrinti žvaigždė"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Krintanti žvaigždė"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Kaštainis"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Daigas"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Amžinai žaliuojantis medis"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Lapuotis"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palmė"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Kaktusas"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulpė"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Vyšnių žiedai"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Rožė"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Kinrožė"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Saulėgrąža"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Žiedai"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Kukurūzo burbuolė"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Ryžių varpa"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Žolelė"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Keturlapis dobilas"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Klevo lapas"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Nukritęs lapas"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Lapas vėjyje"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Grybas"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Pomidoras"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Baklažanas"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Vynuogės"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Melionas"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Arbūzas"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Mandarinas"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Citrina"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Bananas"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ananasas"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Raudonas obuolys"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Žalias obuolys"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Kriaušė"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Persikas"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Vyšnios"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Braškė"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Mėsainis"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Picos gabalėlis"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Mėsa ant kaulo"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Paukščio šlaunelė"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Ryžių paplotėlis"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Ryžių rutuliukas"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Išvirti ryžiai"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Ryžiai su kariu"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Makaronų sriubos dubenėlis"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Spagečiai"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Duona"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Gruzdintos bulvytės"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Kepta saldžioji bulvė"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Sušis"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Kepta krevetė"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Žuvies pyragėlis su išpieštu sūkurio simboliu"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Minkšti ledai"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Susmulkintas šaldytas vanduo"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Ledai"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Spurga"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Sausainis"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Šokolado plytelė"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Saldainis"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lollipop"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Saldus kremas"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Medaus puodynė"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Trapus pyragas"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Bento dėžutė"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Puodas su maistu"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Valgio gaminimas"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Šakutė ir peilis"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Puodelis be ąselės"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Sakės butelis ir puodelis"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Vyno taurė"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Kokteilio taurė"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Tropinis gėrimas"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Alaus bokalas"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Susidaužiantys alaus bokalai"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Kūdikio buteliukas"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Kaspinas"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Supakuota dovana"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Gimtadienio tortas"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Helovino moliūgas"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Kalėdų eglutė"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Kalėdų Senis"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Fejerverkai"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Šaltoji ugnelė"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Balionas"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Konfeti šaudyklė"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Konfeti kamuolys"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Tanabata medis"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Sukryžiuotos vėliavos"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Dekoracija iš pušies"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Japoniškos lėlės"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Karpio vėtrungė"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Vėjo varpeliai"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Mėnesienos stebėjimo ceremonija"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Mokyklinė kuprinė"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Mokyklos baigimo kepurėlė"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Karuselės arkliukas"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Apžvalgos ratas"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Linksmieji kalneliai"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Meškerė ir žuvis"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Mikrofonas"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Filmavimo kamera"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Kinas"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Ausinė"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Dailininko paletė"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Skrybėlė cilindras"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Cirko palapinė"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Bilietas"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Kino kadro pranešimo lenta"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Scenos menas"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Vaizdo žaidimas"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Smūgis tiesiai į taikinį"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Žaidimų automatas"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Biliardas"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Žaidimų kauliukas"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Kėgliai"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Kortos su gėlėmis"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Muzikos nata"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Kelios muzikos natos"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saksofonas"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Gitara"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Instrumento klaviatūra"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Trimitas"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Smuikas"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Partitūra"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Bėgimo marškinėliai su juosta"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Teniso raketė ir kamuoliukas"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Slidės ir slidžių batai"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Krepšinio kamuolys ir lankas"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Vėliava langeliais"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Snieglentininkas"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Bėgikas"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Banglentininkas"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Prizas"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Žirgų lenktynės"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Amerikietiškas futbolas"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Regbis"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Plaukikas"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Namas"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Namas su sodu"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Biurų pastatas"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Japoniškas paštas"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Europietiškas paštas"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Ligoninė"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Bankas"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Bankomatas"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Viešbutis"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Meilės viešbutis"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Visą parą dirbanti parduotuvė"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Mokykla"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Prekybos centras"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Gamykla"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Popierinis žibintas"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Japoniška pilis"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Europietiška pilis"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Žiurkė"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Pelė"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Jautis"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Naminis buivolas"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Karvė"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Leopardas"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Triušis"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Katė"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Drakonas"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Krokodilas"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Banginis"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Sraigė"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Gyvatė"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Arklys"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Avinas"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Ožys"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Avis"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Beždžionė"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Gaidys"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Višta"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Šuo"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Kiaulė"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Šernas"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Dramblys"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Aštuonkojis"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Susisukusi kriauklė"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Vabalas"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Skruzdėlė"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Bitė"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Boružė"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Žuvis"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Tropinė žuvis"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Fugu"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Vėžlys"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Išsiritęs viščiukas"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Viščiukas"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Atsisukęs snapu viščiukas"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Paukštis"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Pingvinas"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Pudelis"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Vienakupris kupranugaris"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Dvikupris kupranugaris"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Delfinas"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Pelės snukutis"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Karvės snukis"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Tigro snukis"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Triušio snukutis"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Katės snukutis"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Drakono snukis"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Purškiantis banginis"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Arklio snukis"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Beždžionės snukutis"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Šuns snukutis"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Kiaulės snukis"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Varlės snukutis"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Žiurkėno snukutis"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Vilko snukis"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Meškos snukis"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Pandos snukutis"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Šnipas"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Pėdutės"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Akys"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Ausis"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Nosis"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Burna"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Liežuvis"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Balta aukštyn pirštu rodanti ranka"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Balta žemyn pirštu rodanti ranka"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Balta į kairę pirštu rodanti ranka"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Balta į dešinę pirštu rodanti ranka"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Kumščio ženklas"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Mojančios rankos ženklas"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"GERAI ženklas rankomis"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Aukštyn pakelto nykščio ženklas"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Žemyn nuleisto nykščio ženklas"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Plojančių rankų ženklas"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Atvirų rankų ženklas"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Karūna"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Moteriška skrybėlė"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Akiniai"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Kaklaraištis"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Marškinėliai"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Džinsai"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Suknelė"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikinis"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Moteriški drabužiai"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Piniginė"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Rankinė"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Krepšelis"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Vyriškas batas"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Sportinis batelis"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Aukštakulnis batelis"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Moteriška basutė"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Moteriški batai"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Pėdos"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Biusto siluetas"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Biustų siluetai"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Berniukas"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Mergaitė"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Vyras"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Moteris"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Šeima"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Vyras ir moteris, susikibę rankomis"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Du vyrai, susikibę rankomis"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Dvi moterys, susikibusios rankomis"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Policininkas"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Moteris su kiškio ausytėmis"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Nuotaka su nuometu"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Šviesių plaukų žmogus"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Vyras su gua pi mao"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Vyras su turbanu"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Senukas"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Senutė"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Kūdikis"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Statybininkas"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Princesė"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Japoniška pabaisa"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Japoniškas demonas"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Vaiduoklis"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Angeliukas"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Ateivis iš kitos planetos"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Monstras ateivis"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Velniūkštis"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Kaukolė"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Informacinio skyriaus darbuotojas"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Apsaugininkas"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Šokėjas"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Lūpų dažai"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Nagų lakas"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Veido masažas"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Plaukų kirpimas"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Kirpėjo suktukas"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Švirkštas"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Tabletė"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Bučinio žymė"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Meilės laiškas"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Žiedas"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Brangakmenis"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Bučinys"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Puokštė"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Porelė su širdele"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Vestuvės"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Plakanti širdelė"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Sudaužyta širdelė"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Dvi širdelės"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Žėrinti širdelė"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Didėjanti širdelė"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Širdelė su strėle"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Mėlyna širdelė"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Žalia širdelė"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Geltona širdelė"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Rožinė širdelė"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Širdelė su kaspinu"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Besisukančios širdelės"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Širdelės dekoracija"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Deimanto forma su tašku viduje"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Elektros lemputė"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Pykčio simbolis"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bomba"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Miego simbolis"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Susidūrimo simbolis"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Srūvančio prakaito simbolis"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Lašelis"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Sukeltų dulkių simbolis"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Išmatų krūvelė"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Paryškinti bicepsai"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Apsvaigimo simbolis"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Kalbos debesėlis"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Minčių debesėlis"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Balta gėlė"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Šimto balų simbolis"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Pinigų maišas"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Valiutos kursas"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Storas dolerio ženklas"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Kredito kortelė"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Banknotas su jenos ženklu"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Banknotas su dolerio ženklu"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Banknotas su euro ženklu"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Banknotas su svaro ženklu"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Pinigai su sparnais"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Didėjimo tendencijos diagrama ir jenos ženklas"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Sėdynė"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Asmeninis kompiuteris"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Portfelis"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Mini diskas"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Diskelis"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Optinis diskas"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Failų aplankas"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Atviras failų aplankas"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Užsirietęs puslapis"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Puslapis viršutine puse"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Kalendorius"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Nuplėšiamas kalendorius"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Kortelių laikiklis"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Didėjimo tendencijos diagrama"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Mažėjimo tendencijos diagrama"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Juostinė diagrama"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Segtuvas"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Smeigtukas"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Apvalus smeigtukas"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Sąvaržėlė"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Tiesi liniuotė"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Trikampė liniuotė"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Žymių skirtukai"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Sąskaitų knyga"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Užrašų knygelė"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Užrašų knygelė su dekoratyviniu viršeliu"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Užversta knyga"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Atverta knyga"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Žalia knyga"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Mėlyna knyga"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Oranžinė knyga"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Knygos"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Vardo ir pavardės ženklelis"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Ritinys"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Atmintinė"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Telefono ragelis"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Pranešimų gaviklis"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Fakso aparatas"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Palydovinė antena"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Viešasis garsiakalbis"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Ruporas"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Siunčiamų laiškų dėklas"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Gautų laiškų dėklas"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Pakuotė"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"El. pašto simbolis"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Įeinantis vokas"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Vokas su žemyn nukreipta rodykle virš jo"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Uždaryta pašto dėžutė su nuleista vėliava"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Uždaryta pašto dėžutė su pakelta vėliava"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Atidaryta pašto dėžutė su pakelta vėliava"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Atidaryta pašto dėžutė su nuleista vėliava"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Pašto dėžutė"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Pašto ragas"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Laikraštis"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Mobilusis telefonas"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Mobilusis telefonas su į dešinę nukreipta rodykle kairėje"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Vibravimo režimas"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Išjungtas mobilusis telefonas"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Jokių mobiliųjų telefonų"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Signalo stiprumo juostos"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Fotoaparatas"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Vaizdo kamera"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Televizorius"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Radijas"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Vaizdajuostė"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Susipynusios į dešinę nukreiptos rodyklės"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Laikrodžio rodyklės kryptimis nukreiptos rodyklės į dešinę ir kairę, sudarančios apskritimą"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Laikrodžio rodyklės kryptimis nukreiptos rodyklės į dešinę ir kairę, sudarančios apskritimą, bei apskritimu apvestas vienetas viršuje"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Laikrodžio rodyklės kryptimis nukreiptos rodyklės į viršų ir apačią, sudarančios apskritimą"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Prieš laikrodžio rodyklę nukreiptos rodyklės į apačią ir viršų, sudarančios apskritimą"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Mažo šviesumo simbolis"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Didelio šviesumo simbolis"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Brūkšniu perbrauktas garsiakalbis"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Garsiakalbis"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Garsiakalbis su viena garso banga"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Garsiakalbis su trimis garso bangomis"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Akumuliatorius"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Elektros kištukas"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Didinimo stiklas į kairę"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Didinimo stiklas į dešinę"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Spyna su rašaliniu rašikliu"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Užrakinta spyna su raktu"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Raktas"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Spyna"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Atrakinta spyna"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Skambutis"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Brūkšniu perbrauktas skambutis"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Žymė"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Nuorodos simbolis"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Akutė"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Užrašas BACK ir į kairę nukreipta rodyklė virš jo"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"Užrašas END ir į kairę nukreipta rodyklė virš jo"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"Užrašas ON su šauktuku ir rodyklė į kairę ir dešinę virš jo"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Užrašas SOON ir į dešinę nukreipta rodyklė virš jo"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Užrašas TOP ir į viršų nukreipta rodyklė virš jo"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Draudimą nepilnamečiams reiškiantis simbolis"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Dešimtas klavišas"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Didžiųjų lotyniškų raidžių įvedimo simbolis"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Mažųjų lotyniškų raidžių įvedimo simbolis"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Skaičių įvedimo simbolis"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Simbolių įvedimo simbolis"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Lotyniškų raidžių įvedimo simbolis"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Gaisras"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Žibintuvėlis"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Veržliaraktis"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Plaktukas"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Veržlė ir varžtas"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Hocho peilis"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Pistoletas"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Mikroskopas"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Teleskopas"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Krištolinis kamuolys"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Šešiakampė žvaigždė su tašku viduryje"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Japoniškas simbolis pradedančiajam"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Trišakio simbolis"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Juodas kvadratinis mygtukas"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Baltas kvadratinis mygtukas"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Didelis raudonas rutulys"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Didelis mėlynas rutulys"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Didelis oranžinis deimantas"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Didelis mėlynas deimantas"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Mažas oranžinis deimantas"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Mažas mėlynas deimantas"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Aukštyn nukreiptas raudonas trikampis"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Žemyn nukreiptas raudonas trikampis"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Aukštyn nukreiptas mažas raudonas trikampis"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Žemyn nukreiptas mažas raudonas trikampis"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Pirmą valandą rodantis laikrodis"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Antrą valandą rodantis laikrodis"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Trečią valandą rodantis laikrodis"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Ketvirtą valandą rodantis laikrodis"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Penktą valandą rodantis laikrodis"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Šeštą valandą rodantis laikrodis"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Septintą valandą rodantis laikrodis"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Aštuntą valandą rodantis laikrodis"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Devintą valandą rodantis laikrodis"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Dešimtą valandą rodantis laikrodis"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Vienuoliktą valandą rodantis laikrodis"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Dvyliktą valandą rodantis laikrodis"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Pusę dviejų rodantis laikrodis"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Pusę trijų rodantis laikrodis"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Pusę keturių rodantis laikrodis"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Pusę penkių rodantis laikrodis"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Pusę šešių rodantis laikrodis"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Pusę septynių rodantis laikrodis"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Pusę aštuonių rodantis laikrodis"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Pusę devynių rodantis laikrodis"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Pusę dešimt rodantis laikrodis"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Pusę vienuolikos rodantis laikrodis"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Pusę dvylikos rodantis laikrodis"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Pusę pirmos rodantis laikrodis"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Fudži kalnas"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Tokijo bokštas"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Laisvės statula"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Japonijos siluetas"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moyai akmeninė statula"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Išsišiepęs veidas"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Išsišiepęs veidas su besišypsančiomis akimis"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Veidas su džiaugsmo ašaromis"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Besišypsantis išsižiojęs veidas"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Besišypsantis išsižiojęs veidas su besišypsančiomis akimis"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Besišypsantis išsižiojęs veidas, išpiltas šalto prakaito"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Besišypsantis išsižiojęs veidas su smarkiai užmerktomis akimis"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Besišypsantis veidas su aureole"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Besišypsantis veidas su ragais"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Mirksintis veidas"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Besišypsantis veidas su besišypsančiomis akimis"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Skaniu maistu besimėgaujantis veidas"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Veidas su palengvėjimu"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Besišypsantis veidas su širdelės formos akimis"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Besišypsantis veidas su saulės akiniais"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Iš pasitenkinimo besišypsantis veidas"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Neutralus veidas"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Veidas be jokios išraiškos"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Nelinksmas veidas"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Veidas, išpiltas šalto prakaito"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Susimąstęs veidas"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Sutrikęs veidas"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Suglumintas veidas"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Bučiuojantis veidas"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Bučinį siunčiantis veidas"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Bučiuojantis veidas su besišypsančiomis akimis"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Bučiuojantis veidas su užmerktomis akimis"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Veidas su iškištu liežuviu"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Veidas su iškištu liežuviu ir viena primerkta akim"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Veidas su iškištu liežuviu ir stipriai užmerktomis akimis"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Nusivylęs veidas"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Susirūpinęs veidas"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Piktas veidas"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Susiraukęs veidas"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Verkiantis veidas"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Atkaklus veidas"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Triumfuojantis veidas"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Nusivylęs veidas, tačiau su palengvėjimu"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Paniuręs išsižiojęs veidas"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Kančios kupinas veidas"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Baimės pilnas veidas"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Nuvargęs veidas"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Mieguistas veidas"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Pavargęs veidas"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Besivaipantis veidas"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Garsiai verkiantis veidas"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Išsižiojęs veidas"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Nuščiuvęs veidas"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Išsižiojęs veidas, išpiltas šalto prakaito"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Išsigandęs veidas"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Apstulbęs veidas"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Nuraudęs veidas"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Miegantis veidas"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Apsvaigęs veidas"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Veidas be burnos"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Veidas su medicinine kauke"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Išsišiepusios katės snukutis su besišypsančiomis akimis"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Katės snukutis su džiaugsmo ašaromis"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Besišypsančios išsižiojusios katės snukutis"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Besišypsančios katės snukutis su širdelės formos akimis"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Katės snukutis su kreiva šypsena"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Bučiuojančios katės snukutis su užmerktomis akimis"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Susiraukusios katės snukutis"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Verkiančios katės snukutis"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Nuvargusios katės snukutis"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Nepritariantis veidas"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Pritariantis veidas"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Žemai nusilenkęs žmogus"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Užsidengusi akis beždžionė"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Užsidengusi ausis beždžionė"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Užsidengusi burną beždžionė"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Laimingas žmogus, pakėlęs vieną ranką"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Džiaugsmingai rankas keliantis žmogus"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Susiraukęs žmogus"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Žmogus susiraukusiu veidu"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Žmogus su suglaustais delnais"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Raketa"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Sraigtasparnis"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Garvežys"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Geležinkelio vežimėlis"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Greitasis traukinys"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Greitasis traukinys su smailiu priekiu"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Traukinys"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Metro"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Miesto tramvajus"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Stotis"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Tramvajus"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Tramvajaus vagonas"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Autobusas"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Artėjantis autobusas"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Troleibusas"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Autobusų stotelė"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Mikroautobusas"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Greitosios pagalbos automobilis"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Ugniagesių automobilis"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Policijos automobilis"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Artėjantis policijos automobilis"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taksi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Artėjantis taksi"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Automobilis"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Artėjantis automobilis"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Rekreacijos automobilis"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Krovininis sunkvežimis"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Sunkvežimis su priekaba"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Traktorius"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Vienbėgis geležinkelis"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Kalnų geležinkelis"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Kabanti geležinkelio linija"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Kalnų kabelinis kranas"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Orinis tramvajus"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Laivas"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Irklinė valtis"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Motorinis kateris"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Horizontalus šviesoforas"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Vertikalus šviesoforas"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Statybų ženklas"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Besisukanti policijos automobilio lempa"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Trikampė vėliavėlė ant kotelio"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Durys"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Ženklas, kad įeiti / įvažiuoti draudžiama"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Rūkymo simbolis"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Nerūkymo simbolis"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Šiukšlių metimo į tam skirtas vietas simbolis"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Draudimo šiukšlinti simbolis"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Geriamojo vandens simbolis"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Negeriamojo vandens simbolis"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Dviratis"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Dviračiais važiuoti draudžiama"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Dviratininkas"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Dviratininkas, važiuojantis kalnų dviračiu"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Pėsčiasis"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Pėstiesiems eiti draudžiama"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Vaikų perėja"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Vyrų simbolis"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Moterų simbolis"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Tualeto kambarys"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Kūdikio simbolis"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Tualetas"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Tualetas"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Dušas"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Vonia"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Vonia"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Pasų kontrolė"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Muitinė"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Bagažo atsiėmimo punktas"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Palikto bagažo punktas"</string>
+</resources>
diff --git a/java/res/values-lt/strings-talkback-descriptions.xml b/java/res/values-lt/strings-talkback-descriptions.xml
index 18b09dd..d2a97dd 100644
--- a/java/res/values-lt/strings-talkback-descriptions.xml
+++ b/java/res/values-lt/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Nėra įvesto teksto"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> pataiso <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> į <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> atlieka automatinį taisymą"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Nėra pasiūlymų"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Nežinomas simbolis"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Klavišas „Shift“"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Daugiau simbolių"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Didžioji I su tašku viršuje"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Nežinomas simbolis"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Nežinomas jaustukas"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Nuobodžiaujantis veidas"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Susigėdęs veidas"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Veidas su akiniais nuo saulės"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Nustebęs veidas"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Bučiuojantis veidas"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Paniuręs veidas"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Alternatyvūs ženklai pasiekiami"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Alternatyvūs simboliai atmetami"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Alternatyvūs pasiūlymai pasiekiami"</string>
diff --git a/java/res/values-lt/strings.xml b/java/res/values-lt/strings.xml
index cac1287..6719d01 100644
--- a/java/res/values-lt/strings.xml
+++ b/java/res/values-lt/strings.xml
@@ -26,24 +26,30 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibruoti, kai paspaudžiami klavišai"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Klavišo paspaudimo garsas"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Iššoka paspaudus klavišą"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Nuostatos"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Paskyros ir privatumas"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Išvaizda ir išdėstymai"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Įvestis gestais"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Teksto taisymas"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Išplėstiniai"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Įgalinti suskaidytą klaviatūrą"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"„Google“ klaviatūros sinchroniz."</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Sinchronizavimas įjungtas"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Sinchronizuokite asmeninį žodyną visuose įrenginiuose"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Sinchronizuoti dabar"</string>
+    <!-- no translation found for clear_sync_data_title (8582001557037069154) -->
     <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Ištrinami sinchronizuoti duomenys iš „Google“"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Sinchron. duomenys bus ištrinti iš debesies. Norite tai atlikti?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Ištrinti"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Atšaukti"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Asmeninis žodynas bus sinchronizuotas ir atsarginė kopija sukurta „Google“ serveriuose. Gali būti renkama statistinė žodžių dažnumo informacija, kad būtų galima patobulinti produktus. Visa informacija renkama ir naudojama laikantis "<a href="https://www.google.com/policies/privacy">"„Google“ privatumo politikos"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Pridėkite „Google“ paskyrą prie įreng., kad įgalint. šią funkciją"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Perj. į kt. įvesties būd."</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Kalbos perjungimo klavišu taip pat perjungiami įvesties būdai"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Kalbos keitimo klavišas"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Rodyti, kai įgalintos kelios įvesties kalbos"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Rodyti šliaužiklio indikatorių"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Rodyti vaizd. užuominą slenkant nuo „Shift“ ar simb. klavišų"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Pagr. išš. l. atsis. d."</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Be delsos"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Numatytasis"</string>
@@ -62,9 +68,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Pagrindinis žodynas"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Rodyti taisymo pasiūlymus"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Įvedant tekstą pateikti siūlomų žodžių"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Visada rodyti"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Rodyti portreto režimu"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Visada slėpti"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Blokuoti įžeidžiančius žodžius"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Nesiūlyti galimai įžeidžiančių žodžių"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Automatinis taisymas"</string>
@@ -85,21 +88,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Įvesties balsu klavišas"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nėra jokių įgalintų įvesties balsu metodų. Patikrinkite kalbos ir įvesties nustatymus."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Konfigūruoti įvesties metodus"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Įvesties kalbos"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Siųsti atsiliepimą"</string>
-    <string name="select_language" msgid="3693815588777926848">"Įvesties kalbos"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Kalbos"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Pagalba ir atsiliepimai"</string>
+    <string name="select_language" msgid="5709487854987078367">"Kalbos"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Jei norite išsaugoti, palieskite dar kartą"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Palieskite čia, kad išsaugotumėte"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Žodynas galimas"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Klaviatūros tema"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Perjungti paskyras"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Nepasirinkta jokia paskyra"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Šiuo metu naudojama <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"Gerai"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Atšaukti"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Atsijungti"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Pasirinkite norimą naudoti paskyrą"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Anglų k. (JK)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Anglų k. (JAV)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Ispanų k. (JAV)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hindi ir anglų k. derinys"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Serbų k. (lot. rašmenys)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Anglų (JK) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Anglų (JAV) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Ispanų (JAV) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hindi ir anglų derinys (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Serbų k. (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tradicinė)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (kirilica)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (lotynų)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (kompaktiška)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Kalbos nėra (abėcėlė)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Abėcėlė (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Abėcėlė (QWERTZ)"</string>
@@ -108,16 +122,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Abėcėlė („Colemak“)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Abėcėlė (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Jaustukai"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Klaviatūros tema"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Pasirinkti įvesties stilių"</string>
     <string name="add_style" msgid="6163126614514489951">"Prid. stilių"</string>
     <string name="add" msgid="8299699805688017798">"Pridėti"</string>
@@ -129,14 +134,9 @@
     <string name="enable" msgid="5031294444630523247">"Įgalinti"</string>
     <string name="not_now" msgid="6172462888202790482">"Ne dabar"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Toks pat įvesties stilius jau yra: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Klavišo ilgo paspaudimo delsa"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Vibrav. paspaudus mygt. trukmė"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Garso paspaudus mygt. garsumas"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Skaityti išorinį žodyno failą"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Atsisiuntimų aplanke nėra žodyno failų"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Pasirinkite diegiamą žodyno failą"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Ar tikrai įdiegti šį failą <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Įvyko klaida"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Klavišo ilgo paspaudimo delsa"</string>
     <string name="button_default" msgid="3988017840431881491">"Numatytieji"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Sveiki! Tai „<xliff:g id="APPLICATION_NAME">%s</xliff:g>“"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"naudojant įvestį gestais"</string>
@@ -154,8 +154,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Dabar galite įvesti visas mėgstamas programas naudodami „<xliff:g id="APPLICATION_NAME">%s</xliff:g>“."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Konfigūruokite papildomas kalbas"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Baigta"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Rodyti programos piktogramą"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Pateikti programos piktogramą paleidimo priemonėje"</string>
     <string name="app_name" msgid="6320102637491234792">"Žodyno teikėjas"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Žodyno teikėjas"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Žodyno paslauga"</string>
diff --git a/java/res/values-lv/strings-emoji-descriptions.xml b/java/res/values-lv/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..525a1a0
--- /dev/null
+++ b/java/res/values-lv/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Autortiesību zīme"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Reģistrētas prečzīmes simbols"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Divas izsaukuma zīmes"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Izsaukuma un jautājuma zīme"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Prečzīme"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Informācijas avots"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Pa labi un pa kreisi vērstā bultiņa"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Augšupvērstā un lejupvērstā bultiņa"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Bultiņa no Ziemeļiem uz Rietumiem"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Bultiņa no Ziemeļiem uz Austrumiem"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Bultiņa no Dienvidiem uz Austrumiem"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Bultiņa no Dienvidiem uz Rietumiem"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Pa kreisi vērstā bultiņa ar āķi"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Pa labi vērstā bultiņa ar āķi"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Pulkstenis"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Smilšu pulkstenis"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Divi pa labi vērsti melni trīsstūri"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Divi pa kreisi vērsti melni trīsstūri"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Divi augšupvērsti melni trīsstūri"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Divi lejupvērsti melni trīsstūri"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Modinātājs"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Smilšu pulkstenis ar plūstošām smiltīm"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Apvilkts latīņu alfabēta lielais burts “M”"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Mazs, melns kvadrāts"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Mazs, balts kvadrāts"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Melns pa labi vērsts trīsstūris"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Melns pa kreisi vērsts trīsstūris"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Balts vidēja lieluma kvadrāts"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Melns vidēja lieluma kvadrāts"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Balts vidēji mazs kvadrāts"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Melns vidēji mazs kvadrāts"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Melna saule ar stariem"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Mākonis"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Melns tālrunis"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Atzīmēta izvēles rūtiņa"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Lietussargs ar ūdens lāsēm"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Karsts dzēriens"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Augšupvērsts rādītājpirksts baltā krāsā"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Smaidiņš baltā krāsā"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Auns"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Vērsis"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Dvīņi"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Vēzis"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Lauva"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Jaunava"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Svari"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Skorpions"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Strēlnieks"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Mežāzis"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Ūdensvīrs"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Zivis"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Melns pīķa masts"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Melns kreica masts"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Melns ercena masts"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Melns kārava masts"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Karstie avoti"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Melns universāls otrreizējās pārstrādes simbols"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Invalīdu ratiņu simbols"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Enkurs"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Brīdinājuma zīme"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Augstsprieguma zīme"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Vidēji liels balts aplis"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Vidēji liels melns aplis"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Futbola bumba"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Beisbola bumba"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Sniegavīrs bez sniega"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Saule aiz mākoņa"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Čūsknesis"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Iebraukt aizliegts"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Baznīca"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Strūklaka"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Karodziņš bedrītē"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Burulaiva"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Telts"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Degvielas sūknis"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Melnas šķēres"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Balta izcelta atzīme"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Lidmašīna"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Aploksne"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Pacelta dūre"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Pacelta roka"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Rokas žests “Uzvara!”"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Zīmulis"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Melna rakstāmspalva"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Izcelta atzīme"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Izcelta reizinājuma zīme"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Spīguļošana"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Astoņu staru zvaigznīte"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Melna astoņu smaiļu zvaigznīte"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Sniegpārsliņa"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Dzirksts"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Reizinājuma zīme"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Reizinājuma zīme negatīvās krāsās ietverta kvadrātā"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Dekoratīva melna jautājuma zīme"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Dekoratīva balta jautājuma zīme"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Dekoratīva balta izsaukuma zīme"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Izcelts izsaukuma zīmes simbols"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Aizpildīta melna sirds"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Izcelta pluszīme"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Izcelta mīnus zīme"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Izcelta dalīšanas zīme"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Melna pa labi vērsta bultiņa"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Izliekta cilpa"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Divas izliektas cilpas"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Pa labi vērsta bultiņa, kas pagriežas uz augšu"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Pa labi vērsta bultiņa, kas pagriežas uz leju"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Pa kreisi vērsta melna bultiņa"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Augšupvērsta melna bultiņa"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Lejupvērsta melna bultiņa"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Liels melns kvadrāts"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Liels balts kvadrāts"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Balta vidēja lieluma zvaigzne"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Izcelts liels aplis"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Viļņota līkne"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Dziedātāja partijas maiņas zīme"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Apvilkta ideogramma “Apsveicu!”"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Apvilkta ideogramma “Noslēpums”"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Mahjong kauliņš: sarkanais pūķis"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Spēļu kārts: melnais džokers"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"A asins grupa"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"B asins grupa"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"0. asins grupa"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Autostāvvieta"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"AB asins grupa"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"Abreviatūra “CL” ietverta kvadrātā"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Vārds “cool” ietverts kvadrātā"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Vārds “free” ietverts kvadrātā"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"Abreviatūra “ID” ietverta kvadrātā"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Vārds “new” ietverts kvadrātā"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Abreviatūra “N G” ietverta kvadrātā"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Abreviatūra “OK” ietverta kvadrātā"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"Abreviatūra “SOS” ietverta kvadrātā"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Vārds “up” ar izsaukuma zīmi ietverts kvadrātā"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Abreviatūra “vs” ietverta kvadrātā"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Vārds “šeit” (katakanas rakstībā) ietverts kvadrātā"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Vārds “apkalpošana” (katakanas rakstībā) ietverts kvadrātā"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Ideogramma “bez maksas” ietverta kvadrātā"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Ideogramma “rezervēta vieta” ietverta kvadrātā"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Ideogramma “aizliegums” ietverta kvadrātā"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Ideogramma “vakance” ietverta kvadrātā"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Ideogramma “pieņemšana” ietverta kvadrātā"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Ideogramma “brīvu vietu nav” ietverta kvadrātā"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Ideogramma “maksas” ietverta kvadrātā"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Ideogramma “mēnesī” ietverta kvadrātā"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Ideogramma “pieteikums” ietverta kvadrātā"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Ideogramma “atlaide” ietverta kvadrātā"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Ideogramma “atvērts” ietverta kvadrātā"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Ideogramma “priekšrocības” ietverta aplī"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Ideogramma “piekrist” ietverta aplī"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Ciklons"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Migla"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Aizvērts lietussargs"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Zvaigžņota nakts"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Saullēkts pār kalniem"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Saullēkts"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Pilsēta krēslā"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Saulriets pār ēkām"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Varavīksne"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Tilts naktī"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Ūdens vilnis"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Vulkāns"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Piena ceļš"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Globuss ar Eiropu un Āfriku"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Globuss ar Ziemeļameriku un Dienvidameriku"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Globuss ar Āziju un Austrāliju"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Globuss ar meridiāniem"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Jauna mēness simbols"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Augoša mēness sirpja simbols"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Pirmā ceturkšņa mēness simbols"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Augoša izliekta mēness simbols"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Pilnmēness simbols"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Dilstoša izliekta mēness simbols"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Pēdējā ceturkšņa mēness simbols"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Dilstoša mēness sirpja simbols"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Mēness sirpis"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Jauns mēness ar seju"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Pirmā ceturkšņa mēness ar seju"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Pēdējā ceturkšņa mēness ar seju"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Pilnmēness ar seju"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Saule ar seju"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Mirgojoša zvaigzne"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Krītoša zvaigzne"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Kastanis"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Asns"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Mūžzaļš koks"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Lapu koks"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palma"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Kaktuss"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulpe"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Ķirša zieds"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Roze"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Hibisks"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Saulespuķe"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Zieds"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Kukurūzas vālīte"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Rīsu vārpas"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Ārstniecības augs"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Četrlapu āboliņš"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Kļavas lapa"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Nokritušas lapas"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Vējā lidojoša lapa"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Sēne"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Tomāts"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Baklažāns"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Vīnogas"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Melone"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Arbūzs"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Mandarīns"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Citrons"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Banāns"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ananāss"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Sarkans ābols"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Zaļš ābols"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Bumbieris"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Persiks"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Ķirši"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Zemene"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburgers"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Picas šķēle"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Gaļa ar kaulu"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Putna gaļas stilbiņi"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Rīsu cepumi"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Rīsu bumbiņa"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Vārīti rīsi"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Rīsi ar karija mērci"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Kūpoša bļoda"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Spageti"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Maize"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Kartupeļi Frī"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Cepts saldais kartupelis"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Suši"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Fritēta garnele"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Zivju kūciņa ar spirālveida rotājumu"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Mīkstais saldējums"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Sasmalcināta ledus deserts"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Saldējums"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Virtulis"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Cepums"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Šokolādes tāfelīte"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Konfekte"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lollipop"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Olu krēms"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Medus pods"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Smilšu torte ar augļu pildījumu"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Bento pusdienu kastīte"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Ēdiens podiņā"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Ēdiena gatavošana"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Nazis un dakšiņa"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Tējas krūze bez osas"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Sakē pudele un glāzīte"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Vīna glāze"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Kokteiļglāze"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Tropu augļu kokteilis"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Alus kauss"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Alus kausu saskandināšana"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Barošanas pudelīte"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Lente"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Iesaiņota dāvana"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Dzimšanas dienas kūka"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Helovīna laterna"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Egle"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Santaklauss"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Salūts"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Brīnumusvecīte"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Balons"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Plaukšķene"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Konfeti bumba"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Tanabata koks"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Sakrustoti karogi"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Priedes dekorācija"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Japāņu lelles"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Karpu karodziņi"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Vēja zvani"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Mēness skatīšanās ceremonija"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Skolas soma"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Izlaiduma cepure"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Karuseļa zirdziņš"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Panorāmas rats"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Amerikāņu kalniņi"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Makšķere un zivs"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Mikrofons"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Kinokamera"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Kinoteātris"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Austiņas"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Gleznošanas palete"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Cilindrs"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Cirka telts"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Biļete"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Kino klapīte"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Tēlotāja māksla"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Videospēle"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Tieši mērķī"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Spēļu automāts"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Biljards"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Metamie kauliņi"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Boulings"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Ziedu kāršu spēle"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Mūzikas nots"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Vairākas mūzikas notis"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saksofons"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Ģitāra"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Klavieru taustiņi"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Trompete"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Vijole"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Nošu līnijas"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Skriešanas krekls ar lenti"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Tenisa rakete un bumbiņa"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Slēpes un slēpju zābaki"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Basketbola bumba un grozs"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Rūtains karogs"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Snovbordists"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Skrējējs"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Sērfotājs"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Balva"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Zirgu sacīkstes"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Amerikāņu futbola bumba"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Regbija bumba"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Peldētājs"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Dzīvojamā māja"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Māja ar dārzu"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Biroju ēka"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Pasta ēka Japānā"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Pasta ēka Eiropā"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Slimnīca"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Banka"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Bankomāts"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Viesnīca"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Mīlnieku viesnīca"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Diennakts veikals"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Skola"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Lielveikals"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Rūpnīca"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Papīra laterna"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Japāņu pils"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Pils Eiropā"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Žurka"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Pele"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Vērsis"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Ūdens bifelis"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Govs"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Leopards"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Trusis"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Kaķis"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Pūķis"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Krokodils"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Valis"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Gliemezis"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Čūska"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Zirgs"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Auns"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Kaza"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Aita"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Pērtiķis"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Gailis"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Vista"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Suns"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Cūka"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Vepris"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Zilonis"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Astoņkājis"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Spirālveida gliemežvāks"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Kukainis"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Skudra"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Medusbite"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Mārīte"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Zivs"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Tropu zivs"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Adatzivs"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Bruņurupucis"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Izšķīlies cālēns"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Cālēns"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Cālēna pretskats"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Putns"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Pingvīns"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koala lācis"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Pūdelis"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Vienkupra kamielis"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Divkupru kamielis"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Delfīns"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Peles galva"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Govs galva"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Tīģera galva"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Truša galva"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Kaķa galva"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Pūķa galva"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Valis izšļāc ūdeni"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Zirga galva"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Pērtiķa galva"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Suņa galva"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Cūkas galva"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Vardes galva"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Kāmis"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Vilka galva"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Lāča galva"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Pandas galva"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Cūkas šņukurs"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Ķepu nospiedumi"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Acis"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Auss"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Deguns"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Mute"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Mēle"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Balta delnas virspuse ar augšupvērstu rādītājpirkstu"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Balta delnas virspuse ar lejupvērstu rādītājpirkstu"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Balta delnas virspuse ar pa kreisi vērstu rādītājpirkstu"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Balta delnas virspuse ar pa labi vērstu rādītājpirkstu"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Plauksta dūrē"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Mājoša roka"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Žests “Viss kārtībā!”"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Pacelts īkšķis"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Nolaists īkšķis"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Plaukstas plaukšķina"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Atvērtu plaukstu žests"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Kronis"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Sieviešu cepure"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Brilles"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Kaklasaite"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"T krekls"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Džinsa bikses"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Kleita"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Sieviešu apģērbs"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Naudasmaks"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Rokassomiņa"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Maciņš"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Vīriešu kurpe"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Sporta kurpe"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Augstpapēžu kurpe"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Sieviešu sandale"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Sieviešu zābaks"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Pēdu nospiedumi"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Krūšutēla siluets"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Krūšutēlu siluets"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Zēns"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Meitene"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Vīrietis"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Sieviete"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Ģimene"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Vīrietis un sieviete sadevušies rokās"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Divi vīrieši sadevušies rokās"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Divas sievietes sadevušās rokās"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Policists"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Sieviete ar zaķa ausīm"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Līgava ar plīvuru"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Persona ar blondiem matiem"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Vīrietis ar ķīniešu tradicionālo cepuri"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Vīrietis ar turbānu"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Gados vecāks vīrietis"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Gados vecāka sieviete"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Zīdainis"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Celtnieks"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Princese"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Japāņu velns"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Japāņu gnoms"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Spoks"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Ķerubs"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Citplanētietis"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Citplanētiešu briesmonis"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Velnēns"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Galvaskauss"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Darbinieks recepcijā"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Apsargs"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Dejotājs"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Lūpukrāsa"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Nagu laka"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Sejas masāža"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Matu griezums"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Bārddziņa izkārtne"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Šļirce"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Tablete"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Lūpu nospiedums"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Mīlestības vēstule"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Gredzens"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Dārgakmens"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Skūpsts"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Ziedu pušķis"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Pāris ar sirdi"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Kāzas"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Pukstoša sirds"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Lauzta sirds"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Divas sirdis"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Vizuļojoša sirds"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Pieaugoša sirds"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Sirds ar bultu"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Zila sirds"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Zaļa sirds"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Dzeltena sirds"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Violeta sirds"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Sirds ar lenti"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Rotējošas sirdis"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Sirds rotājums"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Briljanta forma ar punktu iekšpusē"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Elektriskā spuldze"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Dusmu simbols"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Spridzeklis"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Gulēšanas simbols"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Sadursmes simbols"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Līstoši sviedri"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Piliens"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Steigšanās simbols"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Izkārnījumu kaudze"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Sasprindzināts bicepss"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Galvas reiboņu simbols"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Runas burbulis"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Domu burbulis"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Balts zieds"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Simts punktu simbols"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Naudas maiss"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Valūtas maiņa"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Izcelta dolārzīme"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Kredītkarte"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Banknote ar jēnas zīmi"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Banknote ar dolāra zīmi"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Banknote ar eiro zīmi"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Banknote ar mārciņas zīmi"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Banknote ar spārniem"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Diagramma ar pozitīvām tendencēm un jēnas zīmi"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Sēdeklis"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Personālais dators"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Portfelis"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Minidisks"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Diskete"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Optiskais disks"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Failu mape"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Atvērta failu mape"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Uzlocījusies lapa"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Lapa ar tekstu uz augšu"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Kalendārs"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Noplēšamais kalendārs"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Kartotēka"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Diagramma ar pozitīvām tendencēm"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Diagramma ar negatīvām tendencēm"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Stabiņu diagramma"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Mape planšete"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Piespraude"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Adata"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Saspraude"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Taisns lineāls"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Trīsstūrveida lineāls"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Marķēšanas indeksi"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Virsgrāmata"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Klade"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Klade ar dekoratīviem vākiem"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Aizvērta grāmata"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Atvērta grāmata"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Zaļa grāmata"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Zila grāmata"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Oranža grāmata"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Grāmatas"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Vārda kartīte"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Pergamenta rullis"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Zīmīte"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Tālruņa klausule"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Peidžeris"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Fakss"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Satelītantena"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Rupors"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Uzmundrinošs megafons"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Izejošo dokumentu plaukts"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Ienākošo dokumentu plaukts"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Sūtījums"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"E-pasta simbols"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Ienākošā pasta aploksne"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Aploksne ar lejupvērstu bultiņu augšpusē"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Aizvērta pastkastīte ar nolaistu karodziņu"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Aizvērta pastkastīte ar paceltu karodziņu"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Atvērta pastkastīte ar paceltu karodziņu"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Atvērta pastkastīte ar nolaistu karodziņu"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Pasta kaste"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Pasta taure"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Laikraksts"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Mobilais tālrunis"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Mobilais tālrunis ar pa labi vērstu bultiņu kreisajā pusē"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Vibrorežīms"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Mobilais tālrunis izslēgts"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Mobilie tālruņi nav atļauti"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Antena ar stabiņiem"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Fotokamera"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Videokamera"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Televizors"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Radio"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Videokasete"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Pa labi vērstas savītas bultiņas"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Pulksteņrādītāja virzienā pa labi un pa kreisi vērstas atvērtas bultiņas, kas veido apli"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Pulksteņrādītāja virzienā pa labi un pa kreisi vērstas atvērtas bultiņas, kas veido apli, kur pārklājas apvilkts cipars “viens”"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Pulksteņrādītāja virzienā lejupvērstas un augšupvērstas atvērtas bultiņas, kas veido apli"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Pretēji pulksteņrādītāja virzienam lejupvērstas un augšupvērstas atvērtas bultiņas, kas veido apli"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Zems spilgtuma līmenis"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Augsts spilgtuma līmenis"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Pārsvītrots skaļrunis"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Skaļrunis"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Skaļrunis ar vienu skaņas vilni"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Skaļrunis ar trīs skaņas viļņiem"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Akumulators"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Kontaktspraudnis"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Pa kreisi vērsta lupa"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Pa labi vērsta lupa"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Slēdzene ar tintes pildspalvu"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Slēgta slēdzene ar atslēgu"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Atslēga"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Slēdzene"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Atvērta slēdzene"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Zvans"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Pārsvītrots zvans"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Grāmatzīme"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Saites simbols"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Radiopoga"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Vārds “Back” ar pa kreisi vērstu bultiņu augšpusē"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"Vārds “End” ar pa kreisi vērstu bultiņu augšpusē"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"Vārds “On” ar izsaukuma zīmi un pa kreisi un pa labi vērstu bultiņu augšpusē"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Vārds “Soon” ar pa labi vērstu bultiņu augšpusē"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Vārds “Top” ar augšupvērstu bultiņu augšpusē"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Aizlieguma zīme personām, kas jaunākas par 18 gadiem"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Taustiņš “10”"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Latīņu alfabēta lielo burtu ievades simbols"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Latīņu alfabēta mazo burtu ievades simbols"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Ciparu ievades simbols"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Simbols simbolu ievadei"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Latīņu alfabēta burtu ievades simbols"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Ugunsgrēks"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Kabatas lukturītis"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Uzgriežņu atslēga"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Āmurs"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Skrūve un uzgrieznis"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Virtuves nazis"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Pistole"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Mikroskops"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Teleskops"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Kristāla lode"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Sešstaru zvaigzne ar punktu vidū"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Japāņu simbols, kas nozīmē “Iesācējs”"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Trijžubura simbols"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Melna, kvadrātveida poga"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Balta, kvadrātveida poga"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Liels, sarkans aplis"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Liels, zils aplis"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Liels, oranžs briljants"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Liels, zils briljants"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Mazs, oranžs briljants"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Mazs, zils briljants"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Augšupvērsts sarkans trīsstūris"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Lejupvērsts sarkans trīsstūris"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Augšupvērsts mazs, sarkans trīsstūris"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Lejupvērsts mazs, sarkans trīsstūris"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Ciparnīca: plkst. viens"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Ciparnīca: plkst. divi"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Ciparnīca: plkst. trīs"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Ciparnīca: plkst. četri"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Ciparnīca: plkst. pieci"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Ciparnīca: plkst. seši"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Ciparnīca: plkst. septiņi"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Ciparnīca: plkst. astoņi"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Ciparnīca: plkst. deviņi"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Ciparnīca: plkst. desmit"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Ciparnīca: plkst. vienpadsmit"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Ciparnīca: plkst. divpadsmit"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Ciparnīca: plkst. pus divi"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Ciparnīca: plkst. pus trīs"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Ciparnīca: plkst. pus četri"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Ciparnīca: plkst. pus pieci"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Ciparnīca: plkst. pus seši"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Ciparnīca: plkst. pus septiņi"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Ciparnīca: plkst. pus astoņi"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Ciparnīca: plkst. pus deviņi"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Ciparnīca: plkst. pus desmit"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Ciparnīca: plkst. pus vienpadsmit"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Ciparnīca: plkst. pus divpadsmit"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Ciparnīca: plkst. pus viens"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Fudzi kalns"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Tokijas tornis"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Brīvības statuja"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Japānas kontūra"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moai"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Zobgalīgs smaids"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Zobgalīga seja ar smaidošām acīm"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Seja ar prieka asarām"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Plats smaids"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Plats smaids un smaidošas acis"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Plats smaids un auksti sviedri"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Plats smaids un cieši aizvērtas acis"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Smaidiņš ar nimbu"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Smaidiņš ar ragiem"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Smaidiņš ar piemiegtu aci"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Smaidiņš ar smaidošām acīm"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Smaidiņš, kas izbauda gardu ēdienu"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Atvieglota sejas izteiksme"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Smaidiņš ar acīm sirds formā"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Smaidiņš ar saulesbrillēm"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Vīpsnājošs smaidiņš"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Neitrāla sejas izteiksme"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Seja bez izteiksmes"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Neiepriecināta sejas izteiksme"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Seja ar aukstiem sviedriem"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Domīgs"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Samulsis"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Apmulsināts"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Skūpstu sniedzošs"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Skūpstu sūtošs"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Skūpstu sniedzošs smaidiņš ar smaidošām acīm"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Skūpstu sniedzošs smaidiņš ar aizvērtām acīm"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Smaidiņš ar izbāztu mēli"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Smaidiņš ar izbāztu mēli un piemiedzošu aci"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Smaidiņš ar izbāztu mēli un cieši aizvērtām acīm"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Vīlies"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Noraizējies"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Dusmīgs"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Sabozies"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Raudošs"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Neatlaidīgs"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Smaidiņš ar triumfējošu skatienu"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Vīlies, bet atvieglots"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Saviebies ar atvērtu muti"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Mokpilna seja"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Pārbijies"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Garlaikots"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Miegains"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Noguris"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Vaibstās"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Skaļi raudošs"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Ar atvērtu muti"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Apklusināts"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Ar atvērtu muti un aukstiem sviedriem"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Bailēs kliedzoša seja"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Izbrīnīts"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Nosarcis"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Guļošs"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Sareibis"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Seja bez mutes"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Seja ar medicīnisko masku"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Zobgalīgs kaķis ar smaidošām acīm"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Kaķis ar prieka asarām"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Smaidīgs kaķis ar atvērtu muti"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Smaidīgs kaķis ar acīm sirds formā"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Kaķis ar ironisku smaidu"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Skūpstu sniedzošs kaķis ar aizvērtām acīm"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Sabozies kaķis"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Raudošs kaķis"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Garlaikots kaķis"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Persona ar žestu “Nav labi!”"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Persona ar žestu “Viss kārtībā!”"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Persona, kas zemu paklanās"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Pērtiķis, kas neredz ļaunu"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Pērtiķis, kas nedzird ļaunu"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Pērtiķis, kas nesaka ļaunu"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Laimīga persona pacēlusi vienu roku"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Cilvēks ar sajūsmā paceltām rokām"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Nīgra persona"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Sabozusies persona"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Persona ar kopā saliktām plaukstām"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Raķete"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Helikopters"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Tvaika lokomotīve"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Vilciena vagons"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Ātrvilciens"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Ātrvilciens ar lodesveida priekšgalu"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Vilciens"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Metro"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Pasažieru vilciens"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Stacija"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Tramvajs"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Tramvaja vagons"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Autobuss"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Pienākošs autobuss"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Trolejbuss"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Autobusu pietura"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Mikroautobuss"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Ātrā palīdzība"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Ugunsdzēsēju mašīna"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Policijas automašīna"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Policijas automašīna tuvojas"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taksis"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Taksis tuvojas"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Automašīna"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Automašīna tuvojas"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Apvidus auto"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Vieglais preču automobilis"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Kravas auto"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Traktors"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Viensliežu dzelzceļš"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Funikulieris"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Trošu vilciens"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Kalna trošu ceļš"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Gaisa tramvajs"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Kuģis"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Airu laiva"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Ātrlaiva"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Horizontālais luksofors"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Vertikāls luksofors"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Ceļa remontdarbu zīme"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Policijas automašīnas ar ieslēgtām bākugunīm"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Trīsstūra formas karogs mastā"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Durvis"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Zīme “Aizliegts ienākt!”"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Zīme “Smēķēt atļauts”"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Smēķēšanas aizlieguma zīme"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Zīmē “Ievietojiet atkritumus tam paredzētajās tvertnēs!”"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Zīme “Nepiesārņot!”"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Zīme “Dzeramais ūdens”"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Zīme “Ūdens nav dzerams”"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Velosipēds"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Ar velosipēdiem pārvietoties aizliegts"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Velosipēdists"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Kalnu velosipēdists"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Kājāmgājējs"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Kājāmgājējiem pārvietoties aizliegts"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Pāreja bērniem"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Zīme “Vīriešiem”"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Zīme “Sievietēm”"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Atpūtas telpa"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Zīme “Piemērota zīdaiņiem”"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Tualete"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Ūdens klozets"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Duša"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Vanna"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Burbuļvanna"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Pasu kontrole"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Muita"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Bagāžas nodošanas/saņemšanas vieta"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Aizmirstā bagāža"</string>
+</resources>
diff --git a/java/res/values-lv/strings-talkback-descriptions.xml b/java/res/values-lv/strings-talkback-descriptions.xml
index 2fe7f91..d23d4fa 100644
--- a/java/res/values-lv/strings-talkback-descriptions.xml
+++ b/java/res/values-lv/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Teksts nav ievadīts"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"Nospiežot taustiņu <xliff:g id="KEY_NAME">%1$s</xliff:g>, “<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>” tiek labots uz “<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>”."</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Taustiņam <xliff:g id="KEY_NAME">%1$s</xliff:g> ir automātiskas labošanas funkcija."</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Nav ieteikuma"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Nezināma rakstzīme"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Pārslēgšanas taustiņš"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Citi simboli"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Lielais burts “I” ar punktu virs tā"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Nezināms simbols"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Nezināma emocijzīme"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Garlaikots"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Apmulsis"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Ar saulesbrillēm"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Pārsteigts"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Skūpstu sniedzošs"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Drūms"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Ir pieejamas alternatīvas rakstzīmes."</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Alternatīvās rakstzīmes netiek rādītas."</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Ir pieejami alternatīvi ieteikumi."</string>
diff --git a/java/res/values-lv/strings.xml b/java/res/values-lv/strings.xml
index 798d517..aefa323 100644
--- a/java/res/values-lv/strings.xml
+++ b/java/res/values-lv/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrēt, nospiežot taustiņu"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Skaņa, nospiežot taustiņu"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Nospiežot taustiņu, parādīt uznirstošo izvēlni"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferences"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Konti un konfidencialitāte"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Izskats un izkārtojumi"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Ievade ar žestiem"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Teksta korekcija"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Papildu"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Motīvs"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Iespējot dalīto tastatūru"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google tastatūras sinhronizācija"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Sinhronizācija ir ieslēgta."</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Sinhronizējiet savu personisko vārdnīcu vairākās ierīcēs."</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Sinhronizēt tūlīt"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Dzēst mākoņa datus"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Dzēš sinhronizētos datus no Google serveriem"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Sinhronizētie dati tiks dzēsti no mākoņa. Vai tiešām to vēlaties?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Dzēst"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Atcelt"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Jūsu personiskā vārdnīca tiks sinhronizēta un dublēta Google serveros. Mūsu produktu uzlabošanas nolūkos var tikt apkopota statistiskā informācija par vārdu biežumu. Visa informācija tiks apkopota un izmantota saskaņā ar "<a href="https://www.google.com/policies/privacy">"Google konfidencialitātes politiku"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Lai iespējotu šo funkciju, pievienojiet Google kontu šai ierīcei."</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Pārsl. uz citām iev. met."</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Valodas pārslēgš. taustiņu var lietot arī citām ievades metodēm."</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Valodas pārslēgšanas taustiņš"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Parādīt, ja ir iespējotas vairākas ievades valodas"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Rādīt vilkšanas indikatoru"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Attēlot vizuālu norādījumu, velkot no Shift vai simbolu taustiņa"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Taust. uzn. loga noraid. aizk."</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Bez aizkaves"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Noklusējums"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Galvenā vārdnīca"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Rādīt labojumu ieteikumus"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Ievades laikā attēlot ieteiktos vārdus"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Vienmēr rādīt"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Rādīt portreta režīmā"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Vienmēr slēpt"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Bloķēt aizvainojošus vārdus"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Neiesakiet vārdus, kas varētu būt aizvainojoši."</string>
     <string name="auto_correction" msgid="7630720885194996950">"Automātiska labošana"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Balss ievades atslēga"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nav iespējota neviena balss ievades metode. Pārbaudiet valodas un ievades iestatījumus."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Ievades metožu konfigurēšana"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Ievades valodas"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Sūtīt atsauksmes"</string>
-    <string name="select_language" msgid="3693815588777926848">"Ievades valodas"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Valodas"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Palīdzība un atsauksmes"</string>
+    <string name="select_language" msgid="5709487854987078367">"Valodas"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Pieskarieties vēlreiz, lai saglabātu."</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Lai saglabātu, pieskarieties šeit"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Ir pieejama vārdnīca."</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Tastatūras motīvs"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Pārslēgt kontus"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Nav atlasīts neviens konts."</string>
+    <string name="account_selected" msgid="2846876462199625974">"Pašlaik tiek izmantots konts <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>."</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"Labi"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Atcelt"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Izrakstīties"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Izmantojamā konta atlasīšana"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Angļu valoda (Lielbritānija)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Angļu valoda (ASV)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Spāņu (ASV)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hindi–angļu valoda"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Serbu (latīņu)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Angļu (Lielbritānija) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Angļu (ASV) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Spāņu (ASV) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hindi–angļu valoda (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Serbu (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tradicionālā)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (kirilica)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (latīņu)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (kompaktā)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Nav valodas (alfabēts)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabēts (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabēts (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabēts (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabēts (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Japāņu emocijzīmes"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Tastatūras motīvs"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Pielāg. ievades stili"</string>
     <string name="add_style" msgid="6163126614514489951">"Piev. stilu"</string>
     <string name="add" msgid="8299699805688017798">"Pievienot"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Iespējot"</string>
     <string name="not_now" msgid="6172462888202790482">"Vēlāk"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Šāds ievades stils jau pastāv: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Taustiņa ilgās nosp. noildze"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Taust. nosp. vibrācijas ilgums"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Taustiņu nosp. skaņas skaļums"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Ārējās vārdnīcas faila nolasīšana"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Mapē Lejupielādes nav neviena vārdnīcas faila."</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Instalējamā vārdnīcas faila atlasīšana"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Vai tiešām instalēt šo failu šādai valodai: <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Radās kļūda"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Taustiņa ilgās nosp. noildze"</string>
     <string name="button_default" msgid="3988017840431881491">"Noklusējums"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Laipni lūdzam pakalpojumā <xliff:g id="APPLICATION_NAME">%s</xliff:g>,"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"kurā varat izmantot ievadi ar žestiem"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Izmantojot lietojumprogrammu <xliff:g id="APPLICATION_NAME">%s</xliff:g>, varat rakstīt visās iecienītākajās lietotnēs."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Konfigurēt papildu valodas"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Pabeigts"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Rādīt lietotnes ikonu"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Rādīt palaidēja ekrānā lietojumprogrammas ikonu"</string>
     <string name="app_name" msgid="6320102637491234792">"Vārdnīcas nodrošinātājs"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Vārdnīcas nodrošinātājs"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Vārdnīcas pakalpojums"</string>
diff --git a/java/res/values-mk-rMK/strings-action-keys.xml b/java/res/values-mk-rMK/strings-action-keys.xml
index f4fc9ce..f7b0277 100644
--- a/java/res/values-mk-rMK/strings-action-keys.xml
+++ b/java/res/values-mk-rMK/strings-action-keys.xml
@@ -20,19 +20,12 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for label_go_key (4033615332628671065) -->
-    <skip />
-    <!-- no translation found for label_next_key (5586407279258592635) -->
-    <skip />
-    <!-- no translation found for label_previous_key (1421141755779895275) -->
-    <skip />
-    <!-- no translation found for label_done_key (7564866296502630852) -->
-    <skip />
-    <!-- no translation found for label_send_key (482252074224462163) -->
-    <skip />
+    <string name="label_go_key" msgid="4033615332628671065">"Оди"</string>
+    <string name="label_next_key" msgid="5586407279258592635">"Следно"</string>
+    <string name="label_previous_key" msgid="1421141755779895275">"Прет."</string>
+    <string name="label_done_key" msgid="7564866296502630852">"Готово"</string>
+    <string name="label_send_key" msgid="482252074224462163">"Прати"</string>
     <string name="label_search_key" msgid="7965186050435796642">"Барај"</string>
-    <!-- no translation found for label_pause_key (2225922926459730642) -->
-    <skip />
-    <!-- no translation found for label_wait_key (5891247853595466039) -->
-    <skip />
+    <string name="label_pause_key" msgid="2225922926459730642">"Пауза"</string>
+    <string name="label_wait_key" msgid="5891247853595466039">"Чекај"</string>
 </resources>
diff --git a/java/res/values-mk-rMK/strings-appname.xml b/java/res/values-mk-rMK/strings-appname.xml
new file mode 100644
index 0000000..da3d84e
--- /dev/null
+++ b/java/res/values-mk-rMK/strings-appname.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="english_ime_name" msgid="5940510615957428904">"Тастатура на Android (AOSP)"</string>
+    <string name="spell_checker_service_name" msgid="1254221805440242662">"Проверувач на правопис на Android (AOSP)"</string>
+    <string name="english_ime_settings" msgid="5760361067176802794">"Поставки на тастатура на Android (AOSP)"</string>
+    <string name="android_spell_checker_settings" msgid="6123949487832861885">"Поставки за проверка на правопис на Android (AOSP)"</string>
+</resources>
diff --git a/java/res/values-mk-rMK/strings-config-important-notice.xml b/java/res/values-mk-rMK/strings-config-important-notice.xml
new file mode 100644
index 0000000..d2ae5fa
--- /dev/null
+++ b/java/res/values-mk-rMK/strings-config-important-notice.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="use_personalized_dicts_summary" msgid="590432261305469627">"Учете од комуникациите и напишаните податоци за подобри предлози"</string>
+</resources>
diff --git a/java/res/values-mk-rMK/strings-emoji-descriptions.xml b/java/res/values-mk-rMK/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..7f9fbd7
--- /dev/null
+++ b/java/res/values-mk-rMK/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Знак за авторски права"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Регистриран знак"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Два извичника"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Извичник и прашалник"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Знак за заштитен знак"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Извор на информации"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Стрелка налево и надесно"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Стрелка нагоре и надолу"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Стрелка северозапад"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Стрелка североисток"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Стрелка југоисток"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Стрелка југозапад"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Стрелка налево со кука"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Стрелка надесно со кука"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Часовник"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Песочен часовник"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Два црни триаголника свртени надесно"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Два црни триаголника свртени налево"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Два црни триаголника свртени нагоре"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Два црни триаголника свртени надолу"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Будилник"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Песочен часовник со песок што паѓа"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Голема латинична буква М во крукче"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Црно квадратче"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Бело квадратче"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Црн триаголник свртен надесно"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Црн триаголник свртен налево"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Квадрат во бела средина"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Квадрат во црна средина"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Квадратче во бела средина"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Квадратче во црна средина"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Црно сонце со зраци"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Облак"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Црн телефон"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Рамка за гласање, означена"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Чадор со капки дожд"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Топол напиток"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Бел показалец што покажува нагоре"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Бело насмеано лице"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Овен"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Бик"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Близнаци"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Рак"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Лав"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Девица"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Вага"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Скорпија"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Стрелец"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Јарец"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Водолија"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Риби"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Боја на карти црн пик"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Боја на карти црн треф"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Боја на карти црн херц"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Боја на карти црно каро"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Топли извори"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Црн универзален симбол за рециклирање"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Симбол инвалидска количка"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Сидро"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Знак за предупредување"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Знак висок напон"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Среден бел круг"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Среден црн круг"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Фудбалска топка"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Бејзбол"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Снешко без снег"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Сонце зад облак"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Змијоносец"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Забранет влез"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Црква"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Фонтана"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Знаме во дупка"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Едрилица"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Шатор"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Пумпа за гориво"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Црни ножици"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Бел голем знак за означување"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Авион"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Коверт"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Крената тупаница"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Крената рака"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Победничка рака"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Молив"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Црн врв од перо"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Задебелен знак за означување"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Задебелен х за множење"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Искри"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Ѕвездичка со осум страни"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Осумстрана црна ѕвезда"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Снегулка"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Искра"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Знак крст"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Крст со значење „негативно“ во квадрат"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Украсен црн прашалник"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Украсен бел прашалник"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Украсен бел извичник"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Симбол задебелен прашалник"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Задебелено црно срце"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Знак задебелен плус"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Знак задебелен минус"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Задебелен знак за делење"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Црна стрелка надесно"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Свртена јамка"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Јамка двапати свртена"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Стрелка насочена надесно, па свртена нагоре"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Стрелка насочена надесно, па свртена надолу"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Црна стрелка налево"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Црна стрелка нагоре"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Црна стрелка надолу"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Голем црн квадрат"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Голем бел квадрат"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Бела средна ѕвезда"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Голем задебелен круг"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Разбранувана црта"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Знак за промена на улога"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Идеограм „честитки“ во круг"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Идеограм „тајна“ во крукче"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Плочка за маџонг, црвен змеј"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Карта за играње, црн џокер"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Крвна група А"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Крвна група Б"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Крвна група О"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Паркинг"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Крвна група АБ"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"CL во квадрат"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"„Фино“ во квадрат"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Бесплатно во квадрат"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"„ИД“ во квадрат"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Ново во квадрат"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"„НГ“ во квадрат"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Во ред во квадрат"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"„СОС“ во квадрат"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Горе со извичник во квадрат"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"vs во квадрат"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"„Овде“ на катакана во квадрат"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"„Услуга“ на катакана во квадрат"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Идеограм „без трошоци“ во квадрат"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Идеограм „резервирано место“ во квадрат"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Идеограм „прохибиција“ во квадрат"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Идеограм „слободно“ во квадрат"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Идеограм „прифаќање“ во квадрат"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Идеограм „целосна исполнетост“ во квадрат"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Идеограм „платено“ во квадрат"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Идеограм „месечно“ во квадрат"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Идеограм „апликација“ во квадрат"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Идеограм „попуст“ во квадар"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Идеограм „работи“ во квадрат"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Заокружен идеограм „предност“"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Заокружен идеограм „прифати“"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Циклон"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Магловито"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Затворен чадор"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Ноќ со ѕвезди"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Изгрејсонце над планини"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Изгрејсонце"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Градски пејзаж на самрак"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Зајдисонце над градби"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Виножито"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Мост ноќе"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Бран на вода"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Вулкан"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Млечниот Пат"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Европа и Африка на глобус"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Континентот Америка прикажан на глобус"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Азија и Австралија на глобус"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Глобус со меридијани"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Симбол млада месечина"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Симбол на месечина во наголемување"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Симбол на месечина во прва четвртина"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Симбол на испапчена месечина во наголемување"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Симбол на полна месечина"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Симбол на испапчена месечина во намалување"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Симбол на месечина во последна четвртина"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Симбол на месечина во намалување"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Месечина во наголемување"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Млада месечина со лице"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Месечина во прва четвртина со лице"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Месечина во последна четвртина со лице"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Полна месечина со лице"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Сонце со лице"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Блескава ѕвезда"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Ѕвезда што паѓа"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Костен"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Никулец"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Зимзеленo дрвo"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Листопадно дрво"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Палмово дрво"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Кактус"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Лале"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Цвет од цреша"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Роза"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Хибискус"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Сончоглед"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Цвет"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Кочан пченка"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Оризов клас"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Билка"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Детелина со четири листа"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Лист од јавор"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Паднат лист"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Лист што трепери на ветар"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Печурка"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Домат"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Модар домат"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Грозје"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Диња"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Лубеница"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Мандарина"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Лимон"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Банана"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ананас"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Црвено јаболко"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Зелено јаболко"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Круша"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Праска"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Цреши"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Јагода"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Хамбургер"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Парче пица"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Месо на коска"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Копан"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Оризов крекер"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Топче од ориз"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Варен ориз"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Кари и ориз"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Чинија што испарува"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Шпагети"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Леб"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Помфрит"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Печен сладок компир"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Данго"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Оден"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Суши"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Пржени ракчиња"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Рибин вртен колач"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Мек сладолед"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Струган мраз"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Сладолед"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Крофна"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Колаче"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Чоколада"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Бонбони"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Лижавче"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Крем од жолчки"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Грне со мед"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Шорткејк"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Кутија бенто"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Грне со храна"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Готвење"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Вилушка и нож"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Шолја за чај без рачка"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Шише и чаша со саќе"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Винска чаша"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Коктел-чаша"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Тропски пијалак"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Кригла за пиво"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Чукање со кригли пиво"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Шише за бебе"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Панделка"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Завиткан подарок"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Роденденска торта"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Фенер од тиква"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Новогодишна елка"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Дедо Мраз"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Огномет"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Жижица"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Балон"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Петарда за забави"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Топка со конфети"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Дрво танабата"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Вкрстени знамиња"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Украс со бор"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Јапонски кукли"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Коинобори"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Ѕвончиња за ветар"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Церемонија за гледање месечина"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Училишна торба"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Дипломска капа"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Коњ на рингишпил"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Панорамско тркало"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Тобоган"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Трска за риболов и риба"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Микрофон"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Филмска камера"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Кино"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Слушалки"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Уметничка палета"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Цилиндар"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Циркуски шатор"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Билет"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Клапа"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Изведувачки уметности"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Видеоигра"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Полн погодок"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Слот-машина"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Билијард"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Коцка"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Куглање"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Цвет со боја на карти"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Нота"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Повеќе ноти"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Саксофон"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Гитара"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Музичка тастатура"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Труба"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Виолина"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Партитура"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Тркачка маица со лента"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Рекет и топче за тенис"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Скија и чизма за скијање"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Баскет и обрач"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Шаховско знаме"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Сноубордер"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Тркач"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Сурфер"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Трофеј"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Тркачки коњ"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Американски фудбал"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Топка за рагби"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Пливач"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Станбена зграда"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Куќа со градина"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Деловна зграда"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Јапонска пошта"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Европска пошта"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Болница"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Банка"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Банкомат"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Хотел"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Хотел на љубовта"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Продавница"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Училиште"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Стоковна куќа"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Фабрика"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Фенер изакаја"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Јапонски дворец"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Европски замок"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Стаорец"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Глушец"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Вол"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Воден бивол"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Крава"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Леопард"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Зајак"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Мачка"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Змеј"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Крокодил"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Кит"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Полжав"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Змија"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Коњ"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Овен"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Коза"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Овца"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Мајмун"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Петел"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Кокошка"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Куче"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Свиња"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Крмнак"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Слон"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Октопод"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Спирална школка"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Бубачка"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Мравка"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Медоносна пчела"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Бубамара"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Риба"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Тропска риба"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Риба пуфер"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Желка"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Пиле што се испилува"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Пиле"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Пиле свртено нанапред"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Птица"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Пингвин"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Коала"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Пудлица"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Едногрба камила"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Двогрба камила"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Делфин"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Лице на глушец"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Лице на крава"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Лице на тигар"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Лице на зајак"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Лице на мачка"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Лице на змеј"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Кит што исфрла вода"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Лице на коњ"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Лице на мајмун"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Лице на куче"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Лице на свиња"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Лице на жаба"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Лице на хрчак"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Лице на волк"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Лице на мечка"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Лице на панда"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Рилка"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Отпечатоци од шепа"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Очи"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Уво"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Нос"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Уста"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Јазик"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Бела рака со показалец што покажува нагоре"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Бела рака со показалец што покажува надолу"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Бела рака со показалец што покажува налево"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Бела рака со показалец што покажува надесно"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Знак рака во тупаница"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Знак рака што мавта"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Знак рака „Одлично“"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Знак за одобрување"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Знак за неодобрување"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Знак со раце што ракоплескаат"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Знак отворена рака"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Круна"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Женска капа"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Очила"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Вратоврска"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Маица со куси ракави"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Фармерки"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Фустан"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Кимоно"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Бикини"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Женска облека"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Чанта"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Ташна"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Торбичка"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Машки чевел"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Спортски чевел"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Штикла"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Женска сандала"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Женска чизма"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Стапалки"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Силуета на биста"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Силуета на биста"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Момче"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Девојче"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Маж"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Жена"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Семејство"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Маж и жена се држат за раце"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Двајца мажи се држат за раце"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Две жени се држат за раце"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Полицаец"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Жена со зајачки уши"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Невеста со превез"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Лице со руса коса"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Маж со гуа пи мао"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Маж со турбан"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Постар маж"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Постара жена"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Бебе"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Градежен работник"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Принцеза"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Јапонски џин"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Јапонски гоблин"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Дух"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Бебе ангел"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Вонземјанин"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Вонземско чудовиште"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Детиште"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Череп"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Работник на информации"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Гардист"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Танчер"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Кармин"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Лак за нокти"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Масажа на лице"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Фризура"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Берберски столб"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Шприц"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Пилула"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Отпечаток од бакнеж"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Љубовно писмо"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Прстен"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Скапоцен камен"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Бакнеж"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Букет"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Двојка со срце"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Свадба"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Срце што чука"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Скршено срце"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Две срца"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Блескаво срце"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Срце што расте"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Срце со стрела"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Сино срце"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Зелено срце"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Жолто срце"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Пурпурно срце"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Срце со панделка"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Срца што се вртат"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Украс со срце"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Облик на дијамант со точка внатре"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Крушка за електрична светилка"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Симбол гнев"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Бомба"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Симбол за спиење"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Симбол судар"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Симбол капки пот"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Капка"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Симбол тире"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Куп каки"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Стегнат бицепс"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Симбол за вртоглавица"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Балон за говор"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Балон за мисла"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Бел цвет"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Симбол сто поени"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Торба за пари"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Размена на валути"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Знак за долар"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Кредитна картичка"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Банкнота со знак за јен"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Банкнота со знак за долар"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Банкнота со знак за евро"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Банкнота со знак за фунта"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Пари со крилја"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Графикон со нагорна тенденција и знак за јен"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Седиште"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Персонален компјутер"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Актовка"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Минидиск"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Флопи диск"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Оптички диск"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"Двд"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Папка за датотеки"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Отворена папка за датотеки"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Страница со свиткан дел"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Страница свртена нагоре"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Календар"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Календар од кој се кинат страници"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Регистар за картички"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Графикон со нагорна тенденција"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"График со надолна тенденција"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"График со ленти"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Табла со штипка"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Игличка"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Игличка со кружна глава"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Спојувалка"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Прав линијар"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Триаголен линијар"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Јазичиња за обележување"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Бележник"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Тетратка"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Тетратка со украсна корица"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Затворена книга"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Отворена книга"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Зелена книга"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Сина книга"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Портокалова книга"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Книги"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Значка за име"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Свиток"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Меморандум"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Телефонска слушалка"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Пејџер"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Факс-апарат"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Сателитска антена"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Разглас за јавно обраќање"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Мегафон за навивање"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Сад за излезна пошта"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Сад за дојдовна пошта"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Пакет"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Симбол за е-пошта"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Дојдовно писмо"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Коверт над кој има стрелка нагоре"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Затворено сандаче со спуштено знаменце"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Затворено сандаче со кренато знаменце"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Отворено сандаче со кренато знаменце"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Отворено сандаче со спуштено знаменце"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Поштенска кутија"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Поштенска труба"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Весник"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Мобилен телефон"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Мобилен телефон со стрелка надесно одлево"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Режим на вибрирање"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Знак за исклучување на мобилниот телефон"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Забрана за мобилни телефони"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Антена со цртички"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Камера"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Видеокамера"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Телевизор"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Радио"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Видеокасета"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Извртени стрелки надесно"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Десна и лева стрелка свртени во круг надесно"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Десна и лева стрелка свртени во круг надесно, со крукче и бројот еден над нив"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Десна и лева стрелка свртени надесно во отворено крукче"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Десна и лева стрелка свртени налево во отворено крукче"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Симбол за ниска светлост"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Симбол за висока светлост"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Звучник со знак за исклучување"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Звучник"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Звучник со еден звучен бран"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Звучник со три звучни брана"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Батерија"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Електричен приклучок"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Лупа свртена налево"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Лупа свртена надесно"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Катанец со пенкало за мастило"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Затворен катанец со клуч"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Клуч"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Катанец"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Отворен катанец"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Ѕвонче"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Ѕвонче со знак за исклучување"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Обележувач"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Симбол за врска"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Радиокопче"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Квадратче со стрелка налево"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"Зборот „крај“ со стрелка налево над него"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"Зборот „Вклучено“ со извичник со стрелка лево-десно над него"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Зборот „набрзо“ со стрелка надесно над него"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Зборот „Врв“ со стрелка нагоре над него"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Симбол „Не е за под 18-годишна возраст“"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Копче од тастатура „10“"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Симбол за внесување латинични големи букви"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Симбол за внесување латинични мали букви"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Симбол за внесување броеви"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Симбол за внесување симболи"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Симбол за внесување латинични букви"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Оган"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Електрична лампа"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Клуч"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Чекан"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Завртка и навртка"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Нож"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Пиштол"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Микроскоп"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Телескоп"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Кристална топка"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Шестстрана ѕвезда со точка во средина"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Јапонски симбол за почетник"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Трозабец амблем"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Копче со црн квадрат"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Копче со бел квадрат"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Голем црвен круг"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Голем син круг"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Голема портокалова баклава"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Голема сина баклава"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Мала портокалова баклава"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Мала сина баклава"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Црвен триаголник свртен нагоре"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Црвен триаголник свртен надолу"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Мал црвен триаголник свртен нагоре"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Мал црвен триаголник свртен надолу"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Часовник со лице, еден часот"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Часовник со лице, два часот"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Часовник со лице, три часот"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Часовник со лице, покажува четири часот"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Часовник со лице, пет часот"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Часовник со лице, шест часот"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Часовник со лице, седум часот"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Часовник со лице, осум часот"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Часовник со лице, девет часот"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Часовник со лице, десет часот"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Часовник со лице, единаесет часот"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Часовник со лице, дванаесет часот"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Часовник со лице, еден и триесет"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Часовник со лице, два и триесет часот"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Часовник со лице, три и триесет часот"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Часовник со лице, четири и триесет часот"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Часовник со лице, пет и триесет часот"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Часовник со лице, шест и триесет часот"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Часовник со лице, седум и триесет часот"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Часовник со лице, осум и триесет"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Часовник со лице, девет и триесет"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Часовник со лице, десет и триесет"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Часовник со лице, осум и триесет часот"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Часовник со лице, дванаесет и триесет"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Планината Фуџи"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Токиска кула"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Статуата на слободата"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Силуета на Јапонија"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Мојаи"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Лице што се смее"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Насмеано лице со очи што се смеат"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Лице со солзи радосници"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Лице што се смее со отворена уста"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Лице што се потсмева со отворена уста и очи што се смеат"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Лице што се смее со отворена уста и студена пот"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Лице што се смее со отворена уста и затворени и стегнати очи"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Лице што се смее со ореол"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Лице што се смее со рогови"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Лице што намигнува"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Лице што се смее со очи што се смеат"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Лице што пробува вкусна храна"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Лице на кое му олеснало"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Насмеано лице со очи во форма на срциња"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Лице што се смее со очила за сонце"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Лице што се потсмева"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Неутрално лице"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Безизразно лице"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Лице на кое не му е интересно"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Лице со студена пот"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Замислено лице"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Збунето лице"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Збунето лице"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Лице што бакнува"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Лице што праќа бакнеж"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Лице што бакнува со насмеани очи"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Лице што бакнува со затворени очи"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Лице со исплазен јазик"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Лице со исплазен јазик и намигнато око"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Лице со исплазен јазик и затворени и стегнати очи"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Разочарано лице"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Загрижено лице"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Луто лице"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Лице со напрчени усни"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Расплакано лице"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Лице што истрајува"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Лице со изглед на триумф"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Разочарано лице, но на кое му олеснало"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Намуртено лице со отворена уста"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Очајно лице"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Страшливо лице"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Уморно лице"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Поспано лице"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Уморно лице"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Лице што прави гримаси"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Лице што плаче гласно"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Лице со отворена уста"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Стишено лице"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Лице со отворена уста и студена пот"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Лице што вреска од страв"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Восхитено лице"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Вцрвено лице"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Лице што спие"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Лице со вртоглавица"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Лице без уста"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Лице со медицинска маска"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Насмеано лице со очи што се смеат"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Лице на мачка со солзи радосници"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Лице што се смее со отворена уста"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Лице на мачка со очи во облик на срциња"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Лице на мачка со иронична насмевка"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Лице на мачка што бакнува со затворени очи"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Лице на мачка со напрчени усни"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Лице на мачка што плаче"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Уморно лице на мачка"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Лице со гест „не може“"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Лице со гест „одлично“"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Човек што се поклонува длабоко"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Мајмун „ништо не гледам“"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Мајмун „ништо не слушам“"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Мајмун „ништо не зборувам“"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Среќно лице со една крената рака"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Човек со две кренати раце во прослава"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Намуртен човек"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Човек со напрчено лице"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Човек со прекрстени раце"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Ракета"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Хеликоптер"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Парна локомотива"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Железнички вагон"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Брз воз"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Брз воз со звук од куршум"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Воз"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Метро"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Лесна железница"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Станица"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Трамвај"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Трамвајски вагон"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Автобус"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Автобус што доаѓа"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Тролејбус"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Автобуска постојка"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Минибус"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Брза помош"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Пожарна кола"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Полициска кола"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Полициски автомобил што доаѓа"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Такси"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Такси што доаѓа"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Автомобил"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Автомобил што доаѓа"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Рекреативно возило"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Камион за испораки"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Шлепер"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Трактор"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Едношинска железница"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Планинска железница"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Висечка железница"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Планинска жичница"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Воздушен трамвај"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Брод"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Чун"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Глисер"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Хоризонтален семафор"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Вертикални семафори"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Знак „Градежни работи“"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Полициска кола со ротационо светло"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Триаголно знаме на столб"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Врата"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Знак за забранет влез"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Симбол за пушење"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Симбол за забрането пушење"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Симбол „Отпадоците фрлајте ги во канта“"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Симбол „Не правете смет“"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Симбол „Вода за пиење“"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Симбол за забрането пиење на водата"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Велосипед"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Забрана за велосипеди"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Велосипедист"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Планински велосипедист"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Пешак"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Забрана за пешаци"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Деца преминуваат улица"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Симбол за машки тоалет"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Женски симбол"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Тоалет"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Симбол за бебе"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Тоалет"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"ВЦ-школка"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Туш"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Бања"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Када"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Пасошка контрола"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Царина"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Подигнување багаж"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Оставен багаж"</string>
+</resources>
diff --git a/java/res/values-mk-rMK/strings-talkback-descriptions.xml b/java/res/values-mk-rMK/strings-talkback-descriptions.xml
index 12a6413..0ca80fd 100644
--- a/java/res/values-mk-rMK/strings-talkback-descriptions.xml
+++ b/java/res/values-mk-rMK/strings-talkback-descriptions.xml
@@ -20,112 +20,69 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for spoken_use_headphones (4313642710742229868) -->
-    <skip />
-    <!-- no translation found for spoken_current_text_is (4240549866156675799) -->
-    <skip />
-    <!-- no translation found for spoken_no_text_entered (1711276837961785646) -->
-    <skip />
-    <!-- no translation found for spoken_auto_correct (8989324692167993804) -->
-    <skip />
-    <!-- no translation found for spoken_auto_correct_obscured (7769449372355268412) -->
-    <skip />
+    <string name="spoken_use_headphones" msgid="4313642710742229868">"Вклучете слушалки за да ги слушнете копчињата за лозинката гласно изговорени."</string>
+    <string name="spoken_current_text_is" msgid="4240549866156675799">"Тековниот текст е %s"</string>
+    <string name="spoken_no_text_entered" msgid="1711276837961785646">"Не е внесен текст"</string>
+    <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> го поправи <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> со <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
+    <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> врши автоматска корекција"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Нема предлог"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Непознат знак"</string>
-    <!-- no translation found for spoken_description_shift (7209798151676638728) -->
-    <skip />
-    <!-- no translation found for spoken_description_symbols_shift (3483198879916435717) -->
-    <skip />
-    <!-- no translation found for spoken_description_shift_shifted (3122704922642232605) -->
-    <skip />
-    <!-- no translation found for spoken_description_symbols_shift_shifted (5179175466878186081) -->
-    <skip />
-    <!-- no translation found for spoken_description_caps_lock (1224851412185975036) -->
-    <skip />
-    <!-- no translation found for spoken_description_delete (3878902286264983302) -->
-    <skip />
-    <!-- no translation found for spoken_description_to_symbol (8244903740201126590) -->
-    <skip />
-    <!-- no translation found for spoken_description_to_alpha (4081215210530031950) -->
-    <skip />
-    <!-- no translation found for spoken_description_to_numeric (4560261331530795682) -->
-    <skip />
-    <!-- no translation found for spoken_description_settings (7281251004003143204) -->
-    <skip />
-    <!-- no translation found for spoken_description_tab (8210782459446866716) -->
-    <skip />
-    <!-- no translation found for spoken_description_space (5908716896642059145) -->
-    <skip />
-    <!-- no translation found for spoken_description_mic (6153138783813452464) -->
-    <skip />
-    <!-- no translation found for spoken_description_emoji (7990051553008088470) -->
-    <skip />
-    <!-- no translation found for spoken_description_return (3183692287397645708) -->
-    <skip />
-    <!-- no translation found for spoken_description_search (5099937658231911288) -->
-    <skip />
-    <!-- no translation found for spoken_description_dot (5644176501632325560) -->
-    <skip />
-    <!-- no translation found for spoken_description_language_switch (6818666779313544553) -->
-    <skip />
-    <!-- no translation found for spoken_description_action_next (431761808119616962) -->
-    <skip />
-    <!-- no translation found for spoken_description_action_previous (2919072174697865110) -->
-    <skip />
-    <!-- no translation found for spoken_description_shiftmode_on (5107180516341258979) -->
-    <skip />
-    <!-- no translation found for spoken_description_shiftmode_locked (7307477738053606881) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_symbol (111186851131446691) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_symbol_shift (4305607977537665389) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_alpha (4676004119618778911) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_phone (2061220553756692903) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_phone_shift (7879963803547701090) -->
-    <skip />
-    <!-- no translation found for announce_keyboard_hidden (2313574218950517779) -->
-    <skip />
-    <!-- no translation found for announce_keyboard_mode (6698257917367823205) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_date (6597407244976713364) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_date_time (3642804408726668808) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_email (1239682082047693644) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_im (3812086215529493501) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_number (5395042245837996809) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_phone (2486230278064523665) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_text (9138789594969187494) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_time (8558297845514402675) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_url (8072011652949962550) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_recents (4185344945205590692) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_people (8414196269847492817) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_objects (6116297906606195278) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_nature (5018340512472354640) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_places (1163315840948545317) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_symbols (474680659024880601) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_emoticons (456737544787823539) -->
-    <skip />
+    <string name="spoken_description_shift" msgid="7209798151676638728">"копче Shift"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Повеќе симболи"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"копче Shift"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Симболи"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"копче Shift"</string>
+    <string name="spoken_description_delete" msgid="3878902286264983302">"Бришење"</string>
+    <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Симболи"</string>
+    <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Букви"</string>
+    <string name="spoken_description_to_numeric" msgid="4560261331530795682">"Броеви"</string>
+    <string name="spoken_description_settings" msgid="7281251004003143204">"Поставки"</string>
+    <string name="spoken_description_tab" msgid="8210782459446866716">"Таб"</string>
+    <string name="spoken_description_space" msgid="5908716896642059145">"Празно место"</string>
+    <string name="spoken_description_mic" msgid="6153138783813452464">"Гласовен запис"</string>
+    <string name="spoken_description_emoji" msgid="7990051553008088470">"Емотикони"</string>
+    <string name="spoken_description_return" msgid="3183692287397645708">"Враќање"</string>
+    <string name="spoken_description_search" msgid="5099937658231911288">"Пребарување"</string>
+    <string name="spoken_description_dot" msgid="5644176501632325560">"Точка"</string>
+    <string name="spoken_description_language_switch" msgid="6818666779313544553">"Смени јазик"</string>
+    <string name="spoken_description_action_next" msgid="431761808119616962">"Следно"</string>
+    <string name="spoken_description_action_previous" msgid="2919072174697865110">"Претходно"</string>
+    <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Овозможено префрлање"</string>
+    <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"овозможено Caps lock"</string>
+    <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Режим на симболи"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Режим на повеќе симболи"</string>
+    <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Режим на букви"</string>
+    <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Телефонски режим"</string>
+    <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Режим на телефонски симболи"</string>
+    <string name="announce_keyboard_hidden" msgid="2313574218950517779">"Тастатурата е сокриена"</string>
+    <string name="announce_keyboard_mode" msgid="6698257917367823205">"Се прикажува тастатура <xliff:g id="KEYBOARD_MODE">%s</xliff:g>"</string>
+    <string name="keyboard_mode_date" msgid="6597407244976713364">"датум"</string>
+    <string name="keyboard_mode_date_time" msgid="3642804408726668808">"датум и време"</string>
+    <string name="keyboard_mode_email" msgid="1239682082047693644">"е-пошта"</string>
+    <string name="keyboard_mode_im" msgid="3812086215529493501">"размена на пораки"</string>
+    <string name="keyboard_mode_number" msgid="5395042245837996809">"број"</string>
+    <string name="keyboard_mode_phone" msgid="2486230278064523665">"телефон"</string>
+    <string name="keyboard_mode_text" msgid="9138789594969187494">"текст"</string>
+    <string name="keyboard_mode_time" msgid="8558297845514402675">"време"</string>
+    <string name="keyboard_mode_url" msgid="8072011652949962550">"УРЛ"</string>
+    <string name="spoken_descrption_emoji_category_recents" msgid="4185344945205590692">"Неодамнешни"</string>
+    <string name="spoken_descrption_emoji_category_people" msgid="8414196269847492817">"Луѓе"</string>
+    <string name="spoken_descrption_emoji_category_objects" msgid="6116297906606195278">"Предмети"</string>
+    <string name="spoken_descrption_emoji_category_nature" msgid="5018340512472354640">"Природа"</string>
+    <string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"Места"</string>
+    <string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"Симболи"</string>
+    <string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"Емотикони"</string>
     <string name="spoken_description_upper_case" msgid="4904835255229433916">"Голема буква <xliff:g id="LOWER_LETTER">%s</xliff:g>"</string>
     <string name="spoken_letter_0049" msgid="4743162182646977944">"Голема буква I"</string>
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Голема буква I, со точка одозгора"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Непознат симбол"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Непозната емотикона"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Досадно лице"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Засрамено лице"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Лице со очила за сонце"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Изненадено лице"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Лице што бакнува"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Намуртено лице"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Достапни се алтернативни знаци"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Алтернативните знаци се отфрлени"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Достапни се алтернативни предлози"</string>
diff --git a/java/res/values-mk-rMK/strings.xml b/java/res/values-mk-rMK/strings.xml
index d7945e3..6d2846c 100644
--- a/java/res/values-mk-rMK/strings.xml
+++ b/java/res/values-mk-rMK/strings.xml
@@ -20,355 +20,188 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for english_ime_input_options (3909945612939668554) -->
-    <skip />
-    <!-- no translation found for use_contacts_for_spellchecking_option_title (5374120998125353898) -->
-    <skip />
-    <!-- no translation found for use_contacts_for_spellchecking_option_summary (8754413382543307713) -->
-    <skip />
-    <!-- no translation found for vibrate_on_keypress (5258079494276955460) -->
-    <skip />
-    <!-- no translation found for sound_on_keypress (6093592297198243644) -->
-    <skip />
-    <!-- no translation found for popup_on_keypress (123894815723512944) -->
-    <skip />
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
-    <!-- no translation found for include_other_imes_in_language_switch_list (4533689960308565519) -->
-    <skip />
-    <!-- no translation found for include_other_imes_in_language_switch_list_summary (840637129103317635) -->
-    <skip />
-    <!-- no translation found for show_language_switch_key (5915478828318774384) -->
-    <skip />
-    <!-- no translation found for show_language_switch_key_summary (7343403647474265713) -->
-    <skip />
-    <!-- no translation found for sliding_key_input_preview (6604262359510068370) -->
-    <skip />
-    <!-- no translation found for sliding_key_input_preview_summary (6340524345729093886) -->
-    <skip />
-    <!-- no translation found for key_preview_popup_dismiss_delay (6213164897443068248) -->
-    <skip />
-    <!-- no translation found for key_preview_popup_dismiss_no_delay (2096123151571458064) -->
-    <skip />
-    <!-- no translation found for key_preview_popup_dismiss_default_delay (2166964333903906734) -->
-    <skip />
-    <!-- no translation found for abbreviation_unit_milliseconds (8700286094028323363) -->
-    <skip />
-    <!-- no translation found for settings_system_default (6268225104743331821) -->
-    <skip />
-    <!-- no translation found for use_contacts_dict (4435317977804180815) -->
-    <skip />
-    <!-- no translation found for use_contacts_dict_summary (6599983334507879959) -->
-    <skip />
-    <!-- no translation found for use_personalized_dicts (5167396352105467626) -->
-    <skip />
+    <string name="english_ime_input_options" msgid="3909945612939668554">"Опции за внесување"</string>
+    <string name="use_contacts_for_spellchecking_option_title" msgid="5374120998125353898">"Побарај имиња на контакти"</string>
+    <string name="use_contacts_for_spellchecking_option_summary" msgid="8754413382543307713">"Проверувачот на правопис користи записи од листата со контакти"</string>
+    <string name="vibrate_on_keypress" msgid="5258079494276955460">"Вибрирање при притисок на копче"</string>
+    <string name="sound_on_keypress" msgid="6093592297198243644">"Звук на притискање копче"</string>
+    <string name="popup_on_keypress" msgid="123894815723512944">"Појавен прозорец на притискање копче"</string>
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Претпочитани поставки"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Сметки и приватност"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Изглед и распоред"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Пишување со движење"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Корекција на текст"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Напредни"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Тема"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Овозможи поделена тастатура"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Синхронизирање на таст. на Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Синхронизирањето е вклучено"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Синхронизирајте го личниот речник низ уредите"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Синхронизирај сега"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Избриши податоци од облакот"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Ги брише синхронизираните податоци од Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Синхронизираните податоци ќе се избр. од облак. Дали сте сигурни?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Избриши"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Откажи"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Вашиот личен речник ќе се синхронизира и ќе се создаде резервна копија на серверите на Google. Може да се собираат статистички информации за честотата на зборовите за помош при подобрување на нашите производи. Собирањето и користењето на сите информации ќе биде во согласност со "<a href="https://www.google.com/policies/privacy">"Политиката за приватност на Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Додајте сметка на Google на уредов за овозможување на функцијава"</string>
+    <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Префрли на други влезни методи"</string>
+    <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Копчето за менување јазици покрива и други методи на внес"</string>
+    <string name="show_language_switch_key" msgid="5915478828318774384">"Копче за промена на јазик"</string>
+    <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Покажи кога се овозможени повеќе влезни јазици"</string>
+    <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Откажи доцнење за копче"</string>
+    <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Без задоцнување"</string>
+    <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Стандардно"</string>
+    <string name="abbreviation_unit_milliseconds" msgid="8700286094028323363">"<xliff:g id="MILLISECONDS">%s</xliff:g> ms"</string>
+    <string name="settings_system_default" msgid="6268225104743331821">"Стандардно за системот"</string>
+    <string name="use_contacts_dict" msgid="4435317977804180815">"Предложи имиња на контакт"</string>
+    <string name="use_contacts_dict_summary" msgid="6599983334507879959">"Употреби имиња од Контакти за предлози и корекции"</string>
+    <string name="use_personalized_dicts" msgid="5167396352105467626">"Персонализирани предлози"</string>
     <string name="enable_metrics_logging" msgid="5506372337118822837">"Подобри <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
-    <!-- no translation found for use_double_space_period (8781529969425082860) -->
-    <skip />
-    <!-- no translation found for use_double_space_period_summary (6532892187247952799) -->
-    <skip />
-    <!-- no translation found for auto_cap (1719746674854628252) -->
-    <skip />
-    <!-- no translation found for auto_cap_summary (7934452761022946874) -->
-    <skip />
-    <!-- no translation found for edit_personal_dictionary (3996910038952940420) -->
-    <skip />
-    <!-- no translation found for configure_dictionaries_title (4238652338556902049) -->
-    <skip />
-    <!-- no translation found for main_dictionary (4798763781818361168) -->
-    <skip />
-    <!-- no translation found for prefs_show_suggestions (8026799663445531637) -->
-    <skip />
-    <!-- no translation found for prefs_show_suggestions_summary (1583132279498502825) -->
-    <skip />
-    <!-- no translation found for prefs_suggestion_visibility_show_name (3219916594067551303) -->
-    <skip />
-    <!-- no translation found for prefs_suggestion_visibility_show_only_portrait_name (3859783767435239118) -->
-    <skip />
-    <!-- no translation found for prefs_suggestion_visibility_hide_name (6309143926422234673) -->
-    <skip />
-    <!-- no translation found for prefs_block_potentially_offensive_title (5078480071057408934) -->
-    <skip />
-    <!-- no translation found for prefs_block_potentially_offensive_summary (2371835479734991364) -->
-    <skip />
-    <!-- no translation found for auto_correction (7630720885194996950) -->
-    <skip />
-    <!-- no translation found for auto_correction_summary (5625751551134658006) -->
-    <skip />
-    <!-- no translation found for auto_correction_threshold_mode_off (8470882665417944026) -->
-    <skip />
-    <!-- no translation found for auto_correction_threshold_mode_modest (8788366690620799097) -->
-    <skip />
-    <!-- no translation found for auto_correction_threshold_mode_aggressive (7319007299148899623) -->
-    <skip />
-    <!-- no translation found for auto_correction_threshold_mode_very_aggressive (1853309024129480416) -->
-    <skip />
-    <!-- no translation found for bigram_prediction (1084449187723948550) -->
-    <skip />
-    <!-- no translation found for bigram_prediction_summary (3896362682751109677) -->
-    <skip />
-    <!-- no translation found for gesture_input (826951152254563827) -->
-    <skip />
-    <!-- no translation found for gesture_input_summary (9180350639305731231) -->
-    <skip />
-    <!-- no translation found for gesture_preview_trail (3802333369335722221) -->
-    <skip />
-    <!-- no translation found for gesture_floating_preview_text (4443240334739381053) -->
-    <skip />
-    <!-- no translation found for gesture_floating_preview_text_summary (4472696213996203533) -->
-    <skip />
-    <!-- no translation found for gesture_space_aware (2078291600664682496) -->
-    <skip />
-    <!-- no translation found for gesture_space_aware_summary (4371385818348528538) -->
-    <skip />
-    <!-- no translation found for voice_input (3583258583521397548) -->
-    <skip />
-    <!-- no translation found for voice_input_disabled_summary (8141750303464726129) -->
-    <skip />
-    <!-- no translation found for configure_input_method (373356270290742459) -->
-    <skip />
-    <!-- no translation found for language_selection_title (1651299598555326750) -->
-    <skip />
-    <!-- no translation found for send_feedback (1780431884109392046) -->
-    <skip />
-    <!-- no translation found for select_language (3693815588777926848) -->
-    <skip />
-    <!-- no translation found for hint_add_to_dictionary (573678656946085380) -->
-    <skip />
-    <!-- no translation found for has_dictionary (6071847973466625007) -->
-    <skip />
-    <!-- no translation found for keyboard_layout (8451164783510487501) -->
-    <skip />
-    <!-- no translation found for subtype_en_GB (88170601942311355) -->
-    <skip />
-    <!-- no translation found for subtype_en_US (6160452336634534239) -->
-    <skip />
-    <!-- no translation found for subtype_es_US (5583145191430180200) -->
-    <skip />
-    <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
-    <skip />
-    <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
-    <skip />
-    <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
-    <skip />
-    <!-- no translation found for subtype_generic_traditional (8584594350973800586) -->
-    <skip />
-    <!-- no translation found for subtype_generic_cyrillic (7486451947618138947) -->
-    <skip />
-    <!-- no translation found for subtype_generic_latin (9128716486310604145) -->
-    <skip />
-    <!-- no translation found for subtype_no_language (7137390094240139495) -->
-    <skip />
-    <!-- no translation found for subtype_no_language_qwerty (244337630616742604) -->
-    <skip />
-    <!-- no translation found for subtype_no_language_qwertz (443066912507547976) -->
-    <skip />
-    <!-- no translation found for subtype_no_language_azerty (8144348527575640087) -->
-    <skip />
-    <!-- no translation found for subtype_no_language_dvorak (1564494667584718094) -->
-    <skip />
-    <!-- no translation found for subtype_no_language_colemak (5837418400010302623) -->
-    <skip />
-    <!-- no translation found for subtype_no_language_pcqwerty (5354918232046200018) -->
-    <skip />
-    <!-- no translation found for subtype_emoji (7483586578074549196) -->
-    <skip />
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
-    <!-- no translation found for custom_input_styles_title (8429952441821251512) -->
-    <skip />
-    <!-- no translation found for add_style (6163126614514489951) -->
-    <skip />
-    <!-- no translation found for add (8299699805688017798) -->
-    <skip />
-    <!-- no translation found for remove (4486081658752944606) -->
-    <skip />
-    <!-- no translation found for save (7646738597196767214) -->
-    <skip />
-    <!-- no translation found for subtype_locale (8576443440738143764) -->
-    <skip />
-    <!-- no translation found for keyboard_layout_set (4309233698194565609) -->
-    <skip />
-    <!-- no translation found for custom_input_style_note_message (8826731320846363423) -->
-    <skip />
-    <!-- no translation found for enable (5031294444630523247) -->
-    <skip />
-    <!-- no translation found for not_now (6172462888202790482) -->
-    <skip />
-    <!-- no translation found for custom_input_style_already_exists (8008728952215449707) -->
-    <skip />
-    <!-- no translation found for prefs_key_longpress_timeout_settings (6102240298932897873) -->
-    <skip />
-    <!-- no translation found for prefs_keypress_vibration_duration_settings (7918341459947439226) -->
-    <skip />
-    <!-- no translation found for prefs_keypress_sound_volume_settings (6027007337036891623) -->
-    <skip />
-    <!-- no translation found for prefs_read_external_dictionary (2588931418575013067) -->
-    <skip />
-    <!-- no translation found for read_external_dictionary_no_files_message (4947420942224623792) -->
-    <skip />
-    <!-- no translation found for read_external_dictionary_multiple_files_title (7637749044265808628) -->
-    <skip />
-    <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
-    <skip />
-    <!-- no translation found for error (8940763624668513648) -->
-    <skip />
-    <!-- no translation found for button_default (3988017840431881491) -->
-    <skip />
-    <!-- no translation found for setup_welcome_title (6112821709832031715) -->
-    <skip />
-    <!-- no translation found for setup_welcome_additional_description (8150252008545768953) -->
-    <skip />
-    <!-- no translation found for setup_start_action (8936036460897347708) -->
-    <skip />
-    <!-- no translation found for setup_next_action (371821437915144603) -->
-    <skip />
-    <!-- no translation found for setup_steps_title (6400373034871816182) -->
-    <skip />
-    <!-- no translation found for setup_step1_title (3147967630253462315) -->
-    <skip />
-    <!-- no translation found for setup_step1_instruction (2578631936624637241) -->
-    <skip />
-    <!-- no translation found for setup_step1_finished_instruction (10761482004957994) -->
-    <skip />
-    <!-- no translation found for setup_step1_action (4366513534999901728) -->
-    <skip />
-    <!-- no translation found for setup_step2_title (6860725447906690594) -->
-    <skip />
-    <!-- no translation found for setup_step2_instruction (9141481964870023336) -->
-    <skip />
-    <!-- no translation found for setup_step2_action (1660330307159824337) -->
-    <skip />
-    <!-- no translation found for setup_step3_title (3154757183631490281) -->
-    <skip />
-    <!-- no translation found for setup_step3_instruction (8025981829605426000) -->
-    <skip />
-    <!-- no translation found for setup_step3_action (600879797256942259) -->
-    <skip />
-    <!-- no translation found for setup_finish_action (276559243409465389) -->
-    <skip />
-    <!-- no translation found for show_setup_wizard_icon (5008028590593710830) -->
-    <skip />
-    <!-- no translation found for show_setup_wizard_icon_summary (4119998322536880213) -->
-    <skip />
-    <!-- no translation found for app_name (6320102637491234792) -->
-    <skip />
-    <!-- no translation found for dictionary_provider_name (3027315045397363079) -->
-    <skip />
-    <!-- no translation found for dictionary_service_name (6237472350693511448) -->
-    <skip />
-    <!-- no translation found for download_description (6014835283119198591) -->
-    <skip />
-    <!-- no translation found for dictionary_settings_title (8091417676045693313) -->
-    <skip />
-    <!-- no translation found for dictionary_install_over_metered_network_prompt (3587517870006332980) -->
-    <skip />
-    <!-- no translation found for dictionary_settings_summary (5305694987799824349) -->
-    <skip />
-    <!-- no translation found for user_dictionaries (3582332055892252845) -->
-    <skip />
-    <!-- no translation found for default_user_dict_pref_name (1625055720489280530) -->
-    <skip />
-    <!-- no translation found for dictionary_available (4728975345815214218) -->
-    <skip />
-    <!-- no translation found for dictionary_downloading (2982650524622620983) -->
-    <skip />
-    <!-- no translation found for dictionary_installed (8081558343559342962) -->
-    <skip />
-    <!-- no translation found for dictionary_disabled (8950383219564621762) -->
-    <skip />
-    <!-- no translation found for cannot_connect_to_dict_service (9216933695765732398) -->
-    <skip />
-    <!-- no translation found for no_dictionaries_available (8039920716566132611) -->
-    <skip />
-    <!-- no translation found for check_for_updates_now (8087688440916388581) -->
-    <skip />
-    <!-- no translation found for last_update (730467549913588780) -->
-    <skip />
-    <!-- no translation found for message_updating (4457761393932375219) -->
-    <skip />
-    <!-- no translation found for message_loading (5638680861387748936) -->
-    <skip />
-    <!-- no translation found for main_dict_description (3072821352793492143) -->
-    <skip />
-    <!-- no translation found for cancel (6830980399865683324) -->
-    <skip />
-    <!-- no translation found for go_to_settings (3876892339342569259) -->
-    <skip />
-    <!-- no translation found for install_dict (180852772562189365) -->
-    <skip />
-    <!-- no translation found for cancel_download_dict (7843340278507019303) -->
-    <skip />
-    <!-- no translation found for delete_dict (756853268088330054) -->
-    <skip />
-    <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
-    <skip />
-    <!-- no translation found for download_over_metered (1643065851159409546) -->
-    <skip />
-    <!-- no translation found for do_not_download_over_metered (2176209579313941583) -->
-    <skip />
-    <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
-    <skip />
-    <!-- no translation found for dict_available_notification_description (1075194169443163487) -->
-    <skip />
-    <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
-    <skip />
-    <!-- no translation found for version_text (2715354215568469385) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_menu_title (1254195365689387076) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_dialog_title (4096700390211748168) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_screen_title (5818914331629278758) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_dialog_more_options (5671682004887093112) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_dialog_less_options (2716586567241724126) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_dialog_confirm (4703129507388332950) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_word_option_name (6665558053408962865) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_shortcut_option_name (3094731590655523777) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_locale_option_name (4738643440987277705) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_word_hint (4902434148985906707) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_shortcut_hint (2265453012555060178) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_edit_dialog_title (3765774633869590352) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_context_menu_edit_title (6812255903472456302) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_context_menu_delete_title (8142932447689461181) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_empty_text (558499587532668203) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_all_languages (8276126583216298886) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_more_languages (7131268499685180461) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_delete (110413335187193859) -->
-    <skip />
-    <!-- no translation found for user_dict_fast_scroll_alphabet (5431919401558285473) -->
-    <skip />
+    <string name="use_double_space_period" msgid="8781529969425082860">"Точка со два простора"</string>
+    <string name="use_double_space_period_summary" msgid="6532892187247952799">"Со двоен допир на празно место се вметнува точка и празно место"</string>
+    <string name="auto_cap" msgid="1719746674854628252">"Автоматска голема буква"</string>
+    <string name="auto_cap_summary" msgid="7934452761022946874">"Прави првиот збор од секоја реченица да почнува со голема буква"</string>
+    <string name="edit_personal_dictionary" msgid="3996910038952940420">"Личен речник"</string>
+    <string name="configure_dictionaries_title" msgid="4238652338556902049">"Додатоци за речници"</string>
+    <string name="main_dictionary" msgid="4798763781818361168">"Главен речник"</string>
+    <string name="prefs_show_suggestions" msgid="8026799663445531637">"Покажи предлози за корекција"</string>
+    <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Прикажи предложени зборови додека пишувам"</string>
+    <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Блокирај навредливи зборови"</string>
+    <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Не предлагај потенцијално навредливи зборови"</string>
+    <string name="auto_correction" msgid="7630720885194996950">"Автоматска корекција"</string>
+    <string name="auto_correction_summary" msgid="5625751551134658006">"Копчето за празно место автоматски ги коригира погрешните зборови"</string>
+    <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"Исклучено"</string>
+    <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"Скромно"</string>
+    <string name="auto_correction_threshold_mode_aggressive" msgid="7319007299148899623">"Агресивна"</string>
+    <string name="auto_correction_threshold_mode_very_aggressive" msgid="1853309024129480416">"Многу агресивно"</string>
+    <string name="bigram_prediction" msgid="1084449187723948550">"Предлози за следен збор"</string>
+    <string name="bigram_prediction_summary" msgid="3896362682751109677">"Употребете го претходниот збор за предлози"</string>
+    <string name="gesture_input" msgid="826951152254563827">"Овозможи пишување со движење"</string>
+    <string name="gesture_input_summary" msgid="9180350639305731231">"Внесете збор со лизгање низ буквите"</string>
+    <string name="gesture_preview_trail" msgid="3802333369335722221">"Покажи патека на движења"</string>
+    <string name="gesture_floating_preview_text" msgid="4443240334739381053">"Динамичен лебдечки преглед"</string>
+    <string name="gesture_floating_preview_text_summary" msgid="4472696213996203533">"Видете го предложениот збор додека гестикулирате"</string>
+    <string name="gesture_space_aware" msgid="2078291600664682496">"Движење за фрази"</string>
+    <string name="gesture_space_aware_summary" msgid="4371385818348528538">"Внеси празни места при движења со лизгање до тоа копче"</string>
+    <string name="voice_input" msgid="3583258583521397548">"Копче за влез на глас"</string>
+    <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Не се овозможени методи за гласовно внесување. Проверете ги поставките за Јазик и внесување."</string>
+    <string name="configure_input_method" msgid="373356270290742459">"Конфигурирај методи на влез"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Јазици"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Помош и повратни информации"</string>
+    <string name="select_language" msgid="5709487854987078367">"Јазици"</string>
+    <string name="hint_add_to_dictionary" msgid="573678656946085380">"Допрете повторно за да се зачува"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Допри тука да се зачува"</string>
+    <string name="has_dictionary" msgid="6071847973466625007">"Речникот е достапен"</string>
+    <string name="keyboard_layout" msgid="8451164783510487501">"Тема на тастатурата"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Префрли сметки"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Не се избрани сметки"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Во моментов ја користите <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"Во ред"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Откажи"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Одјави се"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Изберете ја сметката што ќе ја користите"</string>
+    <string name="subtype_en_GB" msgid="88170601942311355">"англиски (ОК)"</string>
+    <string name="subtype_en_US" msgid="6160452336634534239">"англиски (САД)"</string>
+    <string name="subtype_es_US" msgid="5583145191430180200">"шпански (САД)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Хинглиш"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Српски (латиница)"</string>
+    <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"англиски (ОК) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"англиски (САД) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_es_US" msgid="510930471167541338">"шпански (САД) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Хинглиш (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Српски (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (традиционален)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Компактна)"</string>
+    <string name="subtype_no_language" msgid="7137390094240139495">"Нема јазик (азбука)"</string>
+    <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Азбука (QWERTY)"</string>
+    <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Азбука (QWERTZ)"</string>
+    <string name="subtype_no_language_azerty" msgid="8144348527575640087">"Азбука (AZERTY)"</string>
+    <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Азбука (Dvorak)"</string>
+    <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Азбука (Colemak)"</string>
+    <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Азбука (PC)"</string>
+    <string name="subtype_emoji" msgid="7483586578074549196">"Емотикони"</string>
+    <string name="keyboard_theme" msgid="4909551808526178852">"Тема на тастатурата"</string>
+    <string name="custom_input_styles_title" msgid="8429952441821251512">"Приспособени стилови на влез"</string>
+    <string name="add_style" msgid="6163126614514489951">"Додај стил"</string>
+    <string name="add" msgid="8299699805688017798">"Додај"</string>
+    <string name="remove" msgid="4486081658752944606">"Отстрани"</string>
+    <string name="save" msgid="7646738597196767214">"Зачувај"</string>
+    <string name="subtype_locale" msgid="8576443440738143764">"Јазик"</string>
+    <string name="keyboard_layout_set" msgid="4309233698194565609">"Распоред"</string>
+    <string name="custom_input_style_note_message" msgid="8826731320846363423">"Треба да се овозоможи приспособениот стил на влез пред да почнете да го користите. Дали сакате сега да го овозможите?"</string>
+    <string name="enable" msgid="5031294444630523247">"Овозможи"</string>
+    <string name="not_now" msgid="6172462888202790482">"Не сега"</string>
+    <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Истиот стил на влез веќе постои: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
+    <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Траење на вибрација од копче"</string>
+    <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Копче за јачина на звук"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Доцнење на долго притискање копче"</string>
+    <string name="button_default" msgid="3988017840431881491">"Стандардно"</string>
+    <string name="setup_welcome_title" msgid="6112821709832031715">"Добре дојдовте во <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
+    <string name="setup_welcome_additional_description" msgid="8150252008545768953">"со Пишување со движење"</string>
+    <string name="setup_start_action" msgid="8936036460897347708">"Започнете"</string>
+    <string name="setup_next_action" msgid="371821437915144603">"Следен чекор"</string>
+    <string name="setup_steps_title" msgid="6400373034871816182">"Се поставува <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
+    <string name="setup_step1_title" msgid="3147967630253462315">"Овозможи <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
+    <string name="setup_step1_instruction" msgid="2578631936624637241">"Означете „<xliff:g id="APPLICATION_NAME">%s</xliff:g>“ во поставките за јазик и влез. Со тоа ќе авторизирате да се активира на уредот."</string>
+    <string name="setup_step1_finished_instruction" msgid="10761482004957994">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> веќе е овозможена во поставките за јазик и влез, така што завршивте со овој чекор. Одете на следниот!"</string>
+    <string name="setup_step1_action" msgid="4366513534999901728">"Овозможи во Поставки"</string>
+    <string name="setup_step2_title" msgid="6860725447906690594">"Префрлете се на <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
+    <string name="setup_step2_instruction" msgid="9141481964870023336">"Следно, изберете „<xliff:g id="APPLICATION_NAME">%s</xliff:g>“ како активен метод за внесување текст."</string>
+    <string name="setup_step2_action" msgid="1660330307159824337">"Префрли се помеѓу методи на влез"</string>
+    <string name="setup_step3_title" msgid="3154757183631490281">"Честитки, завршивте!"</string>
+    <string name="setup_step3_instruction" msgid="8025981829605426000">"Сега може да ги впишете сите омилени апликации со <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
+    <string name="setup_step3_action" msgid="600879797256942259">"Конфигурирај дополнителни јазици"</string>
+    <string name="setup_finish_action" msgid="276559243409465389">"Завршено"</string>
+    <string name="app_name" msgid="6320102637491234792">"Давател на услуга речник"</string>
+    <string name="dictionary_provider_name" msgid="3027315045397363079">"Давател на услуга речник"</string>
+    <string name="dictionary_service_name" msgid="6237472350693511448">"Услуга Речник"</string>
+    <string name="download_description" msgid="6014835283119198591">"Информации за ажурирање речник"</string>
+    <string name="dictionary_settings_title" msgid="8091417676045693313">"Додатоци за речници"</string>
+    <string name="dictionary_install_over_metered_network_prompt" msgid="3587517870006332980">"Речникот е достапен"</string>
+    <string name="dictionary_settings_summary" msgid="5305694987799824349">"Поставки за речници"</string>
+    <string name="user_dictionaries" msgid="3582332055892252845">"Кориснички речници"</string>
+    <string name="default_user_dict_pref_name" msgid="1625055720489280530">"Речник на корисникот"</string>
+    <string name="dictionary_available" msgid="4728975345815214218">"Речникот е достапен"</string>
+    <string name="dictionary_downloading" msgid="2982650524622620983">"Моментално се презема"</string>
+    <string name="dictionary_installed" msgid="8081558343559342962">"Инсталиран"</string>
+    <string name="dictionary_disabled" msgid="8950383219564621762">"Инсталиран, оневозможен"</string>
+    <string name="cannot_connect_to_dict_service" msgid="9216933695765732398">"Проблем при поврзувањето со услугата речник"</string>
+    <string name="no_dictionaries_available" msgid="8039920716566132611">"Нема достапен речник"</string>
+    <string name="check_for_updates_now" msgid="8087688440916388581">"Освежи"</string>
+    <string name="last_update" msgid="730467549913588780">"Последен пат ажурирано"</string>
+    <string name="message_updating" msgid="4457761393932375219">"Се проверува за ажурирања"</string>
+    <string name="message_loading" msgid="5638680861387748936">"Се вчитува..."</string>
+    <string name="main_dict_description" msgid="3072821352793492143">"Главен речник"</string>
+    <string name="cancel" msgid="6830980399865683324">"Откажи"</string>
+    <string name="go_to_settings" msgid="3876892339342569259">"Поставки"</string>
+    <string name="install_dict" msgid="180852772562189365">"Инсталирај"</string>
+    <string name="cancel_download_dict" msgid="7843340278507019303">"Откажи"</string>
+    <string name="delete_dict" msgid="756853268088330054">"Избриши"</string>
+    <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"За избраниот јазик на мобилниот уред има достапен речник.&lt;br/&gt; Препорачуваме да го &lt;b&gt;преземете&lt;/b&gt; речникот за <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> јазик за да имате подобро искуство при пишувањето.&lt;br/&gt; &lt;br/&gt; Преземањето ќе трае една до две минути преку 3G. Можно е да имате трошоци доколку немате &lt;b&gt;план со неограничени податоци&lt;/b&gt;.&lt;br/&gt; Доколку не сте сигурни каков план на податоци имате, препорачуваме да најдете поврзување преку Wi-Fi за автоматски да започнете со преземање.&lt;br/&gt; &lt;br/&gt; Совет: може да преземате и отстранувате речници со одење на &lt;b&gt;Јазик и внесување&lt;/b&gt; во менито &lt;b&gt;Поставки&lt;/b&gt; во вашиот мобилен уред."</string>
+    <string name="download_over_metered" msgid="1643065851159409546">"Преземи сега (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g> МБ)"</string>
+    <string name="do_not_download_over_metered" msgid="2176209579313941583">"Преземено преку Wi-Fi"</string>
+    <string name="dict_available_notification_title" msgid="4583842811218581658">"Достапен е речник за <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>"</string>
+    <string name="dict_available_notification_description" msgid="1075194169443163487">"Притиснете за да прегледате и преземете"</string>
+    <string name="toast_downloading_suggestions" msgid="6128155879830851739">"Се презема: предлозите за <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> набрзо ќе бидат подготвени."</string>
+    <string name="version_text" msgid="2715354215568469385">"Верзија <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
+    <string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"Додај"</string>
+    <string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"Додај во речник"</string>
+    <string name="user_dict_settings_add_screen_title" msgid="5818914331629278758">"Израз"</string>
+    <string name="user_dict_settings_add_dialog_more_options" msgid="5671682004887093112">"Повеќе опции"</string>
+    <string name="user_dict_settings_add_dialog_less_options" msgid="2716586567241724126">"Помалку опции"</string>
+    <string name="user_dict_settings_add_dialog_confirm" msgid="4703129507388332950">"Во ред"</string>
+    <string name="user_dict_settings_add_word_option_name" msgid="6665558053408962865">"Збор:"</string>
+    <string name="user_dict_settings_add_shortcut_option_name" msgid="3094731590655523777">"Кратенка:"</string>
+    <string name="user_dict_settings_add_locale_option_name" msgid="4738643440987277705">"Јазик:"</string>
+    <string name="user_dict_settings_add_word_hint" msgid="4902434148985906707">"Внесете збор"</string>
+    <string name="user_dict_settings_add_shortcut_hint" msgid="2265453012555060178">"Изборна кратенка"</string>
+    <string name="user_dict_settings_edit_dialog_title" msgid="3765774633869590352">"Уреди збор"</string>
+    <string name="user_dict_settings_context_menu_edit_title" msgid="6812255903472456302">"Уреди"</string>
+    <string name="user_dict_settings_context_menu_delete_title" msgid="8142932447689461181">"Избриши"</string>
+    <string name="user_dict_settings_empty_text" msgid="558499587532668203">"Немате зборови во корисничкиот речник. Додајте збор со допирање на копчето Додај (+)."</string>
+    <string name="user_dict_settings_all_languages" msgid="8276126583216298886">"За сите јазици"</string>
+    <string name="user_dict_settings_more_languages" msgid="7131268499685180461">"Повеќе јазици..."</string>
+    <string name="user_dict_settings_delete" msgid="110413335187193859">"Избриши"</string>
+    <string name="user_dict_fast_scroll_alphabet" msgid="5431919401558285473">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
 </resources>
diff --git a/java/res/values-ml-rIN/strings-emoji-descriptions.xml b/java/res/values-ml-rIN/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..2fad192
--- /dev/null
+++ b/java/res/values-ml-rIN/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"പകർപ്പവകാശത്തിന്റെ ചിഹ്നം"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"രജിസ്‌ട്രേഡ് ചിഹ്നം"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"ഇരട്ട ആശ്ചര്യ ചിഹ്നം"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"ആശ്ചര്യചിഹ്നവും ചോദ്യ അടയാളവും"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"ട്രേഡ് മാർക്ക് അടയാളം"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"വിവരങ്ങൾക്കുള്ള ഉറവിടം"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"ഇടത് വശത്തേക്കും വലത് വശത്തേക്കുമുള്ള അമ്പടയാളം"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"മുകളിലേക്കും താഴേക്കുമുള്ള അമ്പടയാളം"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"വടക്ക്പടിഞ്ഞാറ് അമ്പടയാളം"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"വടക്കുകിഴക്ക് അമ്പടയാളം"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"തെക്കുക്കിഴക്ക് അമ്പടയാളം"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"തെക്കുപടിഞ്ഞാറ് അമ്പടയാളം"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"കൊളുത്തോടുകൂടിയ ഇടതുവശത്തേക്ക് പോകുന്ന അമ്പടയാളം"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"കൊളുത്തോടുകൂടിയ വലതുവശത്തേക്ക് പോകുന്ന അമ്പടയാളം"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"കാ‍ണുക"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"മണൽ ഘടികാരം"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"വലതുവശത്തേക്ക് പോയിന്റുചെയ്‌തിരിക്കുന്ന കറുത്ത ഇരട്ട ത്രികോണം"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"ഇടതുവശത്തേക്ക് പോയിന്റുചെയ്‌തിരിക്കുന്ന കറുത്ത ഇരട്ട ത്രികോണം"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"മുകളിലേക്ക് പോയിന്റുചെയ്‌തിരിക്കുന്ന കറുത്ത ഇരട്ട ത്രികോണം"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"താഴേക്ക് പോയിന്റുചെയ്‌തിരിക്കുന്ന കറുത്ത ഇരട്ട ത്രികോണം"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"അലാറം ക്ലോക്ക്"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"ഒഴുകുന്ന മണലുള്ള മണൽഘടികാരം"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"വൃത്തത്തിനുള്ളിൽ ലാറ്റിൻ വലിയക്ഷരത്തിൽ \'m\'"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"കറുത്ത ചെറിയ ചതുരം"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"വെളുത്ത ചെറിയ ചതുരം"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"വലതുവശത്തേക്ക് പോയിന്റുചെയ്‌തിരിക്കുന്ന കറുത്ത ത്രികോണം"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"ഇടതുവശത്തേക്ക് പോയിന്റുചെയ്‌തിരിക്കുന്ന കറുത്ത ത്രികോണം"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"വെളുത്ത ഇടത്തരം ചതുരം"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"കറുത്ത ഇടത്തരം ചതുരം"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"വെളുത്ത ഇടത്തരം ചെറിയ ചതുരം"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"കറുത്ത ഇടത്തരം ചെറിയ ചതുരം"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"രശ്‌മികളുള്ള കറുത്ത സൂര്യൻ"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"മേഘം"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"കറുത്ത ടെലിഫോൺ"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"ശരി അടയാളത്തോടുകൂടിയ ബാലറ്റ് ബോക്‌സ്"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"കുടയും മഴത്തുള്ളികളും"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"ചൂട് പാനീയം"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"മുകളിലേക്ക് ചൂണ്ടുന്ന മുൻ ചൂണ്ടുവിരൽ"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"വെളുത്ത പുഞ്ചിരിക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"മേടരാശി"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"ഇടവരാശി"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"മിഥുന രാശി"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"കർക്കിടകരാശി"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"ചിങ്ങരാശി"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"കാന്നിരാശി"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"തുലാം രാശി"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"വൃശ്ചികരാശി"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"ധനുരാശി"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"മകരരാശി"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"കുഭരാശി"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"മീനരാശി"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"കറുത്ത സ്‌പേഡ് സ്യൂട്ട്"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"കറുത്ത ക്ല്ബ് സ്യൂട്ട്"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"കറുത്ത ഹാർട്ട് സ്യൂട്ട്"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"കറുത്ത ഡയമണ്ട് സ്യൂട്ട്"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"നീരാവി"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"കറുത്ത യൂണിവേഴ്‌സൽ റീസൈക്കിൾ ചിഹ്നം"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"വീൽചെയർ ചിഹ്നം"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"നങ്കൂരം"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"മുന്നറിയിപ്പ് ചിഹ്നം"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"ഉയർന്ന വോൾട്ടേജ് ചിഹ്നം"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"ഇടത്തരം വെളുത്ത വൃത്തം"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"ഇടത്തരം കറുത്ത വൃത്തം"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"സോക്കർ ബോൾ"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"ബേസ്ബോൾ"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"മഞ്ഞില്ലാത്ത മഞ്ഞുമനുഷ്യൻ"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"മേഘത്തിൻ പുറകിലുള്ള സൂര്യൻ"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"ഒഫിയൂക്കസ്"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"പ്രവേശനമില്ല"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"ക്രിസ്തീയ ദേവാലയം"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"ജലധാര"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"കുഴിക്കുള്ളിൽ സ്ഥാപിച്ചിരിക്കുന്ന പതാക"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"പായ്‌‌വഞ്ചി"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"കൂടാരം"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"പെട്രോൾ പമ്പ്"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"കറുത്ത കത്രിക"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"കറുത്ത വലുപ്പമുള്ള ശരിയടയാളം"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"വിമാനം"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"എൻവലപ്പ്"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"ഉയർത്തിയ മുഷ്‌ടി"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"ഉയർത്തിയ കൈ"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"വിജയം എന്നത് കൈകൊണ്ട് കാണിക്കൽ"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"പെൻസിൽ"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"കറുത്ത മുന"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"വലുപ്പമുള്ള ശരിയടയാളം"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"കറുത്ത ഗുണനചിഹ്നം \'x\'"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"തിളങ്ങുന്നവ"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"എട്ട് മുനകളുള്ള നക്ഷത്ര ചിഹ്നം"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"എട്ട് പോയിന്റുള്ള കറുത്ത നക്ഷത്രം"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"മഞ്ഞുകട്ട"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"തിളക്കമുള്ളത്"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"ഗുണന ചിഹ്നം"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"നെഗറ്റീവ് ചതുരത്തിലുള്ള ഗുണന ചിഹ്നം"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"കടുത്ത ചോദ്യചിഹ്ന ഓർണമെന്റ്"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"വെളുത്ത ചോദ്യ ചിഹ്ന ഓർണമെന്റ്"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"വെളുത്ത ആശ്ചര്യചിഹ്ന ഓർണമെന്റ്"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"വലുപ്പമുള്ള വെളുത്ത ആശ്ചര്യചിഹ്നം"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"വലിയ കറുത്ത ഹൃദയചിഹ്നം"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"വലുപ്പമുള്ള സങ്കലന ചിഹ്നം"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"വലുപ്പമുള്ള ന്യൂന ചിഹ്നം"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"വലുപ്പമുള്ള ഹരണ ചിഹ്നം"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"വലതുവശത്തേക്കുള്ള കറുത്ത അമ്പടയാളം"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"ചുരുണ്ട കുരുക്ക്"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"ഇരട്ട ചുരുണ്ട കുരുക്ക്"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"വലതുവശത്തേക്ക് വന്ന് മുകളിലേക്ക് വളയുന്ന അമ്പടയാളം"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"വലതുവശത്തേക്ക് വന്ന് താഴേക്ക് വളയുന്ന അമ്പടയാളം"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"വലതുവശത്തേക്ക് പോകുന്ന കറുത്ത അമ്പടയാളം"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"മുകളിലേക്ക് പോകുന്ന കറുത്ത അമ്പടയാളം"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"താഴേക്ക് പോകുന്ന കറുത്ത അമ്പടയാളം"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"കറുത്ത വലിയ ചതുരം"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"വെളുത്ത വലിയ ചതുരം"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"വെളുത്ത ഇടത്തരം നക്ഷത്രം"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"വലുപ്പമുള്ള വൃത്തം"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"വേവി ഡാഷ്"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"പാർട്ട് ആൾട്ടർനേഷൻ അടയാളം"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"വൃത്താകൃതിയിലുള്ള അഭിനന്ദന ഐഡിയോഗ്രാഫ്"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"വൃത്താകൃതിയിലുള്ള രഹസ്യ ഐഡിയോഗ്രാഫ്"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"മജോംഗ് ടൈൽ റെഡ് ഡ്രാഗൺ"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"പ്ലേയിംഗ് കാർഡ് ബ്ലാക്ക് ജോക്കർ"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"രക്ത തരം A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"രക്ത തരം B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"രക്ത തരം O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"പാർക്കുചെയ്യാനുള്ള സ്ഥലം"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"രക്ത തരം AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"ചതുരാകൃതിയിലുള്ള CL"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"ചതുരാകൃതിയിലുള്ള കൂൾ"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"ചതുരാകൃതിയിലുള്ള ഫ്രീ"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"ചതുരാകൃതിയിലുള്ള ID"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"ചതുരാകൃതിയിലുള്ള ന്യൂ"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"ചതുരാകൃതിയിലുള്ള N G"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"ചതുരാകൃതിയിലുള്ള OK"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"ചതുരാകൃതിയിലുള്ള SOS"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"ചതുരാകൃതിയിലുള്ള ആശ്ചര്യ ചിഹ്നത്തോടുകൂടിയുള്ള അപ്പ്"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"ചതുരാകൃതിയിലുള്ള vs"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"ചതുരാകൃതിയിലുള്ള കാറ്റക്കാനാ ഹിയർ"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"ചതുരാകൃതിയിലുള്ള കാറ്റക്കാനാ സർവ്വീസ്"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"ചതുരാകൃതിയിലുള്ള ചാർജ്ജ് ഫ്രീ ഐഡിയോഗ്രാഫ്"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"ചതുരാകൃതിയിലുള്ള റിസർവ്‌ഡ് സീറ്റ് ഐഡിയോഗ്രാഫ്"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"ചതുരാകൃതിയിലുള്ള പ്രൊഹിബിഷൻ ഐഡിയോഗ്രാഫ്"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"ചതുരാകൃതിയിലുള്ള വേക്കൻസി ഐഡിയോഗ്രാഫ്"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"ചതുരാകൃതിയിലുള്ള കൈക്കൊള്ളൽ ഐഡിയോഗ്രാഫ്"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"ചതുരാകൃതിയിലുള്ള പൂർണ്ണ ഒക്യുപ്പെൻസി ഐഡിയോഗ്രാഫ്"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"ചതുരാകൃതിയിലുള്ള പെയ്‌ഡ് ഐഡിയോഗ്രാഫ്"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"ചതുരാകൃതിയിലുള്ള മാസം തോറും എന്ന ഐഡിയോഗ്രാഫ്"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"ചതുരാകൃതിയിലുള്ള അപ്ലിക്കേഷൻ ഐഡിയോഗ്രാഫ്"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"ചതുരാകൃതിയിലുള്ള ഡിസ്‌കൗണ്ട് ഐഡിയോഗ്രാഫ്"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"ബിസിനസ്സിലെ ചതുരാകൃതിയിലുള്ള ഐഡിയോഗ്രാഫ്"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"വൃത്താകൃതിയിലുള്ള അഡ്‌വാന്റേജ് ഐഡിയോഗ്രാഫ്"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"വൃത്താകൃതിയിലുള്ള അക്‌സപ്‌റ്റ് ഐഡിയോഗ്രാഫ്"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"കൊടുങ്കാറ്റ്"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"മങ്ങിയത്"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"അടച്ച കുട"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"നക്ഷത്രങ്ങൾ നിറഞ്ഞ രാത്രി"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"മലമുകളിലെ സൂര്യോദയം"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"സൂര്യോദയം"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"നഗരത്തിലെ സന്ധ്യാസമയം"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"കെട്ടിടങ്ങൾക്ക് മുകളിലെ സൂര്യാസ്‌തമയം"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"മഴവില്ല്"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"പാലത്തിന്റെ രാത്രിക്കാഴ്‌ച"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"ജലതരംഗം"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"അഗ്‌നിപർവ്വതം"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"ക്ഷീരപഥം"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"യൂറോപ്പ്-ആഫ്രിക്ക ഭൗമ ഗ്ലോബ്"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"അമേരിക്കാസ് ഭൗമ ഗ്ലോബ്"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"ഏഷ്യാ ആസ്‌ട്രേലിയ ഭൗമ ഗ്ലോബ്"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"ധ്രുവരേഖകൾ ഉള്ള ഗ്ലോബ്"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"അമാവാസി"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"ചന്ദ്രക്കല പൂർണ്ണത പ്രാപിക്കുന്ന അടയാളം"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"അർദ്ധ പൗർണ്ണമി"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"പൗർണ്ണമിയോടടുക്കുന്ന ചന്ദ്ര അടയാളം"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"പൂർണ്ണചന്ദ്ര അടയാളം"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"പൗർണ്ണമിയിൽ നിന്ന് അമാവാസിയിലേക്ക് മാറുന്ന അടയാളം"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"അർദ്ധ അമാവാസി"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"വിളറിയ ചന്ദ്രൻ"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"ചന്ദ്രക്കല"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"മുഖം ദൃശ്യമാകുന്ന അമാവാസി"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"മുഖം ദൃശ്യമാകുന്ന അർദ്ധ പൗർണ്ണമി"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"മുഖം ദൃശ്യമാകുന്ന അർദ്ധ അമാവാസി"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"മുഖം ദൃശ്യമാകുന്ന പൂർണ്ണ ചന്ദ്രൻ"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"മുഖം ദൃശ്യമാകുന്ന സൂര്യൻ"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"തിളങ്ങുന്ന നക്ഷത്രം"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"വാൽനക്ഷത്രം"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"ചെസ്‌റ്റ്നട്ട്"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"തളിര്"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"നിത്യഹരിത മരം"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"ഇലപൊഴിയും മരം"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"പന"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"കള്ളിമുൾച്ചെടി"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"റ്റുലിപ്"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"ചെറി ബ്ലോസം"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"റോസ്"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"ചെമ്പരത്തി"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"സൂര്യകാന്തി"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"പുഷ്‌പം"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"ചോളം"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"നെല്ല്"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"കുറ്റിച്ചെടി"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"നാലില ക്ലോവർ സസ്യം"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"മാപ്പിൾ ഇല"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"പൊഴിഞ്ഞുവീണ ഇല"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"കാറ്റിൽ പാറിക്കളിക്കുന്ന ഇല"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"കൂൺ"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"തക്കാളി"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"വഴുതന"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"മുന്തിരി"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"മത്തങ്ങ"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"തണ്ണിമത്തൻ"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"ടാംഗറിൻ"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"നാരങ്ങ"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"വാഴപ്പഴം"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"പൈനാപ്പിൾ"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"ചുവന്ന ആപ്പിൾ"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"പച്ച ആപ്പിൾ"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"പിയർ"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"പീച്ച്"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"ചെറി"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"സ്‌ട്രോബെറി"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"ഹാംബർഗർ"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"പിസ്സയുടെ കഷ്‌ണം"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"എല്ലും ഇറച്ചിയും"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"കോഴിക്കാൽ"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"റൈസ്‌ ക്രാക്കർ"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"അരിയുണ്ട"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"ചോറ്"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"ചോറും കറിയും"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"ആവിവരുന്ന പാത്രം"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"സ്‌പാഗെട്ടി"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"ബ്രെഡ്"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"ഫ്രഞ്ച് ഫ്രൈസ്"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"പൊരിച്ച മധുരക്കിഴങ്ങ്"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"ഡാൻഗോ"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"ഒഡെൻ"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"സുഷി"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"വറുത്ത ചെമ്മീൻ"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"ചുരുൾ രൂപത്തിലുള്ള ഫിഷ് കേക്ക്"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"സോഫ്റ്റ് ഐസ്‌ക്രീം"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"ഷേവ്‌ഡ് ഐസ്"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"ഐസ്‌ക്രീം"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"ഡോനട്ട്"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"കുക്കി"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"ചോക്കലേറ്റ് ബാർ"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"മിഠായി"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"ലോലിപോപ്പ്"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"കസ്‌റ്റാർഡ്"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"തേൻ കുടം"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"ഷോർട്ട്‌കേക്ക്"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"ബെന്റോ ബോക്‌‌സ്"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"ഭക്ഷണപാത്രം"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"പാചകം"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"ഫോർക്കും കത്തിയും"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"കൈപ്പിടിയില്ലാത്ത ചായക്കപ്പ്"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"സേക്ക് കുപ്പിയും കപ്പും"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"വൈൻ ഗ്ലാസ്"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"കോക്ക്ടെയ്‌ൽ ഗ്ലാസ്"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"ട്രോപ്പിക്കൽ ഡ്രിങ്ക്"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"ബിയർ മഗ്ഗ്"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"ചേർന്നിരിക്കുന്ന ബിയർ മഗ്ഗുകൾ"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"പാൽകുപ്പി"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"റിബൺ"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"സമ്മാനപ്പൊതി"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"ജന്മദിനകേക്ക്"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"ജാക്ക്-ഓ-ലാന്റേൺ"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"ക്രിസ്‌മസ് ട്രീ"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"ക്രിസ്‌മസ് അപ്പൂപ്പൻ"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"കരിമരുന്ന് പ്രയോഗം"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"കമ്പിത്തിരി"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"ബലൂൺ"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"പാർട്ടി പോപ്പർ"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"വർണ്ണ ബോൾ"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"ടാനബാറ്റ ട്രീ"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"കുറുകെവെച്ച പതാകകൾ"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"അലങ്കരിച്ച പൈൻ"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"ജാപ്പനീസ് പാവകൾ"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"കാർപ്പ് സ്‌ട്രീമെർ"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"വിൻഡ് ചിം"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"പൂർണ്ണചന്ദ്രനെ കാണൽ ചടങ്ങ്"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"സ്‌കൂൾ ബാഗ്"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"ബിരുദ തൊപ്പി"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"കറങ്ങുന്ന കുതിര"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"യന്ത്ര ഊഞ്ഞാൽ"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"റോളർ കോസ്‌റ്റർ"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"ചൂണ്ടയും മീനും"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"മൈക്രോഫോണ്‍"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"മൂവി ക്യാമറ"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"സിനിമ"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"ഹെഡ്ഫോൺ"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"ചായപ്പലക"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"ടോപ്പ് ഹാറ്റ്"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"സർക്കസ് കൂടാരം"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"ടിക്കറ്റ്"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"ക്ലാപ്പർ ബോർഡ്"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"പ്രകടന കലകൾ"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"വീഡിയോ ഗെയിം"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"ലക്ഷ്യസ്ഥാനം കൊള്ളിക്കുക"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"സ്ലോട്ട് യന്ത്രം"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"ബില്യാർഡ്‌സ്"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"ഗെയിം ഡൈ"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"ബോളിംഗ്"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"ഫ്ലവർ പ്ലേയിംഗ് കാർഡുകൾ"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"സംഗീത ലിപി"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"നിരവധി സംഗീത ലിപികൾ"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"സാക്സഫോൺ"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"ഗിത്താർ"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"സംഗീത കീബോർഡ്"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"കാഹളം"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"വയലിൻ"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"സംഗീത സ്‌കോർ"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"സാഷുള്ള റണ്ണിംഗ് ഷർട്ട്"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"ടെന്നീസ് റാക്കറ്റും ബോളും"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"സ്‌കീയും സ്‌കീ ബൂട്ടും"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"ബാസ്‌‌ക്കറ്റ് ബോളും വളയവും"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"ചതുരാടയാളമുള്ള കൊടി"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"സ്‌നോബോർഡർ"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"ഓട്ടക്കാരൻ"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"സർഫർ"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"ട്രോഫി"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"കുതിര പന്തയം"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"അമേരിക്കൻ ഫുട്ബോൾ"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"റഗ്ഗി ഫുട്ബോൾ"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"നീന്തുന്നയാൾ"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"വീടുനിർമ്മാണം"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"പൂന്തോട്ടനുള്ള വീട്"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"ഓഫീസ് കെട്ടിടം"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"ജാപ്പനീസ്‌ പോസ്‌റ്റ് ഓഫീസ്"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"യൂറോപ്പ്യൻ പോസ്‌റ്റ് ഓഫീസ്"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"ആശുപത്രി"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"ബാങ്ക്"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"ഓട്ടോമേറ്റഡ് ടെല്ലർ മെഷീൻ"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"ഹോട്ടൽ"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"ലൗ ഹോട്ടൽ"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"കൺവീനിയൻസ് സ്‌റ്റോർ"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"സ്‌കൂൾ"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"ഡിപ്പാർട്ട്‌മെന്റ് സ്‌റ്റോർ"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"ഫാക്ടറി"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"ഇസാകയാ വിളക്ക്"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"ജാപ്പനീസ് കോട്ട"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"യൂറോപ്പ്യൻ കോട്ട"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"ചുണ്ടെലി"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"എലി"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"കാള"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"പോത്ത്"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"പശു"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"പല്ലി"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"മുയൽ"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"പൂച്ച"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"ഡ്രാഗൺ"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"മുതല"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"തിമിംഗലം"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"ഒച്ച്"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"പാമ്പ്"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"കുതിര"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"മുട്ടനാട്"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"കോലാട്"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"ചെമ്മരിയാട്"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"കുരങ്ങൻ"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"പൂവൻകോഴി"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"പിടക്കോഴി"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"നായ"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"പന്നി"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"കാട്ടുപന്നി"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"ആന"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"നീരാളി"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"പിരിയൻ കക്ക"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"ചെറുപ്രാണി"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"ഉറുമ്പ്"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"തേനീച്ച"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"ചെറു വണ്ട്"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"മത്സ്യം"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"ട്രോപ്പിക്കൽ മത്സ്യം"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"ബ്ലോഫിഷ്"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"കടലാമ"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"മുട്ടവിരിഞ്ഞ് കോഴിക്കുഞ്ഞ് പുറത്തുവരുന്ന ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"കോഴിക്കുഞ്ഞ്"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"കോഴിക്കുഞ്ഞിന്റെ മുഖം"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"കിളി"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"പെൻഗ്വിൻ"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"കോല"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"പൂഡിൽ"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"ഡ്രോമെഡറി ഒട്ടകം"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"ബാക്‌ട്രിയൻ ഒട്ടകം"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"ഡോൾഫിൻ"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"എലിയുടെ മുഖം"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"പശുവിന്റെ മുഖം"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"പുലിയുടെ മുഖം"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"മുയലിന്റെ മുഖം"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"പൂച്ചയുടെ മുഖം"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"ഡ്രാഗണിന്റെ മുഖം"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"സ്‌പൗട്ടിംഗ് തിമിംഗലം"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"കുതിരയുടെ മുഖം"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"കുരങ്ങന്റെ മുഖം"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"പട്ടിയുടെ മുഖം"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"പന്നിയുടെ മുഖം"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"തവളയുടെ മുഖം"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"എലിയുടെ മുഖം"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"ചെന്നായയുടെ മുഖം"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"കരടിയുടെ മുഖം"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"പാൻഡയുടെ മുഖം"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"പന്നിയുടെ മൂക്ക്"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"മൃഗങ്ങളുടെ കാൽപ്പാടുകൾ"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"കണ്ണുകൾ"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"ചെവി"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"മൂക്ക്"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"വായ"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"നാക്ക്"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"മുകളിലേക്ക് ചൂണ്ടുന്ന വെളുത്ത കൈയ്യുടെ പിൻ ചൂണ്ടുവിരൽ"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"താഴോട്ട് ചൂണ്ടുന്ന കൈയ്യുടെ പിൻ ചൂണ്ടുവിരൽ"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"ഇടതുവശത്തേക്ക് ചൂണ്ടുന്ന വെളുത്ത കൈയ്യുടെ പിൻ ചൂണ്ടുവിരൽ"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"വലതുവശത്തേക്ക് ചൂണ്ടുന്ന വെളുത്ത കൈയ്യുടെ പിൻ ചൂണ്ടുവിരൽ"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"മുഷ്‌ടി അടയാളം"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"കൈ കൊണ്ട് അഭിസംബോധന ചെയ്യുന്ന അടയാളം"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"കൊള്ളാം എന്ന കൈയടയാളം"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"തംബ്‌സ് അപ്പ് അടയാളം"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"തംബ്‌സ് ഡൗൺ അടയാളം"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"കൈക്കൊട്ടുന്ന ചിത്രം"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"തുറന്ന കൈയ്യുടെ അടയാളം"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"കിരീടം"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"സ്‌ത്രീകളുടെ തൊപ്പി"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"കണ്ണടകൾ"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"ടൈ"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"ടീ ഷർട്ട്"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"ജീൻസ്"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"വസ്ത്രം"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"കിമോണോ"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"ബിക്കിനി"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"സ്‌ത്രീകളുടെ വ‌സ്‌ത്രങ്ങൾ"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"പേഴ്‌സ്"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"ഹാൻഡ്ബാഗ്"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"പോക്കറ്റ്"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"പുരുഷന്മാരുടെ ഷൂ"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"അത്‌ലറ്റിക് ഷൂ"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"ഉയർന്ന ഹീലുള്ള ഷൂ"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"സ്‌ത്രീകളുടെ ചെരുപ്പ്"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"സ്‌ത്രീകളുടെ ബൂട്ടുകൾ"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"കാൽപ്പാടുകൾ"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"നെഞ്ചളവ് വരെയുള്ള നിഴൽ രൂപം"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"നെഞ്ചളവ് വരെയുള്ള നിഴൽ രൂപങ്ങൾ"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"ആൺകുട്ടി"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"പെൺകുട്ടി"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"പുരുഷൻ"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"സ്‌ത്രീ"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"കുടുംബം"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"കൈകോർത്തുപിടിച്ചിരിക്കുന്ന പുരുഷനും സ്‌ത്രീയും"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"കൈകോർത്തുപിടിച്ചിരിക്കുന്ന രണ്ടുപുരുഷന്മാർ"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"കൈകോർത്തുപിടിച്ചിരിക്കുന്ന രണ്ടുസ്‌ത്രീകൾ"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"പോലീസ് ഉദ്യോഗസ്ഥൻ"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"മുയൽചെവികളുള്ള സ്‌ത്രീകൾ"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"ശിരോവസ്‌ത്രം ഇട്ട മണവാട്ടി"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"സ്വർണ്ണത്തലമുടിയുള്ള വ്യക്‌തി"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"ഗുവാ പൈ മാവോ ധരിച്ച പുരുഷൻ"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"തലപ്പാവ് ധരിച്ച പുരുഷൻ"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"വൃദ്ധൻ"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"വൃദ്ധ"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"കുഞ്ഞ്"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"കെട്ടിടനിർമ്മാണ തൊഴിലാളി"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"രാജകുമാരി"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"ജാപ്പനീസ് രാക്ഷസൻ"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"ജാപ്പനീസ് ഭൂതം"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"ഭൂതം"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"കുഞ്ഞുമാലാഖ"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"അന്യഗ്രഹജീവി"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"ആന്യഗ്രഹ രാക്ഷസൻ"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"കുട്ടിപിശാച്"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"തലയോട്ടി"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"വിവരങ്ങൾ നൽകുന്ന വ്യക്തി"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"കാവൽക്കാരൻ"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"നൃത്തംചെയ്യുന്നയാൾ"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"ലിപ്‌സ്റ്റിക്ക്"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"നെയിൽ പോളിഷ്"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"മുഖം മസാജുചെയ്യൽ"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"ഹെയർകട്ട്"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"ബാർബർ പോൾ"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"സിറിഞ്ച്"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"ഗുളിക"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"ചുംബന ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"പ്രേമലേഖനം"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"റിംഗുചെയ്യുക"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"രത്നക്കല്ല്"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"ചുംബനം"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"പൂച്ചെണ്ട്"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"ഹൃദയ ചിഹ്നമുള്ള ദമ്പതികൾ"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"വിവാഹം"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"തുടിക്കുന്ന ഹൃദയം"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"മുറിഞ്ഞ ഹൃദയം"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"രണ്ട് ഹൃദയങ്ങൾ"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"തിളങ്ങുന്ന ഹൃദയം"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"വളരുന്ന ഹൃദയം"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"അമ്പടയാളമുള്ള ഹൃദയം"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"നീല നിറമുള്ള ഹൃദയം"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"പച്ച നിറമുള്ള ഹൃദയം"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"മഞ്ഞ നിറമുള്ള ഹൃദയം"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"പർപ്പിൾ നിറമുള്ള ഹൃദയം"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"റിബൺ ഉള്ള ഹൃദയം"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"കറങ്ങുന്ന ഹൃദയങ്ങൾ"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"ഹൃദയ രൂപത്തിൽ അലങ്കരിച്ചത്"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"അകത്ത് ഡോട്ടുള്ള ചതുർഭുജം"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"വൈദ്യുത ബൾബ്"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"ആംഗർ ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"ബോംബ്"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"ഉറങ്ങുന്നതിന്റെ ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"കൂട്ടിയിടിയുടെ ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"തെറിക്കുന്ന വിയർപ്പുതുള്ളികളുടെ ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"വെള്ളതുള്ളി"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"കുതിച്ചുപായുന്നതിന്റെ ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"പൈൽ ഓഫ് പൂ"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"കൈമടക്കി മാംസപേശി കാണിക്കൽ"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"തലകറക്കത്തിന്റെ ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"സ്‌പീച്ച് ബലൂൺ"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"ചിന്തിക്കുന്നതിനെ സൂചിപ്പിക്കുന്ന ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"വെളുത്തനിറമുള്ള പൂവ്"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"നൂറുപോയിന്റ് കാണിക്കുന്ന ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"പണമടങ്ങിയ സഞ്ചി"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"കറൻസി വിനിമയം"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"കട്ടിയുള്ള ഡോളർ ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"ക്രെഡിറ്റ് കാർഡ്"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"യെൻ ചിഹ്നമുള്ള ബാങ്ക്നോട്ട്"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"ഡോളർ ചിഹ്നമുള്ള ബാങ്ക്നോട്ട്"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"യൂറോ ചിഹ്നമുള്ള ബാങ്ക്നോട്ട്"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"പൗണ്ട് ചിഹ്നമുള്ള ബാങ്ക്നോട്ട്"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"ചിറകുള്ള പണം"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"മുകളിലേക്ക് പോകുന്ന ചാർട്ടും യെൻ ചിഹ്നവും"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"സീറ്റ്"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"വ്യക്തിഗത കമ്പ്യൂട്ടർ"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"ബ്രീഫ്കെയ്‌സ്"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"മിനിഡിസ്‌ക്"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"ഫ്ലോപ്പി ഡിസ്‌ക്"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"ഒപ്‌റ്റിക്കൽ ഡിസ്‌ക്"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"ഡിവിഡി"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"ഫയൽ ഫോൾഡർ"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"തുറന്ന ഫയൽ ഫോൾഡർ"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"ചുരുളുള്ള പേജ്"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"മുകൾഭാഗം ചെറുതായി മടക്കിയ പേജ്"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"കലണ്ടർ"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"മുറിച്ചെടുക്കാവുന്ന കലണ്ടർ"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"കാർഡ് സൂചിക"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"ട്രെൻഡ് മുകളിലേക്കുള്ള ചാർട്ട്"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"ട്രെൻഡ് താഴേയ്‌ക്കുള്ള ചാർട്ട്"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"ബാർ ചാർട്ട്"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"ക്ലിപ്പ്ബോർഡ്"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"പുഷ്‌പിൻ"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"വൃത്താകൃതിയുള്ള പുഷ്‌പിൻ"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"പേപ്പർ ക്ലിപ്പ്"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"വളവില്ലാത്ത റൂളർ"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"ത്രികോണാകൃതിയുള്ള റൂളർ"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"ബുക്ക്‌മാർക്ക് ടാബുകൾ"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"ലെഡ്‌ജർ"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"നോട്ട്ബുക്ക്"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"അലങ്കരിച്ച കവറുള്ള നോട്ട്ബുക്ക്"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"അടച്ച ബുക്ക്"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"തുറന്ന ബുക്ക്"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"പച്ച നിറമുള്ള ബുക്ക്"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"നീല നിറമുള്ള ബുക്ക്"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"ഓറഞ്ച് നിറമുള്ള ബുക്ക്"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"ബുക്കുകൾ"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"നെയിം ബാഡ്ജ്"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"സ്‌ക്രോൾ"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"മെമോ"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"ടെലിഫോൺ റിസീവർ"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"പേജര്‍"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"ഫാക്‌സ് യന്ത്രം"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"സാറ്റലൈറ്റ് ആന്റിന"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"ഉച്ചഭാഷിണി"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"മെഗാഫോണിലൂടെ ശബ്‌ദമുണ്ടാകുമ്പോഴുള്ള ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"ഔട്ട്ബോക്‌സ് ട്രേ"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"ഇൻബോക്‌സ് ട്രേ"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"പാക്കേജ്"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"ഇമെയിൽ അടയാളം"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"ഇൻകമിംഗ് എൻവലപ്പ്"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"മുകളിൽ താഴേക്കുള്ള അമ്പടയാളം കാണിക്കുന്ന എൻവലപ്പ്"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"കൊടി താഴ്‌ത്തിയ അടച്ച മെയിൽബോക്‌സ്"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"കൊടി മുകളിലുള്ള അടച്ച മെയിൽബോക്‌സ്"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"കൊടി മുകളിലുള്ള തുറന്ന മെയിൽ ബോക്‌സ്"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"കൊടി താഴെയുള്ള തുറന്ന മെയിൽബോക്‌സ്"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"പോസ്‌റ്റ് ബോക്‌സ്"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"പോസ്‌റ്റൽ ഹോൺ"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"വർത്തമാനപ്പത്രം"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"മൊബൈൽ ഫോൺ"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"ഇടതുവശത്തേക്ക് വലത്തേക്കുള്ള അമ്പടയാളമുള്ള മൊബൈൽ ഫോൺ"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"വൈബ്രേഷൻ മോഡ്"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"മൊബൈൽ ഫോൺ ഓഫാണ്"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"മൊബൈൽ ഫോണുകളൊന്നുമില്ല"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"ബാറുകളോടുകൂടിയ ആന്റിന"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"ക്യാമറ"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"വീഡിയോ ക്യാമറ"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"ടെലിവിഷൻ"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"റേഡിയോ"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"വീഡിയോകാസറ്റ്"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"വലതുവശത്തേയ്‌ക്ക് ചുറ്റിയിരിക്കുന്ന അമ്പടയാളങ്ങൾ"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"ഘടികാരദിശയിൽ വലത്തേക്കും ഇടത്തേക്കുമുള്ള തുറന്ന വൃത്താകൃതിയിലെ അമ്പടയാളങ്ങൾ"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"വൃത്താകൃതിയിലുള്ള ഒരു ഓവർലേ ഉള്ള, ഘടികാരദിശയിൽ വലത്തേക്കും ഇടത്തേക്കുമുള്ള തുറന്ന വൃത്താകൃതിയിലുള്ള അമ്പടയാളങ്ങൾ"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"ഘടികാരദിശയിൽ താഴേക്കും മുകളിലേയ്‌ക്കുമുള്ള തുറന്ന വൃത്താകൃതിയിലുള്ള അമ്പടയാളങ്ങൾ"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"എതിർഘടികാര ദിശയിൽ താഴേക്കും മുകളിലേയ്‌ക്കുമുള്ള തുറന്ന വൃത്താകൃതിയിലുള്ള അമ്പടയാളങ്ങൾ"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"തെളിച്ചക്കുറവ് കാണിക്കുന്ന ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"തെളിച്ചക്കൂടുതൽ കാണിക്കുന്ന ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"സ്‌പീക്കറിൽ റദ്ദാക്കൽ വരയുള്ളത്"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"സ്പീക്കർ"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"ഒറ്റ ശബ്‌ദ തരംഗമുള്ള സ്‌പീക്കർ"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"മൂന്ന് ശബ്‌ദ തരംഗമുള്ള സ്‌പീക്കർ"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"ബാറ്ററി"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"വൈദ്യുത പ്ലഗ്"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"ഇടത്തേക്ക് പോയിന്റുചെയ്യുന്ന മാഗ്‌നിഫൈയിംഗ് ഗ്ലാസ്"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"വലത്തേക്ക് പോയിന്റുചെയ്യുന്ന മാഗ്‌നിഫൈയിംഗ് ഗ്ലാസ്"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"മഷിപേന ചിഹ്നമുള്ള പൂട്ട്"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"താക്കോൽ ഉള്ള അടച്ച പൂട്ട്"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"താക്കോൽ"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"പൂട്ട്"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"തുറന്ന പൂട്ട്"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"മണി"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"മണിയിൽ റദ്ദാക്കൽ വരയുള്ളത്"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"ബുക്ക്മാർക്ക്"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"ചങ്ങലക്കണ്ണിയുടെ ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"റേഡിയോ ബട്ടൺ"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"ഇടത്തേക്കുള്ള അമ്പടയാളമുള്ള Back"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"മുകളിൽ ഇടതുവശത്തേക്കുള്ള അമ്പടയാളമുള്ള \'അവസാനം\' എന്നത്"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"മുകളിൽ ഇടതുവശത്തേക്കും വലതുവശത്തെക്കും അമ്പടയാളമുള്ള, ആശ്ചര്യ ചിഹ്നത്തോടുകൂടിയ \'ഓണാണ്\'"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"മുകളിൽ വലതുവശത്തേക്ക് അമ്പടയാളമുള്ള \'ഉടനെ\' എന്നത്"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"മുകളിലേക്കുള്ള അമ്പടയാളമുള്ള \'മുകളിൽ\' എന്നത്"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"പതിനെട്ടിന് താഴെയുള്ളവർക്കുള്ളതല്ല എന്ന് കാണിക്കുന്ന ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"കീക്യാപ്പ് പത്ത്"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"ലാറ്റിൻ വലിയക്ഷരങ്ങൾക്കുള്ള ഇൻപുട്ട് ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"ലാറ്റിൻ ചെറിയക്ഷരങ്ങൾക്കുള്ള ഇൻപുട്ട് ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"നമ്പരുകൾക്കുള്ള ഇൻപുട്ട് ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"ചിഹ്നങ്ങൾക്കുള്ള ഇൻപുട്ട് ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"ലാറ്റിൻ അക്ഷരങ്ങൾക്കുള്ള ഇൻപുട്ട് ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"തീ"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"വൈദ്യുത ടോർച്ച്"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"റെഞ്ച്"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"ചുറ്റിക"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"നട്ടും ബോൾട്ടും"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"കത്തി"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"തോക്ക്"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"മൈക്രോസ്‌കോപ്പ്"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"ടെലിസ്‌കോപ്പ്"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"സ്ഥടിക ബോൾ"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"മധ്യഭാഗത്ത് കറുത്ത ഡോട്ടുള്ള ആറ് പോയിന്റുള്ള നക്ഷത്രം"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"തുടക്കക്കാർക്കുള്ള ജാപ്പനീസ്‌ ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"ത്രിശൂലത്തിന്റെ ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"കറുത്ത ചതുര ബട്ടൺ"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"വെള്ള ചതുര ബട്ടൺ"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"ചുവന്ന നിറമുള്ള വലിയ വൃത്തം"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"നീല നിറമുള്ള വലിയ വൃത്തം"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"ഓറഞ്ച് നിറമുള്ള വലിയ ചതുർഭുജം"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"നീലനിറമുള്ള വലിയ ചതുർഭുജം"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"ഓറഞ്ച് നിറമുള്ള ചെറിയ ചതുർഭുജം"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"ചെറിയ നീല നിറമുള്ള ചതുർഭുജം"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"മുകളിലേക്ക് പോയിന്റുചെയ്യുന്ന ചുവന്ന നിറമുള്ള ത്രികോണം"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"താഴേക്ക് പോയിന്റുചെയ്യുന്ന ചുവന്ന നിറമുള്ള ത്രികോണം"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"മുകളിലേക്ക് പോയിന്റുചെയ്യുന്ന ചെറിയ ചുവന്ന നിറമുള്ള ത്രികോണം"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"താഴേക്ക് പോയിന്റുചെയ്യുന്ന ചെറിയ ചുവന്ന നിറമുള്ള ത്രികോണം"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"ഒരു മണി സമയം കാണിക്കുന്ന ക്ലോക്ക്"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"രണ്ട് മണി സമയം കാണിക്കുന്ന ക്ലോക്ക്"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"മൂന്ന് മണി സമയം കാണിക്കുന്ന ക്ലോക്ക്"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"നാല് മണി സമയം കാണിക്കുന്ന ക്ലോക്ക്"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"അഞ്ച് മണി സമയം കാണിക്കുന്ന ക്ലോക്ക്"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"ആറ് മണി സമയം കാണിക്കുന്ന ക്ലോക്ക്"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"ഏഴ് മണി സമയം കാണിക്കുന്ന ക്ലോക്ക്"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"എട്ട് മണി സമയം കാണിക്കുന്ന ക്ലോക്ക്"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"ഒൻപത് മണി സമയം കാണിക്കുന്ന ക്ലോക്ക്"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"പത്ത് മണി സമയം കാണിക്കുന്ന ക്ലോക്ക്"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"പതിനൊന്ന് മണി സമയം കാണിക്കുന്ന ക്ലോക്ക്"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"പന്ത്രണ്ട് മണി സമയം കാണിക്കുന്ന ക്ലോക്ക്"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"ഒന്നര മണി സമയം കാണിക്കുന്ന ക്ലോക്ക്"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"രണ്ടര മണി സമയം കാണിക്കുന്ന ക്ലോക്ക്"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"മൂന്നര മണി സമയം കാണിക്കുന്ന ക്ലോക്ക്"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"നാലര മണി സമയം കാണിക്കുന്ന ക്ലോക്ക്"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"അഞ്ചര മണി സമയം കാണിക്കുന്ന ക്ലോക്ക്"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"ആറര മണി സമയം കാണിക്കുന്ന ക്ലോക്ക്"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"ഏഴര മണി സമയം കാണിക്കുന്ന ക്ലോക്ക്"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"എട്ടര മണി സമയം കാണിക്കുന്ന ക്ലോക്ക്"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"ഒൻപതര മണി സമയം കാണിക്കുന്ന ക്ലോക്ക്"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"പത്തര മണി സമയം കാണിക്കുന്ന ക്ലോക്ക്"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"പതിനൊന്നര മണി സമയം കാണിക്കുന്ന ക്ലോക്ക്"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"പന്ത്രണ്ടര മണി സമയം കാണിക്കുന്ന ക്ലോക്ക്"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"ഫുജി പർവ്വതം"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"ടോക്കിയോ ടവർ"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"സ്‌റ്റാച്യൂ ഓഫ് ലിബെർട്ടി"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"ജപ്പാനിന്റെ നിഴൽ ചിത്രം"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"മോയായ്"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"വിഢിച്ചിരിയുള്ള മുഖം"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"ഗോഷ്‌ടിച്ചിരിയോടുകൂടി കണ്ണുകളാൽ പുഞ്ചിരിക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"ആന്ദാശ്രുവുള്ള മുഖം"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"വായതുറന്ന് പുഞ്ചിരിക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"വായ തുറന്ന് പുഞ്ചിരിക്കുന്ന കണ്ണുകളുള്ള പുഞ്ചിരിക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"വായ തുറന്ന്, വിയർത്ത പുഞ്ചിരിക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"വായ തുറന്ന്, ഇറുകെ കണ്ണുകളടച്ച് പുഞ്ചിരിക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"പ്രകാശവലയമുള്ള പുഞ്ചിരിക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"കൊമ്പുകളുള്ള പുഞ്ചിരിക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"കണ്ണിറുക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"പുഞ്ചിരിക്കുന്ന കണ്ണുകളാൽ പുഞ്ചിരി തൂകുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"രുചികരമായ ഭക്ഷണത്തിന്റെ മണം ആസ്വദിക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"ആശ്വാസകരമായ മുഖം"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"ഹൃദയ രൂപത്തിലുള്ള കണ്ണുകളുള്ള പുഞ്ചിരിക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"സൺഗ്ലാസ്സുകൾ ധരിച്ച് പുഞ്ചിരിക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"കൃത്രിമമായി പുഞ്ചിരിക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"വികാരമൊന്നുമില്ലാത്ത മുഖം"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"ഭാവശൂന്യമായ മുഖം"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"സന്തോഷരഹിതമായ മുഖം"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"ഭയത്താൽ വിയർക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"ചിന്താകുലമായ മുഖം"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"ആശയക്കുഴപ്പമുള്ള മുഖം"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"ചിന്താക്കുഴപ്പമുള്ള മുഖം"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"ചുംബിക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"ചുംബനം പറത്തിവിടുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"പുഞ്ചിരിക്കുന്ന കണ്ണുകളുള്ള ചുംബിക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"അടഞ്ഞ കണ്ണുകളുള്ള ചുംബിക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"പുറത്തേക്ക് നീട്ടിയ നാവുള്ള മുഖം"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"പുറത്തേക്കുനീട്ടിയ നാവുള്ള കണ്ണുചിമ്മുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"പുറത്തേക്കുനീട്ടിയ നാവും ഇറുകെ ചിമ്മിയ കണ്ണുകളുമുള്ള മുഖം"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"നിരാശനിറഞ്ഞ മുഖം"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"ദുഃഖിതമായ മുഖം"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"ദേഷ്യത്തോടെയുള്ള മുഖം"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"മുഷിച്ചിൽ പ്രകടമാക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"കരയുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"കഠിനാദ്ധ്വാനത്തിന്റെ മുഖം"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"വിജയാഹ്ലാദം പ്രകടിപ്പിക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"നിരാശനിറഞ്ഞതെങ്കിലും ആശ്വാസകരമായ മുഖം"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"വായ തുറന്ന് നെറ്റി ചുളിക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"വേദന പ്രകടമാക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"ഭയചകിതമായ മുഖം"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"ക്ഷീണിച്ച മുഖം"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"നിദ്രാലസമായ മുഖം"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"ക്ഷീണിച്ച മുഖം"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"വിഡ്‌ഢിച്ചിരിയുള്ള മുഖം"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"ഉച്ചത്തിൽ കരയുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"തുറന്ന വായോടുകൂടിയ മുഖം"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"നിശബ്‌ദമായ മുഖം"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"വായ തുറന്നിരിക്കുന്ന, ഭയത്താൽ വിയർക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"ഭയത്താൽ അലറിവിളിക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"ആശ്ചര്യഭരിതമായ മുഖം"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"ചുവന്നുതുടുത്ത മുഖം"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"ഉറങ്ങുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"മോഹാലസ്യം കാണിക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"വായില്ലാത്ത മുഖം"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"മെഡിക്കൽ മാസ്‌ക്കോടുകൂടിയ മുഖം"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"ഗോഷ്‌ടിച്ചിരിയുള്ള പുഞ്ചിരിക്കുന്ന കണ്ണുകളുള്ള പൂച്ച മുഖം"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"ആനന്ദാശ്രുവുള്ള പൂച്ച മുഖം"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"വായ തുറന്ന് പുഞ്ചിരിക്കുന്ന പൂച്ച മുഖം"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"ഹൃദയ രൂപത്തിലുള്ള കണ്ണുകളുള്ള പുഞ്ചിരിക്കുന്ന പൂച്ച"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"വക്രമായ ചിരിയോടുകൂടിയുള്ള പൂച്ചമുഖം"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"അടഞ്ഞ കണ്ണുകളുള്ള, ചുംബിക്കുന്ന പൂച്ച മുഖം"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"മുഷിച്ചിൽ അനുഭവപ്പെടുന്ന പൂച്ച മുഖം"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"കരയുന്ന പൂച്ച മുഖം"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"ക്ഷീണിതമായ പൂച്ച മുഖം"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"സമ്മതമല്ല എന്നു കാണിക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"ശരി എന്നുകാണിക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"തലകുനിച്ചിരിക്കുന്ന വ്യക്തി"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"കണ്ടില്ല എന്ന് കാണിക്കുന്ന കുരങ്ങൻ"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"കേൾക്കുന്നില്ല എന്ന് കാണിക്കുന്ന കുരങ്ങൻ"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"സംസാരിക്കുന്നില്ല എന്ന് കാണിക്കുന്ന കുരങ്ങൻ"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"സന്തോഷത്തോടെ ഒരു കൈ ഉയർത്തുന്ന വ്യക്തി"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"ആഘോഷവേളയിൽ രണ്ടുകൈയ്യും ഉയർത്തുന്ന വ്യക്തി"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"നെറ്റി ചുളിക്കുന്ന വ്യക്തി"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"മുഷിച്ചിൽ അനുഭവപ്പെടുന്ന മുഖമുള്ള വ്യക്തി"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"കെട്ടിയ കൈകളുള്ള വ്യക്തി"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"റോക്കറ്റ്"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"ഹെലിക്കോപ്‌റ്റർ"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"തീവണ്ടി എഞ്ചിൻ"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"റെയിൽവേ കാർ"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"അതിവേഗ ട്രെയിൻ"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"മുൻഭാഗം ബുള്ളറ്റ് പോലെ കൂർത്തിരിക്കുന്ന അതിവേഗ ട്രെയിൻ"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"ട്രെയിൻ"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"മെട്രോ"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"ലൈറ്റ് റെയിൽ"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"സ്‌റ്റേഷൻ"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"ട്രാം"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"ട്രാം കാർ"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"ബസ്"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"വരുന്ന ബസ്"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"ട്രോളി ബസ്"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"ബസ് ‌സ്റ്റോപ്പ്"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"മിനിബസ്"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"ആംബുലൻസ്"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"അഗ്നിശമന എഞ്ചിൻ"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"പോലീസ് കാർ"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"വരുന്ന പോലീസ് കാർ"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"ടാക്‌സി"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"വരുന്ന ടാക്‌സി"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"ഓട്ടോമൊബൈൽ"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"വരുന്ന ഓട്ടോമൊബൈൽ"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"വിനോദത്തിനുപയോഗിക്കുന്ന വാഹനം"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"ഡെലിവറി ട്രക്ക്"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"ആർട്ടിക്യുലേറ്റഡ് ലോറി"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"ട്രാക്‌ടർ"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"മോണോറെയിൽ"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"മൗണ്ടെയ്‌ൻ റെയിൽവേ"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"തൂങ്ങിക്കിടക്കുന്ന റെയിൽവേ"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"കുന്നിൻ പ്രദേശത്തെ കേബിൾവേ"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"ഏരിയൽ ട്രാംവേ"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"കപ്പൽ"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"വഞ്ചി"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"സ്‌പീഡ് ബോട്ട്"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"തിരശ്ചീനമായ ട്രാഫിക്ക് ലൈറ്റ്"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"ലംബമായ ട്രാഫിക്കൽ ലൈറ്റ്"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"നിർമ്മാണത്തിലാണ് എന്ന് കാണിക്കുന്ന ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"ലൈറ്റ് ചുറ്റുന്ന പോലീസ് കാറുകൾ"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"പോസ്‌റ്റിലെ ത്രികോണാകൃതിയിലുള്ള പതാക"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"വാതിൽ"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"പ്രവേശനമില്ല ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"പുകവലി ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"പുകവലിക്കരുത് ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"ചവറിടേണ്ട സ്ഥലത്തുതന്നെയിടുക എന്ന ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"ചവറിടരുത് എന്ന ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"കുടിക്കാൻ യോഗ്യമായ വെള്ളത്തിന്റെ ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"കുടിക്കാൻ പാടില്ലാത്ത വെള്ളത്തിന്റെ ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"സൈക്കിൾ"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"സൈക്കിളുകളൊന്നുമില്ല"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"സൈക്കിൾ ഓടിക്കുന്നയാൾ"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"കുന്നിൻ പുറത്ത് സൈക്കിൾ ഓടിക്കുന്നയാൾ"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"കാൽനടയാത്രികൻ"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"കാൽനടയാത്രികരൊന്നുമില്ല"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"കുട്ടികൾ വഴി മുറിച്ചുകടക്കുന്നു"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"പുരുഷൻ എന്ന ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"സ്‌ത്രീകൾ എന്ന ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"മൂത്രപ്പുര"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"കുഞ്ഞ് എന്ന ചിഹ്നം"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"ശൗച്യാലയം"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"വാട്ടർ ക്ലോസറ്റ്"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"ഷവർ"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"കുളി"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"ബാത്ത്ടബ്ബ്"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"പാസ്‌പോർട്ട് നിയന്ത്രണം"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"തീരുവ"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"ബാഗേജ് ക്ലെയിം"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"ലഗേജ് വയ്‌ക്കാനുള്ള സ്ഥലം"</string>
+</resources>
diff --git a/java/res/values-ml-rIN/strings-talkback-descriptions.xml b/java/res/values-ml-rIN/strings-talkback-descriptions.xml
index 3577bbb..aacfca3 100644
--- a/java/res/values-ml-rIN/strings-talkback-descriptions.xml
+++ b/java/res/values-ml-rIN/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"വാചകമൊന്നും നൽകിയിട്ടില്ല"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g>, <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> എന്നത് <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> എന്നതായി തിരുത്തുന്നു"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> യാന്ത്രിക-തിരുത്തൽ നിർവഹിക്കുന്നു"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"നിർദ്ദേശമൊന്നുമില്ല"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"അജ്ഞാത പ്രതീകം"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"കൂടുതൽ ചിഹ്നങ്ങൾ"</string>
@@ -58,7 +59,7 @@
     <string name="keyboard_mode_date" msgid="6597407244976713364">"തീയതി"</string>
     <string name="keyboard_mode_date_time" msgid="3642804408726668808">"തീയതിയും സമയവും"</string>
     <string name="keyboard_mode_email" msgid="1239682082047693644">"ഇമെയിൽ"</string>
-    <string name="keyboard_mode_im" msgid="3812086215529493501">"സന്ദേശമയയ്‌ക്കൽ"</string>
+    <string name="keyboard_mode_im" msgid="3812086215529493501">"സന്ദേശം"</string>
     <string name="keyboard_mode_number" msgid="5395042245837996809">"നമ്പർ"</string>
     <string name="keyboard_mode_phone" msgid="2486230278064523665">"ഫോൺ"</string>
     <string name="keyboard_mode_text" msgid="9138789594969187494">"ടെക്‌സ്‌റ്റ്"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"വലിയക്ഷരം I, മുകളിൽ ഡോട്ട്"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"അജ്ഞാത ചിഹ്നം"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"അജ്ഞാത ഇമോജി"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"മുഷിഞ്ഞ മുഖം"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"ചമ്മിയ മുഖം"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"സൺഗ്ലാസ് ധരിച്ച മുഖം"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"ആശ്‌ചര്യ ഭാവമുള്ള മുഖം"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"ചുംബിക്കുന്ന മുഖം"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"ദേഷ്യ ഭാവമുള്ള മുഖം"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"ഇതര പ്രതീകങ്ങൾ ലഭ്യമാണ്"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"ഇതര പ്രതീകങ്ങൾ നിരസിച്ചു"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"ഇതര നിർദ്ദേശങ്ങൾ ലഭ്യമാണ്"</string>
diff --git a/java/res/values-ml-rIN/strings.xml b/java/res/values-ml-rIN/strings.xml
index e27df48..f24c5f2 100644
--- a/java/res/values-ml-rIN/strings.xml
+++ b/java/res/values-ml-rIN/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"കീ അമർത്തുമ്പോൾ വൈബ്രേറ്റുചെയ്യുക"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"കീ അമർത്തുമ്പോഴുള്ള ശബ്‌ദമുണ്ടാക്കുക"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"കീ അമർത്തുമ്പോൾ പോപ്പ്അപ്പ് ചെയ്യുക"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"മുൻഗണനകൾ"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"അക്കൗണ്ടുകളും സമന്വയവും"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"രൂപഭാവവും ലേഔട്ടുകളും"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"ഗെസ്ചർ ടൈപ്പിംഗ്"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"വാചകം തിരുത്തൽ"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"വിപുലമായ"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"തീം"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"സ്‌പ്‌ലിറ്റ് കീബോർഡ് പ്രവർത്തനക്ഷമമാക്കുക"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google കീബോർഡ് സമന്വയം"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"സമന്വയം ഓണാണ്"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"ഉപകരണങ്ങളിലുടനീളം നിങ്ങളുടെ സ്വകാര്യ നിഘണ്ടു സമന്വയിപ്പിക്കുക"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"ഇപ്പോൾ സമന്വയിപ്പിക്കുക"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"ക്ലൗഡ് വിവരം ഇല്ലാതാക്കുക"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"നിങ്ങളുടെ സമന്വയിപ്പിച്ച വിവരം Google-ൽ നിന്ന് ഇല്ലാതാക്കുന്നു"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"നിങ്ങളുടെ സമന്വയിപ്പിച്ച വിവരം ക്ലൗഡിൽ നിന്ന് ഇല്ലാതാക്കും. തീർച്ചയാണോ?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"ഇല്ലാതാക്കുക"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"റദ്ദാക്കുക"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"നിങ്ങളുടെ സ്വകാര്യ നിഘണ്ടു Google സെർവറുകളിലേക്ക് സമന്വയിപ്പിച്ച് ബാക്കപ്പുചെയ്യും. ഞങ്ങളുടെ ഉൽപ്പന്നങ്ങൾ മെച്ചപ്പെടുത്താൻ സഹായിക്കുന്നതിന് പദങ്ങളുടെ ആവർത്തനം സംബന്ധിച്ച സ്ഥിതിവിവരക്കണക്കുകൾ ശേഖരിച്ചേക്കാം. എല്ലാ വിവരങ്ങളും ശേഖരിക്കുന്നതും ഉപയോഗിക്കുന്നതും "<a href="https://www.google.com/policies/privacy">"Google-ന്റെ സ്വകാര്യത നയത്തിന്"</a>" വിധേയമായിട്ടായിരിക്കും."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"ഈ ഫീച്ചർ പ്രവർത്തനക്ഷമമാക്കാൻ ഈ ഉപകരണത്തിൽ Google അക്കൗണ്ട് ചേർക്കുക"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"മറ്റു ടൈപ്പുചെയ്യൽ രീതികളിലേക്ക് മാറുക"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"ഭാഷ മാറൽ കീയിൽ മറ്റ് ടൈപ്പുചെയ്യൽ രീതികളും ഉൾപ്പെടുന്നു"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"ഭാഷ മാറൽ കീ"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"ഒന്നിലധികം ടൈപ്പുചെയ്യൽ ഭാഷകൾ പ്രവർത്തനക്ഷമമാക്കുമ്പോൾ കാണിക്കുക"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"സ്ലൈഡ് ഇൻഡിക്കേറ്റർ കാണിക്കുക"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Shift അല്ലെങ്കിൽ ചിഹ്ന കീകളിൽ നിന്ന് സ്ലൈഡ് ചെയ്യുമ്പോൾ ദൃശ്യ സൂചകം പ്രദർശിപ്പിക്കുക"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"കീ പോപ്പ്അപ്പ് നിരസിക്കൽ കാലതാമസം"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"കാലതാമസമില്ല"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"സ്ഥിരമായത്"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"പ്രധാന നിഘണ്ടു"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"തിരുത്തൽ നിർദ്ദേശങ്ങൾ വായിക്കുക"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"ടൈപ്പുചെയ്യുമ്പോൾ നിർദ്ദേശിച്ച വാക്കുകൾ പ്രദർശിപ്പിക്കുക"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"എല്ലായ്പ്പോഴും ദൃശ്യമാക്കുക"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"പോർട്രെയ്‌റ്റ് മോഡിൽ കാണിക്കുക"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"എല്ലായ്പ്പോഴും മറയ്‌ക്കുക"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"നിന്ദ്യമായ വാക്കുകൾ തടയുക"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"നിന്ദ്യമാകാനിടയുള്ള വാക്കുകൾ നിർദ്ദേശിക്കരുത്"</string>
     <string name="auto_correction" msgid="7630720885194996950">"യാന്ത്രികമായി-തിരുത്തൽ"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"വോയ്‌സ് ടൈപ്പുചെയ്യൽ കീ"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"വോയ്‌സ് ടൈപ്പുചെയ്യൽ രീതികളൊന്നും പ്രവർത്തനക്ഷമമല്ല. ഭാഷ &amp; ടൈപ്പു ചെയ്യൽ ക്രമീകരണങ്ങൾ പരിശോധിക്കുക."</string>
     <string name="configure_input_method" msgid="373356270290742459">"ടൈപ്പുചെയ്യൽ രീതികൾ കോൺഫിഗർ ചെയ്യുക"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"ടൈപ്പുചെയ്യൽ ഭാഷകൾ"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"ഫീഡ്‍ബാക്ക് അയയ്ക്കുക"</string>
-    <string name="select_language" msgid="3693815588777926848">"ടൈപ്പുചെയ്യൽ ഭാഷകൾ"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"ഭാഷകള്‍‌"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"സഹായവും ഫീഡ്‌ബാക്കും"</string>
+    <string name="select_language" msgid="5709487854987078367">"ഭാഷകള്‍‌"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"സംരക്ഷിക്കുന്നതിനായി വീണ്ടും സ്‌പർശിക്കുക"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"സംരക്ഷിക്കാൻ ഇവിടെ സ്‌പർശിക്കുക"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"നിഘണ്ടു ലഭ്യമാണ്"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"കീബോർഡ് തീം"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"അക്കൗണ്ടുകൾ മാറുക"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"അക്കൗണ്ടുകളൊന്നും തിരഞ്ഞെടുത്തിട്ടില്ല"</string>
+    <string name="account_selected" msgid="2846876462199625974">"നിലവിൽ <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g> എന്ന അക്കൗണ്ട് ഉപയോഗിക്കുന്നു"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"ശരി"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"റദ്ദാക്കുക"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"സൈൻ ഔട്ട് ചെയ്യുക"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"ഉപയോഗിക്കാൻ ഒരു അക്കൗണ്ട് തിരഞ്ഞെടുക്കുക"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"ഇംഗ്ലീഷ് (യുകെ)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"ഇംഗ്ലീഷ് (യുഎസ്)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"സ്‌പാനിഷ് (യുഎസ്)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"ഹിംഗ്ലീഷ്"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"സെർബിയൻ (ലാറ്റിൻ)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"ഇംഗ്ലീഷ് (യുകെ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"ഇംഗ്ലീഷ് (യുഎസ്) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"സ്‌പാനിഷ് (യുഎസ്) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"ഹിംഗ്ലീഷ് (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"സെർബിയൻ (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (പരമ്പരാഗതം)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (സിറിലിക്)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ലാറ്റിൻ)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (കോം‌പാക്‌ട്)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"ഭാഷയില്ല (അക്ഷരമാല)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"അക്ഷരമാല (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"അക്ഷരമാല (QWERTZ)"</string>
@@ -108,18 +121,9 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"അക്ഷരമാല (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"അക്ഷരമാല (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"ഇമോജി"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"കീബോർഡ് തീം"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"ഇഷ്‌ടാനുസൃത ടൈപ്പുചെയ്യൽ ശൈലികൾ"</string>
-    <string name="add_style" msgid="6163126614514489951">"ശൈലി ചേർക്കുക"</string>
+    <string name="add_style" msgid="6163126614514489951">"സ്റ്റൈൽ ചേർക്കുക"</string>
     <string name="add" msgid="8299699805688017798">"ചേര്‍ക്കുക"</string>
     <string name="remove" msgid="4486081658752944606">"നീക്കംചെയ്യുക"</string>
     <string name="save" msgid="7646738597196767214">"സംരക്ഷിക്കുക"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"പ്രവർത്തനക്ഷമമാക്കുക"</string>
     <string name="not_now" msgid="6172462888202790482">"ഇപ്പോൾ വേണ്ട"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"സമാന ടൈപ്പുചെയ്യൽ ശൈലി ഇതിനകം നിലവിലുണ്ട്: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"കീ ദീർഘനേരം അമർത്തിപ്പിടിക്കൽ കാലതാമസം"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"കീ അമർത്തുമ്പോഴുള്ള വൈബ്രേഷൻ ദൈർഘ്യം"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"കീ അമർത്തുമ്പോഴുള്ള ശബ്‌ദ വോളിയം"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"ബാഹ്യ നിഘണ്ടു ഫയൽ റീഡുചെയ്യുക"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"ഡൗൺലോഡുകളുടെ ഫോൾഡറിൽ നിഘണ്ടു ഫയലുകളൊന്നുമില്ല"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"ഇൻസ്‌റ്റാൾ ചെയ്യുന്നതിനായി ഒരു നിഘണ്ടു ഫയൽ തിരഞ്ഞെടുക്കുക"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> ഭാഷയ്‌ക്കായി ശരിക്കും ഈ ഫയൽ ഇൻസ്‌റ്റാൾ ചെയ്യണോ?"</string>
-    <string name="error" msgid="8940763624668513648">"ഒരു പിശകുണ്ടായി"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"കീ ദീർഘനേരം അമർത്തിപ്പിടിക്കൽ കാലതാമസം"</string>
     <string name="button_default" msgid="3988017840431881491">"സ്ഥിരമായത്"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> എന്നതിലേക്ക് സ്വാഗതം"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"ജെസ്റ്റർ ടൈപ്പുചെയ്യലിനൊപ്പം"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> ഉപയോഗിച്ച് നിങ്ങളുടെ പ്രിയപ്പെട്ട എല്ലാ അപ്ലിക്കേഷനുകളിലും ഇപ്പോൾ ടൈപ്പുചെയ്യാനാകും."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"കൂടുതൽ ഭാഷകൾ കോൺഫിഗർ ചെയ്യുക"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"പൂർത്തിയായി"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"അപ്ലിക്കേഷൻ ഐക്കൺ കാണിക്കുക"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"ലോഞ്ചറിൽ അപ്ലിക്കേഷൻ ഐക്കൺ പ്രദർശിപ്പിക്കുക"</string>
     <string name="app_name" msgid="6320102637491234792">"നിഘണ്ടു ദാതാവ്"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"നിഘണ്ടു ദാതാവ്"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"നിഘണ്ടു സേവനം"</string>
diff --git a/java/res/values-mn-rMN/strings-emoji-descriptions.xml b/java/res/values-mn-rMN/strings-emoji-descriptions.xml
index f09a51d..5014b2f 100644
--- a/java/res/values-mn-rMN/strings-emoji-descriptions.xml
+++ b/java/res/values-mn-rMN/strings-emoji-descriptions.xml
@@ -267,7 +267,7 @@
     <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Печень"</string>
     <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Шоколад"</string>
     <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Чихэр"</string>
-    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Иштэй чихэр"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lollipop"</string>
     <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Шар тос"</string>
     <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Зөгийн бал"</string>
     <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Үелсэн бялуу"</string>
diff --git a/java/res/values-mn-rMN/strings-talkback-descriptions.xml b/java/res/values-mn-rMN/strings-talkback-descriptions.xml
index d2c583e..5b9da91 100644
--- a/java/res/values-mn-rMN/strings-talkback-descriptions.xml
+++ b/java/res/values-mn-rMN/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Текст оруулаагүй"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> нь <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>-г <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> руу залруулна"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> авто-залруулалт хийдэг"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Зөвлөмж байхгүй"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Үл мэдэгдэх тэмдэгт"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Шифт"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Өөр тэмдэгтүүд"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Том I, дээрээ цэгтэй"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Үл мэдэгдэх симбол"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Үл мэдэгдэх эможи"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Уйтгартай царай"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Ичсэн царай"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Нарны шил зүүсэн царай"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Гайхсан царай"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Үнсэж буй царай"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Хөмсөг зангидсан царай"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Бусад тэмдэгтүүд ашиглах боломжтой"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Бусад тэмдэгтүүдийг хаагдсан"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Бусад санал болголтууд ашиглах боломжтой"</string>
diff --git a/java/res/values-mn-rMN/strings.xml b/java/res/values-mn-rMN/strings.xml
index 4d47dfe..3625089 100644
--- a/java/res/values-mn-rMN/strings.xml
+++ b/java/res/values-mn-rMN/strings.xml
@@ -26,18 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Товч дарахад чичрэх"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Товч дарахад дуу гаргах"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Товч дарахад попап гарна"</string>
-    <string name="settings_screen_input" msgid="2808654300248306866">"Оруулгын тохируулга"</string>
-    <string name="settings_screen_appearances" msgid="3611951947835553700">"Харагдац"</string>
-    <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Олон хэлний сонголтууд"</string>
-    <string name="settings_screen_gesture" msgid="9113437621722871665">"Зангалтын бичих тохируулга"</string>
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Тохируулга"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Хаяг &amp; Нууцлал"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Харагдах байдал &amp; Зураглал"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Зангаагаар бичих"</string>
     <string name="settings_screen_correction" msgid="1616818407747682955">"Текст залруулалт"</string>
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Дэлгэрэнгүй"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Загвар"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Хуваагдмал гарыг идэвхжүүлэх"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google-н гарны тохиргоо"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Тохиргоо хийгдэх үйлдлийг идэвхжүүлсэн байна"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Төхөөрөмжинд өөрийн хувийн толь бичгийг тохируулах"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Одоо синк хийх"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Cloud-ын мэдээллийг устгах"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Таны синк хийсэн мэдээллийг Google-ээс устгана."</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Таны мэдээллийг cloud-с устгах болно. Та итгэлтэй байна уу?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Устгах"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Цуцлах"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Таны хувийн толь бичгийг синк хийж, Google-ийн серверүүд дээр хадгалж авч үлдэнэ. Манай бүтээгдэхүүнүүдийг сайжруулахад туслах зорилгоор үгийн давтамжийн статистик мэдээллийг цуглуулж болно. Бүх мэдээллийг "<a href="https://www.google.com/policies/privacy">"Google-ийн Нууцлалын бодлогын дагуу"</a>" цуглуулж, ашиглана."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Энэ горимыг идэвхжүүлэхийн тулд энэ төхөөрөмж рүү Google акаунт нэмж оруулна уу"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Оруулах өөр арга руу шилжүүлэх"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Хэл солих түлхүүрт өөр оруулах аргууд мөн багтсан байгаа"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Хэл солих товч"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Оруулах хэл олныг идэвхжүүлсэн үед харуулах"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Гулсалт заагчийг харуулах"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Сэлгэх буюу Симбол товчуудаас гулсах үед нүдэнд харагдуулах"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Товчны попап арилах хугацаа"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Хүлээхгүй"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Үндсэн"</string>
@@ -56,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Үндсэн толь бичиг"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Залруулах санал болголтуудыг харуулах"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Бичих явцад санал болгосон үгсийг харуулах"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Байнга харуулах"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Босоо горимд харуулах"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Байнга нуух"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Доромжилсон үгсийг хаах"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Доромжилсон үгсийг санал болгохгүй байх"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Авто-залруулга"</string>
@@ -79,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Дуун оруулгын товч"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ямар ч дуу оруулах хэрэглүүр идэвхжээгүй байна. Хэл болон оруулалтын тохиргоог шалгана уу."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Оруулах аргуудын тохиргоо"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Оруулах хэл"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Санал хүсэлт илгээх"</string>
-    <string name="select_language" msgid="3693815588777926848">"Оруулах хэл"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Хэл"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Тусламж &amp; санал хүсэлт"</string>
+    <string name="select_language" msgid="5709487854987078367">"Хэл"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Хадгалахын тулд дахин хүрнэ үү"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Хадгалахын тулд хүрнэ үү"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Толь бичиг байна"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Гарын загвар"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Акаунт сэлгэх"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Акаунт сонгогдоогүй"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Одоо <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>-г ашиглаж байна"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"ТИЙМ"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Цуцлах"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Гарах"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Ашиглах акаунтаа сонгоно уу"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Англи (ИБ)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Англи (АНУ)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Испани (АНУ)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Хинглиш"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Серьби хэл (латин)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Англи (ИБ) ( <xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g> )"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Англи (АНУ) ( <xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g> )"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Испани (АНУ-ын) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Хинглиш (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Серьби хэл (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (уламжлалт)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Кирилл)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Латин)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Компакт)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Хэл байхгүй (Цагаан толгой)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Цагаан толгой (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Цагаан толгой (QWERTZ)"</string>
@@ -103,10 +122,6 @@
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Цагаан толгой (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Инээмсэглэл"</string>
     <string name="keyboard_theme" msgid="4909551808526178852">"Гарын загвар"</string>
-    <string name="keyboard_theme_holo_white" msgid="8506588144096428751">"Холо Цагаан"</string>
-    <string name="keyboard_theme_holo_blue" msgid="192400518003397418">"Холо Цэнхэр"</string>
-    <string name="keyboard_theme_material_dark" msgid="2701178578784760596">"Материал Бараан"</string>
-    <string name="keyboard_theme_material_light" msgid="3479400901818790331">"Материал Цайвар"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Өөрийн оруулах загвар"</string>
     <string name="add_style" msgid="6163126614514489951">"Загвар нэмэх"</string>
     <string name="add" msgid="8299699805688017798">"Нэмэх"</string>
@@ -118,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Идэвхжүүлэх"</string>
     <string name="not_now" msgid="6172462888202790482">"Одоо биш"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Ижилхэн оруулах загвар байна: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Товч удаан дарах хугацааны тохиргоо"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Товч дарах чичиргээний хугацаа"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Товчны дууны хэмжээ"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Толь бичгийн гадны файлыг унших"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Татаж авсан фолдерт толь бичгийн файл байхгүй байна"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Суулгах толь бичгийн файлыг сонгоно уу"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g>-д зориулсан энэ файлыг үнэхээр суулгах уу?"</string>
-    <string name="error" msgid="8940763624668513648">"Алдаа гарсан"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Товч удаан дарах хугацааны тохиргоо"</string>
     <string name="button_default" msgid="3988017840431881491">"Үндсэн"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Та <xliff:g id="APPLICATION_NAME">%s</xliff:g>-д тавтай морилно уу"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"Зангаагаар бичихээр"</string>
@@ -143,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Та одоо өөрийн дуртай апп-ууд дотроо <xliff:g id="APPLICATION_NAME">%s</xliff:g> ашиглан бичих болохоор боллоо."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Нэмэлт хэлнүүдийг тохируулах"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Дууссан"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Апп дүрсийг харуулах"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Эхлүүлэгч дээр аппликешний дүрсийг харуулах"</string>
     <string name="app_name" msgid="6320102637491234792">"Толь бичгээр хангагч"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Толь бичгээг хангагч"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Толь бичгийн үйлчилгээ"</string>
diff --git a/java/res/values-mr-rIN/strings-emoji-descriptions.xml b/java/res/values-mr-rIN/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..87b6315
--- /dev/null
+++ b/java/res/values-mr-rIN/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"कॉपीराइट चिन्ह"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"नोंदणीकृत चिन्ह"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"दुहेरी उदगार चिन्ह"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"उदगार प्रश्नचिन्ह"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"व्यापार चिन्ह"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"माहितीचा स्त्रोत"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"डावा उजवा बाण"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"वर खाली बाण"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"उत्तर दक्षिण बाण"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"उत्तर पूर्व बाण"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"दक्षिण पूर्व बाण"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"दक्षिण पश्चिम बाण"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"आकड्यासह डावीकडील बाण"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"आकड्यासह उजवीकडील बाण"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"घड्याळ"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"वाळूचे घड्याळ"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"काळा उजवीकडे निर्देशित करणारा दुहेरी त्रिकोण"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"काळा डावीकडे निर्देशित करणारा दुहेरी त्रिकोण"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"काळा वर निर्देशित करणारा दुहेरी त्रिकोण"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"काळा खाली निर्देशित करणारा दुहेरी त्रिकोण"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"गजराचे घड्याळ"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"वाहणार्‍या वाळूसह वाळूचे घड्याळ"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"मंडळातील लॅटिन कॅपिटल अक्षर m"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"काळा लहान चौरस"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"पांढरा लहान चौरस"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"काळा उजवीकडे निर्देशित करणारा त्रिकोण"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"काळा डावीकडे निर्देशित करणारा त्रिकोण"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"पांढरा मध्यम चौरस"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"काळा मध्यम चौरस"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"पांढरा मध्यम लहान चौरस"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"काळा मध्यम लहान चौरस"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"किरणांसह काळा सूर्य"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"ढग"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"काळा टेलिफोन"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"चेक सह मतदान पेटी"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"पावसाच्या थेंबांसह छत्री"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"गरम पेय"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"पांढरी वर निर्देशित करणारी तर्जनी"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"पांढरा हसणारा चेहरा"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"मेष"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"वृषभ"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"मिथुन"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"कर्क"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"सिंह"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"कन्या"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"तूळ"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"वृश्चिक"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"धनु"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"मकर"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"कुंभ"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"मीन"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"काळा इस्पिकच्या पत्त्याच्या पानांचा संच"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"काळ्या किल्वरच्या पत्त्याच्या पानांचा संच"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"काळ्या बदाम पत्त्याच्या पानांच संच"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"काळ्या चौकट च्या पत्त्याच्या पानांचा संच"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"गरम पाण्याचा झरा"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"काळे वैश्विक पुनश्चक्रण चिन्ह"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"व्हीलचेअर चिन्ह"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"अँकर"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"चेतावणी दृश्य"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"उच्च विद्युतदाब चिन्ह"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"मध्यम पांढरे वर्तुळ"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"मध्यम काळे वर्तुळ"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"सॉकर बॉल"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"बेसबॉल"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"बर्फ विरहित हिममानव"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"ढगामागचा सूर्य"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"भुजंगधारी"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"प्रवेश बंद"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"चर्च"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"कारंज"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"भोकामध्ये ध्वज"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"शिडाची होडी"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"तंबू"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"इंधन पंप"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"काळ्या कात्र्या"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"पांढरा ठळक चेकमार्क"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"विमान"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"लिफाफा"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"उन्नत मूठ"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"उन्नत हात"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"विजयी हात"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"पेन्सिल"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"काळी निब"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"ठळक चेक मार्क"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"ठळक गुणाकार x"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"चकाकणे"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"आठ आरा असलेला तारा"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"आठ टोकांचा काळा तारा"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"हिमवर्षाव"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"चमक"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"फुलीचे चिन्ह"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"नकारार्थी चौरस फुलीचे चिन्ह"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"काळ्या प्रश्न चिन्हाचा अलंकार"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"पांढर्‍या प्रश्न चिन्हाचा अलंकार"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"पांढर्‍या उदगार चिन्हाचा दागिना"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"ठळक उदगार चिन्ह"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"ठळक काळे हृदय"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"ठळक अधिक चिन्ह"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"ठळक वजा चिन्ह"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"ठळक भागाकार चिन्ह"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"काळा उजवीकडे बाण"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"पीळदार लूप"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"दुहेरी पिळदार लूप"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"उजवीकडे निर्देशित करणारा नंतर वर वळणारा बाण"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"उजवीकडे निर्देशित करणारा नंतर खाली वळणारा बाण"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"डावीकडे काळा बाण"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"वर काळा बाण"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"खाली काळा बाण"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"काळा मोठा चौरस"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"पांढरा मोठा चौरस"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"पांढरा मध्यम तारा"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"ठळक मोठे मंडळ"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"लहरयुक्त डॅश"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"भागात फेरफार करण्याचा डॅश"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"वर्तुळाकृती कल्पनाचित्र अभिनंदन"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"वर्तुळाकृती कल्पनाचित्र गुपीत"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"महजोंग टाइल लाल ड्रॅगन"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"खेळण्याच्या पत्त्यातील काळा जोकर"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"रक्तगट A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"रक्तगट B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"रक्तगट O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"वाहनतळ"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"रक्तगट AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"चौरसातील CL"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"चौरसातील छान"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"चौरसातील विनामूल्य"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"चौरसातील ID"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"चौरसातील नवीन"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"चौरसातील N G"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"चौरसातील ठीक"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"चौरसातील SOS"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"उद्गार चिन्हासह चौरस असलेले"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"चौरसातील vs"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"चौरसातील कॅटाकाना येथे आहे"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"चौरसातील कॅटाकाना सेवा"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"चौरसातील कल्पनाचित्र निःशुल्क"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"चौरसातील कल्पनाचित्र आरक्षित-आसन"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"चौरसातील कल्पनाचित्र प्रतिबंध"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"चौरसातील कल्पनाचित्र रिकामी जागा"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"चौरसातील कल्पनाचित्र स्वीकार"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"चौरसातील कल्पनाचित्र पूर्ण ताबा"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"चौरसातील कल्पनाचित्र सशुल्क"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"चौरसातील कल्पनाचित्र मासिक"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"चौरसातील कल्पनाचित्र अनुप्रयोग"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"चौरसातील कल्पनाचित्र सवलत"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"चौरसातील व्यवसायातील कल्पनाचित्र"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"वर्तुळाकृती कल्पनाचित्र फायदा"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"वर्तुळाकार कल्पनाचित्र स्वीकार"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"चक्रीवादळ"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"अंधुक"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"बंद छत्री"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"चांदणे पडलेली रात्र"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"पर्वतांवरील सूर्योदय"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"सूर्योदय"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"तिन्हीसांजेचे शहराचे दृश्य"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"इमारतींवरून सूर्यास्ताचे दृश्य"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"इंद्रधनुष्य"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"रात्रीचा पूल"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"पाण्याची लाट"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"ज्वालामुखी"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"आकाशगंगा"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"पृथ्वीचा गोल युरोप-आफ्रिका"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"पृथ्वीचा गोल अमेरिका"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"पृथ्वीचा गोल आशिया-ऑस्ट्रेलिया"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"रेखावृत्तांसह पृथ्वीचा गोल"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"अमावस्येच्या चंद्राचे चिन्ह"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"कृष्ण पक्षातील कलेकलेने वाढणार्‍या चंद्रकोरीचे चिन्ह"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"चतुर्थीच्या चंद्राचे चिन्ह"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"कृष्ण पक्षातील कलेकलेने वाढणार्‍या चंद्राचे चिन्ह"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"पौर्णिमेच्या चंद्राचे चिन्ह"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"शुक्ल पक्षातील कलेकलेने कमी होणार्‍या चंद्राचे चिन्ह"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"अष्टमीच्या चंद्राचे चिन्ह"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"शुक्ल पक्षातील कलेकलेने कमी होणार्‍या चंद्रकोरीचे चिन्ह"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"चंद्रकोर"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"अमावस्येच्या चंद्राचा चेहरा"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"चतुर्थीच्या चंद्राचा चेहरा"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"अष्टमीच्या चंद्राचा चेहरा"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"पौर्णिमेच्या चंद्राचा चेहरा"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"सूर्याचा चेहरा"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"चमकणारा तारा"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"उल्का"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"छोटा अक्रोड"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"रोप"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"सदाहरित वृक्ष"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"पानझडी वृक्ष"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"ताडवृक्ष"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"निवडुंग"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"टुलिप"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"चेरी ब्लॉसम"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"गुलाब"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"जास्वंद"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"सूर्यफुल"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"फुलोरा"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"मक्याचे कणीस"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"तांदुळाची ओंबी"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"वनस्पती"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"चार पानांची मेथी"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"मेपल पान"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"पडलेले पान"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"वार्‍यात फडफडणारे पान"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"भूछत्र"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"टोमॅटो"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"वांगे"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"द्राक्षे"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"खरबूज"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"टरबूज"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"संत्रे"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"लिंबू"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"केळे"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"अननस"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"लाल सफरचंद"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"हिरवे सफरचंद"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"नास्पति"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"पीच नावाचे फळ"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"चेरी"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"स्ट्रॉबेरी"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"हॅमबर्गर"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"पिझ्झा ची चकती"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"हाडावरील मटण"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"कोंबडीचा पाय"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"तांदुळाचे पापड"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"तांदुळाचा बॉल"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"शिजवलेला भात"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"आमटी आणि भात"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"वाफवलेला वाडगा"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"शेवया"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"ब्रेड"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"चिप्स"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"भाजलेले रताळे"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"डँगो"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"ओडेन"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"जपानी जेवण"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"तळलेली कोळंबी"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"भोवर्‍याच्या डिझाइनसह माश्याचा केक"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"नरम आईस्क्रीम"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"किसलेला बर्फ"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"आईस्क्रीम"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"डोनट"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"बिस्किट"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"चॉकलेट बार"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"कँडी"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"लॉलिपॉप"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"कस्टर्ड"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"मधाचे भांडे"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"कुरकुरित केक"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"बेंटो बॉक्स"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"अन्न ठेवायचे भांडे"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"स्वयंपाक"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"काटा आणि सुरी"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"कान नसलेला चहाचा कप"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"साकी बाटली आणि कप"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"दारुचा ग्लास"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"कॉकटेल ग्लास"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"उष्ण पेय"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"बीयरचा मग"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"बीयर मग वाजविणे"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"बाळाला दूध देण्याची बाटली"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"फीत"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"आच्छादलेली भेटवस्तू"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"वाढदिवसाचा केक"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"जॅक-ओ-कंदील"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"ख्रिसमस ट्री"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"धर्मगुरू ख्रिसमस"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"आतषबाजी"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"आतषबाजीची फुलबाजी"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"फुगा"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"पार्टी पॉपर"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"उधळलेले रंगीत बॉल"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"टानाबाटा झाड"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"काटकोनातील ध्वज"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"देवदार वृक्ष सजावट"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"जपानी बाहुल्या"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"कार्प पताका"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"वार्‍याचा आवाज"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"चंद्र दर्शन समारंभ"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"शाळेचे दप्तर"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"पदवीदान समारंभाची टोपी"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"फिरता पट्टा घोडा"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"आकाशपाळणा"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"रोलर कोस्टर"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"मासे पकडण्याची काठी आणि मासा"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"माइक्रोफोन"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"चित्रपट कॅमेरा"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"सिनेमा"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"हेडफोन"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"कलाकाराची रंगपेटी"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"टोप"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"सर्कसचा तंबू"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"तिकीट"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"फटमार फलक"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"कला सादर करणे"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"व्हिडिओ गेम"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"थेट मारणे"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"स्लॉट मशीन"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"बिलियर्ड्स"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"खेळाचा फासा"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"बॉलिंग"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"फुल असलेले खेळण्यातील पत्ते"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"संगीतिक स्वर"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"एकाधिक संगीतिक स्वर"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"सॅक्सोफोन"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"गिटार"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"संगीतिक कीबोर्ड"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"ट्रम्पेट"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"व्हायोलिन"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"संगीतिय लिपी"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"चौकट असलेला धावण्याचा शर्ट"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"टेनिस रॅकेट आणि बॉल"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"स्की आणि स्की बूट"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"बास्केटबॉल आणि कडे"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"चौकडीचा ध्वज"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"स्नोबोर्डर"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"धावपटू"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"सर्फर"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"करंडक"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"अश्व शर्यत"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"अमेरिकन फुटबॉल"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"रग्बी फुटबॉल"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"जलतरणपटू"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"घराची इमारत"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"बगीचासह घर"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"कार्यालयाची इमारत"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"जपानी पोस्ट ऑफिस"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"युरोपियन पोस्ट ऑफिस"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"रुग्णालय"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"बँक"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"स्वयंचलित गणक यंत्र"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"हॉटेल"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"प्रेमाचे हॉटेल"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"सोयीस्कर स्टोअर"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"शाळा"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"एकछत्री वस्तुभांडार"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"कारखाना"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"इझाकाया कंदील"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"जपानी किल्ला"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"युरोपियन किल्ला"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"घूस"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"उंदीर"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"बैल"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"पाण्यातील म्हैस"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"गाय"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"चित्ता"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"ससा"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"मांजर"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"ड्रॅगन"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"मगर"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"व्हेल"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"गोगलगाय"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"साप"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"घोडा"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"राम"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"बकरा"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"मेंढी"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"माकड"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"पाळीव कोंबडा"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"कोंबडी"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"कुत्रा"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"डुक्कर"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"रानडुक्कर"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"हत्ती"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"ऑक्टोपस"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"वळणदार शिंपला"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"ढेकुण"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"मुंगी"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"मधमाशी"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"लेडी बीटल"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"मासा"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"उष्णकटिबंधीय मासा"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"ब्लोफिश"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"कासव"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"अंड्यातून बाहेर आलेले कोंबडीचे पिल्लू"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"कोंबडीचे छोटे पिल्लू"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"समोरच्या-चेहर्‍याचे कोंबडीचे पिल्लू"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"पक्षी"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"पेंग्विन"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"कोलाला"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"केसाळ कुत्रा"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"गतिमान उंट"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"दोन पाठींचा उंट"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"डॉल्फिन"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"उंदराचे तोंड"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"गाईचे तोंड"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"वाघाचा चेहरा"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"सशाचा चेहरा"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"मांजरीचा चेहरा"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"ड्रॅगनचा चेहरा"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"फवारा सोडणारा व्हेल"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"घोड्याचा चेहरा"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"माकडाचा चेहरा"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"कुत्र्याचा चेहरा"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"डुकराचा चेहरा"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"बेडकाचा चेहरा"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"घुशीसारख्या प्राण्याचा चेहरा"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"लांडग्याचा चेहरा"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"अस्वलाचा चेहरा"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"पांडा चा चेहरा"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"डुकराचे नाक"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"पंजाचे ठसे"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"डोळे"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"कान"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"नाक"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"तोंड"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"जीभ"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"उलट्या हाताने स्पष्ट वर निर्देशित करणारी तर्जनी"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"उलट्या हाताने स्पष्ट खाली निर्देशित करणारी तर्जनी"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"उलट्या हाताने स्पष्ट डावीकडे निर्देशित करणारी तर्जनी"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"उलट्या हाताने स्पष्ट उजवीकडे निर्देशित करणारी तर्जनी"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"मूठ आवळलेल्या हाताचे चिन्ह"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"हलविणार्‍या हाताचे चिन्ह"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"ठीक आहे हाताचे चिन्ह"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"हाताचा अंगठा वर केलेले चिन्ह"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"हाताचा अंगठा खाली केलेले चिन्ह"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"टाळ्या वाजविणार्‍या हातांचे चिन्ह"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"मोकळ्या हातांचे चिन्ह"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"मुकुट"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"महिलेचा टोप"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"चष्मा"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"गळ्याचा टाय"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"टी-शर्ट"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"जीन्स"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"परिधान"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"सैल अंगरखा"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"बिकिनी"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"महिलांचे कपडे"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"पर्स"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"हँडबॅग"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"पाउच"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"पुरुषाचा बूट"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"खेळाडूचा बूट"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"उंच टाचेचा बूट"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"महिलांचा सँडल"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"महिलेचे बूट"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"पायाचे ठसे"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"काळ्या छायाकृती मधील अर्धपुतळा"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"काळ्या छायाकृतीमधील अर्धपुतळे"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"मुलगा"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"मुलगा"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"माणूस"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"महिला"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"कुटुंब"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"हातात हात घेतलेला माणूस आणि स्त्री"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"हातात हात घेतलेली दोन माणसे"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"हातात हात घेतलेल्या दोन स्त्रीया"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"पोलिस अधिकारी"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"सशासारखे कान असलेली स्त्री"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"पदर घेतलेली वधू"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"भुर्‍या केसांची व्यक्ती"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"गुआ पी माओ सह माणूस"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"पगडी घातलेला माणूस"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"वयस्कर माणूस"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"वयस्कर स्त्री"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"तान्हे मूल"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"बांधकाम कर्मचारी"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"राजकुमारी"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"जपानी दानव"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"जपानी पिशाच्च"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"भूत"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"तान्हा देवदूत"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"पृथ्वीबाह्य परकीय"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"परकीय राक्षस"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"खोडकर मुलगा"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"कवटी"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"महत्त्वाच्या डेस्कवरील व्यक्ती"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"खाजगी तैनातीतील सैनिक"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"नर्तक"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"लिप्स्टिक"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"नेल पॉलिश"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"चेहर्‍याचे मालिश"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"केस कापण्याची पद्धत"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"बार्बर पोल"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"सिरिंज"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"गोळी"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"चुंबन चिन्ह"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"प्रेम पत्र"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"अंगठी"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"मौल्यवान खडा"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"चुंबन"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"पुष्पगुच्छ"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"हृदयासह जोडपे"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"विवाहसोहळा"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"धडधडणारे हृदय"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"तुटलेले हृदय"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"दोन हृदये"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"चमकदार हृदय"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"वृद्धिंगत होणारे हृदय"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"बाणासह हृदय"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"निळे हृदय"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"हिरवे हृदय"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"पिवळे हृदय"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"जांभळे हृदय"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"फीत असलेले हृदय"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"परिभ्रमी हृदये"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"हृदयाची सजावट"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"आतमध्ये बिंदू असलेला हिर्‍याचा आकार"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"इलेक्ट्रिक लाइट बल्ब"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"रागाचे चिन्ह"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"बॉम्ब"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"झोपल्याचे चिन्ह"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"आघात चिन्ह"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"पाणी उडालेल्या घामाचे चिन्ह"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"लहान थेंब"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"डॅश चिन्ह"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"शी चा ढीग"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"आकुंचित बेटकुळ्या"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"चक्कर आल्याचे चिन्ह"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"भाषणाचा फुगा"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"विचाराचा फुगा"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"पांढरे फुल"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"शंभर गुणांचे चिन्ह"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"पैशांची पिशवी"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"चलन विनिमय"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"ठळक डॉलरचे चिन्ह"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"क्रेडिट कार्ड"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"येन चिन्ह असलेली बँकनोट"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"डॉलर चिन्ह असलेली बँकनोट"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"युरो चिन्ह असलेली बँकनोट"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"पाऊंड चिन्ह असलेली बँकनोट"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"पंखांसह पैसे"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"वरच्या दिशेसह आणि येन चिन्हासह चार्ट"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"आसन"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"वैयक्तिक संगणक"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"ब्रीफकेस"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"छोटीडिस्क"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"फ्लॉपी डिस्क"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"ऑप्टिकल डिस्क"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"डीव्हिडी"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"फाईल फोल्डर"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"उघडे फाइल फोल्डर"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"वाकवलेले पृष्ठ"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"वर अभिमुख पृष्ठ"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"कॅलेंडर"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"कॅलेंडर फाडणे"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"पत्ररूप निर्देशसूची"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"वरच्या दिशेने जाणारा चार्ट"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"खालच्या दिशेने जाणारा चार्ट"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"बार चार्ट"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"क्लिपबोर्ड"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"पुशपिन"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"गोल पुशपिन"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"पेपरक्लिप"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"सरळ मोजपट्टी"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"त्रिकोणी मोजपट्टी"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"बुकमार्क टॅब"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"लेजर"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"नोटबुक"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"नक्षीदार कव्हरसह नोटबुक"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"बंद पुस्तक"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"उघडे पुस्तक"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"हिरवे पुस्तक"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"निळे पुस्तक"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"केशरी पुस्तक"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"पुस्तके"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"नावाचा बॅज"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"स्क्रोल करा"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"मेमो"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"टेलिफोन रीसीव्हर"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"पेजर"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"फॅक्स मशीन"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"उपग्रह अँटेना"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"सार्वजनिक अभिभाषण ध्वनिक्षेपक"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"चीअरिंग मेगाफोन"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"आउटबॉक्स ट्रे"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"इनबॉक्स ट्रे"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"पॅकेज"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"ई-मेल चिन्ह"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"येणारा लिफाफा"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"वर असलेला खालच्या दिशेने जाणारा बाण असलेला लिफाफा"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"अनुदात्त ध्वजासह बंद मेलबॉक्स"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"उन्नत ध्वजासह बंद मेलबॉक्स"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"उन्नत ध्वजासह उघडा मेलबॉक्स"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"अनुदात्त ध्वजासह उघडे मेलबॉक्स"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"पोस्टबॉक्स"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"पोस्टल हॉर्न"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"वर्तमानपत्र"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"मोबाईल फोन"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"डावीकडे उजवीकडे जाणार्‍या बाणासह मोबाईल फोन"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"कंपन मोड"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"मोबाईल फोन बंद"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"मोबाईल फोन नाहीत"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"बार सह अँटेना"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"कॅमेरा"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"व्हिडिओ कॅमेरा"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"टेलीव्हिजन"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"रेडिओ"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"व्हिडिओकॅसेट"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"वाकडेतिकडे उजवीकडे बाण"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"घड्याळाच्या दिशेने उजवीकडे आणि डावीकडे उघडे मंडळ बाण"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"एका वलयांकित आच्छादनासह घड्याळाच्या दिशेने उजवीकडे आणि डावीकडे उघडे मंडळ बाण"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"घड्याळाच्या दिशेने खाली आणि वर उघडे मंडळ बाण"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"घड्याळाच्या विरुद्ध दिशेने खाली आणि वर उघडे मंडळ बाण"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"कमी चमक चिन्ह"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"प्रखर चमक चिन्ह"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"रद्द करण्याच्या स्ट्रोकसह स्पीकर"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"स्पीकर"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"एका ध्वनी लहरीसह स्पीकर"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"तीन ध्वनी लहरींसह स्पीकर"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"बॅटरी"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"इलेक्ट्रिक प्लग"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"डाव्या-दिशेने निर्देशित करणारा भिंगकाच"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"उजव्या-दिशेने निर्देशित करणारा भिंगकाच"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"शाईच्या पेनसह कुलुप"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"किल्लीसह बंद कुलुप"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"किल्ली"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"कुलुप"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"उघडे कुलुप"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"घंटा"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"रद्द करण्याच्या स्ट्रोकसह घंटा"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"बुकमार्क"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"साखळी चिन्ह"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"रेडिओ बटण"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"वर असलेल्या डावीकडील बाणासह परत"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"वर असलेल्या डावीकडील बाणासह समाप्त"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"वर असलेल्या उजवीकडील बाणासह उदगार चिन्हासह चालू"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"वर असलेल्या उजवीकडील बाणासह लवकर"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"वर असलेल्या वरच्या बाणासह वर"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"अठरा वर्षाखालील कोणीही नाही चिन्ह"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"कीकॅप दहा"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"लॅटिन कॅपिटल अक्षरांसाठी इनपुट चिन्ह"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"लॅटिन लहान अक्षरांसाठी इनपुट चिन्ह"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"संख्यांसाठी लॅटिन चिन्ह"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"चिन्हांसाठी इनपुट चिन्ह"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"लॅटिन अक्षरांसाठी इनपुट चिन्ह"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"आग"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"इलेक्ट्रिक टॉर्च"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"पाना"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"हातोडी"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"नट आणि बोल्ट"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"होचो"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"पिस्तुल"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"सूक्ष्मदर्शक"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"टेलिस्कोप"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"स्फटिकाचा चेंडू"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"मध्यबिंदूसह सहा बिंदूंचा तारा"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"नवशिक्या साठी जपानी चिन्ह"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"त्रिशूळ चिन्ह"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"काळे चौरस बटण"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"पांढरे चौरस बटण"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"मोठे लाल मंडळ"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"मोठे निळे मंडळ"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"मोठा केशरी हिरा"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"मोठा निळा हिरा"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"लहान केशरी हिरा"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"लहान निळा हिरा"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"वरच्या-दिशेने निर्देशित करणारा लाल त्रिकोण"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"खाली-निर्देशित करणारा लाल त्रिकोण"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"वरच्या-दिशेने निर्देशित करणारा लहान लाल त्रिकोण"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"खाली-निर्देशित करणारे लहान लाल त्रिशूळ"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"घड्याळात एक वाजलेला दिसणे"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"घड्याळात दोन वाजलेले दिसणे"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"घड्याळात तीन वाजलेले दिसणे"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"घड्याळात चार वाजलेले दिसणे"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"घड्याळात पाच वाजलेले दिसणे"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"घड्याळात सहा वाजलेले दिसणे"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"घड्याळात सात वाजलेले दिसणे"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"घड्याळात आठ वाजलेले दिसणे"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"घड्याळात नऊ वाजलेले दिसणे"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"घड्याळात दहा वाजलेले दिसणे"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"घड्याळात अकरा वाजलेले दिसणे"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"घड्याळात बारा वाजलेले दिसणे"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"घड्याळात दीड वाजलेले दिसणे"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"घड्याळात अडीच वाजलेले दिसणे"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"घड्याळात साडेतीन वाजलेले दिसणे"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"घड्याळात साडेचार वाजलेले दिसणे"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"घड्याळात साडेपाच वाजलेले दिसणे"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"घड्याळात साडेसहा वाजलेले दिसणे"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"घड्याळात साडेसात वाजलेले दिसणे"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"घड्याळात साडेआठ वाजलेले दिसणे"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"घड्याळात साडेनऊ वाजलेले दिसणे"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"घड्याळात साडेदहा वाजलेले दिसणे"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"घड्याळात साडेअकरा वाजलेले दिसणे"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"घड्याळात साडेबारा वाजलेले दिसणे"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"माउंट फुजी"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"टोकियो टॉवर"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"लिबर्टीचा पुतळा"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"जपानची काळी छायाकृती"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"मोयाई"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"उपहासाने हसणारा चेहरा"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"हसर्‍या डोळ्यांसह दात काढून हसणारा चेहरा"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"आनंदाश्रुंसह चेहरा"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"उघड्या तोंडाचा हसणारा चेहरा"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"उघड्या तोंडाचा आणि हसणार्‍या डोळ्यांचा हसणारा चेहरा"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"उघड्या तोंडाचा आणि थंड घामाचा हसणारा चेहरा"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"उघड्या तोंडाचा हसरा चेहरा आणि घट्टपणे मिटलेले डोळे"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"तेजोवलयासह हसणारा चेहरा"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"शिंगांसह हसणारा चेहरा"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"डोळे मारणारा चेहरा"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"हसणार्‍या डोळ्यांसह हसणारा चेहरा"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"चवदार पदार्थाचा स्वाद घेणारा चेहरा"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"चिंतामुक्त चेहरा"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"हृदयाच्या आकारातील डोळ्यांसह हसणारा चेहरा"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"उन्हाच्या चष्म्यासह हसणारा चेहरा"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"कपटहास्याचा चेहरा"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"तटस्थ चेहरा"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"निर्विकार चेहरा"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"कंटाळवाणा चेहरा"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"थंड घामासह चेहरा"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"चिंतामग्न चेहरा"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"गोंधळलेला चेहरा"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"गोंधळलेला चेहरा"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"चुंबन घेणारा चेहरा"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"चुंबन फेकणारा चेहरा"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"हसर्‍या डोळ्यांनी चुंबन घेणारा चेहरा"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"बंद डोळ्यांनी चुंबन घेणारा चेहरा"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"जीभ बाहेर काढणारा चेहरा"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"जीभ बाहेर काढणारा आणि डोळा मारणारा चेहरा"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"जीभ बाहेर काढणारा आणि डोळे घट्ट मिटलेला चेहरा"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"निराश चेहरा"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"काळजीत पडलेला चेहरा"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"रागावलेला चेहरा"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"चंबूभाव असलेला चेहरा"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"रडणारा चेहरा"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"पिच्छा न सोडणारा चेहरा"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"विजयी मुद्रेतील चेहरा"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"निराश परंतु चिंतामुक्त चेहरा"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"उघड्या तोंडासह कपाळावर आठ्या पडलेला चेहरा"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"काळजीत पडलेला चेहरा"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"भीतीदायक चेहरा"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"खूप थकलेला चेहरा"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"झोपाळलेला चेहरा"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"थकलेला चेहरा"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"वाकुल्या दाखविणारा चेहरा"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"मोठ्याने रडणारा चेहरा"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"उघड्या तोंडाचा चेहरा"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"स्तब्ध चेहरा"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"उघड्या तोंडाचा आणि थंड घामाचा चेहरा"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"भीतीने आरोळी मारणारा चेहरा"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"आश्चर्यचकित चेहरा"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"लाली आलेला चेहरा"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"झोपलेला चेहरा"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"चक्कर आलेला चेहरा"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"तोंडाशिवाय चेहरा"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"मेडिकल मास्कसह चेहरा"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"हसणार्‍या डोळ्यांसह दात काढून हसणार्‍या मांजरीचा चेहरा"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"आनंदाश्रुंसह मांजरीचा चेहरा"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"उघड्या तोंडासह हसणार्‍या मांजरीचा चेहरा"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"हृदयाच्या आकारातील डोळ्यांसह हसणार्‍या मांजरीचा चेहरा"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"व्यंगपूर्ण हास्यासह मांजरीचा चेहरा"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"बंद डोळ्यांनी चुंबन घेणार्‍या मांजरीचा चेहरा"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"चंबूभाव असलेल्या चेहर्‍याचे मांजर"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"रडणार्‍या मांजरीचा चेहरा"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"खूप थकलेल्या मांजरीचा चेहरा"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"चांगले हावभाव नसलेला चेहरा"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"ठीक हावभाव असलेला चेहरा"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"पूर्णपणे नतमस्तक होणारी व्यक्ती"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"वाईट-पाहू-नका म्हणणारे माकड"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"वाईट-ऐकू-नका म्हणणारे माकड"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"वाईट-बोलू-नका म्हणणारे माकड"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"एक हात वर करणारी आनंदी व्यक्ती"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"आनंदोत्सवात दोन्ही हात वर करणारी व्यक्ती"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"संतापलेली व्यक्ती"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"चंबूभाव असलेल्या चेहर्‍याची व्यक्ती"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"दुमडलेल्या हातांची व्यक्ती"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"रॉकेट"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"हेलिकॉप्टर"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"वाफेवर चालणारे आगगाडीचे इंजिन"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"रेल्वे कार"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"उच्च-गती ट्रेन"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"बंदुकीचे नाक असलेली उच्च-गती ट्रेन"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"ट्रेन"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"मेट्रो"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"लाइट रेल"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"स्टेशन"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"ट्राम"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"ट्राम कार"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"बस"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"आपल्या दिशेने येणारी बस"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"ट्रॉलीबस"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"बस स्टॉप"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"मिनिबस"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"रुग्णवाहिका"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"आगीचा बंब"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"पोलिस कार"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"आपल्या दिशेने येणारी पोलिस कार"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"टॅक्सी"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"आपल्या दिशेने येणारी टॅक्सी"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"मोटार"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"आपल्या दिशेने येणारी मोटार"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"मनोरंजन वाहन"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"वितरण ट्रक"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"ट्रेलर ट्रक"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"ट्रॅक्टर"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"मोनोरेल"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"पर्वतावरील रेल्वे"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"झुलती रेल्वे"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"पर्वतीय रज्जुमार्ग"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"एरियल ट्रामवे"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"जहाज"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"वल्हवण्याची नाव"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"वेगवान नाव"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"क्षैतिज रहदारी लाइट"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"अनुलंब रहदारी लाइट"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"बांधकाम चिन्ह"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"पोलिस कारचा परिभ्रमी लाइट"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"पोस्टवरील त्रिकोणी ध्वज"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"दरवाजा"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"प्रवेश बंद चिन्ह"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"धुम्रपान चिन्ह"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"धुम्रपान करू नका चिन्ह"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"कचरा त्याच्या जागेवरच टाकण्याचे चिन्ह"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"कचरा टाकू नका चिन्ह"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"पिण्यास योग्य पाणी चिन्ह"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"पिण्यास योग्य नसलेले पाणी चिन्ह"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"सायकल"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"सायकली नाहीत"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"सायकलस्वार"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"पर्वतावरील सायकलस्वार"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"पादचारी"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"पादचार्‍यांसाठी नाही"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"मुले ओलांडत आहेत"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"माणसे चिन्ह"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"स्त्रीया चिन्ह"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"शौचालय"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"तान्ह्या मुलाचे चिन्ह"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"शौचालय"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"शौचघर"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"शॉवर"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"आंघोळ"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"आंघोळीचा टब"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"पारपत्र नियंत्रण"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"जकातखाते"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"सामानाचा दावा"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"सोडलेले सामान"</string>
+</resources>
diff --git a/java/res/values-mr-rIN/strings-talkback-descriptions.xml b/java/res/values-mr-rIN/strings-talkback-descriptions.xml
index 41c64f4..c2ac29d 100644
--- a/java/res/values-mr-rIN/strings-talkback-descriptions.xml
+++ b/java/res/values-mr-rIN/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"मजकूर प्रविष्ट केला नाही"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> ला <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> मध्ये सुधारणा करते"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> स्वयं-सुधारणा करते"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"कोणतीही सूचना नाही"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"अज्ञात वर्ण"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"अधिक चिन्‍हे"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"कॅपिटल आय, वर बिंदू"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"अज्ञात प्रतीक"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"अज्ञात इमोजी"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"कंटाळलेला चेहरा"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"गोरामोरा झालेला चेहरा"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"उन्हाचा चष्मा घातलेला चेहरा"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"आश्चर्यचकित झालेला चेहरा"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"चुंबन घेणारा चेहरा"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"अत्यंत संतापलेला चेहरा"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"वैकल्पिक वर्ण उपलब्ध आहेत"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"वैकल्पिक वर्ण डिसमिस केलेले आहेत"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"वैकल्पिक सूचना उपलब्ध आहेत"</string>
diff --git a/java/res/values-mr-rIN/strings.xml b/java/res/values-mr-rIN/strings.xml
index 3ef3cf2..77110d1 100644
--- a/java/res/values-mr-rIN/strings.xml
+++ b/java/res/values-mr-rIN/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"कीप्रेस करताना होणारे कंपन"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"कीप्रेस करताना होणारा ध्वनी"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"कीप्रेस करताना पॉपअप"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"प्राधान्ये"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"खाती आणि गोपनीयता"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"स्वरूप आणि लेआउट"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"जेश्चर टायपिंग"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"मजकूर दुरुस्ती"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"प्रगत"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"थीम"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"विभाजित कीबोर्ड सक्षम करा"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google कीबोर्ड संकालन"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"संकालन चालू केले आहे"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"डिव्‍हाइसेस वरून आपला वैयक्तिक शब्दकोश संकालित करा"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"आता संकालन करा"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"मेघ डेटा हटवा"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Google वरून आपला संकालित केलेला डेटा हटविते"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"आपला संकालित केलेला डेटा मेघवरून हटविला जाईल. आपल्‍याला खात्री आहे?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"हटवा"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"रद्द करा"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"आपली वैयक्तिक निर्देशिका Google सर्व्हरवर संकालित केली जाईल आणि बॅकअप घेतला जाईल. आमचे उत्पादन सुधारित करण्यात मदत करण्यासाठी शब्दाच्या वारंवारतेची आकडेवारी माहिती गोळा केली जाऊ शकते. सर्व माहितीचे संकलन आणि वापर "<a href="https://www.google.com/policies/privacy">"Google चे गोपनीयता धोरण"</a>" शी सुसंगत असेल."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"या डिव्हाइसमध्ये हे वैशिष्ट्य सक्षम करण्यासाठी कृपया एक Google खाते जोडा"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"अन्य इनपुट पद्धतींवर स्विच करा"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"भाषा स्विच की अन्य इनपुट पद्धती देखील समाविष्ट करते"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"भाषा स्विच की"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"एकाधिक इनपुट भाषा सक्षम केलेल्या असताना दर्शवा"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"स्लाइड दर्शक दर्शवा"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Shift किंवा Symbol की वरून स्लाइड करताना व्हिज्युअल सूचक प्रदर्शित करा"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"की पॉपअप विलंब डिसमिस करते"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"विलंब नाही"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"डीफॉल्ट"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"मु्ख्य शब्दकोश"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"सुधारणा सूचना दर्शवा"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"टाइप करताना सुचविलेले शब्द प्रदर्शित करा"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"नेहमी दर्शवा"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"पोर्ट्रेट मोडमध्ये दर्शवा"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"नेहमी लपवा"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"आक्षेपार्ह शब्द अवरोधित करा"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"संभाव्य आक्षेपार्ह शब्द सुचवू नका"</string>
     <string name="auto_correction" msgid="7630720885194996950">"स्‍वयं-सुधारणा"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"व्हॉइस इनपुट की"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"व्हॉइस इनपुट पद्धती सक्षम केल्या नाहीत. भाषा आणि इनपुट सेटिंग्ज तपासा."</string>
     <string name="configure_input_method" msgid="373356270290742459">"इनपुट पद्धती कॉन्फिगर करा"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"इनपुट भाषा"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"अभिप्राय पाठवा"</string>
-    <string name="select_language" msgid="3693815588777926848">"इनपुट भाषा"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"भाषा"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"मदत आणि अभिप्राय"</string>
+    <string name="select_language" msgid="5709487854987078367">"भाषा"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"जतन करण्यासाठी पुन्हा स्पर्श करा"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"जतन करण्यासाठी येथे स्पर्श करा"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"शब्दकोश उपलब्ध"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"कीबोर्ड थीम"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"खाती स्विच करा"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"कोणतीही खाती निवडली नाहीत"</string>
+    <string name="account_selected" msgid="2846876462199625974">"सध्‍या <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g> चा वापर करीत आहे"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"ठीक आहे"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"रद्द करा"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"साइन आउट करा"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"वापरण्‍यासाठी एक खाते निवडा"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"इंग्रजी (यूके)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"इंग्रजी (यूएस)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"स्पॅनिश (यूएस)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"हिंग्लिश"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"सर्बियन (लॅटिन)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"इंग्रजी (यूके) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"इंग्रजी (यूएस) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"स्पॅनिश (यूएस) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"हिंग्लिश (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"सर्बियन (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (पारंपारिक)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (सिरिलिक)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (लॅटिन)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (संक्षिप्त)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"भाषा नाही (वर्णमाला)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"वर्णमाला (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"वर्णमाला (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"वर्णमाला (कोलमॅक)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"वर्णमाला (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"इमोजी"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"कीबोर्ड थीम"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"सानुकूल इनपुट शैली"</string>
     <string name="add_style" msgid="6163126614514489951">"शैली जोडा"</string>
     <string name="add" msgid="8299699805688017798">"जोडा"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"सक्षम करा"</string>
     <string name="not_now" msgid="6172462888202790482">"आता नाही"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"समान इनपुट शैली आधीपासूनच अस्तित्वात आहे: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"की जास्त दाबण्यात विलंब"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"कीप्रेस कंपन कालावधी"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"कीप्रेस ध्वनी तीव्रता"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"बाह्य शब्दकोश फाईल वाचा"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"डाउनलोड फोल्डरमध्ये शब्दकोश फायली नाहीत"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"स्थापित करण्यासाठी शब्दकोश फाईल निवडा"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> साठी ही फाईल खरोखर स्थापित करायची?"</string>
-    <string name="error" msgid="8940763624668513648">"एक त्रुटी आली"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"की जास्त दाबण्यात विलंब"</string>
     <string name="button_default" msgid="3988017840431881491">"डीफॉल्ट"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> वर स्वागत आहे"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"जेश्चर टायपिंग करून"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"आता आपण <xliff:g id="APPLICATION_NAME">%s</xliff:g> सह आपल्या सर्व आवडत्या अॅप्समध्ये टाइप करू शकता."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"अतिरिक्त भाषा कॉन्फिगर करा"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"समाप्त"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"अॅप चिन्ह दर्शवा"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"लाँचर मध्ये अनुप्रयोग चिन्ह प्रदर्शित करा"</string>
     <string name="app_name" msgid="6320102637491234792">"शब्दकोश प्रदाता"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"शब्दकोश प्रदाता"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"शब्दकोश सेवा"</string>
@@ -181,9 +178,9 @@
     <string name="install_dict" msgid="180852772562189365">"स्‍थापित करा"</string>
     <string name="cancel_download_dict" msgid="7843340278507019303">"रद्द करा"</string>
     <string name="delete_dict" msgid="756853268088330054">"हटवा"</string>
-    <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"आपल्या मोबाईल डिव्हाइसवर निवडलेल्या भाषेमध्ये शब्दकोश उपलब्ध आहे.&lt;br/&gt; आम्ही आपला टायपिंग अनुभव सुधारण्यासाठी <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> शब्दकोश &lt;b&gt;डाउनलोड करण्याची&lt;/b&gt; शिफारस करतो.&lt;br/&gt; &lt;br/&gt; डाउनलोड कऱण्यास 3G वर एक किंवा दोन मिनिट लागू शकतात. आपल्याकडे &lt;b&gt;अमर्यादित डेटा योजना&lt;/b&gt; नसल्यास शुल्क लागू शकते. आपल्याकडे असलेल्या डेटा योजनेबद्दल आपण सुनिश्चित नसल्यास, डाउनलोड स्वयंचलितपणे प्रारंभ करण्यासाठी Wi-Fi कनेक्शन शोधण्याची शिफारस आम्ही करतो.&lt;br/&gt; &lt;br/&gt; टीप: आपण आपल्या मोबाईल डिव्हाइसच्या &lt;b&gt;सेटिंग्ज&lt;/b&gt;मेनूमधील &lt;b&gt;भाषा आणि इनपुट&lt;/b&gt; वर जाऊन शब्दकोश डाउनलोड करू आणि काढू शकता."</string>
+    <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"आपल्या मोबाईल डिव्हाइसवर निवडलेल्या भाषेमध्ये शब्दकोश उपलब्ध आहे.&lt;br/&gt; आम्ही आपला टायपिंग अनुभव सुधारण्यासाठी <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> शब्दकोश &lt;b&gt;डाउनलोड करण्याची&lt;/b&gt; शिफारस करतो.&lt;br/&gt; &lt;br/&gt; डाउनलोड कऱण्यास 3G वर एक किंवा दोन मिनिट लागू शकतात. आपल्याकडे &lt;b&gt;अमर्यादित डेटा योजना&lt;/b&gt; नसल्यास शुल्क लागू शकते. आपल्याकडे असलेल्या डेटा योजनेबद्दल आपण सुनिश्चित नसल्यास, डाउनलोड स्वयंचलितपणे प्रारंभ करण्यासाठी वाय-फाय कनेक्शन शोधण्याची शिफारस आम्ही करतो.&lt;br/&gt; &lt;br/&gt; टीप: आपण आपल्या मोबाईल डिव्हाइसच्या &lt;b&gt;सेटिंग्ज&lt;/b&gt;मेनूमधील &lt;b&gt;भाषा आणि इनपुट&lt;/b&gt; वर जाऊन शब्दकोश डाउनलोड करू आणि काढू शकता."</string>
     <string name="download_over_metered" msgid="1643065851159409546">"आता डाउनलोड करा (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>MB)"</string>
-    <string name="do_not_download_over_metered" msgid="2176209579313941583">"Wi-Fi वर डाउनलोड करा"</string>
+    <string name="do_not_download_over_metered" msgid="2176209579313941583">"वाय-फाय वर डाउनलोड करा"</string>
     <string name="dict_available_notification_title" msgid="4583842811218581658">"<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> साठी शब्दकोश उपलब्ध आहे"</string>
     <string name="dict_available_notification_description" msgid="1075194169443163487">"पुनरावलोकन करण्यासाठी आणि डाउनलोड करण्यासाठी दाबा"</string>
     <string name="toast_downloading_suggestions" msgid="6128155879830851739">"डाउनलोड करत आहे: <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> साठी सूचना लवकरच तयार होतील."</string>
diff --git a/java/res/values-ms-rMY/strings-talkback-descriptions.xml b/java/res/values-ms-rMY/strings-talkback-descriptions.xml
index d5ae637..ed4ff0d 100644
--- a/java/res/values-ms-rMY/strings-talkback-descriptions.xml
+++ b/java/res/values-ms-rMY/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Tiada teks dimasukkan"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> membetulkan <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> menjadi <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> melakukan auto pembetulan"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Tiada cadangan"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Aksara yang tidak diketahui"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Lagi simbol"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"I huruf besar, titik di atas"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Simbol yang tidak diketahui"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Emoji yang tidak dikethui"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Muka bosan"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Muka malu"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Muka memakai cermin mata hitam"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Muka terkejut"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Muka bercium"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Muka masam"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Aksara alternatif adalah tersedia"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Aksara alternatif diketepikan"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Cadangan alternatif tersedia"</string>
diff --git a/java/res/values-ms-rMY/strings.xml b/java/res/values-ms-rMY/strings.xml
index 1abe4fc..ac482d1 100644
--- a/java/res/values-ms-rMY/strings.xml
+++ b/java/res/values-ms-rMY/strings.xml
@@ -26,18 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Getar pada tekanan kekunci"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Bunyi pada tekanan kekunci"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Pop timbul pada tekanan kunci"</string>
-    <string name="settings_screen_input" msgid="2808654300248306866">"Pilihan input"</string>
-    <string name="settings_screen_appearances" msgid="3611951947835553700">"Tampilan"</string>
-    <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Pilihan berbilang bahasa"</string>
-    <string name="settings_screen_gesture" msgid="9113437621722871665">"Plhn taipan gerak isyarat"</string>
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Pilihan"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Akaun &amp; Privasi"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Penampilan &amp; Bentangan"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Taipan Gerak Isyarat"</string>
     <string name="settings_screen_correction" msgid="1616818407747682955">"Pembetulan teks"</string>
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Lanjutan"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Dayakan papan kekunci terpisah"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Penyegerakan Papan Kekunci Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Penyegerakan dihidupkan"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Segerakkan kamus peribadi anda merentas peranti"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Segerakkan sekarang"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Padamkan data awan"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Memadam data disegerak anda dari Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Data yang disegerakkan akan dipadamkan daripada awan. Anda pasti?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Padam"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Batal"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Kamus peribadi anda akan disegerakkan dan disandarkan ke pelayan Google. Maklumat statistik kekerapan perkataan mungkin dikumpulkan untuk membantu mempertingkatkan produk kami. Pengumpulan dan penggunaan semua maklumat adalah selaras dengan "<a href="https://www.google.com/policies/privacy">"Dasar Privasi Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Sila tambahkan akaun Google pada peranti ini untuk mendayakan ciri ini"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Tukar ke kaedah input lain"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Kunci pertukaran bahasa meliputi kaedah masukan lain juga"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Kekunci tukar bahasa"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Tunjukkan apabila berbilang bahasa input didayakan"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Tunjukkan penunjuk slaid"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Paparkan petunjuk visual semasa meluncur daripada kekunci Shift atau Simbol"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Pop tmbl knci ketpkn lengah"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Tiada kelewatan"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Lalai"</string>
@@ -56,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Kamus utama"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Tunjukkan cadangan pembetulan"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Paparkan cadangan perkataan semasa menaip"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Sentiasa tunjukkan"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Tunjukkan dalam mod potret"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Sentiasa sembunyikan"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Sekat perkataan yg menyinggung"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Jangan cadangkan perkataan yang boleh menyinggung"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Auto pembetulan"</string>
@@ -79,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Kunci input suara"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Tiada kaedah input suara didayakan. Semak Bahasa &amp; tetapan input."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Konfigurasikan kaedah input"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Bahasa input"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Hantar maklum balas"</string>
-    <string name="select_language" msgid="3693815588777926848">"Bahasa input"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Bahasa"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Bantuan &amp; m/balas"</string>
+    <string name="select_language" msgid="5709487854987078367">"Bahasa"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Sentuh lagi untuk menyimpan"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Sentuh di sini untuk menyimpan"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Kamus tersedia"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Tema papan kekunci"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Beralih akaun"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Tiada akaun dipilih"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Pada masa ini menggunakan <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Batal"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Log keluar"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Pilih akaun untuk digunakan"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Bahasa Inggeris (UK)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Bahasa Inggeris (Australia)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Bahasa Sepanyol (AS)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Bahasa Serbia (Latin)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Bahasa Inggeris (UK) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Bahasa Inggeris (AS) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Bahasa Sepanyol (AS) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Bahasa Serbia (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Tradisional)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Cyril)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Latin)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Sarat)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Tiada bahasa (Abjad)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Abjad (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Abjad (QWERTZ)"</string>
@@ -103,10 +122,6 @@
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Abjad (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
     <string name="keyboard_theme" msgid="4909551808526178852">"Tema papan kekunci"</string>
-    <string name="keyboard_theme_holo_white" msgid="8506588144096428751">"Putih Halo"</string>
-    <string name="keyboard_theme_holo_blue" msgid="192400518003397418">"Biru Halo"</string>
-    <string name="keyboard_theme_material_dark" msgid="2701178578784760596">"Gelap Fizikal"</string>
-    <string name="keyboard_theme_material_light" msgid="3479400901818790331">"Terang Fizikal"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Gaya input peribadi"</string>
     <string name="add_style" msgid="6163126614514489951">"Tambah gaya"</string>
     <string name="add" msgid="8299699805688017798">"Tambah"</string>
@@ -118,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Dayakan"</string>
     <string name="not_now" msgid="6172462888202790482">"Bukan sekarang"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"The same input style already exists: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Kelewatan tekan lama kekunci"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Tempoh getaran tekan kekunci"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Kelantangan bunyi tekan kekunci"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Baca fail kamus luaran"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Tiada fail kamus dalam folder Muat Turun"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Pilih fail kamus untuk dipasang"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Betul-betul pasang fail ini untuk <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Berlaku ralat"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Kelewatan tekan lama kekunci"</string>
     <string name="button_default" msgid="3988017840431881491">"Lalai"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Selamat datang ke <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"dengan Taipan Gerak Isyarat"</string>
@@ -143,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Kini anda boleh menaip dalam semua apl kegemaran anda dengan <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Konfigurasikan bahasa tambahan"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Selesai"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Tunjukkan ikon apl"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Paparkan ikon apl dalam pelancar"</string>
     <string name="app_name" msgid="6320102637491234792">"Pembekal Kamus"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Pembekal Kamus"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Perkhidmatan Kamus"</string>
diff --git a/java/res/values-my-rMM/strings-action-keys.xml b/java/res/values-my-rMM/strings-action-keys.xml
index 888f551..d15c9e5 100644
--- a/java/res/values-my-rMM/strings-action-keys.xml
+++ b/java/res/values-my-rMM/strings-action-keys.xml
@@ -20,19 +20,12 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for label_go_key (4033615332628671065) -->
-    <skip />
-    <!-- no translation found for label_next_key (5586407279258592635) -->
-    <skip />
-    <!-- no translation found for label_previous_key (1421141755779895275) -->
-    <skip />
-    <!-- no translation found for label_done_key (7564866296502630852) -->
-    <skip />
-    <!-- no translation found for label_send_key (482252074224462163) -->
-    <skip />
+    <string name="label_go_key" msgid="4033615332628671065">"သွားပါ"</string>
+    <string name="label_next_key" msgid="5586407279258592635">"ရှေ့ဆက်ရန်"</string>
+    <string name="label_previous_key" msgid="1421141755779895275">"ယခင်က"</string>
+    <string name="label_done_key" msgid="7564866296502630852">"လုပ်ပြီး"</string>
+    <string name="label_send_key" msgid="482252074224462163">"ပို့ရန်"</string>
     <string name="label_search_key" msgid="7965186050435796642">"ရှာဖွေရန်"</string>
-    <!-- no translation found for label_pause_key (2225922926459730642) -->
-    <skip />
-    <!-- no translation found for label_wait_key (5891247853595466039) -->
-    <skip />
+    <string name="label_pause_key" msgid="2225922926459730642">"ဆိုင်းငံ့ရန်"</string>
+    <string name="label_wait_key" msgid="5891247853595466039">"စောင့်ဆိုင်းရန်"</string>
 </resources>
diff --git a/java/res/values-my-rMM/strings-appname.xml b/java/res/values-my-rMM/strings-appname.xml
new file mode 100644
index 0000000..9ab48f4
--- /dev/null
+++ b/java/res/values-my-rMM/strings-appname.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="english_ime_name" msgid="5940510615957428904">"Android ကီးဘုတ် (AOSP)"</string>
+    <string name="spell_checker_service_name" msgid="1254221805440242662">"Android စာလုံးပေါင်း စစ် (AOSP)"</string>
+    <string name="english_ime_settings" msgid="5760361067176802794">"Android ကီးဘုတ်ဆက်တင်များ (AOSP)"</string>
+    <string name="android_spell_checker_settings" msgid="6123949487832861885">"Android စာလုံးပေါင်း စစ်သည့် ဆက်တင်များ (AOSP)"</string>
+</resources>
diff --git a/java/res/values-my-rMM/strings-config-important-notice.xml b/java/res/values-my-rMM/strings-config-important-notice.xml
new file mode 100644
index 0000000..724ff50
--- /dev/null
+++ b/java/res/values-my-rMM/strings-config-important-notice.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="use_personalized_dicts_summary" msgid="590432261305469627">"အကြံပေးမှုတိုးတက်စေရန် သင့်လူမှုအဖွဲ့စည်းမှ သင်ယူကာ အချက်လက်ကို ရိုက်ပါ"</string>
+</resources>
diff --git a/java/res/values-my-rMM/strings-emoji-descriptions.xml b/java/res/values-my-rMM/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..4caf8d5
--- /dev/null
+++ b/java/res/values-my-rMM/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"မူပိုင်ခွင့်အမှတ်"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"မှတ်ပုံတင်သင်္ကေတ"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"နှစ်ထပ် အာမေဍိတ် အမှတ်"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"အာမေဍိတ် မေးခွန်းအမှတ်အသား"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"ကုန်သွယ်မှု အမှတ်အသား"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"သတင်းဌာန"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"ဘယ်ညာမြှား"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"အပေါ်အောက် မြှား"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"အနောက်မြောက်မြှား"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"အရှေ့မြောက်မြှား"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"အရှေ့တောင်မြှား"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"အနောက်တောင် မြှား"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"ဘယ်ဖက်ညွှန်နေသည့် ချိတ်နှင့်မြှား"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"ညာဖက်ညွှန်နေသည့် ချိတ်နှင့်မြှား"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"လက်ပတ်နာရီ"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"သဲနာရီ"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"အမဲရောင် ညာဘက်ညွှန်ပြသော တြိဂံနှစ်ခု"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"အမဲရောင် ဘယ်ဘက်ညွှန်ပြသော တြိဂံနှစ်ခု"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"အမဲရောင် အပေါ်ဘက်ညွှန်ပြသော တြိဂံနှစ်ခု"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"အမဲရောင် အောက်ဘက်ညွှန်ပြသော တြိဂံနှစ်ခု"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"နာရီနှိုးစက်"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"သဲမှုန်များစီးနေသည့် သဲနာရီ"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"စက်ဝိုင်းဝိုင်းထားသည့် လက်တင် m စာလုံးကြီး"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"အမဲရောင် သေးငယ်သည့် စတုရန်း"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"အဖြူရောင်လေးထောင့်ငယ်"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"အမဲရောင် ညာဘက်ညွှန်ပြသော တြိဂံ"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"အမဲရောင် ဘယ်ဘက်သို့ညွှန်ပြသော တြိဂံ"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"အဖြူရောင်လေးထောင့်လတ်"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"အမဲရောင်လေးထောင့်လတ်"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"အဖြူရောင်လေးထောင့်အလတ်ငယ်"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"အမဲရောင် အလယ်လတ်သေးငယ်သည့် လေးထောင့်"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"အလင်းတန်းများနှင့် အမဲရောင်နေ"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"မိုးတိမ်"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"အမဲရောင် တယ်လီဖုန်း"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"အမှန်ခြစ်ပါသည့် လေးထောင့်ကွက်"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"ထီးနှင့် မိုးရေစက်များ"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"အပူ သောက်စရာ"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"အပေါ်ညွှန်ပြသည့် လက်ညိုး"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"အဖြူရောင် ပြုံးနေသည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"မိဿ"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"ပြိဿ"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"မေထုန်"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"ကရကဋ်"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"သိဟ်"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"ကန်"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"တူ"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"ဗြိစ္ဆာ"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"ဓနု"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"မကာရ"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"ကုံ"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"မိန်"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"အမဲရောင် စပိတ်ဖဲ"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"အမဲရောင် ကလပ်ဖဲ"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"အမဲရောင် အသဲနှလုံးဖဲ"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"အမဲရောင် စိန်ပွင့်ဖဲ"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"ပူသည့် နွေရာသီ"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"အမဲရောင် ကမ္ဘာလုံးဆိုင်ရာ ပြန်လည်သုံးစွဲရန် သင်္ကေတ"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"ဘီးတက်ကုလားထိုင် သင်္ကေတ"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"ကျောက်ဆူး"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"သတိပေး သင်္ကေတ"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"ဗို့အားမြင့် သင်္ကေတ"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"အလယ်လတ် အဖြူရောင်စက်ဝိုင်း"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"အမဲရောင် အလယ်လတ် စက်ဝိုင်း"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"ဘောလုံးကန်သည့် ဘောလုံး"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"ဘေ့စ်ဘော"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"နှင်းမရှိသည့် နှင်းလူသား"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"တိမ်နောက်ကွယ်က နေ"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"အိုဖီယူချက်စ်"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"မဝင်ရ"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"ခရစ်ယာန် ဘုရားကျောင်း"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"ဖောင်တိန်"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"အပေါက်ထဲရှိ အလံ"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"ရွက်လှေ"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"တဲ"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"လောင်စာဆီပိုက်"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"အမဲရောင်ကပ်ကြေး"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"ထူထဲသည့် အဖြူရောင် အမှန်ခြစ် အမှတ်အသား"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"လေယာဉ်ပျံ"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"စာအိတ်"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"လက်သီးထောင်"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"လက်မြောက်"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"အောင်မြင်သည့်လက်"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"ခဲတံ"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"အမဲရောင်ထိပ်"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"ထူထဲသည့် အမှန်ခြစ် အမှတ်အသား"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"ထူထဲသည့် အမြောက် အမှတ်အသား"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"မီးပန်း"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"ရှစ်ချောင်းပါ ကြယ်ပွင့်"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"ရှစ်မှတ်ပါသော အမဲရောင်ကြယ်"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"နှင်းပွင့်"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"မီးပန်း"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"ကြက်ခြေခက်အမှတ်အသား"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"ကြက်ခြေခက် စတုရန်းကွက်အား ရွှေ့ရန်"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"အမဲရောင် မေးခွတ်းအမှတ်သား အဆင်တန်ဆာ"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"အဖြူရောင် မေးခွန်းအမှတ်သား အဆင်တန်ဆာ"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"အဖြူရောင် အာမေဍိတ်အမှတ်သား အဆင်တန်ဆာ"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"ထူထဲသည့် အာမေဍိတ်အမှတ်သား သင်္ကေတ"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"လေးလံသည့် အမဲရောင် အသဲနှလုံး"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"ထူထဲသည့် အပေါင်းလက္ခဏာ"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"ထူထဲသည့် အနုတ်လက္ခဏာ"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"ထူထဲသည့် အစားလက္ခဏာ"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"အမဲရောင် ညာဘက်ပြသည့် မြှား"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"မြင်းကွေးအကွင်း"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"မျဉ်းကွေးနှစ်ထပ်"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"ညာဘက်ပြ၍ အပေါ်သို့ကွေးတက်သွားသည့် မြှား"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"ညာဘက်ပြ၍ အောက်သို့ကွေးဆင်းသွားသည့် မြှား"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"ဘယ်ဖက်သို့ညွှန်ပြသော အမဲရောင်မြှား"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"အပေါ်ထောင် အမဲရောင်မြှား"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"အောက်စိုက် အမဲရောင်မြှား"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"အမဲရောင် အတုရန် အကြီး"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"အဖြူရောင် စတုရန်း အကြီး"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"အဖြူရောင် အလယ်လတ်ကြယ်"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"ထူထဲသည့် စက်ဝိုင်းကြီး"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"ကွေးကောက်သည့်"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"အစိတ်ပိုင်း ပြောင်းလဲခြင်း အမှတ်"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"ဝိုင်ထားသည့် စာသင်္ကေတ ဝမ်းသာပါသည်"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"စက်ဝိုင်းဝိုင်းထားသည့် အရုပ်စာ လျှို့ဝှက်ချက်"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"မာကျောင်တုံး နဂါးနီ"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"အမဲရောင်ဂျိုကာ ဖဲကစား"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"သွေးအမျိုးအစား A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"သွေးအမျိုးအစား B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"သွေးအမျိုးအစား O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"ကားရပ်ရန်နေရာ"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"သွေးအမျိုးအစား AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"လေးထောင့်ကွက် CL"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Squared အေး"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"လေးထောင့်ကွက် အခမဲ့"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"Squared အိုင်ဒီ"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"လေးထောင့်ကွက်အသစ်"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Squared N G"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"အိုကေ လေးထောင့်ကွက်"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"Squared SOS"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"လေးထောင့်ကွက် အာမေဍိတ် သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"လေးထောင့်ကွက် vs"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"ဤနေရာတွင် ကသကန လေးထောင့်ကွက်"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"ကသကန လေးထောင့်ကွက် ဝန်ဆောင်မှု"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"အခမဲ့ အရုပ်စာ လေးထောင့်ကွက်"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"ကြိုတင်မှာယူထားသည့် ထိုင်ခုံနေရာ အရုပ်စာ လေးထောင့်ကွက်"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"တားမြစ်ခြင်း အရုပ်စာ လေးထောင့်ကွက်"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"လစ်လပ်နေရာ အရုပ်စာ လေးထောင့်ကွက်"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"လက်ခံခြင်း အရုပ်စာ လေးထောင့်ကွက်"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"အပြည့်အဝလုပ်ဆောင်ခြင်း အရုပ်စာ လေးထောင့်ကွက်"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Squared သင်္ကေတပေးချေပြီး"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"လစဉ် အရုပ်စာ လေးထောင့်ကွက်"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"အပလီကေးရှင်း အရုပ်စာ လေးထောင့်ကွက်"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"လျှော့ဈေး အရုပ်စာ လေးထောင့်ကွက်"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"စီးပွားရေးတွင် အရုပ်စာ လေးထောင့်ကွက်"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"စက်ဝိုင်းအရုပ်စာ အားသာမှု"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"စက်ဝိုင်းအရုပ်စာ လက်ခံ"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"ဆိုင်ကလုန်း"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"မြူဆိုင်း"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"ထီးပိတ်"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"ကြယ်များနှင့်ည"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"တောင်များကြား နေထွက်"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"နေထွက်"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"မှောင်ရီစချိန် မြို့တော်"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"အဆောက်အဦများကြား နေဝင်"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"သက်သန့်"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"ညတံတား"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"ရေလှိုင်း"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"မီးတောင်"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"နဂါးငွေ့တန်း"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"ကမ္ဘာ့စက်ဝန်း ဉရောပ−အာဖရိက"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"အမေရိကန် ကမ္ဘာလုံး"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"ကမ္ဘာ့စက်ဝန်း အာရှ−ဩစတြေးလျား"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"လောင်တီတွတ် လိုင်းများနှင့် ကမ္ဘာလုံး"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"လအသစ် သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"လဆန်းသင်္ကေတ"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"ပထမ လေးခြမ်းလသင်္ကေတ"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"လဆန်း လဝန်းသင်္ကေတ"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"လပြည့် သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"လဆုတ် လဝန်းသင်္ကေတ"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"နောက်ဆုံးအခြမ်း လသင်္ကေတ"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"လဆုတ် လခြမ်းသင်္ကေတ"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"လခြမ်း"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"လအသစ်မျက်နှာ"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"ပထမအခြမ်း လမျက်နှာ"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"နောက်ဆုံးအခြမ်း လမျက်နှာ"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"လပြည့် လမျက်နှာ"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"နေမျက်နှာ"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"စိတ်ဝင်စားဖွယ် ကြယ်"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"ကြယ်ကြွေ"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"သစ်အယ်သီး"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"ကြီးထွားလာသော အပင်ငယ်"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"အမြဲစိမ်းသစ်ပင်"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"ရွက်ပြက်သစ်ပင်"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"အုန်းပင်"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"ရှားစောင်းပင်"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"ခတ္တာ"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"ချယ်ရီပွင့်"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"နှင်းဆီ"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"ခေါင်ရမ်းပန်း"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"နေကြာပန်း"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"ပွင့်လန်း"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"ပြောင်းဖူးစေ့"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"ဆန်ဆေ့"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"ဆေးဘက်ဝင်အပင်"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"လေးပွင့်ဆိုင်အရွက်"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"မေပယ်ရွက်"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"ရွက်ကြွေ"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"လေထဲဝဲနေသည့် အရွက်"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"မှို"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"ခရမ်းချဉ်သီး"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"ခရမ်းသီး"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"စပျစ်သီး"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"ဖရဲသီး"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"ဖရဲသီး"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"ပြားလိမ္မော်"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"သံပုရာ"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"ငှက်ပျောသီး"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"နာနက်"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"အနီရောင် ပန်းသီး"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"အစိမ်းရောင် ပန်းသီး"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"သစ်သော်သီး"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"မက်မွန်"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"ချယ်ရီ"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"စတော်ဘယ်ရီ"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"ဟမ်ဘာဂါ"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"ပီဇာအစိတ်"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"အရိုးများနှင့်အသား"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"ကြက်ခြေထောက်"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"ဆန်လုံးစိကျော်"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"ထမင်းလုံး"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"ချက်ထားသည့်ထမင်း"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"ဟင်းနှင့်ထမင်း"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"ပြုတ်သည့်အိုး"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"အီတာလျံခေါက်ဆွဲ"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"ပေါင်မုန့်"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"အာလူးချောင်းကျော်"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"အာလူးအချိုကင်"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"သာဂူလုံး"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"ဂျပန်ဆောင်းရာသီ အစားစာ"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"ဆူရှီ"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"ပုဇွန်ထုပ်ကျော်"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"ပန်းဒီဇိုင်းနှင့် ငါးကိတ်"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"ရေခဲမုန့်ပျော့"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"ရေခဲခြစ်"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"အိုက်စ်ကရင်မ်"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"ဒိုးနတ်"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"ကွတ်ကီ"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"ချောကလတ်ချောင်း"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"ချိုချဉ်"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"လော်လီပေါ့"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"ကြက်ဉနို့ပေါင်း"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"ပြားရည်အိုး"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"ကိတ်သေး"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"ထမင်းဘူး"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"ဟင်းအိုး"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"ချက်ပြုတ်ခြင်း"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"ခက်ရင်းနှင့်ဓါး"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"လက်ကိုင်မပါသော လဖ္ဘက်ရည်ခွက်"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"အရက်ပုလင်းနှင့် ခွက်"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"ဝိုင်ပုလင်း"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"အရက်ချိုခွက်"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"အရက်ချို"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"ဘီယာခွက်"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"ဘီယာခွက်များတိုက်ခြင်း"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"ကလေးပုလင်း"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"ဖဲကြိုး"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"ထုပ်ပိုးထားသည့် လက်ဆောင်"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Birthday cake"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"ဖယုံသီးအားထွင်းထားသည့် မီးအိမ်"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"ခရစ္စမတ် သစ်ပင်"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"အဖေခရစ္စမတ်"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"မီးရှူးမီးဆိုင်း"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"မီးရှူးမီးဆိုင်းဖောက်တံ"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"မိုးပျံပူဖောင်း"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"ပါတီ ဖောက်တံ"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"ရောင်စုံစက္ကူဘောလုံး"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"သနဘာသပင်"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"ကြက်ခြေခက် အလံများ"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"သစ်တော အလှဆင်ခြင်း"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"ဂျပန်အရုပ်များ"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"ငါးသဏ္ဍာန်လေလွင့် ခြေအိပ်"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"လေတူရိယာ"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"လကြည့်ပွဲ"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"ကျောင်း သားရေလွယ်အိတ်"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"ဘွဲ့ဦးထုပ်"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"မြင်းချားရဟတ်"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"ချားရဟတ်"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"ရိုလာကိုစတာ"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"ငါးမြားတံနှင့် ငါး"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"မိုက်ခရိုဖုန်း"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"ရုပ်ရှင်ကင်မရာ"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"ရုပ်ရှင်"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"နားကြပ်"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"အနုပညာရှင် ဆေးချယ်ဘမ်း"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"ထိပ်ဆုံးဦးထုပ်"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"ဆပ်ကပ်တဲ"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"လက်မှတ်"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"ရုပ်ရှင်ကလက်"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"တင်ဆက်ခြင်း အနုပညာ"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"ဗီဒီယိုဂိမ်း"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"တိုက်ရိုက်ထိချက်"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"အကြွေစေ့ထည့်စက်"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"ဘီလိယပ်"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"ဂိမ်းအံစာတုံး"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"ဘိုးလင်းပစ်ကစားခြင်း"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"ပန်းပွင့်ဖဲချပ်များ"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"တေးဂီတ သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"များပြားသည့် တေးဂီတ သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"ဆက်ဆိုဖုန်း"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"ဂီတာ"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"ဂီတကီးဘုတ်"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"လေမုတ်ခရာ"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"သယော"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"ဂီတနုတ်"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"အပြေးအင်္ကျီနှင့် စလွယ်"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"တင်းနစ် ရက်ကက်နှင့် ဘောလုံး"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"နှင်းလျှောစီးခြင်းနှင့် နှင်းလျှောစီးဘုတ်"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"ဘတ်စကတ်ဘောနှင့် သံပတ်ပြား"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"အကွက်ဆင်အလံ"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"ရေခဲပြင်လျှောစီး"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"အပြေးသမား"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"ရေလှိုင်းစီးသူ"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"ဒိုင်းဆု"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"မြင်းအပြေးပြိုင်"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"အမေရိကန် ဘောလုံး"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"ရက်ဘီဘောလုံး"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"ရေကူးသမား"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"အိမ်အဆောက်အဦး"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"အိမ်နှင့် ပန်းခြံ"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"ရုံးအဆောက်အဦး"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"ဂျပန်စာတိုက်ရုံး"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"ဉရောပစာတိုက်ရုံး"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"ဆေးရုံ"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"ဘဏ်"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"အလိုလျောက်ပြောသည့်စက်"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"ဟော်တယ်"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"အချစ်ဟော်တယ်"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"ကုန်စုံဆိုင်"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"ကျောင်း"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"ကုန်စုံဆိုင်ကြီး"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"စက်ရုံ"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"စက္ကူမီးအိမ်"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"ဂျပန်ရဲတိုက်"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"ဥရောပရဲတိုက်"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"ကြွက်"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"ကြွက်"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"နွားထီး"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"ရေကျွဲ"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"နွား"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"ကျားသစ်"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"ယုံ"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"ကြောင်"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"နဂါး"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"မိကျောင်း"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"ဝေလှငါး"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"ခရု"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"မြွေ"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"မြင်း"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"သိုးထီး"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"ဆိတ်"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"သိုး"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"မျောက်"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"ကြက်ဖ"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"ကြက်မ"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"ခွေး"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"ဝက်"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"ဝက်သိုး"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"ဆင်"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"ရေဘဝဲ"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"ခရုခွံ"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"ကြမ်းပိုး"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"ပုရွက်ဆိပ်"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"ပြား"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"နွားချေးပိုး"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"ငါး"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"အပူပိုင်းဒေသငါး"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"အဆူးငါး"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"လိပ်"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"ကြက်ပေါက်"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"ကြက်ကလေး"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"အရှေ့ဘက်မျက်နှာမူနေသည့် ကြက်ကလေး"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"ငှက်"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"ပင်ဂွင်း"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"ကိုလာဝက်ဝံ"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"အမွေးဆုတ်ဖွားခွေး"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"သစ်ကုလားအုပ်"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"ဘို့နှစ်လုံးရှိသော ကုလားအုတ်"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"ဖျံ"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"ကြွက်မျက်နှာ"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"နွားမျက်နှာ"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"ကျားမျက်နှာ"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"ယုံမျက်နှာ"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"ကြောင်မျက်နှာ"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"နဂါးမျက်နှာ"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"ရေစုတ်ထုတ်နေသည့် ဝေလှငါး"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"မြင်းမျက်နှာ"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"မျောက်မျက်နှာ"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"ခွေးမျက်နှာ"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"ဝက်မျက်နှာ"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"ဖားမျက်နှာ"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"မြီးတိုပါးတွဲကြွက် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"မြေခွေးမျက်နှာ"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"ဝက်ဝံမျက်နှာ"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"ပန်ဒါဝက်ဝံ မျက်နှာ"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"ဝက်နှာခေါင်း"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"ခြေရာများ"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"မျက်လုံးများ"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"နားရွက်"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"နှာခေါင်း"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"ပါးစပ်"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"လျှာ"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"လက်ညိုးအပေါ်သို့ထိုး"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"လက်ညိုးအောက်သို့ထိုး"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"လက်ညိုးဘယ်သို့ထိုး"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"လက်ညိုးညာသို့ထိုး"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"လက်သီးဆုပ်သည့် သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"လက်ဝှေ့ယမ်းသည့် သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"အိုကေလက် သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"လက်မထောင် သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"လက်မ အောက်စိုက် သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"လက်ခုပ်တီးနေသည့်သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"လက်ဖြန့်သည့် သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"သရဖူ"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"အမျိုးသမီးဦးထုပ်"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"မျက်မှန်"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"နက်တိုင်"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"တီရှပ်"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"ဂျင်း"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"ဝတ်ရုံ"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"ကီမိုနို"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"ရေကူးဝတ်စုံ"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"အမျိုးသမီးအဝတ်အထည်များ"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"ပိုက်ဆံအိပ်"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"လက်ကိုင်အိပ်"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"အိတ်သေး"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"အမျိုးသားရှူးဖိနပ်"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"အားကစားရှုးဖိနပ်"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"ဒေါက်မြင့်ဖိနပ်"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"အမျိုးသမီး ညှပ်ဖိနပ်"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"အမျိုးသမီးဘွတ်ဖိနပ်"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"ခြေရာများ"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"တစ်ရောင်တည်း လူကိုယ်တစ်ပိုင်း ရုပ်ပုံ"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"အဖြူမဲ ကိုယ်တစ်ပိုင်းပုံ"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"ယောက်ျားလေး"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"မိန်းကလေး"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"ယောက်ျား"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"မိန်းမ"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"မိသားစု"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"ယောက်ျားနှင့် မိန်းမလက်တွဲထား"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"ယောက်ျားနှစ်ယောက် လက်တွဲထား"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"မိန်းမနှစ်ယောက် လက်တွဲထား"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"ရဲအရာရှိ"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"ယုံနားရွက်နှင့် မိန်းမ"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"ခေါင်းဆောင်းပုဝါနှင့် သတို့သမီး"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"ရွှေရောင်ဆံပင်နှင့် လူ"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"တရုတ်ခေါင်းဆောင်းနှင့် ယောက်ျား"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"ပန်ချာပီခေါင်းဆောင်းနှင့် ယောက်ျား"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"အသက်ကြီးယောက်ျား"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"အသက်ကြီးမိန်းမ"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"ကလေး"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"ဆောက်လုပ်ရေး အလုပ်သမား"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"မင်းသမီး"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"ဂျပန်ဘီလူး"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"ဂျပန်မှင်စာ"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"သရဲ"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"ကလေးနတ်သမီး"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"အခြားဂြိုလ်သား"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"ဂြိုလ်သားဘီလူး"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"မှင်စာ"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"ဦးခေါင်းခွန်"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"အချက်လက်ကောင်တာ လူ"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"အစောင့်"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"အကသမား"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"နှုတ်ခမ်းနီ"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"လက်သည်းဆိုးဆေး"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"မျက်နှာ နှိပ်နယ်ခြင်း"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"ဆံပင်ညှပ်"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"ဆံပင်ညှပ်ဆိုင် အလိပ်တိုင်"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"ဆေးထိုးအပ်"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"ဆေးလုံး"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"အနမ်းသင်္ကေတ"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"အချစ်စာ"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"အသံမြည်ပေးရန်"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"ကျောက်မျက်ရတနာ"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"အနမ်း"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"ပန်းစည်း"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"အသဲနှလုံးနှင့် အတွဲ"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"မင်္ဂလာဆောင်ခြင်း"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"ခုန်နေသော နှလုံး"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"အသဲကွဲ"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"အသဲနှလုံး နှစ်ခု"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"တောက်ပနေသော နှလုံး"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"ကြီးထွားနေသည့် နှလုံး"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"မြှားနှင့် အသဲနှလုံး"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"အပြာရောင် နှလုံးသား"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"အစိမ်းရောင် နှလုံးသား"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"အဝါရောင် အသဲနှလုံး"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"ခရမ်းရောင် အသဲနှလုံး"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"ဖဲပြားနှင့် အသဲနှလုံး"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"လည်နေသည့် နှလုံးသားများ"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"အသဲနှလုံး အလှဆင်ခြင်း"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"အတွင်းတွင် အစက်တစ်စက်နှင့် စိန်ပုံ"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"လျှပ်စစ်မီးလုံး"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"ဒေါသသင်္ကေတ"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"ဗုံး"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"အိပ်စက်နေသည့် သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"ပေါက်ကွဲသင်္ကေတ"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"ချွေးထွက်နေသည့် သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"ရေစက်"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"အနုတ်သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"မစင်ပုံ"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"လက်မောင်းသား"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"မှူးဝေသည့် သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"စကားပြော ပူပေါင်းကွက်"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"အတွေး ပူပေါင်းကွက်"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"အဖြူရောင်ပန်း"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"အမှတ်တစ်ရာ သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"ပိုက်ဆံအိတ်"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"ငွေကြေး လဲလှယ်ခြင်း"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"လေးလံသည့် ဒေါ်လာသင်္ကေတ"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"အကြွေးဝယ်ကဒ်"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"ယန်းသင်္ကေတဖြင့် ဘဏ်မှတ်ချက်"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"ဒေါ်လာသင်္ကေတနှင့် ဘဏ်မှတ်ချက်"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"ယူရိုသင်္ကေတဖြင့် ဘဏ်မှတ်ချက်"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"ပေါင်သင်္ကေတနှင့် ဘဏ်မှတ်ချက်"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"အတောင်ပံများနှင့် ပိုက်ဆံ"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"ယန်းသင်္ကေတနှင့် အပေါ်တက်နေသည့် ဇယားကွက်"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"ထိုင်ခုံ"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"ကုဂ္ဂိုလ်ရေးကွန်ပျူတာ"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"သားရေအိပ်ပြား"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"ဒစ်အသေး"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"ဖလော့ပီဒစ်"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"ဒစ်ခွေ"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"ဒီဗီဒီ"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"ဖိုင်တွဲ"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"ဖိုင်တွဲဖွင့်"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"စာရွက်ကော့်ဖြင့် စာမျက်နှာ"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"အပေါ်ထောင်နေသည့် စာမျက်နှာ"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"ပြက္ခဒိန်"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"ရွက်ဆုတ် ပြက္ခဒိန်"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"ကဒ်အညွှန်း"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"အပေါ်တက်နေသည့် ဇယား"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"လူကြိုက်များသည့် ဒေါင်းလုပ်များနှင့် ဇယား"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"ဘားတန်းဇယား"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"ကလစ်ဘုတ်"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"ပင်"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"ပင်အဝိုင်း"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"စာရွက်ညှပ်"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"ပေတံဖြောင့်"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"သုံးထောင့်ပေတံ"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"ဘွတ်မှတ်တပ်များ"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"လယ်ဂျာ"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"မှတ်စုစာအုပ်"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"အလှဆင်ထားသည့် အခွံနှင့် မှတ်စုစာအုပ်"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"ပိတ်ထားသည့်စာအုပ်"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"စာအုပ်အပွင့်"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"အစိမ်းရောင်စာအုပ်"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"အပြာရောင်စာအုပ်"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"လိမ္မော်ရောင်စာအုပ်"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"စာအုပ်များ"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"နာမည်တံဆိပ်"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"လိမ့်ချ"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"မီမို"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"တယ်လီဖုန်း လက်ခံစက်"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"ပေဂျာ"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"ဖက်စ်စက်"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"ဂြိုလ်တုအင်တင်နာ"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"ပြည်သူသုံး အသံချဲ့စက်"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"ဩဘာပေးသည့် အသံချဲ့စက်"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"အထွက်စာဘန်း"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"အဝင်စာဘန်း"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"အထုပ်"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"အီးမေးလ်သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"စာအိတ်အဝင်"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"အပေါ်တွင် ဒေါင်းလုပ်မြှားပါသည့် စာအိတ်"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"အောက်ခြေအလံပါသည့် စာပုံးအပိတ်"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"အလံပြထားသည့် ပိတ်ထားသော စာပုံး"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"အထက်တွင်အလံပါသည့် စာပုံးအဖွင့်"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"အောက်ခြေတွင်အလံပါသည့် စာပုံးအပွင့်"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"စာတိုက်ပုံး"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"ခရာ"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"သတင်းစာ"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"မိုဘိုင်းဖုန်း"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"ဘယ်ဖက်ရှိ ညာဖက်ဦးတည်သည့်မြှားနှင့် မိုဘိုင်းဖုန်း"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"တှုန်ခါမုဒ်"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"မိုဘိုင်းဖုန်း ပိတ်"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"မိုဘိုင်းဖုန်းများမရှိပါ"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"ဘားတန်းများနှင့် အင်တင်နာ"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"ကင်မရာ"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"ဗီဒီယိုကင်မရာ"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"ရုပ်သံ"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"ရေဒီယို"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"ဗီဒီယိုကက်ဆက်"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"ညာဖက်ညွှန်းနေသေည လှည့်ထားသည့်မြှားများ"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"ညာဖက်နှင့် ဘယ်ဖက်သို့ဦးတည်သည့် နာရီလက်တံအတိုင်းလှည့်သော စက်ဝိုင်းပွင့်မြှားများ"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"နာရီလက်တံအတိုင်း ဘယ်ဖက်နှင့် ညာဖက်သို့ညွှန်းသည့် စက်ဝိုင်းထပ်ထားသော စက်ဝိုင်းအပွင့်မြှား"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"အောက်ဖက်နှင့် အပေါ်ဖက်သို့ဦးတည်သည့် နာရီလက်တံအတိုင်းလှည့်သော စက်ဝိုင်းပွင့်မြှားများ"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"နာရီလက်တံအတိုင်း အောက်ဖက်နှင့် အပေါ်ဖက်သို့ဦးတည်သည့် နာရီလက်တံအတိုင်းလှည့်သော စက်ဝိုင်းပွင့်မြှားများ"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"တောက်ပမှုနည်းသည့် သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"တောက်ပမှုမြင့် သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"ပယ်ဖျက်သည့် ဘေးတိုက်မျဉ်းနှင့် စပီကာ"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"စပီကာ"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"အသံလှိုင်းတစ်ခုနှင့် စပီကာ"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"အသံလှိုင်းသုံးခုနှင့် စပီကာ"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"ဘတ်ထရီ"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"လျှစ်စစ် ပလပ်"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"ဘယ်ဘက်သို့ညွှန်နေသည့် မှန်ဘီလူး"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"ညာဘက်သို့ညွှန်နေသည့် မှန်ဘီလူး"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"မှင်ဘောပင်ဖြင့် သော့ခတ်"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"ကီးဖြင့်သော့ပိတ်"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"သော့"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"သော့ပိတ်ရန်"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"သော့ပွင့်"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"ခေါင်းလောင်း"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"ပယ်ဖျက်သည့် ဘေးတိုက်မျဉ်းနှင့် ခေါင်းလောင်း"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"စာညုပ်"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"လင့်ခ်သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"ရေဒီယို ခလုတ်"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"အပေါ်တွင် ဘယ်ဘက်ပြမြှားနှင့် အနောက်"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"အပေါ်တွင် ဘယ်ဘက်ပြမြှားနှင့် အဆုံး"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"အပေါ်တွင် ဘယ်ညာမြှားနှင့် ဖွင့်ရန် နှင့်အာမေဍိတ် သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"ညာဘက်ပြမြှားနှင့် မကြာမှီ"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"အပေါ်ပြမြှားနှင့် အပေါ်"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"ဆယ့်ရှစ်နှစ်အောက် မဝင်ရသင်္ကေတ"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"တစ်ဆယ်ခလုတ်"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"လက်တင်စာလုံးကြီးအတွက် ထည့်သွင်းရန် သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"လက်တင်စာလုံးသေးများအတွက် ထည့်သွင်းရန် သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"ဂဏန်းများအတွက် ထည့်သွင်းရန် သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"သင်္ကေတများအတွက် ထည့်သွင်းရန် သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"လက်တင်စာလုံးများအတွက် ထည့်သွင်းရန် သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"မီး"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"လျှပ်စစ်တို့ထိမှု"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"မူလီလှည့်"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"တူ"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"မူလီနှင့် ဝါရှာ"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"ဓါးသေး"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"ပစ်စတို"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"မိုက်ခရိုစကုပ်"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"တယ်လီစကုပ်"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"အရည်ကြည် ဘောလုံး"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"ခြောက်ထောင့်ရှိ၍ အလယ်မှတ်ပါသော ကြယ်"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"အစပြုသူအတွက် ဂျပန်သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"နေနတ်သင်္ကေတ အမှတ်အသား"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"အမဲရောင် စတုရန်း ခလုတ်"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"အဖြူရောင် လေးထောင့်ခလုတ်"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"အနီရောင် စက်ဝိုင်းကြီး"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"အပြာရောင်စက်ဝိုင်းကြီး"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"လိမ္မော်ရောင် စိန်ကြီး"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"အပြာရောင် စိန်ကြီး"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"လိမ္မော်ရောင် စိန်သေး"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"အပြာရောင် စိန်သေး"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"ပေါ်သို့ညွှန်နေသည့် တြိဂံ"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"အောက်စိုက် အနီရောင်တြိဂံ"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"အပေါ်ထောင်သည့် အနီရောင်တြိဂံ"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"အောက်စိုက် အနီရောင်တြိဂံအသေး"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"နာရီမျက်နှာပြင် တစ်နာရီ"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"နာရီမျက်နှာပြင် နှစ်နာရီ"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"နာရီမျက်နှာပြင် သုံးနာရီ"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"နာရီမျက်နှာပြင် လေးနာရီ"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"နာရီမျက်နှာပြင် ငါးနာရီ"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"နာရီမျက်နှာပြင် ခြောက်နာရီ"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"နာရီမျက်နှာပြင် ခုနှစ်နာရီ"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"နာရီမျက်နှာပြင် ရှစ်နာရီ"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"နာရီမျက်နှာပြင် ကိုးနာရီ"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"နာရီမျက်နှာပြင် ဆယ်နာရီ"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"နာရီမျက်နှာပြင် ဆယ့်တစ်နာရီ"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"နာရီမျက်နှာပြင် ဆယ့်နှစ်နာရီ"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"နာရီမျက်နှာပြင် တစ်နာရီခွဲ"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"နာရီမျက်နှာပြင် နှစ်နာရီခွဲ"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"နာရီမျက်နှာပြင် သုံးနာရီခွဲ"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"နာရီမျက်နှာပြင် လေးနာရီခွဲ"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"နာရီမျက်နှာပြင် ငါးနာရီခွဲ"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"နာရီမျက်နှာပြင် ခြောက်နာရီခွဲ"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"နာရီမျက်နှာပြင် ခုနှစ်နာရီခွဲ"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"နာရီမျက်နှာပြင် ရှစ်နာရီခွဲ"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"နာရီမျက်နှာပြင် ကိုးနာရီခွဲ"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"နာရီမျက်နှာပြင် ဆယ်နာရီခွဲ"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"နာရီမျက်နှာပြင် ဆယ့်တစ်နာရီခွဲ"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"နာရီမျက်နှာပြင် ဆယ့်နာနာရီခွဲ"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"ဖူဂျီတောင်"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"တိုကျိုတာဝါ"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"လေဘာတီရုပ်တု"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"ဂျ"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"မိုရိုက်းရုပ်တု"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"သွားကြိတ်နေသည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"ပြုံးနေသည့်မျက်လုံးများဖြင့် ကြိတ်သည့်မျက်နှာ"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"အငိုမျက်လုံး အပြုံးမျက်နှာ"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"ပါးပစ်ပွင့်လျက်သားနှင့် ရီနေသည့်မျက်နှာ"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"အပြုံးမျက်လုံးများဖြင့် ပါးစပ်ဖွင့်ကာ ရီမောခြင်း"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"ပါးစပ်ဖွင့် ပြုးနေလျက် ချွေးစေးထွက်သည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"တင်းကြပ်စွာပိတ်ထားသည့် မျက်လုံးများဖြင့် ပါးစပ်ဖွင့်ကာ ရီမောခြင်း"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"ရောင်ခြည်တော်စက်ဝန်းနှင့် အပြုံးမျက်နှာ"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"ဦးချိုနှင့် အပြုံးမျက်နှာ"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"မျက်လုံးမိတ်ပြသည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"အပြုံးမျက်လုံးဖြင့် အပြုံးမျက်နှာ"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"အရသာရှိသည့်အစားစာကို သွားရည်ကျသည့်မျက်နှာ"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"စိတ်သက်သာရာရသည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"နှလုံးသားပုံ မျက်လုံးများဖြင့် ရီနေသည့်မျက်နှာ"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"နေကာမျက်မှန်နှင့် အပြုံးမျက်နှာ"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"ရွဲ့သည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"ဓါတ်ပျယ်မျက်နှာ"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"ခံစားချက်မဲ့သည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"မပျော်ရွှင်သည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"ချွေးအေးများနှင့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"စိုးရိမ်သည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"ဇဝေဇဝါ မျက်နှာ"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"ချွေးပြန်နေသည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"နမ်းနေသည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"အနမ်းပေးသည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"ပြုံးနေသည့်မျက်လုံးများဖြင့် နမ်းနေသည့်မျက်နှာ"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"မျက်လုံးပိတ်များဖြင့် နမ်းနေသည့်မျက်နှာ"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"လျှာထုပ်ထားသည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"လျှာထုတ်ပြ၍ မျက်လုံး မှိတ်ပြသည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"လျှာထုတ်ပြ၍ မျက်လုံး တင်းကြပ်စွာမှိတ်ပြသည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"စိတ်ပျက်သည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"စိုးရိမ်နေသည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"စိတ်တိုသည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"နှုတ်ခမ်းစူသည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"ငိုနေသည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"ဇွဲသန်သည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"အောင်ပွဲခံသည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"စိတ်ပျက်သော်လည်း စိတ်သက်သာရာရသည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"ပါးစပ်ဖွင့်လျက် မျက်မှောင်ကြုပ်သည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"မချိတင်ကဲမျက်နှာ"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"ကြောက်လန့်သည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"ငြီးငွေ့သည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"အိပ်ငိုက်သည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"မောပန်းသည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"မဲ့ရွဲ့သည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"ကျယ်လောင်စွာအော်ငိုသည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"ပါးစပ်ဟောင်းနေတဲ့ မျက်နှာ"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"တိတ်ဆိတ်သည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"ပါးစပ်ဖွင့်လျက် ချွေးစေးထွက်သည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"ကြောက်ရွံ့၍အော်သော မျက်နှာ"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"အံ့အားသင့်သည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"ရှက်သည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"အိပ်နေသည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"ခေါင်းမူးသည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"ပါးစပ်မပါသည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"ဆေးမျက်နှာဖုံးနှင့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"ပြုံးနေသည့်မျက်လုံးများဖြင့် ကြိတ်ကိုက်နေသည့် ကြောင်မျက်နှာ"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"အငိုမျက်လုံး အပြုံးနှင့် ကြောင်မျက်နှာ"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"ပါးပစ်ပွင့်လျက်သားနှင့် ရီနေသည့်ကြောင်"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"အသဲပုံမျက်နှာများဖြင့် ပြုံးနေသည့် ကြောင်မျက်နှာ"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"မချဉ်ပြုံးပြုံးနေသော ကြောင်မျက်နှာ"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"မျက်လုံးပိတ်များဖြင့် နမ်းနေသည့် ကြောင်မျက်နှာ"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"နှုတ်ခမ်းစူနေသည့် ကြောင်မျက်နှာ"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"ငိုနေသည့် ကြောင်မျက်နှာ"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"ငြီးငွေ့စရာ ကြောင်မျက်နှာ"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"အမူအယာ မကောင်းသည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"အမူအယာအိုကေသည့် မျက်နှာ"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"ဦးညွှတ်နေသည့် လူ"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"မကောင်းတာမကြည့်သည့် မျောက်"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"မကောင်းတာမနားထောင်သည့် မျောက်"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"မကောင်းတာမပြောသည့် မျောက်"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"လက်တစ်ဖက်ကို ပျော်ရွှင်စွာမြောက်သည်လူ"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"လက်နှစ်ဖက်မြောက်ကာ ပွဲတည်နေသည့်လူ"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"ရှုံမဲ့နေသည့် လူ"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"နှုတ်ခမ်းစူနေသည့် မျက်နှာနှင့်လူ"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"လက်အုပ်ချီထားသည့် လက်နှင့်လူ"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"ဒုံးပျံ"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"ဟယ်လီကော်ပတာ"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"ရေနွေးငွေ့ရထား"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"သံလမ်းကား"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"မြန်နှုန်းမြင့် ရထား"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"ကျည်ဆံနှာခေါင်းနှင့် မြန်နှုန်းမြင့် ရထား"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"ရထား"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"မြေအောက်ရထား"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"ပေါ့ပါးသည့် ရထား"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"ဘူတာ"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"ဓါတ်ကြိုး"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"ဓါတ်ကြိုးကား"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"ဘက်စ်"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"လာနေသည့်ဘတ်စ်ကား"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"ထရော်လီဘတ်စ်"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"ဘက်စ်ကားဂိတ်"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"ဘက်စ်အသေး"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"လူနာတင်ယာဉ်"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"မီးအင်ဂျင်"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"ရဲကား"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"လာနေသည့် ရဲကား"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"တက္ကစီ"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"လာနေသည့် တက္ကစီ"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"လေးအီးယာဉ်"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"လာနေသည့် ယာဉ်"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"ဖျော်ဖြေရေးယာဉ်"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"ကုန်တင်ယာဉ်"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"နောက်ဆက်တွဲ လော်ရီ"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"ထွန်စက်"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"တစ်လိုင်းပြေးရထားလမ်း"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"တောင်တက်ရထားလမ်း"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"အောက်လှိုင်းရထား"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"တောင်တက်ဓါတ်ကြိုးလိုင်း"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"ကောင်းကင်ကြိုးရထားလမ်း"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"သင်္ဘော"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"လှော်သည့်လှေ"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"အမြန်သင်္ဘော"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"ရေပြင်ညီယာဉ်အသွားအလာမီး"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"ဒေါင်လိုက် မီးပွိုင့်"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"ဆောက်လုပ်ရေး သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"မီးလှည့်နေသောရဲကား"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"စာတိုက်ပေါ်ရှိ သုံးထောင့်အလံ"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"တံခါး"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"ဝင်ပေါက်သင်္ကေတမရှိ"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"ဆေးလိပ်သောခြင်း သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"ဆေးလိပ်မသောက်ရ သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"သူ့နေရာနှင့်သူ အမှိုက်ပစ်ပါ သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"အမှိုက်မပစ်ရ သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"သောက်၍ရသော ရေသင်္ကေတ"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"သောက်၍မရသော ရေ သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"စက်ဘီး"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"စက်ဘီးမစီးရ"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"စက်ဘီးစီးသူ"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"တောင်တက်စက်ဘီးစီးသူ"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"လမ်းဖြတ်ကူးခြင်း"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"လမ်းဖြတ်မကူးရ"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"ကလေးများ လမ်းဖြတ်ကူးခြင်း"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"ယောက်ျား သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"အမျိုးသမီး သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"နားနေခန်း"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"ကလေး သင်္ကေတ"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"အိမ်သာ"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"ရေအိမ်"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"ရေချိုး"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"ရေချိုးခန်း"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"ရေချိုးကန်"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"ပတ်စပို့ထိန်းချုပ်"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"အကောက်ခွန်"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"ခရီးဆောင်အိတ် ထုတ်ယူရန်"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"ဘယ်ဖက်အိတ်"</string>
+</resources>
diff --git a/java/res/values-my-rMM/strings-letter-descriptions.xml b/java/res/values-my-rMM/strings-letter-descriptions.xml
index 6dabe0f..2d5338b 100644
--- a/java/res/values-my-rMM/strings-letter-descriptions.xml
+++ b/java/res/values-my-rMM/strings-letter-descriptions.xml
@@ -200,7 +200,7 @@
     <string name="spoken_symbol_2105" msgid="7289404939366976829">"Care of"</string>
     <string name="spoken_symbol_2192" msgid="827804523596125414">"ညာညွှန်း မြား"</string>
     <string name="spoken_symbol_2193" msgid="2659541693445985717">"အောက်ညွှန်း မြား"</string>
-    <string name="spoken_symbol_2205" msgid="4457188084269117343">"ပလာ set"</string>
+    <string name="spoken_symbol_2205" msgid="4457188084269117343">"နေရာလွတ်"</string>
     <string name="spoken_symbol_2206" msgid="4856786565708380687">"Increment"</string>
     <string name="spoken_symbol_2264" msgid="5092061257745123554">"ထက်နည်း သို့မဟုတ် တူညီ"</string>
     <string name="spoken_symbol_2265" msgid="1907966479878036357">"ထက်ကြီး သို့မဟုတ် တူညီ"</string>
diff --git a/java/res/values-my-rMM/strings-talkback-descriptions.xml b/java/res/values-my-rMM/strings-talkback-descriptions.xml
index 6908b58..96066f3 100644
--- a/java/res/values-my-rMM/strings-talkback-descriptions.xml
+++ b/java/res/values-my-rMM/strings-talkback-descriptions.xml
@@ -20,112 +20,69 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for spoken_use_headphones (4313642710742229868) -->
-    <skip />
-    <!-- no translation found for spoken_current_text_is (4240549866156675799) -->
-    <skip />
-    <!-- no translation found for spoken_no_text_entered (1711276837961785646) -->
-    <skip />
-    <!-- no translation found for spoken_auto_correct (8989324692167993804) -->
-    <skip />
-    <!-- no translation found for spoken_auto_correct_obscured (7769449372355268412) -->
-    <skip />
+    <string name="spoken_use_headphones" msgid="4313642710742229868">"စကားဝှက်ပြောဆိုမှုကို ကျယ်လောင်စွာ ကြားနိုင်ရန် မိုက်ခွက်ပါနားကြပ် တပ်ပြီး နားထောင်ပါ"</string>
+    <string name="spoken_current_text_is" msgid="4240549866156675799">"လက်ရှိစာသည် %s"</string>
+    <string name="spoken_no_text_entered" msgid="1711276837961785646">"စာမရိုက်ထည့်ထားပါ"</string>
+    <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> မှ <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> သို့ <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> မှန်ကန်စေသည်"</string>
+    <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> အလိုအလျောက် မှန်ကန်ခြင်း လုပ်ဆောင်သည်"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"အကြံပြုချက် မရှိပါ"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"မသိရ စာလုံး"</string>
-    <!-- no translation found for spoken_description_shift (7209798151676638728) -->
-    <skip />
-    <!-- no translation found for spoken_description_symbols_shift (3483198879916435717) -->
-    <skip />
-    <!-- no translation found for spoken_description_shift_shifted (3122704922642232605) -->
-    <skip />
-    <!-- no translation found for spoken_description_symbols_shift_shifted (5179175466878186081) -->
-    <skip />
-    <!-- no translation found for spoken_description_caps_lock (1224851412185975036) -->
-    <skip />
-    <!-- no translation found for spoken_description_delete (3878902286264983302) -->
-    <skip />
-    <!-- no translation found for spoken_description_to_symbol (8244903740201126590) -->
-    <skip />
-    <!-- no translation found for spoken_description_to_alpha (4081215210530031950) -->
-    <skip />
-    <!-- no translation found for spoken_description_to_numeric (4560261331530795682) -->
-    <skip />
-    <!-- no translation found for spoken_description_settings (7281251004003143204) -->
-    <skip />
-    <!-- no translation found for spoken_description_tab (8210782459446866716) -->
-    <skip />
-    <!-- no translation found for spoken_description_space (5908716896642059145) -->
-    <skip />
-    <!-- no translation found for spoken_description_mic (6153138783813452464) -->
-    <skip />
-    <!-- no translation found for spoken_description_emoji (7990051553008088470) -->
-    <skip />
-    <!-- no translation found for spoken_description_return (3183692287397645708) -->
-    <skip />
-    <!-- no translation found for spoken_description_search (5099937658231911288) -->
-    <skip />
-    <!-- no translation found for spoken_description_dot (5644176501632325560) -->
-    <skip />
-    <!-- no translation found for spoken_description_language_switch (6818666779313544553) -->
-    <skip />
-    <!-- no translation found for spoken_description_action_next (431761808119616962) -->
-    <skip />
-    <!-- no translation found for spoken_description_action_previous (2919072174697865110) -->
-    <skip />
-    <!-- no translation found for spoken_description_shiftmode_on (5107180516341258979) -->
-    <skip />
-    <!-- no translation found for spoken_description_shiftmode_locked (7307477738053606881) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_symbol (111186851131446691) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_symbol_shift (4305607977537665389) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_alpha (4676004119618778911) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_phone (2061220553756692903) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_phone_shift (7879963803547701090) -->
-    <skip />
-    <!-- no translation found for announce_keyboard_hidden (2313574218950517779) -->
-    <skip />
-    <!-- no translation found for announce_keyboard_mode (6698257917367823205) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_date (6597407244976713364) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_date_time (3642804408726668808) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_email (1239682082047693644) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_im (3812086215529493501) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_number (5395042245837996809) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_phone (2486230278064523665) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_text (9138789594969187494) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_time (8558297845514402675) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_url (8072011652949962550) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_recents (4185344945205590692) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_people (8414196269847492817) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_objects (6116297906606195278) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_nature (5018340512472354640) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_places (1163315840948545317) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_symbols (474680659024880601) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_emoticons (456737544787823539) -->
-    <skip />
+    <string name="spoken_description_shift" msgid="7209798151676638728">"Shiftခလုတ်"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"နောက်ထပ် သင်္ကေတများ"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shiftခလုတ်"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"သင်္ကေတများ"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shiftခလုတ်"</string>
+    <string name="spoken_description_delete" msgid="3878902286264983302">"ဖျက်ရန်"</string>
+    <string name="spoken_description_to_symbol" msgid="8244903740201126590">"သင်္ကေတများ"</string>
+    <string name="spoken_description_to_alpha" msgid="4081215210530031950">"စာများ"</string>
+    <string name="spoken_description_to_numeric" msgid="4560261331530795682">"နံပါတ်များ"</string>
+    <string name="spoken_description_settings" msgid="7281251004003143204">"ဆက်တင်များ"</string>
+    <string name="spoken_description_tab" msgid="8210782459446866716">"တဲဘ်"</string>
+    <string name="spoken_description_space" msgid="5908716896642059145">"space"</string>
+    <string name="spoken_description_mic" msgid="6153138783813452464">"အသံထည့်သွင်းမှု"</string>
+    <string name="spoken_description_emoji" msgid="7990051553008088470">"ရုပ်ပုံသင်္ကေတ"</string>
+    <string name="spoken_description_return" msgid="3183692287397645708">"နောက်ပြန်သွားရန်"</string>
+    <string name="spoken_description_search" msgid="5099937658231911288">"ရှာဖွေရန်"</string>
+    <string name="spoken_description_dot" msgid="5644176501632325560">"အစက်"</string>
+    <string name="spoken_description_language_switch" msgid="6818666779313544553">"ဘာသာစကား ပြောင်းလဲရန်"</string>
+    <string name="spoken_description_action_next" msgid="431761808119616962">"ရှေ့သို့"</string>
+    <string name="spoken_description_action_previous" msgid="2919072174697865110">"အနောက်သို့"</string>
+    <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Shift ဖွင့်ထားသည်"</string>
+    <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"စာလုံးကြီးရိုက်ရန် ဖွင့်ထားသည်"</string>
+    <string name="spoken_description_mode_symbol" msgid="111186851131446691">"သင်္ကေတမုဒ်"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"နောက်ထပ်သင်္ကေတမုဒ်"</string>
+    <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"စာသားမုဒ်"</string>
+    <string name="spoken_description_mode_phone" msgid="2061220553756692903">"ဖုန်းမုဒ်"</string>
+    <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"ဖုန်းသင်္ကေတမုဒ်"</string>
+    <string name="announce_keyboard_hidden" msgid="2313574218950517779">"ဝှက်ထားသည့် ကီးဘုတ်"</string>
+    <string name="announce_keyboard_mode" msgid="6698257917367823205">"ဖော်ထားသည့် <xliff:g id="KEYBOARD_MODE">%s</xliff:g> ကီးဘုတ်"</string>
+    <string name="keyboard_mode_date" msgid="6597407244976713364">"ရက်စွဲ"</string>
+    <string name="keyboard_mode_date_time" msgid="3642804408726668808">"ရက်စွဲနှင့် အချိန်"</string>
+    <string name="keyboard_mode_email" msgid="1239682082047693644">"အီးမေးလ်"</string>
+    <string name="keyboard_mode_im" msgid="3812086215529493501">"စာပို့ခြင်း"</string>
+    <string name="keyboard_mode_number" msgid="5395042245837996809">"နံပါတ်"</string>
+    <string name="keyboard_mode_phone" msgid="2486230278064523665">"ဖုန်း"</string>
+    <string name="keyboard_mode_text" msgid="9138789594969187494">"စာတို"</string>
+    <string name="keyboard_mode_time" msgid="8558297845514402675">"အချိန်"</string>
+    <string name="keyboard_mode_url" msgid="8072011652949962550">"URL"</string>
+    <string name="spoken_descrption_emoji_category_recents" msgid="4185344945205590692">"မကြာသေးခင်က"</string>
+    <string name="spoken_descrption_emoji_category_people" msgid="8414196269847492817">"လူ"</string>
+    <string name="spoken_descrption_emoji_category_objects" msgid="6116297906606195278">"အရာဝတ္ထုများ"</string>
+    <string name="spoken_descrption_emoji_category_nature" msgid="5018340512472354640">"သဘာဝ"</string>
+    <string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"နေရာများ"</string>
+    <string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"သင်္ကေတများ"</string>
+    <string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"ခံစားချက်ရုပ်ပုံများ"</string>
     <string name="spoken_description_upper_case" msgid="4904835255229433916">"စာလုံးကြီး <xliff:g id="LOWER_LETTER">%s</xliff:g>"</string>
     <string name="spoken_letter_0049" msgid="4743162182646977944">"I အကြီး"</string>
     <string name="spoken_letter_0130" msgid="4766619646231612274">"I အကြီး၊ အပေါ်မှာ အစက်"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"မသိရ သင်္ကေတ"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"မသိရ အီမိုဂျီ"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"စိတ်ကုန်နေသော မျက်နှာ"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"ကသိကအောက် မျက်နှာ"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"နေကာမျက်မှန်တပ် မျက်နှာ"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"အံ့အားသင့်နေသော မျက်နှာ"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"နမ်းနေသော မျက်နှာ"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"မှုန်ကုပ်ကုပ် မျက်နှာ"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"အစားထိုးစရာ စာလုံးများ ရှိနိုင်"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"အစားထိုးစရာ စာလုံးများကို ပယ်ထား"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"အစားထိုးစရာ အကြံပေးချက်များ ရှိနိုင်"</string>
diff --git a/java/res/values-my-rMM/strings.xml b/java/res/values-my-rMM/strings.xml
index 63cbca3..eafddb1 100644
--- a/java/res/values-my-rMM/strings.xml
+++ b/java/res/values-my-rMM/strings.xml
@@ -20,355 +20,188 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for english_ime_input_options (3909945612939668554) -->
-    <skip />
-    <!-- no translation found for use_contacts_for_spellchecking_option_title (5374120998125353898) -->
-    <skip />
-    <!-- no translation found for use_contacts_for_spellchecking_option_summary (8754413382543307713) -->
-    <skip />
-    <!-- no translation found for vibrate_on_keypress (5258079494276955460) -->
-    <skip />
-    <!-- no translation found for sound_on_keypress (6093592297198243644) -->
-    <skip />
-    <!-- no translation found for popup_on_keypress (123894815723512944) -->
-    <skip />
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
-    <!-- no translation found for include_other_imes_in_language_switch_list (4533689960308565519) -->
-    <skip />
-    <!-- no translation found for include_other_imes_in_language_switch_list_summary (840637129103317635) -->
-    <skip />
-    <!-- no translation found for show_language_switch_key (5915478828318774384) -->
-    <skip />
-    <!-- no translation found for show_language_switch_key_summary (7343403647474265713) -->
-    <skip />
-    <!-- no translation found for sliding_key_input_preview (6604262359510068370) -->
-    <skip />
-    <!-- no translation found for sliding_key_input_preview_summary (6340524345729093886) -->
-    <skip />
-    <!-- no translation found for key_preview_popup_dismiss_delay (6213164897443068248) -->
-    <skip />
-    <!-- no translation found for key_preview_popup_dismiss_no_delay (2096123151571458064) -->
-    <skip />
-    <!-- no translation found for key_preview_popup_dismiss_default_delay (2166964333903906734) -->
-    <skip />
-    <!-- no translation found for abbreviation_unit_milliseconds (8700286094028323363) -->
-    <skip />
-    <!-- no translation found for settings_system_default (6268225104743331821) -->
-    <skip />
-    <!-- no translation found for use_contacts_dict (4435317977804180815) -->
-    <skip />
-    <!-- no translation found for use_contacts_dict_summary (6599983334507879959) -->
-    <skip />
-    <!-- no translation found for use_personalized_dicts (5167396352105467626) -->
-    <skip />
+    <string name="english_ime_input_options" msgid="3909945612939668554">"ထည့်သွင်းရန် နည်းလမ်းများ"</string>
+    <string name="use_contacts_for_spellchecking_option_title" msgid="5374120998125353898">"အဆက်အသွယ်အမည်များကို ရှာ"</string>
+    <string name="use_contacts_for_spellchecking_option_summary" msgid="8754413382543307713">"သင့်အဆက်အသွယ်စာရင်း မှအကြောင်းအရာများကို စာလုံးပေါင်းစစ်ကိရိယာမှ ယူသုံးသည်"</string>
+    <string name="vibrate_on_keypress" msgid="5258079494276955460">"ခလုတ်နှိပ်သည်နှင့် တုံခါစေပါ"</string>
+    <string name="sound_on_keypress" msgid="6093592297198243644">"ခလုတ်နှိပ်လျှင် အသံမြည်"</string>
+    <string name="popup_on_keypress" msgid="123894815723512944">"ကီးနှိပ်လိုက်သည်နှင့် ပေါ်လာရန်"</string>
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"ရွေးချယ်စရာများ"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"အကောင့်များ &amp; ကိုယ်ပိုင်ကိစ္စ"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"ပုံပန်းသွင်ပြင် &amp; အပြင်အဆင်များ"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"လှုပ်ရှားမှုဖြင့်စာရိုက်ခြင်း"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"စာအမှားပြပြင်ခြင်း"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"အဆင့်မြင့်"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"အပြင်အဆင်"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"ကီးဘုတ် ခွဲခြမ်းမှု ဖွင့်ထားရန်"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google Keyboard စင့်လုပ်ရန်"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"စင့် ဖွင့်ထားသည်"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"သင့် ကိုယ်ပိုင်သုံး အဘိဓာန်အား စက်များအားလုံးတွင် စင့်လုပ်ရန်"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"ထပ်တူညီအောင် ယခုပြုလုပ်နေပါပြီ…"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Cloud ဒေတာ ဖျက်ရန်"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"သင်၏ စင့်က် လုပ်ပြီးသား ဒေတာ Google ထဲမှ ဖျက်ခံရမည်။"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"သင့် စင့်လုပ်ထားသော ဒေတာများအား cloud မှ ဖျက်လိမ့်မည်။ သေချာသလား?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"ဖျက်ရန်"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"ဖျက်သိမ်းရန်"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"သင့်ရဲ့ကိုယ်ပိုင်အဘိဓါန်ကို Google server များမှာ ထပ်တူညီအောင်လုပ် ပြီး မူလပုံစံ ပြန်သွားမည်။ အိုင်တီထုတ်ကုန်များ တိုးတက်မှုရှိအောင် စာလုံးရေ ကောက်ယူမှု အချက်အလက်ကို စုစည်းပါသည်။ အဆိုပါအချက်အလက်စုယူ သုံးစွဲမှုကို "<a href="https://www.google.com/policies/privacy">" Google၏မိမိအတွင်းရေးသီးသန့် မူဝါဒ "</a>" ဖြင့် စောဒကတက် နိုင်သည်။"</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"ဒီအင်္ဂါရပ်တွေကို ရဖို့ဒီစက်မှာ Google account တစ်ခုကို ဖွင့်ပါ"</string>
+    <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"အခြားထည့်သွင်းမည့် နည်းလမ်းများသို့ ပြောင်းရန်"</string>
+    <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"ဘာသာပြောင်းသည့် ကီးသည် အခြားထည့်သွင်းရန် နည်းလမ်းများလည်း ပါဝင်သည်"</string>
+    <string name="show_language_switch_key" msgid="5915478828318774384">"ဘာသာစကား ပြောင်းခလုတ်"</string>
+    <string name="show_language_switch_key_summary" msgid="7343403647474265713">"များပြားသည့် ထည့်သွင်းရန်နည်းလမ်းများဖွင့်ထားလျှင် ပြပါ"</string>
+    <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"ကီးပေါ်လာ၍ ဖျောက်ရန်နှုန်း"</string>
+    <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"နောက်မကျ"</string>
+    <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"မူရင်းအတိုင်း"</string>
+    <string name="abbreviation_unit_milliseconds" msgid="8700286094028323363">"<xliff:g id="MILLISECONDS">%s</xliff:g>ms"</string>
+    <string name="settings_system_default" msgid="6268225104743331821">"စနစ်ပုံသေ"</string>
+    <string name="use_contacts_dict" msgid="4435317977804180815">"အဆယ်ကသွယ်အမည်များ အကြံပြုမည်"</string>
+    <string name="use_contacts_dict_summary" msgid="6599983334507879959">"အကြံပြုချက်များနှင့် အမှားပြင်ခြင်းများအတွက် အဆက်သွယ်မှ အမည်များ အသုံးပြုမည်"</string>
+    <string name="use_personalized_dicts" msgid="5167396352105467626">"ကိုယ်ရေးကိုယ်တာ အကြံပြုချက်များ"</string>
     <string name="enable_metrics_logging" msgid="5506372337118822837">"မြှင့်တင်ပါ <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
-    <!-- no translation found for use_double_space_period (8781529969425082860) -->
-    <skip />
-    <!-- no translation found for use_double_space_period_summary (6532892187247952799) -->
-    <skip />
-    <!-- no translation found for auto_cap (1719746674854628252) -->
-    <skip />
-    <!-- no translation found for auto_cap_summary (7934452761022946874) -->
-    <skip />
-    <!-- no translation found for edit_personal_dictionary (3996910038952940420) -->
-    <skip />
-    <!-- no translation found for configure_dictionaries_title (4238652338556902049) -->
-    <skip />
-    <!-- no translation found for main_dictionary (4798763781818361168) -->
-    <skip />
-    <!-- no translation found for prefs_show_suggestions (8026799663445531637) -->
-    <skip />
-    <!-- no translation found for prefs_show_suggestions_summary (1583132279498502825) -->
-    <skip />
-    <!-- no translation found for prefs_suggestion_visibility_show_name (3219916594067551303) -->
-    <skip />
-    <!-- no translation found for prefs_suggestion_visibility_show_only_portrait_name (3859783767435239118) -->
-    <skip />
-    <!-- no translation found for prefs_suggestion_visibility_hide_name (6309143926422234673) -->
-    <skip />
-    <!-- no translation found for prefs_block_potentially_offensive_title (5078480071057408934) -->
-    <skip />
-    <!-- no translation found for prefs_block_potentially_offensive_summary (2371835479734991364) -->
-    <skip />
-    <!-- no translation found for auto_correction (7630720885194996950) -->
-    <skip />
-    <!-- no translation found for auto_correction_summary (5625751551134658006) -->
-    <skip />
-    <!-- no translation found for auto_correction_threshold_mode_off (8470882665417944026) -->
-    <skip />
-    <!-- no translation found for auto_correction_threshold_mode_modest (8788366690620799097) -->
-    <skip />
-    <!-- no translation found for auto_correction_threshold_mode_aggressive (7319007299148899623) -->
-    <skip />
-    <!-- no translation found for auto_correction_threshold_mode_very_aggressive (1853309024129480416) -->
-    <skip />
-    <!-- no translation found for bigram_prediction (1084449187723948550) -->
-    <skip />
-    <!-- no translation found for bigram_prediction_summary (3896362682751109677) -->
-    <skip />
-    <!-- no translation found for gesture_input (826951152254563827) -->
-    <skip />
-    <!-- no translation found for gesture_input_summary (9180350639305731231) -->
-    <skip />
-    <!-- no translation found for gesture_preview_trail (3802333369335722221) -->
-    <skip />
-    <!-- no translation found for gesture_floating_preview_text (4443240334739381053) -->
-    <skip />
-    <!-- no translation found for gesture_floating_preview_text_summary (4472696213996203533) -->
-    <skip />
-    <!-- no translation found for gesture_space_aware (2078291600664682496) -->
-    <skip />
-    <!-- no translation found for gesture_space_aware_summary (4371385818348528538) -->
-    <skip />
-    <!-- no translation found for voice_input (3583258583521397548) -->
-    <skip />
-    <!-- no translation found for voice_input_disabled_summary (8141750303464726129) -->
-    <skip />
-    <!-- no translation found for configure_input_method (373356270290742459) -->
-    <skip />
-    <!-- no translation found for language_selection_title (1651299598555326750) -->
-    <skip />
-    <!-- no translation found for send_feedback (1780431884109392046) -->
-    <skip />
-    <!-- no translation found for select_language (3693815588777926848) -->
-    <skip />
-    <!-- no translation found for hint_add_to_dictionary (573678656946085380) -->
-    <skip />
-    <!-- no translation found for has_dictionary (6071847973466625007) -->
-    <skip />
-    <!-- no translation found for keyboard_layout (8451164783510487501) -->
-    <skip />
-    <!-- no translation found for subtype_en_GB (88170601942311355) -->
-    <skip />
-    <!-- no translation found for subtype_en_US (6160452336634534239) -->
-    <skip />
-    <!-- no translation found for subtype_es_US (5583145191430180200) -->
-    <skip />
-    <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
-    <skip />
-    <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
-    <skip />
-    <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
-    <skip />
-    <!-- no translation found for subtype_generic_traditional (8584594350973800586) -->
-    <skip />
-    <!-- no translation found for subtype_generic_cyrillic (7486451947618138947) -->
-    <skip />
-    <!-- no translation found for subtype_generic_latin (9128716486310604145) -->
-    <skip />
-    <!-- no translation found for subtype_no_language (7137390094240139495) -->
-    <skip />
-    <!-- no translation found for subtype_no_language_qwerty (244337630616742604) -->
-    <skip />
-    <!-- no translation found for subtype_no_language_qwertz (443066912507547976) -->
-    <skip />
-    <!-- no translation found for subtype_no_language_azerty (8144348527575640087) -->
-    <skip />
-    <!-- no translation found for subtype_no_language_dvorak (1564494667584718094) -->
-    <skip />
-    <!-- no translation found for subtype_no_language_colemak (5837418400010302623) -->
-    <skip />
-    <!-- no translation found for subtype_no_language_pcqwerty (5354918232046200018) -->
-    <skip />
-    <!-- no translation found for subtype_emoji (7483586578074549196) -->
-    <skip />
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
-    <!-- no translation found for custom_input_styles_title (8429952441821251512) -->
-    <skip />
-    <!-- no translation found for add_style (6163126614514489951) -->
-    <skip />
-    <!-- no translation found for add (8299699805688017798) -->
-    <skip />
-    <!-- no translation found for remove (4486081658752944606) -->
-    <skip />
-    <!-- no translation found for save (7646738597196767214) -->
-    <skip />
-    <!-- no translation found for subtype_locale (8576443440738143764) -->
-    <skip />
-    <!-- no translation found for keyboard_layout_set (4309233698194565609) -->
-    <skip />
-    <!-- no translation found for custom_input_style_note_message (8826731320846363423) -->
-    <skip />
-    <!-- no translation found for enable (5031294444630523247) -->
-    <skip />
-    <!-- no translation found for not_now (6172462888202790482) -->
-    <skip />
-    <!-- no translation found for custom_input_style_already_exists (8008728952215449707) -->
-    <skip />
-    <!-- no translation found for prefs_key_longpress_timeout_settings (6102240298932897873) -->
-    <skip />
-    <!-- no translation found for prefs_keypress_vibration_duration_settings (7918341459947439226) -->
-    <skip />
-    <!-- no translation found for prefs_keypress_sound_volume_settings (6027007337036891623) -->
-    <skip />
-    <!-- no translation found for prefs_read_external_dictionary (2588931418575013067) -->
-    <skip />
-    <!-- no translation found for read_external_dictionary_no_files_message (4947420942224623792) -->
-    <skip />
-    <!-- no translation found for read_external_dictionary_multiple_files_title (7637749044265808628) -->
-    <skip />
-    <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
-    <skip />
-    <!-- no translation found for error (8940763624668513648) -->
-    <skip />
-    <!-- no translation found for button_default (3988017840431881491) -->
-    <skip />
-    <!-- no translation found for setup_welcome_title (6112821709832031715) -->
-    <skip />
-    <!-- no translation found for setup_welcome_additional_description (8150252008545768953) -->
-    <skip />
-    <!-- no translation found for setup_start_action (8936036460897347708) -->
-    <skip />
-    <!-- no translation found for setup_next_action (371821437915144603) -->
-    <skip />
-    <!-- no translation found for setup_steps_title (6400373034871816182) -->
-    <skip />
-    <!-- no translation found for setup_step1_title (3147967630253462315) -->
-    <skip />
-    <!-- no translation found for setup_step1_instruction (2578631936624637241) -->
-    <skip />
-    <!-- no translation found for setup_step1_finished_instruction (10761482004957994) -->
-    <skip />
-    <!-- no translation found for setup_step1_action (4366513534999901728) -->
-    <skip />
-    <!-- no translation found for setup_step2_title (6860725447906690594) -->
-    <skip />
-    <!-- no translation found for setup_step2_instruction (9141481964870023336) -->
-    <skip />
-    <!-- no translation found for setup_step2_action (1660330307159824337) -->
-    <skip />
-    <!-- no translation found for setup_step3_title (3154757183631490281) -->
-    <skip />
-    <!-- no translation found for setup_step3_instruction (8025981829605426000) -->
-    <skip />
-    <!-- no translation found for setup_step3_action (600879797256942259) -->
-    <skip />
-    <!-- no translation found for setup_finish_action (276559243409465389) -->
-    <skip />
-    <!-- no translation found for show_setup_wizard_icon (5008028590593710830) -->
-    <skip />
-    <!-- no translation found for show_setup_wizard_icon_summary (4119998322536880213) -->
-    <skip />
-    <!-- no translation found for app_name (6320102637491234792) -->
-    <skip />
-    <!-- no translation found for dictionary_provider_name (3027315045397363079) -->
-    <skip />
-    <!-- no translation found for dictionary_service_name (6237472350693511448) -->
-    <skip />
-    <!-- no translation found for download_description (6014835283119198591) -->
-    <skip />
-    <!-- no translation found for dictionary_settings_title (8091417676045693313) -->
-    <skip />
-    <!-- no translation found for dictionary_install_over_metered_network_prompt (3587517870006332980) -->
-    <skip />
-    <!-- no translation found for dictionary_settings_summary (5305694987799824349) -->
-    <skip />
-    <!-- no translation found for user_dictionaries (3582332055892252845) -->
-    <skip />
-    <!-- no translation found for default_user_dict_pref_name (1625055720489280530) -->
-    <skip />
-    <!-- no translation found for dictionary_available (4728975345815214218) -->
-    <skip />
-    <!-- no translation found for dictionary_downloading (2982650524622620983) -->
-    <skip />
-    <!-- no translation found for dictionary_installed (8081558343559342962) -->
-    <skip />
-    <!-- no translation found for dictionary_disabled (8950383219564621762) -->
-    <skip />
-    <!-- no translation found for cannot_connect_to_dict_service (9216933695765732398) -->
-    <skip />
-    <!-- no translation found for no_dictionaries_available (8039920716566132611) -->
-    <skip />
-    <!-- no translation found for check_for_updates_now (8087688440916388581) -->
-    <skip />
-    <!-- no translation found for last_update (730467549913588780) -->
-    <skip />
-    <!-- no translation found for message_updating (4457761393932375219) -->
-    <skip />
-    <!-- no translation found for message_loading (5638680861387748936) -->
-    <skip />
-    <!-- no translation found for main_dict_description (3072821352793492143) -->
-    <skip />
-    <!-- no translation found for cancel (6830980399865683324) -->
-    <skip />
-    <!-- no translation found for go_to_settings (3876892339342569259) -->
-    <skip />
-    <!-- no translation found for install_dict (180852772562189365) -->
-    <skip />
-    <!-- no translation found for cancel_download_dict (7843340278507019303) -->
-    <skip />
-    <!-- no translation found for delete_dict (756853268088330054) -->
-    <skip />
-    <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
-    <skip />
-    <!-- no translation found for download_over_metered (1643065851159409546) -->
-    <skip />
-    <!-- no translation found for do_not_download_over_metered (2176209579313941583) -->
-    <skip />
-    <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
-    <skip />
-    <!-- no translation found for dict_available_notification_description (1075194169443163487) -->
-    <skip />
-    <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
-    <skip />
-    <!-- no translation found for version_text (2715354215568469385) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_menu_title (1254195365689387076) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_dialog_title (4096700390211748168) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_screen_title (5818914331629278758) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_dialog_more_options (5671682004887093112) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_dialog_less_options (2716586567241724126) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_dialog_confirm (4703129507388332950) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_word_option_name (6665558053408962865) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_shortcut_option_name (3094731590655523777) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_locale_option_name (4738643440987277705) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_word_hint (4902434148985906707) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_shortcut_hint (2265453012555060178) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_edit_dialog_title (3765774633869590352) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_context_menu_edit_title (6812255903472456302) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_context_menu_delete_title (8142932447689461181) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_empty_text (558499587532668203) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_all_languages (8276126583216298886) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_more_languages (7131268499685180461) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_delete (110413335187193859) -->
-    <skip />
-    <!-- no translation found for user_dict_fast_scroll_alphabet (5431919401558285473) -->
-    <skip />
+    <string name="use_double_space_period" msgid="8781529969425082860">"နှစ်နေရာခြား အဆုံးသတ်"</string>
+    <string name="use_double_space_period_summary" msgid="6532892187247952799">"အချိန်ကာလ"</string>
+    <string name="auto_cap" msgid="1719746674854628252">"အော်တိုစာလုံးကြီးပြောင်း"</string>
+    <string name="auto_cap_summary" msgid="7934452761022946874">"စာကြောင်းတိုင်း ပထမစာလုံးကို အကြီးလုပ်ရန်"</string>
+    <string name="edit_personal_dictionary" msgid="3996910038952940420">"ကိုယ်ပိုင် အဘိဓာန်"</string>
+    <string name="configure_dictionaries_title" msgid="4238652338556902049">"ပေါင်းထည့်ထားသည့် အဘိဓါန်များ"</string>
+    <string name="main_dictionary" msgid="4798763781818361168">"အဓိကအဘိဓါန်"</string>
+    <string name="prefs_show_suggestions" msgid="8026799663445531637">"အမှားပြင်ခြင်း အကြံပေးချက်များပြရန်"</string>
+    <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"ရိုက်နေစဉ် အကြံပြုထားသည့် စကားလုံးများ ပြပါ"</string>
+    <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"ရိုင်းစိုင်းစကားများပိတ်"</string>
+    <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"ရိုင်းစိုင်းသည့် စကားလုံးများအား အကြံမပြုပါနှင့်"</string>
+    <string name="auto_correction" msgid="7630720885194996950">"အလိုလျောက် အမှားပြင်ခြင်း"</string>
+    <string name="auto_correction_summary" msgid="5625751551134658006">"မှားယွင်းစွာ ရိုက်ခဲ့သည့် စာလုံးများကို နေရာခြားခလုတ်နှင့် သတ်ပုံမှန်ကန်ခြင်းသည် အလိုအလျောက် ပြုပြင်ပေးသည်"</string>
+    <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"မရှိ"</string>
+    <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"သာမှန်"</string>
+    <string name="auto_correction_threshold_mode_aggressive" msgid="7319007299148899623">"ထိထိရောက်ရောက်"</string>
+    <string name="auto_correction_threshold_mode_very_aggressive" msgid="1853309024129480416">"အလွန်ထိရောက်"</string>
+    <string name="bigram_prediction" msgid="1084449187723948550">"နောက်စကားလုံး အကြံပြုချက်များ"</string>
+    <string name="bigram_prediction_summary" msgid="3896362682751109677">"အကြံပြုချက်များပြုလုပ်ရာ၌ ပြီးခဲ့သည့် စကားလုံးကို အသုံးပြုရန်"</string>
+    <string name="gesture_input" msgid="826951152254563827">"အမူယာစာရိုက်ခြင်း ဖွင့်ရန်"</string>
+    <string name="gesture_input_summary" msgid="9180350639305731231">"စာလုံးအား ဆွဲရွှေ့ကာ စာလုံးတစ်လုံး ရိုက်ထည့်ပါ"</string>
+    <string name="gesture_preview_trail" msgid="3802333369335722221">"အမူအယာ အမြီးတန်းပြရန်"</string>
+    <string name="gesture_floating_preview_text" msgid="4443240334739381053">"ဝဲပျံနေသည့် အစမ်းကြည့်အကွက်"</string>
+    <string name="gesture_floating_preview_text_summary" msgid="4472696213996203533">"အမူယာပြုလုပ်နေစဉ် အကြံပြုထားသည့် စကားလုံးကို ကြည့်ရန်"</string>
+    <string name="gesture_space_aware" msgid="2078291600664682496">"စကားစု အမူယာ"</string>
+    <string name="gesture_space_aware_summary" msgid="4371385818348528538">"နေရာခြားသည့်ကီးကိုနှိပ်ခြင်းဖြင့် အမူအယာပြုလုပ်စဉ်တွင် နေရာခြား ထည့်သွင်းရန်"</string>
+    <string name="voice_input" msgid="3583258583521397548">"အသံထည့်သွင်းရန် ခလုတ်"</string>
+    <string name="voice_input_disabled_summary" msgid="8141750303464726129">"မည်သည့် Check Language &amp; input settings."</string>
+    <string name="configure_input_method" msgid="373356270290742459">"ထည့်သွင်းရန် နည်းလမ်းကို ပြုပြင်မည်"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"ဘာသာစကားများ"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"အကူအညီ &amp; တုံ့ပြန်ချက်"</string>
+    <string name="select_language" msgid="5709487854987078367">"ဘာသာစကားများ"</string>
+    <string name="hint_add_to_dictionary" msgid="573678656946085380">"သိမ်းရန် နောက်တစ်ကြိမ်နှိပ်ပါ"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"သိမ်းရန် ဤနေရာကို ထိပါ"</string>
+    <string name="has_dictionary" msgid="6071847973466625007">"အဘိဓါန်ရနိုင်"</string>
+    <string name="keyboard_layout" msgid="8451164783510487501">"ကီးဘုတ်အရောင်"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"အကောင့်များကို ပြောင်းရန်"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"အကောင့်များ မရွေးရသေးပါ"</string>
+    <string name="account_selected" msgid="2846876462199625974">"<xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>အား လတ်တလော သုံးန​ေ၏"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"အိုကေ"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"ထားတော့"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"ထွက်ရန်"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"သုံးမည့်အကောင့်ကို ရွေးရန်"</string>
+    <string name="subtype_en_GB" msgid="88170601942311355">"အင်္ဂလိပ်(ယူကေ)"</string>
+    <string name="subtype_en_US" msgid="6160452336634534239">"အင်္ဂလိပ် (ယူအက်စ်)"</string>
+    <string name="subtype_es_US" msgid="5583145191430180200">"စပိန် (ယူအက်စ်)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"ဟင်ဂလိပ်"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"ဆားဘီယား (လက်တင်)"</string>
+    <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"အင်္ဂလိပ် (ယူကေ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"အင်္ဂလိပ် (ယူအက်စ်) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_es_US" msgid="510930471167541338">"စပိန် (ယူအက်စ်) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"ဟင်ဂလိပ် (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"ဆားဘီယား (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ရိုးရာ)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ကျစ်လစ်သော)"</string>
+    <string name="subtype_no_language" msgid="7137390094240139495">"ဘာသာစကားမရှိ (ဗျည်းအက္ခရာ)"</string>
+    <string name="subtype_no_language_qwerty" msgid="244337630616742604">"ဗျည်းအက္ခရာ (ကွာတီ)"</string>
+    <string name="subtype_no_language_qwertz" msgid="443066912507547976">"ဗျည်းအက္ခရာ (ကွာတီ)"</string>
+    <string name="subtype_no_language_azerty" msgid="8144348527575640087">"ဗျည်း (အဇာတည်)"</string>
+    <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"ဗျည်းအက္ခရာ (ဒီဘိုရခ်)"</string>
+    <string name="subtype_no_language_colemak" msgid="5837418400010302623">"ဗျည်းအက္ခရာ (ကိုလ်မာ့ခ်)"</string>
+    <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"ဗျည်း (PC)"</string>
+    <string name="subtype_emoji" msgid="7483586578074549196">"အီမိုဂျီ"</string>
+    <string name="keyboard_theme" msgid="4909551808526178852">"ကီးဘုတ်အဆင်အပြင်"</string>
+    <string name="custom_input_styles_title" msgid="8429952441821251512">"စိတ်ကြိုက် ထည့်သွင်းမှုစတိုင်လ်"</string>
+    <string name="add_style" msgid="6163126614514489951">"စတိုင်လ်ထည့်ရန်"</string>
+    <string name="add" msgid="8299699805688017798">"ထည့်ရန်"</string>
+    <string name="remove" msgid="4486081658752944606">"ဖယ်ရှားပါ"</string>
+    <string name="save" msgid="7646738597196767214">"သိမ်းပါ"</string>
+    <string name="subtype_locale" msgid="8576443440738143764">"ဘာသာစကား"</string>
+    <string name="keyboard_layout_set" msgid="4309233698194565609">"အဆင်အပြင်"</string>
+    <string name="custom_input_style_note_message" msgid="8826731320846363423">"သင့်စိတ်ကြိုက် ထည့်သွင်းမှုစတိုင်လ်အား စတင် အသုံးမပြုမှီ ဖွင့်ရပါမည်။ ၎င်းအားယခု ဖွင့်လိုပါသလား?"</string>
+    <string name="enable" msgid="5031294444630523247">"ဖွင့်ရန်"</string>
+    <string name="not_now" msgid="6172462888202790482">"ယခု မဟုတ်"</string>
+    <string name="custom_input_style_already_exists" msgid="8008728952215449707">"တူညီသည့် ထည့်သွင်းရန် စတိုင်လ် ရှိပြီးဖြစ်: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
+    <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"ခလုတ်နှိပ်တုန်ခါမှု ကြာမြင့်ချိန်"</string>
+    <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"ခလုတ်နှိပ်သည့် အသံအတိုးကျယ်"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"ကီးကြာမြင့်စွာ ဖိနှိပ်မှုနှုန်း"</string>
+    <string name="button_default" msgid="3988017840431881491">"ပုံသေ"</string>
+    <string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> မှကြိုဆိုပါသည်"</string>
+    <string name="setup_welcome_additional_description" msgid="8150252008545768953">"အမူယာ ရိုက်ခြင်းဖြင့်"</string>
+    <string name="setup_start_action" msgid="8936036460897347708">"စတင်ပါတော့"</string>
+    <string name="setup_next_action" msgid="371821437915144603">"နောက်တစ်ဆင့်"</string>
+    <string name="setup_steps_title" msgid="6400373034871816182">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> တပ်ဆင်ရန်"</string>
+    <string name="setup_step1_title" msgid="3147967630253462315">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> ဖွင့်ရန်"</string>
+    <string name="setup_step1_instruction" msgid="2578631936624637241">"သင့်ဘာသာစကား&amp; စာရိုက်ထည့်မှု ဆက်တင်များတွင် \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" အားစစ်ဆေးပါ။ ဤသည်မှာ သင့်ကိရိယာတွင် ဖွင့်ရန် အခွင့်ပေးပါမည်။"</string>
+    <string name="setup_step1_finished_instruction" msgid="10761482004957994">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> သည် သင့်ဘာသာစကား &amp; စာရိုက်ထည့်မှု ဆက်တင်များတွင် ဖွင့်ပြီးသောကြောင့်၊ ဤအဆင့်ပြီးပါပြီ။ နောက်တစ်ခုသို့!"</string>
+    <string name="setup_step1_action" msgid="4366513534999901728">"ဆက်တင်များတွင် ဖွင့်ရန်"</string>
+    <string name="setup_step2_title" msgid="6860725447906690594">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> သို့ပြောင်းမည်"</string>
+    <string name="setup_step2_instruction" msgid="9141481964870023336">"ရှေ့၊ \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" အားသင်၏ ပွင့်နေသည့်ထည့်သွင်းမှု နည်းလမ်းအဖြစ်ရွေးပါ။"</string>
+    <string name="setup_step2_action" msgid="1660330307159824337">"စာရိုက်သွင်းမှုနည်းလမ်း ပြောင်းရန်"</string>
+    <string name="setup_step3_title" msgid="3154757183631490281">"ဝမ်းသာပါသည်၊ သင်အားလုံးသတ်မှတ်ပြီးပါပြီ!"</string>
+    <string name="setup_step3_instruction" msgid="8025981829605426000">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> ဖြင့်သင့် ကြိုက်နှစ်သက်ရာ အပလီကေးရှင်းများအားလုံးအား ရိုက်ထည့်နိုင်ပါပြီ။"</string>
+    <string name="setup_step3_action" msgid="600879797256942259">"ထပ်ပေါင်းဘာသာစကားများ ပြုပြင်မည်"</string>
+    <string name="setup_finish_action" msgid="276559243409465389">"ပြီးဆုံးသွားပြီ"</string>
+    <string name="app_name" msgid="6320102637491234792">"အဘိဓါန် ထောက်ပံ့သူ"</string>
+    <string name="dictionary_provider_name" msgid="3027315045397363079">"အဘိဓါန် ထောက်ပံ့သူ"</string>
+    <string name="dictionary_service_name" msgid="6237472350693511448">"အဘိဓါန် ဝန်ဆောင်မှု"</string>
+    <string name="download_description" msgid="6014835283119198591">"အဘိဓါန် အသစ်မွမ်းမံရန် အချက်လက်"</string>
+    <string name="dictionary_settings_title" msgid="8091417676045693313">"ပေါင်းထည့်ထားသည့် အဘိဓါန်များ"</string>
+    <string name="dictionary_install_over_metered_network_prompt" msgid="3587517870006332980">"အဘိဓါန်ရနိုင်"</string>
+    <string name="dictionary_settings_summary" msgid="5305694987799824349">"အဘိဓါန်များအတွက် ဆက်တင်များ"</string>
+    <string name="user_dictionaries" msgid="3582332055892252845">"အသုံးပြုသူ အဘိဓါန်များ"</string>
+    <string name="default_user_dict_pref_name" msgid="1625055720489280530">"သုံးစွဲသူ၏ အဘိဓာန်"</string>
+    <string name="dictionary_available" msgid="4728975345815214218">"အဘိဓါန်ရရှိနိုင်"</string>
+    <string name="dictionary_downloading" msgid="2982650524622620983">"လက်ရှိ ဒေါင်းလုပ်လုပ်နေသည်"</string>
+    <string name="dictionary_installed" msgid="8081558343559342962">"ထည့်သွင်းပြီး"</string>
+    <string name="dictionary_disabled" msgid="8950383219564621762">"ထည့်သွင်းထားပြီး၊ ပိတ်ထားသည်"</string>
+    <string name="cannot_connect_to_dict_service" msgid="9216933695765732398">"အဘိဓါန်ဝန်ဆောင်မှုသို့ ချိတ်ဆက်ရန် ပြဿနာရှိနေသည်"</string>
+    <string name="no_dictionaries_available" msgid="8039920716566132611">"အဘိဓါန်မရှိ"</string>
+    <string name="check_for_updates_now" msgid="8087688440916388581">"ပြန်လည်ဆန်းသစ်ရန်"</string>
+    <string name="last_update" msgid="730467549913588780">"နောက်ဆုံး အသစ်မွမ်းမံမှု"</string>
+    <string name="message_updating" msgid="4457761393932375219">"အသစ်မွမ်းမံမှုကို ရှာဖွေနေ"</string>
+    <string name="message_loading" msgid="5638680861387748936">"တင်နေ…"</string>
+    <string name="main_dict_description" msgid="3072821352793492143">"အဓိက အဘိဓါန်"</string>
+    <string name="cancel" msgid="6830980399865683324">"ထားတော့"</string>
+    <string name="go_to_settings" msgid="3876892339342569259">"ဆက်တင်များ"</string>
+    <string name="install_dict" msgid="180852772562189365">"တပ်ဆင်ပါ"</string>
+    <string name="cancel_download_dict" msgid="7843340278507019303">"ထားတော့"</string>
+    <string name="delete_dict" msgid="756853268088330054">"ဖျက်ရန်"</string>
+    <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"သင့်ဖုန်းရှိ ရွေးချယ်ထားသည့် ဘာသာအတွက် အဘိဓါန်ရှိပါသည်။ &lt;br/&gt; အဘိဓါန်အား &lt;b&gt;ဒေါင်းလုပ်လုပ်ကာ&lt;/b&gt; the <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>  သင့်စာရိုက် အတွေ့အကြုံတိုးတက်စေရန် ကျွန်ုပ်တို့အကြံပြုပါသည်။ &lt;br/&gt; &lt;br/&gt; ဒေါင်းလုပ်လုပ်ရန် 3G ပေါ်တွင် ၁ မှ ၂ မိနစ်ခန့်ကြာနိုင်သည်။ သင့်တွင် &lt;b&gt;အကန့်သတ်မှရိ အချက်လက် သုံးစွဲမှု&lt;/b&gt;မရှိလျှင် ငွေကျသင့်နိုင်ပါသည်။ &lt;br/&gt; သင့်တွင် မည်သည့်အချက်လက်သုံးစွဲမှု ရှိနေသည်ကိုမသိလျှင်၊ အလိုအလျောက် ဒေါင်းလုပ်လုပ်ရန် Wi-Fi ကွန်ရက်တစ်ခု ရှာဖွေရန် တိုက်တွန်းပါသည်။ &lt;br/&gt; &lt;br/&gt; နည်းလမ်း: သင့်ဖုန်းကိရိယာရှိ &lt;b&gt;ဆက်တင်ထဲတွင်&lt;/b&gt; &lt;b&gt;ဘာသာ &amp; စာရိုက်ထည့်မှု&lt;/b&gt; သို့သွားကာ အဘိဓါန်များကို ဒေါင်းလုပ်လုပ်နိုင် ဖယ်ရှားနိုင်ပါသည်။"</string>
+    <string name="download_over_metered" msgid="1643065851159409546">"ယခုဒေါင်းလုပ်လုပ်မည် (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>MB)"</string>
+    <string name="do_not_download_over_metered" msgid="2176209579313941583">"Wi-Fi အသုံးပြု၍ ဒေါင်းလုပ်လုပ်ရန်"</string>
+    <string name="dict_available_notification_title" msgid="4583842811218581658">"<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> အတွက် အဘိဓါန် ရနိုင်ပါသည်"</string>
+    <string name="dict_available_notification_description" msgid="1075194169443163487">"ပြန်လည်ဆန်းစစ်ကာ ဒေါင်းလုပ်လုပ်ရန် နှိပ်ပါ"</string>
+    <string name="toast_downloading_suggestions" msgid="6128155879830851739">"ဒေါင်းလုပ်လုပ်နေသည်: <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> အတွက်အကြံပြုချက် မကြာမှီတွင် အဆင်သင့်ဖြစ်ပါမည်။"</string>
+    <string name="version_text" msgid="2715354215568469385">"ဗားရှင်း <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
+    <string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"ထည့်ရန်"</string>
+    <string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"အဘိဓာန်ထဲ ထည့်ပါ"</string>
+    <string name="user_dict_settings_add_screen_title" msgid="5818914331629278758">"စကားစု"</string>
+    <string name="user_dict_settings_add_dialog_more_options" msgid="5671682004887093112">"နောက်ထပ် ရွေးစရာ"</string>
+    <string name="user_dict_settings_add_dialog_less_options" msgid="2716586567241724126">"ရွေးစရာလျှော့ရန်"</string>
+    <string name="user_dict_settings_add_dialog_confirm" msgid="4703129507388332950">"အိုကေ"</string>
+    <string name="user_dict_settings_add_word_option_name" msgid="6665558053408962865">"စာလုံး:"</string>
+    <string name="user_dict_settings_add_shortcut_option_name" msgid="3094731590655523777">"အတိုကောက်:"</string>
+    <string name="user_dict_settings_add_locale_option_name" msgid="4738643440987277705">"ဘာသာစကား:"</string>
+    <string name="user_dict_settings_add_word_hint" msgid="4902434148985906707">"စာတလုံးရိုက်ပါ"</string>
+    <string name="user_dict_settings_add_shortcut_hint" msgid="2265453012555060178">"စိတ်ကြိုက်ရွေးစရာအတိုကောက်"</string>
+    <string name="user_dict_settings_edit_dialog_title" msgid="3765774633869590352">"စာလုံးကို ပြင်ဆင်မည်"</string>
+    <string name="user_dict_settings_context_menu_edit_title" msgid="6812255903472456302">"တည်းဖြတ်ရန်"</string>
+    <string name="user_dict_settings_context_menu_delete_title" msgid="8142932447689461181">"ဖျက်ရန်"</string>
+    <string name="user_dict_settings_empty_text" msgid="558499587532668203">"သင့်အဘိဓာန်ထဲတွင် မည်သည့်စာလုံးမှမရှိပါ။ ထပ်ထည့်ခြင်း(+)ခလုတ်ကို ထိ၍ စာလုံးထည့်ပါ။"</string>
+    <string name="user_dict_settings_all_languages" msgid="8276126583216298886">"ဘာသာစကားအားလုံးအတွက်"</string>
+    <string name="user_dict_settings_more_languages" msgid="7131268499685180461">"ဘာသာစကားပိုများများ…"</string>
+    <string name="user_dict_settings_delete" msgid="110413335187193859">"ဖျက်သိမ်းရန်"</string>
+    <string name="user_dict_fast_scroll_alphabet" msgid="5431919401558285473">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
 </resources>
diff --git a/java/res/values-nb/strings-emoji-descriptions.xml b/java/res/values-nb/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..6811188
--- /dev/null
+++ b/java/res/values-nb/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Opphavsrett-symbol"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Varemerkesymbol"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Dobbelt utropstegn"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Utrops- og spørsmålstegn"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Varemerkesymbol"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Informasjonskilde"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Venstre- og høyrepil"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Opp- og nedpil"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Nordvest-pil"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Nordøst-pil"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Sørøst-pil"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Sørvest-pil"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Venstrepil med sving"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Høyrepil med sving"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Klokke"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Timeglass"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Spol fremover"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Spol tilbake"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Dobbeltpil opp"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Dobbeltpil ned"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Alarmklokke"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Timeglass med sand"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"M i sirkel"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Liten firkant med fargefyll"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Liten firkant, omriss"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Fargefylt høyrepil"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Fargefylt venstrepil"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Middels stor firkant, omriss"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Middels stor firkant, fargefylt"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Middels liten firkant, omriss"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Middels liten firkant, fargefylt"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Fargefylt sol med stjerner"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Sky"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Telefon"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Avmerkingshake"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Paraply med regndråper"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Varm drikke"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Pekefinger opp"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Smilefjes"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Væren"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Tyren"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Tvillingene"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Krepsen"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Løven"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Jomfruen"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Vekten"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Skorpionen"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Skytten"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Steinbukken"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Vannmannen"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Fiskene"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Spar"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Kløver"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Hjerter"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Ruter"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Varme kilder"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Resirkulering"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Rullestol"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Anker"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Advarsel"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Høyspenning"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Middels stor sirkel, omriss"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Middels stor sirkel, fargefylt"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Fotball"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Baseball"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Snømann uten snø"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Sol bak sky"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Slangebæreren"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Ingen adgang"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Kirke"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Fontene"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Golfhull"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Seilbåt"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Telt"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Bensinpumpe"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Saks"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Hake"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Fly"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Konvolutt"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Knyttet neve"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Hevet hånd"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Seiershånd"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Blyant"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Pennesplitt"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Hake"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Gangetegn"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Stjerner"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Stjerne med åtte spisser"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Åttekantet stjerne"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Snøflak"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Stjernesymbol"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Kryss"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Kryss i firkant"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Spørsmålstegn, fargefylt"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Spørsmålstegn, omriss"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Utropstegn, omriss"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Utropstegn, fargefylt"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Fargefylt hjerte"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Plusstegn, fargefylt"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Minustegn, fargefylt"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Deletegn, fargefylt"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Pil til høyre"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Løkke"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Dobbeltløkke"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Pil til høyre og opp"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Pil til høyre og ned"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Venstrepil. fargefylt"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Opp-pil, fargefylt"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Ned-pil, fargefylt"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Stor fargefylt firkant"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Stor firkant"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Middels stor stjerne"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Stor, tykk sirkel"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Bølgestrek"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Japansk sangtegn"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Ideogram i sirkel, «gratulerer»"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Ideogram i sirkel «hemmelig»"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Mahjongbrikke, rød drage"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Spillkort, svart joker"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Blodtype A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Blodtype B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Blodtype O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Parkeringsplass"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Blodtype AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"fjern-symbol"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Kult-symbol"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Gratis-symbol"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"ID-symbol"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"nytt-symbol"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Ikke bra-symbol"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"OK-symbol"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"SOS-symbol"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Opp-symbol med utropstegn"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"versus-symbol"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Japansk ord, «her»"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Japansk ord, «tjeneste»"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Ideogram i firkant, «gratis»"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Ideogram i firkant, «reservert sitteplass»"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Ideogram i firkant, «forbud»"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Ideogram i firkant, «ledig»"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Ideogram i firkant, «aksept»"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Ideogram i firkant, «fullt»"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Ideogram i firkant, «betalt»"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Ideogram i firkant, «månedlig»"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Ideogram i firkant, «søknad»"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Ideogram i firkant, «rabatt»"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Ideogram i firkant, «åpent»"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Ideogram i sirkel, «fordel»"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Ideogram i sirkel, «aksept»"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Syklon"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Tåkete"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Lukket paraply"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Natt med stjerner"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Soloppgang over fjell"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Soloppgang"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Bylandskap i skumring"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Solnedgang over byhorisont"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Regnbue"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Bro om natten"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Vannbølge"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Vulkan"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Melkeveien"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Jordklode, Europa og Afrika"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Jordklode, Amerika"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Jordklode, Asia, Australia"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Jordklode med meridianer"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Nymåne"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Tiltakende måne"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Tiltakende kvartmåne"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Tiltakende måne"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Fullmåne"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Avtakende måne"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Avtakende kvartmåne"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Avtakende måne"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Halvmåne"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Nymåne med fjes"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Tiltakende kvartmåne med fjes"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Avtakende kvartmåne med fjes"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Fullmåne med fjes"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Sol med fjes"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Skinnende stjerne"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Stjerneskudd"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Kastanje"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Spire"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Grantre"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Løvtre med fallende blader"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palme"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Kaktus"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulipan"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Hvitveis"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Rose"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Hibiskus"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Solsikke"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Blomst"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Maiskolbe"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Risplante"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Urte"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Firkløver"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Lønneblad"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Fallende blad"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Blader i vinden"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Sopp"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Tomat"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Aubergine"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Druer"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Melon"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Vannmelon"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Mandarin"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Sitron"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Banan"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ananas"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Rødt eple"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Grønt eple"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Pære"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Fersken"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Kirsebær"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Jordbær"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburger"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Pizzastykke"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Kjøttbein"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Kyllinglår"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Riskjeks"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Risball"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Kokt ris"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Curry og ris"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Dampende bolle"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Spaghetti"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Brød"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Pommes frites"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Ovnsstekt søtpotet"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Mochi"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Sjømat"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Sushi"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Stekt reke"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Fiskekake med sirkelmønster"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Soft-is"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Shave-ice"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Iskrem"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Donut"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Kjeks"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Sjokoladeplate"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Godteri"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lollipop"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Pudding"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Honningkrukke"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Kakestykke"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Lunsjboks"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Matgryte"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Matlaging"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Kniv og gaffel"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Tekopp uten håndtak"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Sake-flaske og -kopp"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Vinglass"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Cocktailglass"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Tropisk drink"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Ølglass"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Skål med ølglass"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Tåteflaske"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Bånd"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Innpakket gave"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Bursdagskake"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Halloween-lykt"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Juletre"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Julenissen"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Fyrverkeri"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Stjerneskudd"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Ballong"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Smellbongbong"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Konfettikule"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Tre med papirremser"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Kryssede flagg"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Furudekorasjon"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Japanske dukker"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Fiskedekorasjon"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Vindspill"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Månesermoni"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Skolesekk"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Studentlue"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Karusellhest"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Pariserhjul"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Berg- og dalbane"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Fiskestang og fisk"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Mikrofon"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Filmkamera"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Kino"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Hodetelefoner"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Palett"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Flosshatt"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Sirkustelt"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Billett"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Filmklapper"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Scenekunst"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Videospill"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Blinkskudd"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Spillemaskin"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Biljard"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Terning"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Bowling"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Spillkort med blomster"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Musikknote"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Musikknoter"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saksofon"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Gitar"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Keyboard"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Trompet"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Fiolin"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"G-nøkkel"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Løpetopp"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Tennisracket og -ball"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Ski og skistøvler"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Basketball og kurv"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Bilraceflagg"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Snowboarder"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Løper"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Surfer"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Trofé"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Hesteveddeløp"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Amerikansk fotball"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Rugby"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Svømmer"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Husbygging"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Hus med hage"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Kontorbygning"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Japansk postkontor"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Europeisk postkontor"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Sykehus"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Bank"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Minibank"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Hotell"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Kjærlighetshotell"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Dagligvarehandel"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Skole"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Storsenter"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Fabrikk"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Rød lykt"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Japansk slott"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Europeisk slott"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Rotte"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Mus"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Okse"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Vannbøffel"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Ku"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Leopard"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Hare"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Katt"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Drage"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Krokodille"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Hval"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Snegle"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Slange"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Hest"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Bukk"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Geit"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Sau"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Ape"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Hane"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Kylling"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Hund"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Gris"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Villsvin"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Elefant"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Blekksprut"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Spiralskjell"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Insekt"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Maur"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Honningbie"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Bille"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Fisk"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Tropisk fisk"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Kulefisk"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Skilpadde"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Nyklekket kylling"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Kylling"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Kylling forfra"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Fugl"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Pingvin"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koalabjørn"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Puddel"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Dromedar"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Kamel"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Delfin"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Mousefjes"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Kufjes"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Tigerfjes"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Harefjes"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Kattefjes"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Dragehode"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Sprutende hval"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Hestefjes"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Apefjes"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Hundefjes"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Grisefjes"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Froskefjes"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Hamsterfjes"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Ulvefjes"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Bjørnefjes"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Pandafjes"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Grisenese"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Poteavtrykk"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Øyne"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Øre"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Nese"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Munn"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Tunge"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Finger som peker opp"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Finger som peker ned"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Finger som peker til venstre"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Finger som peker til høyre"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Knyttet neve"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Vinkende hånd"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"OK-håndtegn"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Tommel opp"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Tommel ned"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Klappende hender"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Åpne hender"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Krone"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Damehatt"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Briller"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Slips"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"T-skjorte"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Olabukser"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Kjole"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Dameklær"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Veske"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Håndveske"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Portemoné"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Herresko"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Treningssko"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Høyhælt sko"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Damesandal"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Damestøvletter"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Fotavtrykk"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Siluett av byste"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Siluett av byster"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Gutt"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Jente"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Mann"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Kvinne"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Familie"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Mann og kvinne som holder hender"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"To menn som holder hender"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"To kvinner som holder hender"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Politibetjent"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Dame med kaninører"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Brud med slør"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Blond person"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Mann med lue"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Mann med turban"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Eldre mann"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Eldre kvinne"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Baby"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Anleggsarbeider"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Prinsesse"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Japansk monster"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Japansk troll"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Spøkelse"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Babyengel"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Romvesen"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Utenomjordisk monster"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Liten djevel"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Hodeskalle"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Resepsjonist"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Vaktmann"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Danser"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Leppestift"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Neglelakk"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Ansiktsmassasje"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Hårklipp"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Frisør"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Sprøyte"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Pille"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Kyssemerke"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Kjærlighetsbrev"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Ring"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Edelsten"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Kyss"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Bukett"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Par med hjerte"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Bryllup"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Bankende hjerrte"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Kunst hjerte"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"To hjerter"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Skinnende hjerte"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Voksende hjerte"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Hjerte med pil"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Blått hjerte"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Grønt hjerte"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Gult hjerte"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Lilla hjerte"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Hjerte med bånd"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Snurrende hjerter"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Hjertedekorasjon"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Diamantform med prikk"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Elektrisk lyspære"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Sint"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bombe"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Sover"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Krasj"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Svettedråper-symbol"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Dråpe"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Forsvinne"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Hundebæsj"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Flekset biceps"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Svimmel"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Snakkeboble"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Tankeboble"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Hvit blomst"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Hundre poeng"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Pengesekk"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Valutakonvertering"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Dollartegn"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Kredittkort"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Seddel med yentegn"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Seddel med dollartegn"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Seddel med eurotegn"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Seddel med pundtegn"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Penger med vinger"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Stigende graf"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Sitteplass"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Datamaskin"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Koffert"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Minidisk"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Diskett"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Blu-ray"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Filmappe"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Åpne filmappen"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Opprullet ark"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Ark som vender opp"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Kalender"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Riv-av-kalender"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Kortindeks"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Stigende graf"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Synkende graf"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Stolpediagram"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Utklippstavle"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Stift"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Knappenål"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Binders"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Linjal"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Trekantlinjal"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Bokmerkerfane"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Spiralblokk"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Notatbok"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Notatbok med dekorativt omslag"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Lukket bok"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Åpen bok"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Grønn bok"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Blå bok"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Oransje bok"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Bøker"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Navneskilt"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Rull"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Notatbok"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Telefon"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Personsøker"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Faks"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Satellittantenne"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Megafon"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Ropert"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Utboks"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Innboks"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Pakke"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"E-post-symbol"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Innkommende e-post"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Utgående e-post"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Lukket postkasse med senket flagg"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Lukket postkasse med heist flagg"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Åpen postkasse med heist flagg"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Åpen postkasse med senket flagg"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Postboks"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Posthorn"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Avis"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Mobiltelefon"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Mobiltelefon med pil"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Vibreringsmodus"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Mobiltelefon av"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Mobiltelefon forbudt"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Singalstyrke"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Kamera"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Videokamera"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"TV"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Radio"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Videoopptak"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Kryssede piler"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Piler med klokken, åpne sirkler"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Piler med klokken, åpne sirkler med overlegg"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Piler med klokken, åpne sirkler"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Piler mot klokken, åpne sirkler"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Lav lysstyrke"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Høy lysstyrke"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Stille"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Høyttaler"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Høyttaler med lavt volum"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Høyttaler med høyt volum"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Batteri"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Elektrisk støpsel"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Forstørrelsesglass mot venstre"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Forstørrelsesglass mot høyre"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Lås med blekkpenn"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Lukket lås med nøkkel"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Nøkkel"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Lås"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Åpen lås"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Klokke"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Stille"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Bokmerke"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Link-symbol"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Alternativknapp"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Tilbake, venstre"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"Avslutt, venstre"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"«På» med utropstegn og pil"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"«Snart» med høyrepil"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"topp med pil"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Aldersgrense 18 år"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"10-tast"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Store bokstaver"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Små bokstaver"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Tall"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Inndatasymbol for symboler"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Latinsk alfabet"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Brann"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Lommelykt"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Skiftenøkkel"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Hammer"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Mutter og skrue"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Kokkekniv"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Pistol"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Mikroskop"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Teleskop"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Krystallkule"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Sekskantet stjerne med prikk i midten"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Japansk symbol for nybegynner"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Tridentsymbol"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Firkantknapp med fargefyll"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Firkantknapp uten fargefyll"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Stor rød sirkel"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Stor blå sirkel"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Stort oransje rutersymbol"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Stort blått rutersymbol"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Lite oransje rutersymbol"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Lite blått rutersymbol"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Rødt oppovervendt trekant"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Rød nedovervendt trekant"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Liten rød oppovervendt trekant"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Liten rød nedovervendt trekant"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Klokka ett"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Klokka to"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Klokka tre"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Klokka fire"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Klokka fem"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Klokka seks"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Klokka sju"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Klokka åtte"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Klokka ni"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Klokka ti"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Klokka elleve"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Klokka tolv"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Klokka halv to"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Klokka halv tre"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Klokka halv fire"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Klokka halv fem"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Klokka halv seks"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Klokka halv sju"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Klokka halv åtte"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Klokka halv ni"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Klokka halv ti"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Klokka halv elleve"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Klokka halv tolv"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Klokka halv ett"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Fuji-fjellet"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Tokyo-tårnet"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Frihetsgudinnen"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Kart over japan"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moyai-statue"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Glisefjes"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Smileansikt med smilende øyne"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Fjes med gledestårer"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Smilende fjes med tenner"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Smil med tennene"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Smilefjes med kaldsvette"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Smilefjes med lukkede øyne"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Smilefjes med glorie"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Smilefjes med horn"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Blinkende ansikt"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Smilende fjes og øyne"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Nam-nam-fjes"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Lettet fjes"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Smilefjes med hjerteøyne"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Smilefjes med solbriller"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Lurt smil"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Nøytralt ansikt"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Uttrykksløst ansikt"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Misfornøyd ansikt"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Kaldsvette"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Bekymret"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Forvirret"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Forbannet"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Kyssende fjes"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Slengkyss"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Kyssende fjes med smil"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Kyss med lukkede øyne"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Fjes som rekker tunge"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Rekke tunge med blunk"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Tungen ut med øynene lukket"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Skuffet fjes"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Bekymret fjes"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Sint ansikt"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Rødt ansikt"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Gråtende ansikt"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Sta"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Triumferende"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Skuffet, men lettet"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Sjokkert med åpen munn"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Forskrekket ansikt"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Redd ansikt"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Slitent ansikt"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Trøtt ansikt"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Slitent ansikt"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Grimase"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Hylgråting"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Åpen munn"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Overrasket"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Kaldsvette og åpen munn"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Skrikende ansikt"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Sjokkert ansikt"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Rødmer"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Sovende fjes"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Svimmelt"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Fjes uten munn"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Fjes med bakteriemaske"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Smilende katt"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Kattefjes med gledestårer"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Smilende katt med åpen munn"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Smilende kattefjes med hjerteøyne"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Kattefjes med lurt smil"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Kyssende katt med lukkede øyne"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Katt med trutmunn"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Gråtende katt"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Sjokkert kattefjes"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Forbudt"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"OK-bevegelse"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Person som bukker dypt"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Ser ingenting ondt-ape"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Hører ingenting ondt-ape"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Sier ingenting ondt-ape"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Rekker opp hånden"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Person som feirer med hendene i været"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Person som rynker brynene"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Person med trutmunn"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Person med foldede hender"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Rakett"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Helikopter"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Damplokmotiv"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Tog"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Lyntog"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Lyntog med flysnute"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Tog"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Undergrunn"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Tog"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Stasjon"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Trikk"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Trikkevogn"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Buss"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Møtende buss"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Buss"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Bussholdeplass"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Minibuss"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Ambulanse"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Brannbil"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Politibil"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Møtende politibil"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taxi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Møtende taxi"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Bil"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Møtende bil"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Fritidskjøretøy"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Varebil"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Vogntog"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Traktor"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Monorail"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Fjellbane"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Svevebane"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Kabelbane"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Taubane"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Skip"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Robåt"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Speedbåt"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Horisontalt trafikklys"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Vertikale trafikklys"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Byggeplass-skilt"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Politilys"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Posisjonsflagg"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Dør"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Ingen adgang-skilt"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Røykesymbol"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Røyking ikke tillatt-symbol"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Avfall-skilt"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Ikke kast søppel-skilt"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Drikkbart vann"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Ikke drikkbart vann"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Sykkel"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"No bicycles"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Syklist"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Fjellsyklist"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Fotgjenger"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Fotgjengere ikke tillatt"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Kryssende barn"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Menn"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Kvinner"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Toalett"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Baby"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Toalett"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Do"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Dusj"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Badekar"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Badekar"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Passkontroll"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Toll"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Baggasjebånd"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Glemt bagasje"</string>
+</resources>
diff --git a/java/res/values-nb/strings-talkback-descriptions.xml b/java/res/values-nb/strings-talkback-descriptions.xml
index cdb6858..d282006 100644
--- a/java/res/values-nb/strings-talkback-descriptions.xml
+++ b/java/res/values-nb/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Ingen tekst er skrevet inn"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> retter <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> til <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> utfører automatisk retting"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Ingen forslag"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Ukjent tegn"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Flere symboler"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Stor I med prikk over"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Ukjent symbol"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Ukjent emoji"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Uinteressert fjes"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Flaut fjes"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Fjes med solbriller"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Overrasket fjes"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Kyssende fjes"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Fjes med rynket panne"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Alternative tegn er tilgjengelige"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Alternative tegn fjernes"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Alternative forslag er tilgjengelige"</string>
diff --git a/java/res/values-nb/strings.xml b/java/res/values-nb/strings.xml
index 29fd367..db04ee5 100644
--- a/java/res/values-nb/strings.xml
+++ b/java/res/values-nb/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrer ved tastetrykk"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Lyd ved tastetrykk"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Hurtigvindu ved tastetrykk"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Innstillinger"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Kontoer og personvern"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Utseende og utforming"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Ordføring"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Tekstkorrigering"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Avansert"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Aktivér delt tastatur"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Syknronisering av Google-tastatur"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Synkronisering er slått på"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Synkroniser den personlige ordboken din på alle enheter"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Synkroniser nå"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Slett nettskydata"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Sletter de synkroniserte dataene dine fra Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"De synkroniserte dataene blir slettet fra skyen. Er du sikker?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Slett"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Avbryt"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Den personlige ordlisten din blir synkronisert og sikkerhetskopiert til Google-tjenere. For å bidra til å forbedre produktene våre, kan det hende vi samler inn informasjon om ordfrekvens. Innsamling og bruk av all informasjon skjer i henhold til "<a href="https://www.google.com/policies/privacy">"Googles personvernregler"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Legg en Google-konto til enheten for å aktivere denne funksjonen"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Bytt inndatametode"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Tasten for språkbytte dekker også andre inndatametoder"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Nøkkel for språkskifte"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Vis når flere inndataspråk er aktivert"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Vis lysbildeindikator"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Bruk en visuell indikator når du skyver fra Shift- eller symboltaster"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Tregt tastevindu"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"U/ forsinkelse"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Standard"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Hovedordliste"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Vis rettingsforslag"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Vis ordforslag under skriving"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Vis alltid"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Vis i stående modus"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Skjul alltid"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Blokkér støtende ord"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Ikke foreslå potensielt støtende ord"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Autokorrektur"</string>
@@ -85,39 +87,41 @@
     <string name="voice_input" msgid="3583258583521397548">"Tast for taleinndata"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ingen taleinndatametoder er aktivert. Sjekk Språk og inndata-innstillingene."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Konfigurer inndatametoder"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Inndataspråk"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Send tilbakemelding"</string>
-    <string name="select_language" msgid="3693815588777926848">"Inndataspråk"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Språk"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Hjelp og tilbakemelding"</string>
+    <string name="select_language" msgid="5709487854987078367">"Språk"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Trykk på nytt for å lagre"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Trykk her for å lagre"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Ordbok tilgjengelig"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Tastaturtema"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Bytt konto"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Ingen kontoer er valgt"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Du bruker for øyeblikket <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Avbryt"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Logg av"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Velg kontoen du vil bruke"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Engelsk (Storbritannia)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Engelsk (USA)"</string>
-    <string name="subtype_es_US" msgid="5583145191430180200">"Spansk (USA)"</string>
+    <string name="subtype_es_US" msgid="5583145191430180200">"spansk (USA)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Serbisk (latin)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Engelsk (Storbritannia) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Engelsk (USA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
-    <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Spansk (USA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_es_US" msgid="510930471167541338">"spansk (USA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Serbisk (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tradisjonelt)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (kyrillisk)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (latin)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (kompakt)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Ingen språk (alfabet)"</string>
-    <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabet (QWERTY)"</string>
+    <string name="subtype_no_language_qwerty" msgid="244337630616742604">"alfabet (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabet (QWERTZ)"</string>
     <string name="subtype_no_language_azerty" msgid="8144348527575640087">"Alfabet (AZERTY)"</string>
     <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Alfabet (Dvorak)"</string>
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabet (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabet (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Tastaturtema"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Egendefinerte inndata"</string>
     <string name="add_style" msgid="6163126614514489951">"Legg til stil"</string>
     <string name="add" msgid="8299699805688017798">"Legg til"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Aktiver"</string>
     <string name="not_now" msgid="6172462888202790482">"Ikke nå"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Inndatastilen finnes allerede: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Forsinkelse lange tastetrykk"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Vibrasjonstid ved tastetrykk"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Lydstyrke ved tastetrykk"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Bruk en ekstern ordlistefil"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Det ligger ingen ordboksfiler i Nedlastinger-mappen"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Velg ordboksfilen du vil installere"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Vil du virkelig installere denne filen for <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Det oppsto en feil"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Forsinkelse lange tastetrykk"</string>
     <string name="button_default" msgid="3988017840431881491">"Standard"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Velkommen til <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"med Ordføring"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Nå kan du skrive inn alle favorittappene dine med <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Konfigurer flere språk"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Ferdig"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Vis app-ikonet"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Vis app-ikonet i appvelgeren"</string>
     <string name="app_name" msgid="6320102637491234792">"Ordlisteleverandør"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Ordlisteleverandør"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Ordlistetjeneste"</string>
diff --git a/java/res/values-ne-rNP/strings-emoji-descriptions.xml b/java/res/values-ne-rNP/strings-emoji-descriptions.xml
index a3419b8..39e5bc0 100644
--- a/java/res/values-ne-rNP/strings-emoji-descriptions.xml
+++ b/java/res/values-ne-rNP/strings-emoji-descriptions.xml
@@ -129,8 +129,8 @@
     <string name="spoken_emoji_27A1" msgid="3513434778263100580">"कालो दाँयातीर तीर"</string>
     <string name="spoken_emoji_27B0" msgid="203395646864662198">"घुम्रिएको फेरो"</string>
     <string name="spoken_emoji_27BF" msgid="4940514642375640510">"दोहोरो घुम्रिएको फेरो"</string>
-    <string name="spoken_emoji_2934" msgid="9062130477982973457">"दाँयातीर इशारा तीर त्यसपछि माथिको घुमाँइ"</string>
-    <string name="spoken_emoji_2935" msgid="6198710960720232074">"दाँयातीर इशारा तीर त्यसपछि तलको घुमाँइ"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"दाँया तिर  देखादने तीर त्यसपछि माथिको घुमाई"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"दाँया तिर देखाउने तीर त्यसपछि तलको घुमाँइ"</string>
     <string name="spoken_emoji_2B05" msgid="4813405635410707690">"कालोतीर बायाँतर्फ"</string>
     <string name="spoken_emoji_2B06" msgid="1223172079106250748">"कालो तीर माथि तर्फ"</string>
     <string name="spoken_emoji_2B07" msgid="1599124424746596150">"कालो तीर तल तर्फ"</string>
@@ -267,7 +267,7 @@
     <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"कुकीज"</string>
     <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"चकलेट बार"</string>
     <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"क्यान्डी"</string>
-    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"लालीपप"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lollipop"</string>
     <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"कस्तार्ड"</string>
     <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"महदानी"</string>
     <string name="spoken_emoji_1F370" msgid="7243244547866114951">"सर्टकेक"</string>
@@ -669,10 +669,10 @@
     <string name="spoken_emoji_1F537" msgid="3158915214347274626">"ठूलो नीलो हीरा"</string>
     <string name="spoken_emoji_1F538" msgid="4300084249474451991">"लघु सुन्तला हीरा"</string>
     <string name="spoken_emoji_1F539" msgid="6535159756325742275">"लघु नीलो हीरा"</string>
-    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"माथी-इशारा रातो त्रिकोण"</string>
-    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"तल-इशारा रातो त्रिकोण"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"माथि-देखाउने रातो त्रिकोण"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"तल-देखाउने रातो त्रिकोण"</string>
     <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"माथी इशारा सानो रातो त्रिकोण"</string>
-    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"तल-इशारा सानो रातो त्रिकोण"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"तल-देखाउने सानो रातो त्रिकोण"</string>
     <string name="spoken_emoji_1F550" msgid="7761392621689986218">"घडी अनुहार एक बजे"</string>
     <string name="spoken_emoji_1F551" msgid="2699448504113431716">"घडी अनुहार दुई बजे"</string>
     <string name="spoken_emoji_1F552" msgid="5872107867411853750">"घडी अनुहार तीन बजे"</string>
diff --git a/java/res/values-ne-rNP/strings-talkback-descriptions.xml b/java/res/values-ne-rNP/strings-talkback-descriptions.xml
index 2bbd178..4177f71 100644
--- a/java/res/values-ne-rNP/strings-talkback-descriptions.xml
+++ b/java/res/values-ne-rNP/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"कुनै पाठ प्रविष्टि गरिएको छैन"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> ले <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> लाई <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> मा सच्याउँछ"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> ले स्वतः सच्याउने गर्छ"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"कुनै सुझाव छैन"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"अज्ञात वर्ण"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"सिफ्ट"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"थप प्रतीकहरु"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Capital I, dot above"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"अज्ञात प्रतीक"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"अज्ञात इमोजी"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"थकित अनुहार"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"लज्जित अनुहार"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"घाम चस्मा लगाएको अनुहार"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"छक्क परेको अनुहार"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"चुम्बन अनुहार"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"पालिस लगाएको अनुहार"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"वैकल्पिक वर्णहरू उपलब्ध छन्"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"वैकल्पिक वर्णहरू खारेज गरियो"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"वैकल्पिक सुझावहरू उपलब्ध छन्"</string>
diff --git a/java/res/values-ne-rNP/strings.xml b/java/res/values-ne-rNP/strings.xml
index 3220169..bc96c49 100644
--- a/java/res/values-ne-rNP/strings.xml
+++ b/java/res/values-ne-rNP/strings.xml
@@ -26,18 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"कुञ्जी थिच्दा भाइब्रेट"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"कुञ्जी थिच्दा आवाज"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"कुञ्जी दबाउँदा पपअप"</string>
-    <string name="settings_screen_input" msgid="2808654300248306866">"निवेश प्राथमिकता"</string>
-    <string name="settings_screen_appearances" msgid="3611951947835553700">"उपस्थिति"</string>
-    <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"बहुभाषी विकल्प"</string>
-    <string name="settings_screen_gesture" msgid="9113437621722871665">"इशारा टाइप प्राथमिकता"</string>
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"प्राथमिकताहरू"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"खाताहरू तथा गोपनीयता"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"आवरण तथा लेआउटहरू"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"इशारा टाइपिङ"</string>
     <string name="settings_screen_correction" msgid="1616818407747682955">"पाठ सुधार"</string>
     <string name="settings_screen_advanced" msgid="7472408607625972994">"उन्नत"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"विषयवस्तु"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"विभाजित कुञ्जीपाटी सक्षम गर्नुहोस्"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google किबोर्ड सिंक गर्नुहोस्"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"सिंक सक्रिय गरिएको छ"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"तपाईंको व्यक्तिगत शब्दकोषलाई यन्त्रहरूमा सिंक गर्नुहोस्"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"अहिले सिंक गर्नुहोस्"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"क्लाउड डेटा मेटाउनुहोस्"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Google बाट तपाईँको सिङ्क गरिएको डाटा मेटाउँछ"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"तपाईंको सिंक गरिएको डेटालाई क्लाउडबाट मेटाइनेछ। के तपाईं निश्चित हुनुहुन्छ?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"मेटाउनुहोस्"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"रद्द गर्नुहोस्"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"तपाईँको व्यक्तिगत शब्दकोश सिंक गरेर Google सर्भरहरूमा जगेडा राखिने छ। शब्द आवृत्तिको तथ्याङ्क जानकारी हाम्रो उत्पादनहरू सुधार गर्न मद्दतका लागि संकलन हुन सक्छ। संग्रह र सबै जानकारीको प्रयोग  "<a href="https://www.google.com/policies/privacy">" Google को गोपनीयता नीति "</a>" अनुरूप हुने छ।"</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"कृपया यो सुविधा सक्षम गर्न यो यन्त्रमा एउटा Google खाता थप्नुहोस्"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"अन्य इनपुट विधिमा स्विच गर्नुहोस्"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"भाषा स्विच किले अन्य इनपुट विधि पनि समेट्छ"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"भाषा स्विच कुञ्जी"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"जब बहुसङ्ख्यक इनपुट भाषाहरू सक्षम भएपछि देखाउनुहोस्"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"स्लाइड सूचक देखाउनुहोस्"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"सिफ्ट वा प्रतिक कुञ्जीमा स्लाइड गर्ने बेला दृश्य सङ्केत देखाउनुहोस्"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"कि पपअप खारेजी ढिलाइ"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"ढिलाइ छैन"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"पूर्वनिर्धारित"</string>
@@ -49,16 +60,13 @@
     <string name="enable_metrics_logging" msgid="5506372337118822837">"<xliff:g id="APPLICATION_NAME">%s</xliff:g>सुधार गर्नुहोस्"</string>
     <string name="use_double_space_period" msgid="8781529969425082860">"डबल-स्पेस पूर्णविराम"</string>
     <string name="use_double_space_period_summary" msgid="6532892187247952799">"स्पेसबारमा डबल ट्याप गर्नाले पूर्णविरामपछि स्पेस राख्दछ"</string>
-    <string name="auto_cap" msgid="1719746674854628252">"स्वतः पूँजिकरण"</string>
+    <string name="auto_cap" msgid="1719746674854628252">"स्वतः क्यापिटलाइजेसन"</string>
     <string name="auto_cap_summary" msgid="7934452761022946874">"प्रत्येक वाक्यको पहिलो शब्द क्यापिटल गर्नुहोस्"</string>
     <string name="edit_personal_dictionary" msgid="3996910038952940420">"व्यक्तिगत शब्दकोश"</string>
     <string name="configure_dictionaries_title" msgid="4238652338556902049">"एड-अन शब्दकोश"</string>
     <string name="main_dictionary" msgid="4798763781818361168">"मुख्य शब्दकोश"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"सुधार सुझावहरू देखाउने"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"टाइप गर्ने बेलामा सुझाव शब्दहरू देखाउनुहोस्"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"सधैँ देखाउने"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"चित्र मोडमा देखाउनुहोस्"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"सधैँ लुकाउने"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"आपत्तिजनक शब्दहरूलाई रोक्नुहोस्"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"सम्भावित आपत्तिजनक शब्दहरू सुझाव नगर्नुहोस्"</string>
     <string name="auto_correction" msgid="7630720885194996950">"स्वतः सुधार"</string>
@@ -79,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"आवाज इनपुट कुञ्जी"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"कुनै आवाज इनपुट विधिहरू सक्षम गरिएका छैनन्। भाषा र इनपुट सेटिङहरूको जाँच गर्नुहोस्।"</string>
     <string name="configure_input_method" msgid="373356270290742459">"इनपुट विधिहरू कन्फिगर गर्नुहोस्"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"इनपुट भाषाहरू"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"प्रतिक्रिया पठाउनुहोस्"</string>
-    <string name="select_language" msgid="3693815588777926848">"इनपुट भाषाहरू"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"भाषाहरू"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"मद्दत र प्रतिक्रिया"</string>
+    <string name="select_language" msgid="5709487854987078367">"भाषाहरू"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"बचत गर्न पुनः छुनुहोस्"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"सुरक्षित गर्न यहाँ छुनुहोस्"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"उपलब्ध शब्दकोश"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"किबोर्ड थिम"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"खाताहरू स्विच गर्नुहोस्"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"कुनै खाता चयन गरिएको छैन"</string>
+    <string name="account_selected" msgid="2846876462199625974">"हाल प्रयोग गर्दै <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"ठीक छ"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"रद्द गर्नुहोस्"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"बाहिर निकल्नुहोस्"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"प्रयोग गर्न खाता चयन गर्नुहोस्"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"अंग्रेजी (युके)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"अंग्रेजी (युएस्)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"स्पेनिस (युएस्)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"हिङ्लिस"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"सर्बियाई (ल्याटिन)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"अंग्रेजी (बेलायत) ( <xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g> )"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"अंग्रेजी (अमेरिका) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"स्पेनेली (अमेरिका) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"हिङ्लिस (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"सर्बियाई (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (परम्परागत)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (सिरिलिक)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ल्याटिन)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (संकुचित)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"कुनै भाषा होइन (वर्णमाला)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"वर्णमाला (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"वर्णमाला (QWERTZ)"</string>
@@ -103,10 +122,6 @@
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"वर्णमाला (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"इमोजी"</string>
     <string name="keyboard_theme" msgid="4909551808526178852">"किबोर्ड थिम"</string>
-    <string name="keyboard_theme_holo_white" msgid="8506588144096428751">"होलो सेतो"</string>
-    <string name="keyboard_theme_holo_blue" msgid="192400518003397418">"होलो नीलो"</string>
-    <string name="keyboard_theme_material_dark" msgid="2701178578784760596">"सामाग्री कालो"</string>
-    <string name="keyboard_theme_material_light" msgid="3479400901818790331">"सामाग्री प्रकाश"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"अनुकूलन इनपुट शैली"</string>
     <string name="add_style" msgid="6163126614514489951">"शैली थप्नुहोस्"</string>
     <string name="add" msgid="8299699805688017798">"थप्नुहोस्"</string>
@@ -118,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"सक्षम पार्नुहोस्"</string>
     <string name="not_now" msgid="6172462888202790482">"अहिले होइन"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"यस्तो इनपुट शैली पहिले नै अवस्थित छ: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"कुञ्जी लामो थिचाइ ढिलाइ"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"कुञ्जी थिचाइ भाइब्रेसन अवधि"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"कुञ्जी थिचाइ आवाज भोल्युम"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"बाह्य शब्दकोश फाइल पढ्नुहोस्"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"डाउनलोड फोल्डरमा कुनै शब्दकोश फाइलहरू छैनन्।"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"स्थापना गर्न कुनै शब्दकोश फाइल चयन गर्नुहोस्"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"वास्तवमै <xliff:g id="LANGUAGE_NAME">%s</xliff:g> को लागि यो फाइल स्थापना गर्नुहुन्छ?"</string>
-    <string name="error" msgid="8940763624668513648">"कुनै त्रुटि भयो"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"कुञ्जी लामो थिचाइ ढिलाइ"</string>
     <string name="button_default" msgid="3988017840431881491">"पूर्वनिर्धारित"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"तपाईँलाई स्वागत छ<xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"इशारा टाइप गर्नेसँग"</string>
@@ -143,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"अब तपाईँ <xliff:g id="APPLICATION_NAME">%s</xliff:g>का साथ तपाईँका सम्पूर्ण मनपर्ने अनुप्रयोगहरू टाइप गर्न सक्नुहुन्छ।"</string>
     <string name="setup_step3_action" msgid="600879797256942259">"थप भाषाहरू कन्फिगर गर्नुहोस्"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"समाप्त भयो"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"अनुप्रयोग आइकन देखाउनुहोस्"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"लन्चरमा अनुप्रयोग आइकन देखाउनुहोस्"</string>
     <string name="app_name" msgid="6320102637491234792">"शब्दकोश प्रदायक"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"शब्दकोश प्रदायक"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"शब्दकोश सेवा"</string>
diff --git a/java/res/values-nl/strings-emoji-descriptions.xml b/java/res/values-nl/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..3b29890
--- /dev/null
+++ b/java/res/values-nl/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Copyrightsymbool"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Gedeponeerd-symbool"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Dubbel uitroepteken"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Uitroepteken vraagteken"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Handelsmerksymbool"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Informatiebron"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Pijl links-rechts"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Pijl omhoog-omlaag"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Pijl naar noordwesten"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Pijl naar noordoosten"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Pijl naar zuidoosten"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Pijl naar zuidwesten"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Gehoekte pijl naar links"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Gehoekte pijl naar rechts"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Horloge"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Zandloper"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Zwarte dubbele driehoekjes naar rechts"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Zwarte dubbele driehoekjes naar links"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Zwarte dubbele driehoekjes omhoog"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Zwarte dubbele driehoekjes omlaag"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Wekker"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Zandloper met lopend zand"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Omcirkelde Latijnse hoofdletter M"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Zwart klein vierkant"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Wit klein vierkant"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Zwart driehoekje naar rechts"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Zwart driehoekje naar links"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Wit middelgroot vierkant"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Zwart middelgroot vierkant"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Wit middelgroot klein vierkant"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Zwart middelgroot klein vierkant"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Zwarte zon met stralen"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Wolk"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Zwarte telefoon"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Stembus met vinkje"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Paraplu met regendruppels"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Warme drank"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Witte wijsvinger omhoog"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Wit lachend gezicht"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Ram"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Stier"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Tweelingen"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Kreeft"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Leeuw"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Maagd"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Weegschaal"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Schorpioen"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Boogschutter"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Steenbok"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Waterman"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Vissen"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Zwarte schoppen"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Zwarte klavers"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Zwarte harten"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Zwarte ruiten"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Heetwaterbronnen"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Zwart universeel recyclingsymbool"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Rolstoelsymbool"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Anker"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Waarschuwingsbord"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Hoogspanningsbord"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Middelgrote witte cirkel"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Middelgrote zwarte cirkel"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Voetbal"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Honkbal"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Sneeuwpop zonder sneeuw"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Zon achter wolk"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Slangendrager"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Verboden toegang"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Kerk"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Fontein"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Vlag in hole"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Zeilboot"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Tent"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Benzinepomp"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Zwarte schaar"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Wit vinkje"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Vliegtuig"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Envelop"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Vuist omhoog"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Hand omhoog"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Overwinningsgebaar"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Potlood"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Zwarte vulpen"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Gevuld vinkje"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Gevuld vermenigvuldigingsteken x"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Sterretjes"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Sterretje met acht spaken"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Zwarte achtpuntige ster"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Sneeuwvlok"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Fonkeling"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Kruis"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Kruis in zwart vierkant"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Gevuld vraagteken"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Vraagteken met omtrek"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Uitroepteken met omtrek"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Gevuld uitroepteken"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Effen zwart hart"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Gevuld plusteken"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Gevuld minteken"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Gevuld deelteken"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Gevulde pijl naar rechts"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Gekrulde lus"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Dubbele gekrulde lus"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Pijl naar rechts en vervolgens omhoog"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Pijl naar rechts en vervolgens omlaag"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Zwarte pijl naar links"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Zwarte pijl-omhoog"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Zwarte pijl-omlaag"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Zwart groot vierkant"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Wit groot vierkant"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Witte middelgrote ster"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Gevulde grote cirkel"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Golvend streepje"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Beurtwisselingsteken"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Omcirkeld ideogram \'Gefeliciteerd\'"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Omcirkeld ideogram \'Geheim\'"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Mahjong-steen rode draak"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Speelkaart zwarte joker"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Bloedgroep A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Bloedgroep B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Bloedgroep O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Parkeerplaats"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Bloedgroep AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"CL in vierkant"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"COOL in vierkant"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"FREE in vierkant"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"ID in vierkant"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"NEW in vierkant"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"NG in vierkant"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"OK in vierkant"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"SOS in vierkant"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"UP met uitroepteken in vierkant"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"VS in vierkant"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Katakana \'Hier\' in vierkant"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Katakana \'Service\' in vierkant"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Ideogram \'Kosteloos\' in vierkant"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Ideogram \'Gereserveerde plaats\' in vierkant"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Ideogram \'Verbod\' in vierkant"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Ideogram \'Ruimte beschikbaar\' in vierkant"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Ideogram \'Acceptatie\' in vierkant"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Ideogram \'Volledig bezet\' in vierkant"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Ideogram \'Betaald\' in vierkant"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Ideogram \'Maandelijks\' in vierkant"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Ideogram \'Aanvraag\' in vierkant"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Ideogram \'Korting\' in vierkant"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Ideogram \'In bedrijf\' in vierkant"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Ideogram\' Voordeel\' in cirkel"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Ideogram \'Acceptatie\' in cirkel"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Cycloon"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Mistig"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Dichte paraplu"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Night met sterren"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Zonsopgang boven de bergen"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Zonsopgang"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Stadslandschap bij zonsondergang"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Zonsondergang over gebouwen"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Regenboog"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Brug bij nacht"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Golf"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Vulkaan"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Melkweg"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Aardbol Europa-Afrika"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Aardbol Noord- en Zuid-Amerika"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Aardbol Azië-Australië"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Aardbol met meridianen"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Symbool voor nieuwe maan"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Symbool voor wassende halvemaan"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Symbool voor maan in eerste kwartaal"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Symbool voor wassende bolvormige maan"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Symbool voor volle maan"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Symbool voor afnemende bolvormige maan"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Symbool voor maan in laatste kwartier"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Symbool voor afnemende halvemaan"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Halvemaan"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Nieuwe maan met gezicht"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Maan in eerste kwartier met gezicht"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Maan in laatste kwartier met gezicht"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Volle maan met gezicht"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Zon met gezicht"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Stralende ster"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Vallende ster"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Kastanje"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Zaailing"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Groenblijvende boom"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Loofboom"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palmboom"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Cactus"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulp"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Kersenbloesem"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Roos"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Hibiscus"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Zonnebloem"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Bloesem"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Maïskolf"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Rijstaar"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Kruid"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Klavertje vier"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Esdoornblad"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Gevallen blad"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Blad dwarrelt in de wind"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Paddestoel"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Tomaat"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Aubergine"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Druiven"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Meloen"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Watermeloen"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Mandarijn"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Citroen"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Banaan"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ananas"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Rode appel"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Groene appel"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Peer"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Perzik"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Kersen"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Aardbei"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburger"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Pizzapunt"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Vlees op het bot"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Kippenpoot"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Rijstcracker"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Rijstballetje"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Gekookte rijst"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Curry en rijst"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Stomende kom"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Spaghetti"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Brood"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Friet"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Gepofte zoete aardappel"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Sushi"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Gefrituurde garnaal"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Viskoekje met krul"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Softijs"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Geschaafd ijs"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"IJs"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Donut"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Cookie"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Chocoladereep"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Snoep"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lolly"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Vla"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Honingpot"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Cake"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Bento box"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Stoofschotel"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Koken"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Vork en mes"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Theekopje zonder oor"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Sakefles en kopje"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Wijnglas"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Cocktailglas"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Tropisch drankje"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Bierglas"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Klinkende bierglazen"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Babyflesje"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Strik"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Ingepakt cadeau"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Verjaardagstaart"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Pompoenlantaarn"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Kerstboom"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Kerstman"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Vuurwerk"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Sterretje"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Ballon"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Party-popper"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Confettibal"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Boom met papierlinten"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Gekruiste vlaggen"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Dennentakdecoratie"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Japanse poppen"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Karperwimpel"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Windklok"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Maankijkceremonie"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Schooltas"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Diplomeringshoed"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Draaimolenpaard"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Reuzenrad"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Achtbaan"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Hengel en vis"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Microfoon"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Filmcamera"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Bioscoop"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Hoofdtelefoon"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Schilderspalet"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Hoge hoed"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Circustent"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Kaartje"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Klapbord"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Podiumkunsten"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Videogame"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Voltreffer"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Fruitautomaat"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Biljart"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Dobbelsteen"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Bowlen"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Speelkaarten met bloemen"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Muzieknoot"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Meerdere muzieknoten"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saxofoon"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Gitaar"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Keyboard"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Trompet"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Viool"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Notenschrift"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Hardloopshirt met sjerp"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Tennisracket en bal"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Ski\'s en skischoen"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Basketbal en basket"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Geblokte vlag"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Snowboarder"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Hardloper"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Surfer"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Trofee"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Paardenrennen"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"American football"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Rugby"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Zwemmer"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Huis bouwen"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Huis met tuin"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Kantoorgebouw"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Japans postkantoor"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Europees postkantoor"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Ziekenhuis"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Bank"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Pinautomaat"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Hotel"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Love-hotel"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Supermarkt"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"School"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Warenhuis"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Fabriek"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Izakaya-lantaarn"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Japans kasteel"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Europees kasteel"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Rat"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Muis"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Os"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Waterbuffel"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Koe"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Luipaard"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Konijn"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Kat"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Draak"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Krokodil"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Walvis"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Slak"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Slang"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Paard"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Ram"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Geit"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Schaap"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Aap"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Haan"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Kip"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Hond"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Varken"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Everzwijn"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Olifant"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Octopus"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Spiraalvormige schelp"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Insect"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Mier"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Honingbij"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Lieveheersbeestje"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Vis"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Tropische vis"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Kogelvis"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Schildpad"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Kuiken dat uit het ei komt"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Kuikentje"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Kuikentje dat naar voren kijkt"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Vogel"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Pinguïn"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Poedel"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Dromedaris"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Kameel"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Dolfijn"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Muizengezicht"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Koeiengezicht"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Tijgergezicht"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Konijnengezicht"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Kattengezicht"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Drakengezicht"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Spuitende walvis"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Paardengezicht"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Apengezicht"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Hondengezicht"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Varkensgezicht"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Kikkergezicht"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Hamstergezicht"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Wolvengezicht"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Berengezicht"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Pandagezicht"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Varkensneus"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Pootafdrukken"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Ogen"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Oor"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Neus"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Mond"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Tong"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Witte hand met wijsvinger omhoog"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Witte hand met wijsvinger omlaag"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Witte hand met wijsvinger naar links"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Witte hand met wijsvinger naar rechts"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Gebalde vuist"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Zwaaiende hand"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"OK-handgebaar"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Duim omhoog"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Duim omlaag"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Klappende handen"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Open handen"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Kroon"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Dameshoed"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Bril"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Stropdas"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"T-shirt"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Jeans"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Jurk"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Dameskleding"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Portemonnee"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Handtas"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Tasje"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Herenschoen"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Sportschoen"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Schoen met hoge hak"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Damessandaal"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Dameslaars"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Voetafdrukken"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Buste in silhouet"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Bustes in silhouet"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Jongen"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Meisje"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Man"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Vrouw"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Familie"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Man en vrouw hand in hand"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Twee mannen hand in hand"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Twee vrouwen hand in hand"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Politieagent"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Vrouw met konijnenoren"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Bruid met sluier"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Persoon met blond haar"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Man met Chinees hoedje"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Man met tulband"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Oudere man"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Oudere vrouw"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Baby"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Bouwvakker"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Prinses"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Japanse oger"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Japanse kobold"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Spook"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Baby-engel"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Buitenaards wezen"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Buitenaards monster"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Duiveltje"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Schedel"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Persoon van informatiebalie"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Gardesoldaat"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Danser"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Lippenstift"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Nagellak"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Gezichtsmassage"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Kapsel"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Kapperspaal"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Injectiespuit"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Pil"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Kusafdruk"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Liefdesbrief"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Ring"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Edelsteen"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Kus"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Boeket"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Stel met hartje"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Bruiloft"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Kloppend hart"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Gebroken hart"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Twee harten"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Glinsterend hart"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Groeiend hart"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Hart met pijl"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Blauw hart"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Groen hart"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Geel hart"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Paars hart"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Hart met lint"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Draaiende harten"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Hartdecoratie"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Ruitvorm met stip in het midden"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Elektrische gloeilamp"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Symbool voor woede"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bom"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Symbool voor slapen"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Symbool voor botsing"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Symbool voor spattende zweetdruppels"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Druppel"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Symbool voor wegrennen"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Poep"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Gespannen biceps"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Symbool voor duizelig"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Spraakballon"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Gedachtenballon"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Witte bloem"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Symbool voor honderd punten"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Zak met geld"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Valutaconversie"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Vetgedrukt dollarteken"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Creditcard"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Bankbiljet met Yen-teken"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Bankbiljet met dollarteken"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Bankbiljet met euroteken"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Bankbiljet met pondteken"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Geld met vleugels"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Grafiek met opwaartse trend en Yen-teken"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Stoel"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Pc"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Koffertje"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Minidisc"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Diskette"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Optische schijf"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"Dvd"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Bestandsmap"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Bestandsmap openen"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Gekrulde pagina"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Naar voren gerichte pagina"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Kalender"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Scheurkalender"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Kaartindex"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Grafiek met opwaartse trend"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Grafiek met neerwaartse trend"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Staafdiagram"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Klembord"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Punaise"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Kopspeld"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Paperclip"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Liniaal"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Geodriehoek"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Bladwijzertabs"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Grootboek"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Schrift"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Schrift met decoratie"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Gesloten boek"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Geopend boek"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Groen boek"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Blauw boek"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Oranje boek"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Boeken"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Naamkaartje"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Rol"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Memo"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Telefoonhoorn"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Pager"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Faxapparaat"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Satellietantenne"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Handluidspreker"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Megafoon"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Postvak UIT"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Postvak IN"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Pakket"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"E-mailsymbool"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Inkomende envelop"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Envelop met pijl-omlaag daarboven"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Gesloten brievenbus met vlag omlaag"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Gesloten brievenbus met vlag omhoog"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Open brievenbus met vlag omhoog"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Open brievenbus met vlag omlaag"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Brievenbus"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Posthoorn"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Krant"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Mobiele telefoon"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Mobiele telefoon met pijl-rechts aan linkerkant"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Trilstand"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Mobiele telefoon uit"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Geen mobiele telefoons"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Antenne met streepjes"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Camera"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Videocamera"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Televisie"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Radio"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Videoband"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Gekruiste pijlen naar rechts"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Twee open horizontale pijlen die rechtsom draaien"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Twee open horizontale pijlen die rechtsom draaien met een cirkel met het cijfer 1"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Twee open verticale pijlen die rechtsom draaien"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Twee open verticale pijlen die linksom draaien"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Symbool voor lage helderheid"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Symbool voor hoge helderheid"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Luidspreker met doorstrepingsteken"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Luidspreker"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Luidspreker met één geluidsgolf"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Luidspreker met drie geluidsgolven"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Batterij"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Elektrische stekker"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Vergrootglas naar links gericht"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Vergrootglas naar rechts gericht"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Slot met vulpen"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Gesloten slot met sleutel"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Sleutel"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Slot"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Open slot"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Bel"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Bel met doorstrepingsteken"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Bladwijzer"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Koppelingsteken"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Keuzerondje"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"BACK met pijl naar links daarboven"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"END met pijl naar links daarboven"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"ON met uitroepteken met pijl naar links en rechts daarboven"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"SOON met pijl naar rechts daarboven"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"TOP met pijl-omhoog daarboven"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Symbool voor niemand onder de achttien"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Cijfertoets tien"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Invoersymbool voor Latijnse hoofdletters"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Invoersymbool voor Latijnse kleine letters"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Invoersymbool voor cijfers"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Invoersymbool voor symbolen"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Invoersymbool voor Latijnse letters"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Vuur"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Zaklamp"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Moersleutel"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Hamer"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Bout en moer"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Keukenmes"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Pistool"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Microscoop"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Telescoop"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Kristallen bol"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Zespuntige ster met stip in het midden"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Japans symbool voor beginner"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Drietand-symbool"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Zwarte vierkant"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Witte vierkant"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Grote rode cirkel"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Grote blauwe cirkel"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Grote oranje ruit"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Grote blauwe ruit"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Kleine oranje ruit"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Kleine blauwe ruit"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Rode driehoek omhoog"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Rode driehoek omlaag"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Kleine rode driehoek omhoog"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Kleine rode driehoek omlaag"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Eén uur op de klok"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Twee uur op de klok"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Drie uur op de klok"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Vier uur op de klok"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Vijf uur op de klok"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Zes uur op de klok"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Zeven uur op de klok"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Acht uur op de klok"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Negen uur op de klok"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Tien uur op de klok"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Elf uur op de klok"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Twaalf uur op de klok"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Half twee op de klok"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Half drie op de klok"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Half vier op de klok"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Half vijf op de klok"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Half zes op de klok"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Half zeven op de klok"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Half acht op de klok"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Half negen op de klok"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Half tien op de klok"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Half elf op de klok"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Half twaalf op de klok"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Half één op de klok"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Berg Fuji"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Tokiotoren"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Vrijheidsbeeld"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Silhouet van Japan"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moyai-standbeeld"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Grijnzend gezicht"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Grijnzend gezicht met lachende ogen"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Gezicht met tranen van geluk"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Lachend gezicht met open mond"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Lachend gezicht met open mond en lachende ogen"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Lachend gezicht met open mond en angstzweet"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Lachend gezicht met open mond en ogen dicht"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Lachend gezicht met halo"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Lachend gezicht met hoorns"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Knipogend gezicht"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Lachend gezicht met lachende ogen"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Gezicht dat geniet van heerlijk eten"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Opgelucht gezicht"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Lachend gezicht met hartvormige ogen"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Lachend gezicht met zonnebril"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Gezicht met grote grijns"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Uitgestreken gezicht"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Uitdrukkingsloos gezicht"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Chagrijnig gezicht"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Gezicht met angstzweet"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Peinzend gezicht"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Verward gezicht"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Onthutst gezicht"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Kussend gezicht"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Gezicht dat een kus uitdeelt"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Kussend gezicht met lachende ogen"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Kussend gezicht met dichte ogen"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Gezicht met uitgestoken tong"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Gezicht met uitgestoken tong en knipoog"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Gezicht met uitgestoken tong en dichte ogen"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Teleurgesteld gezicht"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Bezorgd gezicht"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Boos gezicht"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Pruilend gezicht"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Huilend gezicht"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Volhardend gezicht"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Gezicht met triomfantelijke blik"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Teleurgesteld maar opgelucht gezicht"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Fronsend gezicht met open mond"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Gekweld gezicht"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Angstig gezicht"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Vermoeid gezicht"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Slaperig gezicht"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Moe gezicht"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Gezicht met grimas"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Hard huilend gezicht"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Gezicht met open mond"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Verstomd gezicht"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Gezicht met open mond en angstzweet"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Gezicht dat schreeuwt van angst"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Geschokt gezicht"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Blozend gezicht"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Slapend gezicht"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Duizelig gezicht"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Gezicht zonder mond"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Gezicht met medisch masker"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Grijnzend kattengezicht met lachende ogen"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Kattengezicht met tranen van geluk"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Lachend kattengezicht met open mond"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Lachend kattengezicht met hartvormige ogen"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Kattengezicht met ironische lach"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Kussend kattengezicht met dichte ogen"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Pruilend kattengezicht"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Huilend kattengezicht"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Vermoeid kattengezicht"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Gezicht met \'niet goed\'-gebaar"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Gezicht met \'OK\'-gebaar"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Persoon die diep buigt"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"\'Geen kwaad zien\'-aapje"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"\'Geen kwaad horen\'-aapje"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"\'Geen kwaad spreken\'-aapje"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Vrolijk persoon met één hand in de lucht"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Persoon die beide handen omhoog steekt om iets te vieren"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Fronsend persoon"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Persoon met pruilend gezicht"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Persoon met gevouwen handen"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Raket"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Helikopter"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Stoomlocomotief"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Treinwagon"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Hogesnelheidstrein"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Hogesnelheidstrein met kogelneus"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Trein"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Metro"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Lightrail"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Station"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Tram"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Tramwagon"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Bus"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Naderende bus"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Trolleybus"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Bushalte"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Minibus"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Ambulance"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Brandweerauto"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Politieauto"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Naderende politieauto"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taxi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Naderende taxi"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Auto"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Naderende auto"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Camper"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Bestelbus"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Vrachtwagen met oplegger"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Tractor"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Monorail"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Bergspoor"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Zweeftrein"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Bergkabelbaan"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Luchtkabelbaan"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Schip"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Roeiboot"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Speedboot"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Horizontale verkeerslichten"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Verticale verkeerslichten"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Werk in uitvoering"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Zwaailicht"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Driehoekige vlag op paal"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Deur"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"\'Verboden toegang\'-bord"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Roken toegestaan"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Symbool voor niet roken"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Symbool voor afval in prullenbak gooien"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Symbool voor geen afval weggooien"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Symbool voor drinkwater"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Symbool voor geen drinkwater"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Fiets"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Geen fietsen"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Fietser"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Mountainbiker"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Voetganger"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Geen voetgangers"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Kinderoversteek"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Symbool voor herentoilet"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Symbool voor damestoilet"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Toiletsymbool"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Babysymbool"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Toilet"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Wc"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Douche"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Bad"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Badkuip"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Paspoortcontrole"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Douane"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Bagage ophalen"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Achtergelaten bagage"</string>
+</resources>
diff --git a/java/res/values-nl/strings-talkback-descriptions.xml b/java/res/values-nl/strings-talkback-descriptions.xml
index c59f3f2..884cf21 100644
--- a/java/res/values-nl/strings-talkback-descriptions.xml
+++ b/java/res/values-nl/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Geen tekst ingevoerd"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"Met <xliff:g id="KEY_NAME">%1$s</xliff:g> wordt <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> gecorrigeerd naar <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Met <xliff:g id="KEY_NAME">%1$s</xliff:g> voert u automatische correctie uit"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Geen suggestie"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Onbekend teken"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Meer symbolen"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Hoofdletter I, punt erboven"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Onbekend symbool"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Onbekende emoji"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Verveeld gezicht"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Beschaamd gezicht"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Gezicht met zonnebril"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Verbaasd gezicht"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Kussend gezicht"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Fronsend gezicht"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Alternatieve tekens zijn beschikbaar"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Alternatieve tekens worden verwijderd"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Alternatieve suggesties zijn beschikbaar"</string>
diff --git a/java/res/values-nl/strings.xml b/java/res/values-nl/strings.xml
index 33350b1..807a1a3 100644
--- a/java/res/values-nl/strings.xml
+++ b/java/res/values-nl/strings.xml
@@ -26,25 +26,30 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Trillen bij toetsaanslag"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Geluid bij toetsaanslag"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Pop-up bij toetsaanslag"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Voorkeuren"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Accounts en privacy"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Uiterlijk en indelingen"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Invoer met bewegingen"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Tekstcorrectie"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Geavanceerd"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Thema"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Gesplitst toetsenbord inschakelen"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google-toetsenbordsynchronisatie"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Synchronisatie is ingeschakeld"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Uw persoonlijke woordenboek synchroniseren op meerdere apparaten"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Nu synchroniseren"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Cloudgegevens verwijderen"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Hiermee worden uw gesynchroniseerde gegevens verwijderd van Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Wilt u gesynchroniseerde gegevens echt verwijderen uit de cloud?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Verwijderen"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Annuleren"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Uw persoonlijke woordenboek wordt gesynchroniseerd en er wordt een back-up gemaakt op servers van Google. De statistische gegevens voor woordfrequentie kunnen worden verzameld om onze producten te verbeteren. Het verzamelen en gebruik van alle gegevens is in overeenstemming met het "<a href="https://www.google.com/policies/privacy">"Privacybeleid van Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Voeg een Google-account toe om deze functie in te schakelen"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Invoermeth. overschakelen"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Schakelknop voor taal ook van toepassing op andere invoermethoden"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Schakelknop voor taal"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Weergeven wanneer meerdere invoertalen zijn geselecteerd"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Schuifaanduiding weergeven"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Zichtbare aanduiding weergeven wanneer wordt geschoven met Shift- of symbooltoetsen"</string>
-    <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Afwijz.vertr. toetspop-up"</string>
+    <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Vertr.sluiten toetspop-up"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Geen vertraging"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Standaard"</string>
     <string name="abbreviation_unit_milliseconds" msgid="8700286094028323363">"<xliff:g id="MILLISECONDS">%s</xliff:g> ms"</string>
@@ -62,10 +67,7 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Algemeen woordenboek"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Correctievoorstellen weergeven"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Voorgestelde woorden weergeven tijdens typen"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Altijd weergeven"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Weergeven in staande modus"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Altijd verbergen"</string>
-    <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Aanstootgevende woorden blokk."</string>
+    <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Grof taalgebruik blokkeren"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Geen potentieel aanstootgevende woorden voorstellen"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Autocorrectie"</string>
     <string name="auto_correction_summary" msgid="5625751551134658006">"Met spatiebalk en interpunctie worden verkeerd gespelde woorden automatisch gecorrigeerd"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Toets voor spraakinvoer"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Geen spraakinvoermethoden ingeschakeld. Ga naar \'Instellingen voor taal en invoer\'."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Invoermethoden configureren"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Invoertalen"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Feedback verzenden"</string>
-    <string name="select_language" msgid="3693815588777926848">"Invoertalen"</string>
-    <string name="hint_add_to_dictionary" msgid="573678656946085380">"Raak nogmaals aan om op te slaan"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Talen"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Help en feedback"</string>
+    <string name="select_language" msgid="5709487854987078367">"Talen"</string>
+    <string name="hint_add_to_dictionary" msgid="573678656946085380">"Tik nogmaals om op te slaan"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Tik hier om op te slaan"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Woordenboek beschikbaar"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Toetsenbordthema"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Schakelen tussen accounts"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Geen accounts geselecteerd"</string>
+    <string name="account_selected" msgid="2846876462199625974">"<xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g> wordt momenteel gebruikt"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Annuleren"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Uitloggen"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Selecteer een account om te gebruiken"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Engels (GB)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Engels (VS)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Spaans (VS)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hindi-Engels"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Servisch (Latijns)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Engels (VK) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Engels (VS) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Spaans (VS) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hindi-Engels (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Servisch (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (traditioneel)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Cyrillisch)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Latijns)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (compact)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Geen taal (alfabet)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabet (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabet (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabet (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabet (pc)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Toetsenbordthema"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Aangep. invoerstijlen"</string>
     <string name="add_style" msgid="6163126614514489951">"Stijl toev."</string>
     <string name="add" msgid="8299699805688017798">"Toevoegen"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Inschakelen"</string>
     <string name="not_now" msgid="6172462888202790482">"Niet nu"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Dezelfde invoerstijl bestaat al: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Vertraging toets lang indrukkn"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Trilingsduur bij toetsgebruik"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Geluidsvolume bij toetsgebruik"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Extern woordenboekbestand lezen"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Geen woordenboekbestanden in de map \'Downloads\'"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Selecteer een woordenboekbestand om te installeren"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Wilt u dit bestand voor het <xliff:g id="LANGUAGE_NAME">%s</xliff:g> echt installeren?"</string>
-    <string name="error" msgid="8940763624668513648">"Er is een fout opgetreden"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Vertraging toets lang indrukkn"</string>
     <string name="button_default" msgid="3988017840431881491">"Standaard"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Welkom bij <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"met Invoer met bewegingen"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"U kunt nu in al uw favoriete apps typen met <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Extra talen configureren"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Voltooid"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"App-pictogram weergeven"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"App-pictogram weergeven in het opstartprogramma"</string>
     <string name="app_name" msgid="6320102637491234792">"Woordenboekleverancier"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Woordenboekleverancier"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Woordenboekservice"</string>
diff --git a/java/res/values-pl/strings-emoji-descriptions.xml b/java/res/values-pl/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..27a7966
--- /dev/null
+++ b/java/res/values-pl/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Znak praw autorskich"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Zarejestrowany znak towarowy"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Podwójny wykrzyknik"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Wykrzyknik i pytajnik"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Zastrzeżony znak towarowy"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Źródło informacji"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Strzałka w lewo i w prawo"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Strzałka w górę i w dół"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Strzałka w kierunku północno-zachodnim"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Strzałka w kierunku północno-wschodnim"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Strzałka w kierunku południowo-wschodnim"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Strzałka w kierunku południowo-zachodnim"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Strzałka w lewo z hakiem"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Strzałka w prawo z hakiem"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Zegarek"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Klepsydra"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Czarna podwójna strzałka trójkątna w prawo"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Czarna podwójna strzałka trójkątna w lewo"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Czarna podwójna strzałka trójkątna w górę"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Czarna podwójna strzałka trójkątna w dół"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Budzik"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Klepsydra z przesypującym się piaskiem"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Wielka litera M w kole"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Mały czarny kwadrat"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Mały biały kwadrat"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Czarny trójkąt w prawo"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Czarny trójkąt w lewo"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Biały średni kwadrat"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Czarny średni kwadrat"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Biały niewielki kwadrat"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Czarny niewielki kwadrat"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Czarne słońce z promieniami"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Chmura"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Czarny telefon"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Zaznaczona kratka"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Parasol z kroplami deszczu"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Gorący napój"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Biały palec wskazujący w górę"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Biała uśmiechnięta buźka"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Baran"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Byk"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Bliźnięta"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Rak"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Lew"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Panna"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Waga"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Skorpion"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Strzelec"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Koziorożec"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Wodnik"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Ryby"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Pik"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Trefl"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Kier"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Karo"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Gorące źródła"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Czarny uniwersalny znak recyclingu"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Znak wózka inwalidzkiego"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Kotwica"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Znak ostrzegawczy"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Znak wysokiego napięcia"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Średnie białe koło"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Średnie czarne koło"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Piłka nożna"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Piłka baseballowa"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Bałwanek"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Słońce za chmurą"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Wężownik"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Zakaz wstępu"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Kościół"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Fontanna"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Pole golfowe"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Żaglówka"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Namiot"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Dystrybutor paliwa"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Czarne nożyczki"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Znak zaznaczenia"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Samolot"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Koperta"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Uniesiona pięść"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Uniesiona ręka"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Gest zwycięstwa"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Ołówek"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Czarna stalówka"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Znak zaznaczenia"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Znak mnożenia x"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Iskry"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Gwiazdka ośmioramienna"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Gwiazda ośmioramienna"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Płatek śniegu"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Iskra"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Krzyżyk"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Znak X kwadracie oznaczający zaprzeczenie"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Czarny ozdobny znak zapytania"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Biały ozdobny znak zapytania"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Biały ozdobny wykrzyknik"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Czarny ozdobny wykrzyknik"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Czarne serce"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Znak plusa"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Znak minusa"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Znak dzielenia"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Czarna strzałka w prawo"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Pętla"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Podwójna pętla"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Strzałka w prawo skręcająca w górę"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Strzałka w prawo skręcająca w dół"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Czarna strzałka w lewo"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Czarna strzałka w górę"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Czarna strzałka w dół"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Duży czarny kwadrat"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Duży biały kwadrat"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Biała średnia gwiazda"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Duże koło"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Fala"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Znak rozpoczęcia partii wokalisty"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Okrągły symbol gratulacji"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Okrągły symbol tajemnicy"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Kafelek mahjong czerwony smok"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Karta Joker"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Grupa krwi A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Grupa krwi B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Grupa krwi 0"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Parking"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Grupa krwi AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"Kwadratowy znak CL, czyli Czyste"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Kwadratowy znak Cool czyli Świetnie"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Kwadratowy znak Free, czyli Bezpłatne"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"Kwadratowy znak ID, czyli Identyfikator"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Kwadratowy znak New, czyli Nowy"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Kwadratowy znak NG, czyli Niedobrze"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Kwadratowy znak OK"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"Kwadratowy znak SOS"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Kwadratowy znak UP, czyli W górę, z wykrzyknikiem"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Kwadratowy znak VS, czyli Kontra"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Kwadratowy znak Tutaj w zapisie katakana"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Kwadratowy znak Usługa w zapisie katakana"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Kwadratowy symbol Bezpłatne"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Kwadratowy symbol Zarezerwowane"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Kwadratowy symbol zakazu"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Kwadratowy symbol wolnego miejsca"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Kwadratowy symbol akceptacji"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Kwadratowy symbol Wszystkie miejsca zajęte"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Kwadratowy symbol Zapłacone"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Kwadratowy symbol Miesięcznie"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Kwadratowy symbol aplikacji"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Kwadratowy symbol rabatu"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Kwadratowy symbol Otwarte"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Okrągły symbol korzyści"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Okrągły symbol akceptacji"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Cyklon"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Mgła"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Zamknięty parasol"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Rozgwieżdżone niebo"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Wschód słońca nad górami"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Wschód słońca"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Miasto o zmierzchu"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Zachód słońca nad budynkami"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Tęcza"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Most w nocy"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Fala"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Wulkan"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Droga Mleczna"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Kula ziemska: Europa i Afryka"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Kula ziemska: Ameryki"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Kula ziemska: Azja i Australia"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Kula ziemska z południkami i równoleżnikami"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Symbol nowiu"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Symbol wzrastającego sierpa Księżyca"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Symbol pierwszej kwadry"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Symbol poszerzonego Księżyca"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Symbol Księżyca w pełni"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Symbol malejącego Księżyca"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Symbol ostatniej kwadry"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Symbol ubywającego sierpa Księżyca"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Sierp Księżyca"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Księżyc w nowiu z twarzą"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Pierwsza kwadra Księżyca z twarzą"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Ostatnia kwadra Księżyca z twarzą"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Pełnia Księżyca z twarzą"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Słońce z twarzą"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Świecąca gwiazdka"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Spadająca gwiazda"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Orzech"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Roślinka"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Choinka"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Drzewo liściaste"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palma"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Kaktus"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulipan"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Kwitnąca wiśnia"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Róża"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Ketmia"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Słonecznik"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Kwiat"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Kolba kukurydzy"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Ryż"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Zioło"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Czterolistna koniczynka"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Liść klonowy"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Spadające liście"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Liście na wietrze"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Grzyb"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Pomidor"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Bakłażan"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Winogrona"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Melon"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Arbuz"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Mandarynka"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Cytryna"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Banan"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ananas"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Czerwone jabłko"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Zielone jabłko"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Gruszka"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Brzoskwinia"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Wiśnie"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Truskawka"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburger"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Kawałek pizzy"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Mięso z kością"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Udko drobiowe"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Krakers ryżowy"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Kulka ryżowa"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Miseczka z ryżem"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Ryż z curry"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Parująca miska"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Spaghetti"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Chleb"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Frytki"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Pieczony ziemniak"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Sushi"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Smażona krewetka"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Ciastko rybne ze spiralą"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Lody włoskie"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Lody kulkowe"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Lody"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Pączek"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Ciastko"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Tabliczka czekolady"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Cukierek"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lizak"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Ciastko kremowe"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Garnek z miodem"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Kawałek tortu"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Pudełko bento"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Miska z jedzeniem"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Patelnia"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Nóż i widelec"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Filiżanka bez uszka"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Butelka sake i czarka"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Kieliszek na wino"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Kieliszek koktajlowy"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Drink"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Kufel z piwem"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Kufle z piwem"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Butelka ze smoczkiem"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Wstążka"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Prezent"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Tort urodzinowy"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Lampa z dyni"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Choinka bożonarodzeniowa"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Święty Mikołaj"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Fajerwerki"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Sztuczne ognie"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Balonik"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Tuba strzelająca"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Konfetti"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Drzewo życzeń"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Japońskie flagi"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Stroiki świąteczne"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Japońskie lalki"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Flaga w kształcie karpi"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Dzwonki wietrzne"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Święto podziwiania Księżyca"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Tornister"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Czapka akademicka"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Konik z karuzeli"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Diabelski młyn"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Kolejka górska w wesołym miasteczku"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Wędka z rybą"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Mikrofon"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Kamera"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Kino"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Słuchawka"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Paleta"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Cylinder"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Cyrk"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Bilet"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Klaps"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Maski"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Gra wideo"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Strzał w 10"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Automat do gier"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Kula bilardowa"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Kostka do gry"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Kręgle"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Karta"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Nuta"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Nuty"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saksofon"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Gitara"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Klawisze fortepianowe"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Trąbka"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Skrzypce"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Klucz wiolinowy na pięciolinii"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Koszulka na ramiona"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Rakieta i piłka tenisowa"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Narta z butem narciarskim"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Piłka wpadająca do kosza"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Flaga w kratkę"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Snowboardzista"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Biegacz"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Surfer"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Puchar"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Jazda konna"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Piłka do futbolu amerykańskiego"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Piłka do rugby"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Pływak"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Dom"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Dom z ogrodem"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Biurowiec"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Japoński budynek poczty"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Europejski budynek poczty"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Szpital"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Bank"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Bankomat"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Hotel"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Hotel miłości"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Sklep"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Szkoła"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Dom towarowy"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Fabryka"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Czerwony lampion"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Pagoda"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Zamek"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Szczur"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Mysz"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Wół"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Bawół wodny"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Krowa"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Lampart"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Królik"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Kot"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Smok"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Krokodyl"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Wieloryb"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Ślimak"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Wąż"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Koń"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Baran"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Koza"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Owca"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Małpa"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Kogut"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Kurczak"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Pies"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Świnia"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Dzik"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Słoń"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Ośmiornica"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Muszla"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Gąsienica"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Mrówka"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Pszczoła"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Żuk"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Ryba"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Ryba tropikalna"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Ryba rozdymka"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Żółw"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Pisklę"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Pisklak"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Kurczaczek widziany z przodu"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Ptak"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Pingwin"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Pudel"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Dromader"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Wielbłąd"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Delfin"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Pysk myszy"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Pysk krowy"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Pysk tygrysa"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Pyszczek królika"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Pyszczek kota"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Paszcza smoka"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Wieloryb z fontanną"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Pysk konia"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Głowa małpy"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Pysk psa"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Głowa świnki"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Głowa żaby"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Pyszczek chomika"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Pysk wilka"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Głowa misia"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Głowa pandy"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Ryj"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Ślady łap"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Oczy"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Ucho"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Nos"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Usta"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Język"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Palec wskazujący skierowany w górę"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Palec wskazujący skierowany w dół"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Palec wskazujący skierowany w lewo"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Palec wskazujący skierowany w prawo"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Znak pięści"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Znak machającej ręki"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Znak gestu dłonią oznaczającego OK"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Znak kciuka w górę"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Znak kciuka w dół"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Znak klaszczących dłoni"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Znak otwartych dłoni"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Korona"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Damski kapelusz"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Okulary"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Krawat"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"T-shirt"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Jeansy"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Sukienka"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Bluzka"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Portmonetka"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Torebka"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Portmonetka damska"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"But męski"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"But sportowy"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"But na wysokim obcasie"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Sandałek damski"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Kozak"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Odciski stóp"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Sylwetka"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Sylwetki"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Chłopiec"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Dziewczynka"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Mężczyzna"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Kobieta"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Rodzina"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Para trzymająca się za ręce"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Męska para trzymająca się za ręce"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Kobieca para trzymająca się za ręce"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Policjant"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Kobiety z uszami królika"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Panna młoda w welonie"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Osoba jasnowłosa"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Człowiek w chińskiej czapce"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Mężczyzna w turbanie"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Staruszek"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Staruszka"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Niemowlę"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Robotnik"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Księżniczka"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Ogr japoński"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Goblin japoński"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Duch"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Aniołek"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Ufoludek"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Kosmita"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Diablik"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Czaszka"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Pracownik informacji"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Wartownik"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Tancerka"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Szminka"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Lakier do paznokci"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Masaż twarzy"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Fryzura"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Szpulka"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Strzykawka"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Tabletka"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Odcisk ust"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"List miłosny"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Pierścionek"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Diament"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Pocałunek"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Bukiet kwiatów"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Para z sercem"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Ślub"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Bijące serce"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Złamane serce"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Dwa serca"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Błyszczące serce"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Rosnące serce"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Serce przebite strzałą"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Niebieskie serce"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Zielone serce"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Żółte serce"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Różowe serce"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Serce ze wstążką"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Obracające się serca"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Serce"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Romb z kropką w środku"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Żarówka"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Symbol gniewu"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bomba"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Symbol snu"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Symbol zderzenia"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Znak siódmych potów"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Kropla"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Wiatr"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Kupa"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Biceps"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Skołowany"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Rozmowa (dymek)"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Myśl (dymek)"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Biały kwiat"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Symbol stu punktów"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Worek z pieniędzmi"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Wymiana waluty"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Dolar"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Karta kredytowa"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Banknot ze znakiem jena"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Banknot ze znakiem dolara"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Banknot ze znakiem euro"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Banknot ze znakiem funta"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Pieniądze ze skrzydłami"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Wykres rosnący ze znakiem jena"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Fotel"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Komputer"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Teczka"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Minidysk"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Dyskietka"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Dysk optyczny"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Folder"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Otwarty folder"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Strona z zawinięciem"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Strona z zagięciem w rogu"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Kalendarz"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Zdzierany kalendarz"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Wizytownik"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Wykres rosnący"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Wykres malejący"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Wykres słupkowy"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Podkładka do pisania"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Pinezka"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Szpilka"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Spinacz"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Linijka"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Ekierka"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Zakładki"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Skoroszyt"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Notes"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Ozdobny notes"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Zamknięta książka"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Otwarta książka"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Zielona książka"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Niebieska książka"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Pomarańczowa książka"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Książki"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Plakietka"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Zwój"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Notatka"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Słuchawka telefoniczna"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Pager"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Faks"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Antena satelitarna"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Megafon"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Tuba nagłaśniająca"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Skrzynka nadawcza"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Skrzynka odbiorcza"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Paczka"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"E-mail"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Przychodząca koperta"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Koperta z umieszczoną nad nią strzałką w dół"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Zamknięta skrzynka pocztowa z opuszczoną flagą"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Zamknięta skrzynka pocztowa z podniesioną flagą"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Otwarta skrzynka pocztowa z podniesioną flagą"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Otwarta skrzynka pocztowa z opuszczoną flagą"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Skrzynka na listy"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Trąbka pocztyliona"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Gazeta"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Telefon komórkowy"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Telefon komórkowy ze strzałką w prawo po lewej stronie"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Tryb wibracji"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Wyłączenie telefonu komórkowego"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Zakaz używania telefonów komórkowych"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Antena ze słupkami zasięgu"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Aparat"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Kamera"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Telewizor"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Radio"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Kaseta wideo"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Przecinające się strzałki w prawo"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Strzałki w prawo i w lewo wskazujące kierunek obrotu zgodny z ruchem wskazówek zegara"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Strzałki w prawo i w lewo wskazujące kierunek obrotu zgodny z ruchem wskazówek zegara z cyfrą 1"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Strzałki w dół i w górę wskazujące kierunek obrotu zgodny z ruchem wskazówek zegara"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Strzałki w dół i w górę wskazujące kierunek obrotu przeciwny do ruchu wskazówek zegara"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Symbol małej jasności"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Symbol dużej jasności"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Przekreślony głośnik"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Głośnik"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Głośnik z jedną falą dźwiękową"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Głośnik z trzema falami dźwiękowymi"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Bateria"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Wtyczka"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Lupa skierowana w lewo"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Lupa skierowana w prawo"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Kłódka z wiecznym piórem"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Zamknięta kłódka z kluczem"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Klucz"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Kłódka"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Otwarta kłódka"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Dzwonek"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Przekreślony dzwonek"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Zakładka"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Ogniwo"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Przycisk radiowy"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Napis Back, czyli Wstecz, z umieszczoną nad nim strzałką w lewo"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"Napis End, czyli Koniec, z umieszczoną nad nim strzałką w lewo"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"Napis On, czyli Włączone, z umieszczoną nad nim strzałką dwukierunkową w lewo i prawo"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Napis Soon, czyli Wkrótce, z umieszczoną nad nim strzałką w prawo"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Napis Top, czyli Góra, z umieszczoną nad nim strzałką w górę"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Symbol Zakazane poniżej 18 lat"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Klawisz 10"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Symbol wpisywania wielkich liter"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Symbol wpisywania małych liter"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Symbol wpisywania cyfr"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Symbol wpisywania symboli"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Symbol wpisywania liter"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Ogień"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Latarka"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Klucz"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Młotek"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Śruba i nakrętka"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Nóż kuchenny"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Pistolet"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Mikroskop"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Teleskop"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Kryształowa kula"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Sześcioramienna gwiazda z kropką w środku"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Japoński symbol początkującego"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Trójząb"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Przycisk – biały kwadrat w czarnej ramce"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Przycisk – czarny kwadrat w białej ramce"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Duże czerwone koło"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Duże niebieskie koło"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Duży pomarańczowy romb"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Duży niebieski romb"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Mały pomarańczowy romb"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Mały niebieski romb"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Czerwona strzałka trójkątna w górę"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Czerwona strzałka trójkątna w dół"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Mała czerwona strzałka trójkątna w górę"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Mała czerwona strzałka trójkątna w dół"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Tarcza zegara z godziną 1:00"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Tarcza zegara z godziną 2:00"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Tarcza zegara z godziną 3:00"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Tarcza zegara z godziną 4:00"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Tarcza zegara z godziną 5:00"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Tarcza zegara z godziną 6:00"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Tarcza zegara z godziną 7:00"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Tarcza zegara z godziną 8:00"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Tarcza zegara z godziną 9:00"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Tarcza zegara z godziną 10:00"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Tarcza zegara z godziną 11:00"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Tarcza zegara z godziną 12:00"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Tarcza zegara z godziną 1:30"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Tarcza zegara z godziną 2:30"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Tarcza zegara z godziną 3:30"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Tarcza zegara z godziną 4:30"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Tarcza zegara z godziną 5:30"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Tarcza zegara z godziną 6:30"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Tarcza zegara z godziną 7:30"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Tarcza zegara z godziną 8:30"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Tarcza zegara z godziną 9:30"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Tarcza zegara z godziną 10:30"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Tarcza zegara z godziną 11:30"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Tarcza zegara z godziną 12:30"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Góra Fudżi"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Tokyo Tower"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Statua Wolności"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Mapa Japonii"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Posąg z Wyspy Wielkanocnej"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Szeroki uśmiech"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Szeroko uśmiechnięta buźka z roześmianymi oczami"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Łzy radości"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Szeroko uśmiechnięta buźka"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Roześmiana buźka ze śmiejącymi się oczami"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Roześmiana buźka ze śmiejącymi się oczami i kroplą potu"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Roześmiana buźka z zaciśniętymi oczami"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Uśmiechnięta buźka z aureolą"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Uśmiechnięta buźka z różkami"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Puszczenie oka"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Uśmiechnięta buźka z roześmianymi oczami"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Oblizująca się buźka"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Odprężona buźka"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Uśmiechnięta buźka z oczami w kształcie serc"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Uśmiechnięta buźka w ciemnych okularach"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Półuśmieszek"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Buźka obojętna"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Buźka bez wyrazu"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Niezadowolona buźka"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Buźka z kroplą potu"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Zamyślona buźka"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Zakłopotana buźka"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Zirytowana buźka"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Buźka całująca"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Buźka przesyłająca całusa"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Całująca buźka z roześmianymi oczami"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Całująca buźka z zamkniętymi oczami"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Buźka pokazująca język"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Buźka pokazująca język i puszczająca oko"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Buźka z zamkniętymi oczami pokazująca język"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Rozczarowana buźka"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Zmartwiona buźka"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Rozgniewana buźka"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Nadąsana mina"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Płacząca buźka"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Zacięta twarz"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Dumna buźka"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Buźka z wyrazem rozczarowania połączonego z ulgą"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Niezadowolona buźka z otwartymi ustami"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Przerażona buźka"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Wystraszona buźka"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Zmęczona buźka"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Śpiąca buźka"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Zmęczona buźka"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Grymaśna buźka"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Zapłakana buźka"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Buźka z otwartymi ustami"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Zaskoczona buźka"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Zziajana buźka"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Buźka krzycząca ze strachu"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Zdziwiona buźka"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Buźka z wypiekami"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Śpiąca buźka"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Buźka oszołomiona"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Buźka bez ust"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Buźka w masce chirurgicznej"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Roześmiany koci pyszczek"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Koci pyszczek płaczący ze śmiechu"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Szeroko uśmiechnięty koci pyszczek"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Uśmiechnięty koci pyszczek z oczami w kształcie serc"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Pyszczek kota ze skrzywionym uśmiechem"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Koci pyszczek całujący z zamkniętymi oczami"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Obrażony koci pyszczek"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Płaczący koci pyszczek"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Zmęczony koci pyszczek"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Buźka z gestem dezaprobaty"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Buźka z gestem aprobaty"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Osoba kłaniająca się"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Małpka zasłaniająca sobie oczy"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Małpka zasłaniająca sobie uszy"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Małpka zakrywająca sobie usta"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Zadowolona osoba z ręką w górze"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Osoba unosząca ręce w geście zwycięstwa"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Osoba niezadowolona"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Osoba z grymasem niezadowolenia"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Złożone ręce"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Rakieta"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Helikopter"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Parowóz"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Wagon kolejowy"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Szybki pociąg"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Szybki pociąg z zaokrąglonym przodem"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Pociąg"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Metro"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Kolej miejska"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Stacja kolejowa"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Tramwaj"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Wagon tramwajowy"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Autobus"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Nadjeżdżający autobus"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Trolejbus"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Przystanek autobusowy"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Mikrobus"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Karetka pogotowia"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Wóz strażacki"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Samochód policyjny"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Nadjeżdżający samochód policyjny"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taksówka"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Nadjeżdżająca taksówka"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Samochód"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Nadjeżdżający samochód"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Samochód rekreacyjny"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Samochód dostawczy"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Ciągnik z naczepą"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Ciągnik"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Kolej jednoszynowa"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Kolej górska"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Kolej podwieszana"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Kolejka górska"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Kolejka wisząca"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Statek"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Łódka z wiosłami"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Motorówka"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Poziome światła drogowe"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Pionowe światła drogowe"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Znak sygnalizujący prace drogowe"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Kogut policyjny"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Trójkątna flaga na maszcie"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Drzwi"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Znak zakazu wejścia"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Znak Dla palących"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Znak zakazu palenia"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Znak Wyrzuć śmieci do kosza"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Znak Nie śmiecić"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Znak Woda pitna"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Znak Woda niezdatna do picia"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Rower"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Zakaz ruchu rowerów"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Rowerzysta"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Kolarz górski"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Pieszy"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Zakaz ruchu pieszych"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Przejście dla dzieci"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Znak Dla panów"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Znak Dla pań"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Toaleta"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Znak Dziecko"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Toaleta"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"WC"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Prysznic"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Kąpiel"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Wanna"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Kontrola paszportowa"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Kontrola celna"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Odbiór bagażu"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Pozostawiony bagaż"</string>
+</resources>
diff --git a/java/res/values-pl/strings-talkback-descriptions.xml b/java/res/values-pl/strings-talkback-descriptions.xml
index 43fca5f..f43beed 100644
--- a/java/res/values-pl/strings-talkback-descriptions.xml
+++ b/java/res/values-pl/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Nie wpisano tekstu"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> poprawia <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> na <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> wykonuje autokorektę"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Brak sugestii"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Nieznany znak"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Więcej symboli"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Wielka litera I z kropką"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Nieznany symbol"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Nieznany emotikon"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Buźka znudzona"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Buźka zawstydzona"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Buźka w ciemnych okularach"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Buźka zdziwiona"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Buźka całująca"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Buźka marszcząca czoło"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Alternatywne znaki są dostępne"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Alternatywne znaki zostały zamknięte"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Alternatywne propozycje są dostępne"</string>
diff --git a/java/res/values-pl/strings.xml b/java/res/values-pl/strings.xml
index af1d2ce..9300775 100644
--- a/java/res/values-pl/strings.xml
+++ b/java/res/values-pl/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Wibracja przy naciśnięciu"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Dźwięk przy naciśnięciu"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Powiększ po naciśnięciu"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Ustawienia"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Konta i prywatność"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Wygląd i układy"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Pisanie gestami"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Korekta tekstu"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Zaawansowane"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Motyw"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Włącz podzieloną klawiaturę"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Synchronizacja klawiatury Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Synchronizacja jest włączona"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Synchronizuj słownik osobisty na swoich urządzeniach"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Synchronizuj teraz"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Usuń dane z chmury"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Usuwa zsynchronizowane dane z Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Twoje zsynchronizowane dane zostaną usunięte z chmury. Na pewno?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Usuń"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Anuluj"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Twój słownik osobisty będzie synchronizowany z serwerami Google i zostanie na nich utworzona jego kopia zapasowa. Aby ulepszać nasze usługi, możemy gromadzić informacje statystyczne dotyczące częstości występowania słów. Zbieranie i wykorzystywanie wszelkich informacji będzie się odbywać zgodnie z "<a href="https://www.google.com/policies/privacy">"Polityką prywatności Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Aby włączyć tę funkcję, dodaj konto Google do tego urządzenia"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Inne metody wprowadzania"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Klawisz zmiany języka obejmuje też inne metody wprowadzania"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Klawisz zmiany języka"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Pokaż, gdy włączonych jest kilka języków wprowadzania"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Pokaż wskaźnik przesuwania"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Wyświetl ślad przesuwania od klawiszy Shift lub Symbol"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Opóźnienie znikania klawiszy"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Bez opóźnienia"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Wartość domyślna"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Słownik główny"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Pokazuj propozycje poprawek"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Wyświetl proponowane słowa podczas wpisywania"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Zawsze pokazuj"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Pokaż w trybie pionowym"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Zawsze ukrywaj"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Blokuj obraźliwe słowa"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Nie proponuj słów potencjalnie obraźliwych"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Autokorekta"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Klawisz rozpoznawania mowy"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nie włączono żadnych metod wprowadzania głosowego. Sprawdź ustawienia języka i wprowadzania."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Konfiguruj metody wprowadzania"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Języki wprowadzania"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Prześlij opinię"</string>
-    <string name="select_language" msgid="3693815588777926848">"Języki wprowadzania"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Języki"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Pomoc i opinie"</string>
+    <string name="select_language" msgid="5709487854987078367">"Języki"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Dotknij ponownie, aby zapisać"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Kliknij tutaj, by zapisać"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Słownik dostępny"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Motyw klawiatury"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Przełącz konta"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Nie wybrałeś żadnych kont"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Teraz używasz konta <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Anuluj"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Wyloguj się"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Wybierz konto, którego chcesz używać"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"angielski (Wielka Brytania)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"angielski (Stany Zjednoczone)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"hiszpański (USA)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"serbski (alfabet łaciński)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Angielski (Wielka Brytania) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Angielski (USA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Hiszpański (USA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"serbski (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tradycyjny)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (cyrylica)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (alfabet łaciński)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (kompaktowa)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Bez języka (alfabet)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabet (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabet (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabet (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabet (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emotikony"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Motyw klawiatury"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Style niestandardowe"</string>
     <string name="add_style" msgid="6163126614514489951">"Dodaj styl"</string>
     <string name="add" msgid="8299699805688017798">"Dodaj"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Włącz"</string>
     <string name="not_now" msgid="6172462888202790482">"Nie teraz"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Taki styl wprowadzania już istnieje: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Opóźnienie przy długim naciśnięciu"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Wibracja przy naciśniętym klawiszu"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Głośność przy naciśniętym klawiszu"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Odczyt zewnętrznego pliku słownika"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Brak plików słownika w folderze Pobrane pliki"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Wybierz plik słownika do zainstalowania"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Czy na pewno zainstalować ten plik dla języka: <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Wystąpił błąd"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Opóźnienie przy długim naciśnięciu"</string>
     <string name="button_default" msgid="3988017840431881491">"Domyślne"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Witamy w aplikacji <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"z pisaniem gestami"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Teraz możesz pisać we wszystkich swoich ulubionych aplikacjach, używając aplikacji <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Skonfiguruj dodatkowe języki"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Zakończone"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Pokaż ikonę aplikacji"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Wyświetl ikonę aplikacji w programie uruchamiającym"</string>
     <string name="app_name" msgid="6320102637491234792">"Dostawca słownika"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Dostawca słownika"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Usługa słownika"</string>
diff --git a/java/res/values-pt-rPT/strings-emoji-descriptions.xml b/java/res/values-pt-rPT/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..3231d9e
--- /dev/null
+++ b/java/res/values-pt-rPT/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Símbolo de direitos de autor"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Símbolo de marca registada"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Duplo ponto de exclamação"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Pontos de exclamação e de interrogação"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Símbolo de marca comercial"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Fonte de informação"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Seta para a direita e para a esquerda"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Seta para cima e para baixo"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Seta para noroeste"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Seta para nordeste"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Seta para sudeste"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Seta para sudoeste"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Seta para a esquerda em U"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Seta para a direita em U"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Relógio"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Ampulheta"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Triângulo duplo preto a apontar para a direita"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Triângulo duplo preto a apontar para a esquerda"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Triângulo duplo preto a apontar para cima"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Triângulo duplo preto a apontar para baixo"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Despertador"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Ampulheta com areia a cair"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"M latino maiúsculo redondo"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Quadrado preto pequeno"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Quadrado branco pequeno"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Triângulo preto a apontar para a direita"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Triângulo preto a apontar para a esquerda"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Quadrado branco médio"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Quadrado preto médio"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Quadrado branco pequeno/médio"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Quadrado preto pequeno/médio"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Sol preto com raios"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Nuvem"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Telefone preto"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Caixa com marca de visto"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Chapéu de chuva com gotas de chuva"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Bebida quente"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Dedo indicador branco a apontar para cima"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Cara branca sorridente"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Carneiro"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Touro"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Gémeos"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Caranguejo"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Leão"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Virgem"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Balança"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Escorpião"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Sagitário"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Capricórnio"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Aquário"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Peixes"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Carta de espadas"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Carta de paus"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Carta de copas"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Carta de ouros"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"A escaldar"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Símbolo de reciclagem universal preto"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Sinal de cadeira de rodas"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Âncora"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Sinal de aviso"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Sinal de alta voltagem"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Círculo branco médio"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Círculo preto médio"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Bola de futebol"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Basebol"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Boneco de neve sem neve"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Sol encoberto"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Serpentário"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Sinal de entrada proibida"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Igreja"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Fonte"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Bandeira no buraco"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Barco à vela"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Tenda"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Bomba de gasolina"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Tesoura preta"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Marca de visto branca sólida"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Avião"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Envelope"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Punho erguido"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Mão erguida"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Mão em V de vitória"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Lápis"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Ponteira de caneta preta"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Marca de visto sólida"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Sinal de multiplicação sólido"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Centelhas"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Asterisco"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Estrela preta de oito pontas"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Floco de neve"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Centelha"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Marca de visto"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Marca de visto negativo quadrada"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Decoração de ponto de interrogação preto"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Decoração de ponto de interrogação branco"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Decoração de ponto de exclamação branco"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Símbolo de ponto de exclamação sólido"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Coração preto sólido"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Sinal de mais sólido"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Sinal de menos sólido"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Sinal de dividir sólido"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Seta preta para a direita"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Laço encaracolado"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Laço encaracolado duplo"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Seta curvada para cima"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Seta curvada para baixo"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Sete preta para a esquerda"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Seta preta para cima"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Seta preta para baixo"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Quadrado preto grande"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Quadrado preto grande"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Estrela branca média"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Círculo sólido grande"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Traço ondulado"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Símbolo de entrada na música"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Ideograma circular de felicitações"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Ideograma circular de segredo"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Mosaico de Mahjong dragão vermelho"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Joker preto de baralho de cartas"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Tipo sanguíneo A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Tipo sanguíneo B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Tipo sanguíneo O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Parque de Estacionamento"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Tipo sanguíneo AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"CL quadrado"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"\"Cool\" quadrado"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"\"Free\" quadrado"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"\"ID\" quadrado"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"\"New\" quadrado"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"\"NG\" quadrado"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"\"OK\" quadrado"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"\"SOS\" quadrado"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"\"Up\" quadrado com ponto de exclamação"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"\"vs\" quadrado"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"\"Katakana here\" quadrado"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"\"katakana service\" quadrado"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Ideograma quadrado gratuito"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Ideograma quadrado com reserva"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Ideograma quadrado de proibição"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Ideograma quadrado de vaga"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Ideograma quadrado de aceitação"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Ideograma quadrado de ocupação total"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Ideograma quadrado pago"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Ideograma quadrado mensal"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Ideograma quadrado de aplicação"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Ideograma quadrado de desconto"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Ideograma quadrado de negócios"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Ideograma circular de vantagem"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Ideograma circular de aceitação"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Ciclone"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Enevoado"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Chapéu de chuva fechado"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Noite estrelada"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Nascer do sol na montanha"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Nascer do sol"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Silhueta de cidade ao anoitecer"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Pôr do sol atrás dos prédios"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Arco-íris"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Ponte à noite"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Onda"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Vulcão"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Via Láctea"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Globo terrestre Europa-África"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Globo terrestre Américas"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Globo terrestre Ásia-Austrália"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Globo com os meridianos"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Símbolo de lua nova"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Símbolo de lua crescente"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Símbolo de lua em quarto crescente"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Lua crescente convexa"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Símbolo de lua cheia"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Símbolo de lua minguante convexa"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Símbolo de lua em quarto minguante"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Símbolo de lua em quarto minguante"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Lua crescente"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Lua nova com cara"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Lua em quarto crescente com cara"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Lua em quarto minguante com cara"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Lua cheia com cara"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Sol com cara"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Estrela brilhante"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Estrela cadente"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Castanha"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Plântula"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Árvore de folha persistente"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Árvore de folha caduca"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palmeira"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Cato"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Túlipa"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Cerejeira em flor"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Rosa"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Hibisco"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Girassol"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Margarida"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Milho"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Planta de arroz"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Ervas"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Trevo-de-quatro-folhas"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Folha de ácer"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Folha a cair"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Folha a esvoaçar ao vento"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Cogumelo"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Tomate"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Beringela"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Uvas"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Melão"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Melancia"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Tangerina"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Limão"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Banana"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ananás"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Maçã vermelha"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Maçã verde"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Pera"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Pêssego"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Cerejas"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Morango"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hambúrguer"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Fatia de piza"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Osso com carne"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Perna de frango"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Biscoito de arroz"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Bolinho de arroz"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Arroz cozinhado"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Arroz e caril"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Caçarola"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Esparguete"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Pão"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Batatas fritas"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Batata doce assada"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Sushi"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Camarão frito"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Pastel de peixe em turbilhão"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Gelado cremoso"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Gelado \"shaved ice\""</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Gelado"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Donut"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Biscoito"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Barra de chocolate"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Guloseima"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Chupa-chupa"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Pudim"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Pote de mel"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Bolacha amanteigada"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Caixa de refeições"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Tacho com comida"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Culinária"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Garfo e faca"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Chávena de chá sem pega"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Garrafa e chávena de saké"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Copo de vinho"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Copo de cocktail"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Bebida tropical"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Caneca de cerveja"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Brinde com canecas de cerveja"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Biberão"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Fita"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Presente embrulhado"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Bolo de aniversário"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Abóbora iluminada"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Árvore de Natal"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Pai Natal"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Fogo-de-artifício"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Fogo-de-artifício"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Balão"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Bombinhas de Carnaval"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Bola de confetti"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Árvore do Tanabata"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Bandeiras cruzadas"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Decoração em pinho"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Bonecas japonesas"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Bandeirola de carpas"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Espanta espíritos"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Cerimónia de contemplação da lua"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Pasta da escola"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Chapéu de formatura"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Cavalo de carrossel"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Roda panorâmica"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Montanha-russa"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Cana de pesca e peixe"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Microfone"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Câmara de filmar"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Cinema"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Auricular"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Paleta de artista"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Chapéu de cartola"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Tenda de circo"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Bilhete"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Claquete"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Artes de palco"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Videojogo"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Em cheio no alvo"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Slot machine"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Bilhar"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Dado de jogo"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Bowling"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Baralho de cartas com desenho de flores"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Nota de música"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Muitas notas de música"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saxofone"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Guitarra"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Teclado de música"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Trompete"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Violino"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Pauta de música"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"T-shirt de corrida com faixa"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Raquete e bola de ténis"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Esqui e bota de esqui"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Bola e cesto de basquetebol"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Bandeira axadrezada"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Esquiador"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Corredor"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Surfista"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Troféu"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Corrida de cavalos"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Futebol americano"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Bola de râguebi"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Nadador"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Construção de casas"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Casa com jardim"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Edifício de escritórios"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Estação de correios japonesa"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Estação de correios europeia"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Hospital"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Banco"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Máquina de multibanco"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Hotel"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Hotel romântico"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Loja de conveniência"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Escola"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Centro comercial"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Fábrica"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Lanterna Izakaya"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Castelo japonês"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Castelo europeu"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Ratazana"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Rato"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Boi"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Búfalo-asiático"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Vaca"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Leopardo"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Coelho"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Gato"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Dragão"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Crocodilo"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Baleia"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Caracol"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Cobra"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Cavalo"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Carneiro"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Cabra"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Ovelha"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Macaco"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Galo"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Galinha"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Cão"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Porco"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Javali"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Elefante"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Polvo"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Búzio"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Inseto"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Formiga"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Abelha"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Joaninha"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Peixe"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Peixe tropical"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Peixe-balão"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Tartaruga"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Galinha a chocar"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Pintainho"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Pintainho a olhar para a frente"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Pássaro"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Pinguim"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Coala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Caniche"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Dromedário"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Camelo bactriano"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Golfinho"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Focinho de rato"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Focinho de vaca"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Focinho de tigre"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Focinho de coelho"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Focinho de gato"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Focinho de dragão"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Baleia a expelir água"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Focinho de cavalo"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Focinho de macaco"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Focinho de cão"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Focinho de porco"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Focinho de sapo"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Focinho de hamster"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Focinho de lobo"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Focinho de urso"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Focinho de urso-panda"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Nariz de porco"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Pegadas de garras"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Olhos"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Orelha"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Nariz"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Boca"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Língua"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Dedo indicador a apontar para cima"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Dedo indicador a apontar para baixo"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Dedo indicador a apontar para a esquerda"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Dedo indicador a apontar para a direita"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Símbolo de punho fechado"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Símbolo de mão a acenar"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Símbolo de ok com a mão"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Símbolo de polegar para cima"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Símbolo de polegar para baixo"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Símbolo de mãos a bater palmas"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Símbolo de mãos abertas"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Coroa"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Chapéu de mulher"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Óculos"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Gravata"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"T-shirt"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Calças de ganga"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Vestido"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Quimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Biquíni"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Roupas de mulher"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Carteira"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Mala"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Bolsa"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Sapato de homem"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Ténis de corrida"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Sapato de salto alto"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Sandália de mulher"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Botas de mulher"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Pegadas"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Silhueta de busto"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Silhueta de bustos"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Rapaz"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Rapariga"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Homem"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Mulher"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Família"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Homem e mulher de mãos dadas"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Dois homens de mão dada"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Duas mulheres de mão dada"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Agente da polícia"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Mulher com orelhas de coelho"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Noiva com véu"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Pessoa loira"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Homem com gua pi mao"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Homem com turbante"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Homem mais velho"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Mulher mais velha"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Bebé"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Trabalhador da construção civil"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Princesa"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Ogre japonês"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Duende japonês"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Fantasma"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Anjo bebé"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Ser extraterrestre"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Monstro extraterrestre"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Imp."</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Caveira"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Assistente do balcão de informações"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Guarda"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Bailarino"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Batom"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Verniz para as unhas"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Massagem facial"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Cortar o cabelo"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Símbolo de barbearia"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Seringa"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Comprimido"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Marca de beijo"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Carta de amor"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Anel"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Diamante"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Beijo"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Bouquet"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Casal com coração"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Casamento"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Coração a bater"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Coração partido"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Dois corações"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Coração reluzente"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Coração a crescer"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Coração com seta"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Coração azul"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Coração verde"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Coração amarelo"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Coração roxo"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Coração com laço"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Corações a dançar"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Coração decorativo"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Forma de diamante com ponto no interior"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Lâmpada elétrica"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Símbolo de raiva"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bomba"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Símbolo de sono"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Símbolo de colisão"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Símbolo de transpiração"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Gota"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Símbolo de pressa"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Monte de cocó"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Bíceps fletidos"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Símbolo de zonzear"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Balão de diálogo"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Balão de pensamento"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Flor branca"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Símbolo de cem pontos"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Saco de dinheiro"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Câmbio"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Símbolo de dólar sólido"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Cartão de crédito"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Nota com símbolo do yen"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Nota com símbolo de dólar norte-americano"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Nota com símbolo do euro"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Nota com símbolo da libra"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Notas com asas"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Gráfico com tendência altista e símbolo do yen"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Lugar"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Computador pessoal"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Pasta de trabalho"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Minidisco"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Disquete"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Disco ótico"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Pasta de ficheiros"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Pasta de ficheiro aberto"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Página com dobra"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Página virada para cima"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Calendário"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Calendário de mesa"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Porta-cartões de visita"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Gráfico com tendência altista"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Gráfico com tendência baixista"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Gráfico de barras"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Área de transferência"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Alfinete"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Alfinete redondo"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Clip"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Régua"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Esquadro"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Marcadores de folhas"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Livro razão"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Bloco de notas"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Bloco de notas com capa decorada"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Livro fechado"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Livro aberto"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Livro verde"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Livro azul"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Livro cor de laranja"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Livros"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Etiqueta de nome"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Rolo"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Nota"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Auscultador de telefone"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Pager"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Fax"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Antena parabólica"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Sistema sonoro"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Megafone"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Bandeja de correio a enviar"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Bandeja de correio recebido"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Pacote"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Símbolo de email"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Envelope a chegar"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Envelope com seta para baixo em cima"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Caixa de correio fechada com bandeirola para baixo"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Caixa de correio com bandeirola para cima"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Caixa de correio aberta com bandeirola para cima"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Caixa de correio aberta com bandeirola para baixo"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Caixa de correio"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Aviso sonoro de correio"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Jornal"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Telemóvel"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Telemóvel com seta para a direita à esquerda"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Modo de vibração"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Telemóvel desligado"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Proibido usar o telemóvel"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Sinal de barras"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Câmara"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Câmara de filmar"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Televisão"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Rádio"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Cassete de vídeo"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Setas cruzadas para a direita"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Setas abertas em círculo para a esquerda e para a direita no sentido dos ponteiros do relógio"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Setas abertas em círculo para a esquerda e para a direita no sentido dos ponteiros do relógio com o algarismo 1 sobreposto"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Setas abertas em círculo para baixo e para cima no sentido dos ponteiros do relógio"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Setas abertas em círculo para baixo e para cima no sentido contrário ao dos ponteiros do relógio"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Símbolo de pouco brilho"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Símbolo de brilho intenso"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Altifalante com barra de cancelamento"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Altifalante"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Altifalante com uma onda de som"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Altifalante com três ondas de som"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Bateria"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Ficha elétrica"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Lupa inclinada para a esquerda"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Lupa inclinada para a direita"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Cadeado com caneta de tinta permanente"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Cadeado fechado com chave"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Chave"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Cadeado"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Cadeado aberto"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Sino"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Sino com faixa de cancelamento"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Marcador"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Corrente"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Botão de opção"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"\"Back\" com seta para a esquerda em cima"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"\"End\" com seta para a esquerda em cima"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"\"On\" com ponto de exclamação e seta para os dois lados em cima"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"\"Soon\" com seta para a direita em cima"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"\"Top\" com seta para cima no topo"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Símbolo de proibida a presença de menores de idade"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Tecla do algarismo dez"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Símbolo de introdução de letras maiúsculas latinas"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Símbolo de introdução de letras minúsculas latinas"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Símbolo de introdução de números"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Símbolo de introdução para símbolos"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Símbolo de introdução de letras latinas"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Fogo"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Lanterna"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Chave de bocas"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Martelo"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Parafuso e porca"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Faca de cozinha japonesa"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Pistola"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Microscópio"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Telescópio"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Bola de cristal"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Estrela de seis pontas com ponto no meio"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Símbolo japonês para principiante"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Símbolo de tridente"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Botão quadrado preto"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Botão quadrado branco"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Círculo grande vermelho"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Círculo grande azul"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Diamante grande cor de laranja"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Diamante grande azul"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Diamante pequeno cor de laranja"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Diamante pequeno azul"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Triângulo vermelho a apontar para cima"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Triângulo vermelho a apontar para baixo"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Triângulo pequeno vermelho a apontar para cima"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Triângulo pequeno vermelho a apontar para baixo"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Mostrador de relógio à 1h00"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Mostrador de relógio às 2h00"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Mostrador de relógio às 3h00"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Mostrador de relógio às 4h00"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Mostrador de relógio às 5h00"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Mostrador de relógio às 6h00"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Mostrador de relógio às 7h00"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Mostrador de relógio às 8h00"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Mostrador de relógio às 9h00"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Mostrador de relógio às 10h00"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Mostrador de relógio às 11h00"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Mostrador de relógio às 12h00"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Mostrador de relógio à 1h30"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Mostrador de relógio às 2h30"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Mostrador de relógio às 3h30"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Mostrador de relógio às 4h30"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Mostrador de relógio às 5h30"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Mostrador de relógio às 6h30"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Mostrador de relógio às 7h30"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Mostrador de relógio às 8h30"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Mostrador de relógio às 9h30"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Mostrador de relógio às 10h30"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Mostrador de relógio às 11h30"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Mostrador de relógio às 12h30"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Monte Fuji"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Torre de Tóquio"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Estátua da Liberdade"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Silhueta do Japão"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moai"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Cara sorridente"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Gargalhada"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Cara a chorar de alegria"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Cara a sorrir com boca aberta"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Cara a sorrir com boca aberta e olhos curvados"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Cara a sorrir com boca aberta e suor frio"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Cara a sorrir com boca aberta e olhos semicerrados"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Cara a sorrir com auréola"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Cara sorridente endiabrada"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Cara a piscar o olho"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Cara a sorrir com olhos curvados"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Cara a saborear uma refeição deliciosa"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Cara aliviada"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Cara a sorrir com olhos em forma de coração"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Cara a sorrir com óculos de sol"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Cara presunçosa"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Cara neutra"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Cara sem expressão"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Cara de desagrado"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Cara com suor frio"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Cara pensativa"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Cara baralhada"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Cara completamente baralhada"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Cara a dar um beijo"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Cara a atirar um beijo"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Cara a beijar com olhos sorridentes"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Cara a beijar com olhos fechados"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Cara com língua de fora"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Cara com língua de fora e a piscar o olho"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Cara com língua de fora e os olhos semicerrados"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Cara desapontada"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Cara preocupada"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Cara irritada"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Cara mal-humorada"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Cara a chorar"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Cara perseverante"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Cara com ar triunfante"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Cara desapontada, mas aliviada"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Cara franzida com boca aberta"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Cara preocupada"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Cara cheia de medo"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Cara desgastada"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Cara sonolenta"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Cara cansada"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Cara a fazer caretas"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Cara a chorar perdidamente"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Cara com boca aberta"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Cara expectante"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Cara com boca aberta e suor frio"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Cara a gritar de medo"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Cara de espanto"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Cara corada"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Cara a dormir"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Cara atordoada"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Cara sem boca"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Cara com máscara de médico"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Focinho de gato sorridente com olhos curvados"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Focinho de gato a chorar de alegria"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Focinho de gato sorridente com boca aberta"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Focinho de gato sorridente com olhos em forma de coração"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Focinho de gato com sorriso de través"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Focinho de gato a beijar com olhos fechados"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Focinho de gato mal-humorado"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Focinho de gato a chorar"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Focinho de gato desgastado"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Cara com gesto de desaprovação"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Cara com gesto de aprovação"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Pessoa profundamente arrependida"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Macaco \"não olhar para o mal\""</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Macaco \"não ouvir o mal\""</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Macaco \"não falar no mal\""</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Pessoa contente a levantar a mão"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Pessoa a erguer as duas mãos e a festejar"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Pessoa entristecida"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Pessoa com cara mal-humorada"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Pessoa com mãos juntas"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Foguetão"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Helicóptero"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Locomotiva a vapor"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Elétrico"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Comboio de alta velocidade"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Comboio de alta velocidade com cabeça aerodinâmica"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Comboio"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Metro"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Metro de superfície"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Estação"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Elétrico"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Carruagem de elétrico"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Autocarro"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Autocarro a aproximar-se"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Troleicarro"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Paragem de autocarro"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"\"Minibus\""</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Ambulância"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Viatura de incêndio"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Carro da polícia"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Carro da polícia a aproximar-se"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Táxi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Táxi a aproximar-se"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Automóvel"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Automóvel a aproximar-se"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Veículo utilitário recreativo"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Camião de entregas"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Camião articulado"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Trator"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Monocarril"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Linha férrea na montanha"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Via-férrea suspensa"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Teleférico"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Funicular aéreo"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Navio"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Barco a remos"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Barco a motor"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Semáforo na horizontal"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Semáforo vertical"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Sinal de obras"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Sirene de carro da polícia"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Bandeira triangular na haste"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Porta"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Sinal de entrada proibida"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Sinal de fumar"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Sinal de proibido fumar"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Sinal para colocar o lixo no seu devido lugar"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Sinal para não deixar lixo para o chão"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Sinal de água potável"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Sinal de água não potável"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Bicicleta"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Proibido andar de bicicleta"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Ciclista"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Ciclista de montanha"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Pedestre"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Proibido andar a pé"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Crianças a atravessar"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Sinal de entrada para homens"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Sinal de entrada para mulheres"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Lavabo"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Sinal de bebé"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Casa-de-banho"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"\"Water closet\""</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Chuveiro"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Banho"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Banheira"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Controlo de passaportes"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Alfândega"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Recolha de bagagem"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Perdidos e achados"</string>
+</resources>
diff --git a/java/res/values-pt-rPT/strings-talkback-descriptions.xml b/java/res/values-pt-rPT/strings-talkback-descriptions.xml
index 30bbd3f..c3744ef 100644
--- a/java/res/values-pt-rPT/strings-talkback-descriptions.xml
+++ b/java/res/values-pt-rPT/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Nenhum texto digitado"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corrige <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> para <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> executa a correção automática"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Nenhuma sugestão"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Caráter desconhecido"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Mais símbolos"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"I maiúsculo, ponto sobreposto"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Símbolo desconhecido"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Emoji desconhecido"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Cara aborrecida"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Cara envergonhada"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Cara com óculos de sol"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Cara surpreendida"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Cara a dar um beijo"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Cara franzida"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Os carateres alternativos estão disponíveis"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Os carateres alternativos são ignorados"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"As sugestões alternativas estão disponíveis"</string>
diff --git a/java/res/values-pt-rPT/strings.xml b/java/res/values-pt-rPT/strings.xml
index 4c7f486..a9f2be8 100644
--- a/java/res/values-pt-rPT/strings.xml
+++ b/java/res/values-pt-rPT/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrar ao primir as teclas"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Som ao premir as teclas"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Mostrar popup ao premir tecla"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferências"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Contas e privacidade"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Aspeto e esquemas"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Escrita com gestos"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Correção de texto"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Avançadas"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Ativar teclado dividido"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Sincronização do Teclado Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"A sincronização está ativada"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Sincronizar o seu dicionário pessoal entre dispositivos"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Sincronizar agora"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Eliminar dados da nuvem"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Elimina os seus dados sincronizados do Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Os seus dados sincr. serão eliminados da nuvem. Tem a certeza?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Eliminar"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Cancelar"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"O seu dicionário pessoal será sincronizado e será criada uma cópia de segurança do mesmo nos servidores da Google. As informações estatísticas de frequência das palavras podem ser recolhidas para ajudar a melhorar os nossos produtos. A recolha e a utilização de todas as informações são efetuadas em conformidade com a "<a href="https://www.google.com/policies/privacy">"Política de Privacidade da Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Adicione uma Conta Google a este disp. para ativar esta func."</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Mudar p/ outros mét. ent."</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"A tecla de mudança de idioma abrange outros métodos de entrada"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Tecla alterar idioma"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Mostrar quando estão ativados vários idiomas de entrada"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Mostrar indicador de deslize"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Mostrar pista visual ao deslizar das teclas Shift ou Símbolo"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Atraso p/ ignorar pop-up"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Sem atraso"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Predefinido"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Dicionário principal"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Mostrar sugestões de correcção"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Apresentar sugestões de palavras ao escrever"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Mostrar sempre"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Mostrar em modo retrato"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Ocultar sempre"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Bloquear palavras ofensivas"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Não sugerir palavras potencialmente ofensivas"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Correção automática"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Chave de entrada de voz"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nenhum método de entrada de texto por voz ativado. Verifique as definições de Idioma e introdução."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Configurar métodos de introdução"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Idiomas de entrada"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Enviar comentários"</string>
-    <string name="select_language" msgid="3693815588777926848">"Idiomas de introdução"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Idiomas"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Ajuda e comentários"</string>
+    <string name="select_language" msgid="5709487854987078367">"Idiomas"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Toque novamente para guardar"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Toque aqui para guardar"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Dicionário disponível"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Tema do teclado"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Alternar entre contas"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Nenhuma conta selecionada"</string>
+    <string name="account_selected" msgid="2846876462199625974">"A utilizar atualmente <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Cancelar"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Terminar sessão"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Selecionar uma conta a utilizar"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Inglês (RU)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Inglês (EUA)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Espanhol (EUA)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Sérvio (latim)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Inglês (RU) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Inglês (EUA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Espanhol (EUA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Sérvio (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tradicional)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Cirílico)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Latim)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (compacto)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Sem idioma (alfabeto)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabeto (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabeto (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabeto (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabeto (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Tema do teclado"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Estilos entrada pers."</string>
     <string name="add_style" msgid="6163126614514489951">"Adic. estilo"</string>
     <string name="add" msgid="8299699805688017798">"Adicionar"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Ativar"</string>
     <string name="not_now" msgid="6172462888202790482">"Agora não"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Já existe o mesmo estilo de introdução: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Atraso ao manter tecla premida"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Duração vibr. ao premir teclas"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Volume do som ao premir teclas"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Ler ficheiro de dicionário externo"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Não há ficheiros de dicionário na pasta Transferências"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Selecione um ficheiro de dicionário para instalar"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Instalar mesmo este ficheiro para <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Ocorreu um erro"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Atraso ao manter tecla premida"</string>
     <string name="button_default" msgid="3988017840431881491">"Predefinido"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Bem-vindo(a) a <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"com a Escrita com Gestos"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Agora pode escrever em todas as suas aplicações favoritas com <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Configurar idiomas adicionais"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Concluído"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Mostrar ícone da aplicação"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Mostrar ícone da aplicação no iniciador"</string>
     <string name="app_name" msgid="6320102637491234792">"Fornecedor de Dicionário"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Fornecedor de Dicionário"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Serviço de Dicionário"</string>
diff --git a/java/res/values-pt/strings-talkback-descriptions.xml b/java/res/values-pt/strings-talkback-descriptions.xml
index f4e28fc..7500e6a 100644
--- a/java/res/values-pt/strings-talkback-descriptions.xml
+++ b/java/res/values-pt/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Nenhum texto digitado"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corrige <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> para <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> realiza correção automática"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Sem sugestões"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Caractere desconhecido"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Mais símbolos"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"I maiúscula, ponto acima"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Símbolo desconhecido"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Emoji desconhecido"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Rosto entediado"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Rosto envergonhado"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Rosto com óculos"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Rosto de surpresa"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Rosto beijando"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Rosto franzido"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Caracteres alternativos estão disponíveis"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Caracteres alternativos foram descartados"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Sugestões alternativas estão disponíveis"</string>
diff --git a/java/res/values-pt/strings.xml b/java/res/values-pt/strings.xml
index c819ff3..589ca78 100644
--- a/java/res/values-pt/strings.xml
+++ b/java/res/values-pt/strings.xml
@@ -26,18 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrar ao tocar a tecla"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Som ao tocar a tecla"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Exibir pop-up ao digitar"</string>
-    <string name="settings_screen_input" msgid="2808654300248306866">"Preferências de entrada"</string>
-    <string name="settings_screen_appearances" msgid="3611951947835553700">"Aparência"</string>
-    <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Opções multilíngues"</string>
-    <string name="settings_screen_gesture" msgid="9113437621722871665">"Pref. da entr. por gestos"</string>
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferências"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Contas e privacidade"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Aparência e layouts"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Escrita com gestos"</string>
     <string name="settings_screen_correction" msgid="1616818407747682955">"Correção de texto"</string>
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Avançadas"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Ativar teclado dividido"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Sincronização Teclado do Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"A sincronização está ativada"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Sincronizar seu dicionário pessoal nos dispositivos"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Sincronizar agora"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Excluir dados na nuvem"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Exclui seus dados sincronizados do Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Seus dados sincronizados serão excluídos da nuvem. Tem certeza?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Excluir"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Cancelar"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Seu dicionário pessoal será sincronizado, e será feito backup dele nos servidores do Google. As informações estatísticas de frequência de palavras podem ser coletadas para ajudar a melhorar nossos produtos. A coleta e o uso de todas as informações cumprirão a "<a href="https://www.google.com/policies/privacy">"Política de Privacidade do Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Adicione uma Conta do Google ao dispositivo para ativar recurso"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Outros métodos de entrada"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"A tecla p/ mudar o idioma também cobre outros métodos de entrada"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Tecla de seleção de idioma"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Mostrar quando vários idiomas de entrada estiverem ativados"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Mostrar indicador de deslize"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Mostrar indicação visual ao deslizar teclas Shift ou de símbolos"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Duração de popup da tecla"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Sem atraso"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Padrão"</string>
@@ -56,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Dicionário principal"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Mostrar sugestões de correção"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Exibir sugestões de palavras durante a digitação"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Mostrar sempre"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Mostrar em modo retrato"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Não mostrar"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Bloquear palavras ofensivas"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Não sugerir palavras potencialmente ofensivas"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Correção automática"</string>
@@ -79,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Tecla p/ inserir texto por voz"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nenhum método de entrada de texto por voz ativado. Verifique as configurações \"Idioma e entrada\"."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Configurar métodos de entrada"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Idiomas de entrada"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Enviar comentários"</string>
-    <string name="select_language" msgid="3693815588777926848">"Idiomas de entrada"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Idiomas"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Ajuda e feedback"</string>
+    <string name="select_language" msgid="5709487854987078367">"Idiomas"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Toque novamente para salvar"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Toque aqui para salvar"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Dicionário disponível"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Tema do teclado"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Alternar contas"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Nenhuma conta selecionada"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Atualmente usando <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Cancelar"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Sair"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Selecionar uma conta para usar"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"inglês (Reino Unido)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"inglês (EUA)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"espanhol (EUA)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Híndi-inglês"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Sérvio (Latino)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Inglês (Reino Unido) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Inglês (EUA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Espanhol (EUA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Híndi-inglês (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Sérvio (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tradicional)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (cirílico)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (latino)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (compacto)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Nenhum idioma (alfabeto)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabeto (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabeto (QWERTZ)"</string>
@@ -103,10 +122,6 @@
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabeto (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
     <string name="keyboard_theme" msgid="4909551808526178852">"Tema do teclado"</string>
-    <string name="keyboard_theme_holo_white" msgid="8506588144096428751">"Holo branco"</string>
-    <string name="keyboard_theme_holo_blue" msgid="192400518003397418">"Holo azul"</string>
-    <string name="keyboard_theme_material_dark" msgid="2701178578784760596">"Material escuro"</string>
-    <string name="keyboard_theme_material_light" msgid="3479400901818790331">"Material claro"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Estilos personalizados"</string>
     <string name="add_style" msgid="6163126614514489951">"Adic. estilo"</string>
     <string name="add" msgid="8299699805688017798">"Adicionar"</string>
@@ -118,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Ativar"</string>
     <string name="not_now" msgid="6172462888202790482">"Agora não"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"O estilo de entrada já existe: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Atraso ao pressionar teclas"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Duração da vibração ao tocar"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Volume ao tocar na tela"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Ler arquivo de dicionário externo"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Nenhum arquivo de dicionário na pasta Downloads"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Selecione um arquivo de dicionário para instalar"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Deseja instalar este arquivo para <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Ocorreu um erro"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Atraso ao pressionar teclas"</string>
     <string name="button_default" msgid="3988017840431881491">"Padrão"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Bem-vindo ao <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"com entrada por gestos"</string>
@@ -140,11 +150,9 @@
     <string name="setup_step2_instruction" msgid="9141481964870023336">"Em seguida, selecione \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" como o método de entrada de texto ativo."</string>
     <string name="setup_step2_action" msgid="1660330307159824337">"Alternar métodos de entrada"</string>
     <string name="setup_step3_title" msgid="3154757183631490281">"Parabéns, você terminou!"</string>
-    <string name="setup_step3_instruction" msgid="8025981829605426000">"Agora você pode digitar em todos os seus aplicativos favoritos com o <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
+    <string name="setup_step3_instruction" msgid="8025981829605426000">"Agora você pode digitar em todos os seus apps favoritos com o <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Configurar idiomas adicionais"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Concluído"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Mostrar ícone do aplicativo"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Mostrar ícone do aplicativo no iniciador"</string>
     <string name="app_name" msgid="6320102637491234792">"Provedor de dicionário"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Provedor de dicionário"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Serviço de dicionário"</string>
@@ -155,7 +163,7 @@
     <string name="user_dictionaries" msgid="3582332055892252845">"Dicionários do usuário"</string>
     <string name="default_user_dict_pref_name" msgid="1625055720489280530">"Dicionário do usuário"</string>
     <string name="dictionary_available" msgid="4728975345815214218">"Dicionário disponível"</string>
-    <string name="dictionary_downloading" msgid="2982650524622620983">"Download em andamento"</string>
+    <string name="dictionary_downloading" msgid="2982650524622620983">"Fazendo download..."</string>
     <string name="dictionary_installed" msgid="8081558343559342962">"Instalado"</string>
     <string name="dictionary_disabled" msgid="8950383219564621762">"Instalado, desativado"</string>
     <string name="cannot_connect_to_dict_service" msgid="9216933695765732398">"Prob. conexão dic."</string>
@@ -175,7 +183,7 @@
     <string name="do_not_download_over_metered" msgid="2176209579313941583">"Fazer o download por Wi-Fi"</string>
     <string name="dict_available_notification_title" msgid="4583842811218581658">"Há um dicionário disponível para <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>"</string>
     <string name="dict_available_notification_description" msgid="1075194169443163487">"Pressione para consultar e fazer o download"</string>
-    <string name="toast_downloading_suggestions" msgid="6128155879830851739">"Download em andamento: as sugestões para <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> estarão disponíveis em breve."</string>
+    <string name="toast_downloading_suggestions" msgid="6128155879830851739">"Fazendo download...: as sugestões para <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> estarão disponíveis em breve."</string>
     <string name="version_text" msgid="2715354215568469385">"Versão <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
     <string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"Adicionar"</string>
     <string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"Adicionar ao dicionário"</string>
diff --git a/java/res/values-ro/strings-emoji-descriptions.xml b/java/res/values-ro/strings-emoji-descriptions.xml
index f44a0b9..2ac84e5 100644
--- a/java/res/values-ro/strings-emoji-descriptions.xml
+++ b/java/res/values-ro/strings-emoji-descriptions.xml
@@ -267,7 +267,7 @@
     <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Biscuit"</string>
     <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Ciocolată"</string>
     <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Bomboane"</string>
-    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Acadea"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lollipop"</string>
     <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Budincă"</string>
     <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Oală de miere"</string>
     <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Prăjitură"</string>
diff --git a/java/res/values-ro/strings-talkback-descriptions.xml b/java/res/values-ro/strings-talkback-descriptions.xml
index 7a90162..7d2e49f 100644
--- a/java/res/values-ro/strings-talkback-descriptions.xml
+++ b/java/res/values-ro/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Nu a fost introdus text"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> corectează <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> cu <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> efectuează corectare automată"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Nicio sugestie"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Caracter necunoscut"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Mai multe simboluri"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"I mare, punct deasupra"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Simbol necunoscut"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Emoji necunoscut"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Față plictisită"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Față jenată"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Față cu ochelari de soare"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Față surprinsă"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Față care sărută"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Față încruntată"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Sunt disponibile caractere alternative"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"S-au închis caracterele alternative"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Sunt disponibile sugestii alternative"</string>
diff --git a/java/res/values-ro/strings.xml b/java/res/values-ro/strings.xml
index 985a81e..ffcc68b 100644
--- a/java/res/values-ro/strings.xml
+++ b/java/res/values-ro/strings.xml
@@ -26,25 +26,36 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrare la apăsarea tastei"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Sunet la apăsarea tastei"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Pop-up la apăsarea tastei"</string>
-    <string name="settings_screen_input" msgid="2808654300248306866">"Preferințe pentru intrare"</string>
-    <string name="settings_screen_appearances" msgid="3611951947835553700">"Aspect"</string>
-    <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"Opțiuni pt. diverse limbi"</string>
-    <string name="settings_screen_gesture" msgid="9113437621722871665">"Prefer. tastare gestuală"</string>
-    <string name="settings_screen_correction" msgid="1616818407747682955">"Corectare text"</string>
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Preferinţe"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Conturi și confidențialitate"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Aspect"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Tastare gestuală"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Corectarea textului"</string>
     <string name="settings_screen_advanced" msgid="7472408607625972994">"Setări avansate"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Temă"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Activați tastatura divizată"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Sincronizare Tastatură Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Sincronizarea este activată"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Sincronizați dicționarul personal pe dispozitive"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Sincronizați acum"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Ștergeți datele din cloud"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Șterge datele sincronizate de pe Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Datele sincronizate vor fi șterse din cloud. Sunteți sigur(ă)?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Ștergeți"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Anulați"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Dicționarul personal va fi sincronizat și i se va face backup pe serverele Google. Informațiile statistice privind frecvența cuvintelor pot fi culese pentru a îmbunătăți produsele noastre. Culegerea și folosirea informațiilor vor respecta "<a href="https://www.google.com/policies/privacy">"Politica de confidențialitate Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Pentru a activa funcția, adăugați un cont Google pe dispozitiv"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Comut. alte metode de introd."</string>
-    <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Tasta de comutare între limbi include şi alte metode de introd."</string>
+    <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Tasta de comutare între limbi include și alte metode de introd."</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Tastă comutare limbi"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Afişaţi când sunt activate mai multe limbi de intrare"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Afișați indicator glisare"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Afișați un indicator în timpul glisării de la Shift sau tasta de simboluri"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Închidere pop-up taste"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Fără întârziere"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Prestabilit"</string>
     <string name="abbreviation_unit_milliseconds" msgid="8700286094028323363">"<xliff:g id="MILLISECONDS">%s</xliff:g> msec."</string>
     <string name="settings_system_default" msgid="6268225104743331821">"Valoare prestabilită"</string>
     <string name="use_contacts_dict" msgid="4435317977804180815">"Sugeraţi nume din Agendă"</string>
-    <string name="use_contacts_dict_summary" msgid="6599983334507879959">"Utilizaţi numele din Agendă pentru sugestii şi corecţii"</string>
+    <string name="use_contacts_dict_summary" msgid="6599983334507879959">"Utilizaţi numele din Agendă pentru sugestii și corecţii"</string>
     <string name="use_personalized_dicts" msgid="5167396352105467626">"Sugestii personalizate"</string>
     <string name="enable_metrics_logging" msgid="5506372337118822837">"Îmbunătățiți <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="use_double_space_period" msgid="8781529969425082860">"Inserează punct spațiu"</string>
@@ -56,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Dicţionar principal"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Afişaţi sugestii de corectare"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Afişaţi sugestii de cuvinte în timpul introducerii textului"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Afişaţi întotdeauna"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Afişaţi în modul Portret"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Ascundeţi întotdeauna"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Blocați cuvintele jignitoare"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Nu se sugerează cuvinte potențial jignitoare"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Autocorectare"</string>
@@ -79,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Tastă pentru intrarea vocală"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nicio metodă de intrare vocală activată. Verificați setările pentru limbă și introducere de text."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Configuraţi metodele de intrare"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Selectaţi limba"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Trimiteți feedback"</string>
-    <string name="select_language" msgid="3693815588777926848">"Limbi de introducere de text"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Limbi"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Ajutor și feedback"</string>
+    <string name="select_language" msgid="5709487854987078367">"Limbi"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Atingeţi din nou pentru a salva"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Atingeți aici pentru a salva"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Dicţionar disponibil"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Temă pentru tastatură"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Comutați între conturi"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Niciun cont selectat"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Acum utilizați <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Anulați"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Deconectați-vă"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Selectați un cont de utilizat"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"engleză (Regatul Unit)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"engleză (S.U.A.)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"spaniolă (S.U.A.)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Sârbă (caractere latine)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Engleză (Regatul Unit) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Engleză (S.U.A.) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Spaniolă (S.U.A.) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Sârbă (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tradițională)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Chirilică)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Latină)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Compact)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Nicio limbă (alfabet)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabet (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabet (QWERTZ)"</string>
@@ -103,10 +122,6 @@
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabet (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
     <string name="keyboard_theme" msgid="4909551808526178852">"Temă pentru tastatură"</string>
-    <string name="keyboard_theme_holo_white" msgid="8506588144096428751">"Holo White"</string>
-    <string name="keyboard_theme_holo_blue" msgid="192400518003397418">"Holo Blue"</string>
-    <string name="keyboard_theme_material_dark" msgid="2701178578784760596">"Material Dark"</string>
-    <string name="keyboard_theme_material_light" msgid="3479400901818790331">"Material Light"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Stiluri personalizate"</string>
     <string name="add_style" msgid="6163126614514489951">"Stil"</string>
     <string name="add" msgid="8299699805688017798">"Adăugaţi"</string>
@@ -118,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Activaţi"</string>
     <string name="not_now" msgid="6172462888202790482">"Nu acum"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Acelaşi stil de introducere există deja: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Timpul apăsării lungi a tastei"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Vibrare după apăsarea tastei"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Sunet la apăsarea tastelor"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Citiți fișierul de dicționar extern"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Nu există fișiere dicționar în dosarul Descărcări"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Selectați un fișier dicționar de instalat"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Doriți să instalați acest fișier pentru <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"A apărut o eroare"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Timpul apăsării lungi a tastei"</string>
     <string name="button_default" msgid="3988017840431881491">"Prestabilit"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Bun venit la <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"cu Tastarea gestuală"</string>
@@ -143,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Acum, puteți introduce text în toate aplicațiile preferate, utilizând <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Configurați limbi suplimentare"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Finalizat"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Afișați pictograma aplicației"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Afișați pictograma aplicației în lansator"</string>
     <string name="app_name" msgid="6320102637491234792">"Furnizor dicționar"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Furnizor dicționar"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Serviciu dicționar"</string>
@@ -165,7 +173,7 @@
     <string name="message_updating" msgid="4457761393932375219">"Se verifică existența actualizărilor"</string>
     <string name="message_loading" msgid="5638680861387748936">"Se încarcă..."</string>
     <string name="main_dict_description" msgid="3072821352793492143">"Dicționar principal"</string>
-    <string name="cancel" msgid="6830980399865683324">"Anulaţi"</string>
+    <string name="cancel" msgid="6830980399865683324">"Anulați"</string>
     <string name="go_to_settings" msgid="3876892339342569259">"Setări"</string>
     <string name="install_dict" msgid="180852772562189365">"Instalați"</string>
     <string name="cancel_download_dict" msgid="7843340278507019303">"Anulați"</string>
diff --git a/java/res/values-ru/strings-emoji-descriptions.xml b/java/res/values-ru/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..91fe95e
--- /dev/null
+++ b/java/res/values-ru/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Знак охраны авторского права."</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Символ охраны товарного знака."</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Два восклицательных знака."</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Восклицательный и вопросительный знаки."</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Символ торгового знака."</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Информация."</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Стрелка влево и вправо."</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Стрелка вверх и вниз."</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Стрелка северо-запад."</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Стрелка северо-восток."</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Стрелка юго-восток."</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Стрелка юго-запад."</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Стрелка влево с закруглением."</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Стрелка вправо с закруглением."</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Часы."</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Песочные часы."</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Два черных треугольника, указывающие вправо."</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Два черных треугольника, указывающие влево."</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Два черных треугольника, указывающие вверх."</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Два черных треугольника, указывающие вниз."</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Будильник."</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Песочные часы с сыплющимся песком."</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Заглавная буква М в круге."</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Маленький черный квадрат."</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Маленький белый квадрат."</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Черный треугольник, указывающий вправо."</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Черный треугольник, указывающий влево."</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Белый квадрат средних размеров."</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Черный квадрат средних размеров."</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Небольшой белый квадрат."</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Небольшой черный квадрат."</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Черное солнце с лучами."</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Облако."</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Черный телефон."</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Галочка в квадрате."</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Зонт и капли дождя."</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Горячий напиток."</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Белая рука с указательным пальцем вверх."</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Белый смайлик."</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Овен."</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Телец."</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Близнецы."</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Рак."</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Лев."</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Дева."</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Весы."</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Скорпион."</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Стрелец."</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Козерог."</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Водолей."</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Рыбы."</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Черные пики."</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Черные трефы."</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Черные червы."</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Черные бубны."</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Термальные источники."</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Черный универсальный знак повторной переработки."</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Инвалидная коляска."</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Якорь."</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Знак предупреждения."</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Знак высокого напряжения."</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Белый круг средних размеров."</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Черный круг средних размеров."</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Футбольный мяч."</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Бейсбольный мяч."</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Снеговик."</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Солнце за облаком."</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Змееносец."</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Входа нет."</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Церковь."</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Фонтан."</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Флаг в лунке."</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Парусник."</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Палатка."</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Бензоколонка."</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Черные ножницы."</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Жирная белая галочка."</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Самолет."</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Конверт."</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Поднятый кулак."</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Поднятая ладонь."</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Знак победы."</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Карандаш."</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Черное перо."</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Жирная галочка."</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Жирный знак умножения."</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Мерцание."</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Звездочка с восемью лучами."</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Черная звездочка с восемью лучами."</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Снежинка."</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Искра."</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Крест."</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Белый крест на черном фоне."</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Фигурный черный вопросительный знак."</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Фигурный белый вопросительный знак."</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Фигурный белый восклицательный знак."</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Жирный восклицательный знак."</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Черное сердце."</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Жирный знак плюса."</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Жирный знак минуса."</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Жирный знак деления."</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Черная стрелка вправо."</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Петля."</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Двойная петля."</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Стрелка, указывающая вправо, затем вверх."</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Стрелка, указывающая вправо, затем вниз."</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Черная стрелка влево."</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Черная стрелка вверх."</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Черная стрелка вниз."</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Большой черный квадрат."</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Большой белый квадрат."</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Белая звезда средних размеров."</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Большой жирный круг."</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Волнистое тире."</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Начало вокальной партии."</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Иероглиф поздравления, обведенный кругом."</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Иероглиф Секрет, обведенный кругом."</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Кость для маджонга Красный дракон."</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Игральная карта Черный джокер."</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Вторая группа крови."</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Третья группа крови."</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Первая группа крови."</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Автомобильная стоянка."</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Четвертая группа крови."</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"Квадратный значок очистки."</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Квадратный значок Классно."</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Квадратный значок Бесплатно."</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"Квадратный значок идентификатора."</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Квадратный значок Новый."</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Квадратный значок Нехорошо."</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Квадратный значок О\'кей."</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"Квадратный значок СОС."</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Квадратный значок обновления с восклицательным знаком."</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Квадратный значок Против."</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Квадратный значок Здесь, катакана."</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Квадратный значок сервиса, катакана."</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Иероглиф отсутствия."</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Иероглиф забронированного места."</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Иероглиф Запрещено."</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Иероглиф Свободно."</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Иероглиф Принято."</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Иероглиф Заполнено."</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Иероглиф обладания."</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Иероглиф Ежемесячно."</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Иероглиф заявления."</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Иероглиф скидки."</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Иероглиф Открыто."</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Иероглиф выгодного предложения."</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Иероглиф Принять."</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Ураган."</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Туман."</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Сложенный зонт."</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Звездная ночь."</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Восход солнца над горами."</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Восход."</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Городской пейзаж на закате."</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Закат над зданиями."</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Радуга."</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Ночной пейзаж с мостом."</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Волна."</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Вулкан."</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Млечный путь."</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Европа и Африка на глобусе."</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Америка на глобусе."</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Азия и Австралия на глобусе."</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Глобус с меридианами."</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Новолуние."</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Растущий полумесяц."</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Луна в первой четверти."</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Растущая луна."</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Полнолуние."</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Убывающая Луна."</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Луна в последней четверти."</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Убывающий полумесяц."</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Месяц."</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Новолуние с лицом."</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Луна в первой четверти с лицом."</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Луна в последней четверти с лицом."</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Полная луна с лицом."</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Солнце с лицом."</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Светящаяся звезда."</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Падающая звезда."</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Каштан."</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Росток."</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Хвойное дерево."</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Лиственное дерево."</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Пальма."</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Кактус."</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Тюльпан."</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Цветок вишни."</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Роза."</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Гибискус."</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Подсолнечник."</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Цветок."</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Кукурузный початок."</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Колосья риса."</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Растение."</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Четырехлистный клевер."</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Кленовый лист."</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Опавший лист."</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Лист, кружащийся на ветру."</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Гриб."</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Помидор."</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Баклажан."</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Виноград."</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Дыня."</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Арбуз."</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Мандарин."</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Лимон."</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Банан."</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ананас."</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Красное яблоко."</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Зеленое яблоко."</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Груша."</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Персик."</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Вишни."</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Клубника."</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Гамбургер."</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Кусок пиццы."</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Мясо на кости."</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Куриная ножка."</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Рисовое печенье."</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Рисовый шарик."</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Миска с рисом."</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Карри с рисом."</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Миска с лапшой."</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Спагетти."</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Хлеб."</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Картофель фри."</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Печеный батат."</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Данго."</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Одэн."</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Суши."</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Жареная креветка."</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Рыбная котлета со спиральным рисунком."</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Мягкое мороженое."</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Ледяная стружка."</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Мороженое."</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Пончик."</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Печенье."</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Шоколадная плитка."</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Конфета."</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Леденец."</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Заварной крем."</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Горшок с медом."</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Кусок торта."</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Упаковка бэнто."</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Еда в миске."</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Приготовление пищи."</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Вилка и нож."</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Чайная чашка без ручки."</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Бутылка саке и чашка."</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Бокал вина."</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Коктейль в бокале."</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Тропический коктейль."</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Пивная кружка."</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Чокающиеся пивные кружки."</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Детская бутылочка."</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Лента."</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Завернутый подарок."</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Торт на день рождения."</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Светильник-тыква."</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Наряженная елка."</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Санта-Клаус."</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Фейерверк."</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Бенгальский огонь."</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Воздушный шар."</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Хлопушка."</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Шар с конфетти."</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Танабата, ветка с тандзаку."</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Скрещенные флаги."</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Японское новогоднее украшение."</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Японские куклы."</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Вымпелы в виде карпов."</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Японский колокольчик фурин."</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Церемония созерцания луны."</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Школьный ранец."</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Шапочка выпускника."</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Карусель с лошадьми."</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Колесо обозрения."</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Американские горки."</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Удочка с пойманной рыбой."</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Микрофон."</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Кинокамера."</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Кино."</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Наушники."</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Палитра."</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Цилиндр."</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Цирковой шатер."</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Билет."</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Нумератор с хлопушкой."</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Театральные маски."</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Видеоигра."</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Прямое попадание."</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Игровой автомат."</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Бильярд."</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Игровые кости."</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Боулинг."</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Ханафуда."</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Музыкальная нота."</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Несколько музыкальных нот."</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Саксофон."</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Гитара."</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Клавишный инструмент."</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Труба."</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Скрипка."</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Скрипичный ключ на нотном стане."</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Майка бегуна."</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Теннисная ракетка и мяч."</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Лыжа с ботинком."</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Баскетбольный мяч и кольцо."</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Клетчатый флаг."</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Сноубордист."</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Бегун."</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Серфер."</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Кубок."</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Конный спорт."</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Американский футбол."</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Регби."</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Пловец."</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Дом."</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Дом с садом."</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Офисное здание."</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Японский почтамт."</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Европейский почтамт."</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Больница."</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Банк."</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Банкомат."</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Отель."</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Отель для встреч."</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Круглосуточный магазин."</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Школа."</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Супермаркет."</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Фабрика."</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Японский фонарь."</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Японский замок."</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Европейский замок."</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Крыса."</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Мышь."</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Бык."</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Буйвол."</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Корова."</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Леопард."</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Кролик."</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Кошка."</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Дракон."</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Крокодил."</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Кит."</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Улитка."</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Змея."</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Лошадь."</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Баран."</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Коза."</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Овца."</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Обезьяна."</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Петух."</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Курица."</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Собака."</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Свинья."</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Кабан."</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Слон."</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Осьминог."</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Ракушка."</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Сороконожка."</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Муравей."</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Пчела."</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Божья коровка."</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Рыба."</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Тропическая рыбка."</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Иглобрюх."</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Черепаха."</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Вылупившийся цыпленок."</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Цыпленок."</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Цыпленок анфас."</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Птица."</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Пингвин."</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Коала."</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Пудель."</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Одногорбый верблюд."</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Двугорбый верблюд."</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Дельфин."</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Голова мыши."</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Голова коровы."</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Голова тигра."</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Голова кролика."</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Голова кошки."</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Голова дракона."</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Кит, пускающий фонтан."</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Голова лошади."</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Голова обезьяны."</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Голова собаки."</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Голова свиньи."</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Голова лягушки."</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Голова хомяка."</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Голова волка."</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Голова медведя."</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Голова панды."</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Свиной пятачок."</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Отпечатки лап."</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Глаза."</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Ухо."</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Нос."</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Рот."</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Язык."</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Белая рука с указательным пальцем вверх с тыльной стороны."</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Белая рука с указательным пальцем вниз с тыльной стороны."</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Белая рука с указательным пальцем влево с тыльной стороны."</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Белая рука с указательным пальцем вправо с тыльной стороны."</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Кулак."</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Машущая раскрытая ладонь."</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Пальцы, сложенные знаком О\'кей."</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Большой палец вверх."</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Большой палец вниз."</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Аплодисменты."</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Раскрытые ладони."</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Корона."</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Женская шляпа."</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Очки."</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Галстук."</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Футболка."</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Джинсы."</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Платье."</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Кимоно."</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Бикини."</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Блузка."</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Кошелек."</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Женская сумка."</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Чехол."</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Мужская туфля."</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Кроссовка."</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Туфля на каблуке."</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Женская сандалия."</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Женские сапоги."</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Отпечатки босых ног."</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Силуэт головы и плеч."</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Силуэты голов и плеч."</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Мальчик."</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Девочка."</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Мужчина."</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Женщина."</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Семья."</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Мужчина и женщина, держащиеся за руки."</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Двое мужчин, держащихся за руки."</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Две женщины, держащиеся за руки."</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Полицейский."</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Женщина с кроличьими ушами."</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Невеста с фатой."</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Человек со светлыми волосами."</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Мужчина в традиционной китайской шапочке."</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Мужчина в тюрбане."</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Пожилой мужчина."</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Пожилая женщина."</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Младенец."</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Строитель."</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Принцесса."</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Японский демон они."</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Японский демон тэнгу."</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Привидение."</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Младенец ангел."</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Гуманоид."</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Инопланетный монстр."</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Имп."</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Череп."</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Сотрудник бюро информации."</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Часовой."</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Танцор."</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Помада."</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Лак для ногтей."</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Массаж лица."</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Стрижка."</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Указатель парикмахерской."</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Шприц."</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Таблетка."</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Отпечаток губ."</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Любовное письмо."</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Кольцо."</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Драгоценный камень."</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Поцелуй."</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Букет."</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Влюбленная пара."</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Свадьба."</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Бьющееся сердце."</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Разбитое сердце."</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Два сердца."</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Мерцающее сердце."</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Трепещущее сердце."</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Сердце, пронзенное стрелой."</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Голубое сердце."</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Зеленое сердце."</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Желтое сердце."</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Фиолетовое сердце."</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Сердце с лентой."</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Вращающиеся сердца."</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Украшение в виде сердца."</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Ромб с точкой в центре."</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Горящая лампочка."</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Сердится."</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Бомба."</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Сонный."</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Столкновение."</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Капли пота."</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Капля."</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Стремительное движение."</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Кучка экскрементов."</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Бицепс."</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Головокружение."</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Облачко реплики."</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Облачко мыслей."</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Белый цветок."</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Сто баллов."</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Мешок с деньгами."</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Обмен валюты."</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Широкий знак доллара."</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Кредитная карта."</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Банкнота со знаком иены."</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Купюра со знаком доллара."</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Банкнота со знаком евро."</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Банкнота со знаком фунта стерлингов."</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Пачка банкнот с крыльями."</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"График, идущий вверх, и знак иены."</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Кресло."</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Компьютер."</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Портфель."</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Мини-диск."</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Дискета."</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Оптический диск."</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD."</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Папка."</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Открытая папка."</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Страница, скрученная снизу."</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Страница с загнутым углом."</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Календарь."</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Отрывной календарь."</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Картотека."</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"График, идущий вверх."</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"График, идущий вниз."</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Столбчатая диаграмма."</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Папка-планшет."</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Канцелярская кнопка."</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Канцелярская кнопка с круглой головкой."</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Скрепка."</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Линейка."</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Линейка треугольник."</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Закладки на страницах."</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Бухгалтерская книга."</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Блокнот."</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Блокнот с декоративной обложкой."</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Закрытая книга."</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Открытая книга."</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Зеленая книга."</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Синяя книга."</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Оранжевая книга."</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Книги."</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Нагрудная визитка."</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Свиток."</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Заметка."</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Телефонная трубка."</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Пейджер."</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Факсимильный аппарат."</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Спутниковая антенна."</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Громкоговоритель."</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Ручной мегафон."</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Лоток для исходящей почты."</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Лоток для входящей почты."</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Посылка."</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Значок электронной почты."</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Входящее письмо."</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Конверт со стрелкой вниз над ним."</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Закрытый почтовый ящик с опущенным флажком."</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Закрытый почтовый ящик с поднятым флажком."</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Открытый почтовый ящик с поднятым флажком."</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Открытый почтовый ящик с опущенным флажком."</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Почтовый ящик."</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Рожок, значок почтовой службы."</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Газета."</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Мобильный телефон."</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Мобильный телефон со стрелкой, указывающей на него."</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Режим вибрации."</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Отключенный мобильный телефон."</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Запрет на использование мобильного телефона."</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Значок антенны с индикатором уровня сигнала."</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Фотоаппарат."</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Видеокамера."</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Телевизор."</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Радио."</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Видеокассета."</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Перекрещенные стрелки вправо."</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Круговые стрелки, указывающие по часовой."</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Круговые стрелки, указывающие по часовой, и цифра один поверх них."</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Круговые стрелки, указывающие вверх и вниз по часовой."</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Круговые стрелки, указывающие вверх и вниз против часовой."</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Значок уменьшения яркости."</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Значок увеличения яркости."</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Перечеркнутый динамик."</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Динамик."</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Динамик с одной линией звука."</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Динамик с тремя линиями звука."</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Батарея."</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Штепсельная вилка."</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Увеличительное стекло, направленное влево."</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Увеличительное стекло, направленное вправо."</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Замок и перьевая ручка."</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Закрытый замок с ключом."</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Ключ."</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Замок."</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Открытый замок."</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Колокольчик."</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Перечеркнутый колокольчик."</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Закладка."</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Значок ссылки."</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Переключатель."</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Надпись Назад и стрелка влево над ней."</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"Надпись Конец и стрелка влево над ней."</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"Надпись Включено с восклицательным знаком и стрелки, указывающие вправо и влево, над ней."</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Надпись Скоро и стрелка вправо над ней."</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Надпись Вверх и стрелка вверх над ней."</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Значок Только после восемнадцати лет."</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Клавиша десять."</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Значок ввода латинских заглавных букв."</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Значок ввода латинских строчных букв."</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Значок ввода цифр."</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Знак ввода символов."</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Значок ввода латинских букв."</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Огонь."</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Электрический фонарь."</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Гаечный ключ."</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Молоток."</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Гайка и болт."</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Нож."</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Пистолет."</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Микроскоп."</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Телескоп."</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Магический шар."</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Шестиконечная звезда с точкой в центре."</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Японский символ новичка."</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Трезубец."</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Черная квадратная кнопка."</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Белая квадратная кнопка."</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Большой красный круг."</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Большой синий круг."</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Большой оранжевый ромб."</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Большой синий ромб."</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Маленький оранжевый ромб."</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Маленький синий ромб."</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Красный треугольник вершиной вверх."</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Красный треугольник вершиной вниз."</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Маленький красный треугольник вершиной вверх."</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Маленький красный треугольник вершиной вниз."</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Один час на циферблате."</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Два часа на циферблате."</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Три часа на циферблате."</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Четыре часа на циферблате."</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Пять часов на циферблате."</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Шесть часов на циферблате."</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Семь часов на циферблате."</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Восемь часов на циферблате."</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Девять часов на циферблате."</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Десять часов на циферблате."</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Одиннадцать часов на циферблате."</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Двенадцать часов на циферблате."</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Полвторого на циферблате."</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Полтретьего на циферблате."</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Полчетвертого на циферблате."</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Полпятого на циферблате."</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Полшестого на циферблате."</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Полседьмого на циферблате."</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Полвосьмого на циферблате."</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Полдевятого на циферблате."</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Полдесятого на циферблате."</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Пол-одиннадцатого на циферблате."</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Полдвенадцатого на циферблате."</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Полпервого на циферблате."</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Гора Фудзи."</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Токийская телебашня."</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Статуя Свободы."</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Очертания Японии."</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Моаи."</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Широкая улыбка."</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Широкая улыбка, глаза прищурены."</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Слезы радости."</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Улыбка, рот открыт."</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Улыбка, рот открыт, глаза прищурены."</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Открытая улыбка и испарина."</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Открытая улыбка, зажмуренные глаза."</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Улыбка, нимб над головой."</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Улыбающееся лицо, рога на голове."</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Подмигивание."</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Улыбка, глаза прищурены."</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Высунутый язык, один глаз прищурен."</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Облегчение."</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Улыбка, глаза в форме сердец."</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Улыбка, солнцезащитные очки."</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Самодовольная усмешка."</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Без эмоций."</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Лицо без выражения."</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Не впечатлен."</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Испарина."</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Глубокая печаль."</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Смущение."</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Готов расплакаться."</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Поцелуй."</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Воздушный поцелуй."</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Поцелуй, глаза прищурены."</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Поцелуй, глаза закрыты."</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Высунутый язык."</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Высунутый язык, подмигивание."</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Высунутый язык, зажмуренные глаза."</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Разочарование."</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Беспокойство."</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Сердитое лицо."</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Сердитое лицо с надутыми щеками."</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Плач."</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Упорство."</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Ликование."</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Разочарование, смешанное с чувством облегчения."</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Нахмуренное лицо, рот открыт."</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Страдающее лицо."</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Страх."</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Усталость."</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Сонное лицо."</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Утомление."</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Гримаса."</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Громкий плач."</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Открытый рот."</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Молчание."</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Открытый рот, испарина."</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Крик ужаса."</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Изумление."</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Смущение, красные щеки."</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Спящее лицо."</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Головокружение."</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Лицо безо рта."</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Лицо в медицинской маске."</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Улыбающийся кот с прищуренными глазами."</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Кот со слезами радости."</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Улыбающийся кот, рот открыт."</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Улыбающийся кот, глаза в форме сердец."</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Кот с кривой ухмылкой."</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Целующий кот, глаза закрыты."</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Сердитый кот с надутыми щеками."</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Плачущий кот."</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Усталый кот."</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Запрет."</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Разрешение."</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Низкий поклон."</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Обезьяна с закрытыми глазами."</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Обезьяна с закрытыми ушами."</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Обезьяна с закрытым ртом."</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Радость, одна рука поднята."</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Торжествующий человек с поднятыми руками."</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Огорчение."</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Сердитый человек."</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Сложенные руки."</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Ракета."</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Вертолет."</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Паровоз."</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Вагон."</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Скоростной поезд."</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Скоростной поезд-пуля."</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Поезд."</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Метро."</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Электричка."</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Станция."</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Трамвай."</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Вагон трамвая."</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Автобус."</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Приближающийся автобус."</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Троллейбус."</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Автобусная остановка."</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Микроавтобус."</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Скорая помощь."</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Пожарная машина."</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Полицейская машина."</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Приближающаяся полицейская машина."</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Такси."</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Приближающееся такси."</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Автомобиль."</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Приближающийся автомобиль."</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Жилой автофургон."</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Малотоннажный грузовик."</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Грузовик с прицепом."</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Трактор."</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Монорельс."</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Горная железная дорога."</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Подвесная железная дорога."</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Горная канатная дорога."</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Фуникулер."</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Корабль."</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Лодка с веслами."</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Быстроходный катер."</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Горизонтальный светофор."</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Вертикальный светофор."</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Ограждение дорожных работ."</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Маячок полицейской машины."</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Треугольный флаг на шесте."</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Дверь."</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Знак Входа нет."</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Знак Курение разрешено."</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Знак Не курить."</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Знак мусорной корзины."</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Знак Не сорить."</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Знак Питьевая вода."</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Знак Непитьевая вода."</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Велосипед."</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Велосипедам проезд запрещен."</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Велосипедист."</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Горный велосипед."</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Пешеход."</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Знак Проход воспрещен."</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Дети, переходящие дорогу."</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Мужской туалет."</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Женский туалет."</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Туалет."</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Младенец."</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Туалет."</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Туалет."</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Душ."</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Ванная."</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Ванна."</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Паспортный контроль."</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Таможня."</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Выдача багажа."</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Камера хранения."</string>
+</resources>
diff --git a/java/res/values-ru/strings-talkback-descriptions.xml b/java/res/values-ru/strings-talkback-descriptions.xml
index b23d40d..43c5394 100644
--- a/java/res/values-ru/strings-talkback-descriptions.xml
+++ b/java/res/values-ru/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Текст не введен."</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"При нажатии клавиши <xliff:g id="KEY_NAME">%1$s</xliff:g> слово <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> будет исправлено на <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>."</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Клавиша <xliff:g id="KEY_NAME">%1$s</xliff:g> выполняет автоисправление."</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Подсказки не найдены"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Неизвестный символ."</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Клавиша верхнего регистра."</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Дополнительные символы."</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Заглавная латинская I с точкой сверху."</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Неизвестный символ."</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Неизвестный смайлик."</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Скука."</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Смущение."</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Солнцезащитные очки."</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Удивление."</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Поцелуй."</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Хмурый взгляд."</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Доступны дополнительные символы."</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Дополнительные символы скрыты."</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Доступны дополнительные подсказки."</string>
diff --git a/java/res/values-ru/strings.xml b/java/res/values-ru/strings.xml
index cac1865..2391647 100644
--- a/java/res/values-ru/strings.xml
+++ b/java/res/values-ru/strings.xml
@@ -26,24 +26,30 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Виброотклик клавиш"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Звук клавиш"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Увеличение нажатых"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Настройки"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Аккаунты"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Вид и раскладки"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Непрерывный ввод"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Исправление текста"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Дополнительные настройки"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Тема"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Включить разделенную клавиатуру"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Синхронизировать Клавиатуру"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Синхронизация включена"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Синхронизировать пользовательский словарь со всеми устройствами"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Синхронизировать"</string>
+    <!-- no translation found for clear_sync_data_title (8582001557037069154) -->
     <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Удаление синхронизированных данных из Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Синхронизированные данные будут удалены из облака. Продолжить?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Удалить"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Отменить"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Словарь будет сохраняться на серверах Google и синхронизироваться. Чтобы повысить качество наших сервисов, мы можем отслеживать статистику использования тех или иных слов. Вся информация обрабатывается в соответствии с "<a href="https://www.google.com/policies/privacy">"Политикой конфиденциальности"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Чтобы включить функцию, добавьте аккаунт Google на устройство"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Смена способов ввода"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Клавиша переключения языков также служит для смены способа ввода"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Клавиша смены языка"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Показывать, когда включено несколько раскладок"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"След от переключателя режима"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Показывать след при проведении пальцем от кнопок Shift и \"Символы\""</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Задержка закрытия"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Без задержки"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"По умолчанию"</string>
@@ -62,9 +68,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Основной словарь"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Варианты исправлений"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Предлагать варианты слов во время ввода"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Всегда предлагать"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Только в вертикальном режиме"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Никогда не предлагать"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Блокировка нецензурных слов"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Не предлагать слова, которые могут быть сочтены оскорбительными"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Автоисправление"</string>
@@ -85,21 +88,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Кнопка голосового ввода"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Голосовой способ ввода не включен. Проверьте раздел настроек \"Язык и ввод\"."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Настройка способов ввода"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Языки ввода"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Отправить отзыв"</string>
-    <string name="select_language" msgid="3693815588777926848">"Языки ввода"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Выберите язык"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Справка/отзыв"</string>
+    <string name="select_language" msgid="5709487854987078367">"Язык"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Нажмите, чтобы сохранить"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Нажмите, чтобы сохранить"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Доступен словарь"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Тема клавиатуры"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Сменить аккаунт"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Аккаунт не выбран"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Используется аккаунт <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"ОК"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Отмена"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Выйти"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Выберите аккаунт"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"английский (Великобритания)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"английский (США)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Испанский (США)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Хинглиш"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Сербский (латиница)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Английский (Великобритания, <xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Английский (США, <xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Испанский (США, <xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Хинглиш (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Сербский (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (классическая)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (кириллица)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (латиница)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (компактная раскладка)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Язык не определен (латиница)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Латиница (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Латиница (QWERTZ)"</string>
@@ -108,16 +122,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Латиница (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Латиница (ПК)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Эмодзи"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Тема клавиатуры"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Персонализированные стили"</string>
     <string name="add_style" msgid="6163126614514489951">"Добавить стиль"</string>
     <string name="add" msgid="8299699805688017798">"Добавить"</string>
@@ -129,14 +134,9 @@
     <string name="enable" msgid="5031294444630523247">"Включить"</string>
     <string name="not_now" msgid="6172462888202790482">"Не сейчас"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Такой стиль ввода уже существует: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Долгое нажатие"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Вибросигнал при нажатии клавиш"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Звук при нажатии клавиш"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Загрузить словарь из файла"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"В папке \"Загрузки\" нет словарей"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Выберите файл словаря"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Установить этот файл для следующего языка: <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Ошибка"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Долгое нажатие"</string>
     <string name="button_default" msgid="3988017840431881491">"По умолчанию"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Представляем приложение \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\""</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"с непрерывным вводом"</string>
@@ -154,8 +154,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Теперь вы можете использовать приложение \"<xliff:g id="APPLICATION_NAME">%s</xliff:g>\" для набора текста."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Настроить дополнительные языки"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Готово"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Показывать значок приложения"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Отображать значок приложения на панели запуска"</string>
     <string name="app_name" msgid="6320102637491234792">"Поставщик словарей"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Поставщик словарей"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Служба словарей"</string>
diff --git a/java/res/values-si-rLK/strings-emoji-descriptions.xml b/java/res/values-si-rLK/strings-emoji-descriptions.xml
index 14187a6..ae341dc 100644
--- a/java/res/values-si-rLK/strings-emoji-descriptions.xml
+++ b/java/res/values-si-rLK/strings-emoji-descriptions.xml
@@ -267,7 +267,7 @@
     <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"කුකීය"</string>
     <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"චොකලට් බාරය"</string>
     <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"පැණිරස"</string>
-    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"ලොලිපොප්"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lollipop"</string>
     <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"කස්ටට්"</string>
     <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"මී පැණි මුට්ටිය"</string>
     <string name="spoken_emoji_1F370" msgid="7243244547866114951">"ෂොට් කේක්"</string>
diff --git a/java/res/values-si-rLK/strings-talkback-descriptions.xml b/java/res/values-si-rLK/strings-talkback-descriptions.xml
index 85cb5f6..25398e4 100644
--- a/java/res/values-si-rLK/strings-talkback-descriptions.xml
+++ b/java/res/values-si-rLK/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"පෙළ ඇතුළු කර නැත"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> සිට <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> වෙත නිවැරදි කරයි"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> ස්වයං-නිවැරදි කිරීම සිදු කරයි"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"යෝජනා නොමැත"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"නොදන්නා අකුර"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"ෂිෆ්ට්"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"තව සංකේත"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"ලොකු I, ඉහළින් තිත"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"නොදන්නා සංකේතය"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"නොදන්නා ඉමොජි"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"කම්මැලි මුහුණ"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"අපහසුවට පත් කළ මුහුණ"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"අව් කණ්නාඩි පැළදි මුහුණ"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"පුදුමයට පත් වුණු මුහුණ"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"සිපගන්නා මුහුණ"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"රවන මුහුණ"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"විකල්ප අකුරු තිබේ"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"විකල්ප අකුරු අස් කරන ලදි"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"විකල්ප යෝජනා තිබේ"</string>
diff --git a/java/res/values-si-rLK/strings.xml b/java/res/values-si-rLK/strings.xml
index e4e0b8e..d87f13b 100644
--- a/java/res/values-si-rLK/strings.xml
+++ b/java/res/values-si-rLK/strings.xml
@@ -26,18 +26,30 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"යතුර එබීමට කම්පනය කිරීම සක්‍රියයි"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"යතුරු එබිම මත හඬ"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"යතුරු එබීම මත උත්පතනය"</string>
-    <string name="settings_screen_input" msgid="2808654300248306866">"ආදාන මනාපය"</string>
-    <string name="settings_screen_appearances" msgid="3611951947835553700">"පෙනුම"</string>
-    <string name="settings_screen_multi_lingual" msgid="6829970893413937235">"බහු මූර්ධජ අක්ෂර විකල්ප"</string>
-    <string name="settings_screen_gesture" msgid="9113437621722871665">"ඉංගිතයෙන් ටයිප් කිරීමේ මනාපය"</string>
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"අභිරුචි"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"ගිණුම් සහ රහස්‍යතාව"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"පෙනුම සහ පිරිසැලසුම්"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"ඉංගිත ටයිප් කිරීම"</string>
     <string name="settings_screen_correction" msgid="1616818407747682955">"පෙළ නිවැරදි කිරීම"</string>
     <string name="settings_screen_advanced" msgid="7472408607625972994">"උසස්"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"තේමාව"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"බෙදු යතුරු පුවරුව සබල කරන්න"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google යතුරු පුවරුව සමමුහුර්ත කිරීම"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"සමමුහුර්ත කිරීම් ක්‍රියාත්මකයි"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"ඔබේ පෞද්ගලික ශබ්දකෝෂය ඔබේ උපකරණ සමඟ සමමුහුර්ත කරන්න"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"දැන් සමමුහුර්ත කරන්න"</string>
+    <!-- no translation found for clear_sync_data_title (8582001557037069154) -->
+    <skip />
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"ඔබගේ සමමුහුර්ත කළ දත්ත Google වෙතින් මකා දමයි"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"ඔබගේ සමමුහුර්ත දත්ත සියල්ල ක්ලවුඩ් එකෙන් ඉවත් කරනු ඇත. ඔබට විශ්වාසද?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"මකන්න"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"අවලංගු කරන්න"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"ඔබගේ පෞද්ගලික ශබ්දකෝෂය Google සේවාදායකයන් වෙත සමමුහුර්ත කර උපස්ථය කෙරෙනු ඇත. අපගේ නිෂ්පාදන වැඩි දියුණු කිරීමට උදවු වනු පිණිස වචන භාවිතා වන වාර ගණන පිළිබඳ සංඛ්‍යාත්මක තොරතුරු සමුච්චය කිරීමට ඉඩ ඇත. සියලු දත්ත සමුච්චය කිරීම සහ භාවිතා කිරීම "<a href="https://www.google.com/policies/privacy">"Google හි රහස්‍යතා ප්‍රතිපත්තිය"</a>"අනුව සිදු කරනු ඇත."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"මෙම විශේෂාංගය සබල කිරීමට කරුණාකර Google ගිණුමක් එක් කරන්න"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"වෙනත් ආදාන ක්‍රම වෙත මාරුවන්න"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"භාෂා මාරු යතුර වෙනත් ආදාන ක්‍රමද ආවරණය කරයි"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"භාෂා මාරු යතුර"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"බහුවිධ ආදාන භාෂා සබල කර ඇති විට පෙන්වන්න"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"සර්පණ දර්ශකය පෙන්වන්න"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"ෂිෆ්ට් හෝ සංකේත යතුරු වෙතින් සර්පණය කරන අතරතුර දෘෂ්‍ය ඉඟි දර්ශනය කරන්න"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"යතුරු උත්පතන ඉවත් කිරීමේ ප්‍රමාදය"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"ප්‍රමාද නැත"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"සුපුරුදු"</string>
@@ -56,9 +68,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"ප්‍රධාන ශබ්ද කෝෂය"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"නිවැරදි කිරීම් යෝජනා පෙන්වන්න"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"ටයිප් කරන අතරතුර යෝජිත වචන දර්ශනය කරන්න"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"සැමවිටම පෙන්වන්න"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"සිරස් ආකෘති ප්‍රකාරය තුළ පෙන්වන්න"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"සැමවිට සඟවන්න"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"අප්‍රසන්න වචන අවහිර කරන්න"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"විභව්‍යව අප්‍රසන්න වචන යෝජනා නොකරන්න"</string>
     <string name="auto_correction" msgid="7630720885194996950">"ස්වයං-නිවැරදි කිරීම"</string>
@@ -79,21 +88,32 @@
     <string name="voice_input" msgid="3583258583521397548">"හඬ ආදාන යතුර"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"හඬ ආදාන සබල කර නැත. භාෂාව සහ ආදාන සැකසීම් පරීක්ෂා කරන්න."</string>
     <string name="configure_input_method" msgid="373356270290742459">"ආදාන ක්‍රම වින්‍යාස කරන්න"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"ආදාන භාෂා"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"ප්‍රතිපෝෂණ යවන්න"</string>
-    <string name="select_language" msgid="3693815588777926848">"ආදාන භාෂා"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"භාෂා"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"උදවු සහ ප්‍රතිපෝෂණ"</string>
+    <string name="select_language" msgid="5709487854987078367">"භාෂා"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"සුරැකීමට නැවත ස්පර්ශ කරන්න"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"සුරැකීමට මෙතැන ස්පර්ෂ කරන්න"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"ශබ්ද කෝෂය ලබාගත හැක"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"යතුරු පුවරු තේමාව"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"ගිණුම් මාරු කරන්න"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"ගිණුම් තෝරා නැත"</string>
+    <string name="account_selected" msgid="2846876462199625974">"<xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g> දැනට භාවිතා කරමින්"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"හරි"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"අවලංගු කරන්න"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"වරනය වන්න"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"භාවිතා කිරීමට ගිණුමක් තෝරන්න"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"ඉංග්‍රීසි (UK)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"ඉංග්‍රීසි (US)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"ස්පාඤ්ඤ (US)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"හින්ග්ලිෂ්"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"සර්බියානු (ලතින්)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"ඉංග්‍රීසි (එ.රා) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"ඉංග්‍රීසි (එ.ජ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"ස්පාඤ්ඤ (එ.ජ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"හින්ග්ලිෂ් (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"සර්බියානු (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (සාම්ප්‍රදායික)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (සිරිලික්)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ලතින්)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (සංයුක්ත)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"භාෂාවක් නැත (අකාරාදිය)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"අකාරාදිය (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"අකාරාදිය (QWERTZ)"</string>
@@ -103,10 +123,6 @@
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"අකාරාදිය (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"ඉමොජි"</string>
     <string name="keyboard_theme" msgid="4909551808526178852">"යතුරු පුවරු තේමාව"</string>
-    <string name="keyboard_theme_holo_white" msgid="8506588144096428751">"හොලෝ සුදු"</string>
-    <string name="keyboard_theme_holo_blue" msgid="192400518003397418">"හොලෝ නිල්"</string>
-    <string name="keyboard_theme_material_dark" msgid="2701178578784760596">"ද්‍රව්‍යමය අඳුරු"</string>
-    <string name="keyboard_theme_material_light" msgid="3479400901818790331">"ද්‍රව්‍යමය ළා"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"අභිරුචි ආදාන විලාස"</string>
     <string name="add_style" msgid="6163126614514489951">"විලාසය එක් කරන්න"</string>
     <string name="add" msgid="8299699805688017798">"එක් කරන්න"</string>
@@ -118,14 +134,9 @@
     <string name="enable" msgid="5031294444630523247">"සබල කරන්න"</string>
     <string name="not_now" msgid="6172462888202790482">"දැන් නොවේ"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"සමාන ආදාන විලාසය දැනටමත් පවතී: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"යතුරු දිගු එබීම් ප්‍රමාදය"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"යතුරු එබිම් කම්පන කාලපරිච්ඡේදය"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"යතුරු එබීම් හඬ තීව්‍රතාවය"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"බාහිර ශබ්ද කෝෂ ගොනුව කියවන්න"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"බාගැනීම් ෆෝල්ඩරය තුළ ශබ්දකෝෂ ගොනු නොමැත"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"ස්ථාපනය කිරීමට ශබ්ද කෝෂ ගොනුවක් තෝරන්න"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> සඳහා ඇත්තටම මෙම ගොනුව ස්ථාපනය කරන්නද?"</string>
-    <string name="error" msgid="8940763624668513648">"දෝෂයක් ඇති විය"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"යතුරු දිගු එබීම් ප්‍රමාදය"</string>
     <string name="button_default" msgid="3988017840431881491">"සුපුරුදු"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> වෙත සාදරයෙන් පිළිගනිමු"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"ඉංගිත ටයිප් කිරීම් සමග"</string>
@@ -143,8 +154,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"දැන් ඔබට <xliff:g id="APPLICATION_NAME">%s</xliff:g> සමගින් ඔබගේ  සියළුම ප්‍රියතම යෙදුම් වලින් ටයිප් කළ හැක."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"අතිරේක භාෂා වින්‍යාස කරන්න"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"අවසන්"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"යෙදුම් නිරූපකය පෙන්වන්න"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"දියත්කරනය තුළ යෙදුම් නිරූපකය දර්ශනය කරන්න"</string>
     <string name="app_name" msgid="6320102637491234792">"ශබ්දකෝෂ සැපයුම්කරු"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"ශබ්දකෝෂ සැපයුම්කරු"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"ශබ්ද කෝෂ සේවාව"</string>
diff --git a/java/res/values-sk/strings-emoji-descriptions.xml b/java/res/values-sk/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..094403b
--- /dev/null
+++ b/java/res/values-sk/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Znak copyright"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Znak registrovanej ochrannej známky"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Dvojitý výkričník"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Výkričník s otáznikom"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Znak ochrannej známky"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Zdroj informácií"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Dvojsmerná šípka doľava a doprava"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Dvojsmerná šípka nahor a nadol"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Šípka na severozápad"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Šípka na severovýchod"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Šípka na juhovýchod"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Šípka na juhozápad"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Šípka doľava s hákom"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Šípka doprava s hákom"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Náramkové hodinky"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Presýpacie hodiny"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Čierny dvojitý trojuholník smerujúci doprava"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Čierny dvojitý trojuholník smerujúci doľava"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Čierny dvojitý trojuholník smerujúci nahor"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Čierny dvojitý trojuholník smerujúci nadol"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Budík"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Presýpacie hodiny s pieskom"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Zakrúžkované veľké písmeno M v latinke"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Malý čierny štvorec"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Malý biely štvorec"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Čierny trojuholník smerujúci doprava"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Čierny trojuholník smerujúci doľava"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Stredný biely štvorec"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Stredný čierny štvorec"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Biely stredne malý štvorec"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Čierny stredne malý štvorec"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Čierne slnko s lúčmi"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Oblak"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Čierny telefón"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Začiarknuté políčko"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Dáždnik s dažďovými kvapkami"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Horúci nápoj"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Biely ukazovák ukazujúci smerom nahor"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Biela usmievajúca sa tvár"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Baran"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Býk"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Blíženci"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Rak"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Lev"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Panna"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Váhy"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Škorpión"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Strelec"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Kozorožec"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Vodnár"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Ryby"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Čierna pika"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Čierny kríž"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Čierne srdce"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Čierny kosoštvorec"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Horúce pramene"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Čierny univerzálny symbol recyklácie"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Symbol invalidného vozíka"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Kotva"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Výstražná značka"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Značka vysokého napätia"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Stredný biely kruh"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Stredný čierny kruh"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Futbalová lopta"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Bejzbalová loptička"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Snehuliak bez snehu"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Slnko za oblakom"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Hadonos"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Zákaz vstupu"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Kostol"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Fontána"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Vlajka v jamke"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Plachetnica"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Stan"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Čerpacia stanica"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Čierne nožnice"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Biely tučný znak začiarknutia"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Lietadlo"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Obálka"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Zdvihnutá päsť"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Zdvihnutá ruka"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Ruka s víťazným gestom"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Ceruzka"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Čierny hrot pera"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Tučný znak začiarknutia"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Tučný znak násobenia x"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Iskry"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Hviezdička s ôsmymi ramenami"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Čierna hviezda s ôsmymi cípmi"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Snehová vločka"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Iskra"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Krížik"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Negatív krížika v štvorci"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Ozdoba s čiernym otáznikom"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Ozdoba s bielym otáznikom"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Ozdoba s bielym výkričníkom"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Symbol tučného výkričníka"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Čierne srdce"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Tučné znamienko plus"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Tučné znamienko mínus"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Tučné znamienko delenia"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Čierna šípka doprava"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Vlnitá slučka"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Dvojitá vlnitá slučka"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Šípka doprava s následným zatočením nahor"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Šípka doprava s následným zatočením nadol"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Čierna šípka doľava"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Čierna šípka nahor"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Čierna šípka nadol"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Veľký čierny štvorec"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Veľký biely štvorec"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Biela stredná hviezda"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Tučný veľký kruh"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Vlnovka"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Znak zmeny časti"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Zakrúžkovaný ideogram gratulácie"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Zakrúžkovaný ideogram tajomstva"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Kameň hry Mahjong – červený drak"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Hracia karta – čierny žolík"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Krvná skupina A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Krvná skupina B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Krvná skupina 0"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Parkovisko"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Krvná skupina AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"Štvorcový znak CL (vymazať)"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Štvorcový znak Cool (super)"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Štvorcový znak Free (zadarmo)"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"Štvorcový znak ID"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Štvorcový znak New (nové)"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Štvorcový znak N G (nejde to)"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Štvorcový znak OK"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"Štvorcový znak SOS"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Štvorcový znak UP (hore) s výkričníkom"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Štvorcový znak VS (verzus)"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Štvorcový znak katakany – tu"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Štvorcový znak katakany – služba"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Štvorcový ideogram – bez poplatku"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Štvorcový ideogram – rezervované miesto"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Štvorcový ideogram – zákaz"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Štvorcový ideogram – voľná izba"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Štvorcový ideogram – akceptovanie"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Štvorcový ideogram – úplne obsadené"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Štvorcový ideogram – zaplatené"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Štvorcový ideogram – mesačné"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Štvorcový ideogram – žiadosť"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Štvorcový ideogram – zľava"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Štvorcový ideogram – v prevádzke"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Kruhový ideogram – výhoda"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Kruhový ideogram – prijať"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Cyklón"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Hmla"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Zložený dáždnik"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Noc s hviezdami"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Východ slnka nad horami"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Východ slnka"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Panoráma mesta pri stmievaní"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Západ slnka nad budovami"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Dúha"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Most v noci"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Vodná vlna"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Sopka"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Mliečna dráha"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Zemeguľa – Európa a Afrika"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Zemeguľa – Amerika"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Zemeguľa – Ázia a Austrália"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Zemeguľa s poludníkmi"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Symbol novy mesiaca"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Symbol dorastajúceho kosáčika mesiaca"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Symbol prvej štvrte mesiaca"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Symbol druhej štvrte mesiaca"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Symbol splnu mesiaca"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Symbol tretej štvrte mesiaca"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Symbol poslednej štvrte mesiaca"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Symbol ubúdajúceho kosáčika mesiaca"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Dorastajúci mesiac"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Nov mesiaca s tvárou"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Prvá štvrť mesiaca s tvárou"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Posledná štvrť mesiaca s tvárou"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Spln s tvárou"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Slnko s tvárou"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Žiarivá hviezda"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Padajúca hviezda"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Gaštan"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Sadenica"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Ihličnatý strom"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Strom s každoročným opadávaním lístia"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palma"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Kaktus"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulipán"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Čerešňový kvet"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Ruža"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Ibištek"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Slnečnica"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Kvet"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Kukuričný klas"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Ryžový klas"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Bylinka"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Štvorlístok"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Javorový list"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Spadnutý list"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Padajúci list vo vetre"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Hríb"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Paradajka"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Baklažán"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Hrozno"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Dyňa"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Červený melón"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Mandarínka"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Citrón"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Banán"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ananás"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Červené jablko"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Zelené jablko"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Hruška"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Broskyňa"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Čerešne"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Jahoda"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburger"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Kúsok pizze"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Mäso na kosti"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Hydinové stehno"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Ryžový kreker"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Ryžová guľka"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Varená ryža"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Kari a ryža"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Rezancová polievka"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Špagety"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Chlieb"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Hranolčeky"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Pečený sladký zemiak"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Sushi"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Pražená kreveta"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Vírový rybací koláč"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Točená zmrzlina"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Havajská zmrzlina"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Zmrzlina"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Šiška"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Keks"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Čokoládová tyčinka"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Cukrík"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lízatko"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Vaječný krém"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Nádoba s medom"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Koláč s čerstvým ovocím"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Obedový balík Bentó"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Nádoba s jedlom"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Varenie"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Vidlička a nôž"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Čajový hrnček bez uška"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Šálka a fľaša so Saké"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Vínový pohár"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Koktejlový pohár"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Tropický nápoj"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Pivový pohár"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Štrngajúce pivové poháre"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Detská fľaša"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Stuha"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Zabalený darček"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Narodeninová torta"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Tekvicový lampáš so sviečkou"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Vianočný stromček"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Dedo Mráz"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Ohňostroj"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Prskavka"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Balón"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Konfety"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Guľa s konfetami"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Strom Tanabata"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Prekrížené vlajky"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Okrasa z čečiny"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Japonské bábiky"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Japonské šarkany"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Veterný gong"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Ceremónia sledovania splnu"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Školská aktovka"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Promočný klobúk"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Kolotočový koník"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Ruské koleso"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Horská dráha"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Udica a ryba"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Mikrofón"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Filmová kamera"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Kino"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Slúchadlá"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Maliarska paleta"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Cylinder"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Cirkusový stan"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Lístok"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Klapka"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Múzické umenie"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Videohra"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Priamy zásah"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Herný automat"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Biliard"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Hracia kocka"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Bowling"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Hracie karty s kvetmi"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Hudobná nota"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Hudobné noty"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saxofón"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Gitara"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Hudobné klávesy"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Trúbka"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Husle"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Hudobný zápis"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Bežecké tričko so šerpou"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Tenisová raketa a loptička"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Lyža s lyžiarkou"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Basketbalová lopta a kôš"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Cieľová vlajka"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Snoubordista"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Bežec"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Surfista"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Víťazný pohár"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Konské dostihy"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Americký futbal"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Ragby"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Plavec"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Stavanie domov"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Dom so záhradou"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Administratívna budova"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Japonská pošta"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Európska pošta"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Nemocnica"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Banka"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Bankomat"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Hotel"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Hotel lásky"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Obchod so zmiešaným tovarom"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Škola"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Obchodný dom"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Továreň"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Lampáš Izakaya"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Japonský hrad"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Európsky hrad"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Potkan"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Myš"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Vôl"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Byvol vodný"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Krava"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Leopard"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Králik"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Mačka"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Drak"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Krokodíl"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Veľryba"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Slimák"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Had"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Kôň"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Cap"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Koza"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Ovca"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Opica"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Kohút"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Kurča"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Pes"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Prasa"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Diviak"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Slon"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Chobotnica"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Špirálová ulita"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Chrobák"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Mravec"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Včela medonosná"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Lienka"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Ryba"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Tropická ryba"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Štvorzubec"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Korytnačka"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Liahnuce sa kuriatko"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Kuriatko"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Kuriatko z prednej strany"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Vták"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Tučniak"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Pudlík"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Dromedár"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Ťava dvojhrbá"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Delfín"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Tvár myši"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Tvár kravy"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Tvár tigra"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Tvár králika"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Tvár mačky"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Tvár draka"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Striekajúca veľryba"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Tvár koňa"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Tvár opice"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Tvár psa"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Tvár prasaťa"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Tvár žaby"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Tvár škrečka"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Tvár vlka"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Tvár medveďa"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Tvár pandy"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Nos prasaťa"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Stopy prasaťa"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Oči"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Ucho"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Nos"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Ústa"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Jazyk"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Nahor ukazujúci biely ukazovák z pohľadu zadnej strany ruky"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Nadol ukazujúci biely ukazovák z pohľadu zadnej strany ruky"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Doľava ukazujúci biely ukazovák z pohľadu zadnej strany ruky"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Doprava ukazujúci biely ukazovák z pohľadu zadnej strany ruky"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Znak zovretej päste"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Znak mávajúcej ruky"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Znak gesta OK"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Znak gesta palec hore"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Znak gesta palec dole"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Znak tlieskajúcich rúk"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Znak otvorených rúk"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Koruna"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Dámsky klobúk"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Okuliare"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Kravata"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Tričko"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Rifle"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Šaty"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Dámske oblečenie"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Dámska peňaženka"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Kabelka"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Kapsička"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Pánska topánka"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Atletická topánka"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Topánka na vysokom podpätku"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Dámsky sandál"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Dámske čižmy"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Stopy"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Silueta busty"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Siluety búst"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Chlapec"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Dievča"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Muž"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Žena"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Rodina"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Muž a žena držiaci sa za ruky"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Dvaja muži držiaci sa za ruky"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Dve ženy držiace sa za ruky"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Policajt"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Žena so zajačími ušami"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Nevesta so závojom"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Osoba s blond vlasmi"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Muž s pokrývkou hlavy Gua pi mao"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Muž s turbanom"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Starší muž"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Staršia žena"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Bábätko"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Stavbár"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Princezná"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Japonský obor"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Japonský škriatok"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Duch"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Anjelik"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Mimozemšťan"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Mimozemská príšera"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Čertík"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Lebka"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Informátor"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Strážnik"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Tanečník"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Rúž"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Lak na nechty"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Masáž tváre"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Účes"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Značka holičstva"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Striekačka"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Pilulka"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Odtlačok bozku"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Ľúbostný list"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Prsteň"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Drahokam"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Bozk"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Kytica"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Pár so srdcom"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Svadba"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Bijúce srdce"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Zlomené srdce"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Dve srdcia"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Trblietajúce sa srdce"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Rastúce srdce"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Srdce so šípom"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Modré srdce"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Zelené srdce"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Žlté srdce"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Fialové srdce"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Srdce so stuhou"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Otáčajúce sa srdcia"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Ozdoba so srdcom"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Diamantový tvar s bodkou uprostred"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Elektrická žiarovka"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Symbol hnevu"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bomba"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Symbol spánku"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Symbol kolízie"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Kvapky potu"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Kvapka"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Symbol rýchleho behu"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Kôpka stolice"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Flektovaný biceps"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Symbol závratu"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Bublina s rečou"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Bublina s myšlienkou"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Biely kvet"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Symbol 100 bodov"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Vrece s peniazmi"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Prevod mien"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Zvýraznený znak dolára"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Kreditná karta"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Bankovka so znakom jenu"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Dolárová bankovka"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Bankovka so znakom eura"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Bankovka so znakom britskej libry"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Peniaze s krídlami"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Graf so vzostupujúcim trendom a znakom jenu"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Sedadlo"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Osobný počítač"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Kufrík"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Minidisk"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Disketa"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Optický disk"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Priečinok so súbormi"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Otvorený priečinok so súbormi"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Strana so skrúteným okrajom"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Strana otočená nahor"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Kalendár"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Trhací kalendár"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Otočný vizitkár"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Graf so vzostupujúcim trendom"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Graf so zostupujúcim trendom"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Stĺpcový graf"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Podložka na písanie s klipom"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Pripináčik"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Guľatý pripináčik"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Papierová sponka"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Rovné pravítko"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Trojuholníkové pravítko"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Záložkové karty"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Účtovná kniha"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Zápisník"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Zápisník s okrasným obalom"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Zavretá kniha"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Otvorená kniha"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Zelená kniha"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Modrá kniha"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Oranžová kniha"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Knihy"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Menovka"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Zvitok"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Oznam"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Telefónne slúchadlo"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Pager"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Fax"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Satelitná anténa"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Reproduktor verejného rozhlasu"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Megafón na povzbudzovanie"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Priehradka na odchádzajúcu poštu"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Priehradka na doručenú poštu"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Balík"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Symbol e-mailu"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Prichádzajúca obálka"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Obálka so šípkou smerujúcou nadol umiestnenou nad obálkou"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Zavretá poštová schránka so spustenou vlajkou"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Zavretá poštová schránka so zdvihnutou vlajkou"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Otvorená poštová schránka so zdvihnutou vlajkou"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Otvorená poštová schránka so spustenou vlajkou"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Poštová schránka"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Poštový lesný roh"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Noviny"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Mobilný telefón"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Mobilný telefón so šípkou smerujúcou doprava umiestnenou vľavo od telefónu"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Režim vibrovania"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Vypnutý mobilný telefón"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Zákaz mobilných telefónov"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Anténa s indikátorom sily signálu"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Fotoaparát"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Videokamera"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Televízor"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Rádio"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Videokazeta"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Pokrivené šípky doprava"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Doprava a doľava smerujúce šípky v otvorenom kruhu v smere hodinových ručičiek"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Doprava a doľava smerujúce šípky v otvorenom kruhu s prekrytím zakrúžkovanej jednotky"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Nadol a nahor smerujúce šípky v otvorenom kruhu v smere hodinových ručičiek"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Nadol a nahor smerujúce šípky v otvorenom kruhu proti smeru hodinových ručičiek"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Symbol nízkeho jasu"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Symbol vysokého jasu"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Preškrtnutý symbol reproduktora"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Reproduktor"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Reproduktor s jednou zvukovou vlnou"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Reproduktor s troma zvukovými vlnami"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Batéria"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Elektrická zásuvka"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Lupa naklonená doľava"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Lupa naklonená doprava"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Zámka s atramentovým perom"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Zavretá zámka s kľúčom"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Kľúč"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Zámka"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Otvorená zámka"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Zvonček"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Preškrtnutý symbol zvončeka"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Záložka"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Symbol odkazu"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Prepínač"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Nápis Back so šípkou doľava umiestnenou nad nápisom"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"Nápis End so šípkou doľava umiestnenou nad nápisom"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"Nápis On s výkričníkom s obojsmernou šípkou umiestnenou nad nápisom"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Nápis Soon so šípkou doprava umiestnenou nad nápisom"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Nápis Top so šípkou nahor umiestnenou nad nápisom"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Symbol zákazu osobám mladším ako 18 rokov"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Kláves s číslom 10"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Symbol vstupu pre veľké písmená v latinke"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Symbol vstupu pre malé písmená v latinke"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Symbol vstupu pre čísla"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Symbol vstupu pre symboly"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Symbol vstupu pre písmená v latinke"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Oheň"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Elektrický lampáš"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Kľúč"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Kladivo"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Skrutka s maticou"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Japonský nôž"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Pištoľ"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Mikroskop"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Teleskop"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Krištáľová guľa"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Šesťcípa hviezda s bodkou uprostred"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Japonský symbol pre začiatočníka"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Emblém s trojzubcom"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Čierne štvorcové tlačidlo"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Biele štvorcové tlačidlo"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Veľký červený kruh"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Veľký modrý kruh"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Veľký oranžový diamant"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Veľký modrý diamant"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Malý oranžový diamant"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Malý modrý diamant"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Červený trojuholník smerujúci nahor"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Červený trojuholník smerujúci nadol"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Malý červený trojuholník smerujúci nahor"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Malý červený trojuholník smerujúci nadol"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Hodiny ukazujúce jednu hodinu"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Hodiny ukazujúce dve hodiny"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Hodiny ukazujúce tri hodiny"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Hodiny ukazujúce štyri hodiny"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Hodiny ukazujúce päť hodín"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Hodiny ukazujúce šesť hodín"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Hodiny ukazujúce sedem hodín"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Hodiny ukazujúce osem hodín"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Hodiny ukazujúce deväť hodín"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Hodiny ukazujúce desať hodín"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Hodiny ukazujúce jedenásť hodín"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Hodiny ukazujúce dvanásť hodín"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Hodiny ukazujúce pol druhej"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Hodiny ukazujúce pol tretej"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Hodiny ukazujúce pol štvrtej"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Hodiny ukazujúce pol piatej"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Hodiny ukazujúce pol šiestej"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Hodiny ukazujúce pol siedmej"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Hodiny ukazujúce pol ôsmej"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Hodiny ukazujúce pol deviatej"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Hodiny ukazujúce pol desiatej"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Hodiny ukazujúce pol jedenástej"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Hodiny ukazujúce pol dvanástej"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Hodiny ukazujúce pol jednej"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Hora Fudži"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Tokijská veža"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Socha slobody"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Silueta Japonska"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moyai"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Tvár s úškrnom"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Tvár s úškľabom a smejúcimi sa očami"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Tvár so slzami šťastia"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Usmievajúca sa tvár s otvorenými ústami"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Usmievajúca sa tvár s otvorenými ústami a usmiatymi očami"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Usmievajúca sa tvár s otvorenými ústami a studeným potom"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Usmievajúca sa tvár s otvorenými ústami a pevne zavretými očami"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Usmievajúca sa tvár so svätožiarou"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Usmievajúca sa tvár s rohmi"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Žmurkajúca tvár"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Usmievajúca sa tvár s usmiatymi očami"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Tvár pochutnávajúca si na lahodnom jedle"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Uvoľnená tvár"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Usmievajúca sa tvár so srdiečkovými očami"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Usmievajúca sa tvár so slnečnými okuliarmi"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Škeriaca sa tvár"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Neutrálna tvár"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Tvár bez výrazu"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Nudná tvár"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Tvár so studeným potom"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Zamyslená tvár"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Zmätená tvár"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Čertovská tvár"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Bozkávajúca sa tvár"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Tvár posielajúca bozk"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Bozkávajúca tvár s usmiatymi očami"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Bozkávajúca tvár so zavretými očami"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Tvár s vyplazeným jazykom"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Tvár s vyplazeným jazykom a prižmúreným okom"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Tvár s vyplazeným jazykom a pevne zavretými očami"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Sklamaná tvár"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Znepokojená tvár"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Nahnevaná tvár"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Tvár s našpúleným výrazom"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Plačúca tvár"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Urputná tvár"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Tvár z výrazom víťazstva"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Sklamaná, ale uvoľnená tvár"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Zamračená tvár s otvorenými ústami"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Úzkostná tvár"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Ustrašená tvár"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Ustatá tvár"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Ospalá tvár"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Unavená tvár"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Tvár s grimasou"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Jačiaca tvár"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Tvár s otvorenými ústami"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Utíšená tvár"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Tvár s otvorenými ústami a studeným potom"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Tvár jačiaca od strachu"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Udivená tvár"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Začervenaná tvár"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Spiaca tvár"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Tvár so závratom"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Tvár bez úst"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Tvár s lekárskou maskou"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Tvár mačky s úškľabom a smejúcimi sa očami"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Tvár mačky so slzami šťastia"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Usmievajúca sa tvár mačky s otvorenými ústami"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Usmievajúca sa tvár mačky so srdiečkovými očami"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Tvár mačky s krivým úsmevom"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Bozkávajúca tvár mačky so zavretými očami"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Tvár mačky s našpúleným výrazom"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Plačúca tvár mačky"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Ustatá tvár mačky"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Tvár s gestom Nie"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Tvár s gestom OK"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Hlboko sa klaňajúca osoba"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Opica zakrývajúca si oči pred zlom"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Opica zakrývajúca si uši pred zlom"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Opica zakrývajúca si oči pred zlom"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Šťastná osoba zdvíhajúca jednu ruku"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Oslavujúca osoba so zdvihnutými rukami"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Zamračená osoba"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Osoba s našpúleným výrazom"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Osoba so zloženými rukami"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Raketa"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Helikoptéra"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Parná lokomotíva"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Železničný vozeň"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Vysokorýchlostný vlak"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Vysokorýchlostný vlak s prednou časťou v tvare projektilu"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Vlak"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Metro"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Ľahká železnica"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Stanica"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Električka"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Vozeň električky"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Autobus"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Prichádzajúci autobus"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Trolejbus"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Autobusová zastávka"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Minibus"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Sanitka"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Hasičské auto"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Policajné auto"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Prichádzajúce policajné auto"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taxík"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Prichádzajúci taxík"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Automobil"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Prichádzajúci automobil"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Rekreačné vozidlo"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Prepravné nákladné auto"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Nákladné auto s prívesom"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Traktor"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Jednokoľajová železnica"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Horská železnica"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Závesná železnica"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Horská lanovka"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Kabínková lanovka"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Loď"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Veslica"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Pretekársky čln"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Vodorovný semafor"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Zvislý semafor"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Značka stavby"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Maják policajného auta"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Trojuholníková vlajka na tyči"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Dvere"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Značka zákazu vstupu"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Symbol fajčenia"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Symbol zákazu fajčenia"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Symbol zahadzovania odpadkov do koša"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Symbol zákazu vyhadzovania odpadkov"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Symbol pitnej vody"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Symbol nepitnej vody"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Bicykel"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Zákaz bicyklov"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Cyklista"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Horský cyklista"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Chodec"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Zákaz chodcov"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Prechod pre deti"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Symbol muža"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Symbol ženy"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Záchody"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Symbol bábätka"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Záchod"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"WC"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Sprcha"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Kúpeľ"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Vaňa"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Pasová kontrola"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Clo"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Výdaj batožiny"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Úschova batožiny"</string>
+</resources>
diff --git a/java/res/values-sk/strings-talkback-descriptions.xml b/java/res/values-sk/strings-talkback-descriptions.xml
index 2cd094e..aa38fde 100644
--- a/java/res/values-sk/strings-talkback-descriptions.xml
+++ b/java/res/values-sk/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Nie je zadaný žiadny text"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"Klávesom <xliff:g id="KEY_NAME">%1$s</xliff:g> opravíte slovo <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> na <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Klávesom <xliff:g id="KEY_NAME">%1$s</xliff:g> spustíte automatické opravy"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Žiaden návrh"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Neznámy znak"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Ďalšie symboly"</string>
@@ -63,7 +64,7 @@
     <string name="keyboard_mode_phone" msgid="2486230278064523665">"telefón"</string>
     <string name="keyboard_mode_text" msgid="9138789594969187494">"text"</string>
     <string name="keyboard_mode_time" msgid="8558297845514402675">"čas"</string>
-    <string name="keyboard_mode_url" msgid="8072011652949962550">"Adresa URL"</string>
+    <string name="keyboard_mode_url" msgid="8072011652949962550">"Webová adresa"</string>
     <string name="spoken_descrption_emoji_category_recents" msgid="4185344945205590692">"Nedávne"</string>
     <string name="spoken_descrption_emoji_category_people" msgid="8414196269847492817">"Ľudia"</string>
     <string name="spoken_descrption_emoji_category_objects" msgid="6116297906606195278">"Predmety"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Veľké I s bodkou nad písmenom"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Neznámy symbol"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Neznámy symbol Emodži"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Znudená tvár"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Rozpačitá tvár"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Tvár so slnečnými okuliarmi"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Prekvapená tvár"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Bozkávajúca sa tvár"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Zamračená tvár"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Alternatívne znaky sú dostupné"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Alternatívne znaky boli zrušené"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Alternatívne návrhy sú dostupné"</string>
diff --git a/java/res/values-sk/strings.xml b/java/res/values-sk/strings.xml
index 40e1db4..f75e01d 100644
--- a/java/res/values-sk/strings.xml
+++ b/java/res/values-sk/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Pri stlačení klávesu vibrovať"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Zvuk pri stlačení klávesu"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Zobraziť znaky pri stlačení klávesu"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Predvoľby"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Účty a ochrana osobných údajov"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Vzhľad a rozloženia"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Písanie gestami"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Oprava textu"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Rozšírené"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Motív"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Povoliť rozdelenie klávesnice"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Synchronizácia klávesnice Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Synchronizácia je zapnutá"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Synchronizovať osobný slovník na zariadeniach"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Synchronizovať"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Odstrániť údaje v cloude"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Odstráni vaše synchronizované údaje zo serverov Googlu"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Vaše synchronizované údaje budú odstránené z cloudu. Pokračovať?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Odstrániť"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Zrušiť"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Váš osobný slovník sa synchronizuje a zálohuje na servery Google. S cieľom zlepšiť naše služby môžeme zhromažďovať štatistické informácie o frekvencii slov. Zhromažďovanie informácií a ich použitie bude v súlade s "<a href="https://www.google.com/policies/privacy">"pravidlami ochrany osobných údajov spoločnosti Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Povoľte túto funkciu tak, že do zariadenia pridáte účet Google"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Prepnúť na iné metódy vstupu"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Kláves na prepnutie jazyka pokrýva aj ďalšie metódy vstupu"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Kľúč na prepínanie jazyka"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Zobraziť, keď je povolených viac jazykov vstupu"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Zobraziť posuvný indikátor"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Zobraziť vizuálny signál pri prejdení z klávesov Shift alebo Symbol"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Onesk. zrušenia kľúč. kon. okna"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Bez oneskorenia"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Predvolená"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Hlavný slovník"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Zobraziť návrhy opráv"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Zobrazovať navrhované slová počas písania"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Vždy zobrazovať"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Zobraziť v režime na výšku"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Vždy skrývať"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Blokovať urážlivé slová"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Nenavrhovať potenciálne urážlivé slová"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Automatické opravy"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Kľúč hlasového vstupu"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Nie sú povolené žiadne metódy hlasového vstupu. Skontrolujte nastavenia položky Jazyk a vstup."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Konfigurovať metódy vstupu"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Jazyky vstupu"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Odoslať spätnú väzbu"</string>
-    <string name="select_language" msgid="3693815588777926848">"Jazyky vstupu"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Jazyky"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Pomocník a spätná väzba"</string>
+    <string name="select_language" msgid="5709487854987078367">"Jazyky"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Opätovným dotykom uložíte"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Klepnutím tu uložíte"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"K dispozícii je slovník"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Motív klávesnice"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Prepnúť účty"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Nie sú vybrané žiadne účty"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Momentálne sa používa účet <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Zrušiť"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Odhlásiť sa"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Výber účtu, ktorý chcete použiť"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Anglická klávesnica (UK)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Anglická klávesnica (US)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"španielčina (USA)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"srbčina (latinka)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"angličtina (UK) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"angličtina (USA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"španielčina (USA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"srbčina (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tradičná)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (cyrilika)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (latinka)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (kompaktná)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Žiadny jazyk (latinka)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Latinka (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Latinka (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Latinka (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Latinka (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Motív klávesnice"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Vlastné štýly vstupu"</string>
     <string name="add_style" msgid="6163126614514489951">"Pridať štýl"</string>
     <string name="add" msgid="8299699805688017798">"Pridať"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Povoliť"</string>
     <string name="not_now" msgid="6172462888202790482">"Teraz nie"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Rovnaký štýl vstupu už existuje: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Oneskor. pri stlač. a podržaní"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Trvanie vibrov. pri stlač. kl."</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Hlasitosť pri stlačení klávesu"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Čítať súbor externého slovníka"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"V priečinku Sťahovanie nie sú žiadne súbory slovníka"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Vyberte súbor slovníka, ktorý chcete nainštalovať"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Chcete nainštalovať tento súbor pre jazyk <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Vyskytla sa chyba"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Oneskor. pri stlač. a podržaní"</string>
     <string name="button_default" msgid="3988017840431881491">"Predvolené"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Vitajte v aplikácii <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"s funkciou Písanie gestami"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Pomocou aplikácie <xliff:g id="APPLICATION_NAME">%s</xliff:g> teraz môžete zadávať text vo všetkých obľúbených aplikáciách."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Nakonfigurujte ďalšie jazyky"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Hotovo"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Zobraziť ikonu aplikácie"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Zobrazenie ikony aplikácie v spúšťači"</string>
     <string name="app_name" msgid="6320102637491234792">"Poskytovateľ slovníka"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Poskytovateľ slovníka"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Služba slovníka"</string>
diff --git a/java/res/values-sl/strings-emoji-descriptions.xml b/java/res/values-sl/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..964b2b8
--- /dev/null
+++ b/java/res/values-sl/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Znak za avtorsko zaščito"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Znak za registriranost"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Dvojni klicaj"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Klicaj vprašaj"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Znak za registrirano blagovno znamko"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Vir informacij"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Puščica levo desno"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Puščica navzgor navzdol"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Puščica, ki kaže proti severozahodu"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Puščica, ki kaže proti severovzhodu"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Puščica, ki kaže proti jugovzhodu"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Puščica, ki kaže proti jugozahodu"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Puščica levo z zanko"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Puščica desno z zanko"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Ura"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Peščena ura"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Črn dvojni trikotnik, ki kaže desno"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Črn dvojni trikotnik, ki kaže levo"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Črn dvojni trikotnik, ki kaže navzgor"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Črn dvojni trikotnik, ki kaže navzdol"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Budilka"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Peščena ura s pretakajočim se peskom"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Obkrožena velika latinska črka m"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Črn majhen kvadrat"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Bel majhen kvadrat"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Črn trikotnik, ki kaže desno"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Črn trikotnik, ki kaže levo"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Bel srednji kvadrat"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Črn srednji kvadrat"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Bel srednje majhen kvadrat"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Črn srednje majhen kvadrat"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Črno sonce z žarki"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Oblak"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Črn telefon"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Polje na glasovnici s kljukico"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Dežnik z dežnimi kapljami"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Topel napitek"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Bel kazalec, ki kaže navzgor"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Bel nasmejan obraz"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Oven"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Bik"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Dvojčka"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Rak"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Lev"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Devica"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Tehtnica"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Škorpijon"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Strelec"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Kozorog"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Vodnar"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Ribi"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Črna barva pika"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Črna barva križa"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Črna barva srca"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Črna barva kare"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Termalni vrelci"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Črn univerzalni simbol za recikliranje"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Simbol za invalidski voziček"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Sidro"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Opozorilni znak"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Znak za visoko napetost"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Srednji bel krog"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Srednji črn krog"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Nogometna žoga"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Bejzbol"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Snežak brez snega"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Sonce za oblakom"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Kačenosec"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Ni vstopa"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Cerkev"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Izvir"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Zastavica v luknji"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Jadrnica"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Šotor"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Bencinska črpalka"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Črne škarje"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Bela poudarjena kljukica"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Letalo"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Kuverta"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Dvignjena pest"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Dvignjena dlan"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Dlan z znakom za zmago"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Svinčnik"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Črna konica"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Poudarjena kljukica"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Poudarjen znak za množenje"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Iskrice"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Zvezdica z osmimi paličicami"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Osmerokraka črna zvezda"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Snežinka"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Iskrica"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Križec"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Negativ križca v kvadratu"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Črn okrasni vprašaj"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Bel okrasni vprašaj"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Bel okrasni klicaj"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Poudarjen simbol klicaja"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Poudarjeno črno srce"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Poudarjen znak za seštevanje"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Poudarjen znak za odštevanje"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Poudarjen znak za deljenje"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Črna puščica desno"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Zavita zanka"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Dvojno zavita zanka"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Puščica, ki kaže desno, nato zavije navzgor"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Puščica, ki kaže desno, nato zavije navzdol"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Črna puščica levo"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Črna puščica navzgor"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Črna puščica navzdol"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Črn velik kvadrat"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Bel velik kvadrat"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Bela srednja zvezda"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Poudarjen velik krog"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Valovit pomišljaj"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Znak za začetek skladbe"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Obkrožen ideogram za čestitke"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Obkrožen ideogram za skrivnost"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Ploščica za mahjong rdeči zmaj"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Igralna karta črni joker"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Krvna skupina A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Krvna skupina B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Krvna skupina O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Parkirišče"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Krvna skupina AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"CL v kvadratu"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Cool v kvadratu"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Free v kvadratu"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"ID v kvadratu"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"New v kvadratu"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"NG v kvadratu"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"OK v kvadratu"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"SOS v kvadratu"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Up s klicajem v kvadratu"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Vs v kvadratu"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Tukaj v katakani v kvadratu"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Storitev v katakani v kvadratu"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Ideogram za brezplačno v kvadratu"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Ideogram za rezerviran sedež v kvadratu"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Ideogram za prepoved v kvadratu"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Ideogram za nezasedeno v kvadratu"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Ideogram za sprejem v kvadratu"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Ideogram za polno zasedenost v kvadratu"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Ideogram za plačano v kvadratu"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Ideogram za mesečno v kvadratu"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Ideogram za prijavo v kvadratu"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Ideogram za popust v kvadratu"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Ideogram za poslovanje v kvadratu"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Ideogram za prednost v krogu"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Ideogram za sprejem v krogu"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Ciklon"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Megleno"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Zaprt dežnik"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Zvezdna noč"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Sončni vzhod nad planinami"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Sončni vzhod"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Mestna veduta ob polmraku"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Sončni zahod nad stavbami"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Mavrica"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Most ponoči"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Vodni val"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Vulkan"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Rimska cesta"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Globus Evropa–Afrika"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Globus Ameriki"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Globus Azija–Avstralija"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Globus s poldnevniki"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Simbol za mlado luno"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Simbol za prvi krajec"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Simbol za polovično osvetljeno luno v prvem krajcu"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Simbol za več kot polovično osvetljen prvi krajec"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Simbol za polno luno"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Simbol za več kot polovično osvetljen zadnji krajec"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Simbol za polovično osvetljeno luno v zadnjem krajcu"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Simbol za zadnji krajec"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Lunin srp"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Mlada luna z obrazom"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Polovično osvetljena luna v prvem krajcu z obrazom"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Polovično osvetljena luna v zadnjem krajcu z obrazom"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Polna luna z obrazom"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Sonce z obrazom"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Žareča zvezda"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Utrinek"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Kostanj"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Sadika"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Zimzeleno drevo"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Listnato drevo"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palma"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Kaktus"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulipan"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Japonska češnja"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Vrtnica"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Hibiskus"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Sončnica"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Cvet"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Koruzno klasje"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Riževo klasje"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Zelišče"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Štiriperesna deteljica"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Javorjev list"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Odpadli list"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"V vetru plahutajoč list"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Goba"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Paradižnik"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Jajčevec"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Grozdje"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Melona"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Lubenica"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Mandarina"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Limona"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Banana"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ananas"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Rdeče jabolko"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Zeleno jabolko"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Hruška"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Breskev"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Češnje"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Jagoda"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburger"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Kos pice"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Meso s kostjo"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Piščančja krača"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Rižev kreker"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Kepica riža"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Kuhan riž"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Kari z rižem"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Vroča skleda"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Špageti"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Kruh"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Ocvrt krompirček"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Pečena batata"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Suši"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Ocvrti rakci"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Ribji kolač s spiralastim vzorcem"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Točen sladoled"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Granita"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Sladoled"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Krof"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Piškot"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Čokoladka"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Bombon"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lizika"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Vaniljev puding"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Kozarec za med"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Sladica s sadnim prelivom in smetano"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Škatla za malico bento"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Posoda s hrano"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Kuhanje"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Vilice in nož"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Skodelica za čaj brez ročaja"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Steklenica sakeja in skodelica"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Kozarec za vino"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Kozarec za koktajl"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Tropska pijača"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Vrček za pivo"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Trkajoča vrčka za pivo"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Steklenička za dojenčka"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Pentlja"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Zavito darilo"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Torta za rojstni dan"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Izrezljana buča s svečo"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Božični drevešček"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Božiček"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Ognjemet"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Pirotehnična iskrica"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Balon"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Pokalica za zabave"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Krogla s konfeti"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Drevo želja tanabata"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Prekrižani zastavi"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Borov novoletni okrasek"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Japonski lutki"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Japonski barvni trakovi v obliki ribe"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Vetrni zvončki"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Opazovanje jesenske polne lune"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Usnjena šolska torba s poklopcem"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Maturantska kapa"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Konjiček na vrtiljaku"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Panoramsko kolo"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Vlak smrti"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Ribiška palica in riba"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Mikrofon"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Filmska kamera"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Kino"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Slušalka"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Slikarska paleta"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Cilinder"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Cirkuški šotor"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Vstopnica"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Klapa"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Odrske umetnosti"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Videoigra"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Zadetek v polno"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Igralni avtomat"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Biljard"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Igralna kocka"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Kegljanje"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Igralne karte hanafuda"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Nota"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Več not"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saksofon"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Kitara"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Klaviatura"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Trobenta"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Violina"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Partitura"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Majica za tek z lento"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Teniški lopar in žogica"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Smučke in smučarski čevelj"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Košarkarska žoga in obroč"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Karirasta zastava"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Deskar na snegu"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Tekač"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Deskar"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Pokal"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Konjske dirke"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Ameriški nogomet"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Ragbi"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Plavalec"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Gradnja hiše"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Hiša z vrtom"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Pisarniški blok"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Japonski poštni urad"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Evropski poštni urad"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Bolnišnica"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Banka"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Bankomat"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Hotel"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Hotel za zaljubljene"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Trgovina z mešanim blagom"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Šola"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Veleblagovnica"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Tovarna"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Laterna izakaya"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Japonski grad"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Evropski grad"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Podgana"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Miš"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Vol"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Indijski bivol"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Krava"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Leopard"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Zajec"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Mačka"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Zmaj"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Krokodil"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Kit"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Polž"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Kača"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Konj"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Oven"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Koza"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Ovca"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Opica"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Petelin"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Piščanec"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Pes"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Prašič"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Divji prašič"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Slon"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Hobotnica"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Spiralasta školjka"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Žužek"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Mravlja"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Domača čebela"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Pikapolonica"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Riba"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Tropska riba"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Napihovalka"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Želva"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Valeče se pišče"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Pišče"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Pišče od spredaj"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Ptica"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Pingvin"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Koder"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Enogrba kamela"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Dvogrba kamela"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Delfin"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Mišji obraz"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Kravji obraz"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Tigrov obraz"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Zajčji obraz"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Mačji obraz"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Zmajev obraz"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Kit, ki brizga vodo"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Konjski obraz"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Opičji obraz"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Pasji obraz"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Prašičji obraz"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Žabji obraz"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Hrčkov obraz"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Volčji obraz"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Medvedji obraz"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Pandin obraz"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Prašičji rilec"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Odtisi šap"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Oči"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Uho"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Nos"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Usta"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Jezik"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Bel kazalec, ki kaže navzgor (s hrbtom dlani)"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Bel kazalec, ki kaže navzdol (s hrbtom dlani)"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Bel kazalec, ki kaže levo (s hrbtom dlani)"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Bel kazalec, ki kaže desno (s hrbtom dlani)"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Znak za stisnjeno pest"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Znak za mahajočo roko"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Znak z roko za odobravanje"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Znak za palec navzgor"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Znak za palec navzdol"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Znak za ploskanje"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Znak za razprte dlani"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Krona"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Ženski klobuk"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Očala"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Kravata"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Majica"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Kavbojke"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Obleka"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Ženska oblačila"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Denarnica"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Torbica"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Mošnja"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Moški čevelj"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Športni copat"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Čevelj z visoko peto"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Ženski sandal"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Ženski škornji"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Stopinje"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Silhueta doprsne podobe"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Silhueta doprsnih podob"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Fant"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Dekle"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Moški"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Ženska"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Družina"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Moški in ženska, ki se držita za roke"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Moška, ki se držita za roke"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Ženski, ki se držita za roke"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Policist"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Ženska z zajčjimi ušesi"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Nevesta s tančico"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Oseba svetlih las"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Moški s čepico gua pi mao"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Moški s turbanom"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Starejši moški"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Starejša ženska"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Dojenček"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Gradbeni delavec"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Princesa"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Japonski velikan"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Japonski škratelj"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Duh"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Angelček"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Zunajzemeljsko bitje"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Vesoljska pošast"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Škrat"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Lobanja"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Uslužbenka na informacijah"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Gardist"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Plesalka"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Rdečilo za ustnice"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Lak za nohte"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Obrazna masaža"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Striženje las"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Brivski izvesek"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Brizga"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Pilula"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Sledi ustnic po poljubu"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Ljubezensko pismo"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Prstan"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Dragulj"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Poljub"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Šopek"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Par s srcem"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Poroka"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Utripajoče srce"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Počeno srce"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Dve srci"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Svetlikajoče se srce"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Rastoče srce"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Srce s puščico"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Modro srce"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Zeleno srce"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Rumeno srce"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Vijolično srce"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Srce s pentljo"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Vrteči se srci"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Okrasek v obliki srca"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Rombasta podoba s piko na sredini"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Električna žarnica"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Simbol za jezo"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bomba"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Simbol za spanje"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Simbol za trk"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Simbol za potne kaplje"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Kapljica"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Simbol za brzenje"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Kakec"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Napet biceps"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Simbol za omotico"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Oblaček z govorom"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Oblaček z mislimi"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Bela roža"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Simbol za sto točk"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Vreča denarja"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Menjava valut"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Poudarjen znak za dolar"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Kreditna kartica"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Bankovec z znakom za jen"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Bankovec z dolarskim znakom"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Bankovec z znakom za evro"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Bankovec z znakom za funt"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Denar s krili"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Graf z gibanjem navzgor in znakom za jen"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Sedež"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Namizni računalnik"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Aktovka"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Minidisk"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Disketa"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Optični disk"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Datotečna mapa"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Odprta datotečna mapa"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Zavihana stran"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Prav obrnjena stran"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Koledar"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Koledar z listi, ki jih je mogoče odtrgati"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Organizator vizitk"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Graf z gibanjem navzgor"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Graf z gibanjem navzdol"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Grafikon s stolpci"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Odložišče"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Risalni žebljiček"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Okrogel risalni žebljiček"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Sponka"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Ravnilo"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Geotrikotnik"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Zavihki z zaznamki"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Glavna knjiga"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Beležnica"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Beležnica z okrasno platnico"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Zaprta knjiga"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Odprta knjiga"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Zelena knjiga"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Modra knjiga"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Oranžna knjiga"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Knjige"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Značka z imenom"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Zvitek"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Zabeležka"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Telefonska slušalka"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Pozivnik"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Faksirna naprava"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Satelitska antena"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Zvočnik za javne objave"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Megafon za spodbujanje"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Pladenj za poslana sporočila"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Pladenj za prejeta sporočila"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Paket"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Simbol za e-pošto"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Dohodna kuverta"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Kuverta s puščico navzdol zgoraj"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Zaprt pisemski nabiralnik s spuščeno zastavico"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Zaprt pisemski nabiralnik z dvignjeno zastavico"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Odprt pisemski nabiralnik z dvignjeno zastavico"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Odprt pisemski nabiralnik s spuščeno zastavico"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Poštni nabiralnik"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Poštni rog"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Časopis"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Mobilni telefon"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Mobilni telefon s puščico, ki kaže desno, na levi"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Način vibriranja"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Mobilni telefon je izklopljen"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Ni mobilnih telefonov"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Antena s črticami"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Fotoaparat"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Videokamera"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Televizor"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Radio"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Videokaseta"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Prepleteni puščici, ki kažeta desno"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Puščici, ki kažeta desno in levo v smeri urinega kazalca ter tvorita nesklenjen krog"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Puščici, ki kažeta desno in levo v smeri urinega kazalca ter skupaj z enko v krogcu tvorita nesklenjen krog"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Puščici, ki kažeta dol in gor v smeri urinega kazalca ter tvorita nesklenjen krog"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Puščici, ki kažeta dol in gor v obratni smeri urinega kazalca ter tvorita nesklenjen krog"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Simbol za nizko vrednost svetlosti"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Simbol za visoko vrednost svetlosti"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Zvočnik s potezo za ukinitev"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Zvočnik"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Zvočnik z enim zvočnim valom"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Zvočnik s tremi zvočnimi valovi"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Akumulator"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Električni vtič"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Lupa, ki kaže levo"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Lupa, ki kaže desno"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Ključavnica z nalivnim peresom"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Zaprta ključavnica s ključem"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Ključ"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Ključavnica"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Odprta ključavnica"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Zvonec"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Zvonec s potezo za ukinitev"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Zaznamek"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Simbol za verigo"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Radijski gumb"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Back s puščico levo zgoraj"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"End s puščico levo zgoraj"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"On s klicajem ter puščico levo desno zgoraj"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Soon s puščico desno zgoraj"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Top s puščico navzgor zgoraj"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Simbol, da ni dovoljeno za mlajše od 18 let"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Tipka deset"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Simbol vnosa za latinske velike črke"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Simbol vnosa za latinske majhne črke"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Simbol vnosa za številke"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Simbol vnosa za simbole"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Simbol vnosa za latinske črke"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Ogenj"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Električna svetilka"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Ključ"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Kladivo"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Vijak in matica"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Japonski nož hocho"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Pištola"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Mikroskop"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Teleskop"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Kristalna krogla"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Šesterokraka zvezda s piko na sredini"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Japonski simbol za začetnika"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Simbol trizoba"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Črn kvadratni gumb"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Bel kvadratni gumb"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Velik rdeč krog"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Velik moder krog"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Velik oranžen romb"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Velik moder romb"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Majhen oranžen romb"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Majhen moder romb"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Rdeč trikotnik, ki kaže navzgor"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Rdeč trikotnik, ki kaže navzdol"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Majhen rdeč trikotnik, ki kaže navzgor"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Majhen rdeč trikotnik, ki kaže navzdol"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Številčnica ure ob enih"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Številčnica ure ob dveh"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Številčnica ure ob treh"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Številčnica ure ob štirih"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Številčnica ure ob petih"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Številčnica ure ob šestih"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Številčnica ure ob sedmih"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Številčnica ure ob osmih"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Številčnica ure ob devetih"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Številčnica ure ob desetih"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Številčnica ure ob enajstih"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Številčnica ure ob dvanajstih"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Številčnica ure ob pol dveh"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Številčnica ure ob pol treh"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Številčnica ure ob pol štirih"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Številčnica ure ob pol petih"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Številčnica ure ob pol šestih"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Številčnica ure ob pol sedmih"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Številčnica ure ob pol osmih"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Številčnica ure ob pol devetih"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Številčnica ure ob pol desetih"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Številčnica ure ob pol enajstih"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Številčnica ure ob pol dvanajstih"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Številčnica ure ob pol enih"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Gora Fuji"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Tokyo Tower"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Kip svobode"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Silhueta Japonske"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moyai"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Režeč se obraz"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Režeč se obraz s smejočimi očmi"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Obraz s solzami sreče"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Nasmejan obraz z odprtimi usti"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Nasmejan obraz z odprtimi usti in smejočimi očmi"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Nasmejan obraz z odprtimi usti in mrzlim potom"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Nasmejan obraz z odprtimi usti in tesno zaprtimi očmi"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Nasmejan obraz s sijem"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Nasmejan obraz z rogovi"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Mežikajoč obraz"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Nasmejan obraz s smejočimi očmi"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Obraz, ki uživa v slastni hrani"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Olajšan obraz"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Nasmejan obraz z očmi oblike src"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Nasmejan obraz s sončnimi očali"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Obraz s privoščljivim nasmehom"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Ravnodušen obraz"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Brezizrazen obraz"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Hladen obraz"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Obraz z mrzlim potom"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Otožen obraz"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Zbegan obraz"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Zmeden obraz"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Obraz našobljenih ustnic za poljub"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Obraz, ki pošilja poljub"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Obraz našobljenih ustnic za poljub s smejočimi očmi"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Obraz našobljenih ustnic za poljub z zaprtimi očmi"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Obraz z molečim jezikom"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Mežikajoč obraz z molečim jezikom"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Obraz z molečim jezikom in tesno zaprtimi očmi"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Razočaran obraz"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Zaskrbljen obraz"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Jezen obraz"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Našobljen obraz"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Objokan obraz"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Nepopustljiv obraz"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Obraz z zmagovitim pogledom"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Razočaran, vendar olajšan obraz"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Namrščen obraz z odprtimi usti"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Trpeč obraz"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Prestrašen obraz"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Naveličan obraz"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Zaspan obraz"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Utrujen obraz"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Skremžen obraz"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Obraz, ki toči solze"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Obraz z odprtimi usti"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Pritajen obraz"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Obraz z odprtimi usti in mrzlim potom"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Obraz, ki kriči od strahu"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Začuden obraz"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Zardel obraz"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Speč obraz"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Omotičen obraz"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Obraz brez ust"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Obraz s higiensko masko"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Režeč se mačji obraz s smejočimi očmi"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Mačji obraz s solzami sreče"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Nasmejan mačji obraz z odprtimi usti"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Nasmejan mačji obraz z očmi oblike src"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Mačji obraz s porogljivim nasmeškom"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Mačji obraz našobljenih ustnic za poljub z zaprtimi očmi"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Našobljen mačji obraz"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Objokan mačji obraz"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Naveličan mačji obraz"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Obraz z gesto neodobravanja"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Obraz z gesto odobravanja"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Oseba z globokim priklonom"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Opica, ki ničesar ne vidi"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Opica, ki ničesar ne sliši"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Opica, ki ničesar ne pove"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Vesela oseba z dvignjeno roko"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Oseba, ki proslavlja z obema rokama v zraku"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Namrščena oseba"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Oseba z našobljenim obrazom"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Oseba s sklenjenimi rokami"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Raketa"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Helikopter"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Parna lokomotiva"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Železniški vagon"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Hitri vlak"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Hitri vlak s koničastim nosom"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Vlak"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Podzemna železnica"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Mestna železnica"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Postaja"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Tramvaj"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Vagon tramvaja"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Avtobus"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Nasproti vozeč avtobus"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Trolejbus"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Avtobusno postajališče"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Minibus"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Reševalno vozilo"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Gasilski avtomobil"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Policijski avtomobil"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Nasproti vozeč policijski avtomobil"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taksi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Nasproti vozeč taksi"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Avtomobil"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Nasproti vozeč avtomobil"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Rekreativno vozilo"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Tovornjak za dostavo"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Polpriklopnik"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Traktor"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Enotirna železnica"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Gorska železnica"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Viseča železnica"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Gorska vzpenjača"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Nadzemna železnica"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Ladja"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Čoln na vesla"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Dirkalni čoln"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Vodoravni semafor"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Navpični semafor"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Znak za gradbena dela"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Rotacijska luč policijskega avtomobila"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Trikotna zastavica na drogu"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Vrata"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Znak, da ni vstopa"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Simbol za dovoljeno kajenje"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Simbol za prepovedano kajenje"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Simbol za odlaganje smeti v koš"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Simbol za prepovedano odlaganje smeti"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Simbol za pitno vodo"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Simbol za nepitno vodo"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Kolo"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Prepovedano za kolesa"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Kolesar"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Gorski kolesar"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Pešec"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Prepovedano za pešče"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Otroci na cesti"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Simbol za moške"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Simbol za ženske"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Javno stranišče"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Simbol za dojenčke"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Stranišče"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Toaleta"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Prha"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Kopel"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Banja"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Kontrola potnih listov"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Carina"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Prevzem prtljage"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Zapuščena prtljaga"</string>
+</resources>
diff --git a/java/res/values-sl/strings-talkback-descriptions.xml b/java/res/values-sl/strings-talkback-descriptions.xml
index baef01f..0e1e187 100644
--- a/java/res/values-sl/strings-talkback-descriptions.xml
+++ b/java/res/values-sl/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Ni vnesenega besedila"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"Tipka <xliff:g id="KEY_NAME">%1$s</xliff:g> popravi <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> v <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Tipka <xliff:g id="KEY_NAME">%1$s</xliff:g> izvede samopopravek"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Ni predlogov"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Neznan znak"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Več simbolov"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Velika črka I s piko zgoraj"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Neznan simbol"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Neznan znak »emoji«"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Zdolgočasen obraz"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Obraz v zadregi"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Obraz s sončnimi očali"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Presenečen obraz"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Obraz našobljenih ustnic za poljub"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Namrščen obraz"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Nadomestni znaki so na voljo"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Nadomestni znaki se ne upoštevajo"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Nadomestni predlogi so na voljo"</string>
diff --git a/java/res/values-sl/strings.xml b/java/res/values-sl/strings.xml
index 09392e5..cae331e 100644
--- a/java/res/values-sl/strings.xml
+++ b/java/res/values-sl/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibriranje ob pritisku tipke"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Zvok ob pritisku tipke"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Povečaj črko ob pritisku"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Nastavitve"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Računi in zasebnost"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Videz in postavitve"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Pisanje s kretnjami"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Popravki besedila"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Dodatno"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Omogoči razdeljeno tipkovnico"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Sinhroniz. Googlove tipkovnice"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Sinhronizacija je vklopljena"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Sinhronizacija osebnega slovarja po napravah"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Sinhroniziraj"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Izbris podatkov v oblaku"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Izbriše sinhronizirane podatke iz Googla"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Sinhronizirani podatki bodo izbrisani iz oblaka. Ste prepričani?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Izbriši"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Prekliči"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Osebni slovar bo sinhroniziran in varnostno kopiran v Googlove strežnike. Statistične podatke o pogostosti rabe besed bomo morda zbirali zaradi izboljšanja naših izdelkov. Zbiranje in uporaba vseh podatkov bo skladna z "<a href="https://www.google.com/policies/privacy">"Googlovim pravilnikom o zasebnosti"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"V napravi dodajte Google Račun, če želite omogočiti to funkcijo"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Prekl. na drug nač. vnosa"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Tipka za preklop jezika, ki vključuje tudi druge načine vnosa"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Tipka za preklop med jeziki"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Pokaži, ko je omogočenih več jezikov vnosa"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Pokaži indikator drsenja"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Pokaži vizualni znak pri drsenju s tipk Shift ali Symbol"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Trajanje povečanja tipke"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Brez zakasnitve"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Privzeto"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Glavni slovar"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Pokaži predloge popravkov"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Pokaži predlagane besede med tipkanjem"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Vedno pokaži"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Prikaži v pokončnem načinu"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Vedno skrij"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Blokiraj žaljive besede"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Ne predlagaj potencialno žaljivih besed"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Samodejni popravek"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Tipka za glasovni vnos"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ni omogočenih glasovnih načinov vnosa. Preverite nastavitve v razdelku »Jezik in vnos«."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Nastavitev načinov vnosa"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Jeziki vnosa"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Pošljite povratne informacije"</string>
-    <string name="select_language" msgid="3693815588777926848">"Jeziki vnosa"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Jeziki"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Pomoč in povratne informacije"</string>
+    <string name="select_language" msgid="5709487854987078367">"Jeziki"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Dotaknite se še enkrat, da shranite"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Če želite shraniti, se dotaknite tukaj"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Slovar je na voljo"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Tema tipkovnice"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Preklop med računi"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Ni izbranih računov"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Trenutno uporabljate račun <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"V redu"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Prekliči"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Odjava"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Izbira računa za uporabo"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"angleščina (Združeno kraljestvo)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"angleščina (ZDA)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"španščina (ZDA)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hindujska angleščina"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Srbščina (latinica)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"angleščina (VB) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"angleščina (ZDA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"španščina (ZDA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hindujska angleščina (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Srbščina (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tradicionalna)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (cirilica)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (latinica)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (kompaktna)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Brez jezika (latinice)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Latinica (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Latinica (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Latinica (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Latinica (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Znaki »emoji«"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Tema za tipkovnico"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Slogi vnosa po meri"</string>
     <string name="add_style" msgid="6163126614514489951">"Dodaj slog"</string>
     <string name="add" msgid="8299699805688017798">"Dodaj"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Omogoči"</string>
     <string name="not_now" msgid="6172462888202790482">"Ne zdaj"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Isti slog vnosa že obstaja: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Zakasn. za dolg pritisk tipke"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Trajanje vibr. ob prit. tipke"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Glasn. zvoka ob pritisku tipke"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Branje zunanje datoteke slovarja"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"V mapi »Prenosi« ni nobene datoteke slovarja"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Izberite datoteko slovarja, ki jo želite namestiti"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Zares želite namestiti to datoteko za ta jezik: <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Prišlo je do napake"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Zakasn. za dolg pritisk tipke"</string>
     <string name="button_default" msgid="3988017840431881491">"Privzeto"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Pozdravljeni v aplikaciji <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"s pisanjem s kretnjami"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Zdaj lahko z aplikacijo <xliff:g id="APPLICATION_NAME">%s</xliff:g> tipkate v vseh svojih priljubljenih aplikacijah."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Konfiguracija dodatnih jezikov"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Končano"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Pokaži ikono aplikacije"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Prikaz ikone aplikacije v zaganjalniku"</string>
     <string name="app_name" msgid="6320102637491234792">"Ponudnik slovarja"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Ponudnik slovarja"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Storitev slovarja"</string>
diff --git a/java/res/values-sr/strings-emoji-descriptions.xml b/java/res/values-sr/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..f1764c8
--- /dev/null
+++ b/java/res/values-sr/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Знак за ауторска права"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Знак за регистровани бренд"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Двоструки знак узвика"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Знак узвика и знак питања"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Знак жига"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Извор информација"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Стрелица налево и надесно"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Стрелица нагоре и надоле"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Стрелица северозапад"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Стрелица североисток"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Стрелица југоисток"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Стрелица југозапад"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Закривљена стрелица налево"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Закривљена стрелица надесно"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Ручни сат"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Пешчани сат"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Црни двоструки троугао усмерен надесно"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Црни двоструки троугао усмерен налево"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Црни двоструки троугао усмерен нагоре"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Црни двоструки троугао усмерен надоле"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Аларм"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Пешчани сат са песком који тече"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Заокружено велико латинично слово м"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Мали црни квадрат"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Мали бели квадрат"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Црни троугао усмерен надесно"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Црни троугао усмерен налево"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Средњи бели квадрат"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Средњи црни квадрат"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Средње мали бели квадрат"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Средње мали црни квадрат"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Црно сунце са зрацима"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Облак"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Црни телефон"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Опција са знаком потврде"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Кишобран са кишним капима"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Врућ напитак"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Бели подигнути кажипрст"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Бело насмејано лице"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Ован"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Бик"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Близанци"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Рак"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Лав"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Девица"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Вага"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Шкорпија"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Стрелац"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Јарац"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Водолија"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Рибе"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Црни пик"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Црни треф"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Црни херц"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Црни каро"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Термални извори"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Црни универзални симбол за рециклажу"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Симбол инвалидских колица"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Сидро"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Знак упозорења"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Знак за високи напон"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Средњи бели круг"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Средњи црни круг"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Фудбалска лопта"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Бејзбол"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Снешко без снега"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Сунце иза облака"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Змијоноша"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Забрањен улаз"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Црква"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Фонтана"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Застава у рупи"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Једрењак"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Шатор"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Пумпа за гориво"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Црне маказе"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Бели попуњени знак потврде"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Авион"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Коверта"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Подигнута песница"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Подигнута рука"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Знак победе"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Оловка"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Црно перо"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Попуњени знак потврде"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Попуњен знак за множење x"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Искре"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Осмокрака звезда"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Осмокрака црна звезда"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Пахуљица"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Искра"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Знак x"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Инверзни знак x"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Орнамент са црним знаком питања"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Орнамент са белим знаком питања"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Орнамент са белим знаком узвика"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Попуњен симбол знака узвика"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Потпуно црно срце"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Попуњен знак плус"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Попуњен знак минус"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Попуњен знак дељења"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Црна стрелица надесно"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Петља"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Двострука петља"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Стрелица усмерена надесно па нагоре"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Стрелица усмерена надесно па надоле"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Црна стрелица налево"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Црна стрелица нагоре"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Црна стрелица надоле"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Велики црни квадрат"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Велики бели квадрат"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Средња бела звезда"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Попуњени велики круг"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Таласаста цртица"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Знак за раздвајање делова"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Заокружени идеограф за честитање"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Заокружени идеограф за тајну"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Mahjong плочица са црвеним змајем"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Карта за играње са црним џокером"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Крвна група А"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Крвна група Б"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Нулта крвна група"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Паркинг"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Крвна група АБ"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"CL у квадрату"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"„Cool“ у квадрату"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"„Free“ у квадрату"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"„ID“ у квадрату"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"„New“ у квадрату"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"„N G“ у квадрату"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"„OK“ у квадрату"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"„SOS“ у квадрату"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"„Up“ са узвичником у квадрату"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"„VS“ у квадрату"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Катакана знак за „овде“ у квадрату"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Катакана знак за услугу у квадрату"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Идеограф „Бесплатно“ у квадрату"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Идеограф „Резервисано место“ у квадрату"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Идеограф „Забрана“ у квадрату"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Идеограф „Слободно место“ у квадрату"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Идеограф „Прихватање“ у квадрату"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Идеограф „Све је попуњено“ у квадрату"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Идеограф „Плаћено“ у квадрату"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Идеограф „Месечно“ у квадрату"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Идеограф „Пријава“ у квадрату"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Идеограф „Попуст“ у квадрату"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Идеограф „Радимо“ у квадрату"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Заокружени идеограф „Предност“"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Заокружени идеограф „Прихвати“"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Циклон"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Магла"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Затворени кишобран"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Звездана ноћ"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Излазак сунца изнад планина"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Излазак сунца"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Град у сумрак"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Залазак сунца изнад зграда"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Дуга"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Мост ноћу"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Водени талас"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Вулкан"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Млечни пут"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Земаљска кугла са Европом и Африком"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Земаљска кугла са Америкама"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Земаљска кугла са Азијом и Аустралијом"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Земаљска кугла са меридијанима"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Симбол младог месеца"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Симбол месечевог српа у порасту"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Симбол прве четврти месеца"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Симбол месеца између прве четврти и пуног месеца"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Симбол пуног месеца"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Симбол месеца између пуног месеца и последње четврти"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Симбол последње четврти месеца"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Симбол месечевог српа у опадању"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Месечев срп"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Млад месец са лицем"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Прва четврт месеца са лицем"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Последња четврт месеца са лицем"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Пун месец са лицем"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Сунце са лицем"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Сјајна звезда"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Звезда падалица"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Кестен"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Младица"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Зимзелено дрво"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Листопадно дрво"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Палма"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Кактус"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Лала"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Цвет трешње"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Ружа"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Хибискус"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Сунцокрет"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Цват"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Клип кукуруза"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Стабљика пиринча"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Биље"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Детелина са четири листа"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Јаворов лист"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Опали лист"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Опали лист лепрша на ветру"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Печурка"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Парадајз"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Патлиџан"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Грожђе"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Диња"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Лубеница"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Мандарина"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Лимун"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Банана"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ананас"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Црвена јабука"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Зелена јабука"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Крушка"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Бресква"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Трешње"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Јагода"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Хамбургер"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Парче пице"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Месо са коском"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Батак"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Пиринчани крекер"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Куглица од пиринча"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Кувани пиринач"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Пиринач са каријем"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Врућа чинија"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Шпагете"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Хлеб"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Помфрит"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Печени слатки кромпир"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Данго"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Оден"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Суши"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Пржени шкампи"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Рибља пљескавица са шаром вртлога"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Течни сладолед"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Ломљени лед"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Сладолед"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Крофна"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Колачић"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Чоколадица"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Бомбона"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Лизалица"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Крем"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Ћуп са медом"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Тортица"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Кутија са ручком"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Чинија хране"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Кување"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Виљушка и нож"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Шољица без дршке"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Флаша сакеа и чаша"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Чаша вина"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Чаша коктела"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Тропско пиће"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Кригла пива"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Кригле пива које се куцају"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Флашица за бебе"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Трака"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Упакован поклон"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Рођенданскa тортa"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Изрезбарена бундева"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Новогодишња јелка"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Божић Бата"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Ватромет"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Прскалица"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Балон"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Журка"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Конфете"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Дрво танабата"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Укрштене заставе"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Украс за јелку"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Јапанске лутке"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Ветроказ у облику шарана"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Висећи метални звончићи"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Церемонија гледања месеца"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Школска торба"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Капа за дипломце"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Коњ са вртешке"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Панорамски точак"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Луна-парк"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Штап за пецање и риба"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Микрофон"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Филмска камера"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Биоскоп"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Слушалице"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Сликарска палета"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Цилиндар"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Циркуски шатор"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Карта"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Режисерска табла"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Уметнички наступ"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Видео игра"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Директан погодак"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Слот-машина"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Билијар"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Коцкица за игру"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Куглање"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Карте за играње са цветом"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Музичка нота"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Више музичких нота"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Саксофон"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Гитара"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Клавијатура"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Труба"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Виолина"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Нотни запис"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Спортска мајица са траком"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Тениски рекет и лоптица"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Скија и скијашка чизма"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Кошаркашка лопта и обруч"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Застава за крај трке"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Сноубордер"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Тркач"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Сурфер"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Трофеј"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Коњске трке"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Амерички фудбал"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Рагби"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Пливач"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Кућа"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Кућа са баштом"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Пословна зграда"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Јапанска пошта"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Европска пошта"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Болница"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Банка"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Банкомат"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Хотел"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Романтични хотел"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Продавница"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Школа"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Робна кућа"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Фабрика"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Изакаја лампа"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Јапански дворац"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Европски дворац"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Пацов"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Миш"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Во"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Водени биво"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Крава"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Леопард"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Зец"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Мачка"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Змај"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Крокодил"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Кит"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Пуж"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Змија"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Коњ"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Ован"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Коза"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Овца"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Мајмун"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Петао"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Кокошка"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Пас"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Прасе"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Вепар"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Слон"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Октопод"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Спирална шкољка"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Буба"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Мрав"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Пчела"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Бубамара"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Риба"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Тропска риба"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Надувана риба"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Корњача"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Пиле које се испилило"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Пиле"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Пиле спреда"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Птица"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Пингвин"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Коала"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Пудлица"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Једногрба камила"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Двогрба камила"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Делфин"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Лице миша"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Лице краве"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Лице тигра"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Лице зеца"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Лице мачке"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Лице змаја"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Кит који је изронио"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Лице коња"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Лице мајмуна"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Лице пса"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Лице прасета"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Лице жабе"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Лице хрчка"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Лице вука"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Лице медведа"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Лице панде"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Њушка прасета"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Отисци шапа"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Очи"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Уво"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Нос"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Уста"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Језик"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Спољни део беле шаке са кажипрстом нагоре"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Спољни део беле шаке са кажипрстом надоле"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Спољни део беле шаке са кажипрстом налево"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Спољни део беле шаке са кажипрстом надесно"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Песница"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Рука која маше"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Знак руком „У реду“"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Палац окренут нагоре"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Палац окренут надоле"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Тапшање"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Отворене шаке"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Круна"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Женски шешир"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Наочаре"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Кравата"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Мајица"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Фармерке"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Хаљина"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Кимоно"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Бикини"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Женска гардероба"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Ташница"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Ташна"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Торбица"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Мушка ципела"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Патика"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Ципела са високом штиклом"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Женска сандала"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Женске чизме"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Отисци стопала"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Силуета бисте"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Силуета бисти"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Дечак"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Девојчица"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Мушкарац"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Жена"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Породица"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Мушкарац и жена се држе за руке"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Двојица мушкараца се држе за руке"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Две жене се држе за руке"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Полицајац"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Жена са зечјим ушима"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Невеста са велом"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Плавокоса особа"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Мушкарац са гуа пи мао капом"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Мушкарац са турбаном"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Старији човек"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Старија жена"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Беба"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Радник на градилишту"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Принцеза"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Јапански џин"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Јапански гоблин"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Дух"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Беба анђео"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Ванземаљац"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Чудовиште ванземаљац"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Ђаволчић"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Лобања"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Особа која даје информације"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Чувар"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Плесач"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Кармин"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Лак за нокте"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Масажа лица"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Фризура"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Берберски знак"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Шприц"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Пилула"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Отисак пољупца"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Љубавно писмо"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Прстен"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Драгуљ"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Пољубац"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Букет"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Пар са срцем"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Венчање"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Срце које куца"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Сломљено срце"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Два срца"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Светлуцаво срце"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Срце које расте"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Срце прободено стрелом"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Плаво срце"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Зелено срце"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Жуто срце"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Љубичасто срце"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Срце са траком"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Срца која се окрећу"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Украс у облику срца"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Облик дијаманта са тачком у средини"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Електрична сијалица"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Симбол љутње"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Бомба"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Симбол спавања"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Симбол судара"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Симбол капи зноја"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Капљица"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Симбол црте"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Гомила измета"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Стегнути бицепс"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Симбол вртоглавице"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Облачић за говор"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Балончић за размишљање"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Бели цвет"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Симбол за сто поена"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Врећа новца"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Мењачница"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Попуњен симбол долара"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Кредитна картица"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Новчаница са знаком јена"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Новчаница са знаком долара"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Новчаница са знаком евра"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Новчаница са знаком фунте"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Новац са крилима"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Дијаграм са растућим трендом и знаком јена"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Седиште"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Лични рачунар"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Актен-ташна"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Мини-диск"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Дискета"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Оптички диск"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Директоријум датотеке"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Отворени директоријум датотеке"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Увијена страница"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Страница окренута нагоре"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Календар"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Календар са листовима који се цепају"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Индекс картица"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Дијаграм са растућим трендом"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Дијаграм са опадајућим трендом"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Тракасти графикон"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Табла за поруке"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Прибадача"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Округла прибадача"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Спајалица"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Прав лењир"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Троугаони лењир"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Обележивачи страница"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Главна књига"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Бележница"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Бележница са декоративном корицом"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Затворена књига"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Отворена књига"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Зелена књига"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Плава књига"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Наранџаста књига"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Књиге"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Значка са именом"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Свитак"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Меморандум"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Телефонска слушалица"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Пејџер"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Факс"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Сателитска антена"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Разглас"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Навијачки мегафон"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Документи за слање"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Примљени документи"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Пакет"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Симбол имејла"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Долазна порука"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Стрелица надоле изнад коверте"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Затворено поштанско сандуче са спуштеном заставом"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Затворено поштанско сандуче са подигнутом заставом"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Отворено поштанско сандуче са подигнутом заставом"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Отворено поштанско сандуче са спуштеном заставом"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Поштанско сандуче"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Поштански рог"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Новине"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Мобилни телефон"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Мобилни телефон са стрелицом надесно са леве стране"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Режим вибрације"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Мобилни телефон је искључен"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Без мобилних телефона"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Антена са тракама"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Камера"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Видео камера"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Телевизор"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Радио"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Видео касета"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Укрштене стрелице надесно"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Кружне стрелице надесно и налево у смеру казаљки на сату"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Кружне стрелице надесно и налево у смеру казаљки на сату преко којих стоји уоквирен број један"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Кружне стрелице надоле и нагоре у смеру казаљки на сату"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Кружне стрелице надоле и нагоре у смеру супротном казаљки на сату"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Симбол слабог осветљења"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Симбол јаког осветљења"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Прецртани звучник"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Звучник"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Звучник са једним звучним таласом"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Звучник са три звучна таласа"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Батерија"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Електрични утикач"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Лупа окренута налево"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Лупа окренута надесно"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Катанац са пером"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Затворен катанац са кључем"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Кључ"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Катанац"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Отворени катанац"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Звоно"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Прецртано звоно"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Обележивач"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Симбол везе"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Дугме за избор"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Стрелица налево изнад „Back“"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"Стрелица налево изнад „End“"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"Стрелица налево и надесно изнад „On“ са узвичником"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Стрелица надесно изнад „Soon“"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Стрелица нагоре изнад „Top“"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Забрањено за особе млађе од 18 година"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Тастер са бројем 10"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Симбол уноса за велика латинична слова"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Симбол уноса за мала латинична слова"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Симбол уноса за бројеве"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Улазни симбол за симболе"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Симбол уноса за латинична слова"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Пожар"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Батеријска лампа"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Француски кључ"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Чекић"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Шраф и завртањ"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Хочо"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Пиштољ"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Микроскоп"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Телескоп"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Кристална кугла"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Шестокрака звезда са тачком у средини"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Јапански симбол за почетника"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Амблем трозупца"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Дугме са црним квадратом"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Дугме са белим квадратом"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Велики црвени круг"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Велики плави круг"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Велики наранџасти дијамант"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Велики плави дијамант"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Мали наранџасти дијамант"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Мали плави дијамант"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Црвени троугао усмерен нагоре"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Црвени троугао усмерен надоле"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Мали црвени троугао усмерен нагоре"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Мали црвени троугао усмерен надоле"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Бројчаник који показује један сат"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Бројчаник који показује два сата"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Бројчаник који показује три сата"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Бројчаник који показује четири сата"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Бројчаник који показује пет сати"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Бројчаник који показује шест сати"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Бројчаник који показује седам сати"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Бројчаник који показује осам сати"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Бројчаник који показује девет сати"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Бројчаник који показује десет сати"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Бројчаник који показује једанаест сати"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Бројчаник који показује дванаест сати"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Бројчаник који показује пола два"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Бројчаник који показује пола три"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Бројчаник који показује пола четири"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Бројчаник који показује пола пет"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Бројчаник који показује пола шест"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Бројчаник који показује пола седам"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Бројчаник који показује пола осам"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Бројчаник који показује пола девет"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Бројчаник који показује пола десет"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Бројчаник који показује пола једанаест"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Бројчаник који показује пола дванаест"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Бројчаник који показује пола један"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Планина Фуџи"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Токијски торањ"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Кип слободе"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Силуета Јапана"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Мојаи"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Лице са широким осмехом"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Лице са широким осмехом и насмејаним очима"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Лице са сузама радосницама"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Насмејано лице са отвореним устима"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Насмејано лице са отвореним устима и насмејаним очима"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Насмејано лице са отвореним устима, обливено хладним знојем"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Насмејано лице са отвореним устима и чврсто затвореним очима"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Насмејано лице са ореолом"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Насмејано лице са роговима"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Лице које намигује"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Насмејано лице са насмејаним очима"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Лице које ужива у укусној храни"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Лице са изразом олакшања"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Насмејано лице са очима у облику срца"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Насмејано лице са наочарима за сунце"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Лице које се злобно смешка"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Лице са неутралним изразом"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Безизражајно лице"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Лице коме није забавно"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Лице обливено хладним знојем"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Замишљено лице"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Збуњено лице"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Лице у недоумици"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Лице које љуби"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Лице које шаље пољубац"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Лице које љуби са насмејаним очима"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Лице које љуби са затвореним очима"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Лице са исплаженим језиком"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Лице које се плази и намигује"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Лице које се плази са чврсто затвореним очима"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Разочарано лице"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Забринуто лице"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Љутито лице"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Надурено лице"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Уплакано лице"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Истрајно лице"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Лице са победничким изразом"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Разочарано лице коме је лакнуло"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Намрштено лице са отвореним устима"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Намучено лице"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Уплашено лице"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Опрезно лице"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Поспано лице"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Уморно лице"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Лице са гримасом"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Лице које плаче наглас"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Лице са отвореним устима"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Лице које ућуткује"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Лице са отвореним устима, обливено хладним знојем"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Лице које вришти у страху"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Запањено лице"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Зајапурено лице"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Успавано лице"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Лице коме се врти"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Лице без уста"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Лице са медицинском маском"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Лице мачке са широким осмехом и насмејаним очима"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Лице мачке са сузама радосницама"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Насмејано лице мачке са отвореним устима"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Насмејано лице мачке са очима у облику срца"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Лице мачке са киселим осмехом"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Лице мачке које љуби са затвореним очима"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Надурено лице мачке"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Уплакано лице мачке"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Уморно лице мачке"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Лице са изразом „нешто није у реду“"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Лице са изразом одобравања"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Особа која се дубоко клања"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Мајмун који не види ништа лоше"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Мајмун који не чује ништа лоше"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Мајмун који не говори ништа лоше"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Срећна особа са подигнутом руком"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Особа која је из радости подигла руке"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Намрштена особа"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Надурена особа"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Особа са спојеним рукама"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Ракета"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Хеликоптер"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Парна локомотива"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Вагон"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Брзи воз"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Брзи воз са заобљеним врхом"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Воз"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Метро"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Градска железница"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Станица"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Трамвај"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Вагон трамваја"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Аутобус"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Аутобус који стиже"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Тролејбус"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Аутобуско стајалиште"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Минибус"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Хитна помоћ"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Ватрогасна кола"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Полицијски ауто"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Полицијски ауто који стиже"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Такси"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Такси који стиже"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Аутомобил"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Аутомобил који стиже"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Камп-возило"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Камион за испоруку"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Камион са приколицом"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Трактор"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Пруга са једним колосеком"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Планинска пруга"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Висећа железница"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Планинска жичара"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Висећи трамвај"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Брод"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Чамац"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Брзи моторни чамац"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Хоризонтални семафор"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Вертикални семафор"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Знак за грађевинске радове"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Ротационо светло полицијског аутомобила"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Троугласта застава на стубу"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Врата"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Симбол за забрањен улаз"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Симбол за пушење"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Симбол забрањеног пушења"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Симбол који упозорава где треба бацати отпад"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Симбол забране бацања отпада"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Симбол воде за пиће"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Симбол воде која није за пиће"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Бицикл"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Забрањено за бицикле"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Бициклиста"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Планински бициклиста"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Пешак"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Забрањено за пешаке"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Деца прелазе"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Симбол мушког тоалета"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Симбол женског тоалета"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Тоалет"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Симбол за бебе"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Тоалет"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"WC"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Туш"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Купатило"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Када"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Пасошка контрола"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Царина"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Преузимање пртљага"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Остављени пртљаг"</string>
+</resources>
diff --git a/java/res/values-sr/strings-talkback-descriptions.xml b/java/res/values-sr/strings-talkback-descriptions.xml
index 974ad3a..5e984d3 100644
--- a/java/res/values-sr/strings-talkback-descriptions.xml
+++ b/java/res/values-sr/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Текст није унет"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> исправља <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> у <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> обавља аутоматско исправљање"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Нема предлога"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Непознати знак"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Још симбола"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Велико И са тачком изнад"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Непознат симбол"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Непознати емоџи"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Лице коме је досадно"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Постиђено лице"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Лице са наочарима за сунце"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Изненађено лице"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Лице које љуби"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Намрштено лице"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Доступни су алтернативни знаци"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Алтернативни знаци су одбачени"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Доступни су алтернативни предлози"</string>
diff --git a/java/res/values-sr/strings.xml b/java/res/values-sr/strings.xml
index 4f1e426..5ff279d 100644
--- a/java/res/values-sr/strings.xml
+++ b/java/res/values-sr/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Вибрирај на притисак тастера"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Звук на притисак тастера"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Искачући прозор приликом притиска тастера"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Подешавања"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Налози и приватност"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Изглед и распореди"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Куцање покретима"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Исправљање текста"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Напредно"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Тема"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Омогући подељену тастатуру"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Синхронизуј Google тастатуру"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Синхронизација је укључена"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Синхронизујте лични речник на свим уређајима"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Синхронизуј одмах"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Избриши податке из клауда"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Брише синхронизоване податке са Google-а"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Избрисаћемо синхронизоване податке из клауда. Да ли сте сигурни?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Избриши"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Откажи"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Синхронизоваћемо лични речник и направићемо његову резервну копију на Google серверима. Можда ћемо прикупљати статистичке податке о учесталости речи да бисмо побољшали производе. Прикупљање и коришћење свих информација ће бити у складу са "<a href="https://www.google.com/policies/privacy">"Google-овом политиком приватности"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Додајте Google налог на уређај да бисте омогућили ову функцију"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Пребаци на друге методе уноса"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Тастер за пребацивање језика обухвата и друге методе уноса"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Тастер за пребацивање језика"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Прикажи када је омогућено више језика уноса"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Прикажи индикатор превлачења"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Приказује визуел. траг при превлачењу са тастера Shift или Symbol"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Одложи одбац. иск. прозора тастера"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Без одлагања"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Подразумевано"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Главни речник"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Прикажи предлоге за исправку"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Приказивање предложених речи током уноса текста"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Увек прикажи"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Прикажи у усправном режиму"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Увек сакриј"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Блокирај увредљиве речи"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Нема предлагања потенцијално увредљивих речи"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Аутом. исправљање"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Тастер за гласовни унос"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ниједан метод гласовног уноса није омогућен. Проверите Подешавања језика и уноса."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Конфигурисање метода уноса"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Језици за унос"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Пошаљи повратне информације"</string>
-    <string name="select_language" msgid="3693815588777926848">"Језици уноса"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Језици"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Помоћ и повратне информације"</string>
+    <string name="select_language" msgid="5709487854987078367">"Језици"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Поново додирните да бисте сачували"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Додирните овде да бисте сачували"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Речник је доступан"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Тема тастатуре"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Промените налог"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Није изабран ниједан налог"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Тренутно користите <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"Потврди"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Откажи"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Одјави ме"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Изаберите налог који ћете користити"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"енглески (УК)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"енглески (САД)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"шпански (САД)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"хенглески"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"српски (латиница)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"енглески (УК) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"енглески (САД) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"шпански (САД) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"хенглески (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"српски (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (традиционални)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ћирилица)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (латиница)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (компактна)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Нема језика (абецеда)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Абецеда (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Абецеда (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Абецеда (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Абецеда (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Емотикони"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Тема тастатуре"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Прилаг. стилови уноса"</string>
     <string name="add_style" msgid="6163126614514489951">"Додав. стила"</string>
     <string name="add" msgid="8299699805688017798">"Додај"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Омогући"</string>
     <string name="not_now" msgid="6172462888202790482">"Не сада"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Исти стил уноса већ постоји: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Одлагање при дугом притиску"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Трајање вибрације при притиску"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Јачина звука при притиску"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Читање датотеке спољног речника"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"У директоријуму Преузимања нема датотека речника"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Избор датотеке речника за инсталирање"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Желите ли стварно да инсталирате ову датотеку за <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Дошло је до грешке"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Одлагање при дугом притиску"</string>
     <string name="button_default" msgid="3988017840431881491">"Подразумевано"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Добро дошли у <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"помоћу Куцања покретима"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Сада можете да куцате у свим омиљеним апликацијама помоћу <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Конфигуриши додатне језике"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Завршено"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Прикажи икону апликације"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Икона апликације се приказује у покретачу"</string>
     <string name="app_name" msgid="6320102637491234792">"Добављач речника"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Добављач речника"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Услуга речника"</string>
@@ -173,7 +170,7 @@
     <string name="no_dictionaries_available" msgid="8039920716566132611">"Нема доступних речника"</string>
     <string name="check_for_updates_now" msgid="8087688440916388581">"Освежи"</string>
     <string name="last_update" msgid="730467549913588780">"Последње ажурирање"</string>
-    <string name="message_updating" msgid="4457761393932375219">"Тражење ажурирања"</string>
+    <string name="message_updating" msgid="4457761393932375219">"Траже се ажурирања"</string>
     <string name="message_loading" msgid="5638680861387748936">"Учитавање…"</string>
     <string name="main_dict_description" msgid="3072821352793492143">"Главни речник"</string>
     <string name="cancel" msgid="6830980399865683324">"Откажи"</string>
diff --git a/java/res/values-sv/strings-emoji-descriptions.xml b/java/res/values-sv/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..e49c73c
--- /dev/null
+++ b/java/res/values-sv/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Upphovsrättssymbol"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Symbol för registrerat varumärke"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Dubbelt utropstecken"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Utropstecken och frågetecken"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Varumärkessymbol"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Informationskälla"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Vänster/höger-pil"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Upp/ned-pil"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Nordvästpil"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Nordostpil"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Sydostpil"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Sydvästpil"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Vänsterpil med krok"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Högerpil med krok"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Armbandsur"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Timglas"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Svart dubbeltriangel som pekar åt höger"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Svart dubbeltriangel som pekar åt vänster"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Svart dubbeltriangel som pekar uppåt"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Svart dubbeltriangel som pekar nedåt"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Väckarklocka"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Timglas med sand som rinner"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Stort M med cirkel runt"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Liten svart ruta"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Liten vit ruta"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Svart triangel som pekar mot höger"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Svart triangel som pekar åt vänster"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Medelstor vit ruta"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Medelstor svart ruta"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Medelliten vit ruta"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Medelliten svart ruta"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Svart sol med strålar"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Moln"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Svart telefon"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Röstningsruta med bock"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Paraply med regndroppar"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Varm dryck"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Vitt pekfinger som pekar uppåt"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Vitt leende ansikte"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Väduren"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Oxen"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Tvillingarna"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Kräftan"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Lejonet"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Jungfrun"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Vågen"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Skorpionen"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Skytten"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Stenbocken"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Vattumannen"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Fiskarna"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Svart spader"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Svart klöver"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Svart hjärter"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Svart ruter"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Varma källor"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Svart återvinningssymbol"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Rullstolssymbol"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Ankare"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Varningsskylt"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Högspänningsskylt"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Medelstor vit cirkel"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Medelstor svart cirkel"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Fotboll"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Baseboll"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Snögubbe utan snö"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Sol bakom moln"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Ormbäraren"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Inträde förbjudet"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Kyrka"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Fontän"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Flagga i hålet"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Segelbåt"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Tält"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Bensinpump"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Svart sax"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Vit tjock kryssmarkering"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Flygplan"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Kuvert"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Höjd knuten näve"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Handflata"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Segerhand"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Blyertspenna"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Svart pennspets"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Tjock kryssmarkering"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Tjockt multiplikationstecken"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Glitter"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Asterisk med åtta streck"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Åttauddig stjärna"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Snöflinga"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Glitter"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Kryss"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Negativ kryssmarkering i fyrkant"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Svart frågetecken med utsmyckning"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Vitt frågetecken med utsmyckning"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Vitt utropstecken med utsmyckning"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Tjockt utropstecken"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Tungt svart hjärta"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Tjockt plustecken"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Tjockt minustecken"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Tjockt divisionstecken"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Svart högerpil"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Ögla"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Dubbla öglor"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Högerpil som böjer sig uppåt"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Högerpil som böjer sig nedåt"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Svart vänsterpil"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Svart uppåtpil"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Svart nedåtpil"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Stor svart ruta"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Stor vit ruta"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Medelstor vit stjärna"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Tjock stor cirkel"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Vågigt streck"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Musikaliskt tecken för inledning av ny del"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Cirkelformat ideogram för gratulation"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Cirkelformat ideogram för hemlighet"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Mahjongbricka röd drake"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Spelkort svart joker"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Blodgrupp A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Blodgrupp B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Blodgrupp O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Parkeringsplats"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Blodgrupp AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"CL i fyrkant"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Cool i fyrkant"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Free i fyrkant"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"ID i fyrkant"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"New i fyrkant"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"NG i fyrkant"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"OK i fyrkant"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"SOS i fyrkant"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Up! i fyrkant"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"VS i fyrkant"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Katakana i fyrkant (här)"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Katakana i fyrkant (tjänst)"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Fyrkantigt ideogram för avgiftsfri"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Fyrkantigt ideogram för reserverad plats"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Fyrkantigt ideogram för förbud"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Fyrkantigt ideogram för rum finns"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Fyrkantigt ideogram för godkännande"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Fyrkantigt ideogram för fullbokat"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Fyrkantigt ideogram för betalat"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Fyrkantigt ideogram för månadsvis"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Fyrkantigt ideogram för ansökan"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Fyrkantigt ideogram för rabatt"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Fyrkantigt ideogram för öppet"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Cirkelformat ideogram för fördel"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Cirkelformat ideogram för acceptera"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Cyklon"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Dimma"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Stängt paraply"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Stjärnklar natt"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Soluppgång över berg"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Soluppgång"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Stadssilhuett i skymningen"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Solnedgång över byggnader"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Regnbåge"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Bro på natten"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Vattenvåg"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Vulkan"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Vintergatan"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Jordglob Europa–Afrika"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Jordglob Nord- och Sydamerika"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Jordglob Asien–Australien"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Glob med meridianer"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Symbolen Nymåne"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Symbolen Tilltagande månskära"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Symbolen Måne första kvarteret"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Symbolen Tilltagande halvmåne"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Symbolen Fullmåne"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Symbolen Avtagande halvmåne"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Symbolen Måne sista kvarteret"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Symbolen Avtagande månskära"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Månskära"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Nymåne med ansikte"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Måne första kvarteret med ansikte"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Måne sista kvarteret med ansikte"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Fullmåne med ansikte"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Sol med ansikte"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Glödande stjärna"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Stjärnfall"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Kastanj"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Groddplanta"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Vintergrönt träd"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Lövfällande träd"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palm"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Kaktus"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulpan"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Körsbärsblomma"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Ros"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Hibiskus"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Solros"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Blomma"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Majskolv"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Risvippa"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Ört"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Fyrklöver"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Lönnlöv"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Fallet löv"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Blad som fladdrar i vinden"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Svamp"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Tomat"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Aubergine"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Vindruvor"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Melon"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Vattenmelon"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Tangerin"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Citron"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Banan"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ananas"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Rött äpple"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Grönt äpple"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Päron"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Persika"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Körsbär"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Jordgubbe"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburgare"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Pizzabit"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Kött på ben"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Kyklingklubba"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Riskex"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Risboll"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Kokt ris"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Curry och ris"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Ångande skål"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Spagetti"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Bröd"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Pommes frites"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Rostad sötpotatis"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Sushi"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Friterde räkor"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Fiskkaka med virvelmönster"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Mjukglass"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Shaved ice"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Glass"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Munk"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Småkaka"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Chokladkaka"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Godis"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lollipop"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Vaniljkräm"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Honungsburk"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Sockerkaka"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Bentolåda"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Kastrull med mat"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Matlagning"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Gaffel och kniv"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Tekopp utan handtag"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Sakeflaska och kopp"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Vinglas"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Cocktailglas"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Tropisk drink"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Ölglas"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Klirrande ölglas"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Nappflaska"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Band"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Inslagen present"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Födelsedagstårta"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Jack-O-Lantern"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Julgran"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Jultomten"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Fyrverkerier"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Tomtebloss"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Ballong"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Konfettibomb"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Konfettiboll"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Tanabata-träd"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Korsade flaggor"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Bambudekoration"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Japanska dockor"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Koinobori"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Vindspel"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Tsukimi-ceremoni"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Skolväska"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Examenshatt"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Karusellhäst"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Pariserhjul"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Berg-och-dal-bana"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Fiskespö och fisk"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Mikrofon"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Filmkamera"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Bio"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Hörlur"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Palett"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Cylinderhatt"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Cirkustält"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Biljett"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Klappa"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Scenkonst"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Tv-spel"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Direktträff"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Enarmad bandit"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Biljard"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Speltärning"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Bowling"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Japanska spelkort"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Nottecken"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Flera nottecken"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saxofon"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Gitarr"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Klaviatur"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Trumpet"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Fiol"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Klav"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Löpartröja med band"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Tennisracket och boll"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Skida och pjäxa"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Basketboll och korg"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Schackrutig flagga"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Snowboardåkare"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Löpare"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Surfare"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Trofé"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Hästkapplöpning"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Amerikansk fotboll"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Rugbyboll"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Simmare"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Hus"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Hus med trädgård"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Kontorsbyggnad"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Japanskt postkontor"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Europeiskt postkontor"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Sjukhus"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Bank"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Bankomat"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Hotell"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Kärlekshotell"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Närbutik"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Skola"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Varuhus"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Fabrik"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Izakaya-lampa"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Japanskt slott"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Europeiskt slott"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Råtta"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Mus"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Oxe"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Vattenbuffel"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Ko"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Leopard"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Hare"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Katt"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Drake"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Krokodil"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Val"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Snigel"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Orm"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Häst"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Bagge"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Get"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Får"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Apa"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Tupp"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Höna"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Hund"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Gris"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Galt"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Elefant"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Bläckfisk"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Spiralformat snäckskal"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Larv"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Myra"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Bi"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Nyckelpiga"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Fisk"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Tropisk fisk"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Blåsfisk"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Sköldpadda"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Kyckling som kläcks"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Kyckling"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Kyckling framifrån"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Fågel"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Pingvin"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Pudel"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Dromedar"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Kamel"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Delfin"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Mushuvud"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Kohuvud"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Tigerhuvud"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Harhuvud"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Katthuvud"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Drakhuvud"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Val som sprutar vatten"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Hästhuvud"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Aphuvud"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Hundhuvud"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Grishuvud"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Grodhuvud"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Hamsteransikte"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Varghuvud"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Björnhuvud"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Pandahuvud"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Gristryne"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Tassavtryck"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Ögon"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Öra"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Näsa"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Mun"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Tunga"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Vit handrygg med pekfinger som pekar uppåt"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Vit handrygg med pekfinger som pekar nedåt"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Vit handrygg med pekfinger som pekar åt vänster"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Vit handrygg med pekfinger som pekar åt höger"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Knuten näve-tecken"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Hand som vinkar-tecken"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Handtecknet OK"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Tummen upp-tecken"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Tummen ned-tecken"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Applåd-tecken"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Öppna händer-tecken"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Krona"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Damhatt"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Glasögon"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Slips"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"T-shirt"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Jeans"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Klänning"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Damkläder"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Plånbok"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Handväska"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Sminkväska"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Herrsko"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Sportsko"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Högklackad sko"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Damsandal"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Damstövlar"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Fotavtryck"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Silhuett av byst"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Silhuett av byster"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Pojke"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Flicka"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Man"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Kvinna"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Familj"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Man och kvinna som håller hand"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Två män som håller hand"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Två kvinnor som håller hand"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Polis"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Kvinna med kaninöron"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Brud med slöja"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Person med blont hår"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Man med gua pi mao"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Man med turban"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Gammal man"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Gammal kvinna"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Baby"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Byggarbetare"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Prinsessa"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Japansk demon"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Japansk Tengu"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Spöke"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Babyängel"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Utomjording"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Utomjordiskt monster"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Vätte"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Dödskalle"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Person i informationen"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Vakt med björnskinnsmössa"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Dansare"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Läppstift"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Nagellack"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Ansiktsmassage"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Frisyr"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Barberarstolpe"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Spruta"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Piller"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Pussmärke"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Kärleksbrev"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Ring"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Ädelsten"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Puss"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Bukett"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Par med hjärta"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Bröllop"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Hjärta som slår"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Brustet hjärta"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Två hjärtan"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Glittrande hjärta"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Hjärta som växer"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Hjärta med pil"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Blått hjärta"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Grönt hjärta"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Gult hjärta"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Lila hjärta"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Hjärta med rosett"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Hjärtan som cirklar runt varandra"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Hjärtdekoration"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Romb med punkt inuti"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Glödlampa"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Symbol för ilska"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bomb"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Symbol för sömn"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Symbol för krock"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Symbolen Svett som stänker"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Liten droppe"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Symbol för fart"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Bajskorv"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Spända biceps"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Symbol för yrhet"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Pratbubbla"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Tankebubbla"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Vit blomma"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Hundra poäng-symbol"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Påse med pengar"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Valutaväxling"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Tjockt dollartecken"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Kreditkort"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Sedel med yentecken"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Sedel med dollartecken"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Sedel med eurotecken"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Sedel med pundtecken"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Pengar med vingar"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Uppåtgående diagram och yentecken"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Säte"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"PC"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Portfölj"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Minidisk"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Diskett"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Optisk skiva"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"Dvd"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Filmapp"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Öppen filmapp"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Sida som rullar upp sig"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Uppåtvänd sida"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Kalender"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Blockkalender"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Kortregister"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Uppåtgående diagram"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Nedåtgående diagram"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Stapeldiagram"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Skrivunderlägg"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Kartnål"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Rund kartnål"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Gem"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Rak linjal"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Vinkelhake"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Märkflikar"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Liggare"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Anteckningsbok"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Anteckningsbok med snyggt omslag"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Stängd bok"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Öppen bok"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Grön bok"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Blå bok"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Orange bok"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Böcker"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Namnskylt"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Rulle"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Anteckning"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Telefonlur"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Personsökare"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Fax"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Satellitantenn"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Högtalare för offentliga meddelanden"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Megafon"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Utkorg"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Inkorg"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Paket"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"E-postsymbol"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Inkommande kuvert"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Kuvert med pil som pekar nedåt ovanför"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Stängd brevlåda med flaggan nere"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Stängd brevlåda med flaggan uppe"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Öppen brevlåda med flaggan uppe"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Öppen brevlåda med flaggan nere"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Brevlåda"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Posthorn"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Tidning"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Mobiltelefon"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Mobiltelefon med pil som pekar åt höger på vänster sida"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Vibrationsläge"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Mobiltelefonen av"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Mobiltelefoner förbjudna"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Antenn med staplar"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Kamera"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Videokamera"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Tv"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Radio"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Videokassett"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Tvinnade högerpilar"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Öppna cirkelpilar åt höger och vänster i riktning medurs"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Öppna cirkelpilar åt höger och vänster i riktning medurs med en etta i cirkel som överlägg"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Öppna cirkelpilar nedåt och uppåt i riktning medurs"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Öppna cirkelpilar nedåt och uppåt i riktning moturs"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Symbol för låg ljusstyrka"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Symbol för hög ljusstyrka"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Högtalare med annulleringsstreck"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Högtalare"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Högtalare med en ljudvåg"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Högtalare med tre ljudvågor"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Batteri"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Elkontakt"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Förstoringsglas riktat åt vänster"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Förstoringsglas riktat åt höger"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Hänglås med bläckpenna"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Stängt hänglås med nyckel"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Nyckel"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Hänglås"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Öppet hänglås"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Klocka"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Klocka med annulleringsstreck"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Bokmärke"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Länksymbol"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Radioknapp"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Back (bakåt) med vänsterpil ovanför"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"End (slut) med vänsterpil ovanför"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"On (på) med utropstecken och vänster-höger-pil ovanför"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Soon (snart) med högerpil ovanför"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Top (till toppen) med uppåtpil ovanför"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Symbol för 18 års åldersgräns"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Tangent 10"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Inmatningssymbol för latinska stora bokstäver"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Inmatningssymbol för latinska små bokstäver"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Inmatningssymbol för siffror"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Inmatningssymbol för symboler"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Inmatningssymbol för latinska bokstäver"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Eld"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Ficklampa"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Skiftnyckel"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Hammare"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Mutter och skruv"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Hocho"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Pistol"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Mikroskop"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Teleskop"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Kristallkula"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Sexuddig stjärna med mittprick"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Japansk symbol för nybörjare"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Trident-symbol"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Svart fyrkantig knapp"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Vit fyrkantig knapp"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Stor röd cirkel"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Stor blå cirkel"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Stor orange romb"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Stor blå romb"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Liten orange romb"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Liten blå romb"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Röd triangel som pekar uppåt"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Röd triangel som pekar nedåt"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Liten röd triangel som pekar uppåt"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Liten röd triangel som pekar nedåt"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Urtavla klockan ett"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Urtavla klockan två"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Urtavla klockan tre"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Urtavla klockan fyra"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Urtavla klockan fem"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Urtavla klockan sex"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Urtavla klockan sju"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Urtavla klockan åtta"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Urtavla klockan nio"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Urtavla klockan tio"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Urtavla klockan elva"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Urtavla klockan tolv"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Urtavla halv två"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Urtavla halv tre"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Urtavla halv fyra"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Urtavla halv fem"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Urtavla halv sex"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Urtavla halv sju"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Urtavla halv åtta"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Urtavla halv nio"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Urtavla halv tio"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Urtavla halv elva"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Urtavla halv tolv"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Urtavla halv ett"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Fuji"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Tokyo tower"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Frihetsgudinnan"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Silhuett av Japan"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moyai"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Storleende ansikte"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Storleende ansikte med leende ögon"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Ansikte med glädjetårar"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Leende ansikte med öppen mun"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Leende ansikte med öppen mun och leende ögon"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Leende ansikte med öppen mun och kallsvett"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Leende ansikte med öppen mun och ihopknipna ögon"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Leende ansikte med gloria"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Leende ansikte med horn"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Ansikte som blinkar med ena ögat"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Leende ansikte med leende ögon"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Ansikte som äter något gott"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Lättat ansikte"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Leende ansikte med hjärtformade ögon"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Leende ansikte med solglasögon"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Ansikte med snett leende"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Neutralt ansikte"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Uttryckslöst ansikte"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Ansikte som inte är roat"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Ansikte med kallsvett"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Eftertänksamt ansikte"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Förvirrat ansikte"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Förbryllat ansikte"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Kyssande ansikte"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Ansikte som blåser iväg en kyss"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Kyssande ansikte med leende ögon"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Kyssande ansikte med stängda ögon"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Ansikte som sticker ut tungan"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Ansikte som sticker ut tungan och blinkar med ena ögat"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Ansikte som sticker ut tungan och kniper ihop ögonen"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Besviket ansikte"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Oroligt ansikte"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Argt ansikte"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Tjurigt ansikte"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Ansikte som gråter"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Ihärdigt ansikte"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Triumferande ansikte"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Ansikte som ser besviket men lättat ut"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Missnöjt ansikte med öppen mun"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Plågat ansikte"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Ängsligt ansikte"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Trött och slitet ansikte"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Sömnigt ansikte"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Trött ansikte"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Grimaserande ansikte"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Ansikte som gråter högt"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Ansikte med öppen mun"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Tystat ansikte"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Ansikte med öppen mun och kallsvett"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Ansikte som skriker av rädsla"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Överraskat ansikte"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Rodnande ansikte"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Sovande ansikte"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Yrt ansikte"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Ansikte utan mun"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Ansikte med kirurgmask"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Storleende kattansikte med leende ögon"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Kattansikte med glädjetårar"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Leende kattansikte med öppen mun"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Leende kattansikte med hjärtformade ögon"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Kattansikte med snett leende"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Kyssande kattansikte med stängda ögon"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Tjurigt kattansikte"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Gråtande kattansikte"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Trött och slitet kattansikte"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Ansikte med \"sluta\"-gest"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Ansikte med OK-gest"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Person som bugar djupt"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Ser inget-apa"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Hör inget-apa"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Säger inget-apa"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Glad person som lyfter en hand"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Person som höjer båda händerna i en segergest"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Person som ser bister ut"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Person med tjurigt ansikte"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Person med knäppta händer"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Raket"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Helikopter"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Ånglok"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Järnvägsvagn"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Höghastighetståg"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Höghastighetståg med rund nos"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Tåg"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Tunnelbana"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Snabbspårväg"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Station"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Spårvagn"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Spårvagn"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Buss"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Buss som närmar sig"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Trådbuss"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Busshållplats"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Minibuss"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Ambulans"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Brandbil"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Polisbil"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Polisbil som närmar sig"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taxi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Taxi som närmar sig"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Bil"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Bil som närmar sig"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Stadsjeep"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Skåpbil"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Långtradare"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Traktor"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Monorail"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Bergbana"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Hängbana"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Linbana"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Kabinbana"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Färja"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Roddbåt"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Racerbåt"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Horisontellt trafikljus"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Vertikalt trafikljus"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Vägbyggskylt"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Polissiren"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Vimpel på stång"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Dörr"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Inträde förbjudet-skylt"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Röksymbol"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Rökförbudssymbol"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Släng skräp här-symbol"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Nedskräpning förbjuden-symbol"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Dricksvattensymbol"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Ej drickbart vatten-symbol"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Cykel"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Cyklar förbjudna"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Cyklist"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Mountainbikeåkare"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Fotgängare"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Inga fotgängare"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Barn"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Herrsymbol"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Damsymbol"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Toalett"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Babysymbol"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Toalett"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"WC"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Dusch"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Badrum"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Badkar"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Passkontroll"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Tull"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Bagageutlämning"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Effektförvaring"</string>
+</resources>
diff --git a/java/res/values-sv/strings-talkback-descriptions.xml b/java/res/values-sv/strings-talkback-descriptions.xml
index e3f7ca1..79339be 100644
--- a/java/res/values-sv/strings-talkback-descriptions.xml
+++ b/java/res/values-sv/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Ingen text har angetts"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"Om du trycker på <xliff:g id="KEY_NAME">%1$s</xliff:g> rättas <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> till <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Om du trycker på <xliff:g id="KEY_NAME">%1$s</xliff:g> utförs autokorrigering"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Inga förslag"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Okänt tecken"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Skift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Fler symboler"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Versalt I, punkt ovanför"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Okänd symbol"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Okänd emoji"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Uttråkat ansikte"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Generat ansikte"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Ansikte med solglasögon"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Förvånat ansikte"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Kyssande ansikte"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Ansikte med rynkad panna"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Alternativa tecken är tillgängliga"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Alternativa tecken avvisas"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Alternativa förslag är tillgängliga"</string>
diff --git a/java/res/values-sv/strings.xml b/java/res/values-sv/strings.xml
index 798b26e..b9e8475 100644
--- a/java/res/values-sv/strings.xml
+++ b/java/res/values-sv/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Vibrera vid tangenttryck"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Knappljud"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Popup vid knapptryck"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Inställningar"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Konton och sekretess"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Utseende och layouter"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Svepskrivning"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Textkorrigering"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Avancerat"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Aktivera delat tangentbord"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Synkronisera Googles tangentbord"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Synkroniseringen har aktiverats"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Synkronisera din personliga ordlista på dina enheter"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Synkronisera nu"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Radera data i molnet"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Din synkroniserade data raderas från Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Din synkroniserade data raderas från molnet. Vill du fortsätta?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Radera"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Avbryt"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Den egna ordboken synkroniseras och säkerhetskopieras till Googles servrar. Statistisk information om ordfrekvens kan samlas in och användas för att förbättra våra produkter. Insamlingen och användningen av all information sker i enlighet med "<a href="https://www.google.com/policies/privacy">"Googles sekretesspolicy"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Lägg till ett Google-konto på enheten om du vill aktivera detta"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Byt till annan inmatning"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Språkbytesknappen omfattar även andra inmatningsmetoder"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Knapp för att byta språk"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Visa när flera inmatningsspråk är aktiverade"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Visa dragreglage"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Visa svepning när du drar från Skift- eller Symboltangenten"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Ta bort popup-fördröjning"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Fördröj inte"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Standard"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Huvudordlistan"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Visa rättningsförslag"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Visar ordförslag när du skriver"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Visa alltid"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Visa i stående format"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Dölj alltid"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Blockera stötande ord"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Visa inte förslag på ord som kan verka stötande"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Autokorrigering"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Röstinmatningsknapp"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ingen röstinmatningsmetod har aktiverats. Kontrollera språk- och inmatningsinställningarna."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Konfigurera inmatningsmetoder"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Inmatningsspråk"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Skicka feedback"</string>
-    <string name="select_language" msgid="3693815588777926848">"Inmatningsspråk"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Språk"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Hjälp och feedback"</string>
+    <string name="select_language" msgid="5709487854987078367">"Språk"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Spara genom att trycka igen"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Tryck här om du vill spara"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"En ordlista är tillgänglig"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Tangentbordstema"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Byt konto"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Du har inte valt något konto"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Du använder nu <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Avbryt"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Logga ut"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Välj ett konto"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Engelskt (brittiskt)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Engelskt (amerikanskt)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"spanska (USA)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hindi/engelska"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Serbiska (latinsk)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Engelska (Storbritannien) <xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Engelska (USA) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Spanska (USA (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hindi/engelska (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Serbiska (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (traditionell)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (kyrillisk)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (latinsk)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (kompakt)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Inget språk (alfabet)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabet (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabet (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabet (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabet (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Humörsymbol"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Tangentbordstema"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Anpassade indatastilar"</string>
     <string name="add_style" msgid="6163126614514489951">"Ny stil"</string>
     <string name="add" msgid="8299699805688017798">"Lägg till"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Aktivera"</string>
     <string name="not_now" msgid="6172462888202790482">"Inte nu"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Samma indatastil finns redan: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Fördröjning vid långt tryck"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Vibrationslängd för tangenter"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Ljudvolym för tangenter"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Läs extern ordboksfil"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Inga ordboksfiler i mappen Hämtningar"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Välj en ordboksfil att installera"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Vill du verkligen installera filen för <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Ett fel uppstod"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Fördröjning vid långt tryck"</string>
     <string name="button_default" msgid="3988017840431881491">"Standard"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Välkommen till <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"med svepskrivning"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Nu kan du skriva i alla dina favoritappar med <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Konfigurera ytterligare språk"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Slutförda"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Visa appikon"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Visa appikonen i startprogrammet"</string>
     <string name="app_name" msgid="6320102637491234792">"Dictionary Provider"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Dictionary Provider"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Ordlistetjänst"</string>
@@ -181,11 +178,11 @@
     <string name="install_dict" msgid="180852772562189365">"Installera"</string>
     <string name="cancel_download_dict" msgid="7843340278507019303">"Avbryt"</string>
     <string name="delete_dict" msgid="756853268088330054">"Ta bort"</string>
-    <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Det finns en ordbok för språket du har valt på din mobila enhet.&lt;br/&gt; Vi rekommenderar att du &lt;b&gt;hämtar&lt;/b&gt; ordboken på <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>. Då blir det enklare och smidigare att skriva.&lt;br/&gt; &lt;br/&gt; Hämtningen tar en minut eller två om du använder 3G. Avgifter kan tillkomma om du inte har ett &lt;b&gt;abonnemang med obegränsad data&lt;/b&gt;.&lt;br/&gt; Om du inte är säker på vad som ingår i ditt abonnemang rekommenderar vi att du hittar en Wi-Fi-anslutning och påbörjar hämtningen automatiskt.&lt;br/&gt; &lt;br/&gt; Tips: Du kan hämta och ta bort ordböcker via &lt;b&gt;Språk och inmatning&lt;/b&gt; i menyn &lt;b&gt;Inställningar&lt;/b&gt; på din mobila enhet."</string>
-    <string name="download_over_metered" msgid="1643065851159409546">"Hämta nu (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g> MB)"</string>
-    <string name="do_not_download_over_metered" msgid="2176209579313941583">"Hämta via Wi-Fi"</string>
+    <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Det finns en ordbok för språket du har valt på din mobila enhet.&lt;br/&gt; Vi rekommenderar att du &lt;b&amp;gtladdar ned&lt;/b&gt; ordboken på <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>. Då blir det enklare och smidigare att skriva.&lt;br/&gt; &lt;br/&gt; Laddningen tar en minut eller två om du använder 3G. Avgifter kan tillkomma om du inte har ett &lt;b&gt;abonnemang med obegränsad data&lt;/b&gt;.&lt;br/&gt; Om du inte är säker på vad som ingår i ditt abonnemang rekommenderar vi att du hittar en Wi-Fi-anslutning och påbörjar nedladdningen automatiskt.&lt;br/&gt; &lt;br/&gt; Tips: Du kan ladda ned och ta bort ordböcker via &lt;b&gt;Språk och inmatning&lt;/b&gt; i menyn &lt;b&gt;Inställningar&lt;/b&gt; på din mobila enhet."</string>
+    <string name="download_over_metered" msgid="1643065851159409546">"Ladda ned nu (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g> MB)"</string>
+    <string name="do_not_download_over_metered" msgid="2176209579313941583">"Ladda ned via Wi-Fi"</string>
     <string name="dict_available_notification_title" msgid="4583842811218581658">"En ordlista för <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> är tillgänglig"</string>
-    <string name="dict_available_notification_description" msgid="1075194169443163487">"Tryck om du vill granska och hämta"</string>
+    <string name="dict_available_notification_description" msgid="1075194169443163487">"Tryck om du vill granska och ladda ned"</string>
     <string name="toast_downloading_suggestions" msgid="6128155879830851739">"Hämtar: förslag för <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> är snart klara."</string>
     <string name="version_text" msgid="2715354215568469385">"Version <xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
     <string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"Lägg till"</string>
diff --git a/java/res/values-sw/strings-action-keys.xml b/java/res/values-sw/strings-action-keys.xml
index 21ed881..81ea374 100644
--- a/java/res/values-sw/strings-action-keys.xml
+++ b/java/res/values-sw/strings-action-keys.xml
@@ -20,10 +20,10 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="label_go_key" msgid="4033615332628671065">"Fanya"</string>
+    <string name="label_go_key" msgid="4033615332628671065">"Nenda"</string>
     <string name="label_next_key" msgid="5586407279258592635">"Inayofuata"</string>
     <string name="label_previous_key" msgid="1421141755779895275">"Nyuma"</string>
-    <string name="label_done_key" msgid="7564866296502630852">"Imekamilika"</string>
+    <string name="label_done_key" msgid="7564866296502630852">"Nimemaliza"</string>
     <string name="label_send_key" msgid="482252074224462163">"Tuma"</string>
     <string name="label_search_key" msgid="7965186050435796642">"Tafuta"</string>
     <string name="label_pause_key" msgid="2225922926459730642">"Sitisha"</string>
diff --git a/java/res/values-sw/strings-emoji-descriptions.xml b/java/res/values-sw/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..329bf39
--- /dev/null
+++ b/java/res/values-sw/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Ishara ya hakimiliki"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Ishara ya usajili"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Emoji ya alama mbili za mshangao"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Emoji ya alama ya mshangao na kuuliza"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Emoji ya alama ya nembo ya biashara"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Emoji ya chanzo cha habari"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Emoji ya mshale unaoonyesha kushoto-kulia"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Emoji ya mshale unaoonyesha juu-chini"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Emoji ya mshale unaoonyesha upande wa kaskazini magharibi"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Emoji ya mshale unaoonyesha upande wa kaskazini mashariki"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Emoji ya mshale unaoonyesha upande wa kusini mashariki"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Emoji ya mshale unaoonyesha upande wa kusini magharibi"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Emoji ya mshale unaoonyeshea kushoto ukiwa umejikunja kwa juu kama ndoano"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Emoji ya mshale unaoonyeshea kulia ukiwa umejikunja kwa juu kama ndoano"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Emoji ya saa ya kuonyeshea wakati"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Emoji ya chupa inayopima muda kwa mtiririko wa mchanga"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Emoji ya pembetatu zilizoongozana zinazoonyeshea upande wa kulia"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Emoji ya pembetatu zilizoongozana zinazoonyeshea upande wa kushoto"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Emoji ya pembetatu zilizoongozana zinazoonyeshea juu"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Emoji ya pembetatu zilizoongozana zinazoonyeshea chini"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Emoji ya saa ya kengele"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Emoji ya chupa inayopima muda kwa mtiririko wa mchanga na mchanga ukitiririka"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Emoji ya herufi m iliyozungushiwa duara"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Emoji ya mraba mdogo mweusi"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Emoji ya mraba mdogo mweupe"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Emoji ya pembetatu inayoonyeshea upande wa kulia"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Emoji ya pembetatu inayoonyeshea upande wa kushoto"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Emoji ya mraba mweupe"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Emoji ya mraba mweusi"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Emoji ya mraba mdogo mweupe"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Emoji ya mraba mdogo mweusi"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Emoji ya jua lenye rangi nyeusi na miale"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Emoji ya wingu"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Emoji ya simu ya nyeusi ya mezani"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Emoji ya kisanduku cha kupigia kura na alama ya tiki"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Emoji ya mwavuli na manyunyu ya mvua"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Emoji ya kinywaji moto"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Ishara ya mkono ukiwa umenyoosha kidole kuelekea juu"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Emoji ya uso unaoonyesha tabasamu la kawaida"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Emoji inayoonyesha alama inayowakilisha nyota ya Kondoo"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Emoji inayoonyesha alama inayowakilisha nyota ya Ng\'ombe"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Emoji inayoonyesha alama inayowakilisha nyota ya Mapacha"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Emoji inayoonyesha alama inayowakilisha nyota ya Kaa"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Emoji inayoonyesha alama inayowakilisha nyota ya Simba"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Emoji inayoonyesha alama inayowakilisha nyota ya Mashuke"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Emoji inayoonyesha alama inayowakilisha nyota ya Mizani"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Emoji inayoonyesha alama inayowakilisha nyota ya Ng\'e"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Emoji inayoonyesha alama inayowakilisha nyota ya Mshale"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Emoji inayoonyesha alama inayowakilisha nyota ya Mbuzi"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Emoji inayoonyesha alama inayowakilisha nyota ya Ndoo"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Emoji inayoonyesha alama inayowakilisha nyota ya Samaki"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Emoji ya karata nyeusi ya jembe au shupaza"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Emoji ya karata nyeusi ya mavi au ua"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Emoji ya karata nyeusi ya kopa au moyo"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Emoji ya karata nyeusi ya almasi au kisu"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Emoji inayoonyesha chemchemi hai ya maji ya moto"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Emoji ya alama nyeusi ya kimataifa ya urejelezaji"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Emoji ya alama ya kiti cha magurudumu aghalabu kinachotumiwa na watu wenye ulemavu wa miguu"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Emoji ya Nanga"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Emoji ya alama ya tahadhari"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Emoji ya alama inayonyesha umeme wenye msongo mkubwa"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Emoji ya kiwambo chenye duara ya rangi nyeupe kati kati"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Emoji ya kiwambo chenye duara ya rangi nyeusi kati kati"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Emoji ya mpira wa soka"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Emoji ya mpira wa besiboli"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Emoji ya mwanatheluji bila theluji"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Emoji ya jua nyuma ya mawingu"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Emoji ya alama inayowakilisha nyota ya Nyoka, mtu akiwa amembeba nyoka"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Emoji ya duara na msitari uliokingama umepita kati kati, ikiwa ni ishara ya katazo la kuingia katika eneo hilo"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Emoji ya kanisa"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Emoji ya mashine inayorusha maji kama chemchemi"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Emoji ya bendera katika shimo, aghalabu hutumiwa kama kiashiria kwenye michezo"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Emoji ya mashua"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Emoji ya Hema"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Emoji ya pampu ya mafuta"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Emoji ya mkasi mweusi"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Emoji ya alama nyeupe ya tiki iliyokolezwa"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Emoji ya ndege"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Emoji ya bahasha"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Emoji ya mkono uliokunja ngumi umeinuliwa"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Emoji ya mkono umeinuliwa"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Emoji ya mkono umeinuliwa kama ishara ya ushindi"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Emoji ya penseli"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Emoji ya nibu nyeusi"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Emoji ya alama ya tiki iliyokolezwa sana"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Emoji ya alama ya kuzidisha iliyokolezwa sana"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Emoji ya vimuli muli"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Emoji ya alama ya nyota yenye pembe nane"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Emoji ya nyota nyeusi yenye pembe nane"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Emoji ya tone la maji lililobadilika kua barafu wakati likianguka kutoka mawinguni"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Emoji ya alama inayowakilisha tone la maji lililobadilika kua barafu wakati likianguka kutoka mawinguni"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Emoji ya alama ya msalaba"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Emoji ya alama ya msalaba iliyogeuka na kua kama alama ya kuzidisha"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Emoji ya pambo la alama nyeusi ya kuuliza"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Emoji ya pambo la alama nyeupe ya kuuliza"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Emoji ya pambo la alama nyeupe ya mshangao"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Emoji ya alama ya mshangao iliyokolezwa sana"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Emoji ya ua la moyo wenye rangi nyeusi iliyokolezwa sana"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Emoji ya alama ya kujumlisha iliyokolezwa sana"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Emoji ya alama ya kutoa iliyokolezwa sana"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Emoji ya alama ya kugawanya iliyokolezwa sana"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Emoji ya mshale mweusi unaoonyeshea kulia"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Emoji ya kitanzi kilichojikunja"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Emoji ya kitanzi kilichokunjwa mara mbili"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Emoji ya mshale unaoonyeshea kulia kisha unajikunja kuelekea juu"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Emoji ya mshale unaoonyeshea kulia kisha unajikunja kuelekea chini"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Emoji ya mshale mweusi unaoonyeshea kushoto"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Emoji ya mshale mweusi unaoonyeshea juu"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Emoji ya mshale mweusi unaoonyeshea chini"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Emoji ya mraba mkubwa wa rangi nyeusi"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Emoji ya mraba mkubwa wa rangi nyeupe"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Emoji ya nyota nyeupe ya wastani"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Emoji ya duara kubwa lililokolezwa sana"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Emoji ya kistari chenye mawimbi"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Emoji ya alama ya kiuandishi ya kijapani inayotumika kuonyeshea sehemu ya kuanzia mwimbaji hasa katika wimbo ambao pengine haufahamu vizuri, pia hutumika kama herufi M kwenye alfabeti za kigiriki"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Emoji ya lugha ya alama ya asili inayomaanisha hongera"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Emoji ya lugha ya alama ya asili inayomaanisha siri"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Kigae cha Mahjong chenye ishara inayowakilisha joka jekundu"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Jokari mweusi wa kadi za kucheza"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Aina A ya damu"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Aina B ya damu"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Aina O ya damu"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Eneo la kuegesha magari"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Aina AB ya damu"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"Herufi CL ndani ya mraba"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Neno cool ndani ya mraba"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Neno free ndani ya mraba"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"Herufi ID ndani ya mraba"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Neno new ndani ya mraba"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Herufi NG ndani ya mraba"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"OK Ndani ya mraba"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"SOS Ndani ya mraba"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Neno up likiwa na alama ya mshangao ndani ya mraba"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Herufi vs ndani ya mraba"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Alama mbili ndani ya mraba zinazowakilisha maneno katakana koko inapatikana hapa"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Alama moja ya ndani ya mraba inayowakilisha maneno huduma ya katakana sa"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Alama ya mfumo wa asili wa pamoja wa China, Japan na Korea ikiwa ndani ya mraba ikiwakilisha bila malipo"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Alama ya mfumo wa asili wa pamoja wa China, Japan na Korea ikiwa ndani ya mraba ikiwakilisha nafasi iliyohifadhiwa"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Alama ya mfumo wa asili wa pamoja wa China, Japan na Korea ikiwa ndani ya mraba ikiwakilisha marufuku au katazo"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Alama ya mfumo wa asili wa pamoja wa China, Japan na Korea ikiwa ndani ya mraba ikiwakilisha uwepo wa nafasi za wazi"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Alama ya mfumo wa asili wa pamoja wa China, Japan na Korea ikiwa ndani ya mraba ikiwakilisha kukubaliwa"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Alama ya mfumo wa asili wa pamoja wa China, Japan na Korea ikiwa ndani ya mraba ikiwakilisha umiliki kamili"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Alama ya mfumo wa asili wa pamoja wa China, Japan na Korea ikiwa ndani ya mraba ikiwakilisha malipo yamekwisha fanyika"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Alama ya mfumo wa asili wa pamoja wa China, Japan na Korea ikiwa ndani ya mraba ikiwakilisha jambo ambalo hufanyika kila mwezi"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Alama ya mfumo wa asili wa pamoja wa China, Japan na Korea ikiwa ndani ya mraba ikiwakilisha maombi"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Alama ya mfumo wa asili wa pamoja wa China, Japan na Korea ikiwa ndani ya mraba ikiwakilisha punguzo la bei"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Alama ya mfumo wa asili wa pamoja wa China, Japan na Korea ikiwa ndani ya mraba ikiwakilisha shughuli zinaendelea kama vile biashara"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Alama ya mfumo wa asili wa pamoja wa China, Japan na Korea ikiwa ndani ya mduara ikiwakilisha upekee"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Alama ya mfumo wa asili wa pamoja wa China, Japan na Korea ikiwa ndani ya mduara ikiwakilisha ombi la kupokea au kupokelewa"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Kimbunga"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Hali ya ukungu"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Mwavuli uliofungwa"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Usiku wenye nyota"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Maawio ya jua juu ya milima"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Mapambazuko"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Mji mkubwa wakati wa machweo ya jua"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Machweo ya jua juu ya majengo"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Upinde wa mvua"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Daraja wakati wa usiku"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Wimbi la maji"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Volkano"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Kilimia"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Dunia kama inavyoonekana kutoka angani ikionyesha bara Ulaya na Afrika"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Dunia kama inavyoonekana kutoka angani ikionyesha mabara yote ya Amerika"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Dunia kama inavyoonekana kutoka angani ikionyesha bara Asia na Australia"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Dunia ikionyesha mistari yake ya meridiani"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Alama ya mwezi mpya"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Alama ya mwezi mpevu"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Alama inayoonesha hatua ya tatu ya kuonekana kwa mwezi ambapo nusu ya mwezi upande wa kulia huonekana"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Alama inayoonesha hatua ya nne ya kuonekana kwa mwezi ambapo robo tatu ya mwezi upande wa kulia huonekana"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Alama inayoonesha hatua ya tano ya kuonekana kwa mwezi ambapo mwezi wote huonekana"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Alama inayoonesha hatua ya sita ya kuonekana kwa mwezi ambapo robo tatu ya mwezi upande wa kushoto huonekana"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Alama inayoonesha hatua ya saba ya kuonekana kwa mwezi ambapo nusu ya mwezi upande wa kushoto huonekana"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Hatua ya nane na ya mwisho ya kuonekana kwa mwezi ambapo sehemu ndogo ya upande wa kushoto huonekana."</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Mwezi mpevu"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Mwezi mpya wenye uso wa mtu"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Nusu ya mwezi upande wa kulia wenye uso wa mtu"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Nusu ya mwezi upande wa kushoto wenye uso wa mtu"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Mwezi mzima wenye uso wa mtu"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Jua lenye uso wa mtu"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Nyota ing\'arayo"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Kimondo"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Karanga za Kichina"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Mche ukichipuka"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Mti wa kijani kibichi"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Mti wa jamii ya mwaloni"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Mnazi"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Kakati dungusi"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Ua la Tulip"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Ua dogo la rangi ya waridi au jeupe lililochanua ambalo kutokea kwake huchukuliwa kama ishara ya kumalizika kwa majira ya baridi"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Waridi"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Haibiskasi"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Ua la alizeti"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Ua lililochanua"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Ganda ambalo halijamaliziwa kutolewa kutoka kwenye mhindi"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Suke la mpunga"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Mmea wenye majani"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Jamii ya mimea adimu yenye majani ya pande nne"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Jani la mti jamii ya mwaloni utoao juisi yenye sukari"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Jani lililoanguka"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Jani likipeperushwa na upepo"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Uyoga"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Nyanya"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Bilinganya"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Zabibu"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Tikiti"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Tikitimaji"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Chenza"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Emoji ya Limao"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Ndizi"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Nanasi"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Tufaha jekundu"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Tufaha la kijani"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Pea"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Pichi"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Mizabibu mwitu"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Stroberi"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Mkate mwembamba unaoliwa kwa kuwekwa vyakula vingine kati kati yake kama nyama na mboga mboga"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Kipande cha pizza"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Nyama iliyoshikiliwa kwenye mfupa"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Paja la nyama kuku"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Biskuti ngumu kiasi iliyotengenezwa kwa unga wa mchele"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Tonge la ubwabwa"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Wali"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Mchuzi mzito na wali"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Bakuli linalofuka mvuke"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Spageti, aina fulani ya tambi"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Mkate"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Viazi vya Kifaransa vilivyokatwa kwa urefu na wembamba kisha kukaangwa na kukaushwa sana"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Kiazi cha kuokwa"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango, chakula cha asili cha kijapani ambapo hua na matonge ya wali yaliyoshikizwa kwenye kijiti"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden, chakula cha asili cha kijapani ambapo hua na vyakula aina mbali mbali vimeshikizwa kwenye kijiti"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Sushi, chakula cha asili cha kijapani ambapo hua na aina mbali mbali za vyakula vya asili hasa vya baharini vikichanganywa na wali na kuundwa kiustadi kufuata umbo maalum"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Uduvi wa kukaangwa"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Kipande cha samaki aliyetengenezwa kama keki kikiwa na mchoro unaowakilisha kimbunga katikati."</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Aiskrimu laini"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Kipande cha barafu tamu iliyotengenezwa kilichokatwa katika umbo maalum"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Aiskrimu"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Donati"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Biskuti"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Mchi wa chokoleti"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Peremende"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lollipop"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Faluda au Kastadi"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Emoji ya chungu cha asali"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Keki tamu yenye vitandamlo inayofanana na biskuti"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Chakula cha asili ya kijapan kinachobebwa kwenye kijisanduku maalum"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Chakula cha asili ya kijapani kinachowekwa kwenye chungu maalum, pia huitwa nabemono"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Upishi"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Uma na kisu"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Emoji ya kikombe cha chai kisicho na mshikio"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Chupa ya mvinyo wa kijapani wa mchele na kikombe"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Glasi ya mvinyo"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Glass maalum yenye umbo la V na kitako cha duara, aghalabu hutumika kunywea pombe kali"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Kinywaji cha mchanganyiko wa matunda ya kitropiki"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Kombe la kunywea bia"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Makombe mawili yaliyojaa bia yakigonganishwa kwa mtindo wa kusherehekea"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Chupa maalum ya mtoto"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Utepe"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Zawadi iliyofungwa kwenye karatasi maalum"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Keki ya siku ya kuzaliwa"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Emoji ya boga lililochongwa kiustadi kama sura ya mtu na mshumaa kuwekwa ndani kulifanya liwe na mwanga"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Mkrismasi, pia Mvinje"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Baba Krismasi"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Fataki"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Cheche za fataki"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Puto"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Kifaa cha kufyatua vikaratasi kwa mpigo, aghalabu kwa ajili ya kusherehekea"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Mpira maalum uliowekwa chengechenge za rangi mbalimbali, ambapo ukifunguliwa hutoka na kuleta mwako aghalabu katika sherehe ya harusi"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Tawi la mwanzi maalum uliofungwa vijikaratasi vyenye matilaba au matamanio ya watu"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Bendera zilizokingamanishwa"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Urembo wa asili ya kijapani wa misonobari na matawi ya mianzi ambao huwekwa mlangoni kuwakilisha heri na bahati, aghalabu hutumika kwenye sherehe za mwaka mpya"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Emoji ya midoli ya kijapani"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Pia Koinobori, vibango maalum vyenye picha za samaki ambavyo hupambwa au kushikwa kwenye siku ya watoto huko Japan, ambapo samaki wakubwa huwakilisha wazazi na wadogo kwa idadi ya watoto katika familia."</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Kifaa kilichofanyizwa kutoa sauti upepo unapovuma"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Sherehe za kutazama mwezi"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Kibegi maalum cha kubebea vifaa vya shule vya mtoto"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Kofia ya Mahafali"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Kifani cha farasi wa kuendeshwa kwenye sehemu ya michezo na burudani"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Gurudumu kubwa la mduara ambalo hua na vijumba maalum ambapo watu hukaa na huzungushwa na mitambo ili kutoa burudani"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Mfano wa reli ndefu ambamo hua na vijumba maalum vilivyoungwa kama treni ambapo watu hukaa na kuendeshwa kwa kwasi na mitambo ili kutoa burudani"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Ndoano na samaki"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Kipaza sauti"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Kamera ya filamu"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Sinema"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Kifaa cha sauti"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Ubao wa msanii ambao hua na rangi mbali mbali za kuchorea"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Kofia ya pama"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Hema kubwa sana la mduara, aghalabu la kufanyia michezo ya jukwaani"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Tiketi"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Ubao maalum wa milia ambao hutumika kutoa ishara ya mahali na kuanza kitendo wakati wa kurekodi filamu"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Sanaa ya maonyesho"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Mchezo wa video"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Ubao maalum wenye miduara huku ukiwa na kishale kimejikita kati kati kuwakilisha lengo la moja kwa moja la mtupa vishale"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Mashine ya kuchezea michezo ya kubahatisha"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Biliadi"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Kete ya mchezo, aghalabu hua na umba la mchi mraba"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Mchezo wa kuviringisha matufe chini"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Kadi ya mchezo wa Hanafuda wa Kijapan inayowakilisha mwezi wa nane, kati ya kadi kumi na mbili, moja kwa kila mwezi"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Nota ya muziki"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Nota nyingi za muziki"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saksafoni"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Emoji ya Gitaa"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Kibodi ya Muziki"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Tarumbeta"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Fidla"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Alama ya muziki ambayo hutambulisha kwa mistari ya nota kiwango cha juu cha sauti kinachotakiwa kwa muziki husika"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Nguo maalum kwa ajili ya mbio likiwa na utepe maalum wa utambulisho"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Emoji ya raketi na mpira wa tenisi"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Relitheluji na mabuti ya skii"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Mpira wa kikapu wa rangi ya kahawia nyepesi ukiwa chini"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Ruwaza yenye miraba ya rangi nyeusi na nyeupe ambayo huinuliwa mwazo au mwisho wa mashindano, aghalabu huambatana na mshindi"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Emoji ya mtu akiteleza juu ya barafu kwa kibao maalum"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Mkimbiaji"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Emoji ya mtu akiteleza katika mawimbi meupe kwa ubao"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Kombe, aghalabu taji kwa ajili ya mshindi kwa mashindano husika"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Mashindano ya mbio za farasi"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Mpira wa miguu wa kimarekani"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Mpira wa ragbi"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Mwogeleaji"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Jengo la nyumba"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Nyumba yenye bustani"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Jengo la ofisi"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Ofisi ya posta ya kijapani"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Ofisi ya posta ya Ulaya"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Emoji ya Hospitali"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Benki"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Machine ya kutolea pesa ya kiotomatiki"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Hoteli"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Emoji ya jengo la hoteli ikiwa na ua la upendo"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Maduka yanayofikiwa kwa urahisi"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Emoji ya Shule"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Duka la idara"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Kiwanda"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Alama ya asili ya kijapani yenye mfano wa taa iliyo ndani ya chombo kilichofungwa pande zote ikiwakilisha sehemu ya biashara au mahali panapouzwa chakula na mvinyo"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Kasri la kijapani"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Kasri la Ulaya"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Panya buku"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Panya"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Maksai"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Nyati wa majini"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Emoji ya Ng\'ombe"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Chui"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Sungura"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Paka"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Joka, aghalabu kwenye hadithi za asili za China,Japan na Korea"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Mamba"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Nyangumi"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Konokono"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Nyoka"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Farasi"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Kondoo Mume, aghalabu mwenye uwezo wa kuzalisha"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Mbuzi"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Kondoo"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Tumbili"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Jogoo"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Kuku"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Mbwa"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Nguruwe"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Nguruwe dume, aghalabu mwenye uwezo wa kuzalisha"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Tembo"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Pweza"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Jumba la konokono au viumbe wengine wa jamii hiyo ambalo limejikunja kama duara inayoanzia ndani kuelekea nje"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Mdudu"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Chungu chungu"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Nyuki wa asali"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Kombamwiko jike"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Samaki"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Samaki wa kitropiki"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Samaki mwenye miiba mwenye tabia ya kufutuka au kufura anapohisi hatari"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Kobe"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Kifaranga wa kuku akitotolewa kwenye yai"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Kifaranga wa kuku mdogo"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Kifaranga wa kuku anayeangalia mbele"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Ndege"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Pengwini, ndege mnene wa majini mwenye rangi nyeusi na nyeupe na miguu mifupi asiyeweza kuruka angani"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koala, dubu mdogo wa Australia migodini"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Emoji ya jibwa lenye asili ya manyoya mengi sana yaliyojikunja"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Ngamia wa asili ya mashariki ya kati mwnye nundu moja"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Ngamia wa asili ya Asia ya kati mwenye nundu mbili"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Pomboo"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Uso wa panya"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Uso wa ng\'ombe"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Uso wa Duma"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Uso wa sungura"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Uso wa paka"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Uso wa joka"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Nyangumi anayevurumisha maji juu"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Uso wa farasi"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Uso wa tumbili"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Uso wa mbwa"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Uso wa nguruwe"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Uso wa chura"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Emoji ya uso wa panya buku"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Uso wa mbwa mwitu"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Uso wa dubu"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Uso wa panda, aina ya dubu wa rangi nyeusi na nyeupe apatikanaye Tibeti"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Pua ya nguruwe"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Alama za uwayo wa mnyama"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Macho"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Sikio"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Pua"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Mdomo"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Ulimi"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Ishara ya mkono unaoonekana kwa nyuma ukiwa umenyoosha kidole kuelekea juu"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Ishara ya mkono unaoonekana kwa nyuma ukiwa umenyoosha kidole kuelekea chini"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Ishara ya mkono unaoonekana kwa nyuma ukiwa umenyoosha kidole kuelekea kushoto"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Ishara ya mkono unaoonekana kwa nyuma ukiwa umenyoosha kidole kuelekea kulia"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Ishara ya mkono uliokunja ngumi"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Ishara ya  mkono ukipunga"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Ishara ya mkono ikimaanisha Sawa"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Ishara ya kidole gumba kuinuliwa juu ikiwakilisha mambo bomba"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Ishara ya kidole gumba kuinamishwa chini ikiwakilisha mambo sio safi"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Ishara ya mikono inapiga makofi"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Ishara ya mikono ikiwa wazi"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Taji"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Kofia ya mwanamke"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Miwani"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Tai"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Fulana"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Jinzi au Dengrizi"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Gauni"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Vazi la kike kama gauni refu lenye mikono mirefu la asili ya kijapani ambalo huvaliwa na mkanda mpana kiunoni"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Mavazi ya kike"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Mfuko wa fedha"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Begi dogo la mkononi"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Pochi"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Kiatu cha kiume"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Kiatu cha riadha"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Emoji ya kiatu chenye kisigino kirefu"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Kiatu cha wazi cha kike"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Mabuti ya kike"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Alama za nyayo"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Taswira ya umbo au kivuli cha mtu aliyepenya au kuvunja mahali"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Taswira mbili za maumbo au vivuli vya watu waliopenya au kuvunja mahali"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Mvulana"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Msichana"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Mwanaume"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Mwanamke"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Familia"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Mwanaume na mwanamke wameshikana mikono"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Wanaume wawili wameshikana mikono"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Wanawake wawili wameshikana mikono"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Afisa wa polisi"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Mwanamke aliyevalia kama sungura aghalabu anayehudumia kwenye baa"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Mwanamwali au bi harusi aliyevaa shela"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Mtu mwenye nywele zenye rangi ya shaba au rangi ya kimanjano"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Mwanaume akiwa amevaa kofia maalum ya kichina"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Mwanaume aliyevaa kilemba"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Mwanaume mzee"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Mwanamke mzee"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Mtoto"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Mfanyakazi wa shughuli za ujenzi akiwa na kofia ngumu ya manjano"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Binti Mfalme"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Kinyago cha shetani mwekundu wa kijapani"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Kinyago cha zimwi jekundu lenye mfano wa ndege la kijapani"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Mzimu"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Emoji ya malaika mtoto mwenye mbawa na duara ya mwangaza wa samawati kichwani"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Emoji ya kiumbe mgeni kutoka sayari nyingine tofauti na dunia"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Emoji ya jinamizi la kigeni, aghalabu kwenye hadithi za wavamizi kutika nje ya dunia waliokua na teknolojia kubwa"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Emoji ya shetani mdogo mwenye pembe aliyekasirika"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Fuvu"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Emoji ya mtu wa dawati la maelezo"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Mlinzi"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Mcheza dansi"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Rangi ya midomo"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Rangi ya kucha"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Emoji ya mtu akichuliwa au kusingwa uso"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Emoji ya mtu akikata nywele"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Emoji ya ufito wa kinyozi"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Sindano aghalabu ya kutumika kuchomea dawa kwa mtu au myama"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Kidonge"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Alama ya busu"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Barua ya kimapenzi"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Pete"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Jiwe la kito"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Busu"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Maua mazuri yaliyofungwa pamoja"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Emoji ya wanandoa na kifani cha moyo"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Harusi"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Emoji ya moyo unaodunda"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Emoji ya moyo uliovunjika"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Emoji ya mioyo miwili"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Emoji ya moyo unaong\'aa"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Emoji ya moyo unaokua"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Emoji ya moyo na mshale"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Emoji ya moyo wa rangi ya samawati"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Emoji ya moyo wa rangi ya kijani"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Emoji ya moyo wa rangi ya manjano"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Emoji ya moyo wa rangi ya zambarau"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Emoji ya moyo uliofungwa utepe"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Emoji ya mioyo inayozunguka"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Emoji ya kitufe kilichopambwa ua la moyo"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Umbo la almasi ikiwa na kidoa kati kati"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Taa ya balbu ya umeme"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Emoji ya ishara ya hasira"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Emoji ya Bomu"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Emoji ya ishara ya hali tuli au kulala"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Emoji ya ishara ya mgongano"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Emoji ya alama ya jasho likitiririka"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Emoji ya tone aghalabu la maji"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Emoji ya ishara ya kitu kilichoondoka kwa ghafla sana kutimua vumbi nyumba"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Rundo la kinyesi"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Emoji ya mkono uliotunisha msuli"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Emoji ya ishara ya kizunguzungu"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Emoji ya kiputo kinachoashiria mtu alikua anasema"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Emoji ya kiputo kinachoashiria mtu alikua anawaza"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Emoji ya ua jeupe"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Emoji ya alama mia ya mia"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Emoji ya mfuko wa pesa"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Emoji ya mbadilishano wa sarafu"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Emoji ya alama ya dola iliyokolezwa"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Emoji ya kadi ya mkopo"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Emoji ya noti ya benki yenye alama ya fedha ya japan yaani yen"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Emoji ya noti ya benki yenye alama ya dola"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Emoji ya noti ya benki yenye alama ya fedha ya ulaya yaani yuro"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Emoji ya noti ya benki yenye alama ya fedha ya uingereza yaani pauni"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Emoji ya pesa iliyo na mbawa"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Emoji ya chati yenye alama ya yen na ikionesha kupanda aghalabu thamani"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Emoji ya kiti cha kukalia aghalabu kwenye ndege"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Emoji ya kompyuta ya mezani"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Emoji ya mkoba"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Emoji ya diski iliyohifadhiwa kwenye kasha maalum"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Emoji ya diski tepe"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Emoji ya diski yenye uwezo wa kuhifadhi picha"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"Emoji ya diski ya dijitali ya video"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Emoji ya folda la faili"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Emoji ya folda la faili lililofunguliwa"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Emoji ya ukurasa uliojikunja"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Emoji ya ukurasa unaoangalia juu"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Kalenda"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Emoji ya kalenda maalum ya kufuatilia aghalabu hutumiwa na mashirika ambapo tukio la tarehe maalum inayofuatiliwa likikamilika, karatasi lenye tarehe husika huondolewa kwa kuchanwa"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Emoji ya kifaa maalum cha kuhifadhia kadi zenye anwani na mawasiliano ya watu"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Emoji ya chati inayoonesha grafu ikipanda"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Emoji ya chati inayoonesha grafu ikishuka"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Emoji ya chati inayotumia miche kuwakilisha data zake"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Emoji ya ubao maalum wenye kishikizio cha karatasi, aghalabu kwa urahisi wa kuandika au kusoma"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Emoji ya kipini maalum kinachotumika kushikizia karatasi ukutani"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Emoji ya kipini chenye kichwa cha mduara kinachotumika kushikizia karatasi kwenye kuta maalum zinazoweza kutumika na vipini hivyo"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Emoji ya kibanio cha karatasi"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Emoji ya rula nyoofu"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Emoji ya rula ya pembetatu"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Emoji ya vichupo vya alamisho"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Emoji ya leja"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Emoji ya daftari"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Emoji ya daftari yenye jalada lenye urembo"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Emoji ya kitabu kimefungwa"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Emoji ya kitabu kimefunguliwa"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Emoji ya kitabu cha rangi ya kijani"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Emoji ya kitabu cha rangi ya samawati"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Emoji ya kitabu cha rangi ya manjano"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Emoji ya vitabu"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Emoji ya beji ya jina"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Emoji ya hati ndefu ya kukunja kwa kuvingirisha hasa zile za zamani"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Emoji ya kikaratasi cha kuchukulia taarifa muhimu au kumbukumbu"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Emoji ya risiva ya simu"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Emoji ya kifaa maalum ambacho kinataarifa za vikumbusho mbali mbali kama kupiga simu"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Emoji ya mashine ya faksi"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Emoji ya antena ya setilaiti"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Emoji ya kipaza sauti cha kuzungumzia kwenye umma"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Emoji ya kifaa mfano wa tarumbeta kwa ajili ya kushangilia aghalabu huitwa vuvuzela kwenye baadhi ya maeneo"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Emoji ya kikasha toezi cha kuhifadhia aghalabu jumbe au barua zinazopaswa kuelekea mahali husika"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Emoji ya kikasha hifadhi ambacho hua na jumbe au barua zilizowasili"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Emoji ya kifurushi"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Emoji ya alama ya barua pepe"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Emoji ya bahasha ikishuka, ishara ya barua au ujumbe unaongia"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Emoji ya bahasha ikiwa na mshale kwa juu unaoangalia chini, ishara ya tuma kwenye barua pepe"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Emoji ya kisanduku cha barua ambacho bendera yake imeshushwa, ikimaanisha hakuna barua au vifurushi vya kuondoka"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Emoji ya kisanduku cha barua ambacho bendera yake imeinuliwa, ikimaanisha kuna barua au vifurushi vya kuondoka"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Emoji ya kisanduku cha barua kilichowazi ambacho bendera yake imeinuliwa, ikimaanisha kuna barua au vifurushi vya kuondoka"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Emoji ya kisanduku cha barua kilichowazi ambacho bendera yake imeshushwa, ikimaanisha hakuna barua au vifurushi vya kuondoka"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Emoji ya sanduku la posta"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Emoji ya king\'ora maalum au honi ipigwayo kuomba njia ili kuwahisha barua au vifurushi mahali husika"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Emoji ya Gazeti"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Emoji ya simu ya mkononi"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Emoji ya simu ya mkononi ikiwa na mshale upande wa kushoto unaooneshea kulia au uelekeo wa simu ilipo, ikiwakilisha tuma kwenye simu"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Emoji inayowakilisha hali ya mtetemo pekee, aghalabu kwenye maeneo kama maktaba, majumba ya ibada nk"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Emoji ya picha ya simu ikiwa katika hali ya kuzimwa"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Emoji ya simu ikiwa ndani ya duara na msitari umepita kati kati, ikimaanisha matumizi ya simu hayaruhusiwi kwenye eneo hilo"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Emoji ya michi kwenye sehemu ya kijisanduku cha mnara wa simu, kikiwakilisha nguvu ya mawimbi yaliyopo"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Emoji ya kamera"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Emoji ya kamera ya kuchukulia video"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Emoji ya televisheni"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Emoji ya redio"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Emoji ya kanda ya video"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Emoji ya mishale inayoelekea kulia ikiwa imepishana"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Emoji ya mishale iliyochorwa kufuata mwendo saa kama duara mmoja ukielekea kulia na mwingine kushoto, ikimaanisha kujirudia kwa tendo husika"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Emoji ya mishale iliyochorwa kufuata mwendo saa kama duara mmoja ukielekea kulia na mwingine kushoto, huku kukiwa na namba moja iliyondani ya duara juu yake  ikimaanisha kujirudia mara moja tu kwa tendo husika"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Emoji ya mishale iliyochorwa kufuata mwendo saa kama duara mmoja ukielekea juu na mwingine chini, ikimaanisha rudia tena tendo husika aghalabu kwenye kupakia programu za vifaa"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Emoji ya mishale iliyochorwa kwa mwendo wa kinyume saa kama duara mmoja ukielekea juu na mwingine chini, ambayo huwakilisha kurudia kwa tendo husika"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Emoji ya mduara uliozungukwa na vistari vifupi ikimaanisha ung\'avu kiasi kidogo, aghalabu kwenye kompyuta au simu ya mkononi humaanisha matumizi ya mwangaza kidogo wa skrini"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Emoji ya mduara uliozungukwa na vistari virefu ikimaanisha ung\'avu sana, aghalabu kwenye kompyuta au simu ya mkononi humaanisha matumizi ya mwangaza mkubwa wa skrini"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Emoji ya spika ikiwa na alama ya mstari wa kukata, aghalabu kwenye matumizi ya simu au kompyuta humaanisha kuzima matumizi ya sauti"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Emoji ya spika"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Emoji ya spika ikiwa na alama ya wimbi moja la sauti, aghalabu kwenye matumizi ya simu au kompyuta humaanisha matumizi ya sauti ya chini"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Emoji ya spika ikiwa na alama ya mawimbi matatu ya sauti, aghalabu kwenye matumizi ya simu au kompyuta humaanisha matumizi ya sauti ya juu"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Emoji ya betri"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Emoji ya plagi ya umeme"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Emoji ya lenzi ikiwa imeegemea upande wa kushoto"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Emoji ya lenzi ikiwa imeegemea upande wa kulia"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Emoji ya kufuli na kalamu ya wino, aghalabu kwenye nyaraka za kielectroniki humaanisha ni inayolindwa na imefungwa"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Emoji ya kufuli na ufunguo"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Emoji ya ufunguo"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Emoji ya kufuli"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Emoji ya kufuli lililofunguliwa"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Emoji ya kengele"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Emoji ya kengele ikiwa na alama ya mstari wa kukata, aghalabu kwenye matumizi ya simu au kompyuta humaanisha kuzima matumizi ya sauti"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Emoji ya alamisho"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Emoji ya kiungo"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Emoji ya kitufe cha redio"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Emoji yenye neno back na mshale unaoonesha kushoto ukiwa juu yake, aghalabu ikimaanisha rudi nyuma, nenda mwanzo wa wimbo, filamu, hadithi nk"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"Emoji yenye neno end na mshale unaoonesha kushoto ukiwa juu yake, ikimaanisha nenda mwisho wa jambo, ingawa yaweza pia kumaanisha rudi nyuma, nenda mwanzo wa wimbo, filamu, hadithi nk kwenye matumizi ya hangout na android"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"Emoji ya neno On na mshale unaoonesha pande zote ukiwa juu yake, ikimaanisha uamuzi wa kusonga mbele kwa furaha, au njia zote zitakufikisha kwenye lengo iwe ya kushoto au kulia"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Emoji yenye neno Soon na mshale unaoonyesha upande wa kulia ukiwa juu yake, ikimaanisha jambo, au tukio litatokea baada ya muda mfupi"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Emoji yenye neno Top na mshale unaoonyesha juu ukiwa juu yake, ikimaanisha nenda juu aghalabu kwenye kurasa za tovuti nk"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Emoji ya namba kumi na nane ikiwa ndani ya duara na msitari umepita kati kati, ikimaanisha matumizi ya kitu husika hayaruhusiwi kwa mtu wa chini ya umri wa miaka kumi na minane"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Emoji ya kitufe cha kibodi chenye namba kumi"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Emoji ya kitufe cha kibodi kwa ajili ya kugeuza herufi kuwa kubwa"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Emoji ya kitufe cha kibodi kwa ajili ya kugeuza herufi kuwa ndogo"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Emoji ya kitufe cha kibodi kwa ajili ya kupata uandishi wa namba"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Emoji ya kitufe cha kibodi kwa ajili ya kupata uandishi wa alama"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Emoji ya kitufe cha kibodi kwa ajili ya kupata uandishi wa herufi"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Emoji ya moto"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Emoji ya tochi ya umeme"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Emoji ya spana inayorekebishika kuweza kufunga nati za ukubwa mbali mbali"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Emoji ya nyundo"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Emoji ya nati na bolti"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Emoji ya kisu cha jikoni"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Emoji ya bastola"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Emoji ya hadubini"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Emoji ya darubini maalum aghalabu kwa kuangalizia anga za mbali"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Emoji ya tufe la kioo"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Emoji ya nyota yenye pembe sita ikiwa na alama ya kitone kati kati"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Emoji ya alama ya kijapani inayowakilisha mtu ambaye bado hana uzoefu kama vile dereva ambaye bado anajifunza"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Emoji ya nembo ya nanga"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Emoji ya kitufe cha umbo la mraba cha rangi nyeusi"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Emoji ya kitufe cha umbo la mraba cha rangi nyeupe"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Emoji ya duara kubwa la rangi nyekundu"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Emoji ya duara kubwa la rangi ya samawati"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Emoji ya almasi kubwa ya rangi ya manjano"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Emoji ya almasi kubwa ya rangi ya samawati"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Emoji ya almasi ndogo ya rangi ya manjano"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Emoji ya almasi ndogo ya rangi ya samawati"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Emoji ya pembetatu ya rangi nyekundu inayoangalia juu"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Emoji ya pembetatu ya rangi nyekundu inayoangalia chini"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Emoji ya pembetatu ndogo ya rangi nyekundu inayoangalia juu"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Emoji ya pembetatu ndogo ya rangi nyekundu inayoangalia chini"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Emoji ya uso wa saa inayoonesha saa saba kamili"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Emoji ya uso wa saa inayoonesha saa nane kamili"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Emoji ya uso wa saa inayoonesha saa tisa kamili"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Emoji ya uso wa saa inayoonesha saa tisa kamili"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Emoji ya uso wa saa inayoonesha saa kumi na moja kamili"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Emoji ya uso wa saa inayoonesha saa kumi na mbili kamili"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Emoji ya uso wa saa inayoonesha saa moja kamili"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Emoji ya uso wa saa inayoonesha saa mbili kamili"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Emoji ya uso wa saa inayoonesha saa tatu kamili"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Emoji ya uso wa saa inayoonesha saa nne kamili"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Emoji ya uso wa saa inayoonesha saa tano kamili"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Emoji ya uso wa saa inayoonesha saa sita kamili"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Emoji ya uso wa saa inayoonesha saa saba na nusu"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Emoji ya uso wa saa inayoonesha saa nane na nusu"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Emoji ya uso wa saa inayoonesha saa tisa na nusu"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Emoji ya uso wa saa inayoonesha saa kumi na nusu"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Emoji ya uso wa saa inayoonesha saa kumi na moja na nusu"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Emoji ya uso wa saa inayoonesha saa kumi na mbili na nusu"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Emoji ya uso wa saa inayoonesha saa moja na nusu"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Emoji ya uso wa saa inayoonesha saa mbili na nusu"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Emoji ya uso wa saa inayoonesha saa tatu na nusu"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Emoji ya uso wa saa inayoonesha saa nne na nusu"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Emoji ya uso wa saa inayoonesha saa tano na nusu"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Emoji ya uso wa saa inayoonesha saa sita na nusu"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Emoji ya mlima Fuji"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Emoji ya mnara wa Tokyo"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Emoji ya Sanamu ya uhuru"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Emoji ya ramani ya Japan kama inavyoonekana katika bahari ya Pasifiki"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Emoji ya Moyai, sanamu ya kuchonga iliyopo katika mji wa Tokyo huko Japani kwenye kituo cha Shibuya, mahali ambapo hufikiwa na watu wengi wanaoitembelea nchi hiyo"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Emoji ya uso unaoonyesha furaha kwa tabasamu pana"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Emoji ya uso unaoonyesha furaha na macho ya tabasamu"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Emoji ya uso wenye machozi ya furaha"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Emoji ya uso wa tabasamu kwa kinywa wazi"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Emoji ya uso wa tabasamu kwa kinywa wazi na macho yaliyosinzia kwa tabasamu"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Emoji ya uso wa tabasamu kwa kinywa wazi na kijasho chembamba"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Emoji ya uso wa tabasamu kwa kinywa wazi na macho yaliyofinywa kwa nguvu"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Emoji ya uso wa tabasamu na duara ya mwangaza inayozunguka kichwa ikiwakilisha malaika"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Emoji ya uso wa tabasamu wenye pembe kichwani"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Emoji ya uso unaokonyeza"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Emoji ya uso wa tabasamu na macho yaliyosinzia kwa tabasamu"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Emoji ya uso wa kutamani chakula kitamu, pia aliyemaliza kula chakula kitamu hivyo anajilamba midomo"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Emoji ya uso unaoonesha hali ya kufarijika au kuridhishwa na hali ya mambo"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Uso wa tabasamu na macho yaliyoumbwa kama ua la moyo, ishara ya mapenzi mazito juu ya mtu au kitu kinachotazamwa"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Emoji ya uso wa tabasamu ukiwa umevaa miwani ya jua"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Emoji ya uso wa kicheko cha dharau"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Emoji ya uso wa kawaida"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Emoji ya uso usioonyesha hisia yoyote"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Emoji ya uso unaoonyesha kutoridhishwa na hali ya mambo"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Emoji ya uso wenye kijasho chembamba"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Emoji ya uso unaoonyesha mtu aliyezama katika lindi la mawazo"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Emoji ya uso unaoonyesha mtu aliyechanganyikiwa pengine kutokana na mambo kutokueleweka au kutokua katika utaratibu"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Emoji ya uso unaoonyesha hasira, kuuma midomo na kukunja sura pengine kutokana na mambo kutokuelewaeka au kutokua katika utaratibu"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Emoji ya uso unaoonyesha busu"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Emoji ya uso unaotupia busu"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Emoji ya uso ukibusu na macho ya tabasamu kwa hisia"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Emoji ya uso ukibusu na macho yaliyosinzia kwa hisia"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Emoji ya uso uliotoa ulimi nje"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Emoji ya uso uliotoa ulimi nje na macho ya kukonyeza"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Emoji ya uso uliotoa ulimi nje na macho yaliyofumbwa kwa nguvu"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Emoji ya uso unaoonyesha hali ya kukatishwa tamaa"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Emoji ya uso wa wasiwasi"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Emoji ya uso wa hasira"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Emoji ya uso uliokunja sura kwa manung\'uniko"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Emoji ya uso unaolia machozi"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Emoji ya uso unaoonyesha hali ya kuvumilia"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Emoji ya uso unaoonyesha ushindi"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Emoji ya uso unaoonyesha kukatishwa tamaa lakini umeamua kuridhika na hali ya mambo"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Emoji ya uso unaoonyesha hali ya kutopendezwa na jambo"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Emoji ya uso unaoonyesha hali ya uchungu"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Emoji inayoonyesha uso wa woga"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Emoji inayoonyesha uso wa uchovu wa hali ya juu"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Emoji inaoonyesha uso wa kusinzia"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Emoji ya uso unaoonyesha uchovu"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Emoji ya uso unaoonyesha kukunja sura kwa maumivu au kuchekesha meno yote yakionekana"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Emoji inayoonyesha uso wa kulia kwa nguvu"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Emoji ya uso ukiwa kinywa wazi"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Emoji ya uso unaosubiri kimya, kwa utulivu na subira"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Emoji ya uso ukiwa kinywa wazi na kijasho chembamba"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Emoji ya uso unaopiga kelele za woga"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Emoji ya uso unaoonyesha hali ya kushangazwa sana"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Emoji ya uso uliotumbua macho"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Emoji inayoonyesha uso wa mtu aliye katika hali tuli fofofo"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Emoji inayoonyesha uso wenye kizunguzungu"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Emoji inayoonyesha uso usio na mdomo"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Emoji ya uso uliovaa barakoa ya kitabibu"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Emoji ya uso wa paka unaoonyesha furaha na macho ya tabasamu"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Emoji ya uso wa paka wenye machozi ya furaha"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Emoji ya uso wa paka wenye tabasamu pana na mdomo wazi"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Uso wa paka wenye tabasamu na macho yaliyoumbwa kama ua la moyo, ishara ya mapenzi mazito juu ya mtu au kitu kinachotazamwa"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Emoji ya uso wa paka unaoonyesha hali ya dharau au mzaha"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Emoji ya uso wa paka ukibusu na macho yaliyosinzia kwa hisia"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Emoji ya uso wa paka uliokunja sura kwa manung\'uniko"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Emoji ya uso wa paka alieangua kilio"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Emoji ya uso wa paka unaoonyesha uchovu wa hali ya juu"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Emoji ya uso pamoja na ishara ya kuonyesha kutokukubaliana na kinachoendelea au kukataza kisiendelee, aghalabu hua na mtu aliyepishanisha mikono ili kufanya alama ya x"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Emoji ya uso na ishara ya sawa, kukubaliana na kinachofanyika au kukubali"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Emoji ya mtu aliyeinama sana, karibu na kusujudu"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Emoji ya tumbili aliyeaficha uso wake, hujulikana kama asiyetaka kuona mabaya yatakayotendeka"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Emoji ya tumbili aliyeziba masikio yake, hujulikana kama asiyetaka kusikia mabaya yatakayosemwa"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Emoji ya tumbili aliyefumba kinywa kwa mikono yake, hujulikana kama asiyetaka kunena baya lolote"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Emoji ya mtu mwenye furaha akiwa amenyanyua mkono mmoja"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Emoji ya mtu anayeshangilia akiwa amenyanyua mikono yote"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Emoji ya mtu anayeonyesha hali ya kutopendezwa na jambo"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Emoji ya mtu aliyekunja sura kwa manung\'uniko"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Emoji ya mtu amekunja mikono"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Emoji ya Roketi"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Emoji ya Helikopta"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Emoji ya Garimoshi"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Emoji ya gari linaloendeshwa kwenye reli maalum"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Emoji ya Treni iendayo kasi"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Emoji ya Treni iendayo kasi ikiwa na kichwa kilichotengenezwa kwa mfano wa risasi"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Emoji ya Treni"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Emoji ya metro, neno litalotumika aghalabu kuelezea mfumo wa usafirishaji watu kwenye miji kwa kutumia treni hasa ziendazo kasi za ardhini"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Emoji ya treni ya usafirishaji watu na mizigo miepesi kwenye miji kwa mwendo kasi"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Emoji ya Kituo"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Emoji ya treni ambayo hufanya kazi ndogo ndogo za kusafirisha abairia kwenye umbali mfupi"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Emoji ya behewa la treni ambayo hufanya kazi ndogo ndogo za kusafirisha abairia kwenye umbali mfupi"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Emoji ya basi"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Emoji ya basi linaloonekana kuja"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Trolleybus"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Emoji ya basi linaloendeshwa kwa nguvu za umeme"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Emoji ya basi dogo"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Emoji ya gari la wagonjwa"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Emoji ya gari lenye injini maalum kwa ajili ya kusukuma maji kwa mgandamizo kubwa ili kuzima moto"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Emoji ya gari la polisi"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Emoji ya gari la polisi linaloonekana kuja"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Emoji ya teksi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Emoji ya teksi inayoonekana kuja"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Emoji ya gari"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Emoji ya gari inayoonekana kuja"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Emoji ya gari kubwa uwezo mkubwa kidogo kuliko gari ya kawaida"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Emoji ya gari ya usambazi mizigo"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Emoji ya lori linalokokota tela au mtambaazi"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Emoji ya trekta"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Emoji ya reli moja, ambapo treni hupita kanakwamba imeivaa"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Emoji ya reli inayoelekea mlimani"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Emoji ya reli inayopita juu"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Emoji ya waya ambapo gari maalum kusafirisha watu au mizigo kwenye eneo lenye mlima mkali hupita kwenye waya huo kwa kuning\'inia"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Emoji ya muonekano wa mbali wa gari maalum la kusafirisha watu au mizigo kwenye eneo lenye mlima mkali na hupita kwenye waya"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Emoji ya meli"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Emoji ya mtumbwi"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Emoji ya boti inayoendeshwa kwa injini hivyo kua na kasi zaidi"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Emoji ya taa za trafiki zilizowekwa mlalo"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Emoji ya taa za kuongozea magari zilizowima"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Emoji inayoonyesha ishara ya kwamba ujenzi unaendelea"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Emoji ya taa ya gari ya polisi ambayo huzunguka ili kutoa ishara"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Emoji ya mti wa bendera ya pembetatu, aghalabu hutumika kama kiashiria"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Emoji ya mlango"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Emoji ya duara na msitari uliokingama umepita kati kati, ikiwa ni ishara ya katazo la kuingia katika eneo hilo"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Emoji ya sigara iliyowashwa inayotoa moshi"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Emoji ya duara lenye picha ya sigara ndani na msitari uliokatiza kati kati ya sigara, ikimaanisha uvutaji wa sigara hauruhusiwi kwenye eneo hilo"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Emoji ya ishara ya maelekezo ya mahali maalum pa kutupia taka"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Emoji ya ishara ya maelekezo ya kutotupa taka mahali hapo"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Emoji ya ishara ya maji ya bomba lakini yaliyo salama kwa matumizi hasa kunywa"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Emoji ya ishara ya maji ya bomba yasiyo salama kwa matumizi hasa kunywa"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Emoji ya baiskeli"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Emoji ya baiskeli ndani ya duara na msitari uliokingama umepita kati kati, ikiwa ni ishara ya katazo la baiskeli kuingia katika eneo hilo"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Emoji ya mwendesha baiskeli"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Emoji ya mwendesha baiskeli ya milimani"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Emoji ya mwenda kwa miguu"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Emoji ya mwenda kwa miguu ndani ya duara na msitari uliokingama umepita kati kati, ikiwa ni ishara ya katazo la waenda kwa miguu kuingia katika eneo hilo"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Emoji ya kivuko cha watoto"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Emoji ya ishara ya mwanaume, aghalabu kuashiria kua kitu au mahali husika ni maalum kwa ajili ya kutumiwa na wanaume"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Emoji ya ishara ya mwanamke, aghalabu kuashiria kua kitu au mahali husika ni maalum kwa ajili ya kutumiwa na wanawake"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Emoji inayoonesha picha ya mwanaume na mwanamke, aghalabu huwekwa kwenye maliwato ambazo zinaweza kutumika na watu wa jinsia zote"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Emoji ya mtoto"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Emoji ya msala, nyumba maalum ya kujihifadhi kwa haja"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Emoji ya neno WC, namna ya kiingereza kusema bafuni"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Emoji ya bomba la maji ya kuoga yanayotoka kwa rasha rasha, aghalabu huitwa bomba la mvua"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Emoji ya bafu"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Emoji ya hodhi la kuogea"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Emoji ya eneo linalodhibitiwa na pasipoti"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Emoji ya mamlaka ya forodha"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Emoji ya sehemu ya madai ya mizigo"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Emoji inayoonyesha mahali ambapo wanaweza kuchukua mizigo waliyoisahau"</string>
+</resources>
diff --git a/java/res/values-sw/strings-talkback-descriptions.xml b/java/res/values-sw/strings-talkback-descriptions.xml
index 6f84aa8..84c8d3a 100644
--- a/java/res/values-sw/strings-talkback-descriptions.xml
+++ b/java/res/values-sw/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Hakuna maandishi yaliyoingizwa"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> hurekebisha <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> kuwa <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> hufanya marekebisho otomatiki"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Hakuna pendekezo"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Herufi isiyojulikana"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Alama zaidi"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Herufi I kubwa, alama ya kitone inayowekwa sehemu ya juu ya herufi katika alfabeti za Kilatini na Kivietnamu"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Alama isiyojulikana"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Emoji isiyojulikana"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Kikaragosi cha uso uliochoka"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Kikaragosi cha uso ulio tahayari"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Kikaragosi cha uso uliovaa miwani ya jua"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Kikaragosi cha uso unaoonyesha kushangaa"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Kikaragosi cha uso unaoonyesha busu"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Kikaragosi cha uso uliokunja ndita"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Herufi mbadala zinapatikana"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Herufi mbadala huondolewa"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Mapendekezo mbadala yanapatikana"</string>
diff --git a/java/res/values-sw/strings.xml b/java/res/values-sw/strings.xml
index 8f2a662..e2471fb 100644
--- a/java/res/values-sw/strings.xml
+++ b/java/res/values-sw/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Tetema unabofya kitufe"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Toa sauti unapobofya kitufe"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Ibuka kitufe kinapobonyezwa"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Mapendeleo"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Akaunti na Faragha"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Mwonekano na Mipangilio"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Kuandika kwa Ishara"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Masahihisho ya maandishi"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Mahiri"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Mandhari"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Washa muundo wa kibodi inayogawanyika"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Usawazishaji wa Kibodi ya Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Usawazishaji umewashwa"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Sawazisha kamusi yako binafsi katika vifaa vyote"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Sawazisha sasa"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Futa data ya wingu"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Hufuta data yako iliyosawazishwa kutoka Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Data yako iliyosawazishwa itafutwa kutoka kwenye wingu. Je, una uhakika?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Futa"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Ghairi"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Kamusi yako ya kibinafsi itasawazishwa na nakala ihifadhiwe kwenye seva za Google. Maelezo ya takwimu ya marudio ya maneno yanaweza kukusanywa ili kusaidia kuboresha bidhaa zetu. Ukusanyaji na matumizi ya maelezo haya yatatii "<a href="https://www.google.com/policies/privacy">"Sera ya Faragha ya Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Tafadhali ongeza akaunti ya Google kwenye kifaa hiki ili uwashe kipengele hiki"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Badilisha hadi kwa mbinu zingine za ingizo"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Ufunguo wa kubadilisha lugha unashughulikia mbinu zingine za ingizo pia"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Kitufe cha kubadilisha lugha"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Onyesha wakati lugha ingizo mbalimbali zinapowezeshwa"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Onyesha kiashirio cha slaidi"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Onyesha ishara dhahiri unapotelezesha kutoka kwenye vitufe vya Shift au Symbol"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Kuchelewesha kutupa kitufe ibukizi"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Hakuna kuchelewa"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Chaguo-msingi"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Kamusi kuu"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Onyesha mapendekezo ya marekebisho"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Onyesha maneno yaliyopendekezwa wakati unachapa"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Onyesha kila wakati"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Onyesha katika hali wima"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Ficha kila wakati"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Zuia maneno yanayokera"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Usipendekeze maneno yanayoweza kukera"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Usahihishaji otomatiki"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Kibao cha kuweka data kwa kutamka"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Hakuna mbinu ya kuweka data kwa kutamka iliyowashwa. Angalia Lugha na mipangilio ya kuingiza data."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Sanidi mbinu za uingizaji"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Lugha za uingizaji"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Tuma maoni"</string>
-    <string name="select_language" msgid="3693815588777926848">"Lugha zinazoruhusiwa"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Lugha"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Usaidizi na maoni"</string>
+    <string name="select_language" msgid="5709487854987078367">"Lugha"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Gusa tena ili kuhifadhi"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Gusa hapa ili uhifadhi"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Kamusi inapatikana"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Maandhari ya kibodi"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Badili akaunti"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Hakuna akaunti zilizochaguliwa"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Kwa sasa unatumia <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"SAWA"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Ghairi"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Toka"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Chagua akaunti ya kutumia"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Kiingereza cha (Uingereza)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Kiingereza cha (Marekani)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Kihispania (Marekani)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Kiserbia (Kilatino)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Kiingereza (UK) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Kiingereza (US) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Kihispania (US) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Kiserbia (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (cha Jadi)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Kikriliki)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Kilatini)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Thabiti)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Hakuna lugha (Alfabeti)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabeti (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabeti (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabeti (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabeti (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Mandhari ya kibodi"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Mitindo maalum ya ingizo"</string>
     <string name="add_style" msgid="6163126614514489951">"Ongeza mtindo"</string>
     <string name="add" msgid="8299699805688017798">"Ongeza"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Washa"</string>
     <string name="not_now" msgid="6172462888202790482">"Sio sasa"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Mfumo sawa wa maingizo tayari upo: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Ubofyaji kitufe kunakochelewa"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Bonyeza kitufe cha muda wa kutetema"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Bonyeza kitufe cha kiwango cha sauti"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Soma faili ya kamusi ya nje"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Hakuna faili za kamusi katika folda ya Vilivyopakuliwa"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Chagua faili ya kamusi ya kusakinisha"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Ungependa kusakinisha faili hii ya <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Kulikuwa na hitilafu"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Ubofyaji kitufe kunakochelewa"</string>
     <string name="button_default" msgid="3988017840431881491">"Chaguo-msingi"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Karibu kwenye <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"kwa Kuandika kwa ishara"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Sasa unaweza kuchapa programu zako zote uzipendazo ukitumia <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Sanidi lugha za ziada"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Imemaliza"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Onyesha ikoni ya programu"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Onyesha ikoni ya programu kwenye kizinduzi"</string>
     <string name="app_name" msgid="6320102637491234792">"Programu ya kamusi"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Programu ya kamusi"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Huduma ya Kamusi"</string>
diff --git a/java/res/values-ta-rIN/strings-emoji-descriptions.xml b/java/res/values-ta-rIN/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..863449d
--- /dev/null
+++ b/java/res/values-ta-rIN/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"பதிப்புரிமைச் சின்னம்"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"பதிவுசெய்த சின்னம்"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"இரட்டை ஆச்சரியக்குறி"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"வியப்புக் கேள்வி குறி"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"வர்த்தக முத்திரை சின்னம்"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"தகவல் மூலம்"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"இடது-வலது அம்புக்குறி"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"மேல்-கீழ் அம்புக்குறி"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"வடமேற்கு அம்புக்குறி"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"வட-கிழக்கு அம்புக்குறி"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"தென்-கிழக்கு அம்புக்குறி"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"தென்-மேற்கு அம்புக்குறி"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"தூண்டிலுடன் இடப்புறம் நோக்கிய அம்புக்குறி"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"தூண்டிலுடன் வலப்புறம் நோக்கிய அம்புக்குறி"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"வாட்ச்"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"மணற்கடிகாரம்"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"வலப்பக்கத்தைச் சுட்டிக்காட்டும் இரட்டை முக்கோணம்"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"இடப்பக்கத்தைச் சுட்டிக்காட்டும் இரட்டை முக்கோணம்"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"மேலே சுட்டிக்காட்டும் இரட்டை முக்கோணம்"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"கீழே சுட்டிக்காட்டும் இரட்டை முக்கோணம்"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"அலார கடிகாரம்"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"சரியும் மணலுடன் மணற்கடிகாரம்"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"வட்டத்திற்குள் பெரிய இலத்தீன் எழுத்து m"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"சிறிய கருப்பு சதுரம்"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"சிறிய வெள்ளைச் சதுரம்"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"வலப்பக்கத்தைச் சுட்டிக்காட்டும் முக்கோணம்"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"இடப்பக்கத்தைச் சுட்டிக்காட்டும் முக்கோணம்"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"நடுத்தர வெள்ளை சதுரம்"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"மிதமான கருப்பு சதுரம்"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"மிதமான வெள்ளைநிறத்தில் சிறிய சதுரம்"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"மிதமான கருப்புநிறத்தில் சிறிய சதுரம்"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"கதிர்களுடன் கூடிய சூரியன்"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"மேகம்"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"கருப்பு தொலைபேசி"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"டிக் செய்யப்பட்ட தேர்வுபெட்டி"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"மழைத்துளிகளுடன் குடை"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"சூடான பானம்"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"வெள்ளை நிறத்தில் விரலை மேல்நோக்கிக் காட்டு"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"கள்ளங்கபடமற்ற சிரித்த முகம்"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"மேஷம்"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"ரிஷபம்"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"மிதுனம்"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"கடகம்"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"சிம்மம்"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"கன்னி"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"துலாம்"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"விருச்சிகம்"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"தனுசு"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"மகரம்"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"கும்பம்"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"மீனம்"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"கருப்புநிற ஸ்பேட்"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"கருப்புநிற கிளப்"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"கருப்புநிற இதயம்"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"கருப்புநிற வைரம்"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"ஆவிபறக்கும் பானம்"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"மறுசுழற்சி சின்னம்"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"சக்கர நாற்காலி சின்னம்"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"நங்கூரம்"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"எச்சரிக்கை அறிகுறி"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"உயர் மின்னழுத்த சின்னம்"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"நடுத்தர வெள்ளை வட்டம்"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"நடுத்தர கருப்பு வட்டம்"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"கால்பந்து"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"பேஸ்பால்"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"பனிமனிதன்"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"மேகத்தின் பின்னால் மறைந்திருக்கும் சூரியன்"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"ஓஃபியாகெஸ்"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"அனுமதி இல்லை"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"தேவாலயம்"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"நீரூற்று"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"துளையில் கொடி"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"உலாப் படகு"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"கூடாரம்"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"எரிபொருள் குழாய்"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"கருப்பு கத்தரிக்கோல்"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"அடர்வெள்ளை நிற டிக் சின்னம்"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"விமானம்"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"கடிதஉறை"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"கைவிரலை மடக்குதல்"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"கைகளைக் காட்டுதல்"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"வெற்றி சின்னம்"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"பென்சில்"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"எழுதுமுனை"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"அடர்கருப்பில் டிக் சின்னம்"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"அடர்ந்த பெருக்கல் குறி"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"ஒளிரும் நட்சத்திரம்"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"எட்டு முனை நட்சத்திரம்"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"எட்டு முனை கருப்பு நட்சத்திரம்"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"ஸ்னோஃபிளாக்"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"ஸ்பார்க்கல்"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"பெருக்கல் குறி"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"சதுரத்திற்குள் பெருக்கல் குறி"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"அடர் நிற கேள்விக் குறி"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"வெள்ளை நிற கேள்விக்குறி"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"வெள்ளை நிற ஆச்சரியக்குறி"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"அடர் நிற ஆச்சரியக்குறி"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"ஆழமான காதலுடன் உள்ள இதயம்"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"அடர் கருப்பில் கூட்டல் குறி"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"அடர் கருப்பில் கழித்தல் குறி"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"அடர் கருப்பில் வகுத்தல் குறி"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"அடர் கருப்பில் வலப்பக்கம் அம்பு"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"சுருள் வளைவு"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"இரட்டை சுருள் வளைவு"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"வலப்புறமாக மேல்நோக்கி வளைந்த அம்புக்குறி"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"வலப்புறமாக கீழ்நோக்கி வளைந்த அம்புக்குறி"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"இடப்புறம் நோக்கிய கருப்பு அம்புக்குறி"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"மேல்நோக்கிய கருப்பு அம்புக்குறி"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"கீழ்நோக்கிய கருப்பு அம்புக்குறி"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"பெரிய கருப்பு சதுரம்"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"பெரிய வெள்ளை சதுரம்"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"நடுத்தர வெள்ளை நட்சத்திரம்"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"பெரிய வட்டம்"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"அலைகுறி"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"பார்ட் ஆல்டெர்னேஷன் மார்க்"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"வட்டத்திற்குள் வாழ்த்துகள் ஐடியோகிராஃப்"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"வட்டத்திற்குள் ரகசியம் குறித்த ஐடியோகிராஃப்"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"மஹ்ஜோங் டைலில் ரெட் டிராகன்"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"சீட்டு அட்டையில் கருப்பு ஜோக்கர்"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"இரத்த வகை A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"இரத்த வகை B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"இரத்த வகை O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"பார்கிங் லாட்"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"இரத்த வகை AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"சதுரத்திற்குள் CL"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"சதுரத்திற்குள் cool"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"சதுரத்திற்குள் free"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"சதுரத்திற்குள் ID"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"சதுரத்திற்குள் new"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"சதுரத்திற்குள் N G"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"சதுரத்திற்குள் OK"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"சதுரத்திற்குள் SOS"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"சதுரத்திற்குள் up!"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"சதுரத்திற்குள் vs"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"சதுரத்திற்குள் கட்டகான கோகோ"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"சதுரத்திற்குள் கட்டகான சேவை"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"சதுரத்திற்குள் இலவச ஐடியோகிராஃப்"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"சதுரத்திற்குள் இடத்தைக் காட்டும் விரல் ஐடியோகிராஃப்"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"சதுரத்திற்குள் தடை ஐடியோகிராஃப்"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"சதுரத்திற்குள் காலியிடம் ஐடியோகிராஃப்"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"சதுரத்திற்குள் ஏற்றுக்கொள்ளல் ஐடியோகிராஃப்"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"சதுரத்திற்குள் முழுவதும் நிரம்பிய ஐடியோகிராஃப்"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"சதுரத்திற்குள் கட்டணம் செலுத்திய ஐடியோகிராஃப்"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"சதுரத்திற்குள் மாதந்திர ஐடியோகிராஃப்"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"சதுரத்திற்குள் விண்ணப்ப ஐடியோகிராஃப்"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"சதுரத்திற்குள் சலுகை ஐடியோகிராஃப்"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"சதுரத்திற்குள் வணிக ஐடியோகிராஃப்"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"வட்டத்திற்குள் நன்மைகள் ஐடியோகிராஃப்"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"வட்டத்திற்குள் ஐடியோகிராஃப் ஏற்றுக்கொள்ளல்"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"சூறாவளி"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"பனிமூட்டம்"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"மூடிய குடை"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"நட்சத்திரங்கள் சூழ்ந்த இரவு"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"மலைகளுக்கு இடையே சூரிய உதயம்"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"சூரிய உதயம்"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"அந்திப் பொழுதில் நகரமைப்பு"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"கட்டிடங்கள் மேல் சூரிய அஸ்தமனம்"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"வானவில்"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"இரவில் பாலம்"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"நீர் அலை"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"எரிமலை"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"பால்வெளி வீதி"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"உலக உருண்டையில் ஐரோப்பா ஆப்பிரிக்கா"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"உலக உருண்டையில் அமெரிக்கா"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"உலக உருண்டையில் ஆசியா ஆஸ்திரேலியா"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"தீர்க்க ரேகையுடன் உலக உருண்டை"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"அமாவாசை நிலவு"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"கால்பகுதி வளர்பிறை"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"அரைபாதி வளர்பிறை"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"முக்கால்பகுதி வளர்பிறை"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"முழு நிலவு"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"கால்பகுதி தேய்பிறை"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"அரைபாதி தேய்பிறை"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"முக்கால்பகுதி தேய்பிறை"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"பிறைவடிவம்"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"அமாவாசை நிலவு வடிவத்தில் முகம்"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"அரைபாதி வளர்பிறை வடிவத்தில் முகம்"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"அரைபாதி தேய்பிறை வடிவத்தில் முகம்"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"முழு நிலவு வடிவத்தில் முகம்"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"சூரியன் வடிவத்தில் முகம்"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"மின்னும் நட்சத்திரம்"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"வால்நட்சத்திரம்"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"பருப்பு வகையைச் சார்ந்த கொட்டை"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"நாற்று"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"பசுமையான மரம்"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"இலையுதிர் மரம்"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"பனைமரம்"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"சப்பாத்திக் கள்ளி"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"அல்லிப் பூ"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"செர்ரி மலர்"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"ரோஜா"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"செம்பருத்தி"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"சூரியகாந்தி"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"மலர்"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"தோலுரித்த மக்காச்சோளம்"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"நெற்பயிர்"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"மூலிகை"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"நான்கு இலை கொண்ட குளோவர்"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"மாப்பிள் இலை"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"மரத்திலிருந்து உதிர்ந்த இலை"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"காற்றில் அசைந்தாடும் இலை"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"காளான்"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"தக்காளி"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"கத்தரிக்காய்"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"திராட்சைகள்"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"முலாம்பழம்"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"தர்பூசணி"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"டேன்ஜெரின்"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"எலுமிச்சை"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"வாழைப் பழம்"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"அன்னாசிப்பழம்"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"சிவப்புநிற ஆப்பிள்"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"பச்சைநிற ஆப்பிள்"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"பேரி"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"பீச்சுப்பழம்"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"செர்ரி"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"ஸ்ட்ராபெரி"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"ஹம்பர்கர்"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"பீட்சாவின் ஒரு பகுதி"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"எலும்பைச் சுற்றிய இறைச்சி"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"கோழிக் கால்"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"அரிசி ரொட்டி"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"அரிசி பந்து"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"சமைத்த அரிசி"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"குழம்பும் சாதமும்"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"சூடான உணவுக் கிண்ணம்"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"பாஸ்தா"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"ரொட்டி"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"பிரெஞ்சு ஃபிரைஸ்"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"உருளைக்கிழங்கு வறுவல்"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"டாங்கோ"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"ஓடென்"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"சூஷி"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"இறால் வறுவல்"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"சுருள் வடிவ மீன் கேக்"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"வெண்ணிலா ஐஸ்கிரீம்"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"நுரைபொங்கும் ஐஸ்"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"ஐஸ்கிரீம்"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"டோனட்"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"குக்கீ"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"சாக்லேட் பார்"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"மிட்டாய்"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"லாலிபாப்"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"பாற்கூழ்"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"தேன் கிண்ணம்"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"சிறிய கேக்"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"உணவு பெட்டி"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"உணவு உள்ள கிண்ணம்"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"சமையல்"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"முட்கரண்டியும் கத்தியும்"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"கைப்பிடி இல்லாத தேநீர் கோப்பை"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"அரசி ஒயின் குடுவையும் கிண்ணமும்"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"ஒயின் டம்ளர்"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"மதுகலவை டம்ளர்"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"பழக்கலவைப் பானம்"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"பீர் குவளை"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"பீர் பொங்கும் குவளைகள்"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"குழந்தை பாட்டில்"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"ரிப்பன்"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"அழகாக மடித்த பரிசு"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"பிறந்த நாள் கேக்"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"சிரிக்கும் பூசணிக்காய் விளக்கு"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"கிறிஸ்துமஸ் மரம்"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"கிறிஸ்துமஸ் தாத்தா"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"வாணவேடிக்கைகள்"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"வானத்தில் வெடித்துசிதறும் பட்டாசு"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"பலூன்"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"விழாக்கால வண்ண வேடிக்கை"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"வண்ணக் காகிதங்களைத் தூவும் பந்து"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"தனபதா மரம்"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"குறுக்கே அமைந்த இரண்டு கொடிகள்"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"பைன் அலங்காரம்"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"ஜப்பான் பொம்மைகள்"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"மீன் வடிவ கொடிகள்"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"காற்றில் பறக்கும் மணி"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"முழுநிலவைக் கொண்டாடும் விழா"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"பள்ளிக்கூட பை"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"பட்டமளிப்புத் தொப்பி"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"கேராசூல் ஹார்ஸ்"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"பெர்ரிஸ் வீல்"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"ரோலர் கோஸ்டர்"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"மீன்பிடிக்கும் கருவியும் மீனும்"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"மைக்ரோஃபோன்"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"மூவி கேமரா"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"சினிமா"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"ஹெட்ஃபோன்"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"பெயிண்டிங் தட்டு"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"அரசு விழாக்களில் அணியப்படும் பிரிட்டிஷ் தொப்பி"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"சர்க்கஸ் கூடாரம்"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"டிக்கெட்"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"கிளாப்பர் பலகை"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"நிகழ் கலைகள்"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"வீடியோ கேம்"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"சரியான குறி"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"ஸ்லாட் இயந்திரம்"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"பில்லியர்ட்ஸ்"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"விளையாட்டுப் பகடை"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"பௌலிங்"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"அட்டைகள் விளையாட்டு"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"இசைக் குறிப்பு"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"பல இசைக் குறிப்புகள்"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"சாக்ஸோஃபோன்"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"கிட்டார்"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"இசை விசைப்பலகை"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"ட்ரம்பெட்"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"வயலின்"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"இசை ஸ்கோர்"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"ஓட்டப்பந்தய சட்டை"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"டென்னிஸ் மட்டை மற்றும் பந்து"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"பனிச்சறுக்கு பலகையும் கம்பும்"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"கூடைப்பந்து"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"சதுரங்க அமைப்பில் கொடி"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"பனிச்சறுக்குபவர்"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"ஓடுபவர்"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"அலையில் சாகசம் செய்பவர்"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"கோப்பை"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"குதிரைப் பந்தயம்"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"அமெரிக்க கால்பந்து"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"ரக்பி கால்பந்து"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"நீந்துபவர்"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"வீடு"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"தோட்டத்துடன் கூடிய வீடு"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"அலுவலகக் கட்டிடம்"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"ஜாப்பனீஸ் அஞ்சல் அலுவலகம்"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"ஐரோப்பிய அஞ்சல் அலுவலகம்"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"மருத்துவமனை"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"வங்கி"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"தன்னியக்கக் காசளிப்பு எந்திரம்"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"ஹோட்டல்"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"காதலர்களுக்கான ஹோட்டல்"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"24 மணிநேரக் கடை"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"பள்ளி"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"பல்பொருள் அங்காடி"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"ஆலை"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"சிவப்பு நிற விளக்கு"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"ஜாப்பனீஸ் கோட்டை"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"ஐரோப்பிய கோட்டை"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"எலி"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"மௌஸ்"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"எருது"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"நீர் எருமை"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"பசு"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"சிறுத்தை"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"முயல்"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"பூனை"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"டிராகன்"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"முதலை"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"திமிங்கலம்"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"நத்தை"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"பாம்பு"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"குதிரை"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"செம்மறிக் கிடா"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"ஆடு"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"செம்மறியாடு"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"குரங்கு"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"சேவல்"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"கோழி"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"நாய்"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"பன்றி"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"ஆண் பன்றி"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"யானை"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"ஆக்டோபஸ்"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"கடல் சங்கு"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"மூட்டைப் பூச்சி"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"எறும்பு"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"தேனீ"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"பெண் வண்டு"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"மீன்"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"மஞ்சளும் நீலமும் கலந்த மீன்"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"பலூன் மீன்"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"கடல் ஆமை"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"முட்டை ஓட்டிலிருந்து வெளிவரும் குஞ்சு"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"கோழிக்குஞ்சு"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"உற்றுப் பார்க்கும் கோழிக்குஞ்சு"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"பறவை"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"பென்குயின்"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"கோலா"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"பூடில்"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"ஒற்றை திமில் கொண்ட ஒட்டகம்"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"இரண்டு திமில்கள் கொண்ட ஆசிய ஒட்டகம்"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"டால்பின்"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"எலி முகம்"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"பசு முகம்"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"புலி முகம்"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"முயல் முகம்"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"பூனை முகம்"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"டிராகன் முகம்"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"நீரில் விளையாடும் திமிங்கிலம்"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"குதிரை முகம்"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"குரங்கு முகம்"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"நாய் முகம்"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"பன்றி முகம்"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"தவளை முகம்"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"வெள்ளெலி முகம்"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"ஓநாய் முகம்"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"கரடி முகம்"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"பாண்டாகரடி முகம்"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"பன்றி மூக்கு"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"கால் தடங்கள்"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"கண்கள்"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"காது"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"மூக்கு"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"வாய்"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"நாக்கு"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"வெள்ளை நிறத்தில் விரலை மேல்நோக்கிக் காட்டுதல்"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"வெள்ளை நிறத்தில் விரலை கீழ்நோக்கிக் காட்டுதல்"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"வெள்ளை நிறத்தில் விரலை இடப்பக்கம் நோக்கிக் காட்டுதல்"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"வெள்ளை நிறத்தில் விரலை வலப்பக்கம் நோக்கிக் காட்டுதல்"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"கைமடக்கி குத்துதல்"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"கை அசைத்தல்"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"அருமை என்பதைக் குறிக்கும் கை சின்னம்"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"கட்டை விரலை உயர்த்துதல்"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"கட்டை விரலைத் தாழ்த்துதல்"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"கைதட்டல்"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"கைகளை விரித்தல்"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"கிரீடம்"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"பெண்கள் அணியும் தொப்பி"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"கண்கண்ணாடிகள்"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"டை"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"டி-சர்ட்"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"ஜீன்ஸ்"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"ஆடை"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"கிமோனோ"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"நீச்சலுடை"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"பெண்கள் ஆடைகள்"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"பணப்பை"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"கைப்பை"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"சிறு பை"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"ஆண்கள் ஷூ"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"தடகள வீரருக்கான ஷூக்கள்"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"ஹை ஹீல் செருப்பு"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"பெண்கள் செருப்பு"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"பெண்கள் ஷூக்கள்"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"கால் தடங்கள்"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"மார்பளவு வரை நிழல்"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"மார்பளவு வரை நிழல்கள்"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"சிறுவன்"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"இளம் பெண்"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"ஆண்"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"பெண்"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"குடும்பம்"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"கைகோர்த்த ஆண்களும் பெண்களும்"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"கைகோர்த்த இரண்டு ஆண்கள்"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"கைகோர்த்த இரண்டு பெண்கள்"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"போலீஸ் அதிகாரி"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"முயல் காதுகளுடன் பெண்கள்"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"முக்காடு அணிந்த மணமகள்"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"பொன் நிறத்தில் முடி கொண்டவர்"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"ஒட்டுத்தொப்பியுடன் கூடிய ஆண்"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"தலைப்பாகை அணிந்தவர்"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"வயதானவர்"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"வயதான பெண்மணி"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"பேபி"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"கட்டுமான தொழிலாளி"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"இளவரசி"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"ஜாப்பனீஸ் பயமுறுத்தும் முகம்"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"ஜாப்பனீஸ் பூதம்"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"பேய்"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"குட்டித் தேவதை"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"வேற்று கிரகவாசி"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"ஏலியன் மான்ஸ்டர்"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"வருத்தத்துடன் இருக்கும் பேய்"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"மண்டை ஓடு"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"வழிகாட்டுபவர்"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"பாதுகாவலர்"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"டான்சர்"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"லிப்ஸ்டிக்"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"நெயில்பாலிஷ்"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"முக மசாஜ்"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"முடித்திருத்தம்"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"பார்பர் ஃபோல்"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"மருந்தூசி"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"மாத்திரை"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"முத்தம்"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"காதல் கடிதம்"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"மோதிரம்"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"மாணிக்கக் கல்"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"கிஸ்"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"மலர்க்கொத்து"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"காதலில் திளைக்கும் ஜோடி"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"திருமணம்"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"துடிக்கும் இதயம்"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"உடைந்த இதயம்"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"இரண்டு இதயங்கள்"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"ஜொலிக்கும் இதயம்"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"விரிவடையும் இதயம்"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"அம்புடன் இதயம்"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"நீலநிற இதயம்"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"பச்சைநிற இதயம்"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"மஞ்சள்நிற இதயம்"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"பர்பிள்நிற இதயம்"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"ரிப்பன் கட்டிய இதயம்"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"சுற்றும் இதயங்கள்"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"அலங்கார இதயம்"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"நடுவில் புள்ளியுடன் கூடிய வைர வடிவம்"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"மின்சார ஒளி விளக்கு"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"ஆங்கர் சின்னம்"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"வெடிகுண்டு"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"தூங்கும் சின்னம்"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"வெடித்தல்"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"வியர்வைக் கொட்டும் சின்னம்"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"நீர் விழுதல்"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"காற்றடிக்கும் சின்னம்"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"பைல் ஆஃப் ஃபு"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"மடக்கிய கை"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"தலைச்சுற்றல்"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"பேச்சு வடிவ பலூன்"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"சிந்தனை கொண்ட பலூன்"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"வெள்ளைநிறப் பூ"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"நூறு மதிப்பெண்கள்"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"பணப்பை"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"நாணயப் பரிமாற்றம்"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"பெரிய டாலர் குறியீடு"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"கிரெடிட் கார்டு"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"யென் குறியீடுடன் கூடிய வங்கிநோட்டு"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"டாலர் குறியீடுடன் கூடிய வங்கிநோட்டு"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"யூரோ குறியீடுடன் கூடிய வங்கிநோட்டு"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"பவுண்டு குறியீடுடன் கூடிய வங்கிநோட்டு"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"இறக்கைகள் உள்ள பணம்"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"யென் குறியீட்டுடன் மேல்நோக்கிய போக்கைக் கொண்ட விளக்கப்படம்"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"இருக்கை"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"தனிப்பட்ட கணினி"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"குறும்பெட்டி"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"குறு வட்டு"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"நெகிழ் வட்டு"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"ஆப்டிகல் வட்டு"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"டிவிடி"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"கோப்புறை"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"கோப்பின் திறந்த கோப்புறை"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"கீழே சுருட்டிய பக்கம்"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"மேலே லேசாக மடித்த பக்கம்"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"கேலெண்டர்"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"கிழிக்கும் வகையிலான கேலெண்டர்"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"கார்டில் அட்டவணை"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"மேல்நோக்கிய போக்கைக் கொண்ட விளக்கப்படம்"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"கீழ்நோக்கிய போக்கைக் கொண்ட விளக்கப்படம்"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"பார் விளக்கப்படம்"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"கிளிப்போர்டு"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"பின்"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"வட்ட வடிவ பின்"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"பேப்பர் கிளிப்"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"நேர் ரூலர்"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"முக்கோண ரூலர்"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"புத்தகக்குறி தாவல்கள்"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"லெட்ஜர்"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"நோட்புக்"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"அலங்கார கவர் நோட்புக்"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"மூடிய புத்தகம்"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"திறந்த புத்தகம்"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"பச்சைநிற கவர் புத்தகம்"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"நீலநிற கவர் புத்தகம்"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"ஆரஞ்சுநிற கவர் புத்தகம்"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"புத்தகங்கள்"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"பெயர் பேட்ஜ்"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"உருட்டு"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"மெமோ"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"ஃபோன் ரிசீவர்"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"பேஜர்"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"தொலைநகல் இயந்திரம்"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"சேட்டிலைட் ஆன்டெனா"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"பொது ஒலிபெருக்கி"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"அதிக சத்தம் கொடுக்கும் மெகாஃபோன்"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"அவுட்பாக்ஸ் தட்டு"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"இன்பாக்ஸ் தட்டு"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"பரிசு"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"மின்னஞ்சல் சின்னம்"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"உள்வரும் கடித உறை"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"கடித உறைக்கும் மேலே கீழ்நோக்கிய அம்புக்குறி"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"கீழே ஃபிளாக் உடன் கூடிய மூடப்பட்ட அஞ்சல் பெட்டி"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"மேலே ஃபிளாக் உடன் கூடிய மூடப்பட்ட அஞ்சல் பெட்டி"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"மேலே ஃபிளாக் உடன் கூடிய திறந்த அஞ்சல் பெட்டி"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"கீழே ஃபிளாக் உடன் கூடிய திறந்த அஞ்சல் பெட்டி"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"தபால் பெட்டி"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"தபால் ஹார்ன்"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"செய்தித்தாள்"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"மொபைல்"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"இடப் பக்கத்தில் வலப் புறம் நோக்கிய மொபைல்"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"அதிர்வு முறை"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"மொபைல் ஆஃப்"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"மொபைல் பயன்படுத்தக்கூடாது"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"கோடுகளுடன் ஆன்டெனா"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"கேமரா"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"வீடியோ கேமரா"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"தொலைக்காட்சி"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"ரேடியோ"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"வீடியோ கேசட்"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"பிணைந்த வலப்புறம் நோக்கிய அம்புகள்"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"கடிகாரத்திசையில் வலம் மற்றும் இடப் புறம் நோக்கிய திறந்த வட்ட அம்புகள்"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"கடிகாரத்திசையில் வட்டத்திற்குள் ஒன்று என எழுதப்பட்டதுடன் வலம் மற்றும் இடப் புறம் நோக்கிய திறந்த வட்ட அம்புகள்"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"கடிகாரத்திசையில் கீழ் மற்றும் மேல் நோக்கிய திறந்த வட்ட அம்புகள்"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"எதிர்கடிகாரத்திசையில் கீழ் மற்றும் மேல் நோக்கிய திறந்த வட்ட அம்புகள்"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"ஒளிர்வு குறைவு சின்னம்"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"ஒளிர்வு அதிகம் சின்னம்"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"ரத்து என்னும் ஸ்ட்ரோக்குடன் ஸ்பீக்கர்"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"ஸ்பீக்கர்"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"ஒற்றை ஒலி அலையுடன் ஸ்பீக்கர்"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"மூன்று ஒலி அலைகளுடன் ஸ்பீக்கர்"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"பேட்டரி"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"மின்செருகி"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"இடது பக்கத்திலிருக்கும் உருப்பெருக்கி கண்ணாடி"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"வலது பக்கத்திலிருக்கும் உருப்பெருக்கி கண்ணாடி"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"மை பேனா மூலம் பூட்டுதல்"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"பூட்டிய பூட்டும் சாவியும்"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"சாவி"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"பூட்டு"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"திறந்த பூட்டு"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"மணி"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"ரத்து என்னும் ஸ்ட்ரோக்குடன் மணி"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"புக்மார்க்"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"இணைப்பு சின்னம்"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"ரேடியோ பட்டன்"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"மேலே பின்நோக்கிய இடப்புற அம்பு"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"End என்பதற்கு மேலே இடப்புறம் நோக்கிய அம்பு"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"On க்கு அடுத்து ஆச்சர்யக்குறியுடன், மேலே இடப்புற அம்பு"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Soon க்கு மேலே வலப்புறம் நோக்கிய அம்பு"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Top க்கு மேலே, மேல்நோக்கிய அம்பு"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"18 வயதுக்குட்பட்டவர்களுக்கு அனுமதி இல்லை"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"பெரிய எழுத்தில் பத்து"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"இலத்தீன் பெரிய எழுத்துகளுக்கான உள்ளீட்டு சின்னம்"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"இலத்தீன் சிறிய எழுத்துகளுக்கான உள்ளீட்டு சின்னம்"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"எண்களுக்கான உள்ளீட்டு சின்னம்"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"சின்னங்களுக்கான உள்ளீட்டுச் சின்னம்"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"இலத்தீன் எழுத்துகளுக்கான உள்ளீட்டு சின்னம்"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"நெருப்பு"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"டார்ச்"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"குறடு"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"சுத்தி"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"திருகும் அச்சாணியும்"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"கத்தி"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"துப்பாக்கி"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"நுண்பெருக்கி"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"தொலைநோக்கி"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"கண்ணாடி பந்து"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"ஒற்றைப் புள்ளியுடன் ஆறு பாகம் கொண்ட நட்சத்திரம்"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"தொடக்கத்திற்கான ஜாப்பனீஸ் சின்னம்"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"திரிசூல சின்னம்"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"கருப்பு சதுர பட்டன்"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"வெள்ளை சதுர பட்டன்"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"பெரிய சிவப்பு வட்டம்"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"பெரிய நீல வட்டம்"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"பெரிய ஆரஞ்சுநிற வைரம்"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"பெரிய நீலநிற வைரம்"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"சிறிய ஆரஞ்சுநிற வைரம்"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"சிறிய நீலநிற வைரம்"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"மேல்நோக்கிய சிவப்பு முக்கோணம்"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"கீழ்நோக்கிய சிவப்பு முக்கோணம்"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"மேல்நோக்கிய சிறிய சிவப்பு முக்கோணம்"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"கீழ்நோக்கிய சிறிய சிவப்பு முக்கோணம்"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"ஒரு மணியைக் காட்டும் கடிகாரம்"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"இரண்டு மணியைக் காட்டும் கடிகாரம்"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"மூன்று மணியைக் காட்டும் கடிகாரம்"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"நான்கு மணியைக் காட்டும் கடிகாரம்"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"ஐந்து மணியைக் காட்டும் கடிகாரம்"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"ஆறு மணியைக் காட்டும் கடிகாரம்"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"ஏழு மணியைக் காட்டும் கடிகாரம்"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"எட்டு மணியைக் காட்டும் கடிகாரம்"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"ஒன்பது மணியைக் காட்டும் கடிகாரம்"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"பத்து மணியைக் காட்டும் கடிகாரம்"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"பதினொரு மணியைக் காட்டும் கடிகாரம்"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"பன்னிரண்டு மணியைக் காட்டும் கடிகாரம்"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"ஒரு மணி, 30 நிமிடத்தைக் காட்டும் கடிகாரம்"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"இரண்டு மணி, 30 நிமிடத்தைக் காட்டும் கடிகாரம்"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"மூன்று மணி, 30 நிமிடத்தைக் காட்டும் கடிகாரம்"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"நான்கு மணி, 30 நிமிடத்தைக் காட்டும் கடிகாரம்"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"ஐந்து மணி, 30 நிமிடத்தைக் காட்டும் கடிகாரம்"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"ஆறு மணி, 30 நிமிடத்தைக் காட்டும் கடிகாரம்"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"ஏழு மணி, 30 நிமிடத்தைக் காட்டும் கடிகாரம்"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"எட்டு மணி, 30 நிமிடத்தைக் காட்டும் கடிகாரம்"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"ஒன்பது மணி, 30 நிமிடத்தைக் காட்டும் கடிகாரம்"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"பத்து மணி, 30 நிமிடத்தைக் காட்டும் கடிகாரம்"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"பதினொரு மணி, 30 நிமிடத்தைக் காட்டும் கடிகாரம்"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"பன்னிரண்டு மணி, 30 நிமிடத்தைக் காட்டும் கடிகாரம்"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"ஃபுஜி மலை"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"டோக்கியோ கோபுரம்"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"சுதந்திரத் தேவி சிலை"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"ஜப்பான் வரைபடத்தின் நிழல்"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"மொயாய்"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"புன்னகைக்கும் முகம்"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"சிரித்த கண்களுடன் புன்னகைக்கும் முகம்"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"ஆனந்தக் கண்ணீருடன் முகம்"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"திறந்த வாயுடன் சிரிக்கும் முகம்"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"திறந்த வாய்ப் புன்னகை, புன்னகைக்கும் கண்களுடன் முகம்"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"திறந்த வாய்ப் புன்னகையும் குளிர்ந்த வியர்வையும் உள்ள முகம்"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"திறந்த வாய்ப் புன்னகை, இறுக்கமாக மூடப்பட்ட கண்களுடன் முகம்"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"ஒளிவட்டத்துடன் சிரித்த முகம்"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"கொம்புகளுடன் சிரித்த முகம்"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"கண்ணடிக்கும் முகம்"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"சிரித்த கண்களுடன் சிரித்த முகம்"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"ருசியான உணவு சுவைக்கும் முகம்"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"நிம்மதி முகம்"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"இதய வடிவிலான கண்களுடன் சிரித்த முகம்"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"சூரியக்கண்ணாடிகள் அணிந்த சிரித்த முகம்"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"பகட்டாகச் சிரிக்கும் முகம்"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"வாயை நேராக இறுக்கமாக மூடிய முகம்"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"உணர்ச்சியற்ற முகம்"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"அதிருப்தியுடன் கூடிய முகம்"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"வியர்வைச் சொட்டும் முகம்"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"வருத்தமான முகம்"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"குழப்பமான முகம்"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"கண்களை மூடிக்கொண்டு அழும் முகம்"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"முத்தமிடும் முகம்"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"பறக்கும் முத்தம்"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"சிரித்த கண்களுடன் முத்தமிடும் முகம்"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"மூடிய கண்களுடன் முத்தமிடும் முகம்"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"நாக்கை வெளித்தள்ளிய முகம்"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"நாக்கை வெளித்தள்ளியதுடன் கண் சிமிட்டும் முகம்"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"நாக்கை வெளித்தள்ளி இறுக்கமாக மூடப்பட்ட கண்களுடன் முகம்"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"ஏமாற்றமடைந்த முகம்"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"கவலைதோய்ந்த முகம்"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"கோபமான முகம்"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"மஞ்சள்நிற கோப முகம்"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"அழும் முகம்"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"உதவியில்லாமல் இருப்பதை வெளிப்படுத்தும் முகம்"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"பெரும் மூச்சு விடும் முகம்"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"வியர்வை சொட்டும் சோக முகம்"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"கண்களும் வாயும் திறந்த நிலையில் இருக்கும் முகம்"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"கலங்கின முகம்"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"பயந்த முகம்"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"பயந்து அழும் முகம்"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"தூங்கும் முகம்"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"சோர்வான முகம்"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"பற்களைக் கடிக்கும் முகம்"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"சத்தமாக அழும் முகம்"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"திறந்த வாயுடன் முகம்"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"ஆச்சரியத்தை வெளிப்படுத்தும் முகம்"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"திறந்த வாயுடன், வியர்வைச் சொட்டும் முகம்"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"இரண்டு கைகளைக் கன்னத்தில் வைத்து கத்தும் முகம்"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"அதிர்ச்சியடைந்த முகம்"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"சிவந்த கன்னங்களுடன் அதிர்ச்சியடைந்த முகம்"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"தூங்கும் முகம்"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"தலைச்சுற்றும் முகம்"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"வாய் இல்லாத முகம்"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"மருத்துவ முகமூடி அணிந்த முகம்"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"சிரிக்கும் கண்களுடன் புன்னகைக்கும் பூனை முகம்"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"ஆனந்த கண்ணீருடன் பூனை முகம்"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"திறந்த வாய் கொண்ட சிரித்த முகத்துடன் பூனை"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"இதய வடிவிலான கண்களுடன் கூடிய சிரித்த முகப் பூனை"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"பகட்டு புன்னகையுடன் பூனை முகம்"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"மூடிய கண்களுடன் முத்தமிடும் பூனை முகம்"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"எரிச்சலான பூனை முகம்"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"அழும் பூனை முகம்"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"பயந்த பூனை முகம்"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"நல்ல பாவனை இல்லாத முகம்"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"சரி சொல்லும் பாவனையுடன் முகம்"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"மிகப் பணிவானவர்"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"தீயதைப் பார்க்காத குரங்கு"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"தீயதைக் கேட்காத குரங்கு"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"தீயதைப் பேசாத குரங்கு"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"மகிழ்ச்சியில் ஒரு கையை உயர்த்துபவர்"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"விழாவில் இரு கைகளையும் மேலே உயர்த்துதல்"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"வருத்தமாக இருப்பவர்"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"மஞ்சள்நிறத்தில் கோபமான முகம் கொண்டவர்"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"கைகளை மடக்கியவர்"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"ராக்கெட்"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"ஹெலிகாப்டர்"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"நீராவி ரயில்"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"ரயில்வே கார்"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"அதிவேக ரயில்"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"புல்லட் மூக்குடன் கூடிய அதிவேக ரயில்"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"ரயில்"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"மெட்ரோ"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"ஒளியுடன் கூடிய ரயில்"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"நிலையம்"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"டிராம்"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"டிராம் கார்"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"பேருந்து"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"வந்துகொண்டிருக்கும் பேருந்து"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"நகர்வூந்து"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"பேருந்து நிறுத்தும்"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"மினிபஸ்"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"ஆம்புலன்ஸ்"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"தீ வண்டி"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"போலீஸ் கார்"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"வந்துகொண்டிருக்கும் போலீஸ் கார்"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"டாக்ஸி"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"வந்துகொண்டிருக்கும் டாக்ஸி"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"வாகனம்"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"வந்துகொண்டிருக்கும் வாகனம்"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"கேளிக்கை வாகனம்"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"டெலிவரி வண்டி"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"கனரக லாரி"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"டிராக்டர்"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"மோனோரயில்"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"மலைப் பாதை ரயில்"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"சஸ்பென்ஸன் ரயில்பாதை"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"மலை கேபிள்வழி"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"ஏரியல் டிராம் வழி"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"கப்பல்"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"துடுப்பு படகு"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"விரைவுபடகு"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"கிடைமட்ட ட்ராஃபிக் விளக்கு"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"செங்குத்து ட்ராஃபிக் விளக்கு"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"கட்டுமான சின்னம்"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"போலீஸ் கார்களில் சுழலும் விளக்கு"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"கம்பத்தில் முக்கோண கொடி"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"கதவு"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"அனுமதி இல்லை சின்னம்"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"புகைச் சின்னம்"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"புகைபிடிக்கக்கூடாது சின்னம்"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"குப்பையை அதன் இடத்தில் போடும் சின்னம்"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"குப்பையைப் போடக்கூடாது சின்னம்"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"கிண்ணத்தில் குடிநீர் சின்னம்"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"குடிப்பதற்கான தண்ணீர் அல்ல"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"சைக்கிள்"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"சைக்கிளுக்கு அனுமதி இல்லை"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"சைக்கிள் ஓட்டுபவர்கள்"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"மலையில் சைக்கிள் ஓட்டுபவர்கள்"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"பாதசாரிகள்"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"பாதசாரிகளுக்கு அனுமதி இல்லை"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"குழந்தைகள் கடக்கும் வழி"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"ஆண்கள் சின்னம்"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"பெண்கள் சின்னம்"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"கழிவறை"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"குழந்தை சின்னம்"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"கழிப்பிடம்"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"வாட்டர் குளோசட்"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"பொழிவு"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"குளிப்பது"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"குளிக்கும் தொட்டி"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"பாஸ்போர்ட் கட்டுப்பாடு"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"சுங்கம்"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"உடைமை கோருமிடம்"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"உடைமை விடுமிடம்"</string>
+</resources>
diff --git a/java/res/values-ta-rIN/strings-talkback-descriptions.xml b/java/res/values-ta-rIN/strings-talkback-descriptions.xml
index a65c8de..bc01472 100644
--- a/java/res/values-ta-rIN/strings-talkback-descriptions.xml
+++ b/java/res/values-ta-rIN/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"உரை எதுவும் உள்ளிடப்படவில்லை"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> இலிருந்து <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> ஆக <xliff:g id="KEY_NAME">%1$s</xliff:g> திருத்துகிறது"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> தன்னியக்க திருத்தத்தைச் செயல்படுத்துகிறது"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"பரிந்துரை எதுவுமில்லை"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"அறியப்படாத எழுத்துக்குறி"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"ஷிஃப்டு"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"கூடுதல் குறியீடுகள்"</string>
@@ -35,7 +36,7 @@
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"சின்னங்கள்"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"எழுத்துகள்"</string>
     <string name="spoken_description_to_numeric" msgid="4560261331530795682">"எண்கள்"</string>
-    <string name="spoken_description_settings" msgid="7281251004003143204">"அமைப்புகள்"</string>
+    <string name="spoken_description_settings" msgid="7281251004003143204">"அமைப்பு"</string>
     <string name="spoken_description_tab" msgid="8210782459446866716">"டேப்"</string>
     <string name="spoken_description_space" msgid="5908716896642059145">"ஸ்பேஸ்"</string>
     <string name="spoken_description_mic" msgid="6153138783813452464">"குரல் உள்ளீடு"</string>
@@ -58,7 +59,7 @@
     <string name="keyboard_mode_date" msgid="6597407244976713364">"தேதி"</string>
     <string name="keyboard_mode_date_time" msgid="3642804408726668808">"தேதி மற்றும் நேரம்"</string>
     <string name="keyboard_mode_email" msgid="1239682082047693644">"மின்னஞ்சல்"</string>
-    <string name="keyboard_mode_im" msgid="3812086215529493501">"செய்தியிடல்"</string>
+    <string name="keyboard_mode_im" msgid="3812086215529493501">"மெசேஜ்"</string>
     <string name="keyboard_mode_number" msgid="5395042245837996809">"எண்"</string>
     <string name="keyboard_mode_phone" msgid="2486230278064523665">"ஃபோன்"</string>
     <string name="keyboard_mode_text" msgid="9138789594969187494">"உரை"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"பேரெழுத்து I, மேல் புள்ளி"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"அறியப்படாத குறியீடு"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"அறியப்படாத ஈமோஜி"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"அலுத்துப்போன முகம்"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"சங்கடமான முகம்"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"குளிர்கண்ணாடி அணிந்த முகம்"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"ஆச்சரியமான முகம்"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"முத்தமிடும் முகம்"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"கோபமான முகம்"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"மாற்று எழுத்துக்குறிகள் உள்ளன"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"மாற்று எழுத்துக்குறிகள் நிராகரிக்கப்பட்டன"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"மாற்று பரிந்துரைகள் உள்ளன"</string>
diff --git a/java/res/values-ta-rIN/strings.xml b/java/res/values-ta-rIN/strings.xml
index 14f64c6..d0f3aee 100644
--- a/java/res/values-ta-rIN/strings.xml
+++ b/java/res/values-ta-rIN/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"விசையழுத்தின்போது அதிர்வுரு"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"விசையழுத்தத்தின்போது ஒலியெழுப்பு"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"விழை அழுத்தத்தின்போது பாப்அப் செய்"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"விருப்பங்கள்"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"கணக்குகள் &amp; தனியுரிமை"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"தோற்றம் &amp; தளவமைப்புகள்"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"சைகைத் தட்டச்சு"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"உரை திருத்தம்"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"மேம்பட்டவை"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"தீம்"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"பிரிக்கப்பட்ட விசைப்பலகையை இயக்கு"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google விசைப்பலகை ஒத்திசைவு"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"ஒத்திசைவு இயக்கப்பட்டது"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"எல்லா சாதனங்களிலும் தனிப்பட்ட அகராதியை ஒத்திசைக்கவும்"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"இப்போது ஒத்திசைத்தல்"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"மேகக்கணி தரவை நீக்கவும்"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Google இலிருந்து ஒத்திசைத்த தரவை நீக்கும்"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"ஒத்திசைத்தத் தரவு மேகக்கணியிலிருந்து நீக்கப்படும். நிச்சயமாக நீக்கவா?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"நீக்கு"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"ரத்துசெய்"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"உங்கள் தனிப்பட்ட அகராதி ஒத்திசைக்கப்பட்டு, Google சேவையகங்களில் காப்புப் பிரதி எடுக்கப்படும். எங்கள் தயாரிப்புகளை மேம்படுத்த உதவ, சொல் உபயோகத்தின் புள்ளிவிவரத் தகவல் சேகரிக்கப்படலாம். எல்லா தகவல்களின் சேகரிப்பும், உபயோகமும் "<a href="https://www.google.com/policies/privacy">"Google இன் தனியுரிமைக் கொள்கைக்கு"</a>" இணங்கியபடியே இருக்கும்."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"இந்த அம்சத்தை இயக்க, சாதனத்தில் Google கணக்கைச் சேர்க்கவும்"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"பிற உள்ளீட்டு முறைகளுக்கு மாறு"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"மொழி மாற்றல் விசை பிற உள்ளீட்டு முறைகளையும் கட்டுப்படுத்துகிறது"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"மொழி மாற்ற விசை"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"பல உள்ளீட்டு மொழிகள் இயக்கப்பட்டிருக்கும்போது காட்டு"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"இழுத்தல் குறிப்பானைக் காட்டு"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"ஷிப்ட் அல்லது குறியீட்டு விசைகளிலிருந்து இழுத்து செல்லும்போது காட்சித் தடத்தைக் காட்டு"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"விசை பாப்அப் விலக்கின் தாமதம்"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"தாமதம் வேண்டாம்"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"இயல்புநிலை"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"முதன்மை அகராதி"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"திருத்துதல் விருப்பங்களைக் காட்டு"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"உள்ளிடும்போது பரிந்துரைக்கப்பட்ட வார்த்தைகளைக் காட்டும்"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"எப்போதும் காட்டு"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"நிலைப்பதிப்பு பயன்முறையில் காட்டு"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"எப்போதும் மறை"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"தீங்குவிளைவிக்கும் வார்த்தைகளை தடு"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"தீங்குவிளைவிக்க சாத்தியமுள்ளதான வார்த்தைகளைப் பரிந்துரைக்க வேண்டாம்"</string>
     <string name="auto_correction" msgid="7630720885194996950">"தன்னியக்க திருத்தம்"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"குரல் உள்ளீட்டு விசை"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"குரல் உள்ளீட்டு முறைகள் எதுவும் இயக்கப்படவில்லை. மொழி &amp; உள்ளீட்டு அமைப்புகளைச் சரிபார்க்கவும்."</string>
     <string name="configure_input_method" msgid="373356270290742459">"உள்ளீட்டு முறைகளை உள்ளமைத்தல்"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"உள்ளீட்டு மொழிகள்"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"கருத்தை அனுப்பு"</string>
-    <string name="select_language" msgid="3693815588777926848">"உள்ளீட்டு மொழிகள்"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"மொழிகள்"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"உதவி &amp; கருத்து"</string>
+    <string name="select_language" msgid="5709487854987078367">"மொழிகள்"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"சேமிக்க தொடவும்"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"சேமிக்க இங்கு தொடவும்"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"அகராதி உள்ளது"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"விசைப்பலகை தீம்"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"கணக்குகளை மாற்று"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"கணக்குகள் எதையும் தேர்வுசெய்யவில்லை"</string>
+    <string name="account_selected" msgid="2846876462199625974">"இப்போது <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>ஐப் பயன்படுத்துகிறீர்கள்"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"சரி"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"ரத்துசெய்"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"வெளியேறு"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"பயன்படுத்த, கணக்கைத் தேர்ந்தெடு"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"ஆங்கிலம் (யூகே)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"ஆங்கிலம் (யூஎஸ்)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"ஸ்பானிஷ் (யூஎஸ்)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"ஹிங்கிலிஷ்"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"செர்பியன் (லத்தீன்)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"ஆங்கிலம் (யூகே) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"ஆங்கிலம் (யூஎஸ்) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"ஸ்பானிஷ் (யூஎஸ்) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"ஹிங்கிலிஷ் (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"செர்பியன் (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (பாரம்பரியமானது)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (சிரிலிக்)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (இலத்தீன்)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (வசதியான)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"மொழியில்லை (அகரவரிசை)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"அகரவரிசை (க்வெர்டி)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"அகரவரிசை (க்வெர்ட்ச்)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"அகரவரிசை (கொல்மக்)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"அகரவரிசை (பிசி)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"எமோஜி"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"விசைப்பலகை தீம்"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"தனிப்பயன் உள்ளீட்டு நடைகள்"</string>
     <string name="add_style" msgid="6163126614514489951">"நடையைச் சேர்"</string>
     <string name="add" msgid="8299699805688017798">"சேர்"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"இயக்கு"</string>
     <string name="not_now" msgid="6172462888202790482">"இப்பொழுது வேண்டாம்"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"இதே உள்ளீட்டு நடை ஏற்கனவே உள்ளது: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"விசையின் நீண்ட அழுத்தத்தின் தாமதம்"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"விசையழுத்த அதிர்வின் காலஅளவு"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"விசையழுத்த ஒலியளவு"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"வெளிப்புற அகராதி கோப்பைப் படித்தல்"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"பதிவிறக்கங்கள் கோப்புறையில் அகராதி கோப்புகள் எதுவும் இல்லை"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"நிறுவுவதற்கு அகராதி கோப்பைத் தேர்ந்தெடுக்கவும்"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> மொழிக்கான இந்தக் கோப்பை நிச்சயமாக நிறுவ வேண்டுமா?"</string>
-    <string name="error" msgid="8940763624668513648">"பிழை ஏற்பட்டது"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"விசையின் நீண்ட அழுத்தத்தின் தாமதம்"</string>
     <string name="button_default" msgid="3988017840431881491">"இயல்புநிலை"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> பயன்பாட்டிற்கு வரவேற்கிறோம்"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"சைகை உள்ளீடு மூலம்"</string>
@@ -154,15 +153,13 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> பயன்பாடு மூலம் உங்களுக்கு விருப்பமான எல்லா பயன்பாடுகளிலும் நீங்கள் உள்ளிடலாம்."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"கூடுதல் மொழிகளை உள்ளமை"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"முடிந்தது"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"பயன்பாட்டு ஐகானைக் காட்டு"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"துவக்கியில் பயன்பாட்டு ஐகானைக் காட்டும்"</string>
     <string name="app_name" msgid="6320102637491234792">"அகராதி வழங்கி"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"அகராதி வழங்கி"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"அகராதி சேவை"</string>
     <string name="download_description" msgid="6014835283119198591">"அகராதியின் புதுப்பிப்பு தகவல்"</string>
     <string name="dictionary_settings_title" msgid="8091417676045693313">"துணை அகராதிகள்"</string>
     <string name="dictionary_install_over_metered_network_prompt" msgid="3587517870006332980">"அகராதி கிடைக்கிறது"</string>
-    <string name="dictionary_settings_summary" msgid="5305694987799824349">"அகராதிகளுக்கான அமைப்புகள்"</string>
+    <string name="dictionary_settings_summary" msgid="5305694987799824349">"அகராதிகளுக்கான அமைப்பு"</string>
     <string name="user_dictionaries" msgid="3582332055892252845">"பயனர் அகராதிகள்"</string>
     <string name="default_user_dict_pref_name" msgid="1625055720489280530">"பயனர் அகராதி"</string>
     <string name="dictionary_available" msgid="4728975345815214218">"அகராதி கிடைக்கிறது"</string>
@@ -177,13 +174,13 @@
     <string name="message_loading" msgid="5638680861387748936">"ஏற்றுகிறது..."</string>
     <string name="main_dict_description" msgid="3072821352793492143">"முதன்மை அகராதி"</string>
     <string name="cancel" msgid="6830980399865683324">"ரத்துசெய்"</string>
-    <string name="go_to_settings" msgid="3876892339342569259">"அமைப்புகள்"</string>
+    <string name="go_to_settings" msgid="3876892339342569259">"அமைப்பு"</string>
     <string name="install_dict" msgid="180852772562189365">"நிறுவு"</string>
     <string name="cancel_download_dict" msgid="7843340278507019303">"ரத்துசெய்"</string>
     <string name="delete_dict" msgid="756853268088330054">"நீக்கு"</string>
-    <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"உங்கள் மொபைலில் தேர்ந்தெடுத்த மொழிக்கு அகராதி உள்ளது.&lt;br/&gt; உங்கள் உள்ளீட்டு அனுபவத்தை மேம்படுத்த <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> அகராதியைப்  &lt;b&gt;பதிவிறக்குவதைப்&lt;/b&gt; பரிந்துரைக்கிறோம்.&lt;br/&gt; &lt;br/&gt; 3G இல் பதிவிறக்கத்திற்கு ஒன்று அல்லது இரண்டு நிமிடங்கள் ஆகலாம். உங்களிடம் &lt;b&gt;வரம்பில்லா தரவு திட்டம்&lt;/b&gt; இல்லையெனில் கட்டணம் விதிக்கப்படலாம்.&lt;br/&gt; உங்களிடம் எந்தத் தரவு திட்டம் உள்ளது என்பது உறுதியாகத் தெரியவில்லையெனில், பதிவிறக்கத்தைத் தானாகத் துவங்க, Wi-Fi இணைப்பைக் கண்டறிவதைப் பரிந்துரைக்கிறோம்.&lt;br/&gt; &lt;br/&gt; உதவிக்குறிப்பு: உங்கள் மொபைல் சாதனத்தில் &lt;b&gt;அமைப்புகள்&lt;/b&gt; மெனுவில் உள்ள &lt;b&gt;மொழி &amp; உள்ளீடு&lt;/b&gt; என்பதற்குச் செலவதன் மூலம் அகராதிகளைப் பதிவிறக்கலாம் மற்றும் அகற்றலாம்."</string>
+    <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"உங்கள் மொபைலில் தேர்ந்தெடுத்த மொழிக்கு அகராதி உள்ளது.&lt;br/&gt; உங்கள் உள்ளீட்டு அனுபவத்தை மேம்படுத்த <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> அகராதியைப்  &lt;b&gt;பதிவிறக்குவதைப்&lt;/b&gt; பரிந்துரைக்கிறோம்.&lt;br/&gt; &lt;br/&gt; 3G இல் பதிவிறக்கத்திற்கு ஒன்று அல்லது இரண்டு நிமிடங்கள் ஆகலாம். உங்களிடம் &lt;b&gt;வரம்பில்லா தரவு திட்டம்&lt;/b&gt; இல்லையெனில் கட்டணம் விதிக்கப்படலாம்.&lt;br/&gt; உங்களிடம் எந்தத் தரவு திட்டம் உள்ளது என்பது உறுதியாகத் தெரியவில்லையெனில், பதிவிறக்கத்தைத் தானாகத் துவங்க, வைஃபை இணைப்பைக் கண்டறிவதைப் பரிந்துரைக்கிறோம்.&lt;br/&gt; &lt;br/&gt; உதவிக்குறிப்பு: உங்கள் மொபைல் சாதனத்தில் &lt;b&gt;அமைப்பு&lt;/b&gt; மெனுவில் உள்ள &lt;b&gt;மொழி &amp; உள்ளீடு&lt;/b&gt; என்பதற்குச் செலவதன் மூலம் அகராதிகளைப் பதிவிறக்கலாம் மற்றும் அகற்றலாம்."</string>
     <string name="download_over_metered" msgid="1643065851159409546">"இப்போது பதிவிறக்கு (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>மெ.பை.)"</string>
-    <string name="do_not_download_over_metered" msgid="2176209579313941583">"Wi-Fi வழியாகப் பதிவிறக்கு"</string>
+    <string name="do_not_download_over_metered" msgid="2176209579313941583">"வைஃபை வழியாகப் பதிவிறக்கு"</string>
     <string name="dict_available_notification_title" msgid="4583842811218581658">"<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> மொழிக்கு அகராதி கிடைக்கிறது"</string>
     <string name="dict_available_notification_description" msgid="1075194169443163487">"மதிப்பாய்வு செய்து பதிவிறக்க அழுத்தவும்"</string>
     <string name="toast_downloading_suggestions" msgid="6128155879830851739">"பதிவிறக்குகிறது: <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> க்கான பரிந்துரைகள் விரைவில் தயாராகிவிடும்."</string>
diff --git a/java/res/values-te-rIN/strings-emoji-descriptions.xml b/java/res/values-te-rIN/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..f8ea9ea
--- /dev/null
+++ b/java/res/values-te-rIN/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"కాపీరైట్ గుర్తు"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"రిజిష్టర్డ్ గుర్తు"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"డబుల్ ఆశ్చర్యార్థక గుర్తు"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"ఆశ్చర్యార్థక ప్రశ్నార్థక గుర్తు"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"వ్యాపారచిహ్నం గుర్తు"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"సమాచార మూలం"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"ఎడమ కుడి రెండువైపులా చూపే బాణం"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"ఎగువ దిగువ రెండువైపులా చూపే బాణం"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"వాయువ్య దిశవైపు చూపే బాణం"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"ఈశాన్య దిశవైపు చూపే బాణం"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"ఆగ్నేయ దిశవైపు చూపే బాణం"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"నైరుతి దిశవైపు చూపే బాణం"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"హుక్ గల ఎడమవైపుకి చూపే బాణం"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"హుక్ గల కుడివైపుకి చూపే బాణం"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"గడియారం"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"అవర్ గ్లాస్"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"నలుపు రంగులో కుడివైపుకి చూపే డబుల్ త్రిభుజం"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"నలుపు రంగులో ఎడమవైపుకి చూపే డబుల్ త్రిభుజం"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"నలుపు రంగులో పైకి చూపే డబుల్ త్రిభుజం"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"నలుపు రంగులో క్రిందికి చూపే డబుల్ త్రిభుజం"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"అలారం గడియారం"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"ఇసుకను ప్రవహింపచేసే అవర్ గ్లాస్"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"వలయంలో ఉన్న లాటిన్ క్యాపిటల్ అక్షరం m"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"నలుపు రంగు చిన్న చతురస్రం"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"తెలుపు రంగు చిన్న చతురస్రం"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"నలుపు రంగులో కుడివైపుకి చూపే త్రిభుజం"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"నలుపు రంగులో ఎడమవైపుకి చూపే త్రిభుజం"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"తెలుపు రంగు మధ్యస్థాయి చతురస్రం"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"నలుపు రంగు మధ్యస్థాయి చతురస్రం"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"తెలుపు రంగు మధ్యస్థాయి చిన్న చతురస్రం"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"నలుపు రంగు మధ్యస్థాయి చిన్న చతురస్రం"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"నలుపు రంగు సూర్యకిరణాలు"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"మేఘం"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"నలుపు రంగు టెలిఫోన్"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"ఎంచుకున్న బ్యాలెట్ పెట్టె"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"వర్షపు చినుకులు పడుతున్న గొడుగు"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"వేడి పానీయాలు"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"తెలుపు రంగులో చూపుడు వేలుని పైకి చూపుతున్నట్లు"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"తెలుపు రంగులో నవ్వుతున్న ముఖం"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"మేషం"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"వృషభం"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"మిథునం"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"కర్కాటకం"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"సింహం"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"కన్య"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"తులం"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"వృశ్చికం"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"ధనస్సు"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"మకరం"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"కుంభం"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"మీనం"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"నలుపు బ్లాక్ స్పేడ్ సూట్"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"నలుపు క్లబ్ సూట్"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"నలుపు హార్ట్ సూట్"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"నలుపు డైమండ్ సూట్"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"వేడి ఊటలు"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"నలుపు రంగు సార్వత్రిక పునర్వినియోగ చిహ్నం"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"చక్రాల కుర్చీ చిహ్నం"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"లంగరు"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"హెచ్చరిక చిహ్నం"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"అధిక వోల్టేజీ చిహ్నం"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"మధ్యలో తెలుపు రంగు వలయం"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"మధ్యలో నలుపు రంగు వలయం"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"సాకర్ బాల్"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"బేస్‌బాల్"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"మంచు లేకుండా మంచుమనిషి"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"మేఘం వెనుక దాగిన సూర్యుడు"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"అఫ్యూకస్"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"ప్రవేశం లేదు"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"చర్చి"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"ఫౌంటైన్"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"రంధ్రంలో ఉంచిన జెండా"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"తెరచాప గల పడవ"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"గుడారం"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"ఇంధన పంపు"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"నలుపు రంగు కత్తెరలు"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"తెలుపు రంగు పెద్ద పరిమాణ ఎంపిక చేసుకునే గుర్తు"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"విమానం"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"ఎన్వలప్"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"పైకి ఎత్తి చూపుతున్న పిడికిలి"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"పైకి ఎత్తి చూపుతున్న చెయ్యి"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"విజయ సంకేతాన్ని చూపుతున్న చెయ్యి"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"పెన్సిల్"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"నలుపు రంగు పాళీ"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"పెద్ద పరిమాణంలో ఎంపిక చేసుకునే గుర్తు"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"పెద్ద పరిమాణంలో గుణకారం గుర్తు x"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"మెరుపులు"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"ఎనిమిది ఆకులు గల నక్షత్రం గుర్తు"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"ఎనిమిది వైపులకు చూపే నలుపు రంగు నక్షత్రం"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"స్నోఫ్లేక్"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"తళతళమని మెరిసే మెరుపు"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"క్రాస్ గుర్తు"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"నెగిటివ్ చతురస్రంలో ఉన్న క్రాస్ గుర్తు"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"నలుపు రంగు ప్రశ్నార్థక గుర్తు ఆర్నమెంట్"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"తెలుపు రంగు ప్రశ్నార్థక గుర్తు ఆర్నమెంట్"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"తెలుపు రంగు ఆశ్చర్యార్థక గుర్తు ఆర్నమెంట్"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"పెద్ద పరిమాణ ఆశ్చర్యార్థక చిహ్నం"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"ముదురు నలుపు రంగులో ఉన్న హృదయాకారం"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"పెద్ద పరిమాణ కూడిక గుర్తు"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"పెద్ద పరిమాణ తీసివేత గుర్తు"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"పెద్ద పరిమాణ భాగహారం గుర్తు"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"నలుపు రంగులో కుడివైపుకి చూపే బాణం"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"మెలితిరిగి ఉన్న వంపు"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"రెండుసార్లు మెలితిరిగి ఉన్న వంపు"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"కుడివైపుకి చూపుతూ ఆపై ఎగువకి వంగిన బాణం"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"కుడివైపు చూపుతూ ఆపై దిగువకి వంగిన బాణం"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"ఎడమవైపుకి చూపే నలుపు రంగు బాణం"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"ఎగువకి చూపే నలుపు రంగు బాణం"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"దిగువకి చూపే నలుపు రంగు బాణం"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"నలుపు రంగు పెద్ద పరిమాణ చతురస్రం"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"తెలుపు రంగు పెద్ద పరిమాణ చతురస్రం"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"తెలుపు రంగు మధ్యస్థ పరిమాణ నక్షత్రం"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"అత్యంత పెద్ద పరిమాణ వలయం"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"తరంగ రూపంలో ఉండే డాష్"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"పరివర్తన గుర్తు భాగం"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"వృత్తంలో ఉన్న అభినందన ఇడియోగ్రాఫ్"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"వృత్తంలో ఉన్న రహస్యం ఇడియోగ్రాఫ్"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"మహ్‌జాంగ్ టైల్ ఎరుపు రంగు డ్రాగన్"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"పేకాటలోని నలుపు రంగు జోకర్"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"రక్తం రకం A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"రక్తం రకం B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"రక్తం రకం O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"పార్కింగ్ లాట్"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"రక్తం రకం AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"చతురస్రంలో ఉన్న CL"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"చతురస్రంలో ఉన్న కూల్"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"చతురస్రంలో ఉన్న ఫ్రీ"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"చతురస్రంలో ఉన్న ID"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"చతురస్రంలో ఉన్న న్యూ"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"చతురస్రంలో ఉన్న N G"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"చతురస్రంలో ఉన్న ఓకే"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"చతురస్రంలో ఉన్న SOS"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"ఆశ్చర్యార్థక గుర్తుతో చతురస్రంలో ఉన్న అప్"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"చతురస్రంలో ఉన్న వర్సెస్"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"చతురస్రంలో ఉన్న కటకానా హియర్"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"చతురస్రంలో ఉన్న కటకానా సర్వీస్"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"చతురస్రంలో ఉన్న ఛార్జ్-ఫ్రీ ఇడియోగ్రాఫ్"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"చతురస్రంలో ఉన్న రిజర్వ్ చేసిన సీటు ఇడియోగ్రాఫ్"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"చతురస్రంలో ఉన్న నిషేధ ఇడియోగ్రాఫ్"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"చతురస్రంలో ఉన్న ఖాళీ ఇడియోగ్రాఫ్"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"చతురస్రంలో ఉన్న ఆమోద ఇడియోగ్రాఫ్"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"చతురస్రంలో ఉన్న పూర్తి స్వాధీనత ఇడియోగ్రాఫ్"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"చతురస్రంలో ఉన్న చెల్లింపు ఇడియోగ్రాఫ్"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"చతురస్రంలో ఉన్న నెలవారీ ఇడియోగ్రాఫ్"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"చతురస్రంలో ఉన్న అనువర్తనం ఇడియోగ్రాఫ్"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"చతురస్రంలో ఉన్న తగ్గింపు ఇడియోగ్రాఫ్"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"చతురస్రంలో ఉన్న వ్యాపారంలో ఇడియోగ్రాఫ్"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"వృత్తంలో ఉన్న ప్రయోజన ఇడియోగ్రాఫ్"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"వృత్తంలో ఉన్న ఆమోద ఇడియోగ్రాఫ్"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"తుఫాను"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"పొగమంచు పూరితం"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"మూసివేయబడిన గొడుగు"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"నక్షత్రాలతో కూడిన రాత్రి"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"పర్వతాల నడుమ సూర్యోదయం"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"సూర్యోదయం"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"సంధ్యా సమయంలో నగర ఆకాశహర్మ్యం"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"భవనాల నడుమ సూర్యాస్తమయం"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"ఇంద్రధనస్సు"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"రాత్రివేళలో కనబడే వంతెన"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"నీటి అల"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"అగ్నిపర్వతం"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"పాలపుంత"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"భూమిపై కనిపించే యూరప్-ఆఫ్రికా"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"భూమిపై కనిపించే అమెరికాలు"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"భూమిపై కనిపించే ఆసియా-ఆస్ట్రేలియా"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"ధృవరేఖలు గల భూమి"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"అమావాస్య చంద్రుని గుర్తు"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"నెల వంక వృద్ధి చెందుతున్న గుర్తు"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"మొదటి పావు భాగంలో ఉండే చంద్రుని గుర్తు"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"బోర్లించిన గిన్నె ఆకారంలో ఉండే చంద్రుని ఆకృతి వృద్ధి చెందుతున్న గుర్తు"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"పౌర్ణమి గుర్తు"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"బోర్లించిన గిన్నె ఆకారంలో ఉండే చంద్రుని ఆకృతి క్షీణిస్తున్న గుర్తు"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"చివరి పావు భాగంలో ఉండే చంద్రుని గుర్తు"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"నెల వంక క్షీణిస్తున్న గుర్తు"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"నెల వంక"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"ముఖం గల అమావాస్య చంద్రుడు"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"ముఖం గల మొదటి పావు భాగంలో ఉండే చంద్రుడు"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"ముఖం గల చివరి పావు భాగంలో ఉండే చంద్రుడు"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"ముఖం గల పౌర్ణమి చంద్రుడు"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"ముఖం గల సూర్యుడు"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"మెరుస్తున్న నక్షత్రం"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"ఉల్క"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"చెస్ట్‌నట్"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"మొలక"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"ఎప్పుడూ పచ్చగా ఉండే చెట్టు"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"ఆకులు రాల్చే చెట్టు"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"తాటి చెట్టు"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"కాక్టస్"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"తులిప్"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"చెర్రీ బ్లాసమ్"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"గులాబీ"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"మందారం"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"సూర్యకాంతి"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"బ్లాసమ్"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"మొక్కజొన్న కంకి"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"వరి వంగడం"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"మూలిక"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"నాలుగు ఆకుల క్లోవర్"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"మాపుల్ ఆకు"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"క్రింద పడే ఆకు"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"గాలికి ఊగుతున్న ఆకు"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"పుట్టగొడుగు"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"టమోట"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"వంకాయ"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"ద్రాక్షపళ్లు"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"ఖర్బూజాపండు"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"పుచ్చకాయ"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"నారింజ పండు"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"నిమ్మకాయ"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"అరటి పండు"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"అనాస పండు"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"ఎరుపు రంగు యాపిల్ పండు"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"పచ్చ యాపిల్ పండు"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"బేరీ పండు"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"పీచ్"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"చెర్రీలు"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"స్ట్రాబెర్రీ"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"హ్యాంబర్గర్"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"పిజ్జా ముక్క"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"ఎముక మాంసం"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"కోడి కాలు"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"రైస్ క్రాకర్"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"రైస్ బాల్"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"వండిన అన్నం"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"కూర మరియు అన్నం"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"స్టీమింగ్ బౌల్"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"స్పఘెట్టి"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"రొట్టె"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"ఫ్రెంచ్ ఫ్రైస్"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"కాల్చిన తీపి బంగాళాదుంప"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"డాంగో"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"ఓడెన్"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"సుషి"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"వేయించిన రొయ్య"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"సుడులు తిరిగినట్లు ఉండే ఆకారం గల చేప కేకు"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"మృదువైన ఐస్ క్రీమ్"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"షేవ్డ్ ఐస్"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"ఐస్ క్రీమ్"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"డోనట్"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"కుకీ"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"చాక్లెట్ బార్"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"క్యాండీ"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"లాలిపాప్"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"కస్టర్డ్"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"తేనె కలశం"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"కేకు ముక్క"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"బెంటో బాక్స్"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"ఆహారం గల పాత్ర"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"వంట"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"ఫోర్క్ మరియు కత్తి"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"హ్యాండిల్ లేని టీకప్పు"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"సేక్ సీసా మరియు కప్పు"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"వైన్ గ్లాసు"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"కాక్‌టెయిల్ గ్లాసు"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"ఉష్ణమండల పానీయం"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"బీరు కప్పు"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"క్లింక్‌మని శబ్దం చేస్తున్న బీరు కప్పులు"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"చిన్నపిల్లలు పాలు తాగే సీసా"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"రిబ్బన్"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"ప్యాక్ చేసిన బహుమతి"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"పుట్టినరోజు కేకు"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"గుమ్మడికాయ రూప లాంతరు"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"క్రిస్మస్ చెట్టు"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"ఫాదర్ క్రిస్మస్"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"బాణసంచా"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"బాణాసంచా మెరుపులు"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"బెలూన్"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"పార్టీ పాపర్"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"కాన్ఫెట్టి బాల్"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"టనబాటా చెట్టు"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"క్రాస్డ్ ఫ్లాగ్స్"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"దేవదారు వృక్షంతో చేసిన అలంకరణ"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"జపనీస్ బొమ్మలు"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"కార్ప్ స్ట్రీమర్"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"విండ్ చైమ్"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"చంద్రుణ్ణి చూస్తూ చేసుకునే వేడుక"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"పాఠశాలకు తీసుకెళ్లే సంచి"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"గ్రాడ్యుయేషన్ టోపీ"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"రంగులరాట్నంలోని గుర్రం"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"ఫెర్రిస్ వీల్"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"రోలర్ కోస్టర్"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"చేపలు పట్టడానికి వాడే పోల్ మరియు చేప"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"మైక్రోఫోన్"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"చలన చిత్రాలను తీసే కెమెరా"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"చలన చిత్రం"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"హెడ్‌ఫోన్"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"కళాకారుని రంగుల ఫలకం"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"పొడవాటి టోపీ"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"సర్కస్ గుడారం"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"టిక్కెట్"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"క్లాప్ కొట్టే పలక"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"ప్రదర్శక కళలు"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"వీడియో గేమ్"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"డైరెక్ట్ హిట్"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"స్లాట్ మెషీన్"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"బిలియర్డ్స్"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"ఆటకు ఉపయోగించే పాచిక"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"బౌలింగ్"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"ఫ్లవర్ ప్లేయింగ్ కార్డ్స్"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"సంగీత స్వరం"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"బహుళ సంగీత స్వరాలు"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"సాక్సోఫోన్"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"గిటార్"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"సంగీత కీబోర్డ్"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"ట్రంపెట్"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"వయోలిన్"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"సంగీత స్కోర్"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"సాష్ గల పరిగెత్తడానికి వాడే షర్టు"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"టెన్నిస్ రాకెట్ మరియు బంతి"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"స్కీ మరియు స్కీ బూటు"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"బాస్కెట్‌బాల్ మరియు హూప్"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"చదరపు గడుల జెండా"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"స్నోబోర్డర్"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"రన్నర్"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"సర్ఫర్"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"ట్రోఫీ"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"గుర్రపు పందెం"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"అమెరికన్ ఫుట్‌బాల్"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"రగ్బీ ఫుట్‌బాల్"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"ఈతగాడు"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"ఇంటి భవనం"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"ఉద్యానవనం ఉన్న ఇల్లు"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"కార్యాలయ భవనం"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"జపనీస్ తపాలా కార్యాలయం"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"యూరోపిన్ తపాలా కార్యాలయం"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"ఆసుపత్రి"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"బ్యాంక్"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"ఆటోమేటెడ్ టెల్లర్ మెషీన్"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"హోటల్"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"లవ్ హోటల్"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"వసతి దుకాణం"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"పాఠశాల"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"కిరాణా దుకాణం"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"కర్మాగారం"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"ఇజకాయా లాంతరు"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"జపనీస్ కోట"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"యూరోపియన్ కోట"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"ఎలుక"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"చిట్టెలుక"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"ఎద్దు"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"నీటి దున్నపోతు"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"ఆవు"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"చిరుతపులి"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"కుందేలు"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"పిల్లి"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"డ్రాగన్"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"మొసలి"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"తిమింగలం"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"నత్త"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"పాము"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"గుర్రం"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"పొట్టేలు"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"మేక"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"గొర్రె"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"కోతి"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"కోడిపుంజు"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"కోడి"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"కుక్క"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"పంది"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"అడవి పంది"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"ఏనుగు"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"ఆక్టోపస్"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"సర్పిలాకార గుల్ల"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"నల్లి"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"చీమ"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"తేనెటీగ"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"ఆడ పేడపురుగు"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"చేప"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"ఉష్ణమండల చేప"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"బ్లోఫిష్"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"సముద్రపు తాబేలు"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"పొదుగుతున్న కోడిపిల్ల"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"చిన్న కోడిపిల్ల"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"ముందువైపుకి ముఖాన్ని చూపుతున్న చిన్న కోడిపిల్ల"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"పక్షి"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"పెంగ్విన్"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"కోలా"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"పూడ్లే"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"డ్రోమేడరి క్యామెల్"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"బ్యాక్ట్రియాన్ క్యామెల్"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"డాల్ఫిన్"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"చిట్టెలుక ముఖం"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"ఆవు ముఖం"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"పులి ముఖం"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"కుందేలు ముఖం"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"పిల్లి ముఖం"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"డ్రాగన్ ముఖం"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"నీటిని చిమ్ముతున్న తిమింగలం"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"గుర్రం ముఖం"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"కోతి ముఖం"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"కుక్క ముఖం"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"పంది ముఖం"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"కప్ప ముఖం"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"చుంచు ముఖం"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"తోడేలు ముఖం"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"ఎలుగుబంటి ముఖం"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"పాండా ముఖం"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"పంది ముక్కు"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"జంతువుల పాదముద్రలు"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"కళ్లు"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"చెవి"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"ముక్కు"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"నోరు"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"నాలుక"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"తెలుపు రంగులో చూపుడు వేలుని వెనుకభాగంతో పాటు పైకి చూపుతున్నట్లు"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"తెలుపు రంగులో చూపుడు వేలుని వెనుకభాగంతో పాటు క్రిందికి చూపుతున్నట్లు"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"తెలుపు రంగులో చూపుడు వేలుని వెనుకభాగంతో పాటు ఎడమవైపుకి చూపుతున్నట్లు"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"తెలుపు రంగులో చూపుడు వేలుని వెనుకభాగంతో పాటు కుడివైపుకి చూపుతున్నట్లు"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"పిడికిలి బిగించి చూపే సంకేతం"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"చెయ్యి ఊపుతున్నట్లు చూపే సంకేతం"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"బాగుంది అని చూపే సంకేతం"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"విజయ సంకేతం"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"ఓటమి సంకేతం"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"చప్పట్లు కొడుతున్నట్లు చూపే సంకేతం"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"చేతులను తెరిచి చూపే సంకేతం"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"కిరీటం"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"ఆడవారు ధరించే టోపీ"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"కళ్లద్దాలు"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"నెక్‌టై"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"టి-షర్ట్"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"జీన్స్"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"డ్రెస్"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"కిమోనో"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"బికినీ"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"ఆడవారి దుస్తులు"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"పర్సు"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"హ్యాండ్‌బ్యాగ్"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"పౌచ్"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"మగవారి బూటు"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"అథ్లెటిక్ బూటు"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"ఎత్తైన మడమ గల బూట్లు"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"ఆడవారి చెప్పులు"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"ఆడవారి బూట్లు"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"పాదముద్రలు"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"నీడరూపంలో ఉండే ప్రతిమ"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"నీడరూపంలో ఉండే ప్రతిమలు"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"అబ్బాయి"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"అమ్మాయి"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"పురుషుడు"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"స్త్రీ"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"కుటుంబం"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"స్త్రీ, పురుషులు ఇరువురూ చేతులు పట్టుకున్నట్లు"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"ఇద్దరు పురుషులు చేతులు పట్టుకున్నట్లు"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"ఇద్దరు స్త్రీలు చేతులు పట్టుకున్నట్లు"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"పోలీసు అధికారి"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"కుందేలు చెవులను ధరించిన స్త్రీ"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"మేలి ముసుగు వేసుకున్న పెళ్లికూతురు"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"బంగారు రంగు జుట్టు గల వ్యక్తి"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"గ్వా పై మావో ధరించిన పురుషుడు"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"తలపాగా ధరించిన పురుషుడు"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"తాత"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"బామ్మ"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"శిశువు"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"నిర్మాణ కార్మికుడు"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"యువరాణి"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"జపనీస్ ఓగర్"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"జపనీస్ గాబ్లిన్"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"దెయ్యం"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"బేబీ ఏంజెల్"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"గ్రాహాంతర జీవి"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"గ్రహాంతర రాక్షస జీవి"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"ఇంప్"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"కపాలం"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"సమాచారం అందించే వ్యక్తి"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"కాపలాదారుడు"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"డాన్సర్"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"లిప్‌స్టిక్"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"గోళ్ల పాలిష్"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"ముఖ మర్దనం"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"హెయిర్‌కట్"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"బార్బర్ పోల్"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"సిరంజ్"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"మాత్ర"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"ముద్దు పెట్టినట్లు చూపే గుర్తు"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"ప్రేమ లేఖ"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"ఉంగరం"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"విలువైన రత్నం"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"ముద్దు పెడుతున్నట్లు"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"పుష్పగుచ్ఛం"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"హృదయాకారం గల జంట"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"పెళ్లి"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"స్పందిస్తున్న గుండె"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"పగిలిన గుండె"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"రెండు గుండెలు"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"తళతళమని మెరుస్తున్న గుండె"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"పెరుగుతున్న గుండె"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"బాణం గుర్తు గల గుండె"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"నీలి రంగు గుండె"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"పచ్చ రంగు గుండె"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"పసుపు రంగు గుండె"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"ఊదా రంగు గుండె"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"రిబ్బన్ కట్టిన గుండె"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"పరిభ్రమిస్తున్న గుండెలు"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"గుండె అలంకరణ"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"లోపల చుక్క ఉండే డైమండ్ ఆకారం"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"విద్యుత్ కాంతి బల్బు"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"కోపంగా ఉన్నట్లు చూపే చిహ్నం"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"బాంబ్"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"నిద్రపోతున్నట్లు చూపే చిహ్నం"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"ఘర్షణ కలిగినట్లు చూపే చిహ్నం"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"చిలకరించిన చెమట గుర్తు"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"నీటిబొట్టు"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"డాష్ చిహ్నం"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"పైల్ ఆఫ్ పూ"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"వంగడానికి వీలుగా ఉండే కండరపుష్టి"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"డిజ్జీ చిహ్నం"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"స్పీచ్ బెలూన్"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"ఆలోచన బెలూన్"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"తెలుపురంగు పువ్వు"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"వంద పాయింట్‌ల చిహ్నం"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"డబ్బు సంచి"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"కరెన్సీ మార్పిడి"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"ముదురు రంగులోని డాలర్ గుర్తు"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"క్రెడిట్ కార్డు"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"యెన్ గుర్తు గల బ్యాంక్ నోటు"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"డాలర్ గుర్తు గల బ్యాంక్ నోటు"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"యూరో గుర్తు గల బ్యాంక్ నోటు"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"పౌండ్ గుర్తు గల బ్యాంక్ నోటు"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"రెక్కలు గల డబ్బు"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"పైకి వెళ్తున్న ట్రెండ్‌తో పాటు యెన్ గుర్తుని చూపే చార్ట్"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"సీటు"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"వ్యక్తిగత కంప్యూటర్"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"బ్రీఫ్‌కేస్"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"మినిడిస్క్"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"ఫ్లాపీ డిస్క్"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"ఆప్టికల్ డిస్క్"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"Dvd"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"ఫైల్ ఫోల్డర్"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"తెరిచిన ఫైల్ ఫోల్డర్"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"మెలితిప్పి ఉన్న పేజీ"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"ఎగువన కొద్దిగా మడిచినట్లు ఉండే పేజీ"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"క్యాలండర్"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"టియర్-ఆఫ్ క్యాలెండర్"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"కార్డు సూచిక"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"పైకి వెళ్తున్న ట్రెండ్‌ని చూపే చార్ట్"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"క్రిందికి దిగుతున్న ట్రెండ్‌ని చూపే చార్ట్"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"బార్ చార్ట్"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"క్లిప్‌బోర్డ్"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"పుష్‌పిన్"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"వృత్తాకార పుష్‌పిన్"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"కాగితానికి వేసే క్లిప్"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"నేరుగా ఉండే రూలర్"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"త్రిభుజాకార రూలర్"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"బుక్‌మార్క్ ట్యాబ్‌లు"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"లెడ్జర్"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"నోటుపుస్తకం"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"కవర్‌ వేసిన నోటుపుస్తకం"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"మూసివేయబడిన పుస్తకం"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"తెరచిన పుస్తకం"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"పచ్చరంగు పుస్తకం"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"నీలిరంగు పుస్తకం"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"నారింజరంగు పుస్తకం"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"పుస్తకాలు"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"పేరు బ్యాడ్జి"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"స్క్రోల్"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"మెమో"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"టెలిఫోన్ రిసీవర్"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"పేజర్"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"ఫ్యాక్స్ మెషీన్"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"ఉపగ్రహ యాంటెన్నా"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"ప్రజలకు వినపడేలా ప్రతిధ్వనించే లౌడ్‌స్పీకర్"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"ప్రతిధ్వనిస్తున్న మెగాఫోన్"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"అవుట్‌బాక్స్ ట్రే"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"ఇన్‌బాక్స్ ట్రే"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"ప్యాకేజీ"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"ఇ-మెయిల్ సంకేతం"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"ఇన్‌కమింగ్ ఎన్వలప్"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"ఎన్వలప్‌కి ఎగువన క్రిందికి చూపే బాణం"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"క్రిందికి దించిన ఫ్లాగ్‌తో మూసివేయబడిన మెయిల్‌పెట్టె"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"పైకి ఎత్తిన ఫ్లాగ్‌తో మూసివేయబడిన మెయిల్‌పెట్టె"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"పైకి ఎత్తిన ఫ్లాగ్‌తో తెరిచిన మెయిల్‌పెట్టె"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"క్రిందికి దించిన ఫ్లాగ్‌తో తెరిచిన మెయిల్‌పెట్టె"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"తపాలాపెట్టె"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"పోస్టల్ హార్న్"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"వార్తా పత్రిక"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"మొబైల్ ఫోన్"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"మొబైల్ ఫోన్‌కి ఎడమవైపున కుడివైపుకి చూపే బాణం"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"వైబ్రేషన్ మోడ్"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"మొబైల్ ఫోన్ ఆఫ్"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"మొబైల్ ఫోన్‌లు నిషేధం"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"బార్‌లు ఉన్న యాంటెన్నా"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"కెమెరా"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"వీడియో కెమెరా"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"టెలివిజన్"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"రేడియో"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"వీడియో క్యాసెట్"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"మెలివేయబడి ఉన్న కుడివైపుకి చూపే బాణాలు"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"సవ్యదిశలో కుడివైపు మరియు ఎడమవైపు తెరవబడిన వృత్తాకార బాణాలు"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"వృత్తాకారంలో ఉన్న ఒకటి ఓవర్‌లేతో సవ్యదిశలో కుడివైపు మరియు ఎడమవైపు తెరవబడిన వృత్తాకార బాణాలు"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"సవ్యదిశలో క్రిందికి మరియు పైకి తెరవబడిన వృత్తాకార బాణాలు"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"అపసవ్యదిశలో క్రిందికి మరియు పైకి తెరవబడిన వృత్తాకార బాణాలు"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"తక్కువ ప్రకాశం గల చిహ్నం"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"అధిక ప్రకాశం గల చిహ్నం"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"స్పీకర్ రద్దు"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"స్పీకర్"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"ఒక ధ్వని తరంగం గల స్పీకర్"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"మూడు ధ్వని తరంగాలు గల స్పీకర్"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"బ్యాటరీ"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"విద్యుత్ ప్లగ్"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"ఎడమవైపుకి చూపే భూతద్దం"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"కుడివైపుకి చూపే భూతద్దం"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"ఇంక్ పెన్‌తో పాటు తాళం"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"తాళంచెవితో పాటు మూసివేయబడిన తాళం"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"తాళంచెవి"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"తాళం"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"తెరవబడిన తాళం"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"గంట"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"గంట రద్దు"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"బుక్‌మార్క్"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"లింక్ గుర్తు"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"రేడియో బటన్"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"బ్యాక్‌కి ఎగువన ఎడమవైపుకి చూపే బాణం"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"ఎండ్‌కి ఎగువన ఎడమవైపుకి చూపే బాణం"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"ఆశ్చర్యార్థక గుర్తు ఉన్న ఆన్‌కి ఎగువన ఎడమ, కుడి రెండువైపులకు చూపే బాణం"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"సూన్‌కి ఎగువన కుడివైపుకి చూపే బాణం"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"టాప్‌కి ఎగువన పైకి చూపే బాణం"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"పద్దెనిమిది కంటే తక్కువ వయస్సుగల వారు నిషిద్ధమని చూపే గుర్తు"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"కీ మీద పది"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"లాటిన్ క్యాపిటల్ అక్షరాల కోసం ఇన్‌పుట్ చిహ్నం"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"లాటిన్ చిన్న అక్షరాల కోసం ఇన్‌పుట్ చిహ్నం"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"సంఖ్యల కోసం ఇన్‌పుట్ చిహ్నం"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"గుర్తుల కోసం ఇన్‌పుట్ గుర్తు"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"లాటిన్ అక్షరాల కోసం ఇన్‌పుట్ చిహ్నం"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"నిప్పు"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"ఎలక్ట్రిక్ టార్చ్"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"రెంచి"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"సుత్తి"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"మర మరియు బోల్టు"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"హోషో"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"పిస్టల్"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"మైక్రోస్కోప్"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"టెలిస్కోప్"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"క్రిస్టల్ బాల్"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"మధ్య చుక్క గల ఆరు పాయింట్ల నక్షత్రం"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"ప్రారంభకుల కోసం జపనీస్ గుర్తు"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"త్రిశూల చిహ్నం"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"నలుపు రంగు చతురస్రాకార బటన్"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"తెలుపు రంగు చతురస్రాకార బటన్"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"పెద్ద ఎరుపు రంగు వృత్తం"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"పెద్ద నీలి రంగు వలయం"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"పెద్ద నారింజ రంగు డైమండ్"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"పెద్ద నీలి రంగు డైమండ్"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"చిన్న నారింజ రంగు డైమండ్"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"చిన్న నీలి రంగు డైమండ్"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"పైకి చూపే ఎరుపు రంగు త్రిభుజం"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"క్రిందికి చూపే ఎరుపు రంగు త్రిభుజం"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"పైకి చూపే చిన్న ఎరుపు రంగు త్రిభుజం"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"క్రిందికి చూపే చిన్న ఎరుపు రంగు త్రిభుజం"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"ఒంటి గంటను చూపే గడియారం రూపం"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"రెండు గంటలను చూపే గడియారం రూపం"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"మూడు గంటలను చూపే గడియారం రూపం"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"నాలుగు గంటలను చూపే గడియారం రూపం"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"ఐదు గంటలను చూపే గడియారం రూపం"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"ఆరు గంటలను చూపే గడియారం రూపం"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"ఏడు గంటలను చూపే గడియారం రూపం"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"ఎనిమిది గంటలను చూపే గడియారం రూపం"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"తొమ్మిది గంటలను చూపే గడియారం రూపం"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"పది గంటలను చూపే గడియారం రూపం"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"పదకొండు గంటలను చూపే గడియారం రూపం"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"పన్నెండు గంటలను చూపే గడియారం రూపం"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"ఒక గంట ముప్పై నిమిషాలను చూపే గడియారం రూపం"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"రెండు గంటల ముప్పై నిమిషాలను చూపే గడియారం రూపం"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"మూడు గంటల ముప్పై నిమిషాలను చూపే గడియారం రూపం"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"నాలుగు గంటల ముప్పై నిమిషాలను చూపే గడియారం రూపం"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"ఐదు గంటల ముప్పై నిమిషాలను చూపే గడియారం రూపం"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"ఆరు గంటల ముప్పై నిమిషాలను చూపే గడియారం రూపం"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"ఏడు గంటల ముప్పై నిమిషాలను చూపే గడియారం రూపం"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"ఎనిమిది గంటల ముప్పై నిమిషాలను చూపే గడియారం రూపం"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"తొమ్మిది గంటల ముప్పై నిమిషాలను చూపే గడియారం రూపం"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"పది గంటల ముప్పై నిమిషాలను చూపే గడియారం రూపం"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"పదకొండు గంటల ముప్పై నిమిషాలను చూపే గడియారం రూపం"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"పన్నెండు గంటల ముప్పై నిమిషాలను చూపే గడియారం రూపం"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"ఫ్యూజీ పర్వతం"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"టోక్యో టవర్"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"లిబర్టీ విగ్రహం"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"జపాన్ ఛాయాచిత్రం"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"మొయాయి"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"పళ్లు కనబడేలా నవ్వుతున్న ముఖం"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"నవ్వుతున్న కళ్లతో ఇకిలింత ముఖం"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"ఆనందభాష్పాలు గల ముఖం"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"నోరు తెరిచి నవ్వుతున్న ముఖం"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"నవ్వుతున్న కళ్లతో నోరు తెరిచి నవ్వుతున్న ముఖం"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"బిగ్గరగా నవ్వుతూ, భయంతో చెమటలు పట్టిన ముఖం"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"గట్టిగా మూసుకున్న కళ్లతో నోరు తెరిచి నవ్వుతున్న ముఖం"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"ప్రకాశ వలయం గల నవ్వుతున్న ముఖం"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"కొమ్ములు గల నవ్వుతున్న ముఖం"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"కనుసైగ చేస్తున్న ముఖం"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"నవ్వుతున్న కళ్లతో నవ్వుతున్న ముఖం"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"రుచికరమైన ఆహారాన్ని ఆస్వాదిస్తున్నట్లు చూపే ముఖం"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"ఉపశమనం పొందిన ముఖం"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"హృదయాకార కళ్లతో నవ్వుతున్న ముఖం"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"సన్‌గ్లాసులు ధరించి నవ్వుతున్న ముఖం"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"గర్వంగా నవ్వుతున్న ముఖం"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"నిష్పాక్షికంగా ఉండే ముఖం"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"భావరహిత ముఖం"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"రంజింపచేయని ముఖం"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"భయంతో చెమటలు పట్టిన ముఖం"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"దిగులుగా వున్న ముఖం"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"అయోమయంలో ఉండే ముఖం"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"కలవరపడిన ముఖం"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"ముద్దు పెడుతున్న ముఖం"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"గాలిలో ముద్దుని వదులుతున్న ముఖం"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"నవ్వుతున్న కళ్లతో ముద్దు పెడుతున్న ముఖం"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"మూసి ఉన్న కళ్లతో ముద్దు పెడుతున్న ముఖం"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"నాలుకను బయటకు చూపుతున్న ముఖం"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"నాలుకను బయటకు పెట్టి, కనుసైగ చేస్తున్న ముఖం"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"నాలుక బయటకు పెట్టి, గట్టిగా మూసుకున్న కళ్లతో ముఖం"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"నిరాశ చెందిన ముఖం"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"వ్యాకులత చెందిన ముఖం"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"కోపంతో ఉన్న ముఖం"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"అలిగిన ముఖం"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"ఏడుస్తున్న ముఖం"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"పట్టుదలతో ఉండే ముఖం"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"విజయోత్సాహం నిండి ఉన్న ముఖం"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"మనస్తాపం చెందినట్లు ఉన్నా ఉపశమనం పొందినట్లు ఉండే ముఖం"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"నోరు తెరిచి కోపంతో ఉన్న ముఖం"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"బాధాకరమైన ముఖం"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"భయంతో కూడిన ముఖం"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"విసుగు చెందిన ముఖం"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"నిద్ర పోతున్నట్లు ఉన్న ముఖం"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"అలసిన ముఖం"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"వెక్కిరిస్తున్నట్లు ఉండే ముఖం"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"బిగ్గరగా ఏడుస్తున్న ముఖం"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"నోరు తెరిచి ఉన్న ముఖం"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"నిశ్శబ్దంగా ఉండే ముఖం"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"నోరు తెరిచి, భయంతో చెమటలు పట్టిన ముఖం"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"భయంతో కేక పెడుతున్న ముఖం"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"ఆశ్చర్యపడిన ముఖం"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"ఉద్రేకించిన ముఖం"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"నిద్రపోతున్న ముఖం"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"అస్వస్థతతో ఉండే ముఖం"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"నోరు లేని ముఖం"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"వైద్య సంబంధిత ముసుగును ధరించిన ముఖం"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"నవ్వుతున్న కళ్లతో ఇకిలిస్తున్నట్లు ఉండే పిల్లి ముఖం"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"ఆనందభాష్పాలతో ఉండే పిల్లి ముఖం"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"నోరు తెరిచి నవ్వుతున్నట్లు ఉండే పిల్లి ముఖం"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"హృదయాకార కళ్లతో నవ్వుతున్నట్లు ఉండే పిల్లి ముఖం"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"వంకర నవ్వుతో పిల్లి ముఖం"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"మూసి ఉన్న కళ్లతో ముద్దు పెడుతున్నట్లు ఉండే పిల్లి ముఖం"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"అలిగినట్లు ఉండే పిల్లి ముఖం"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"ఏడుస్తున్నట్లు ఉండే పిల్లి ముఖం"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"విసుగు చెందినట్లు ఉండే పిల్లి ముఖం"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"ఎటువంటి మంచి సంజ్ఞ చేయని ముఖం"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"సరే సంజ్ఞతో ఉన్న ముఖం"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"వ్యక్తి వినమ్రంగా వంగడం"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"చెడు చూడకు అని సంజ్ఞ చేసే కోతి"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"చెడు వినకు అని సంజ్ఞ చేసే కోతి"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"చెడు మాట్లాడకు అని సంజ్ఞ చేసే కోతి"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"వ్యక్తి సంతోషంగా ఒక చేతిని పైకి ఎత్తడం"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"వేడుకలో రెండు చేతులు పైకెత్తిన వ్యక్తి"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"కోపంగా ఉన్న వ్యక్తి"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"అలిగిన ముఖంతో ఉండే వ్యక్తి"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"చేతులు కట్టుకున్న వ్యక్తి"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"రాకెట్"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"హెలికాప్టర్"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"ఆవిరితో నడిచే రైలు"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"రైల్వే కారు"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"అత్యంత వేగవంతమైన రైలు"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"బుల్లెట్ మొన గల అత్యంత వేగవంతమైన రైలు"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"రైలు"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"మెట్రో"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"లైట్ రైలు"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"స్టేషన్"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"ట్రామ్"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"ట్రామ్ కారు"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"బస్సు"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"రానున్న బస్సు"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"ట్రాలీబస్సు"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"బస్ స్టాప్"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"చిన్నబస్సు"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"అంబులెన్స్‌"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"అగ్నిమాపక యంత్రం"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"పోలీసు కారు"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"రానున్న పోలీసు కారు"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"ట్యాక్సీ"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"రానున్న ట్యాక్సీ"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"ఆటోమొబైల్"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"రానున్న ఆటోమొబైల్"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"వినోదభరిత వాహనం"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"డెలివరీ ట్రక్"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"జాయింట్లుగా కలపబడిన లారీ"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"ట్రాక్టర్"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"మోనోరైల్"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"పర్వత రైల్వే"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"సస్పెన్షన్ రైల్వే"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"మౌంటెయిన్ కేబుల్‌వే"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"ఏరియల్ ట్రామ్‌వే"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"ఓడ"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"చిన్న పడవ"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"వేగవంతమైన పడవ"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"సమతల ట్రాఫిక్ లైట్"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"లంబంగా ఉండే ట్రాఫిక్ లైట్"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"నిర్మాణం చిహ్నం"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"పోలీసు కార్లపై తిరిగే లైట్"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"పోస్ట్‌పై త్రిభుజాకార పతాకం"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"తలుపు"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"ప్రవేశం లేదు అని సూచించే చిహ్నం"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"స్మోకింగ్ చిహ్నం"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"ధూమపానం చేయవద్దు అని సూచించే గుర్తు"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"చెత్తను చెత్తకుండీలో వేయడానికి చిహ్నం"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"చెత్త వేయవద్దు అని సూచించే చిహ్నం"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"త్రాగునీరు చిహ్నం"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"నీరు రావడం లేదు చిహ్నం"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"సైకిల్"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"సైకిల్‌లు నిషిద్ధం"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"సైకిల్ నడిపేవారు"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"పర్వతంపై సైకిల్ నడిపేవారు"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"పాదచారి"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"పాదచారులు నిషిద్ధం"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"చిన్నపిల్లలు రహదారి దాటే కూడలి"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"పురుషుల చిహ్నం"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"స్త్రీల చిహ్నం"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"విశ్రాంతిగది"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"శిశువు చిహ్నం"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"మరుగుదొడ్డి"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"వాటర్ క్లోసెట్"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"షవర్"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"స్నానం"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"స్నానపు తొట్టె"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"పాస్‌పోర్ట్ నియంత్రణ"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"కస్టమ్స్"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"బ్యాగేజీ క్లెయిమ్"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"సామాను ఉంచు స్థలం"</string>
+</resources>
diff --git a/java/res/values-te-rIN/strings-talkback-descriptions.xml b/java/res/values-te-rIN/strings-talkback-descriptions.xml
index 175b13e..3c7a989 100644
--- a/java/res/values-te-rIN/strings-talkback-descriptions.xml
+++ b/java/res/values-te-rIN/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"వచనం ఏదీ నమోదు చేయబడలేదు"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>ని <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>గా సరి చేస్తుంది"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> స్వీయ-సవరణను అమలు చేస్తుంది"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"సూచన లేదు"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"తెలియని అక్షరం"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"షిప్ట్"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"మరిన్ని గుర్తులు"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"క్యాపిటల్ I, ఎగువన చుక్క"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"తెలియని చిహ్నం"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"తెలియని ఎమోజీ"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"చికాకుగా ఉండే ముఖం"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"కలవరపడే ముఖం"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"కళ్లద్దాలు ధరించిన ముఖం"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"ఆశ్చర్యపడే ముఖం"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"ముద్దు పెడుతున్న ముఖం"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"కోపంతో ఉండే ముఖం"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"ప్రత్యామ్నాయ అక్షరాలు అందుబాటులో ఉన్నాయి"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"ప్రత్యామ్నాయ అక్షరాలు తీసివేయబడ్డాయి"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"ప్రత్యామ్నాయ సూచనలు అందుబాటులో ఉన్నాయి"</string>
diff --git a/java/res/values-te-rIN/strings.xml b/java/res/values-te-rIN/strings.xml
index fa46f64..085639c 100644
--- a/java/res/values-te-rIN/strings.xml
+++ b/java/res/values-te-rIN/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"కీని నొక్కినప్పుడు వైబ్రేట్"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"కీని నొక్కినప్పుడు ధ్వని"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"కీని నొక్కినప్పుడు పాప్‌అప్ చూపు"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"ప్రాధాన్యతలు"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"ఖాతాలు &amp; గోప్యత"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"కనిపించే తీరు &amp; లేఅవుట్‌లు"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"సంజ్ఞ టైపింగ్"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"వచన సవరణ"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"అధునాతనం"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"థీమ్"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"విభజన కీబోర్డ్‌ను ప్రారంభించు"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google కీబోర్డ్ సమకాలీకరణ"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"సమకాలీకరణ ఆన్ చేయబడింది"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"పరికరాల్లో మీ వ్యక్తిగత నిఘంటువును సమకాలీకరించండి"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"ఇప్పుడే సమకాలీకరించు"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"cloud డేటాను తొలగించండి"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"మీ సమకాలీకృత డేటాను Google నుండి తొలగిస్తుంది"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"cloud నుండి మీ సమ. డేటా తొలగించబడుతుంది. మీరు చేయాలనుకుంటున్నారా?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"తొలగించు"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"రద్దు చేయి"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"మీ వ్యక్తిగత నిఘంటువు Google సర్వర్‌లకు సమకాలీకరించబడుతుంది మరియు బ్యాకప్ చేయబడుతుంది. మా ఉత్పత్తులను మెరుగుపరచడంలో సహాయకరంగా ఉండటానికి పదం తరచుదనానికి సంబంధించిన గణాంక సమాచారం సేకరించవచ్చు. మొత్తం సమాచార సేకరణ మరియు వినియోగం "<a href="https://www.google.com/policies/privacy">"Google గోప్యతా విధానం"</a>"కి లోబడి ఉంటుంది."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"దయచేసి ఈ లక్షణాన్ని ప్రారంభించడానికి ఈ పరికరానికి Google ఖాతాను జోడించండి"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"ఇతర ఇన్‌పుట్ పద్ధతులకు మారండి"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"భాష మార్పు కీ ఇతర ఇన్‌పుట్ పద్ధతులను కూడా కవర్ చేస్తుంది"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"భాష మార్పు కీ"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"బహుళ ఇన్‌పుట్ భాషలు ప్రారంభించబడినప్పుడు చూపు"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"స్లైడ్ సూచికను చూపు"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Shift లేదా గుర్తు కీల నుండి స్లైడ్ చేసేటప్పుడు దృశ్యమాన సంకేతాన్ని ప్రదర్శించు"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"కీ పాప్‌అప్ తీసివేత ఆలస్యం"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"ఆలస్యం లేదు"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"డిఫాల్ట్"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"ప్రధాన నిఘంటువు"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"సవరణ సూచనలను చూపు"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"టైప్ చేసేటప్పుడు సూచిత పదాలను ప్రదర్శించు"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"ఎల్లప్పుడూ చూపు"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"పోర్ట్రెయిట్ మోడ్‌లో చూపు"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"ఎల్లప్పుడూ దాచు"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"అభ్యంతరకరమైన పదాలను బ్లాక్ చేయి"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"సంభావ్యంగా అభ్యంతరకరమైన పదాలను సూచించవద్దు"</string>
     <string name="auto_correction" msgid="7630720885194996950">"స్వీయ-సవరణ"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"వాయిస్ ఇన్‌పుట్ కీ"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"వాయిస్ ఇన్‌పుట్ పద్ధతులు ఏవీ ప్రారంభించబడలేదు. భాష &amp; ఇన్‌పుట్ సెట్టింగ్‌లను తనిఖీ చేయండి."</string>
     <string name="configure_input_method" msgid="373356270290742459">"ఇన్‌పుట్ పద్ధతులను కాన్ఫిగర్ చేయండి"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"ఇన్‌పుట్ భాషలు"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"అభిప్రాయాన్ని పంపండి"</string>
-    <string name="select_language" msgid="3693815588777926848">"ఇన్‌పుట్ భాషలు"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"భాషలు"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"సహాయం &amp; అభిప్రాయం"</string>
+    <string name="select_language" msgid="5709487854987078367">"భాషలు"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"సేవ్ చేయడానికి మళ్లీ తాకండి"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"సేవ్ చేయడానికి ఇక్కడ తాకండి"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"నిఘంటువు అందుబాటులో ఉంది"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"కీబోర్డ్ థీమ్"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"ఖాతాలు మార్చండి"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"ఖాతాలు ఏవీ ఎంచుకోబడలేదు"</string>
+    <string name="account_selected" msgid="2846876462199625974">"ప్రస్తుతం <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>ని ఉపయోగిస్తున్నారు"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"సరే"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"రద్దు చేయి"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"సైన్ అవుట్ చేయండి"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"ఉపయోగించడానికి ఖాతాను ఎంచుకోండి"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"ఆంగ్లం (యుకె)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"ఆంగ్లం (యుఎస్)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"స్పానిష్ (యుఎస్)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"హింగ్లీష్"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"సెర్బియన్ (లాటిన్)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"ఆంగ్లం (యుకె) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"ఆంగ్లం (యుఎస్) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"స్పానిష్ (యుఎస్) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"హింగ్లీష్ (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"సెర్బియన్ (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (సాంప్రదాయకం)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (సిరిలిక్)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (లాటిన్)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (కాంపాక్ట్)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"భాష లేదు (ఆల్ఫాబెట్)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"ఆల్ఫాబెట్ (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"ఆల్ఫాబెట్ (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"ఆల్ఫాబెట్ (కోల్‌మాక్)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"ఆల్ఫాబెట్ (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"ఎమోజి"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"కీబోర్డ్ థీమ్"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"అనుకూల ఇన్‌పుట్ శైలులు"</string>
     <string name="add_style" msgid="6163126614514489951">"శైలిని జోడించండి"</string>
     <string name="add" msgid="8299699805688017798">"జోడించండి"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"ప్రారంభించండి"</string>
     <string name="not_now" msgid="6172462888202790482">"ఇప్పుడు కాదు"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"ఇదే ఇన్‌పుట్ శైలి ఇప్పటికే ఉంది: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"కీని ఎక్కువసేపు నొక్కి ఉంచాల్సిన సమయంలో ఆలస్యం"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"కీని నొక్కినప్పుడు వైబ్రేషన్ వ్యవధి"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"కీని నొక్కినప్పుడు చేసే ధ్వని వాల్యూమ్"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"బాహ్య నిఘంటువు ఫైల్‌ను చదవండి"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"డౌన్‌లోడ్‌ల ఫోల్డర్‌లో నిఘంటువు ఫైల్‌లు ఏవీ లేవు"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"ఇన్‌స్టాల్ చేయాల్సిన నిఘంటువు ఫైల్‌ను ఎంచుకోండి"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> కోసం ఈ ఫైల్‌ను నిజంగానే ఇన్‌స్టాల్ చేయాలా?"</string>
-    <string name="error" msgid="8940763624668513648">"లోపం ఏర్పడింది"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"కీని ఎక్కువసేపు నొక్కి ఉంచాల్సిన సమయంలో ఆలస్యం"</string>
     <string name="button_default" msgid="3988017840431881491">"డిఫాల్ట్"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g>కు స్వాగతం"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"సంజ్ఞ టైపింగ్‌తో"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"ఇప్పుడు మీరు <xliff:g id="APPLICATION_NAME">%s</xliff:g>తో మీకు ఇష్టమైన అన్ని అనువర్తనాల్లో టైప్ చేయవచ్చు."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"అదనపు భాషలను కాన్ఫిగర్ చేయండి"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"పూర్తయింది"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"అనువర్తన చిహ్నాన్ని చూపు"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"లాంచర్‌లో అనువర్తన చిహ్నాన్ని ప్రదర్శించు"</string>
     <string name="app_name" msgid="6320102637491234792">"నిఘంటువు ప్రదాత"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"నిఘంటువు ప్రదాత"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"నిఘంటువు సేవ"</string>
diff --git a/java/res/values-th/strings-emoji-descriptions.xml b/java/res/values-th/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..86ab2c0
--- /dev/null
+++ b/java/res/values-th/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"เครื่องหมายลิขสิทธิ์"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"เครื่องหมายการค้าจดทะเบียน"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"เครื่องหมายอัศเจรีย์ 2 ตัว"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"เครื่องหมายอัศเจรีย์และคำถาม"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"สัญลักษณ์เครื่องหมายการค้า"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"แหล่งข้อมูล"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"ลูกศรชี้ซ้ายและขวา"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"ลูกศรชี้บนและล่าง"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"ลูกศรเฉียงบนซ้าย"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"ลูกศรเฉียงบนขวา"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"ลูกศรเฉียงล่างขวา"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"ลูกศรเฉียงล่างซ้าย"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"ลูกศรชี้ซ้ายงอเป็นตะขอ"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"ลูกศรชี้ขวางอเป็นตะขอ"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"นาฬิกา"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"นาฬิกาทราย"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"สามเหลี่ยมซ้อน 2 ชั้นปลายชี้ไปทางขวาสีดำ"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"สามเหลี่ยมซ้อน 2 ชั้นปลายชี้ไปทางซ้ายสีดำ"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"สามเหลี่ยมซ้อน 2 ชั้นปลายชี้ขึ้นสีดำ"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"สามเหลี่ยมซ้อน 2 ชั้นปลายชี้ลงสีดำ"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"นาฬิกาปลุก"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"นาฬิกาทรายที่ทรายกำลังไหล"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"ตัวอักษร M แบบละตินตัวพิมพ์ใหญ่มีวงกลมล้อมรอบ"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"สี่เหลี่ยมจัตุรัสเล็กสีดำ"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"สี่เหลี่ยมจัตุรัสเล็กสีขาว"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"สามเหลี่ยมปลายชี้ไปทางขวาสีดำ"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"สามเหลี่ยมปลายชี้ไปทางซ้ายสีดำ"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"สี่เหลี่ยมจัตุรัสขนาดกลางสีขาว"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"สี่เหลี่ยมจัตุรัสขนาดกลางสีดำ"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"สี่เหลี่ยมจัตุรัสเล็กปานกลางสีขาว"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"สี่เหลี่ยมจัตุรัสเล็กปานกลางสีดำ"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"พระอาทิตย์และรัศมีสีดำ"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"เมฆ"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"โทรศัพท์สีดำ"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"ช่องที่มีเครื่องหมายถูก"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"ร่มและหยดฝน"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"เครื่องดื่มร้อน"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"นิ้วชี้ชี้ขึ้นสีขาว"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"หน้ายิ้มสีขาว"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"ราศีเมษ"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"ราศีพฤษภ"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"ราศีเมถุน"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"ราศีกรกฎ"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"ราศีสิงห์"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"ราศีกันย์"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"ราศีตุลย์"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"ราศีพิจิก"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"ราศีธนู"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"ราศีมังกร"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"ราศีกุมภ์"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"ราศีมีน"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"ชุดไพ่รูปโพดำ"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"ชุดไพ่รูปดอกจิกสีดำ"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"ชุดไพ่รูปหัวใจสีดำ"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"ชุดไพ่รูปข้าวหลามตัดสีดำ"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"น้ำพุร้อน"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"สัญลักษณ์การรีไซเคิลสากลสีดำ"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"สัญลักษณ์รถเข็น"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"สมอ"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"ป้ายคำเตือน"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"สัญญาณแรงดันไฟฟ้าสูง"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"วงกลมสีขาวขนาดกลาง"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"วงกลมสีดำขนาดกลาง"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"ลูกฟุตบอล"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"เบสบอล"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"มนุษย์หิมะไม่มีหิมะ"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"ดวงอาทิตย์หลังเมฆ"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"ราศีคนแบกงู"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"ห้ามเข้า"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"โบสถ์"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"น้ำพุ"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"ธงปักในหลุม"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"เรือใบ"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"เต็นท์"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"ปั๊มน้ำมัน"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"กรรไกรสีดำ"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"เครื่องหมายเลือกสีขาวแบบหนา"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"เครื่องบิน"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"ซองจดหมาย"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"ยกกำปั้น"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"ยกมือ"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"มือชู 2 นิ้ว"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"ดินสอ"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"หัวปากกาสีดำ"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"เครื่องหมายถูกแบบหนา"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"เครื่องหมายคูณแบบหนา"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"ประกายระยิบระยับ"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"ดอกจัน 8 แฉก"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"ดาว 8 แฉกสีดำ"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"เกล็ดหิมะ"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"ประกาย"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"เครื่องหมายกากบาท"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"เครื่องหมายกากบาทในกรอบสี่เหลี่ยม"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"ตัวเครื่องหมายคำถามสีดำ"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"ตัวเครื่องหมายคำถามสีขาว"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"ตัวเครื่องหมายอัศเจรีย์สีขาว"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"เครื่องหมายอัศเจรีย์แบบหนา"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"หัวใจสีดำเข้ม"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"เครื่องหมายบวกแบบหนา"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"เครื่องหมายลบแบบหนา"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"เครื่องหมายหารแบบหนา"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"ลูกศรชี้ขวาสีดำ"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"เส้นม้วนเป็นห่วง"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"เส้นม้วนเป็นห่วง 2 ห่วง"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"ลูกศรโค้งขึ้นทางขวา"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"ลูกศรโค้งลงทางขวา"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"ลูกศรชี้ซ้ายสีดำ"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"ลูกศรขึ้นสีดำ"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"ลูกศรลงสีดำ"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"สี่เหลี่ยมจัตุรัสขนาดใหญ่สีดำ"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"สี่เหลี่ยมจัตุรัสขนาดใหญ่สีขาว"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"ดาวขนาดกลางสีขาว"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"วงกลมใหญ่หนา"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"ขีดคลื่น"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"เครื่องหมายบ่งบอกว่าคำพูดนี้มาจากเพลงหรือเป็นเพลง"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"ตัวอักษรหมายถึงแสดงความยินดีที่มีวงกลมล้อมรอบ"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"ตัวอักษรหมายถึงความลับที่มีวงกลมล้อมรอบ"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"ไพ่นกกระจอกรูปมังกรแดง"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"ไพ่โจกเกอร์สีดำ"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"กรุ๊ปเลือด A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"กรุ๊ปเลือด B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"กรุ๊ปเลือด O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"ที่จอดรถ"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"กรุ๊ปเลือด AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"CL ในสี่เหลี่ยม"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"COOL ในสี่เหลี่ยม"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"FREE ในสี่เหลี่ยม"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"ID ในสี่เหลี่ยม"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"NEW ในสี่เหลี่ยม"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"NG ในสี่เหลี่ยม"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"OK ในสี่เหลี่ยม"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"SOS ในสี่เหลี่ยม"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"UP และอัศเจรีย์ในสี่เหลี่ยม"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"VS ในสี่เหลี่ยม"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"ตัวอักษรคาตาคานะ \"ที่นี่\" ในสี่เหลี่ยม"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"ตัวอักษรคาตาคานะ \"บริการ\" ในสี่เหลี่ยม"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"ตัวอักษรแสดงความหมาย \"ไม่มีค่าบริการ\" ในสี่เหลี่ยม"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"ตัวอักษรแสดงความหมาย \"ที่นั่งที่จองแล้ว\" ในสี่เหลี่ยม"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"ตัวอักษรแสดงความหมาย \"ข้อห้าม\" ในสี่เหลี่ยม"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"ตัวอักษรแสดงความหมาย \"ว่าง\" ในสี่เหลี่ยม"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"ตัวอักษรแสดงความหมาย \"การยอมรับ\" ในสี่เหลี่ยม"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"ตัวอักษรแสดงความหมาย \"เต็ม\" ในสี่เหลี่ยม"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"ตัวอักษรแสดงความหมาย \"จ่ายแล้ว\" ในสี่เหลี่ยม"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"ตัวอักษรแสดงความหมาย \"รายเดือน\" ในสี่เหลี่ยม"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"ตัวอักษรแสดงความหมาย \"แอปพลิเคชัน\" ในสี่เหลี่ยม"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"ตัวอักษรแสดงความหมาย \"ส่วนลด\" ในสี่เหลี่ยม"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"ตัวอักษรแสดงความหมาย \"มีธุระ\" ในสี่เหลี่ยม"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"ตัวอักษรแสดงความหมาย \"ข้อได้เปรียบ\" ในวงกลม"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"ตัวอักษรแสดงความหมาย \"ยอมรับ\" ในวงกลม"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"ไซโคลน"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"หมอก"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"ร่มหุบ"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"ค่ำคืนที่มีดาว"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"ดวงอาทิตย์ขึ้นเหนือภูเขา"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"ดวงอาทิตย์ขึ้น"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"ทิวทัศน์เมืองในยามค่ำ"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"ดวงอาทิตย์ตกเหนือสิ่งปลูกสร้าง"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"รุ้ง"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"สะพานยามค่ำคืน"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"คลื่นน้ำ"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"ภูเขาไฟ"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"ทางช้างเผือก"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"แผนที่โลกทวีปยุโรป-แอฟริกา"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"แผนที่โลกทวีปอเมริกา"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"แผนที่โลกทวีปเอเชีย-ออสเตรเลีย"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"แผนที่โลกมีเส้นเมริเดียน"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"สัญลักษณ์วันเดือนดับ"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"สัญลักษณ์ดวงจันทร์เสี้ยวข้างขึ้น"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"สัญลักษณ์ดวงจันทร์ครึ่งดวงครั้งแรก"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"สัญลักษณ์ดวงจันทร์ค่อนดวงข้างขึ้น"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"สัญลักษณ์ดวงจันทร์เต็มดวง"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"สัญลักษณ์ดวงจันทร์ค่อนดวงข้างแรม"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"สัญลักษณ์ดวงจันทร์ครึ่งดวงครั้งสุดท้าย"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"สัญลักษณ์ดวงจันทร์เสี้ยวข้างแรม"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"ดวงจันทร์เสี้ยว"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"จันทร์ดับมีรูปหน้า"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"ดวงจันทร์ครึ่งดวงข้างขึ้นมีรูปหน้า"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"ดวงจันทร์ครึ่งดวงข้างแรมมีรูปหน้า"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"ดวงจันทร์เต็มดวงมีรูปหน้า"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"ดวงอาทิตย์มีรูปหน้า"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"ดาวส่องแสง"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"ดาวตก"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"เกาลัด"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"ต้นกล้า"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"ต้นสน"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"ต้นไม้ผลัดใบ"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"ต้นปาล์ม"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"ต้นกระบองเพชร"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"ดอกทิวลิป"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"ดอกซากุระ"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"ดอกกุหลาบ"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"ดอกชบา"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"ดอกทานตะวัน"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"ดอกไม้บาน"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"ฝักข้าวโพด"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"รวงข้าว"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"สมุนไพร"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"ใบโคลเวอร์ 4 แฉก"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"ใบเมเปิ้ล"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"ใบไม้ร่วง"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"ใบไม้ปลิวในสายลม"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"เห็ด"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"มะเขือเทศ"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"มะเขือยาว"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"องุ่น"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"เมลอน"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"แตงโม"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"ส้มเขียวหวาน"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"มะนาว"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"กล้วย"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"สับปะรด"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"แอปเปิ้ลแดง"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"แอปเปิ้ลเขียว"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"ลูกแพร์"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"ลูกพีช"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"เชอร์รี่"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"สตรอเบอร์รี่"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"แฮมเบอร์เกอร์"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"ชิ้นพิซซ่า"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"เนื้อหุ้มกระดูก"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"น่องไก่"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"ข้าวอบกรอบ"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"ข้าวปั้น"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"ข้าวสวย"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"ข้าวราดแกง"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"ชามอาหารยังร้อน"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"สปาเก็ตตี้"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"ขนมปัง"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"มันฝรั่งทอด"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"มันเทศเผา"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"ดังโกะ"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"โอเด้ง"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"ซูชิ"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"กุ้งทอด"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"แผ่นลูกชิ้นปลาลายขด"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"ซอฟต์ไอศกรีม"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"น้ำแข็งใส"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"ไอศกรีม"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"โดนัท"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"คุกกี้"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"ช็อกโกแลตแท่ง"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"ลูกกวาด"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"อมยิ้ม"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"คัสตาร์ด"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"โถน้ำผึ้ง"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"ชอร์ตเค้ก"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"ข้าวกล่อง"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"หม้อต้มอาหาร"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"การทำอาหาร"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"ส้อมและมีด"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"ถ้วยน้ำชาไม่มีหู"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"ขวดเหล้าสาเกและถ้วย"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"แก้วไวน์"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"แก้วค็อกเทล"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"เครื่องดื่มคลายร้อน"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"แก้วเบียร์"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"ชนแก้วเบียร์"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"ขวดนมเด็ก"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"ริบบิ้น"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"กล่องของขวัญ"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"เค้กวันเกิด"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"โคมฟักทอง"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"ต้นคริสต์มาส"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"ซานตาคลอส"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"ดอกไม้ไฟ"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"ประกายดอกไม้ไฟ"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"ลูกโป่ง"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"พลุสายรุ้งสำหรับปาร์ตี้"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"ลูกบอลบรรจุกระดาษสี"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"ต้นทะนะบะตะ"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"ธงไขว้"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"เครื่องประดับไม้สน"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"ตุ๊กตาญี่ปุ่น"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"ธงปลาคาร์ฟ"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"กระดิ่งลม"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"พิธีชมจันทร์"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"กระเป๋านักเรียน"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"หมวกรับปริญญา"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"ม้าหมุน"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"ชิงช้าสวรรค์"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"รถไฟเหาะ"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"เบ็ดตกปลาและปลา"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"ไมโครโฟน"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"กล้องถ่ายภาพยนตร์"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"โรงภาพยนตร์"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"หูฟัง"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"จานสี"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"หมวกทรงสูง"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"เต็นท์ละครสัตว์"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"ตั๋ว"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"สเลท"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"ศิลปะการแสดง"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"เกมวิดีโอ"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"เข้าเป้า"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"เครื่องหยอดเหรียญเล่นพนัน"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"บิลเลียด"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"ลูกเต๋า"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"โบว์ลิ่ง"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"ไพ่ดอกไม้"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"โน้ตเพลง"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"โน้ตเพลงหลายตัว"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"แซ็กโซโฟน"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"กีตาร์"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"คีย์บอร์ดเล่นเพลง"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"ทรัมเป็ต"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"ไวโอลิน"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"โน้ตเพลง"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"เสื้อใส่วิ่งมีแถบเฉียง"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"ไม้และลูกเทนนิส"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"สกีและรองเท้าสกี"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"บาสเก็ตบอลและห่วง"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"ธงตราหมากรุก"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"นักเล่นสโนว์บอร์ด"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"นักวิ่ง"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"นักโต้คลื่น"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"ถ้วยรางวัล"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"การแข่งม้า"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"อเมริกันฟุตบอล"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"รักบี้"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"นักว่ายน้ำ"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"บ้าน"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"บ้านพร้อมสวน"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"อาคารสำนักงาน"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"ไปรษณีย์ญี่ปุ่น"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"ไปรษณีย์ยุโรป"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"โรงพยาบาล"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"ธนาคาร"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"ตู้เอทีเอ็ม"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"โรงแรม"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"โรงแรมสำหรับคู่รัก"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"ร้านสะดวกซื้อ"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"โรงเรียน"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"ห้างสรรพสินค้า"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"โรงงาน"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"โคมไฟญี่ปุ่น"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"ปราสาทญี่ปุ่น"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"ปราสาทยุโรป"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"หนูนา"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"หนู"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"วัว"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"ควาย"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"วัว"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"เสือดาว"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"กระต่าย"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"แมว"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"มังกร"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"จระเข้"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"ปลาวาฬ"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"หอยทาก"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"งู"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"ม้า"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"แกะตัวผู้"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"แพะ"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"แกะ"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"ลิง"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"ไก่ตัวผู้"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"ไก่"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"สุนัข"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"หมู"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"หมูป่าตัวผู้"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"ช้าง"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"ปลาหมึก"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"หอยโข่ง"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"แมลง"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"มด"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"ผึ้ง"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"แมลงเต่าทอง"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"ปลา"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"ปลาในเขตร้อน"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"ปลาปักเป้า"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"เต่า"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"ไข่ฟักตัว"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"ลูกเจี๊ยบ"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"ลูกเจี๊ยบหันหน้า"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"นก"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"เพนกวิน"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"โคอาลา"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"พุดเดิ้ล"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"อูฐหนอกเดียว"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"อูฐ 2 หนอก"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"ปลาโลมา"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"หน้าหนู"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"หน้าวัว"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"หน้าเสือ"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"หน้ากระต่าย"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"หน้าแมว"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"หน้ามังกร"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"ปลาวาฬพ่นน้ำ"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"หน้าม้า"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"หน้าลิง"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"หน้าสุนัข"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"หน้าหมู"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"หน้ากบ"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"หน้าหนูแฮมสเตอร์"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"หน้าหมาป่า"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"หน้าหมี"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"หน้าแพนด้า"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"จมูกหมู"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"รอยอุ้งเท้า"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"ตา"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"หู"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"จมูก"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"ปาก"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"ลิ้น"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"นิ้วชี้หลังมือสีขาวชี้ขึ้น"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"นิ้วชี้หลังมือสีขาวชี้ลง"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"นิ้วชี้หลังมือสีขาวชี้ไปทางซ้าย"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"นิ้วชี้หลังมือสีขาวชี้ไปทางขวา"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"เครื่องหมายกำปั้น"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"เครื่องหมายโบกมือ"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"เครื่องหมายทำท่า \"OK\""</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"เครื่องหมายยกนิ้วโป้งขึ้น"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"เครื่องหมายคว่ำนิ้วโป้งลง"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"เครื่องหมายปรบมือ"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"เครื่องหมายแบมือ"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"มงกุฎ"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"หมวกผู้หญิง"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"แว่นตา"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"เนกไท"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"เสื้อยืด"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"กางเกงยีนส์"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"เสื้อชุดสตรี"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"ชุดกิโมโน"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"บิกินี่"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"เสื้อผ้าสตรี"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"กระเป๋าสตางค์"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"กระเป๋าถือ"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"กระเป๋า"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"รองเท้าผู้ชาย"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"รองเท้านักกีฬา"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"รองเท้าส้นสูง"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"รองเท้าแตะผู้หญิง"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"รองเท้าบูทผู้หญิง"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"รอยเท้า"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"ภาพเงาคนจากหัวถึงช่วงหน้าอก"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"ภาพเงาคนหลายคนจากหัวถึงช่วงหน้าอก"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"เด็กชาย"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"เด็กหญิง"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"ผู้ชาย"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"ผู้หญิง"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"ครอบครัว"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"ผู้ชายและผู้หญิงจับมือกัน"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"ผู้ชาย 2 คนจับมือกัน"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"ผู้หญิง 2 คนจับมือกัน"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"เจ้าหน้าที่ตำรวจ"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"ผู้หญิงติดหูกระต่าย"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"เจ้าสาวมีผ้าคลุมหน้า"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"คนมีผมบลอนด์"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"ชายสวมหมวกแบบจีน"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"คนสวมผ้าโพกหัว"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"ผู้ชายอาวุโส"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"ผู้หญิงอาวุโส"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"ทารก"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"คนงานก่อสร้าง"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"เจ้าหญิง"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"ปีศาจญี่ปุ่น"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"ปีศาจญี่ปุ่น"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"ผี"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"ทูตสวรรค์น้อย"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"มนุษย์ต่างดาว"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"ปีศาจต่างดาว"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"ภูตน้อย"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"กะโหลกศีรษะ"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"ผู้ให้บริการข้อมูล"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"องครักษ์"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"นักเต้น"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"ลิปสติก"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"ยาทาเล็บ"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"การนวดหน้า"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"ตัดผม"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"ไฟหมุนหน้าร้านตัดผม"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"เข็มฉีดยา"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"ยา"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"เครื่องหมายจูบ"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"จดหมายรัก"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"แหวน"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"หินอัญมณี"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"จูบ"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"ช่อดอกไม้"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"คู่รักและรูปหัวใจ"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"การแต่งงาน"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"หัวใจเต้น"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"หัวใจแตกสลาย"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"หัวใจ 2 ดวง"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"หัวใจเป็นประกาย"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"หัวใจพองโต"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"หัวใจมีลูกศร"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"หัวใจสีฟ้า"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"หัวใจสีเขียว"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"หัวใจสีเหลือง"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"หัวใจสีม่วง"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"หัวใจพาดริบบิ้น"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"หัวใจหมุน"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"ลายรูปหัวใจ"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"รูปเพชรมีจุดภายใน"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"หลอดไฟฟ้า"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"สัญลักษณ์ความโกรธ"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"ระเบิด"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"สัญลักษณ์การนอนหลับ"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"สัญลักษณ์การชนกัน"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"สัญลักษณ์เหงื่อกระเด็น"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"หยดน้ำ"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"สัญลักษณ์ยัติภาค"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"กองอุจจาระ"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"เกร็งกล้ามแขนส่วนบน"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"สัญลักษณ์วิงเวียน"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"บอลลูนคำพูด"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"บอลลูนความคิด"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"ดอกไม้สีขาว"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"สัญลักษณ์ร้อยเต็ม"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"ถุงเงิน"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"แลกเปลี่ยนเงินตรา"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"เครื่องหมายดอลลาร์แบบหนา"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"บัตรเครดิต"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"ธนบัตรมีสัญลักษณ์เงินเยน"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"ธนบัตรมีสัญลักษณ์เงินดอลลาร์"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"ธนบัตรมีสัญลักษณ์เงินยูโร"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"ธนบัตรมีสัญลักษณ์เงินปอนด์"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"เงินมีปีก"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"แผนภูมิมีแนวโน้มขาขึ้นและสัญลักษณ์เงินเยน"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"ที่นั่ง"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"คอมพิวเตอร์ส่วนบุคคล"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"กระเป๋าเอกสาร"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"ดิสก์ขนาดเล็ก"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"ฟลอปปี้ดิสก์"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"จานแสง"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"ดีวีดี"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"โฟลเดอร์ไฟล์"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"โฟลเดอร์ไฟล์เปิดอยู่"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"หน้ากระดาษม้วนขึ้น"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"หน้าหงายขึ้น"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"ปฏิทิน"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"ปฏิทินแบบฉีก"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"ดัชนีบัตร"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"แผนภูมิมีแนวโน้มขาขึ้น"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"แผนภูมิมีแนวโน้มขาลง"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"กราฟแท่ง"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"คลิปบอร์ด"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"หมุดปัก"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"หมุดปักหัวกลม"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"คลิปหนีบกระดาษ"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"ไม้บรรทัดตรง"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"ไม้ฉาก"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"แถบคั่นหนังสือ"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"สมุดบัญชีแยกประเภท"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"สมุดบันทึก"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"สมุดบันทึกมีลายที่ปก"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"หนังสือปิดอยู่"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"หนังสือเปิดอยู่"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"หนังสือสีเขียว"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"หนังสือสีฟ้า"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"หนังสือสีส้ม"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"กองหนังสือ"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"ป้ายชื่อ"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"ม้วนกระดาษ"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"บันทึก"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"เครื่องรับโทรศัพท์"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"เพจเจอร์"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"เครื่องแฟกซ์"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"จานดาวเทียม"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"ตู้ลำโพงกลางแจ้ง"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"โทรโข่งเชียร์"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"ถาดกล่องขาออก"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"ถาดกล่องขาเข้า"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"พัสดุ"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"สัญลักษณ์อีเมล"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"ซองจดหมายเข้ามาใหม่"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"ซองจดหมายมีลูกศรชี้ลงอยู่ข้างบน"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"กล่องจดหมายปิดที่ธงคว่ำลง"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"กล่องจดหมายปิดที่ธงยกขึ้น"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"กล่องจดหมายเปิดที่ธงยกขึ้น"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"กล่องจดหมายเปิดที่ธงคว่ำลง"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"ตู้ไปรษณีย์"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"แตรไปรษณีย์"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"หนังสือพิมพ์"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"โทรศัพท์มือถือ"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"โทรศัพท์มือถือมีลูกศรชี้ไปทางขวาอยู่ด้านซ้าย"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"โหมดการสั่น"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"โทรศัพท์มือถือปิดเครื่อง"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"ไม่มีโทรศัพท์มือถือ"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"เสาอากาศมีแถบสัญญาณ"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"กล้องถ่ายรูป"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"กล้องวิดีโอ"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"โทรทัศน์"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"วิทยุ"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"วิดีโอเทป"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"ลูกศรบิดไปทางขวา"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"ลูกศรชี้ไปทางขวาและทางซ้ายตามเข็มนาฬิกาเป็นวงกลมเปิด"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"ลูกศรชี้ไปทางขวาและทางซ้ายตามเข็มนาฬิกาเป็นวงกลมเปิดที่มีเลข 1 ในวงกลม"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"ลูกศรชี้ลงและขึ้นตามเข็มนาฬิกาเป็นวงกลมเปิด"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"ลูกศรชี้ลงและขึ้นทวนเข็มนาฬิกาเป็นวงกลมเปิด"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"สัญลักษณ์ความสว่างต่ำ"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"สัญลักษณ์ความสว่างสูง"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"ลำโพงมีเส้นขีดทับ"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"ลำโพง"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"ลำโพงมีคลื่นเสียง 1 คลื่น"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"ลำโพงมีคลื่นเสียง 3 คลื่น"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"แบตเตอรี่"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"ปลั๊กไฟ"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"แว่นขยายส่องไปทางซ้าย"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"แว่นขยายส่องไปทางขวา"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"กุญแจและปากกาหมึกซึม"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"กุญแจล็อกและลูกกุญแจ"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"ลูกกุญแจ"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"กุญแจล็อก"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"กุญแจปลดล็อก"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"ระฆัง"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"ระฆังมีเส้นขีดทับ"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"ที่คั่นหนังสือ"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"สัญลักษณ์เชื่อมโยง"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"ปุ่มตัวเลือก"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"ข้อความ \"BACK\" และลูกศรชี้ซ้ายอยู่ด้านบน"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"ข้อความ \"END\" และลูกศรชี้ซ้ายอยู่ด้านบน"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"ข้อความ \"ON\" พร้อมอัศเจรีย์และลูกศรชี้ซ้ายและขวาอยู่ด้านบน"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"ข้อความ \"SOON\" และลูกศรชี้ขวาอยู่ด้านบน"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"ข้อความ \"TOP\" และลูกศรชี้ขึ้นอยู่ด้านบน"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"สัญลักษณ์ห้ามผู้มีอายุต่ำกว่า 18 ปี"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"ปุ่มกดเลข 10"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"สัญลักษณ์การป้อนข้อมูลตัวอักษรละตินพิมพ์ใหญ๋"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"สัญลักษณ์การป้อนข้อมูลตัวอักษรละตินพิมพ์เล็ก"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"สัญลักษณ์การป้อนข้อมูลตัวเลข"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"สัญลักษณ์การป้อนเครื่องหมาย"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"สัญลักษณ์การป้อนข้อมูลตัวอักษรละติน"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"ไฟ"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"ไฟฉาย"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"ประแจ"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"ค้อน"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"แป้นเกลียวและสลักเกลียว"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"มีดทำครัว"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"ปืนพก"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"กล้องจุลทรรศน์"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"กล้องโทรทรรศน์"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"ลูกแก้ว"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"ดาว 6 แฉกมีจุดตรงกลาง"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"สัญลักษณ์ญี่ปุ่นแทนการเริ่มต้น"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"สัญลักษณ์ตรีศูล"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"ปุ่มสี่เหลี่ยมสีดำ"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"ปุ่มสี่เหลี่ยมสีขาว"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"วงกลมสีแดงขนาดใหญ่"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"วงกลมสีฟ้าขนาดใหญ่"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"เพชรสีส้มขนาดใหญ่"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"เพชรสีฟ้าขนาดใหญ่"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"เพชรสีส้มขนาดเล็ก"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"เพชรสีฟ้าขนาดเล็ก"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"สามเหลี่ยมปลายชี้ขึ้นสีแดง"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"สามเหลี่ยมปลายชี้ลงสีแดง"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"สามเหลี่ยมเล็กปลายชี้ขึ้นสีแดง"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"สามเหลี่ยมเล็กปลายชี้ลงสีแดง"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"นาฬิกาบอกเวลา 1 นาฬิกา"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"นาฬิกาบอกเวลา 2 นาฬิกา"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"นาฬิกาบอกเวลา 3 นาฬิกา"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"นาฬิกาบอกเวลา 4 นาฬิกา"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"นาฬิกาบอกเวลา 5 นาฬิกา"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"นาฬิกาบอกเวลา 6 นาฬิกา"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"นาฬิกาบอกเวลา 7 นาฬิกา"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"นาฬิกาบอกเวลา 8 นาฬิกา"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"นาฬิกาบอกเวลา 9 นาฬิกา"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"นาฬิกาบอกเวลา 10 นาฬิกา"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"นาฬิกาบอกเวลา 11 นาฬิกา"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"นาฬิกาบอกเวลา 12 นาฬิกา"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"นาฬิกาบอกเวลา 1 นาฬิกา 30 นาที"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"นาฬิกาบอกเวลา 2 นาฬิกา 30 นาที"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"นาฬิกาบอกเวลา 3 นาฬิกา 30 นาที"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"นาฬิกาบอกเวลา 4 นาฬิกา 30 นาที"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"นาฬิกาบอกเวลา 5 นาฬิกา 30 นาที"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"นาฬิกาบอกเวลา 6 นาฬิกา 30 นาที"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"นาฬิกาบอกเวลา 7 นาฬิกา 30 นาที"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"นาฬิกาบอกเวลา 8 นาฬิกา 30 นาที"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"นาฬิกาบอกเวลา 9 นาฬิกา 30 นาที"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"นาฬิกาบอกเวลา 10 นาฬิกา 30 นาที"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"นาฬิกาบอกเวลา 11 นาฬิกา 30 นาที"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"นาฬิกาบอกเวลา 12 นาฬิกา 30 นาที"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"ภูเขาฟูจิ"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"หอคอยโตเกียว"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"อนุสาวรีย์เทพีเสรีภาพ"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"ภาพเงาประเทศญี่ปุ่น"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"โมอาย"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"หน้ายิ้มเห็นฟัน"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"หน้ายิ้มยิงฟันและตายิ้ม"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"หน้าที่มีน้ำตาแห่งความสุข"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"หน้ายิ้มและอ้าปาก"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"หน้ายิ้มอ้าปากและมีตายิ้ม"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"หน้ายิ้มอ้าปากและเหงื่อตก"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"หน้ายิ้มอ้าปากและหยีตา"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"หน้ายิ้มมีวงรัศมี"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"หน้ายิ้มมีเขา"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"หน้าขยิบตา"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"หน้ายิ้มและตายิ้ม"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"หน้าได้ลิ้มรสอาหารอร่อย"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"หน้าผ่อนคลาย"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"หน้ายิ้มและตาเป็นรูปหัวใจ"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"หน้ายิ้มใส่แว่นกันแดด"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"หน้ายิ้มเยาะ"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"หน้าเมินเฉย"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"หน้าไร้อารมณ์"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"หน้ารู้สึกรำคาญ"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"หน้ามีเหงื่อตก"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"หน้าหม่นหมอง"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"หน้าสับสน"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"หน้าอึดอัด"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"หน้าทำปากจูบ"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"หน้าส่งจูบ"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"หน้าทำปากจูบและมีตายิ้ม"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"หน้าทำปากจูบและปิดตา"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"หน้าแลบลิ้น"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"หน้าแลบลิ้นและขยิบตา"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"หน้าแลบลิ้นและทำตาหยี"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"หน้าผิดหวัง"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"หน้าวิตกกังวล"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"หน้าโกรธ"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"หน้ามุ่ย"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"หน้าร้องไห้"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"หน้าเอาจริงเอาจัง"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"หน้าต้องการเอาชนะ"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"หน้าผิดหวังแต่ผ่อนคลาย"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"หน้าบึ้งอ้าปาก"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"หน้าแสดงความเจ็บปวด"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"หน้าหวาดกลัว"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"หน้าเหนื่อยล้า"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"หน้าง่วงนอน"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"หน้าเหน็ดเหนื่อย"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"หน้าบูดบึ้ง"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"หน้าร้องไห้เสียงดัง"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"หน้าและปากอ้า"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"หน้าจุ๊ปาก"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"หน้าอ้าปากและเหงื่อตก"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"หน้ากรีดร้องด้วยความกลัว"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"หน้าประหลาดใจ"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"หน้าแดง"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"หน้ากำลังนอนหลับ"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"หน้าวิงเวียน"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"หน้าไม่มีปาก"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"หน้าใส่หน้ากากอนามัย"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"หน้าแมวยิ้มและตายิ้ม"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"หน้าแมวมีน้ำตาแห่งความสุข"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"หน้าแมวยิ้มปากเปิด"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"หน้าแมวยิ้มและตาเป็นรูปหัวใจ"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"หน้าแมวยิ้มมีเลศนัย"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"หน้าแมวทำปากจูบและปิดตา"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"หน้าแมวไม่พอใจ"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"หน้าแมวร้องไห้"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"หน้าแมวเหนื่อยล้า"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"หน้าและท่าทางว่าไม่ดี"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"หน้าและท่าทางว่าตกลง"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"คนโค้งคำนับ"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"ลิงปิดตา"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"ลิงปิดหู"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"ลิงปิดปาก"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"คนที่มีความสุขและชูมือ 1 ข้าง"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"คนยกมือทั้ง 2 ข้างเพื่อเฉลิมฉลอง"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"คนหน้าบึ้ง"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"คนหน้ามุ่ย"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"คนพนมมือ"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"จรวด"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"เฮลิคอปเตอร์"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"รถไฟหัวรถจักรไอน้ำ"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"รถไฟราง"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"รถไฟความเร็วสูง"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"รถไฟความเร็วสูงหัวกระสุน"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"รถไฟ"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"รถไฟใต้ดิน"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"รถไฟฟ้า"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"สถานี"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"รถราง"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"รถไฟราง"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"รถประจำทาง"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"รถประจำทางที่กำลังจะมา"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"รถโดยสารไฟฟ้า"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"ป้ายรถประจำทาง"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"รถประจำทางขนาดเล็ก"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"รถพยาบาล"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"รถดับเพลิง"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"รถตำรวจ"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"รถตำรวจที่กำลังจะมา"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"แท็กซี่"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"แท็กซี่ที่กำลังจะมา"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"รถยนต์"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"รถที่กำลังจะมา"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"รถบ้าน"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"รถบรรทุกส่งของ"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"รถบรรทุกพ่วง"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"แทรกเตอร์"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"รถไฟรางเดี่ยว"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"ทางรถไฟบนภูเขา"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"รถรางลอยฟ้า"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"เคเบิลขึ้นเขา"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"เคเบิล"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"เรือ"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"เรือพาย"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"เรือเร็ว"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"สัญญาณไฟจราจรแนวนอน"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"ไฟจราจรแนวตั้ง"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"สัญลักษณ์ก่อสร้าง"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"ไฟหมุนบนรถตำรวจ"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"ธงสามเหลี่ยมบนเสา"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"ประตู"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"ป้ายห้ามเข้า"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"ป้ายสูบบุหรี่"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"สัญลักษณ์ห้ามสูบบุหรี่"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"ป้ายทิ้งขยะในที่ทิ้ง"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"ป้ายห้ามทิ้งขยะ"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"ป้ายน้ำดื่มได้"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"ป้ายน้ำดื่มไม่ได้"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"รถจักรยาน"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"ห้ามรถจักรยาน"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"นักขี่จักรยาน"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"นักขี่จักรยานภูเขา"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"คนเดินเท้า"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"ห้ามเดินเท้า"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"เด็กข้ามถนน"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"สัญลักษณ์ผู้ชาย"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"สัญลักษณ์ผู้หญิง"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"ห้องน้ำ"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"สัญลักษณ์เด็กทารก"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"ห้องน้ำ"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"ห้องส้วม"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"ที่อาบน้ำฝักบัว"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"ห้องอาบน้ำ"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"อ่างอาบน้ำ"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"จุดตรวจหนังสือเดินทาง"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"ศุลกากร"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"จุดรับกระเป๋า"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"จุดวางกระเป๋า"</string>
+</resources>
diff --git a/java/res/values-th/strings-talkback-descriptions.xml b/java/res/values-th/strings-talkback-descriptions.xml
index 5d70d71..f570911 100644
--- a/java/res/values-th/strings-talkback-descriptions.xml
+++ b/java/res/values-th/strings-talkback-descriptions.xml
@@ -25,13 +25,14 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"ไม่มีข้อความ"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> แก้ไข <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> เป็น <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> ทำการแก้ไขอัตโนมัติ"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"ไม่มีคำแนะนำ"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"อักขระที่ไม่รู้จัก"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"สัญลักษณ์เพิ่มเติม"</string>
     <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Shift"</string>
     <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"สัญลักษณ์"</string>
     <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Shift"</string>
-    <string name="spoken_description_delete" msgid="3878902286264983302">"นำออก"</string>
+    <string name="spoken_description_delete" msgid="3878902286264983302">"ลบ"</string>
     <string name="spoken_description_to_symbol" msgid="8244903740201126590">"สัญลักษณ์"</string>
     <string name="spoken_description_to_alpha" msgid="4081215210530031950">"ตัวอักษร"</string>
     <string name="spoken_description_to_numeric" msgid="4560261331530795682">"หมายเลข"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"I ตัวใหญ่เติมจุดด้านบน"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"สัญลักษณ์ที่ไม่รู้จัก"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"อีโมจิที่ไม่รู้จัก"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"หน้าเบื่อ"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"หน้าอาย"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"หน้าสวมแว่นกันแดด"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"หน้าประหลาดใจ"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"หน้าทำปากจูบ"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"หน้ามุ่ย"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"อักขระทางเลือกพร้อมใช้งาน"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"ปิดอักขระทางเลือกแล้ว"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"ข้อเสนอแนะทางเลือกพร้อมใช้งาน"</string>
diff --git a/java/res/values-th/strings.xml b/java/res/values-th/strings.xml
index 43391a5..eb1be73 100644
--- a/java/res/values-th/strings.xml
+++ b/java/res/values-th/strings.xml
@@ -26,24 +26,30 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"สั่นเมื่อกดปุ่ม"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"ส่งเสียงเมื่อกดปุ่ม"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"ป๊อปอัปเมื่อกดแป้น"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"ค่ากำหนด"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"บัญชีและความเป็นส่วนตัว"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"ลักษณะที่ปรากฏและการจัดวาง"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"การป้อนข้อมูลด้วยท่าทาง"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"การแก้ไขข้อความ"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"ขั้นสูง"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"ธีม"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"เปิดใช้แป้นพิมพ์แยก"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"การซิงค์แป้นพิมพ์ของ Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"การซิงค์เปิดอยู่"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"ซิงค์พจนานุกรมส่วนตัวในอุปกรณ์ต่างๆ"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"ซิงค์เลย"</string>
+    <!-- no translation found for clear_sync_data_title (8582001557037069154) -->
     <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"ลบข้อมูลที่ซิงค์ออกจาก Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"ข้อมูลที่ซิงค์จะลบออกจากระบบคลาวด์ คุณแน่ใจไหม"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"ลบ"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"ยกเลิก"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"พจนานุกรมส่วนตัวของคุณจะซิงค์และสำรองข้อมูลไปยังเซิร์ฟเวอร์ Google ข้อมูลเชิงสถิติของความถี่ในการใช้คำอาจได้รับการเก็บรวบรวมเพื่อใช้ปรับปรุงผลิตภัณฑ์ของเรา การเก็บรวบรวมและการใช้งานข้อมูลทั้งหมดจะเป็นไปอย่างสอดคล้องกับ"<a href="https://www.google.com/policies/privacy">"นโยบายส่วนบุคคลของ Google"</a></string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"โปรดเพิ่มบัญชี Google ไปยังอุปกรณ์นี้เพื่อเปิดใช้คุณลักษณะนี้"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"ใช้วิธีการป้อนข้อมูลอื่น"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"แป้นสลับภาษาครอบคลุมวิธีการป้อนข้อมูลอื่นๆ ด้วย"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"แป้นสลับภาษา"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"แสดงเมื่อเปิดใช้งานภาษาสำหรับอินพุตหลายภาษา"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"แสดงสัญลักษณ์การเลื่อน"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"แสดงสัญลักษณ์ภาพขณะเลื่อนจากแป้น Shift หรือแป้นสัญลักษณ์"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"หน่วงเวลาก่อนปิดป๊อปอัพหลัก"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"ไม่มีการหน่วงเวลา"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"ค่าเริ่มต้น"</string>
@@ -62,9 +68,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"พจนานุกรมหลัก"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"แสดงคำแนะนำการแก้ไข"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"แสดงคำที่แนะนำขณะพิมพ์"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"แสดงทุกครั้ง"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"แสดงในโหมดแนวตั้ง"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"ซ่อนทุกครั้ง"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"บล็อกคำที่ไม่เหมาะสม"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"ไม่แนะนำคำที่อาจไม่เหมาะสม"</string>
     <string name="auto_correction" msgid="7630720885194996950">"การแก้ไขอัตโนมัติ"</string>
@@ -85,21 +88,32 @@
     <string name="voice_input" msgid="3583258583521397548">"แป้นการป้อนข้อมูลด้วยเสียง"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"ไม่ได้เปิดใช้วิธีการป้อนข้อมูลด้วยเสียง ตรวจสอบภาษาและการตั้งค่าการป้อนข้อมูล"</string>
     <string name="configure_input_method" msgid="373356270290742459">"กำหนดค่าวิธีการป้อนข้อมูล"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"ภาษาในการป้อนข้อมูล"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"ส่งข้อเสนอแนะ"</string>
-    <string name="select_language" msgid="3693815588777926848">"ภาษาสำหรับการป้อนข้อมูล"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"ภาษา"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"ความช่วยเหลือและความคิดเห็น"</string>
+    <string name="select_language" msgid="5709487854987078367">"ภาษา"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"แตะอีกครั้งเพื่อบัน​​ทึก"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"แตะที่นี่เพื่อบันทึก"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"มีพจนานุกรมให้ใช้งาน"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"ชุดรูปแบบแป้นพิมพ์"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"สลับบัญชี"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"ไม่ได้เลือกบัญชี"</string>
+    <string name="account_selected" msgid="2846876462199625974">"ปัจจุบันใช้ <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"ตกลง"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"ยกเลิก"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"ออกจากระบบ"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"เลือกบัญชีที่จะใช้"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"อังกฤษ (สหราชอาณาจักร)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"อังกฤษ (อเมริกัน)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"สเปน (สหรัฐอเมริกา)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"ภาษาอังกฤษผสมกับฮินดู"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"เซอร์เบีย (ละติน)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"อังกฤษ (สหราชอาณาจักร) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"อังกฤษ (สหรัฐอเมริกา) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"สเปน (สหรัฐอเมริกา) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"ภาษาอังกฤษผสมกับฮินดู (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"เซอร์เบีย (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ดั้งเดิม)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ซีริลลิก)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ละติน)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (แบบกะทัดรัด)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"ไม่มีภาษา (ตัวอักษรละติน)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"ตัวอักษร (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"ตัวอักษร (QWERTZ)"</string>
@@ -108,20 +122,11 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"ตัวอักษร (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"ตัวอักษร (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"อีโมจิ"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"ธีมแป้นพิมพ์"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"รูปแบบอินพุตกำหนดเอง"</string>
     <string name="add_style" msgid="6163126614514489951">"เพิ่มสไตล์"</string>
     <string name="add" msgid="8299699805688017798">"เพิ่ม"</string>
-    <string name="remove" msgid="4486081658752944606">"นำออก"</string>
+    <string name="remove" msgid="4486081658752944606">"ลบ"</string>
     <string name="save" msgid="7646738597196767214">"บันทึก"</string>
     <string name="subtype_locale" msgid="8576443440738143764">"ภาษา"</string>
     <string name="keyboard_layout_set" msgid="4309233698194565609">"การจัดวาง"</string>
@@ -129,14 +134,9 @@
     <string name="enable" msgid="5031294444630523247">"เปิดใช้งาน"</string>
     <string name="not_now" msgid="6172462888202790482">"ข้ามไปก่อน"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"รูปแบบการป้อนข้อมูลเดียวกันนี้มีอยู่แล้ว: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"การหน่วงเวลาของการกดแป้นค้าง"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"ระยะเวลาการสั่นเมื่อกดแป้นพิมพ์"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"ระดับเสียงเมื่อกดแป้นพิมพ์"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"อ่านไฟล์พจนานุกรมภายนอก"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"ไม่มีไฟล์พจนานุกรมในโฟลเดอร์ดาวน์โหลด"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"เลือกไฟล์พจนานุกรมที่จะติดตั้ง"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"ต้องการติดตั้งไฟล์นี้สำหรับ <xliff:g id="LANGUAGE_NAME">%s</xliff:g> จริงหรือ"</string>
-    <string name="error" msgid="8940763624668513648">"เกิดข้อผิดพลาด"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"การหน่วงเวลาของการกดแป้นค้าง"</string>
     <string name="button_default" msgid="3988017840431881491">"ค่าเริ่มต้น"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"ยินดีต้อนรับสู่ <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"พร้อมการป้อนข้อมูลด้วยท่าทาง"</string>
@@ -154,8 +154,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"ตอนนี้คุณสามารถพิมพ์ข้อมูลลงในแอปที่ชื่นชอบทั้งหมดด้วย <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_step3_action" msgid="600879797256942259">"กำหนดค่าภาษาเพิ่มเติม"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"เสร็จสิ้น"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"แสดงไอคอนแอป"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"แสดงไอคอนแอปพลิเคชันในตัวเรียกใช้งาน"</string>
     <string name="app_name" msgid="6320102637491234792">"ผู้ให้บริการพจนานุกรม"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"ผู้ให้บริการพจนานุกรม"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"บริการพจนานุกรม"</string>
@@ -180,8 +178,8 @@
     <string name="go_to_settings" msgid="3876892339342569259">"การตั้งค่า"</string>
     <string name="install_dict" msgid="180852772562189365">"ติดตั้ง"</string>
     <string name="cancel_download_dict" msgid="7843340278507019303">"ยกเลิก"</string>
-    <string name="delete_dict" msgid="756853268088330054">"นำออก"</string>
-    <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"ภาษาที่คุณเลือกในอุปกรณ์เคลื่อนที่มีพจนานุกรมที่สามารถใช้ได้&lt;br/&gt; เราขอแนะนำให้คุณ &lt;b&gt;ดาวน์โหลด&lt;/b&gt; พจนานุกรม <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> เพื่อรับประสบการณ์การพิมพ์ที่ดียิ่งขึ้น&lt;br/&gt; &lt;br/&gt; การดาวน์โหลดอาจใช้เวลาหนึ่งถึงสองนาทีผ่านทาง 3G ซึ่งอาจมีการเรียกเก็บเงินหากคุณไม่ได้ใช้ &lt;b&gt;แผนบริการข้อมูลแบบไม่จำกัดปริมาณ&lt;/b&gt;.&lt;br/&gt; หากไม่แน่ใจว่าใช้แผนบริการข้อมูลแบบใด เราขอแนะนำให้คุณเชื่อมต่อ Wi-Fi เพื่อเริ่มการดาวน์โหลดอัตโนมัติ&lt;br/&gt; &lt;br/&gt; เคล็ดลับ: คุณสามารถดาวน์โหลดและนำออกพจนานุกรมออกได้โดยไปที่ &lt;b&gt;ภาษาและการป้อนข้อมูล&lt;/b&gt; ในเมนู &lt;b&gt;การตั้งค่า&lt;/b&gt; ในอุปกรณ์เคลื่อนที่ของคุณ"</string>
+    <string name="delete_dict" msgid="756853268088330054">"ลบ"</string>
+    <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"ภาษาที่คุณเลือกในอุปกรณ์เคลื่อนที่มีพจนานุกรมที่สามารถใช้ได้&lt;br/&gt; เราขอแนะนำให้คุณ &lt;b&gt;ดาวน์โหลด&lt;/b&gt; พจนานุกรม <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> เพื่อรับประสบการณ์การพิมพ์ที่ดียิ่งขึ้น&lt;br/&gt; &lt;br/&gt; การดาวน์โหลดอาจใช้เวลาหนึ่งถึงสองนาทีผ่านทาง 3G ซึ่งอาจมีการเรียกเก็บเงินหากคุณไม่ได้ใช้ &lt;b&gt;แผนบริการข้อมูลแบบไม่จำกัดปริมาณ&lt;/b&gt;.&lt;br/&gt; หากไม่แน่ใจว่าใช้แผนบริการข้อมูลแบบใด เราขอแนะนำให้คุณเชื่อมต่อ Wi-Fi เพื่อเริ่มการดาวน์โหลดอัตโนมัติ&lt;br/&gt; &lt;br/&gt; เคล็ดลับ: คุณสามารถดาวน์โหลดและลบพจนานุกรมออกได้โดยไปที่ &lt;b&gt;ภาษาและการป้อนข้อมูล&lt;/b&gt; ในเมนู &lt;b&gt;การตั้งค่า&lt;/b&gt; ในอุปกรณ์เคลื่อนที่ของคุณ"</string>
     <string name="download_over_metered" msgid="1643065851159409546">"ดาวน์โหลดเลย (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>MB)"</string>
     <string name="do_not_download_over_metered" msgid="2176209579313941583">"ดาวน์โหลดผ่าน WiFi"</string>
     <string name="dict_available_notification_title" msgid="4583842811218581658">"มีพจนานุกรมให้ใช้งานสำหรับ <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>"</string>
@@ -201,10 +199,10 @@
     <string name="user_dict_settings_add_shortcut_hint" msgid="2265453012555060178">"ทางลัดที่ไม่บังคับ"</string>
     <string name="user_dict_settings_edit_dialog_title" msgid="3765774633869590352">"แก้ไขคำ"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="6812255903472456302">"แก้ไข"</string>
-    <string name="user_dict_settings_context_menu_delete_title" msgid="8142932447689461181">"นำออก"</string>
+    <string name="user_dict_settings_context_menu_delete_title" msgid="8142932447689461181">"ลบ"</string>
     <string name="user_dict_settings_empty_text" msgid="558499587532668203">"คุณไม่มีคำในพจนานุกรมผู้ใช้เลย เพิ่มคำโดยแตะปุ่มเพิ่ม (+)"</string>
     <string name="user_dict_settings_all_languages" msgid="8276126583216298886">"สำหรับทุกภาษา"</string>
     <string name="user_dict_settings_more_languages" msgid="7131268499685180461">"ภาษาเพิ่มเติม…"</string>
-    <string name="user_dict_settings_delete" msgid="110413335187193859">"นำออก"</string>
+    <string name="user_dict_settings_delete" msgid="110413335187193859">"ลบ"</string>
     <string name="user_dict_fast_scroll_alphabet" msgid="5431919401558285473">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
 </resources>
diff --git a/java/res/values-tl/strings-emoji-descriptions.xml b/java/res/values-tl/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..68f2c5d
--- /dev/null
+++ b/java/res/values-tl/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Simbolo ng copyright"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Nakarehistrong simbolo"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Dobleng tandang padamdam"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Tandang padamdam at tandang pananong"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Simbolo ng trade mark"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Mapagkukunan ng impormasyon"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Arrow na pakaliwa at pakanan"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Arrow na pataas at pababa"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Arrow na nakaturo sa hilagang-kanluran"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Arrow na nakaturo sa hilagang-silangan"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Arrow na nakaturo sa timog-silangan"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Arrow na nakaturo sa timog-kanluran"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Pakaliwang arrow na may hook"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Pakanang arrow na may hook"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Relo"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Hourglass"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Itim na dobleng tatsulok na nakaturo pakanan"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Itim na dobleng tatsulok na nakaturo pakaliwa"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Itim na dobleng tatsulok na nakaturo pataas"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Itim na dobleng tatsulok na nakaturo pababa"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Alarm clock"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Hourglass na may dumadaloy na buhangin"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Malaking latin na titik m na nasa bilog"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Itim at maliit na parisukat"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Puti at maliit na parisukat"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Itim na tatsulok na nakaturo pakanan"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Itim na tatsulok na nakaturo pakaliwa"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Puti at katamtamang parisukat"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Itim at katamtamang parisukat"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Puting parisukat na may maliit na parisukat sa loob"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Itim na parisukat na may maliit na parisukat sa loob"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Itim na araw na may mga sinag"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Ulap"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Itim na telepono"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Ballot box na may check"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Payong na may mga patak ng ulan"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Mainit na inumin"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Puting hintuturo na nakaturo pataas"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Puti at nakangiting mukha"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Aries"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Taurus"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Gemini"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Cancer"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Leo"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Virgo"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Libra"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Scorpius"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Sagittarius"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Capricorn"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Aquarius"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Pisces"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Itim na spade suit"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Itim na club suit"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Itim na heart suit"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Itim na diamond suit"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Mga hot spring"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Itim na simbolo ng universal recycling"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Simbolo ng wheelchair"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Angkla"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Simbolo ng babala"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Simbolo ng mataas na boltahe"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Katamtaman at puting bilog"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Katamtaman at itim na bilog"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Soccer ball"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Baseball"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Snowman na walang snow"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Araw sa likod ng ulap"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Ophiuchus"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Bawal pumasok"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Simbahan"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Fountain"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Bandila sa butas"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Sailboat"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Tent"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Fuel pump"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Itim na gunting"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Puti at makapal na check mark"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Eroplano"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Sobre"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Nakataas na kamao"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Nakataas na kamay"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Kamay na sumisimbolo ng panalo"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Lapis"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Itim na nib"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Makapal na check mark"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Makapal na multiplication x"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Mga Sparkle"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Asterisk na may walong spoke"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Itim na bituin na may walong punto"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Snowflake"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Sparkle"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Markang krus"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Negatibong marka ng krus na nasa parisukat"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Ornament na itim na tandang pananong"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Ornament na puting tandang pananong"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Ornament na puting tandang padamdam"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Makapal na simbolo ng tandang padamdam"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Makapal at itim na puso"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Makapal na simbolo ng plus"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Makapal na simbolo ng minus"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Makapal na simbolo ng division"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Itim at pakanang arrow"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Curly loop"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Dobleng curly loop"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Arrow na tumuturo pakanan pagkatapos ay kumukurba pataaas"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Arrow na tumuturo pakanan pagkatapos ay kumukurba pababa"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Pakaliwa at itim na arrow"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Pataas at itim na arrow"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Pababa at itim na arrow"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Itim at malaking parisukat"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Puti at malaking parisukat"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Puti at katamtamang bituin"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Makapal at malaking bilog"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Wavy dash"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Part alternation mark"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Ideograph ng pagbati na nasa bilog"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Ideograph ng lihim na nasa bilog"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Pulang dragon sa tile ng mahjong"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Itim na joker sa baraha"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Blood type A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Blood type B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Blood type O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Paradahan"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Blood type AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"CL na nasa parisukat"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Cool na nasa parisukat"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Free na nasa parisukat"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"ID na nasa parisukat"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"New na nasa parisukat"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"N G na nasa parisukat"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"OK na nasa parisukat"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"SOS na nasa parisukat"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Up na may tandang padamdam na nasa parisukat"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"vs na nasa parisukat"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Katakana ng dito na nasa parisukat"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Katakana ng serbisyo na nasa parisukat"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Ideograph ng walang singil na nasa parisukat"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Ideograph ng nakareserbang upuan na nasa parisukat"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Ideograph ng pagbabawal na nasa parisukat"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Ideograph ng bakante na nasa parisukat"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Ideograph ng pagtanggap na nasa parisukat"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Nasa parisukat na ideograph ng puno na"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Nasa parisukat na ideograph ng bayad na"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Ideograph ng buwan-buwan na nasa parisukat"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Ideograph ng application na nasa parisukat"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Ideograph ng diskwento na nasa parisukat"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Ideograph ng bukas ang negosyo na nasa parisukat"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Ideograph ng bentahe na nasa bilog"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Ideograph ng tanggapin na nasa bilog"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Bagyo"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Mahamog"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Nakasarang payong"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Gabi na may mga bituin"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Pagsikat ng araw sa mga bundok"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Pagsikat ng araw"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Lungsod sa dapit-hapon"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Paglubog ng araw sa mga gusali"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Bahaghari"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Tulay sa gabi"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Alon ng tubig"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Bulkan"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Milky way"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Europe-africa sa globo ng mundo"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Americas sa globo ng mundo"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Asia-australia sa globo ng mundo"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Globo na may mga meridian"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Simbolo ng new moon"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Simbolo ng waxing crescent moon"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Simbolo ng first quarter moon"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Simbolo ng waxing gibbous moon"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Simbolo ng full moon"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Simbolo ng waning gibbous moon"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Simbolo ng last quarter moon"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Simbolo ng waning crescent moon"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Crescent moon"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"New moon na may mukha"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"First quarter moon na may mukha"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Last quarter moon na may mukha"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Full moon na may mukha"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Araw na may mukha"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Nagniningning na bituin"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Bulalakaw"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Kastanyas"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Punla"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Evergreen tree"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Deciduous tree"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palm tree"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Cactus"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Tulip"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Cherry blossom"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Rosas"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Gumamela"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Sunflower"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Blossom"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Mais"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Bigas"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Herb"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Four leaf clover"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Dahon ng maple"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Nalaglag na dahon"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Dahong tinatangay ng hangin"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Kabute"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Kamatis"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Aubergine"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Ubas"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Melon"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Pakwan"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Tangerine"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Lemon"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Saging"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Pinya"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Pulang mansanas"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Berdeng mansanas"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Peras"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Peach"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Mga Cherry"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Strawberry"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburger"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Slice ng pizza"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Laman sa buto"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Paa ng manok"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Rice cracker"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Rice ball"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Kanin"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Curry at kanin"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Umuusok na mangkok"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Spaghetti"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Tinapay"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"French fries"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Inihaw na kamote"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Sushi"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Pritong hipon"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Fish cake na may swirl na disenyo"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Soft ice cream"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Kinaskas na yelo"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Ice cream"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Doughnut"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Cookie"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Chocolate bar"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Candy"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lollipop"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Custard"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Honey pot"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Shortcake"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Bento box"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Kaldero ng pagkain"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Pagluluto"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Tinidor at kutsilyo"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Tasa na walang hawakan"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Bote at tasa ng sake"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Wine glass"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Cocktail glass"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Tropical drink"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Beer mug"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Pinagtunggang beer mug"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Baby bottle"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Ribbon"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Nakabalot ng regalo"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Birthday cake"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Jack-o-lantern"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Christmas tree"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Father christmas"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Mga Paputok"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Lusis"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Lobo"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Party popper"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Confetti ball"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Tanabata tree"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Magkakrus na bandila"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Dekorasyong pine"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Mga Japanese doll"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Carp streamer"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Wind chime"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Seremonya ng pagtingin sa buwan"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"School satchel"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Graduation cap"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Carousel horse"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Ferris wheel"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Roller coaster"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Bingwit at isda"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Mikropono"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Movie camera"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Cinema"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Headphone"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Artist palette"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Top hat"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Circus tent"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Ticket"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Clapper board"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Performing arts"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Video game"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Asintadong tira"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Slot machine"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Bilyar"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Game die"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Bowling"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Mga barahang may bulaklak"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Nota ng musika"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Maraming nota ng musika"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saxophone"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Gitara"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Musical keyboard"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Trumpeta"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Violin"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Musical score"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Running shirt na may sash"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Raketa at bola ng tennis"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Ski at ski boot"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Basketball at hoop"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Chequered na bandila"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Snowboarder"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Runner"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Surfer"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Trophy"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Karera ng kabayo"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"American football"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Rugby football"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Swimmer"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Pagtatayo ng bahay"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Bahay na may hardin"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Gusali ng opisina"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Post office sa Japan"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Post office sa Europe"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Ospital"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Bangko"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Automated teller machine"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Hotel"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Love hotel"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Convenience store"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Paaralan"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Department store"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Pabrika"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Izakaya lantern"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Japanese castle"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"European castle"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Daga"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Daga"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Ox"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Kalabaw"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Baka"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Leopard"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Kuneho"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Pusa"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Dragon"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Buwaya"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Balyena"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Kuhol"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Ahas"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Kabayo"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Ram"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Kambing"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Tupa"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Unggoy"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Tandang"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Manok"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Aso"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Baboy"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Baboy-ramo"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Elepante"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Pugita"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Spiral shell"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Salaginto"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Langgam"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Bubuyog"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Salagubang"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Isda"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Tropical na isda"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Blowfish"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Pagong"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Napisang sisiw"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Maliit na sisiw"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Maliit na sisiw na nakaharap"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Ibon"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Penguin"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Poodle"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Dromedary camel"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Bactrian camel"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Dolphin"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Mukha ng daga"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Mukha ng baka"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Mukha ng tigre"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Mukha ng kuneho"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Mukha ng pusa"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Mukha ng dragon"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Bumubugang balyena"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Mukha ng kabayo"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Mukha ng unggoy"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Mukha ng aso"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Mukha ng baboy"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Mukha ng palaka"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Mukha ng hamster"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Mukha ng lobo"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Mukha ng oso"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Mukha ng panda"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Ilong ng baboy"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Mga bakas ng paa ng hayop"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Mga Mata"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Tainga"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Ilong"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Bibig"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Dila"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Puting hintuturo na nakaturo pataas"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Puting hintuturo na nakaturo pababa"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Puting hintuturo na nakaturo pakaliwa"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Puting hintuturo na nakaturo pakanan"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Simbolo ng kamao"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Simbolo ng kumakaway na kamay"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Simbolo ng kamay na Ok"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Simbolo ng thumbs up"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Simbolo ng thumbs down"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Simbolo ng pumapalakpak na kamay"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Simbolo ng bukas na kamay"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Korona"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Sumbrero ng babae"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Salamin sa mata"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Kurbata"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"T-shirt"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Jeans"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Bestida"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Damit na pambabae"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Purse"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Handbag"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Pouch"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Sapatos na panlalaki"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Sapatos na pang-atleta"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Sapatos na mataas ang takong"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Sandal na pambabae"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Boots na pambabae"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Bakas ng paa"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Anino ng tao"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Mga anino ng tao"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Batang Lalaki"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Batang Babae"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Lalaki"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Babae"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Pamilya"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Lalaki at babae na magkahawak ang kamay"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Dalawang lalaki na magkahawak ang kamay"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Dalawang babae na magkahawak ang kamay"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Pulis"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Babaeng may bunny ears"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Ikakasal na babaeng may belo"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Taong may blond na buhok"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Lalaking may gua pi mao"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Lalaking may turban"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Matandang lalaki"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Matandang babae"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Sanggol"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Construction worker"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Prinsesa"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Japanese ogre"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Japanese goblin"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Multo"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Anghel na sanggol"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Extraterrestrial alien"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Alien na halimaw"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Imp"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Bungo"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Tauhan sa information desk"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Guwardiya"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Mananayaw"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Lipstick"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Nail polish"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Face massage"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Gupit"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Barber pole"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Iniksyon"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Pill"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Kiss mark"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Love letter"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Sing-sing"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Hiyas"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Halik"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Bouquet"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Magkasintahang may puso"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Kasal"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Tumitibok na puso"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Biyak na puso"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Dalawang puso"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Nagniningning na puso"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Lumalaking puso"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Puso na may palaso"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Asul na puso"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Berdeng puso"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Dilaw na puso"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Purple na puso"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Pusong may ribbon"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Mga umiikot na puso"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Dekorasyong puso"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Hugis diamante na may tuldok sa loob"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Electric light bulb"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Simbolo ng galit"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bomba"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Simbolo ng pagtulog"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Simbolo ng banggaan"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Simbolo ng tumataksik na pawis"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Patak"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Simbolong gitling"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Dumi"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Naka-flex na braso"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Simbolo ng nahihilo"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Speech balloon"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Balloon ng iniisip"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Puting bulaklak"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Simbolo ng isandaang puntos"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Money bag"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Palitan ng currency"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Makapal na simbolo ng dolyar"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Credit card"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Pera na may simbolo ng yen"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Pera na may simbolo ng dolyar"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Pera na may simbolo ng euro"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Pera na may simbolo ng pound"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Pera na may mga pakpak"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Chart na may pataas na trend at simbolo ng yen"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Upuan"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Personal computer"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Briefcase"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Minidisc"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Floppy disk"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Optical disc"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"Dvd"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Folder ng file"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Nakabukas na folder ng file"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Page na may curl"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Page na nakaharap"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Kalendaryo"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Tear-off na kalendaryo"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Index ng card"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Chart na may pataas na trend"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Chart na may pababang trend"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Bar chart"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Clipboard"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Pushpin"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Round pushpin"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Paperclip"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Straight ruler"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Triangular ruler"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Mga tab ng bookmark"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Ledger"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Kwaderno"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Kwadernong may dekorasyon ang pabalat"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Nakasarang aklat"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Nakabukas na aklat"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Berdeng aklat"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Asul na aklat"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Orange na aklat"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Mga Aklat"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Badge ng pangalan"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Scroll"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Memo"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Receiver ng telepono"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Pager"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Fax machine"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Satellite antenna"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Public address loudspeaker"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Cheering megaphone"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Outbox tray"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Inbox tray"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Package"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Simbolo ng e-mail"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Papasok na sobre"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Sobre na may pababang arrow sa itaas"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Nakasarang mailbox na may nakaababang flag"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Nakasarang mailbox na may nakataas na flag"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Nakabukas na mailbox na may nakataas na flag"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Nakabukas na mailbox na may nakababang flag"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Postbox"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Postal horn"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Pahayagan"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Mobile phone"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Mobile phone na may pakanang arrow sa kaliwa"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Vibration mode"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"I-off ang mobile phone"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Walang mga mobile phone"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Antenna na may mga bar"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Camera"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Video camera"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Telebisyon"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Radyo"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Videocassette"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Mga naka-twist na pakanang arrow"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Mga pakanan at pakaliwang arrow sa pakanang oryentasyon na bumubuo ng bilog"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Mga pakanan at pakaliwang arrow sa pakanang oryentasyon na bumubuo ng bilog na may overlay na numerong isa na nasa bilog"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Mga pababa at pataas na arrow sa pakanang oryentasyon na bumubuo ng bilog"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Mga pababa at pataas na arrow sa pakaliwang oryentasyon na bumubuo ng bilog"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Simbolo ng mababang brightness"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Simbolo ng mataas na brightness"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Speaker na may stroke ng pagkansela"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Speaker"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Speaker na may isang sound wave"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Speaker na may tatlong sound wave"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Baterya"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Electric plug"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Magnifying glass na nakaturo pakaliwa"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Magnifying glass na nakaturo pakanan"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Lock na may ink pen"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Nakasarang lock na may susi"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Susi"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Lock"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Nakabukas na lock"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Bell"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Bell na may stroke ng pagkansela"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Bookmark"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Simbolo ng link"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Radio button"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Back na may pakaliwang arrow sa itaas"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"End na may pakaliwang arrow sa itaas"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"On na may tandang padamdam na may pakaliwa at pakanang arrow sa itaas"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Soon na may pakanang arrow sa itaas"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Top na may pataas na arrow sa itaas"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Simbolo ng walang mas bata sa labinwalong taong gulang"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Keycap ten"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Simbolo ng pag-input para sa malalaking latin na titik"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Simbolo ng pag-input para sa maliliit na latin na titik"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Simbolo ng pag-input para sa mga numero"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Simbolo ng pag-input para sa mga simbolo"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Simbolo ng pag-input para sa mga latin na titik"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Apoy"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Electric torch"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Wrench"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Martilyo"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Nut at bolt"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Hocho"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Baril"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Microscope"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Telescope"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Crystal ball"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Bituing may anim na punto na may tuldok sa gitna"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Japanese na simbolo para sa baguhan"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Emblem ng trident"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Button na itim na parisukat"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Button na puting parisukat"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Malaking pulang bilog"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Malaking asul na bilog"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Malaking orange na diamante"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Malaking asul na diamante"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Maliit na orange na diamante"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Maliit na asul na diamante"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Pulang tatsulok na nakaturo pataas"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Pulang tatsulok na nakaturo pababa"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Maliit na pulang tatsulok na nakaturo pataas"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Maliit na pulang tatsulok na nakaturo pababa"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Ala una sa orasan"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Alas dos sa orasan"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Alas tres sa orasan"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Alas kuwatro sa orasan"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Alas singko sa orasan"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Alas sais sa orasan"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Alas kuwatro sa orasan"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Alas otso sa orasan"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Alas nuwebe sa orasan"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Alas diyes sa orasan"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Alas onse sa orasan"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Alas dose sa orasan"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Ala una y medya sa orasan"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Alas dos y medya sa orasan"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Alas tres y medya sa orasan"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Alas kuwatro y medya sa orasan"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Alas singko y medya sa orasan"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Alas sais y medya sa orasan"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Alas siyete y medya sa orasan"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Alas otso y medya sa orasan"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Alas nuwebe y medya sa orasan"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Alas diyes y medya sa orasan"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Alas onse y medya sa orasan"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Alas dose y medya sa orasan"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Mount fuji"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Tokyo tower"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Statue of liberty"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Anino ng japan"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moyai"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Nakangising mukha"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Nakangising mukha na may masasayang mata"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Mukha na may mga luha ng kasiyahan"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Nakangiting mukha na may nakabukas na bibig"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Nakangiting mukha na may nakabukas na bibig at masasayang mata"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Nakangiting mukha na may nakabukas na bibig at malamig na pawis"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Nakangiting mukha na may nakabukas na bibig at mga nakapikit na mata"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Nakangiting mukha na may halo"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Nakangiting mukha na may mga sungay"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Kumikindat na mukha"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Nakangiting mukha na may masasayang mata"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Mukha na numanamnam ng masarap na pagkain"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Guminhawang mukha"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Nakangiting mukha na may mga matang hugis-puso"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Nakangiting mukha na may salamin"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Nakangising mukha"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Mukha na walang emosyon"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Mukha na walang emosyon"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Mukha na hindi natutuwa"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Mukha na may malamig na pawis"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Nag-iisip na mukha"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Nalilitong mukha"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Naguguluhang mukha"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Humahalik na mukha"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Mukha na humahalik"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Humahalik na mukha na may masasayang mata"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Humahalik na mukha na may mga nakapikit na mata"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Mukha na nakadila"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Mukha na nakadila at kumikindat"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Mukha na nakadila at nakapikit ang mga mata"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Nabigong mukha"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Nag-aalalang mukha"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Nagagalit na mukha"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Naghihimutok na mukha"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Umiiyak na mukha"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Nagsisikap na mukha"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Mukha ng nagtagumpay"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Nabigo ngunit guminhawang mukha"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Nakasimangot na mukha na may nakabukas na bibig"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Nasasaktang mukha"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Natatakot na mukha"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Pagod na mukha"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Inaantok na mukha"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Pagod na mukha"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Nakangiwing mukha"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Mukha na umiiyak nang todo"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Mukha na may nakabukas na bibig"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Naghihintay na mukha"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Mukha na may nakabukas na bibig at malamig na pawis"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Mukha na sumisigaw sa takot"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Nagulat na mukha"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Nahihiyang mukha"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Natutulog na mukha"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Nahihilong mukha"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Mukha na walang bibig"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Mukha na may medical mask"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Nakangising mukha ng pusa na may masasayang mata"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Mukha ng pusa na may mga luha ng kasiyahan"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Nakangiting mukha ng pusa na may nakabukas na bibig"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Nakangiting mukha ng pusa na may mga mata na hugis-puso"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Mukha ng pusa na nakangiti"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Humahalik na mukha ng pusa na may mga nakapikit na mata"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Naghihimutok na mukha ng pusa"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Umiiyak na mukha ng pusa"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Pagod na mukha ng pusa"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Mukha na sumesenyas na hindi pwede"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Mukha na sumesenyas na ok"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Taong yumuyuko nang todo"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Unggoy na ayaw makakita ng masamang bagay"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Unggoy na ayaw makarinig ng masamang bagay"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Unggoy na ayaw magsabi ng masamang bagay"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Masayang tao na nagtataas ng isang kamay"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Taong nagtataas ng dalawang kamay bilang selebrasyon"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Nakasimangot na tao"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Naghihimutok na tao"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Tao na nakatiklop ang mga kamay"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Rocket"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Helicopter"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Steam locomotive"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Railway car"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"High-speed na tren"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"High-speed na tren na may bullet nose"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Tren"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Metro"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Light rail"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Istasyon"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Tram"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Tram car"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Bus"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Paparating na bus"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Trolleybus"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Sakayan ng bus"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Minibus"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Ambulansya"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Fire engine"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Sasakyan ng pulis"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Paparating na sasakyan ng pulis"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taxi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Paparating na taxi"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Sasakyan"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Paparating na sasakyan"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Recreational vehicle"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Delivery truck"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Articulated lorry"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Traktora"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Monorail"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Mountain railway"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Suspension railway"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Mountain cableway"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Aerial tramway"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Barko"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Bangka"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Speedboat"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Pahalang na ilaw-trapiko"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Patayong ilaw-trapiko"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Simbolo ng konstruksyon"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Umiikot na ilaw ng mga sasakyan ng pulis"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Tatsulok na bandila sa poste"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Pinto"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Simbolong bawal pumasok"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Simbolo ng pwedeng manigarilyo"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Simbolo ng bawal manigarilyo"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Simbolo ng itapon ang basura sa tamang lugar"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Simbolo ng huwag magkalat"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Simbolo ng naiinom na tubig"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Simbolo ng hindi naiinom na tubig"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Bisikleta"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Bawal ang mga bisikleta"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Nagbibisikleta"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Mountain bicyclist"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Tumatawid"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Bawal tumawid"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Tawiran ng mga bata"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Simbolo ng mga lalaki"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Simbolo ng mga babae"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Restroom"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Simbolo ng sanggol"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Palikuran"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Inodoro"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Shower"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Paliguan"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Bathtub"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Kailangan ng pasaporte"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Customs"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Kuhaan ng bagahe"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Naiwang bagahe"</string>
+</resources>
diff --git a/java/res/values-tl/strings-talkback-descriptions.xml b/java/res/values-tl/strings-talkback-descriptions.xml
index f601ad4..1d06d20 100644
--- a/java/res/values-tl/strings-talkback-descriptions.xml
+++ b/java/res/values-tl/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Walang tekstong inilagay"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"Itinatama ng <xliff:g id="KEY_NAME">%1$s</xliff:g> ang <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> sa <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"Nagsasagawa ang <xliff:g id="KEY_NAME">%1$s</xliff:g> ng auto-correction"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Walang suhestyon"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Hindi alam na character"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Marami pang simbolo"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Capital I, tuldok sa itaas"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Hindi alam na simbolo"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Hindi alam na emoji"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Tinatamad na mukha"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Nahihiya na mukha"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Mukha na nakasuot ng salamin"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Nagulat na mukha"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Humahalik na mukha"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Nakasimangot na mukha"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Available ang mga alternatibong character"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Dini-dismiss ang mga alternatibong character"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Available ang mga alternatibong suhestyon"</string>
diff --git a/java/res/values-tl/strings.xml b/java/res/values-tl/strings.xml
index 8282678..0f8f785 100644
--- a/java/res/values-tl/strings.xml
+++ b/java/res/values-tl/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Mag-vibrate sa keypress"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Tumunog sa keypress"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Mag-popup sa keypress"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Mga Kagustuhan"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Mga Account &amp; Privacy"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Hitsura &amp; Mga Layout"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Pagta-type Gamit ang Galaw"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Pagwawasto ng text"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Advanced"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"I-enable ang split keyboard"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Pag-sync ng Google Keyboard"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Naka-on ang pag-sync"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"I-sync ang iyong personal na diksyunaryo sa mga device"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"I-sync ngayon"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"I-delete ang cloud data"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Dine-delete ang iyong naka-sync na data sa Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Ide-delete sa cloud ang iyong na-sync na data. Sigurado ka ba?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"I-delete"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Kanselahin"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Masi-sync at maba-back up ang iyong personal na dictionary sa mga server ng Google. Maaaring kolektahin ang istatistikal na impormasyon ng dalas ng salita upang makatulong na pahusayin ang aming mga produkto. Susunod ang pagkolekta at paggamit ng lahat ng impormasyon sa "<a href="https://www.google.com/policies/privacy">"Patakaran sa Privacy ng Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Mangyaring magdagdag ng Google account sa device na ito upang i-enable ang feature na ito"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Lipat iba paraan ng input"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Saklaw din ng key ng pagpalit ng wika ang ibang paraan ng input"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Key ng panlipat ng wika"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Ipakita kapag maraming wika ng input na pinagana"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Ipakita ang indicator ng slide"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Magpakita ng visual cue kapag nag-i-slide sa Shift o Symbol key"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Balewala antala key popup"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Walang antala"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Default"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Pangunahing diksyunaryo"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Magpakita ng mga suhestiyon ng pagwawasto"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Ipakita ang mga iminumungkahing salita habang nagta-type"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Palaging ipakita"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Ipakita sa portrait na mode"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Palaging itago"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"I-block nakakapanakit na salita"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Huwag magmungkahi ng mga maaaring nakakapanakit na salita"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Awtomatiko pagwasto"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Voice input key"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Walang naka-enable na pamamaraan ng pag-input ng boses. Suriin ang mga setting ng Pag-input ng wika."</string>
     <string name="configure_input_method" msgid="373356270290742459">"I-configure ang mga pamamaraan ng pag-input"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Mag-input ng mga wika"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Magpadala ng feedback"</string>
-    <string name="select_language" msgid="3693815588777926848">"Mga wika ng input"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Mga Wika"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Tulong at feedback"</string>
+    <string name="select_language" msgid="5709487854987078367">"Mga Wika"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Pinduting muli upang i-save"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Pumindot dito upang mag-save"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Available ang diksyunaryo"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Tema ng keyboard"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Lumipat ng account"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Walang mga account na pinili"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Kasalukuyang ginagamit ang <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Kanselahin"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Mag-sign out"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Pumili ng account na gagamitin"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Ingles (UK)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Ingles (Estados Unidos)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Spanish (US)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Serbian (Latin)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Ingles (UK) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Ingles (US) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Spanish (US) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Serbian (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Traditional)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Cyrillic)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Latin)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Compact)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Walang wika (Alpabeto)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alpabeto (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alpabeto (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alpabeto (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alpabeto (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Tema ng keyboard"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Custom style ng input"</string>
     <string name="add_style" msgid="6163126614514489951">"Dagdag style"</string>
     <string name="add" msgid="8299699805688017798">"Idagdag"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Paganahin"</string>
     <string name="not_now" msgid="6172462888202790482">"Hindi ngayon"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Umiiral na ang parehong estilo ng input: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Key long press delay"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Tagal ng vibration ng keypress"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Volume ng tunog ng keypress"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Magbasa ng panlabas na file ng diksyunaryo"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Walang mga file ng diksyunaryo sa folder na Mga Download"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Pumili ng file ng diksyunaryo na ii-install"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Talagang ii-install ang file na ito para sa <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Nagkaroon ng error"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Key long press delay"</string>
     <string name="button_default" msgid="3988017840431881491">"Default"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Maligayang pagdating sa <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"gamit ang Gesture na Pag-type"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Ngayon, mata-type mo na ang lahat ng paborito mong apps gamit ang <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Mag-configure ng mga karagdagang wika"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Tapos na"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Ipakita ang icon ng app"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Ipakita ang icon ng application sa launcher"</string>
     <string name="app_name" msgid="6320102637491234792">"Provider ng Diksyunaryo"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Provider ng Diksyunaryo"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Serbisyo ng Diksyunaryo"</string>
diff --git a/java/res/values-tr/strings-emoji-descriptions.xml b/java/res/values-tr/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..58a43ac
--- /dev/null
+++ b/java/res/values-tr/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Telif hakkı işareti"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Tescil işareti"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Çift ünlem işareti"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Ünlemli soru işareti"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Ticari marka işareti"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Bilgi kaynağı"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Sol ve sağ ok"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Yukarı ve aşağı ok"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Kuzey batı oku"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Kuzey doğu oku"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Güney doğu oku"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Güney batı oku"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Kancalı sol ok"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Kancalı sağ ok"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Kol saati"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Kum saati"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Sağa bakan siyah çift üçgen"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Sola bakan siyah çift üçgen"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Yukarı bakan siyah çift üçgen"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Aşağı bakan siyah çift üçgen"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Çalar saat"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Kumu akan kum saati"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Daire içinde büyük M harfi"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Küçük siyah kare"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Beyaz küçük kare"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Sağa bakan siyah üçgen"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Sola bakan siyah üçgen"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Beyaz orta boy kare"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Siyah orta boy kare"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Beyaz orta boy küçük kare"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Siyah orta boy küçük kare"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Parlayan siyah güneş"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Bulut"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Siyah telefon"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Onay işaretli kutu"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Yağmur damlaları ve şemsiye"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Sıcak içecek"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Yukarı işaret eden beyaz işaret parmağı"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Beyaz gülen yüz"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Koç"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Boğa"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"İkizler"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Yengeç"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Aslan"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Başak"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Terazi"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Akrep"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Yay"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Oğlak"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Kova"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Balık"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Siyah maça"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Siyah sinek"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Siyah kupa"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Siyah karo"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Sıcak kaynak"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Siyah genel geri dönüşüm simgesi"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Tekerlekli sandalye simgesi"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Çapa"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Dikkat işareti"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Yüksek voltaj işareti"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Orta boy beyaz daire"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Orta boy siyah daire"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Futbol topu"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Beyzbol"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Karsız kardan adam"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Bulutun arkasında güneş"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Yılancı"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Girilmez"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Kilise"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Fıskiye"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Delikteki bayrak"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Yelkenli"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Çadır"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Yakıt pompası"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Siyah makas"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Büyük beyaz onay işareti"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Uçak"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Zarf"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Havadaki yumruk"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Havadaki el"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Zafer işareti"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Kalem"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Siyah kelam ucu"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Büyük onay işareti"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Büyük çarpı işareti"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Pırıltılar"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Sekizli yıldız"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Sekizli siyah yıldız"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Kar tanesi"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Parıltı"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Çarpı işareti"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Siyah kare içinde beyaz çarpı işareti"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Siyah dekoratif soru işareti"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Beyaz dekoratif soru işareti"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Beyaz dekoratif ünlem işareti"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Büyük ünlem işareti"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Ağır kara yürek"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Büyük artı işareti"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Büyük eksi işareti"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Büyük bölme işareti"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Siyah sağ ok"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Kıvrımlı döngü"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Çift kıvrımlı döngü"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Sağa ve ardından yukarı giden ok"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Sağa ve ardından aşağı giden ok"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Siyah sol ok"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Siyah yukarı ok"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Siyah aşağı ok"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Siyah büyük kare"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Beyaz büyük kare"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Beyaz orta boy yıldız"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Büyük daire"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Dalga işareti"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Sırayı belirten işaret"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Daire içinde tebrik işareti"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Daire içinde gizli işareti"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Mahjong taşı kızıl ejderha"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"İskambil kartı siyah joker"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Kan grubu A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Kan grubu B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Kan grubu O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Park yeri"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Kan grubu AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"Kare içinde CL"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Kare içinde havalı"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Kare içinde özgür"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"Kare içinde kimlik"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Kare içinde yeni"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Kare içinde NG"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Kare içinde OK"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"Kare içinde SOS"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Kare içinde ünlem ile birlikte yukarı işareti"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Kare içinde vs"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Kare içinde katakana burada"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Kare içinde katakana hizmet"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Kare içinde ücretsiz işareti"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Kare içinde ayrılmış koltuk işareti"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Kare içinde yasak işareti"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Kare içinde boş işareti"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Kare içinde kabul işareti"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Kare içinde dolu işareti"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Kare içinde ödendi işareti"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Kare içinde aylık işareti"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Kare içinde uygulama işareti"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Kare içinde indirim işareti"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Kare içinde çalışıyor işareti"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Daire içinde avantaj işareti"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Daire içinde kabul işareti"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Siklon"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Sisli"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Kapalı şemsiye"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Yıldızlı gece"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Dağların üzerinden gün doğuşu"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Gün doğuşu"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Akşam üstü şehir manzarası"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Binaların üzerinden gün batışı"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Gökkuşağı"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Gece vakti köprü"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Su dalgası"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Yanardağ"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Samanyolu"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Dünya avrupa-afrika"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Dünya amerika kıtası"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Dünya asya-avustralya"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Dünya boylamlar"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Hilal simgesi"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Hilalden sonraki evrede ay simgesi"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"İlk dördün ay simgesi"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Şişkin ay simgesi"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Dolunay simgesi"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Küçülen ay simgesi"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Son dördün ay simgesi"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Küçülen hilal simgesi"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Hilal"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Yüzü olan yani ay"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Yüzü olan ilk dördün ay"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Yüzü olan son dördün ay"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Yüzü olan dolunay"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Yüzü olan güneş"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Parlayan yıldız"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Kayan yıldız"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Kestane"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Fide"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Yaprak dökmeyen ağaç"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Yaprak döken ağaç"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palmiye ağacı"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Kaktüs"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Lale"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Kiraz çiçeği"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Gül"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Amber çiçeği"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Ayçiçeği"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Ağaç çiçeği"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Mısır başağı"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Pirinç başağı"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Ot"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Dört yapraklı yonca"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Akçaağaç yaprağı"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Düşen yaprak"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Rüzgarda yaprak"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Mantar"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Domates"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Patlıcan"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Üzüm"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Kavun"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Karpuz"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Mandalina"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Limon"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Muz"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ananas"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Kırmızı elma"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Yeşil elma"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Armut"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Şeftali"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Kiraz"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Çilek"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburger"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Pizza dilimi"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Kemikli et"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Tavuk butu"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Pirinç krakeri"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Pirinç köftesi"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Pilav"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Körili pilav"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Çanak"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Spagetti"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Ekmek"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Patates kızartması"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Kızarmış tatlı patates"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Suşi"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Karides tava"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Rulo balık köftesi"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Yumuşak dondurma"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Meyveli buz"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Dondurma"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Halka çörek"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Çerez"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Çubuk çikolata"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Şeker"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lolipop"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Krema"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Bal kabı"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Kurabiye"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Japon Bento paketi"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Yiyecek kasesi"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Yemek pişirme"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Çatal ve bıçak"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Kulpsuz çay fincanı"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Sake şişesi ve fincanı"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Şarap bardağı"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Kokteyl bardağı"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Tropikal içecek"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Bira bardağı"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Bira bardağı tokuşturma"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Biberon"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Kurdele"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Paketli hediye"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Doğum günü pastası"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Balkabağından fener"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Noel ağacı"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Noel baba"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Havai fişekler"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Maytap"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Balon"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Parti konfetisi"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Konfeti topu"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Tanabata ağacı"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Çapraz bayraklar"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Çam süslemesi"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Japon bebekler"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Sazan balığı şekilli flama"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Rüzgar çanı"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Ay izleme töreni"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Okul çantası"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Mezuniyet kepi"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Atlıkarınca"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Dönme dolap"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Lunapark hız treni"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Kamış olta ve balık"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Mikrofon"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Film kamerası"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Sinema"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Kulaklık"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Ressam paleti"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Silindir şapka"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Sirk çadırı"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Bilet"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Film çekim tahtası"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Gösteri sanatları"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Video oyunu"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Tam isabet"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Kumar makinesi"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Bilardo"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Oyun zarı"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Bowling"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Çiçekli oyun kartları"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Müzik notası"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Birden fazla müzik notası"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saksafon"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Gitar"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Müzik klavyesi"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Trompet"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Keman"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Partisyon"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Kuşaklı koşu tişörtü"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Tenis raketi ve topu"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Kayak ve kayak ayakkabısı"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Basket topu ve pota"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Damalı bayrak"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Kar kayakçısı"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Koşucu"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Sörfçü"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Kupa"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"At yarışı"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Amerikan futbolu"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Ragbi"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Yüzücü"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Ev inşaatı"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Bahçeli ev"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Ofis binası"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Japon postanesi"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Avrupa postanesi"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Hastane"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Banka"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"ATM"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Otel"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Aşk oteli"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Bakkal"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Okul"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Alışveriş merkezi"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Fabrika"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Izakaya feneri"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Japon kalesi"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Avrupa kalesi"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Sıçan"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Fare"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Öküz"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Manda"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"İnek"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Leopar"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Tavşan"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Kedi"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Ejderha"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Timsah"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Balina"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Salyangoz"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Yılan"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"At"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Koç"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Keçi"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Koyun"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Maymun"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Horoz"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Tavuk"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Köpek"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Domuz"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Yaban domuzu"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Fil"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Ahtapot"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Spiral deniz kabuğu"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Böcek"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Karınca"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Bal arısı"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Uğur böceği"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Balık"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Tropikal balık"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Balon balığı"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Kaplumbağa"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Yumurtadan çıkan civciv"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Civciv"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Öne bakan civciv"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Kuş"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Penguen"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Kaniş"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Hecin devesi"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Çift hörgüçlü deve"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Yunus"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Fare yüzü"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"İnek yüzü"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Kaplan yüzü"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Tavşan yüzü"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Kedi yüzü"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Ejderha yüzü"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Su püskürten balina"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"At yüzü"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Maymun yüzü"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Köpek yüzü"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Domuz yüzü"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Kurbağa yüzü"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Hamster yüzü"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Kurt yüzü"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Ayı yüzü"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Panda yüzü"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Domuz burnu"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Pati izleri"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Gözler"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Kulak"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Burun"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Ağız"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Dil"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Yukarıyı işaret eden beyaz parmak"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Aşağıyı işaret eden beyaz parmak"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Solu işaret eden beyaz parmak"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Sağı işaret eden beyaz parmak"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Yumruk işareti"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"El sallama işareti"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Tamam işareti"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Beğendim işareti"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Beğenmedim işareti"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Alkış işareti"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Açık eller işareti"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Taç"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Kadın şapkası"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Gözlük"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Kravat"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Tişört"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Kot pantolon"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Elbise"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Kadın elbiseleri"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Cüzdan"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"El çantası"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Kese"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Erkek ayakkabısı"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Spor ayakkabısı"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Yüksek topuklu ayakkabı"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Kadın sandaleti"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Kadın çizmesi"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Ayak izleri"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Büst silüeti"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Büst silüetleri"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Erkek çocuk"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Kız çocuk"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Erkek"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Kadın"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Aile"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Erkek ve kadın el ele"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"İki erkek el ele"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"İki kadın el ele"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Polis memuru"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Tavşan kulaklı kadın"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Duvaklı gelin"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Sarışın kişi"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Gua pi mao şapkalı adam"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Sarıklı adam"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Yaşlı adam"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Yaşlı kadın"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Bebek"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"İnşaat işçisi"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Prenses"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Japon canavarı"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Japon cini"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Hayalet"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Bebek melek"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Uzaylı"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Uzaylı canavar"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Küçük şeytan"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Kafatası"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Danışma masası görevlisi"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Muhafız"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Dansçı"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Ruj"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Tırnak cilası"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Yüz masajı"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Saç kesme"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Berber işareti"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Şırınga"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Hap"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Öpücük izi"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Aşk mektubu"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Zil"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Mücevher"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Öpücük"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Buket"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Kalpli çift"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Düğün"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Çarpan kalp"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Kırık kalp"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"İki kalp"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Parlayan kalp"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Büyüyen kalp"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Oklu kalp"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Mavi kalp"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Yeşil kalp"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Sarı kalp"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Mor kalp"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Kurdeleli kalp"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Dönen kalpler"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Kalpli süsleme"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"İçi noktalı elmas şekli"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Ampul"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Kızgınlık simgesi"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bomba"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Uyuma simgesi"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Çarpışma simgesi"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Su gibi terleme simgesi"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Damlacık"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Hızla koşma simgesi"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Pislik yığını"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Sıkılmış pazılar"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Şaşkın simgesi"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Konuşma balonu"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Düşünce balonu"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Beyaz çiçek"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Yüz puan simgesi"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Para çantası"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Döviz bozdurma"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Koyu renk dolar işareti"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Kredi kartı"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Yen işaretli kağıt para"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Dolar işaretli kağıt para"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Avro işaretli kağıt para"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Sterlin işaretli kağıt para"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Kanatlı para"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Yukarı giden grafik ve yen işareti"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Koltuk"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Kişisel bilgisayar"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Evrak çantası"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Mini disk"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Disket"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Optik disk"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"Dvd"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Dosya klasörü"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Dosya klasörü aç"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Kıvrık sayfa"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Yukarı bakan sayfa"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Takvim"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Yapraklı takvim"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Kart fihristi"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Yukarı giden grafik"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Aşağı giden grafik"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Çubuk grafik"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Pano"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Raptiye"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Yuvarlak başlı raptiye"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Ataş"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Düz cetvel"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Üçgen cetvel"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Yer işaretleri"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Ana Defter"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Not Defteri"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Süslü kapaklı not defteri"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Kapalı kitap"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Açık kitap"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Yeşil kitap"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Mavi kitap"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Turuncu kitap"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Kitaplar"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"İsim rozeti"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Kaydırma"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Not"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Telefon alıcısı"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Çağrı Cihazı"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Faks cihazı"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Uydu anteni"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Megafon"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Neşeli megafon"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Giden kutusu"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Gelen kutusu"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Paket"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"E-posta simgesi"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Gelen zarf"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Üstünde aşağı ok bulunan zarf"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"İşareti indirilmiş kapalı posta kutusu"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"İşareti kaldırılmış kapalı posta kutusu"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"İşareti kaldırılmış açık posta kutusu"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"İşareti indirilmiş açık posta kutusu"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Posta kutusu"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Posta borusu"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Gazete"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Cep telefonu"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Solunda sağ ok bulunan cep telefonu"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Titreşim modu"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Cep telefonu kapalı"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Cep telefonu yasak"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Çubuklu anten"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Kamera"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Video kamera"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Televizyon"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Radyo"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Video Kaset"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Bükülü sağ oklar"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Saat yönünde sağ ve sol açık daire oklar"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"İçinde 1 rakamı olan daire ve saat yönünde sağ ve sol açık daire oklar"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Saat yönünde aşağı ve yukarı açık daire oklar"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Saat yönünün aksine aşağı ve yukarı açık daire oklar"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Düşük parlaklık simgesi"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Yüksek parlaklık simgesi"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Hoparlör sesi kapalı"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Hoparlör"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Tek ses dalgalı hoparlör"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Üç ses dalgalı hoparlör"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Pil"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Elektrik fişi"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Sola bakan büyüteç"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Sağa bakan büyüteç"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Dolma kalem ucu ve kilit"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Anahtar ve kapalı kilit"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Anahtar"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Kilit"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Açık kilit"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Zil"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Zil sesi kapalı"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Yer işareti"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Bağlantı simgesi"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Radyo düğmesi"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Sol geri ok"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"Sol bitiş oku"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"Üstünde sağ ve sol ok bulunan, ünlem işaretli açık yazısı"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Üstünde sağ ok bulunan yakında yazısı"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Üstünde yukarı ok bulunan yukarı işareti"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"18 yaşından küçükler giremez işareti"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Klavye tuşu 10"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Latin büyük harf giriş simgesi"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Latin küçük harf giriş simgesi"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Rakam giriş simgesi"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Simgeler için giriş simgesi"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Latin harfi giriş simgesi"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Ateş"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Pilli fener"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"İngiliz anahtarı"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Çekiç"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Cıvata ve somun"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Bıçak"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Tabanca"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Mikroskop"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Teleskop"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Kristal küre"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Ortası noktalı, altı köşeli yıldız"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Acemi anlamında Japon simgesi"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Üç çatallı amblem"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Siyah kare düğmesi"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Beyaz kare düğmesi"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Büyük kırmızı daire"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Büyük mavi daire"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Büyük turuncu baklava şekli"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Büyük mavi baklava şekli"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Küçük turuncu baklava şekli"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Küçük mavi baklava şekli"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Yukarıya işaret eden kırmızı üçgen"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Aşağıya işaret eden kırmızı üçgen"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Yukarıya işaret eden küçük kırmızı üçgen"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Aşağıya işaret eden küçük kırmızı üçgen"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Saat bir"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Saat iki"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Saat üç"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Saat dört"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Saat beş"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Saat altı"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Saat yedi"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Saat sekiz"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Saat dokuz"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Saat on"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Saat on bir"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Saat on iki"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Saat bir buçuk"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Saat iki buçuk"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Saat üç buçuk"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Saat dört buçuk"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Saat beş buçuk"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Saat altı buçuk"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Saat yedi buçuk"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Saat sekiz buçuk"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Saat dokuz buçuk"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Saat on buçuk"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Saat on bir buçuk"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Saat yarım"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Fuji dağı"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Tokyo kulesi"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Özgürlük heykeli"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Japonya silüeti"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moyai heykeli"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Sırıtan yüz"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Gözleri gülen, sırıtan yüz"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Mutluluk gözyaşı döken yüz"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Ağzı açık gülen yüz"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Ağzı açık, gözleri gülen yüz"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Soğuk soğuk terleyen, ağzı açık, gözleri gülen yüz"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Gözleri sıkı kapalı, ağzı açık, gülen yüz"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Başı haleli gülen yüz"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Boynuzlu gülen yüz"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Göz kırpan yüz"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Gözleri gülen yüz"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Lezzetli yemeğin tadını çıkaran yüz"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Rahatlamış yüz"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Gözleri kalp şeklinde gülen yüz"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Gözlüklü gülen yüz"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Yapmacık gülen yüz"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Duygusuz yüz"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"İfadesiz yüz"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Keyifsiz yüz"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Soğuk soğuk terleyen yüz"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Düşünceli yüz"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Şaşkın yüz"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Afallamış yüz"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Öpen yüz"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Öpücük gönderen yüz"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Gözleri gülen, öpen yüz"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Gözleri kapalı öpen yüz"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Dili dışarıda yüz"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Dili dışarıda göz kırpan yüz"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Dili dışarıda, gözleri sımsıkı kapalı yüz"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Üzgün yüz"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Endişeli yüz"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Kızgın yüz"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Asık yüz"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Ağlayan yüz"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Azimli yüz"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Zafer kazanmış yüz"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Üzgün ancak rahatlamış yüz"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Ağzı açık hoşnutsuz yüz"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Üzüntülü yüz"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Korkmuş yüz"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Yorgun yüz"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Uykulu yüz"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Bitkin yüz"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Ekşi yüz"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Bağıra çağıra ağlayan yüz"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Ağzı açık yüz"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Susmuş yüz"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Soğuk soğuk terleyen, ağzı açık yüz"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Korkuyla bağıran yüz"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Çok şaşırmış yüz"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Kızarmış yüz"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Uyuyan yüz"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Sersemlemiş yüz"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Ağzı olmayan yüz"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Tıbbi maskeli yüz"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Gülen gözlü, sırıtan kedi yüzü"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Mutluluk gözyaşları döken kedi yüzü"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Ağzı açık, gülen kedi yüzü"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Gözleri kalp şeklinde gülen kedi yüzü"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Acı acı gülen kedi yüzü"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Gözleri kapalı, öpen kedi yüzü"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Somurtmuş kedi yüzü"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Ağlayan kedi yüzü"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Yorgun kedi yüzü"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"İyi değil hareketi yapan yüz"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Onaylayan ifadeye sahip yüz"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Başıyla abartılı şekilde onaylayan kişi"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Görmeyen maymun"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Duymayan maymun"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Konuşmayan maymun"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Mutlu şekilde bir elini kaldırmış kişi"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Kutlama için ellerini kaldırmış kişi"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Hoşnutsuz kişi"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Somurtkan yüzlü kişi"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Ellerini birleştirmiş kişi"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Roket"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Helikopter"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Buharlı lokomotif"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Vagon"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Yüksek hızlı tren"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Mermi burunlu, yüksek hızlı tren"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Tren"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Metro"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Hafif raylı sistem"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"İstasyon"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Tramvay"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Tramvay vagonu"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Otobüs"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Gelen otobüs"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Troleybüs"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Otobüs durağı"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Minibüs"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Cankurtaran"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"İtfaiye"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Polis arabası"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Gelen polis arabası"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taksi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Gelen taksi"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Otomobil"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Gelen otomobil"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Eğlence taşıtı"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Kamyon"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Tır"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Traktör"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Tek raylı sistem"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Dağ demiryolu"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Hava ray sistemi"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Teleferik"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Hava tramvayı"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Gemi"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Tekne"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Hız teknesi"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Yatay trafik ışığı"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Dikey trafik ışığı"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"İnşaat işareti"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Polis arabası ışığı"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Üçgen konum işareti"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Kapı"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Girilmez işareti"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Sigara içilir işareti"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Sigara içilmez simgesi"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Çöpe atınız işareti"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Yere çöp atmayınız işareti"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"İçilebilir su işareti"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"İçilemez su işareti"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Bisiklet"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Bisiklet giremez"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Bisikletçi"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Dağ bisikletçisi"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Yaya"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Yaya giremez"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Okul geçidi"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Erkekler için işareti"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Kadınlar için işareti"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Tuvalet"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Bebek işareti"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Tuvalet"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Tuvalet"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Duş"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Banyo"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Küvet"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Pasaport kontrolü"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Gümrük"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Bagaj alma yeri"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Kayıp bagaj"</string>
+</resources>
diff --git a/java/res/values-tr/strings-talkback-descriptions.xml b/java/res/values-tr/strings-talkback-descriptions.xml
index a810eda..cd72c8a 100644
--- a/java/res/values-tr/strings-talkback-descriptions.xml
+++ b/java/res/values-tr/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Metin girilmedi"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g>, <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> kelimesini <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> olarak düzeltir"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> otomatik düzeltme yapar"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Öneri yok"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Bilinmeyen karakter"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Üst karakter"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Diğer simgeler"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Büyük Harf I, üst noktalı"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Bilinmeyen simge"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Bilinmeyen emoji"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Sıkılmış yüz"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Utanmış yüz"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Güneş gözlüğü takan yüz"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Şaşırmış yüz"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Öpen yüz"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Çatık kaşlı yüz"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Alternatif karakterler kullanılabilir"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Alternatif karakterler yoksayılır"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Alternatif öneriler kullanılabilir"</string>
diff --git a/java/res/values-tr/strings.xml b/java/res/values-tr/strings.xml
index d48ab7b..072a98f 100644
--- a/java/res/values-tr/strings.xml
+++ b/java/res/values-tr/strings.xml
@@ -26,24 +26,30 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Tuşa basıldığında titret"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Tuşa basıldığında ses çıkar"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Tuşa basıldığında pop-up aç"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Tercihler"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Hesaplar ve Gizlilik"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Görünüm ve Düzenler"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Hareketle Yazma"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Metin düzeltme"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Gelişmiş"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Tema"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Bölünmüş klavyeyi etkinleştir"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google Klavye Senkronizasyonu"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Senkronizasyon açık"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Kişisel sözlüğünüzü cihazlar arasında senkronize edin"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Şimdi senkronize et"</string>
+    <!-- no translation found for clear_sync_data_title (8582001557037069154) -->
     <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Senkronize edilmiş verilerinizi Google\'dan siler"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Senkronize edilmiş verileriniz buluttan silinecek. Emin misiniz?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Sil"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"İptal"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Kişisel sözlüğünüz senkronize edilecek ve Google sunucularına yedeklenecektir. Ürünlerimizi iyileştirmeye yardımcı olması için kelime sıklığına ilişkin istatistiksel bilgiler toplanabilir. Tüm bilgilerin toplanması ve kullanımı "<a href="https://www.google.com/policies/privacy">"Google\'ın Gizlilik Politikası"</a>"\'na uygun olarak gerçekleştirilir."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Bu özelliği etkinleştirmek için cihaza bir Google Hesabı ekleyin"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Diğer giriş yöntemine geç"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Dil geçiş tuşu diğer giriş yöntemlerini de kapsar"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Dil değiştirme tuşu"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Birden fazla giriş dili etkin olduğunda göster"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Kaydırma göstergesini aç"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Üst Karakter veya Sembol tuşlarından kaydırırken görsel ipucu ver"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Tuş popup\'ının kapatılmasını geciktirme"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Gecikme yok"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Varsayılan"</string>
@@ -54,7 +60,7 @@
     <string name="use_personalized_dicts" msgid="5167396352105467626">"Kişisel öneriler"</string>
     <string name="enable_metrics_logging" msgid="5506372337118822837">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> uygulamasını iyileştir"</string>
     <string name="use_double_space_period" msgid="8781529969425082860">"Çift boşlukla nokta ekleme"</string>
-    <string name="use_double_space_period_summary" msgid="6532892187247952799">"Boşluk çubuğuna iki kez vurmak nokta ve ardından bir boşluk ekler"</string>
+    <string name="use_double_space_period_summary" msgid="6532892187247952799">"Boşluk çubuğuna iki kez dokunmak nokta ve ardından bir boşluk ekler"</string>
     <string name="auto_cap" msgid="1719746674854628252">"Otomatik olarak büyük harf yap"</string>
     <string name="auto_cap_summary" msgid="7934452761022946874">"Her cümlenin ilk kelimesini büyük harf yap"</string>
     <string name="edit_personal_dictionary" msgid="3996910038952940420">"Kişisel sözlük"</string>
@@ -62,9 +68,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Ana sözlük"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Düzeltme önerilerini göster"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Yazarken, önerilen kelimeleri görüntüle"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Her zaman göster"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Dikey modda göster"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Her zaman gizle"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Rahatsız edici kelimeleri engelle"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Rahatsız edici olabilecek kelimeleri önerme"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Otomatik düzeltme"</string>
@@ -85,21 +88,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Ses girişi tuşu"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Hiçbir ses girişi yöntemi etkinleştirilmedi. Dil ve giriş ayarlarını kontrol edin."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Giriş yöntemlerini yapılandır"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Giriş dilleri"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Geri bildirim gönder"</string>
-    <string name="select_language" msgid="3693815588777926848">"Giriş dilleri"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Diller"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Yardım ve geri bildirim"</string>
+    <string name="select_language" msgid="5709487854987078367">"Diller"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Kaydetmek için tekrar dokunun"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Kaydetmek için buraya dokunun"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Sözlük kullanılabilir"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Klavye teması"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Hesap değiştir"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Hiçbir hesap seçilmedi"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Şu anda <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g> kullanılıyor"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"Tamam"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"İptal"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Oturumu kapat"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Kullanmak için bir hesap seçin"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"İngilizce (BK)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"İngilizce (ABD)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"İspanyolca (ABD)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hingilizce"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Sırpça (Latin alfabesi)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"İngilizce (İngiltere) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"İngilizce (ABD) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"İspanyolca (ABD) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hingilizce (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Sırpça (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Geleneksel)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Kiril)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Latin)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Kompakt)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Dil yok (Alfabe)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabe (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabe (QWERTZ)"</string>
@@ -108,16 +122,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabe (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabe (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Klavye teması"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Özel giriş stilleri"</string>
     <string name="add_style" msgid="6163126614514489951">"Stil ekle"</string>
     <string name="add" msgid="8299699805688017798">"Ekle"</string>
@@ -129,14 +134,9 @@
     <string name="enable" msgid="5031294444630523247">"Etkinleştir"</string>
     <string name="not_now" msgid="6172462888202790482">"Şimdi değil"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Aynı giriş stili zaten var: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Tuşa uzun basma gecikmesi"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Tuşa basma titreşim süresi"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Tuşa basma ses seviyesi"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Harici sözlük dosyasını oku"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"İndirilenler klasöründe sözlük dosyası yok"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Yüklemek için bir sözlük dosyası seçin"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> için bu dosya gerçekten yüklensin mi?"</string>
-    <string name="error" msgid="8940763624668513648">"Bir hata oluştu"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Tuşa uzun basma gecikmesi"</string>
     <string name="button_default" msgid="3988017840431881491">"Varsayılan"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> uygulamasına hoş geldiniz"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"Hareketle Yazmayı içerir"</string>
@@ -154,8 +154,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Artık <xliff:g id="APPLICATION_NAME">%s</xliff:g> ile tüm favori uygulamalarınızda yazabilirsiniz."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Ek dilleri yapılandırın"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Tamamlandı"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Uygulama simgesini göster"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Uygulama simgesini başlatıcıda göster"</string>
     <string name="app_name" msgid="6320102637491234792">"Sözlük Sağlayıcı"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Sözlük Sağlayıcı"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Sözlük Hizmeti"</string>
diff --git a/java/res/values-uk/strings-emoji-descriptions.xml b/java/res/values-uk/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..ca3aef3
--- /dev/null
+++ b/java/res/values-uk/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Знак \"Авторське право\""</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Знак \"Зареєстровано\""</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Подвійний знак оклику"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Знак оклику та знак запитання"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Знак торговельної марки"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Інформація"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Стрілка ліворуч-праворуч"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Стрілка вгору-вниз"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Стрілка, що вказує на північний захід"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Стрілка, що вказує на північний схід"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Стрілка, що вказує на південний схід"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Стрілка, що вказує на південний захід"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Стрілка ліворуч із гачком"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Стрілка праворуч із гачком"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Годинник"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Пісочний годинник"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Два чорні трикутники, направлені праворуч"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Два чорні трикутники, направлені ліворуч"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Два чорні трикутники, направлені вгору"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Два чорні трикутники, направлені вниз"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Будильник"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Пісочний годинник із піском, який сиплеться"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Велика латинська буква M у колі"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Малий чорний квадрат"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Малий білий квадрат"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Чорний трикутник, направлений праворуч"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Чорний трикутник, направлений ліворуч"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Середній білий квадрат"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Середній чорний квадрат"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Не дуже малий білий квадрат"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Не дуже малий чорний квадрат"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Чорне сонце з променями"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Хмара"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Чорний телефон"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Поле виборчого бюлетеня з позначкою"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Парасолька з краплями дощу"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Гарячий напій"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Білий вказівний палець, спрямований угору"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Біле всміхнене обличчя"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Овен"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Телець"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Близнюки"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Рак"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Лев"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Діва"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Терези"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Скорпіон"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Стрілець"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Козеріг"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Водолій"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Риби"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Масть \"чорна піка\""</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Масть \"чорна трефа\""</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Масть \"чорна чирва\""</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Масть \"чорна бубна\""</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Гарячі джерела"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Чорний міжнародний символ утилізації"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Символ інвалідного візка"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Якір"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Попереджувальний знак"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Знак \"Висока напруга\""</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Середнє біле коло"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Середнє чорне коло"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Футбольний м’яч"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Бейсбольний м’яч"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Сніговик без снігу"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Сонце за хмарою"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Змієносець"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"В’їзд заборонено"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Церква"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Фонтан"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Прапорець на полі для гольфу"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Вітрильник"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Намет"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Паливний насос"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Чорні ножиці"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Жирний білий прапорець"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Літак"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Конверт"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Піднятий кулак"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Піднята рука"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Жест \"Перемога\""</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Олівець"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Чорне перо"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Жирний прапорець"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Жирний знак множення \"x\""</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Блиск"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Восьмикутна зірка"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Чорна восьмикутна зірка"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Сніжинка"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Іскра"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Хрестик"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Білий хрестик у квадраті на чорному фоні"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Чорний знак запитання"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Білий знак запитання"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Білий знак оклику"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Символ жирного знаку оклику"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Велике чорне серце"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Жирний знак плюса"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Жирний знак мінуса"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Жирний знак ділення"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Чорна стрілка праворуч"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Закручена петля"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Подвійна закручена петля"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Стрілка праворуч і вгору"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Стрілка праворуч і вниз"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Чорна стрілка ліворуч"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Чорна стрілка вгору"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Чорна стрілка вниз"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Великий чорний квадрат"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Великий білий квадрат"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Середня біла зірка"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Велике жирне коло"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Хвилясте тире"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Японський знак початку частини пісні"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Ієрогліф \"Вітання\" в колі"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Ієрогліф \"Таємниця\" в колі"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Плитка \"Червоний дракон\" у грі в маджонг"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Гральна карта \"Чорний джокер\""</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Друга група крові"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Третя група крові"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Перша група крові"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Автомобільна стоянка"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Четверта група крові"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"Квадратний значок очищення"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Квадратний значок \"Круто\""</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Квадратний значок \"Безкоштовно\""</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"Квадратний значок \"Ідентифікація\""</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Квадратний значок \"Новий\""</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Квадратний значок \"Погано\""</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Квадратний значок \"O’кей\""</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"Квадратний значок \"СОС\""</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Квадратний значок \"Оновлення\" зі знаком оклику"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Квадратний значок \"Проти\""</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Квадратний значок \"Тут\", катакана"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Квадратний значок \"Сервіс\", катакана"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Ієрогліф \"Безкоштовно\" у квадраті"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Ієрогліф \"Місце заброньовано\" у квадраті"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Ієрогліф \"Заборонено\" у квадраті"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Ієрогліф \"Вакансія\" у квадраті"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Ієрогліф \"Прийнято\" у квадраті"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Ієрогліф \"Повна зайнятість\" у квадраті"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Ієрогліф \"Оплачено\" у квадраті"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Ієрогліф \"Щомісячно\" у квадраті"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Ієрогліф \"Додаток\" у квадраті"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Ієрогліф \"Знижка\" у квадраті"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Ієрогліф \"Працює\" у квадраті"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Ієрогліф \"Перевага\" в колі"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Ієрогліф \"Прийняти\" в колі"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Циклон"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Туман"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Закрита парасолька"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Зоряна ніч"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Схід сонця над горами"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Схід сонця"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Місто в сутінках"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Схід сонця над будинками"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Веселка"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Міст уночі"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Хвиля"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Вулкан"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Чумацький шлях"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Глобус, Європа й Африка"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Глобус, Америка"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Глобус, Азія та Австралія"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Глобус із меридіанами"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Символ молодого місяця"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Символ молодого півмісяця"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Символ місяця в першій чверті"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Символ зростаючого місяця"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Символ повного місяця"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Символ спадаючого місяця"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Символ місяця в останній чверті"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Символ старого місяця"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Півмісяць"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Новий місяць з обличчям"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Місяць у першій чверті з обличчям"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Місяць в останній чверті з обличчям"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Повний місяць з обличчям"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Сонце з обличчям"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Зірка, що сяє"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Метеор"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Каштан"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Саджанець"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Вічнозелене дерево"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Листяне дерево"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Пальма"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Кактус"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Тюльпан"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Вишневий цвіт"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Троянда"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Гібіскус"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Соняшник"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Цвіт"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Качан кукурудзи"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Колосся рису"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Трава"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Чотирилиста конюшина"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Кленовий листок"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Опалий листок"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Листя, що кружляє за вітром"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Гриб"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Помідор"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Баклажан"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Виноград"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Диня"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Кавун"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Мандарин"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Лимон"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Банан"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ананас"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Червоне яблуко"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Зелене яблуко"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Груша"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Персик"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Вишні"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Полуниця"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Гамбургер"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Шматок піци"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"М’ясо на кістці"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Ніжка птиці"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Рисовий крекер"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Рисова кулька"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Варений рис"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Рис із карі"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Миска з локшиною"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Спагеті"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Хліб"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Картопля фрі"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Смажений батат"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Данго"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Оден"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Суші"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Смажені креветки"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Рибна котлета у формі рулету"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"М’яке морозиво"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Льодова стружка"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Морозиво"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Пончик"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Печиво"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Плитка шоколаду"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Цукерка"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Льодяник"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Заварний крем"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Горщик із медом"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Тістечко"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Упаковка бенто"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Горщик з їжею"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Куховарство"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Виделка та ніж"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Чайна чашка без вушка"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Пляшка та чашка для саке"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Келих для вина"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Бокал для коктейлю"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Тропічний напій"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Кухоль для пива"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Кухлі з пивом, що цокаються"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Пляшечка для немовляти"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Стрічка"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Запакований подарунок"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Торт на день народження"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Ліхтар-гарбуз"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Ялинка"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Дід Мороз"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Феєрверки"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Бенгальський вогонь"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Повітряна кулька"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Хлопавка"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Кулька з конфеті"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Танабата, гілка тандзаку"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Схрещені прапорці"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Прикраси на ялинку"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Японські ляльки"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Транспарант із карпами"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Китайські дзвіночки"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Церемонія вшанування місяця"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Шкільний ранець"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Академічна шапочка"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Коник із каруселі"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Колесо огляду"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Американські гірки"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Вудка та риба"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Мікрофон"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Кінокамера"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Кінотеатр"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Навушники"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Палітра художника"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Циліндр"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Цирковий намет"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Квиток"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Нумератор із хлопавкою"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Театральне мистецтво"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Відеогра"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Пряме попадання"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Ігровий автомат"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Більярд"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Гральний кубик"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Боулінг"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Гральні карти ханафуда"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Музична нота"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Декілька музичних нот"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Саксофон"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Гітара"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Музична клавіатура"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Труба"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Скрипка"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Партитура"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Футболка зі стрічкою"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Тенісна ракетка та м’ячик"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Лижа й лижний черевик"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Баскетбольний м’яч і кільце"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Картатий прапорець"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Сноубордист"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Бігун"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Серфінгіст"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Трофей"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Кінні перегони"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Американський футбол"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Регбі"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Плавець"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Будинок"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Будинок із садом"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Офісна будівля"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Японська пошта"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Європейська пошта"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Лікарня"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Банк"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Банкомат"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Готель"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Готель для закоханих"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Цілодобовий магазин"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Школа"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Універмаг"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Фабрика"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Ліхтар ідзакая"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Японський замок"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Європейський замок"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Щур"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Миша"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Бик"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Буйвол"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Корова"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Леопард"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Кролик"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Кіт"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Дракон"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Крокодил"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Кит"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Равлик"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Змія"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Кінь"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Баран"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Коза"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Вівця"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Мавпа"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Півень"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Курка"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Собака"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Свиня"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Кабан"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Слон"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Восьминіг"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Спіральна мушля"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Жук"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Мураха"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Медоносна бджола"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Сонечко"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Риба"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Тропічна риба"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Риба-собака"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Черепаха"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Курча, яке прокльовується з яйця"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Курча"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Курча анфас"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Птах"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Пінгвін"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Коала"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Пудель"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Одногорбий верблюд"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Двогорбий верблюд"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Дельфін"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Миша"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Корова"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Тигр"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Кріль"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Кіт"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Дракон"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Кит із фонтаном"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Кінь"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Мавпа"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Собака"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Свиня"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Жаба"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Хом’як"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Вовк"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Ведмідь"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Панда"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Свиняче рильце"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Сліди лап"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Очі"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Вухо"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Ніс"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Рот"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Язик"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Біла рука з вказівним пальцем угору з тильної сторони"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Біла рука з вказівним пальцем униз із тильної сторони"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Біла рука з вказівним пальцем ліворуч із тильної сторони"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Біла рука з вказівним пальцем праворуч із тильної сторони"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Знак кулака"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Знак руки, яка махає"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Знак руки, яка показує \"ОК\""</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Знак \"Подобається\""</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Знак \"Не подобається\""</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Знак \"Оплески\""</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Знак \"Відкриті руки\""</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Корона"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Жіночий капелюшок"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Окуляри"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Краватка"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Футболка"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Джинси"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Сукня"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Кімоно"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Бікіні"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Жіночий одяг"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Гаманець"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Жіноча сумка"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Чохол"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Чоловіче взуття"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Спортивне взуття"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Туфелька на високому підборі"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Жіночі сандалі"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Жіночі чоботи"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Сліди ніг"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Силует бюсту"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Силуети бюстів"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Хлопець"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Дівчина"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Чоловік"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Жінка"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Сім’я"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Чоловік та жінка тримаються за руки"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Двоє чоловіків тримаються за руки"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Двоє жінок тримаються за руки"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Офіцер поліції"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Жінка з кролячими вухами"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Наречена з фатою"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Людина зі світлим волоссям"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Чоловік у круглій шапочці"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Чоловік у тюрбані"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Літній чоловік"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Літня жінка"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Немовля"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Будівельник"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Принцеса"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Японський людожер"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Японський гоблін"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Привид"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Янголятко"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Прибулець із космосу"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Прибулець-монстр"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Чортеня"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Череп"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Працівник довідкового бюро"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Охоронець"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Танцівник"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Губна помада"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Лак для нігтів"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Масаж обличчя"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Стрижка"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Шлагбаум"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Шприц"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Таблетка"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Відбиток губ"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Любовний лист"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Перстень"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Дорогоцінний камінь"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Поцілунок"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Букет"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Пара із серцем"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Весілля"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Пульсуюче серце"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Розбите серце"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Два серця"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Серце, що блищить"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Серце, що збільшується"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Серце зі стрілою"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Синє серце"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Зелене серце"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Жовте серце"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Фіолетове серце"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Серце зі стрічкою"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Серця, що обертаються"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Декор у вигляді серця"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Контур діаманта з крапкою всередині"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Електрична лампочка"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Символ гніву"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Бомба"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Символ сну"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Символ зіткнення"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Краплі поту"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Крапля"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Символ ривка"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Купка екскрементів"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Зігнутий біцепс"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Символ запаморочення"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Хмаринка з текстом"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Хмаринка з думками"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Біла квітка"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Символ \"Сто очок\""</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Мішок із грошима"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Обмін валют"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Символ важкого долара"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Кредитна картка"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Банкнота із символом єни"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Банкнота із символом долара"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Банкнота із символом євро"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Банкнота із символом фунта"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Гроші з крилами"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Висхідна діаграма із символом єни"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Сидіння"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Персональний комп’ютер"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Портфель"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Міні-диск"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Дискета"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Оптичний диск"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD-диск"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Папка з файлами"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Відкрита папка"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Сторінка із завитком"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Сторінка лицевою стороною"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Календар"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Відривний календар"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Картотека"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Висхідна діаграма"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Низхідна діаграма"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Гістограма"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Папка із зажимом для паперу"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Канцелярська кнопка"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Кругла канцелярська кнопка"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Скріпка"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Пряма лінійка"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Косинець"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Закладки"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Реєстр"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Записник"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Записник із декоративною обкладинкою"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Закрита книга"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Відкрита книга"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Зелена книга"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Синя книга"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Оранжева книга"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Книги"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Бейдж з іменем"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Сувій"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Записка"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Телефонна слухавка"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Пейджер"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Факс"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Супутникова антена"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Гучномовець"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Рупор"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Лоток для вихідної пошти"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Лоток для вхідної пошти"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Пакет"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Символ електронної пошти"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Вхідний конверт"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Конверт зі стрілкою вниз угорі"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Закрита поштова скринька з опущеним прапорцем"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Закрита поштова скринька з піднятим прапорцем"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Відкрита поштова скринька з піднятим прапорцем"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Відкрита поштова скринька з опущеним прапорцем"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Поштова скринька"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Поштовий ріжок"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Газета"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Мобільний телефон"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Мобільний телефон зі стрілкою праворуч зліва"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Режим вібрації"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Мобільний телефон вимкнено"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Мобільні телефони заборонено"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Антена з індикатором рівня сигналу"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Камера"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Відеокамера"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Телебачення"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Радіо"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Відеокасета"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Перехрещені стрілки праворуч"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Кругові стрілки ліворуч та праворуч, які вказують напрям за годинниковою стрілкою"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Кругові стрілки ліворуч та праворуч, які вказують напрям за годинниковою стрілкою, і накладена на них цифра один"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Кругові стрілки вгору та вниз, які вказують напрям за годинниковою стрілкою"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Кругові стрілки вгору та вниз, які вказують напрям проти годинникової стрілки"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Символ малої яскравості"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Символ великої яскравості"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Перекреслений динамік"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Динамік"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Динамік з однією звуковою хвилею"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Динамік із трьома звуковими хвилями"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Акумулятор"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Вилка електроприладу"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Лупа, повернута ліворуч"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Лупа, повернута праворуч"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Замок із чорнильним пером"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Закритий замок із ключем"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Ключ"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Замок"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Відкритий замок"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Дзвоник"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Перекреслений дзвоник"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Закладка"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Символ ланки"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Перемикач"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Слово \"назад\" зі стрілкою ліворуч зверху"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"Слово \"кінець\" зі стрілкою ліворуч зверху"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"Слово \"увімкнено\" зі знаком оклику та стрілкою праворуч-ліворуч зверху"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Слово \"незабаром\" зі стрілкою праворуч зверху"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Слово \"угору\" зі стрілкою вгору зверху"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Символ \"Вхід до 18 років заборонено\""</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Поверхня клавіші \"10\""</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Символ введення великих латинських літер"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Символ введення малих латинських літер"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Символ введення цифр"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Знак вводу символів"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Символ введення латинських літер"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Вогонь"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Кишеньковий ліхтарик"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Гайковий ключ"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Молоток"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Гайка та болт"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Японський кухонний ніж"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Пістолет"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Мікроскоп"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Телескоп"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Кришталева куля"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Шестикутна зірка з крапкою посередині"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Японський символ \"Початківець\""</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Тризуб"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Чорна квадратна кнопка"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Біла квадратна кнопка"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Велике червоне коло"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Велике синє коло"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Великий оранжевий діамант"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Великий синій діамант"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Малий оранжевий діамант"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Малий синій діамант"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Червоний трикутник, спрямований угору"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Червоний трикутник, спрямований униз"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Малий червоний трикутник, спрямований угору"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Малий червоний трикутник, спрямований униз"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Годинник, який показує першу годину"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Годинник, який показує другу годину"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Годинник, який показує третю годину"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Годинник, який показує четверту годину"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Годинник, який показує п’яту годину"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Годинник, який показує шосту годину"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Годинник, який показує сьому годину"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Годинник, який показує восьму годину"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Годинник, який показує дев’яту годину"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Годинник, який показує десяту годину"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Годинник, який показує одинадцяту годину"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Годинник, який показує дванадцяту годину"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Годинник, який показує першу годину тридцять хвилин"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Годинник, який показує другу годину тридцять хвилин"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Годинник, який показує третю годину тридцять хвилин"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Годинник, який показує четверту годину тридцять хвилин"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Годинник, який показує п’яту годину тридцять хвилин"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Годинник, який показує шосту годину тридцять хвилин"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Годинник, який показує сьому годину тридцять хвилин"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Годинник, який показує восьму годину тридцять хвилин"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Годинник, який показує дев’яту годину тридцять хвилин"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Годинник, який показує десяту годину тридцять хвилин"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Годинник, який показує одинадцяту годину тридцять хвилин"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Годинник, який показує дванадцяту годину тридцять хвилин"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Гора Фудзі"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Токійська вежа"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Статуя Свободи"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Обриси Японії"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Кам’яна статуя моаї"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Обличчя, що сміється"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Усміхнене обличчя з примруженими очима"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Обличчя зі сльозами радості"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Усміхнене обличчя з відкритим ротом"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Усміхнене обличчя з відкритим ротом і примруженими очима"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Усміхнене обличчя з відкритим ротом і холодним потом"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Усміхнене обличчя з відкритим ротом і заплющеними очима"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Усміхнене обличчя з німбом"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Усміхнене обличчя з ріжками"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Обличчя, яке підморгує"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Усміхнене обличчя з примруженими очима"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Обличчя, яке насолоджується смачною їжею"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Обличчя з виразом полегшення"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Усміхнене обличчя з очима у формі сердець"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Усміхнене обличчя із сонцезахисними окулярами"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Обличчя із самовдоволеною посмішкою"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Нейтральне обличчя"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Обличчя без емоцій"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Незадоволене обличчя"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Обличчя з потом"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Задумливе обличчя"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Спантеличене обличчя"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Збентежене обличчя"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Обличчя, що цілує"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Обличчя, що надсилає повітряний поцілунок"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Обличчя, що цілує, з примруженими очима"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Обличчя, що цілує, із заплющеними очима"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Обличчя з висунутим язиком"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Обличчя, що підморгує, з висунутим язиком"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Обличчя з висунутим язиком і заплющеними очима"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Розчароване обличчя"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Стурбоване обличчя"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Сердите обличчя"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Насуплене обличчя"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Обличчя, що плаче"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Уперте обличчя"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Обличчя з виразом тріумфу"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Розчароване обличчя з виразом полегшення"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Насуплене обличчя з відкритим ротом"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Страждальне обличчя"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Налякане обличчя"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Зморене обличчя"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Сонне обличчя"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Стомлене обличчя"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Обличчя, яке кривляється"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Обличчя, яке гірко ридає"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Обличчя з відкритим ротом"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Обличчя, яке принишкло"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Обличчя з відкритим ротом і холодним потом"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Обличчя, яке кричить від страху"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Здивоване обличчя"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Обличчя з рум’янцем"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Обличчя, яке спить"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Запаморочене обличчя"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Обличчя без рота"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Обличчя з пов’язкою"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Кіт, який сміється, з примруженими очима"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Кіт зі сльозами радості"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Усміхнений кіт із відкритим ротом"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Усміхнений кіт з очима у формі сердець"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Котяча морда з кривою усмішкою"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Кіт, який цілує, із заплющеними очима"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Насуплений кіт"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Кіт, який плаче"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Стомлений кіт"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Обличчя з жестом \"Погано\""</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Обличчя з жестом \"O’кей\""</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Людина, яка низько кланяється"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Мавпа, яка закриває лапами очі"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Мавпа, яка закриває лапами вуха"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Мавпа, яка закриває лапами рот"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Щаслива людина з піднятою рукою"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Людина з піднятими догори руками на знак перемоги"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Нахмурена людина"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Людина з насупленим обличчям"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Людина зі складеними руками"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Ракета"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Вертоліт"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Паротяг"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Вагон"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Швидкісний потяг"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Швидкісний потяг із кулеподібним носом"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Потяг"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Метро"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Електропоїзд"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Станція"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Трамвай"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Вагон трамвая"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Автобус"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Автобус, який наближається"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Тролейбус"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Автобусна зупинка"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Мікроавтобус"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Автомобіль швидкої допомоги"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Пожежний автомобіль"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Патрульний автомобіль"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Патрульний автомобіль, що наближається"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Таксі"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Таксі, що наближається"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Автомобіль"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Автомобіль, що наближається"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Житловий трейлер"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Автофургон"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Автопоїзд"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Трактор"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Монорейкова залізниця"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Гірська залізниця"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Підвісна залізниця"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Гірський фунікулер"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Підвісна канатна дорога"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Корабель"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Весловий човен"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Швидкохідний катер"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Горизонтальний світлофор"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Вертикальний світлофор"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Знак \"Будівництво\""</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Патрульний автомобіль з проблисковими вогнями"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Трикутний прапорець на ніжці"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Двері"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Знак \"В’їзд заборонено\""</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Символ \"Місце для паління\""</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Символ \"Паління заборонено\""</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Символ \"Викидайте сміття в урну\""</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Символ \"Не смітити\""</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Символ \"Питна вода\""</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Символ \"Непридатна для пиття вода\""</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Велосипед"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Рух на велосипеді заборонено"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Велосипедист"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Гірський велосипедист"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Пішохід"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Рух пішоходів заборонено"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Діти на дорозі"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Символ \"Чоловік\""</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Символ \"Жінка\""</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Убиральня"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Символ \"Немовля\""</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Туалет"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Санвузол"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Душ"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Приймати ванну"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Ванна"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Паспортний контроль"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Митниця"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Пункт отримання багажу"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Камера зберігання"</string>
+</resources>
diff --git a/java/res/values-uk/strings-talkback-descriptions.xml b/java/res/values-uk/strings-talkback-descriptions.xml
index 80e4710..700ba50 100644
--- a/java/res/values-uk/strings-talkback-descriptions.xml
+++ b/java/res/values-uk/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Текст не введено"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> виправляє слово \"<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>\" на \"<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>\""</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> автоматично виправляє"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Немає пропозицій"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Невідомий символ"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Більше символів"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Велика I, крапка вгорі"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Невідомий символ"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Невідомий смайл Emoji"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Обличчя, що нудьгує"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Збентежене обличчя"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Обличчя в окулярах"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Здивоване обличчя"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Обличчя, що цілує"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Насуплене обличчя"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Доступні альтернативні символи"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Альтернативні символи відхилено"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Доступні альтернативні пропозиції"</string>
diff --git a/java/res/values-uk/strings.xml b/java/res/values-uk/strings.xml
index c59bed6..4d21599 100644
--- a/java/res/values-uk/strings.xml
+++ b/java/res/values-uk/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Вібр. при натисканні клавіш"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Звук при натиску клав."</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Сплив. при нат.клав."</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Параметри"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Облік. записи й конфіденційність"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Вигляд і розкладка"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Введення тексту жестами"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Виправлення тексту"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Додатково"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Тема"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Увімкнути розділену клавіатуру"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Синхронізувати Клавіатуру Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Синхронізацію ввімкнено"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Синхронізувати особистий словник на різних пристроях"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Синхронізувати"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Видалити дані з хмари"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Видаляє з Google ваші синхронізовані дані"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Видалити з хмари синхронізовані дані?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Видалити"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Скасувати"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Ваш особистий словник буде синхронізовано із серверами Google. Ми можемо збирати статистичні дані про частоту пошуку слів, щоб покращити наші продукти. Ці дані збираються та використовуються відповідно до "<a href="https://www.google.com/policies/privacy">"Політики конфіденційності Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Щоб увімкнути функцію, додайте на пристрій обліковий запис Google"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Інші методи введення"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Клавіша зміни мови дозволяє змінювати методи введення"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Клавіша зміни мови"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Показувати, коли ввімкнено декілька мов введення"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Показати індикатор переходу"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Показувати сигнал під час переходу від клавіш символів чи Shift"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Затримка клавіши закриття"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Без затримки"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"За умовчанням"</string>
@@ -62,10 +67,7 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Основний словник"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Показувати пропозиції виправлень"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Відображати пропоновані слова під час вводу"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Завжди показувати"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Показувати в книжковій орієнтації"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Завжди ховати"</string>
-    <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Блокувати образливі слова"</string>
+    <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Блокувати нецензурні слова"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Не пропонувати потенційно образливі слова"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Автовиправлення"</string>
     <string name="auto_correction_summary" msgid="5625751551134658006">"Пробіл і пунктуація автоматично виправляють слова з помилками"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Ключ голосового вводу"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Способи голосового вводу не ввімкнено. Перейдіть у налаштування \"Мова та введення\"."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Налаштування методів введення"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Мови вводу"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Надіслати відгук"</string>
-    <string name="select_language" msgid="3693815588777926848">"Мови введення"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Мови"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Довідка й відгуки"</string>
+    <string name="select_language" msgid="5709487854987078367">"Мови"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Торкніться знову, щоб зберегти"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Торкніться тут, щоб зберегти"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Словник доступний"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Тема клавіатури"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Змінити обліковий запис"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Не вибрано облікових записів"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Зараз використовується <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"ОК"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Скасувати"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Вийти"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Виберіть обліковий запис"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Англійська (Великобританія)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Англійська (США)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"іспанська (США)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Хінґліш"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"сербська (латиниця)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Англійська (Британія) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Англійська (США) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Іспанська (США) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Хінґліш (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"сербська (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (традиційна)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (кирилиця)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (латиниця)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (компактна)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Стандартна (латиниця)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Латиниця (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Латиниця (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Латиниця (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Латиниця (ПК)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Cмайли Emoji"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Тема клавіатури"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Персональні стилі введення"</string>
     <string name="add_style" msgid="6163126614514489951">"Додати стиль"</string>
     <string name="add" msgid="8299699805688017798">"Додати"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Увімкнути"</string>
     <string name="not_now" msgid="6172462888202790482">"Не зараз"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Такий стиль введення вже існує: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Затримка довгого натискання"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Вібрація при натисканні клавіш"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Гучність натискання клавіш"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Читати файл зовнішнього словника"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"У папці \"Завантаження\" немає файлів словника"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Вибрати файл словника, який потрібно встановити"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Справді встановити цей файл для такої мови: <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Сталася помилка"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Затримка довгого натискання"</string>
     <string name="button_default" msgid="3988017840431881491">"За умовчанням"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Вітаємо в програмі <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"з функцією Ввід жестами"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Тепер ви можете вводити текст у всіх своїх улюблених програмах за допомогою <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Налаштувати додаткові мови"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Завершено"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Показувати піктограму програми"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Відображати піктограму програми на панелі запуску"</string>
     <string name="app_name" msgid="6320102637491234792">"Постачальник словника"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Постачальник словника"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Служба словника"</string>
diff --git a/java/res/values-ur-rPK/strings-emoji-descriptions.xml b/java/res/values-ur-rPK/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..e6bbdcf
--- /dev/null
+++ b/java/res/values-ur-rPK/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"کاپی رائٹ کا نشان"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"رجسٹرڈ کا نشان"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"دوہرا فجائیہ نشان"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"فجائیہ سوالیہ نشان"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"ٹریڈ مارک کا نشان"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"معلومات کا ماخذ"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"دائیں بائیں تیر کا نشان"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"اوپر نیچے تیر کا نشان"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"شمال مغرب تیر کا نشان"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"شمال مشرق تیر کا نشان"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"جنوب مشرق تیر کا نشان"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"جنوب مغرب تیر کا نشان"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"ہک کے ساتھ بائیں طرف تیر کا نشان"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"ہک کے ساتھ دائیں طرف تیر کا نشان"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"گھڑی"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"ریت گھڑی"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"سیاہ دائیں اشارہ کرنے والا دوہرا مثلث"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"سیاہ بائیں اشارہ کرنے والا دوہرا مثلث"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"سیاہ اوپر اشارہ کرنے والا دوہرا مثلث"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"سیاہ نیچے اشارہ کرنے والا دوہرا مثلث"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"الارم گھڑی"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"سرکتی ریت کے ساتھ ریت گھڑی"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"‏مدور لاطینی بڑا حرف m"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"سیاہ چھوٹا مربع"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"سفید چھوٹا مربع"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"سیاہ دائیں اشارہ کرنے والا مثلث"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"سیاہ بائیں اشارہ کرنے والا مثلث"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"سفید متوسط مربع"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"سیاہ متوسط مربع"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"سفید متوسط چھوٹا مربع"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"سیاہ متوسط چھوٹا مربع"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"شعاعوں والا سیاہ سورج"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"بادل"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"سیاہ ٹیلی فون"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"چیک کے ساتھ بیلیٹ باکس"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"بارش کے قطروں کے ساتھ چھتری"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"گرم مشروب"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"سفید اوپر اشارہ کرنے والا انگشت شہادت"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"سفید مسکراتا چہرہ"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"برج حمل"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"برج ثور"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"برج جوزا"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"برج سرطان"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"برج اسد"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"برج سنبلہ"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"برج میزان"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"برج عقرب"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"برج قوس"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"برج جدی"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"برج دلو"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"برج حوت"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"سیاہ اسپیڈ سوٹ"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"سیاہ کلب سوٹ"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"سیاہ ہارٹ سوٹ"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"سیاہ ڈائمنڈ سوٹ"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"گرم جھرنے"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"سیاہ یونیورسل ری سائیکلنگ کی علامت"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"پہیے والی کرسی کی علامت"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"لنگر"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"انتباہی نشان"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"زیادہ وولٹیج کا نشان"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"اوسط سفید دائرہ"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"اوسط سیاہ دائرہ"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"ساکر کی گیند"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"بیس بال"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"برف کے بغیر برفانی پتلا"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"بادل کے پیچھے سورج"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"ستاروں کا جھرمٹ"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"داخلہ ممنوع ہے کی علامت"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"چرچ"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"فوارہ"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"سوراخ میں پرچم"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"بادبانی کشتی"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"خیمہ"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"فیول پمپ"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"سیاہ قینچیاں"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"سفید بھاری چیک کا نشان"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"ہوائی جہاز"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"لفافہ"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"اٹھا ہوا مکہ"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"اٹھا ہوا ہاتھ"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"فتح والا ہاتھ"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"پنسل"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"سیاہ نب"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"بھاری چیک کا نشان"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"‏بھاری ضرب x"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"پھلجھڑیاں"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"آٹھ آڑا ستارہ"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"آٹھ نکیلا سیاہ ستارہ"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"برف کا گالا"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"پھلجھڑی"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"کراس کا نشان"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"منفی مربع کراس کا نشان"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"سیاہ سوالیہ نشان زیور"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"سفید سوالیہ نشان زیور"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"سفید فجائیہ نشان زیور"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"بھاری فجائیہ نشان کی علامت"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"کافی سیاہ دل"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"بھاری جمع کا نشان"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"بھاری منفی کا نشان"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"بھاری تقسیم کا نشان"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"سیاہ دائیں طرف تیر کا نشان"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"خمیدہ لوپ"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"دوہرا خیمدہ لوپ"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"دائیں طرف اشارہ کرنے والا پھر اوپر مڑنے والا تیر کا نشان"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"دائیں طرف اشارہ کرنے والا پھر نیچے مڑنے والا تیر کا نشان"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"بائیں طرف سیاہ تیر کا نشان"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"اوپر کی طرف سیاہ تیر کا نشان"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"نیچے کی طرف سیاہ تیر کا نشان"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"سیاہ بڑا مربع"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"سفید بڑا مربع"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"سفید اوسط ستارہ"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"بھاری بڑا دائرہ"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"لہردار ڈیش"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"جزوی ردوبدل کا نشان"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"مدور آئیڈیوگراف مبارک باد"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"مدور آئیڈیوگراف راز"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"مہجونگ ٹائل سرخ اژدہا"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"تاش کا کالا جوکر"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"‏خون کی قسم A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"‏خون کی قسم B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"‏خون کی قسم O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"گاڑی کھڑی کرنے کا احاطہ"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"‏خون کی قسم AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"‏مربع کی علامت میں تحریر CL"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"‏مربع کی علامت میں تحریر cool"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"‏مربع کی علامت میں تحریر free"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"‏مربع کی علامت میں تحریر ID"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"‏مربع کی علامت میں تحریر new"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"‏مربع کی علامت میں تحریر N G"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"‏مربع کی علامت میں تحریر OK"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"‏مربع کی علامت میں تحریر SOS"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"‏مربع کی علامت میں تحریر up!‎"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"‏مربع کی علامت میں تحریر vs"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"‏مربع کی علامت میں تحریر katakana"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"‏مربع کی علامت میں تحریر katakana سروس"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"مربع کی علامت میں تحریر آئیڈیوگراف بلا معاوضہ"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"مربع کی علامت میں تحریر آئیڈیوگراف محفوظ کردہ سیٹ"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"مربع کی علامت میں تحریر آئیڈیوگراف ممانعت"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"مربع کی علامت میں تحریر آئیڈیوگراف اسامی"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"مربع کی علامت میں تحریر آئیڈیوگراف قبولیت"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"مربع کی علامت میں تحریر آئیڈیوگراف مکمل تصرف"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"مربع کی علامت میں تحریر آئیڈیوگراف ادا شدہ"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"مربع کی علامت میں تحریر آئیڈیوگراف ماہانہ"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"مربع کی علامت میں تحریر آئیڈیوگراف ایپلیکیشن"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"مربع کی علامت میں تحریر آئیڈیوگراف ڈسکاؤنٹ"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"مربع کی علامت میں تحریر آئیڈیوگراف کاروبار جاری"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"مدور آئیڈیو گراف فائدہ"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"مدور آئیڈیو گراف قبولیت"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"طوفان"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"دھندلا"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"بند چھتری"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"ستاروں والی رات"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"پہاڑوں پر طلوع آفتاب"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"طلوع آفتاب"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"شام کے دھندلکے میں شہر کا نظارہ"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"عمارتوں پر غروب آفتاب"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"قوس قزح"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"رات میں پل"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"پانی کی لہر"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"آتش فشاں"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"کہکشاں"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"کرّہ ارض یوروپ افریقہ"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"کرّہ ارض امریکاز"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"کرّہ ارض ایشیا آسٹریلیا"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"نصف النہار کے ساتھ کرّہ"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"نئے چاند کی علامت"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"بڑھتے ہوئے ہلالی چاند کی علامت"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"پہلی چوتھائی کے چاند کی علامت"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"بڑھتے ہوئے نیم بریں چاند کی علامت"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"پورے چاند کی علامت"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"گھٹتے ہوئے نیم بریں چاند کی علامت"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"آخری چوتھائی چاند کی علامت"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"گھٹتے ہوئے ہلالی چاند کی علامت"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"ہلالی چاند"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"چہرے کے ساتھ نیا چاند"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"چہرے کے ساتھ پہلی چوتھائی کا چاند"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"چہرے کے ساتھ آخری چوتھائی کا چاند"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"چہرے کے ساتھ پورا چاند"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"چہرے کے ساتھ سورج"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"روشن ستارہ"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"شہاب ثاقب"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"شاہ بلوط"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"تخمی درخت"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"سدا بہار درخت"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"پت جھڑ کا درخت"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"کھجور کا درخت"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"ناگ پھنی"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"گل لالہ"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"چیری بلوسم"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"گلاب"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"گل خیرو"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"سورج مکھی"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"بلوسم"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"مکئی کی بالی"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"چاول کی بالی"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"ہرب"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"چار پتی کی سہ شاخہ"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"میپل کا پتا"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"گری ہوئی پتی"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"ہوا میں اڑنے والی پتی"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"مشروم"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"ٹماٹر"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"بینگن"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"انگور"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"خربوزہ"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"تربوز"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"طنجوی نارنگی"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"لیموں"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"کیلا"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"انناس"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"لال سیب"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"ہرا سیب"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"ناشپاتی"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"آڑو"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"چیریز"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"اسٹرابیری"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"ہیمبرگر"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"پیزا کا ٹکڑا"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"ہڈی کا گوشت"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"پولٹری کی ٹانگ"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"چاول کا خستہ"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"چاول کا گولہ"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"پکا ہوا چاول"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"کڑھی اور چاول"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"دخانی ڈونگا"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"اسپاگٹی"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"روٹی"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"فرینچ فرائیز"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"بھنا ہوا شکر قند"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"ڈنگو"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"اوڈین"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"سشی"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"بھنا ہوا جھینگا"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"گرداب کے ڈیزائن والا مچھلی کیک"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"نرم آئس کریم"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"تراشیدہ برف"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"آئس کریم"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"ڈونٹ"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"کوکی"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"چاکلیٹ بار"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"قندی"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"لالی پاپ"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"کسٹرڈ"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"شہد کا برتن"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"کیک کا ٹکڑا"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"بینٹو باکس"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"کھانے کا برتن"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"کھانا پکانا"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"کانٹا اور چھری"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"بغیر ہینڈل کے چائے کی پیالی"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"جاپانی شراب کی بوتل اور پیالی"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"وائن کا گلاس"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"کاک ٹیل کا گلاس"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"حاری مشروب"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"بیئر کا مگ"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"کھنکتے ہوئے بیئر کے مگ"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"بچے کی بوتل"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"ربن"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"لپٹا ہوا تحفہ"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"سالگرہ کا کیک"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"جیکو لالٹین"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"کرسمس کا درخت"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"فادر کرسمس"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"آتش بازی"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"آتش بازی کی پھل جھڑی"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"غبارہ"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"پارٹی پوپر"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"شیرینی کا گولہ"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"تناباتا کا درخت"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"خط کشیدہ پرچم"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"صنوبر کی سجاوٹ"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"جاپانی گڑیاں"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"سیم ماہی کا جھنڈا"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"ہوا کی جھنکار"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"چاند دیکھنے کی تقریب"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"اسکول کا بستہ"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"گریجویشن کی ٹوپی"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"جھولے کا گھوڑا"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"ہنڈولا"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"رولر کوسٹر"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"بنسی اور مچھلی"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"مائکروفون"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"مووی کیمرا"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"سنیما"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"ہیڈفون"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"فنکار کی تختی"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"اوپری ٹوپ"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"سرکس کا خیمہ"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"ٹکٹ"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"تالی تختہ"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"پرفارمنگ آرٹس"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"ویڈیو گیم"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"راست ضرب"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"سلاٹ مشین"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"بلیئرڈز"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"گیم ڈائی"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"باؤلنگ"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"پھول تاش"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"غنائی نوٹ"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"متعدد غنائی نوٹس"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"سیکسوفون"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"گٹار"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"غنائی کی بورڈ"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"نفیری"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"وائلن"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"غنائی اسکور"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"کمربند والی رواں شرٹ"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"ٹینس ریکیٹ اور گیند"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"اسکی اور اسکی بوٹ"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"باسکٹ بال اور ہوپ"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"چار خانہ دار پرچم"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"اسنو بورڈر"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"دوڑنے والا"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"موج تختے کا سوار"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"ٹرافی"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"گھڑ دوڑ"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"امریکی فٹبال"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"رگبی فٹبال"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"تیراک"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"گھر کی عمارت"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"باغ کے ساتھ گھر"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"دفتر کی عمارت"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"جاپانی ڈاک خانہ"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"یوروپی ڈاک خانہ"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"ہسپتال"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"بینک"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"آٹومیٹڈ ٹیلر مشین"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"ہوٹل"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"محبت کا ہوٹل"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"سہولت بخش اسٹور"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"اسکول"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"ڈپارٹمنٹ اسٹور"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"فیکٹری"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"ازاکایا لالٹین"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"جاپانی قلعہ"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"یوروپی قلعہ"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"چوہا"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"موش"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"بیل"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"ہندوستانی بھینس"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"گائے"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"چیتا"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"خرگوش"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"بلی"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"ڈریگن"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"مگرمچھ"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"وہیل"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"گھونگھا"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"سانپ"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"گھوڑا"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"مینڈھا"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"بکری"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"بھیڑ"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"بندر"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"مرغا"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"مرغ"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"کتا"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"سور"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"جنگلی سور"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"ہاتھی"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"اَکٹوپس"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"پیچدار گھونگھا"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"کھٹمل"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"چیونٹی"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"شہد کی مکھی"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"بھونرا"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"مچھلی"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"حاری مچھلی"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"بلوفش"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"کچھوا"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"انڈے سے نکلتا چوزہ"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"بے بی چک"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"سامنے کے رخ کا بچے کا رخسار"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"پرندہ"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"پینگوئن"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"کوآلا"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"پوڈل"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"یک کوہانی اونٹ"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"دو کوہانی اونٹ"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"ڈولفن"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"موش کا چہرہ"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"گائے کا چہرہ"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"باگھ کا چہرہ"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"خرگوش کا چہرہ"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"بلی کا چہرہ"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"ڈریگن کا چہرہ"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"پھنکارنے والی وہیل"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"گھوڑے کا چہرہ"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"بندر کا چہرہ"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"کتے کا چہرہ"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"سور کا چہرہ"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"مینڈک کا چہرہ"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"موش کا چہرہ"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"بھیڑیے کا چہرہ"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"بھالو کا چہرہ"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"پانڈا کا چہرہ"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"سور کی ناک"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"پنجے کے چھاپ"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"آنکھیں"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"کان"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"ناک"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"منھ"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"زبان"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"سفید اوپر اشارہ کرنے والا الٹے ہاتھ کا اشاریہ"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"سفید نیچے اشارہ کرنے والا الٹے ہاتھ کا اشاریہ"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"سفید بائیں اشارہ کرنے والا الٹے ہاتھ کا اشاریہ"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"سفید دائیں اشارہ کرنے والا الٹے ہاتھ کا اشاریہ"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"مکہ بند ہاتھ کا نشان"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"لہراتے ہاتھ کا نشان"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"صحیح ہاتھ کا نشان"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"اظہار پسندیدگی کا نشان"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"اظہار ناپسندیدگی کا نشان"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"تالی بجاتے ہاتھوں کا نشان"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"کھلے ہاتھوں کا نشان"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"تاج"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"عورت کی ٹوپ"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"عینکیں"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"نکٹائی"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"ٹی شرٹ"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"جینس"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"لباس"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"چوغہ"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"بکنی"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"عورت کے کپڑے"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"پرس"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"ہینڈبیگ"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"پاؤچ"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"مردانہ جوتا"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"ایتھلیٹک جوتا"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"اونچی ایڑی کا جوتا"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"زنانہ سینڈل"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"زنانہ بوٹس"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"پیروں کے نشانات"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"یک رخی خاکہ میں جسمانی دھڑ"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"یک رخی خاکے میں جسمانی دھڑ"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"لڑکا"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"لڑکی"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"مرد"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"عورت"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"خاندان"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"ہاتھ پکڑے ہوئے مرد اور عورت"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"ہاتھ پکڑے ہوئے دو مرد"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"ہاتھ پکڑے ہوئے دو عورتیں"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"پولیس افسر"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"بنی کانوں والی عورت"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"گھونگھٹ والی دلہن"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"سنہرے بال والا شخص"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"لمبی مونچھوں والا والا آدمی"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"پگڑی والا آدمی"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"بڑی عمر کا آدمی"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"بڑی عمر کی عورت"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"بچہ"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"تعمیراتی کارکن"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"شہزادی"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"جاپانی دیو"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"جاپانی آسیب"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"بھوت"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"بچہ فرشتہ"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"غیر ارضی اجنبی مخلوق"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"اجنبی عفریت"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"شیطان کا بچہ"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"کھوپڑی"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"معلوماتی ڈیسک کا شخص"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"پہرہ دار"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"رقاصہ"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"لپ اسٹک"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"نیل پالش"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"چہرے کا مساج"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"بال کٹوانا"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"نائی کا کھمبا"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"سرنج"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"ٹکیہ"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"بوسے کا نشان"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"محبت نامہ"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"انگوٹھی"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"قیمتی پتھر"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"بوسہ"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"گلدستہ"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"دل والا جوڑا"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"شادی"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"دھڑکتا دل"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"ٹوٹا ہوا دل"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"دو دل"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"چمکنے والا دل"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"بڑھتا ہوا دل"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"تیر کے نشان والا دل"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"نیلا دل"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"ہرا دل"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"پیلا دل"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"جامنی دل"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"ربن والا دل"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"گھومتا ہوا دل"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"دل کی سجاوٹ"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"ہیرے کی شکل جس کے اندر ایک نکتہ ہو"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"بجلی کی روشنی کا بلب"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"غصہ کی علامت"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"بم"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"سونے کی علامت"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"ٹکر کی علامت"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"چھینٹ اڑانے والے پسینے کی علامت"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"چھوٹا قطرہ"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"ڈیش کی علامت"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"گندگی کا ڈھیر"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"جھکے ہوئے دو سروں والے پٹھے"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"چکر کی علامت"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"خطابی غبارہ"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"فکری غبارہ"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"سفید پھول"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"سو پوائنٹس کی علامت"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"رقم کا تھیلا"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"کرنسی کا تبادلہ"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"بھاری ڈالر کا نشان"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"کریڈٹ کارڈ"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"ین کے نشان والا بینک نوٹ"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"ڈالر کے نشان کے ساتھ بینک نوٹ"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"یورو کے نشان والا بینک نوٹ"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"پونڈ کے نشان والا بینک نوٹ"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"پروں کے ساتھ رقم"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"اوپر کی طرف رجحان اور ین کے نشان والا چارٹ"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"نشست"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"پرسنل کمپیوٹر"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"بریف کیس"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"منی ڈسک"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"فلاپی ڈسک"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"آپٹکل ڈسک"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"Dvd"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"فائل فولڈر"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"فائل فولڈر کھولیں"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"پیچدار صفحہ"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"اوپر کے رخ والا صفحہ"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"کیلنڈر"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"قابل تراشہ کیلنڈر"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"کارڈ کا اشاریہ"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"اوپر کی طرف رجحان والا چارٹ"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"نیچے کی طرف رجحان والا چارٹ"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"بار چارٹ"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"کلپ بورڈ"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"پش پن"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"گول پش پن"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"پیپر کلپ"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"سیدھا رولر"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"مثلث نما رولر"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"بُک مارک کے ٹیبز"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"لیجر"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"نوٹ بک"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"آرائشی کور والی نوٹ بک"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"بند کتاب"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"کھلی کتاب"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"ہری کتاب"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"نیلی کتاب"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"نارنجی کتاب"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"کتابیں"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"نام کا بلّا"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"اسکرول کریں"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"میمو"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"ٹیلی فون کا ریسیور"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"پیجر"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"فیکس مشین"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"سٹیلائٹ انٹینا"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"عوامی خطاب کا لاؤڈ اسپیکر"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"خوش کن میگا فون"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"آؤٹ باکس ٹرے"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"ان باکس ٹرے"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"پیکیج"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"ای میل کی علامت"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"موصول ہونے والا لفافہ"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"لفافہ جس کے اوپر نیچے کے رخ میں تیر کا نشان ہو"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"گرے ہوئے پرچم والا بند میل باکس"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"اٹھے ہوئے پرچم والا بند میل باکس"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"اٹھے ہوئے پرچم والا کھلا میل باکس"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"گرے ہوئے پرچم والا کھلا میل باکس"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"پوسٹ باکس"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"ڈاک کا ہارن"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"اخبار"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"موبائل فون"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"موبائل فون کے بائیں جانب دائیں طرف والا تیر کا نشان"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"ارتعاش کی وض‏ع"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"موبائل فون آف"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"کوئی موبائل فونز نہیں ہیں"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"سلاخوں والا انٹینا"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"کیمرا"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"ویڈیو کیمرا"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"ٹیلی ویژن"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"ریڈیو"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"ویڈیو کیسیٹ"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"موڑے ہوئے دائیں طرف تیر کے نشانات"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"گھڑی کی سمت میں دائیں اور بائیں طرف کھلے مدور تیر کے نشانات"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"گھڑی کی سمت میں دائیں اور بائیں طرف کھلے مدور تیر کے نشانات نیز ایک مدور استرکاری"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"گھڑی کی سمت میں اوپر اور نیچے کھلے مدور تیر کے نشانات"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"خلاف گھڑی کی سمت میں نیچے اور اوپر کھلے مدور تیر کے نشانات"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"کم چمک کی علامت"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"زیادہ چمک کی علامت"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"منسوخی کے اسٹروک والا اسپیکر"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"اسپیکر"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"ایک صوتی لہر والا اسپیکر"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"تین صوتی لہروں والا اسپیکر"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"بیٹری"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"بجلی کا پلگ"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"بائیں جانب جھکا میگنفائنگ گلاس"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"دائیں جانب جھکا میگنفائنگ گلاس"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"روشنائی والے قلم کے ساتھ تالا"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"کلید والا بند تالا"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"کلید"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"تالا"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"کھلا تالا"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"گھنٹی"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"منسوخی کے اسٹروک والی گھنٹی"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"بُک مارک"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"لنک کی علامت"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"ریڈیو بٹن"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"پیچھے کے اوپر بائیں طرف تیر کا نشان"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"اختتام کے اوپر بائیں طرف تیر کا نشان"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"فجائیہ نشان کے ساتھ آن کے اوپر دائیں طرف تیر کا نشان"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"جلد کے اوپر دائیں طرف تیر کا نشان"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"ٹاپ کے اوپر اوپر کی طرف تیر کا نشان"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"اٹھارہ سال سے کم کو اجازت نہیں کا نشان"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"کی کیپ دس"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"لاطینی بڑے حروف کیلئے ان پٹ کی علامت"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"لاطینی چھوٹے حروف کیلئے ان پٹ کی علامت"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"اعداد کیلئے ان پٹ کی علامت"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"علامات کیلئے ان پٹ علامت"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"لاطینی حروف کیلئے ان پٹ کی علامت"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"آگ"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"الیکٹرک مشعل"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"رینچ"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"ہتھوڑا"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"نٹ اور بولٹ"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"ہوچو"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"پستول"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"خورد بین"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"دور بین"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"بلوریں گیند"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"درمیانی نقطے کے ساتھ چھ کونوں والا ستارہ"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"مبتدی کیلئے جاپانی علامت"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"ترشول کا نشان"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"سیاہ مربع بٹن"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"سفید مربع بٹن"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"بڑا سرخ دائرہ"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"بڑا نیلا دائرہ"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"بڑا نارنجی ہیرا"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"بڑا نیلا ہیرا"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"چھوٹا نارنجی ہیرا"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"چھوٹا نیلا ہیرا"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"اوپر اشارہ کرنے والا سرخ مثلث"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"نیچے اشارہ کرنے والا سرخ مثلث"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"اوپر اشارہ کرنے والا چھوٹا سرخ مثلث"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"نیچے اشارہ کرنے والا چھوٹا سرخ مثلث"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"گھڑی کا رخ ایک بجے"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"گھڑی کا رخ دو بجے"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"گھڑی کا رخ تین بجے"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"گھڑی کا رخ چار بجے"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"گھڑی کا رخ پانچ بجے"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"گھڑی کا رخ چھ بجے"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"گھڑی کا رخ سات بجے"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"گھڑی کا رخ آٹھ بجے"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"گھڑی کا رخ نو بجے"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"گھڑی کا رخ دس بجے"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"گھڑی کا رخ گیارہ بجے"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"گھڑی کا رخ بارہ بجے"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"گھڑی کا رخ ایک تیس"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"گھڑی کا رخ دو تیس"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"گھڑی کا رخ تین تیس"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"گھڑی کا رخ چار تیس"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"گھڑی کا رخ پانچ تیس"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"گھڑی کا رخ چھ تیس"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"گھڑی کا رخ سات تیس"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"گھڑی کا رخ آٹھ تیس"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"گھڑی کا رخ نو تیس"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"گھڑی کا رخ دس تیس"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"گھڑی کا رخ گیارہ تیس"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"گھڑی کا رخ بارہ تیس"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"ماؤنٹ فیوجی"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"ٹوکیو ٹاور"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"مجسمۂ آزادی"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"جاپان کا یک رخی خاکہ"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"مویائی"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"کھسیانی ہنسی والا چہرہ"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"مسکراتی آنکھوں کے ساتھ ہنستا ہوا چہرہ"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"خوشی کے آنسوؤں والا چہرہ"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"کھلے منہ والا مسکراتا چہرہ"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"کھلے منہ اور مسکراتی آنکھوں والا مسکراتا چہرہ"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"کھلے منہ اور ٹھنڈے پسینے والا مسکراتا چہرہ"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"کھلے منہ اور سختی سے بند آنکھوں والا مسکراتا چہرہ"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"ہالہ والا مسکراتا چہرہ"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"سینگوں والا مسکراتا چہرہ"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"پلک جھپکاتا چہرہ"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"مسکراتی آنکھوں والا مسکراتا چہرہ"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"مزیدار کھانے کا ذائقہ دینے والا چہرہ"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"پرسکون چہرہ"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"دل کی شکل کی آنکھوں والا مسکراتا چہرہ"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"دھوپ چشموں والا مسکراتا چہرہ"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"بناوٹی مسکراہٹ والا چہرہ"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"غیر جانبدار چہرہ"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"اظہار سے عاری چہرہ"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"اداس چہرہ"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"ٹھنڈے پسینے والا چہرہ"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"متفکر چہرہ"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"الجھا ہوا چہرہ"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"بے ترتیب چہرہ"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"چومنے والا چہرہ"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"بوسہ اچھالنے والا چہرہ"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"مسکراتی آنکھوں کے ساتھ چومنے والا چہرہ"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"بند آنکھوں کے ساتھ چومنے والا چہرہ"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"باہر نکلی زبان والا چہرہ"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"باہر نکلی زبان اور پلک جھپکتی آنکھ والا چہرہ"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"باہر نکلی زبان اور سختی سے بند آنکھوں والا چہرہ"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"مایوس چہرہ"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"فکرمند چہرہ"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"ناراض چہرہ"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"لٹکا ہوا چہرہ"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"روتا ہوا چہرہ"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"مستقل مزاج چہرہ"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"فتح کی ہیئت والا چہرہ"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"مایوس لیکن پرسکون چہرہ"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"کھلے منہ والا رنجیدہ چہرہ"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"غمزدہ چہرہ"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"خوفزدہ چہرہ"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"افسردہ چہرہ"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"خوابیدہ چہرہ"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"تھکا ہوا چہرہ"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"مضحکہ خیز چہرہ"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"زور سے رونے والا چہرہ"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"کھلے منہ والا چہرہ"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"مخفی چہرہ"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"کھلے منہ اور ٹھنڈے پسینے والا چہرہ"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"خوف سے چلانے والا چہرہ"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"حیران چہرہ"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"سرخی آمیز چہرہ"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"سوتا ہوا چہرہ"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"چکراتا ہوا چہرہ"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"بغیر منہ والا چہرہ"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"طبی ماسک والا چہرہ"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"مسکراتی آنکھوں کے ساتھ کھسیانی بلی کا چہرہ"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"خوشی کے آنسوؤں کے ساتھ بلی کا چہرہ"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"کھلے منہ کے ساتھ مسکراتی بلی کا چہرہ"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"دل کی شکل والی آنکھوں کے ساتھ مسکراتی بلی کا چہرہ"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"خمیدہ مسکراہٹ کے ساتھ بلی کا چہرہ"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"بند آنکھوں کے ساتھ چومنے والی بلی کا چہرہ"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"لٹکا ہوا بلی کا چہرہ"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"رونے والی بلی کا چہرہ"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"افسردہ بلی کا چہرہ"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"اچھے انداز سے عاری چہرہ"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"ٹھیک ہے انداز والا چہرہ"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"پوری طرح سے جھکا ہوا شخص"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"برا نہ دیکھنے والا بندر"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"برا نہ سننے والا بندر"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"برا نہ بولنے والا بندر"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"ایک ہاتھ اٹھائے ہوئے خوش شخص"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"جشن میں دونوں ہاتھ اٹھاتا ہوا شخص"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"رنجیدہ شخص"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"لٹکے ہوئے چہرے والا شخص"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"باندھے ہوئے ہاتھوں والا شخص"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"راکٹ"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"ہیلی کاپٹر"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"بھاپ انجن"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"ریلوے کار"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"ہائی اسپیڈ ٹرین"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"بلیٹ جیسی ناک والی ہائی اسپیڈ ٹرین"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"ٹرین"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"میٹرو"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"ہلکی ریل"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"اسٹیشن"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"ٹرام"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"ٹرام کار"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"بس"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"آنے والی بس"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"ٹرالی بس"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"بس اسٹاپ"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"منی بس"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"ایمبولینس"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"فائر انجن"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"پولیس کار"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"آنے والی پولیس کار"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"ٹیکسی"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"آنے والی ٹیکسی"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"آٹو موبائل"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"آنے والا آٹوموبائل"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"تفریحی گاڑی"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"ڈیلیوری ٹرک"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"جوڑوں سے بنی ہوئی لاری"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"ٹریکٹر"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"مونو ریل"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"ماؤنٹین ریلوے"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"معلق ریلوے"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"ماؤنٹین کیبل وے"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"ایریل ٹرام وے"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"بحری جہاز"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"ناؤ"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"اسپیڈ بوٹ"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"افقی ٹریفک لائٹ"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"عمودی ٹریفک کی روشنی"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"تعمیراتی نشان"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"پولیس کاروں کی گھومتی روشنی"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"چوکی پر مثلث نما پرچم"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"دروازہ"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"داخلہ ممنوع کا نشان"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"سگریٹ نوشی کی علامت"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"سگریٹ نوشی منع ہے کی علامت"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"گندگی کو اس کی جگہ میں ڈالیں کی علامت"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"گندگی نہ پھیلائیں کی علامت"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"برتن میں ڈالے جا سکنے والے پانی کی علامت"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"برتن میں نہ ڈالے جا سکنے والے پانی کی علامت"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"سائیکل"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"سائیکلوں کی اجازت نہیں"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"سائیکل سوار"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"پہاڑی سائیکل سوار"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"پیدل چلنے والے"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"پیدل چلنے والوں کی اجازت نہیں کی علامت"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"سڑک پار کرنے والے بچے"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"مردوں کی علامت"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"خواتین کی علامت"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"بیت الخلاء"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"بچے کی علامت"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"ٹوائلٹ"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"طہارت خانہ"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"شاور"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"غسل"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"باتھ ٹب"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"پاسپورٹ کنٹرول"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"کسٹمز"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"سامان کا دعوی"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"چھوٹا ہوا سامان"</string>
+</resources>
diff --git a/java/res/values-ur-rPK/strings-talkback-descriptions.xml b/java/res/values-ur-rPK/strings-talkback-descriptions.xml
index 5820372..fac64cc 100644
--- a/java/res/values-ur-rPK/strings-talkback-descriptions.xml
+++ b/java/res/values-ur-rPK/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"کوئی متن درج نہیں کیا گیا"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> کو ٹھیک کر کے <xliff:g id="CORRECTED_WORD">%3$s</xliff:g> کر دیتی ہے"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> خود کار اصلاح کو انجام دیتی ہے"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"کوئی تجویز نہیں"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"نامعلوم حرف"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"مزید علامات"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"‏بڑی I، اوپر ڈاٹ"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"نامعلوم علامت"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"‏نامعلوم emoji"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"اکتایا ہوا چہرہ"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"شرمندہ چہرہ"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"دھوپ کا چشمہ پہنا ہوا چہرہ"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"حیران چہرہ"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"چومنے والا چہرہ"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"تیوری چڑھایا ہوا چہرہ"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"متبادل حروف دستیاب ہیں"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"متبادل حروف کو مسترد کر دیا گیا ہے"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"متبادل تجاویز دستیاب ہیں"</string>
diff --git a/java/res/values-ur-rPK/strings.xml b/java/res/values-ur-rPK/strings.xml
index 8439cb5..301bcdf 100644
--- a/java/res/values-ur-rPK/strings.xml
+++ b/java/res/values-ur-rPK/strings.xml
@@ -26,24 +26,30 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"کلید دبانے پر وائبریٹ کریں"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"کلید دبانے پر آواز"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"کلید دبانے پر پاپ اپ"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"ترجیحات"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"اکاؤنٹس اور رازداری"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"ظہور اور لے آؤٹس"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"اشارہ جاتی ٹائپنگ"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"متن کی اصلاح"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"جدید ترین"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"تھیم"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"الگ ہونے والا کی بورڈ فعال کریں"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"‏Google کی بورڈ کی مطابقت پذیری"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"مطابقت پذیری آن کر دی گئی"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"سبھی آلات پر اپنی ذاتی لغت کی مطابقت پذیری کریں"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"ابھی مطابقت پذیری کریں"</string>
+    <!-- no translation found for clear_sync_data_title (8582001557037069154) -->
     <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"‏Google سے آپ کے مطابقت پذیر ڈیٹا کو حذف کر دیتا ہے"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"آپ کا مطابقت پذیر ڈيٹا کلاؤڈ سے حذف ہو جائے گا۔ کیا آپ تیار ہیں؟"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"حذف کریں"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"منسوخ کریں"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"‏آپ کی ذاتی لغت کی مطابقت پذیری کی جائے گی اور Google سرورز میں اس کا بیک اپ لیا جائے گا۔ ہمارے پروڈکٹس کو بہتر بنانے میں مدد کرنے کیلئے الفاظ کی فریکوئنسی کے اعداد و شمار کی معلومات کو جمع کیا جا سکتا ہے۔ سبھی معلومات کی جمع آوری اور استعمال "<a href="https://www.google.com/policies/privacy">"Google کی رازداری کی پالیسی"</a>" کے مطابق ہوگا۔"</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"‏یہ خصوصیت فعال کرنے کیلئے اس آلہ پر ایک Google اکاؤنٹ شامل کریں"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"دیگر اندراج طریقوں پر سوئچ کریں"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"زبان سوئچ کرنے کی کلید اندراج کے دیگر طریقوں کا بھی احاطہ کرتی ہے"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"زبان سوئچ کرنے کی کلید"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"متعدد ان پٹ زبانیں فعال ہونے پر دکھائیں"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"سلائیڈ انڈیکیٹر کو دکھائیں"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"‏Shift یا علامت کلیدوں سے سلائیڈ کرتے ہوئے بصری اشارہ ڈسپلے کریں"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"کلید پاپ اپ رفع کی تاخیر"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"کوئی تاخیر نہیں"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"ڈیفالٹ"</string>
@@ -62,9 +68,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"مرکزی لغت"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"اصلاح کی تجاویز دکھائیں"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"ٹائپ کرتے وقت تجویز کردہ الفاظ ڈسپلے کریں"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"ہمیشہ دکھائیں"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"پورٹریٹ وضع میں دکھائیں"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"ہمیشہ چھپائیں"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"ناگوار الفاظ مسدود کریں"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"ممکنہ طور پر ناگوار الفاظ تجویز نہ کریں"</string>
     <string name="auto_correction" msgid="7630720885194996950">"خود کار اصلاح"</string>
@@ -85,21 +88,32 @@
     <string name="voice_input" msgid="3583258583521397548">"صوتی ان پٹ کلید"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"کوئی صوتی اندراج کے طریقے فعال نہیں ہیں۔ زبان اور ان پٹ ترتیبات کو چیک کریں۔"</string>
     <string name="configure_input_method" msgid="373356270290742459">"اندراج کے طریقے کنفیگر کریں"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"ان پٹ زبانیں"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"تاثرات بھیجیں"</string>
-    <string name="select_language" msgid="3693815588777926848">"ان پٹ زبانیں"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"زبانیں"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"مدد اور تاثرات"</string>
+    <string name="select_language" msgid="5709487854987078367">"زبانیں"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"محفوظ کرنے کیلئے دوبارہ ٹچ کریں"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"محفوظ کرنے کیلئے یہاں ٹچ کریں"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"لغت دستیاب ہے"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"کی بورڈ تھیم"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"اکاؤنٹس سوئچ کریں"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"کوئی اکاؤنٹس منتخب نہیں کیے گئے"</string>
+    <string name="account_selected" msgid="2846876462199625974">"فی الحال <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g> استعمال کیا جا رہا ہے"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"ٹھیک ہے"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"منسوخ کریں"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"سائن آؤٹ کریں"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"استعمال کرنے کیلئے ایک اکاؤنٹ منتخب کریں"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"انگریزی (برطانیہ)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"انگریزی (امریکہ)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"ہسپانوی (امریکہ)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"ہنگلش"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"سربیائی (لاطینی)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"انگریزی (برطانیہ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"انگریزی (امریکہ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"ہسپانوی (امریکہ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"ہنگلش (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"سربیائی (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (روایتی)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (سیریلک)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (لاطینی)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (کمپیکٹ)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"کوئی زبان نہیں (الفابیٹ)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"‏حروف تہجی (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"‏حروف تہجی (QWERTZ)"</string>
@@ -108,16 +122,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"‏حروف تہجی (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"‏حروف تہجی (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"کی بورڈ تھیم"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"حسب ضرورت ان پٹ اسٹائلز"</string>
     <string name="add_style" msgid="6163126614514489951">"اسٹائل شامل کریں"</string>
     <string name="add" msgid="8299699805688017798">"شامل کریں"</string>
@@ -129,14 +134,9 @@
     <string name="enable" msgid="5031294444630523247">"فعال کریں"</string>
     <string name="not_now" msgid="6172462888202790482">"ابھی نہیں"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"ایسا ہی ان پٹ اسٹائل پہلے سے موجود ہے: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"کلید کو دیر تک دبانے کی تاخیر"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"کلید دبانے پر وائبریشن کا دورانیہ"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"کلید دبانے پر آواز کا والیوم"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"خارجی لغت کی فائل پڑھیں"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"ڈاؤن لوڈز فولڈر میں کوئی لغت فائلیں نہیں ہیں"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"انسٹال کرنے کیلئے ایک لغت فائل منتخب کریں"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> کیلئے واقعی اس فائل کو انسٹال کریں؟"</string>
-    <string name="error" msgid="8940763624668513648">"ایک خرابی پیش آگئی"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"کلید کو دیر تک دبانے کی تاخیر"</string>
     <string name="button_default" msgid="3988017840431881491">"ڈیفالٹ"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> میں خوش آمدید"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"اشارہ ٹائپنگ کے ساتھ"</string>
@@ -154,8 +154,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"اب آپ <xliff:g id="APPLICATION_NAME">%s</xliff:g> کے ساتھ اپنی سبھی پسندیدہ ایپس میں ٹائپ کر سکتے ہیں۔"</string>
     <string name="setup_step3_action" msgid="600879797256942259">"اضافی زبانیں کنفیگر کریں"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"مکمل ہو گیا"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"ایپ آئیکن دکھائیں"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"لانچر میں ایپلیکیشن آئیکن کو ڈسپلے کریں"</string>
     <string name="app_name" msgid="6320102637491234792">"لغت فراہم کنندہ"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"لغت فراہم کنندہ"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"لغت سروس"</string>
diff --git a/java/res/values-uz-rUZ/strings-action-keys.xml b/java/res/values-uz-rUZ/strings-action-keys.xml
index 1bb617c..547388d 100644
--- a/java/res/values-uz-rUZ/strings-action-keys.xml
+++ b/java/res/values-uz-rUZ/strings-action-keys.xml
@@ -20,19 +20,12 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for label_go_key (4033615332628671065) -->
-    <skip />
-    <!-- no translation found for label_next_key (5586407279258592635) -->
-    <skip />
-    <!-- no translation found for label_previous_key (1421141755779895275) -->
-    <skip />
-    <!-- no translation found for label_done_key (7564866296502630852) -->
-    <skip />
-    <!-- no translation found for label_send_key (482252074224462163) -->
-    <skip />
+    <string name="label_go_key" msgid="4033615332628671065">"OK"</string>
+    <string name="label_next_key" msgid="5586407279258592635">"Keyingi"</string>
+    <string name="label_previous_key" msgid="1421141755779895275">"Avvalgi"</string>
+    <string name="label_done_key" msgid="7564866296502630852">"Tayyor"</string>
+    <string name="label_send_key" msgid="482252074224462163">"Yuborish"</string>
     <string name="label_search_key" msgid="7965186050435796642">"Qidiruv"</string>
-    <!-- no translation found for label_pause_key (2225922926459730642) -->
-    <skip />
-    <!-- no translation found for label_wait_key (5891247853595466039) -->
-    <skip />
+    <string name="label_pause_key" msgid="2225922926459730642">"Pauza"</string>
+    <string name="label_wait_key" msgid="5891247853595466039">"Kutish"</string>
 </resources>
diff --git a/java/res/values-uz-rUZ/strings-appname.xml b/java/res/values-uz-rUZ/strings-appname.xml
new file mode 100644
index 0000000..8bc9cc1
--- /dev/null
+++ b/java/res/values-uz-rUZ/strings-appname.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="english_ime_name" msgid="5940510615957428904">"Android klaviaturasi (AOSP)"</string>
+    <string name="spell_checker_service_name" msgid="1254221805440242662">"Android imlo tekshirgichi (AOSP)"</string>
+    <string name="english_ime_settings" msgid="5760361067176802794">"Android klaviaturasi sozlamalari (AOSP)"</string>
+    <string name="android_spell_checker_settings" msgid="6123949487832861885">"Android imlo tekshirgichi sozlamalari (AOSP)"</string>
+</resources>
diff --git a/java/res/values-uz-rUZ/strings-config-important-notice.xml b/java/res/values-uz-rUZ/strings-config-important-notice.xml
new file mode 100644
index 0000000..3b27169
--- /dev/null
+++ b/java/res/values-uz-rUZ/strings-config-important-notice.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="use_personalized_dicts_summary" msgid="590432261305469627">"Qurilma siz ko‘p yozgan ma’lumotlarni eslab qoladi"</string>
+</resources>
diff --git a/java/res/values-uz-rUZ/strings-emoji-descriptions.xml b/java/res/values-uz-rUZ/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..b1869e5
--- /dev/null
+++ b/java/res/values-uz-rUZ/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Mualliflik huquqi belgisi"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Ro‘yxatga olingan belgisi"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Qo‘sh undov belgisi"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Undov va so‘roq belgisi"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Savdo belgisi"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Ma’lumot"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Chapga va o‘ngga qaragan ko‘rsatkichli chiziq"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Tepaga-pastga qaragan ko‘rsatkichli chiziq"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Shimoli g‘arbga qaragan ko‘rsatkichli chiziq"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Shimoli sharqqa qaragan ko‘rsatkichli chiziq"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Janubi sharqqa qaragan ko‘rsatkichli chiziq"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Janubi g‘arbga qaragan ko‘rsatkichli chiziq"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Orqasida ilmog‘i bor chapga qaragan ko‘rsatkichli chiziq"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Orqasida ilmog‘i bor o‘ngga qaragan ko‘rsatkichli chiziq"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Qo‘l soati"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Qumsoat"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"O‘ngga qaragan qora qo‘sh uchburchak"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Chapga qarab turgan qora qo‘sh uchburchak"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Yuqoriga qaragan qora qo‘sh uchburchak"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Pastga qaragan qora qo‘sh uchburchak"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Uyg‘otkich soat"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Qum tushayotgan qumsoat"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Aylana ichida lotincha M harfi"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Qora kichkina kvadratcha"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Oq kichik kvadratcha"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"O‘ngga qaragan qora uchburchak"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Chapga qarab turgan qora uchburchak"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Oq o‘rtacha kvadrat"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Qora o‘rtacha kvadrat"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Oq o‘rtacha kichik kvadratcha"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Qora o‘rtacha kichik kvadratcha"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Nur taratayotgan qora quyosh"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Bulut"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Qora telefon"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Ichi belgilangan belgilash katakchasi"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Soyabon va yomg‘ir tomshilari"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Issiq ichimlik"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Ko‘rsatkich barmog‘i yuqoriga qarab turgan oq qo‘l"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Oq kulayotgan yuz"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Qo‘y"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Buzoq"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Egizaklar"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Qisqichbaqa"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Arslon"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Parizod"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Tarozi"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Chayon"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"O‘qotar"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Tog‘ echkisi"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Qovg‘a"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Baliq"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Qora qarg‘a kartasi"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Qora chillik kartasi"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Qora tappon kartasi"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Qora g‘ishtin kartasi"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Issiq buloq"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Qora universal qayta ishlash belgisi"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Nogironlar aravasi belgisi"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Langar"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Ogohlantiruvchi belgi"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Yuqori kuchlanish belgisi"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"O‘rtacha oq aylana"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"O‘rtacha qora doira"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Futbol to‘pi"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Beysbol"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Qorsiz qorbobo"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Bulut ortida quyosh"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Ilon tashuvchi"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Kirish mumkin emas"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Cherkov"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Favvora"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Teshikka o‘rnatilgan bayroq"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Yelkanli kema"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Chodir"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Yonilg‘i nasosi"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Qora qaychi"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Belgilash uchun oq katta belgi"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Samolyot"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Konvert"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Ko‘tarilgan musht"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Ko‘tarilgan qo‘l"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"V (victory – g‘alaba) harfini ko‘rsatib turgan qo‘l"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Qalam"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Qora pero"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Belgilash uchun to‘q belgi"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"To‘q X (ko‘paytiruv) belgisi"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Uchqunlar"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Sakkiz kegayli yulduzcha"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Sakkiz qirrali qora yulduz"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Qor parchasi"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Uchqun"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Xoch belgisi"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Qora kvadrat ichida oq xoch belgisi"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Naqshinkor qora so‘roq belgisi"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Naqshinkor oq savol belgisi"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Naqshinkor oq undov belgisi"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"To‘q undov belgisi"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"To‘q qora yurak"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"To‘q qo‘shuv belgisi"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"To‘q ayiruv belgisi"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"To‘q bo‘luv belgisi"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"O‘ngga qaragan qora ko‘rsatkichli chiziq"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Halqa"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Qo‘sh jingalak halqa"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Avval o‘ngga, keyin qayrilib yuqoriga qaragan ko‘rsatkichli chiziq"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Avval o‘ngga, keyin qayrilib pastga qaragan ko‘rsatkichli chiziq"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Chapga qaragan qora ko‘rsatkichli chiziq"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Yuqoriga qaragan qora ko‘rsatkichli chiziq"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Pastga qaragan qora ko‘rsatkichli chiziq"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Katta qora kvadrat"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Katta oq kvadrat"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"O‘rtacha oq yulduzcha"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Juda katta aylana"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"To‘lqinli chiziq"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Ovoz almashinuvi belgisi"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Aylana ichida iyeroglif yozuvidagi tabriklash belgisi"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Aylana ichida ieyroglif yozuvidagi maxfiy belgisi"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Majong toshidagi qizil ajdar"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"O‘yin kartasidagi qora joker"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"A (II) qon guruhi"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"B (III) qon guruhi"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"O (I) qon guruhi"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"To‘q kvadrat ichida P harfi"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"AB (IV) qon guruhi"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"Kvadrat ichida CL harf birikmasi"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Kvadrat ichida COOL (ajoyib) yozuvi"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Kvadrat ichida FREE (bepul) yozuvi"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"Kvadrat ichida ID (identifikator) yozuvi"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Kvadrat ichida NEW (yangi) yozuvi"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Kvadrat ichida N G (yaxshi emas) yozuvi"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Kvadrat ichida OK yozuvi"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"Kvadrat ichida SOS (yordam) yozuvi"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Kvadrat ichida UP! (tepaga) yozuvi"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Kvadrat ichida VS (qarshi belgisi) yozuvi"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Kvadrat ichida katakana yozuvidagi KOKO (bu yerda) belgisi"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Kvadrat ichida katakana yozuvidagi SA (xizmat) belgisi"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Kvadrat ichida iyeroglif yozuvidagi “bepul” belgisi"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Kvadrat ichida iyeroglif yozuvidagi “band qilingan joy” belgisi"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Kvadrat ichida iyeroglif yozuvidagi “taqiqlangan” belgisi"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Kvadrat ichida iyeroglif yozuvidagi “bo‘sh” belgisi"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Kvadrat ichida iyeroglif yozuvidagi “tasdiqlash” belgisi"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Kvadrat ichida iyeroglif yozuvidagi “to‘la” belgisi"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Kvadrat ichida egalik qilish iyeroglifi"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Kvadrat ichida iyeroglif yozuvidagi “har oy” belgisi"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Kvadrat ichida iyeroglif yozuvidagi “ilova” belgisi"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Kvadrat ichida iyeroglif yozuvidagi “chegirma” belgisi"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Kvadrat ichida iyeroglif yozuvidagi “biznesda” belgisi"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Aylana ichida iyeroglif yozuvidagi “afzallik” belgisi"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Aylana ichida iyeroglif yozuvidagi “qabul qilish” belgisi"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"To‘fon"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Tumanli"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Yopiq soyabon"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Yulduzli tun"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Tog‘lar ortidan quyosh chiqishi"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Quyosh chiqishi"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Qosh qoraygandagi shahar manzarasi"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Binolar ortiga quyoshning botishi"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Kamalak"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Tundagi ko‘prik"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Suv to‘lqini"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Vulqon"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Somon yo‘li"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Globusda Yevropa va Afrika"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Amerika tasvirlangan globus"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Globusda Osiyo va Avstraliya"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Meridian chiziqli globus"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Yangi oy ramzi"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Kattalashib boruvchi yarim oy ramzi"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Birinchi chorakdagi oy ramzi"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Kattalashib borayotgan qavariq oy ramzi"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"To‘lin oy ramzi"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Kichiklashib borayotgan qavariq oy"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"So‘nggi chorakdagi oy ramzi"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Kichiklashib borayotgan yarim oy ramzi"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Oy"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Ichida yuz tasvirlangan yangi oy"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Ichida yuz tasvirlangan birinchi chorakdagi oy"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Ichida yuz tasvirlangan so‘nggi chorakdagi oy"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Ichida yuz tasvirlangan to‘lin oy"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Ichida yuz tasvirlangan quyosh"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Porlayotgan yulduz"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Uchayotgan yulduz"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Kashtan yong‘og‘i"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Ko‘chat"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Archa"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Bargli daraxt"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Palma daraxti"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Kaktus"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Lola"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Gilos guli"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Atirgul"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Xitoy atirguli"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Kungaboqar"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Gul"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Makkajo‘xori dumbuli"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Sholi boshog‘i"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"O‘simlik"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"To‘rt yaproqli beda bargi"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Zarang bargi"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Xazon bargi"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Shamolda uchayotgan barg"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Qo‘ziqorin"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Pomidor"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Baqlajon"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Uzum"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Qovun"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Tarvuz"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Mandarin"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Limon"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Banan"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Ananas"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Qizil olma"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Ko‘k olma"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Nok"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Shaftoli"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Giloslar"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Qulupnay"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Gamburger"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Pitsa bo‘lagi"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Suyakdagi go‘sht"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Parranda oyog‘i"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Guruchli pishiriq"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Yumaloqlangan guruch"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Pishirilgan guruch"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Guruchli karri"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Issiq lag‘mon"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Spagetti"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Non"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Qovurilgan fri-kartoshka"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Jigarli batat"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Sixdagi dengiz taomi"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Sushi"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Qovurilgan qisqichbaqa"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Girdob ko‘rinishidagi baliqli tort"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Yumshoq muzqaymoq"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Qirilgan muz"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Muzqaymoq"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Yog‘da ko‘pchib pishgan kulcha"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Pishiriq"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Shokolad bo‘lagi"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Konfet"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Obakidandon"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Tuxum va sutdan qilingan krem"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Asalli xum"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"To‘rt bo‘lagi"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Xonachali taom qutisi"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Bir qozon ovqat"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Taom tayyorlash"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Sanchqi va pichoq"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Tutqichsiz piyola"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Ko‘za va piyola"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Bir stakan vino"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Jomdagi kokteyl"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Tropik ichimlik"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Pivo qadahi"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Pivo stakanlarini bir-biriga urishtirish"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Chaqoloqlar suv idishi"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Lenta"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"O‘ralgan sovg‘a"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Tug‘ilgan kun torti"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Shamchiroqli oshqovoq"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Rojdestvo archasi"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Santa-Klaus"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Mushakbozlik"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Bengal olovi"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Havo shari"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Poqildoq"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Konfetti"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Tanabata daraxti"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Bir-birini kesib o‘tgan bayroqlar"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Qarag‘ay bezagi"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Yapon qo‘g‘irchoqlari"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Zog‘orabaliq shaklida vimpel"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Shamol qo‘ng‘irog‘i"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Oy ko‘rish marosimi"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Maktab xaltasi"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Akademik bosh kiyim"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Ot o‘yini"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Charxpalak"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"G‘ildiratma hayinchak"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Qarmoq va baliq"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Mikrofon"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Kinokamera"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Kinoteatr"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Quloqchin"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Palitra"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Silindr shlyapa"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Sirk chodiri"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Chipta"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Poqildoqli numerator"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Teatr niqoblari"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Video o‘yin"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Mo‘ljalni urish"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"O‘yin avtomati"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Billiard"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Shoshqol toshi"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Bouling"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Gulli o‘yin kartalari"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Musiqiy nota"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Bir nechta musiqiy nota"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saksofon"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Gitara"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Musiqiy klaviatura"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Truba (karnaysimon musiqa asbobi)"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Skripka"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Musiqa kaliti"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Yuguruvchining maykasi"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Tennis raketkasi va koptokchasi"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Chang‘i va chang‘i oyoq kiyimi"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Basketbol to‘pi va halqa"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Katak-katak bayroq"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Snoubordchi"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Yuguruvchi"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Serfingchi"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Kubok"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Otchopar"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Amerikancha futbol"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Regbi"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Suzuvchi"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Uy"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Bog‘li uy"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Ofis binosi"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Yapon pochtamti"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Yevropa pochtamti"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Shifoxona"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Bank"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Bankomat"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Mehmonxona"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Sevgi mehmonxonasi"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Navbatchi do‘kon"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Maktab"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Univermag"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Zavod"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Izakaya fonusi"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Yapon qasri"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Yevropa qasri"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Kalamush"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Sichqon"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Buqa"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Buyvol"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Sigir"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Leopard"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Quyon"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Mushuk"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Ajdar"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Timsoh"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Kit"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Shilliq qurt"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Ilon"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Ot"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Qo‘chqor"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Echki"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Qo‘y"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Maymun"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Xo‘roz"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Jo‘ja"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"It"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Cho‘chqa"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Erkak cho‘chqa"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Fil"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Sakkizoyoq"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Chig‘anoq"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Taxtakana"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Chumoli"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Asalari"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Urg‘ochi qo‘ng‘iz"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Baliq"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Tropik baliq"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Qorni katta baliq"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Toshbaqa"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Tuxumdan chiqayotgan jo‘ja"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Jo‘ja"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Oldiga qarab turgan jo‘ja"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Qush"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Pingvin"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Koala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Pudel"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Bir o‘rkachli tuya"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Ikki o‘rkachli tuya"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Delfin"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Sichqon yuzi"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Sigirning boshi"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Yo‘lbars yuzi"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Quyon yuzi"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Mushukning boshi"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Ajdar yuzi"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Favvora hosil qilayotgan kit"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Ot yuzi"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Maymun yuzi"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Itning boshi"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Cho‘chqa yuzi"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Qurbaqa yuzi"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Og‘maxonning boshi"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Bo‘ri yuzi"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Ayiq yuzi"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Panda yuzi"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Cho‘chqa burni"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Panja izlari"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Ko‘zlar"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Quloq"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Burun"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Og‘iz"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Til"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Ko‘rsatkich barmog‘i orqa tomoni bilan yuqoriga qarab turgan oq qo‘l"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Ko‘rsatkich barmog‘i orqa tomoni bilan pastga qarab turgan oq qo‘l"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Ko‘rsatkich barmog‘i orqa tomoni bilan chapgaga qarab turgan oq qo‘l"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Ko‘rsatkich barmog‘i orqa tomoni bilan o‘ngga qarab turgan oq qo‘l"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Musht belgisi"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Shapaloq belgisi"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Qo‘lda qilingan OK belgisi"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Bosh barmoq tepaga qaragan belgi"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Bosh barmoq pastga qaragan belgi"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Qarsaklar"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Ochiq qo‘llar belgisi"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Toj"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Ayollar shlyapasi"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Ko‘zoynak"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Bo‘yinbog‘"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Futbolka"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Jinsi"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Libos"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bikini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Ayollar kiyimlari"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Hamyon"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Ayollar qo‘l sumkasi"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Kichik sumka"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Erkaklar tuflisi"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Krossovka"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Baland poshnali tufli"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Ayollar shippagi"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Ayollar etigi"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Oyoq izlari"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Bosh va yelkaning kontur chizig‘i"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Kontur suratli byustlar"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"O‘g‘il bola"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Qiz bola"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Erkak"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Ayol"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Oila"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Qo‘l ushlashib turgan erkak va ayol"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Qo‘l ushlashib turgan ikki erkak"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Qo‘l ushlashib turgan ikki ayol"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Politsiya xodimi"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Quyon quloqli ayol"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"To‘y romolidagi kelin"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Malla soch odam"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"An’anaviy xitoy bosh kiyimidagi erkak"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Salla kiygan erkak"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Qarir erkak"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Qari ayol"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Chaqaloq"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Quruvchi"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Malika"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Yapon odamxo‘ri"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Yapon ajinasi"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Arvoh"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Chaqaloq farishta"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"O‘zga sayyoralik"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"O‘zga sayyoralik maxluq"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Shayton"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Bosh suyagi"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Ma’lumotxona xodimi"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Qo‘riqchi"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Raqqos"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Lab bo‘yog‘i"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Tirnoq uchun lok"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Yuzni uqalash"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Soch qisqartirish"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Sartaroshlar ustuni"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Doripurkagich (shprits)"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Hapdori"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Bo‘sa belgisi"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Sevgi maktubi"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Uzuk"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Qimmatbaho tosh"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Bo‘sa olish"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Guldasta"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Juftlik va yurak"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Nikoh to‘yi"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Urayotgan yurak"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Singan yurak"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Ikkita yurak"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Chaqnayotgan yurak"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Kattalashayotgan yurak"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Yurak va kamon o‘qi"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Havorang yurak"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Yashil yurak"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Sariq yurak"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Binafsharang yurak"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Yurak va lenta"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Aylnayaotgan yuraklar"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Yurak bezagi"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Markazida nuqtasi bor romb"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Porlab turgan elektr lampa"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Jahl belgisi"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bomba"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Uyquga oid"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"To‘qnashuv belgisi"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Dona-dona ter"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Tomchi"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Zo‘r berish belgisi"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Tezak uyumi"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Baquvvat muskullar"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Bosh aylanish"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Nutq buluti"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"O‘y-xayol buluti"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Oq gul"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"100 ball belgisi"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Pul xalta"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Valyuta ayirboshlash"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Og‘ir dollar belgisi"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Kredit karta"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Iyena belgili banknota"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Dollar belgili banknota"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Yevro belgili banknota"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Funt-sterling belgili banknota"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Qanoti bor pul dastasi"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"O‘suvchi trend chizmasi va iyena belgisi"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"O‘rindiq"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Shaxsiy kompyuter"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Portfel"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Mini-disk"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Disketa"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Optik disk"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Fayl jildi"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Ochiq fayl jildi"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Gajakli sahifa"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Oldiga qarab turgan sahifa"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Taqvim"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Yirtiladigan taqvim"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Kartoteka"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"O‘suvchi trend chizmasi"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Kamayib boruvchi grafik"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Ustunli grafik"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Jild-planshet"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Kanselyariya bosma mixi"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Yumaloq bosma mix"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Qistirgich"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Chizg‘ich"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Uchburchak chizg‘ich"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Xatcho‘p oynalari"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Ro‘yxatga olish kitobi"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Daftar"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Bezakli muqovali daftar"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Yopiq kitob"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Ochiq kitob"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Yashil kitob"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Havorang kitob"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"To‘q sariq kitob"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Kitoblar"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Ism yoziladigan nishon"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"O‘ralgan xat"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Qayd"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Telefon go‘shagi"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Peyjer"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Faks apparati"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Sun’iy yo‘ldoshli antenna"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"E’lon qiluvchi karnay"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Ovozni kuchaytiruvchi karnay"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Chiquvchi xat qutisi"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Kiruvchi xat qutisi"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"O‘ralgan sovg‘a"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"E-pochta belgisi"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Kiruvchi konvert"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Tepasida pastga qaragan ko‘rsatkichli chizig‘i bor konvert"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Pastga qaragan bayroqli yopiq pochta qutisi"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Bayroqchasi ko‘tarilgan yopiq pochta qutisi"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Yuqoriga ko‘tarilgan bayroqli ochiq pochta qutisi"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Pastga qaragan bayroqli ochiq pochta qutisi"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Pochta qutisi"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Shoxsimon nay"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Gazeta"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Mobil telefon"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Mobil telefon va uning chap tomonida unga qarab turgan ko‘rsatkichli chiziq"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Tebranish rejimi"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Mobil telefon o‘chirilgan"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Mobil telefondan foydalanish taqiqlanadi"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Signal darajasi ko‘rinib turgan antenna belgisi"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Kamera"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Videokamera"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Televizor"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Radio"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Videokasseta"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Qayrilib bir-birini kesib o‘tgan va o‘ngga qaragan ikki ko‘rsatkichli chiziq"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Soat mili yo‘nalishda o‘ngga va chapga qarab turgan ochiq aylana ko‘rsatkichli chiziqlari"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Ostida aylana ichida 1 raqami bor hamda soat mili yo‘nalishida o‘ngga va chapga qaragan ochiq aylana chiziqlari"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Soat mili yo‘nalishda yuqoriga va pastga qarab turgan ochiq aylana ko‘rsatkichli chiziqlari"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Soat miliga teskari yo‘nalishda pastga va tepaga qaragan ochiq aylana chiziqlari"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Kam yorqinlik belgisi"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Yuqori darajadagi yorqinlik belgisi"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Taqiqlovchi chizig‘i bor karnay"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Karnay"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Bitta ovoz to‘lqinli karnay"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Uchta ovoz to‘lqinli karnay"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Batareya"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Elektr kabel sanchqisi"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Chapga qaragan lupa"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"O‘ngga qaragan lupa"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Siyoh ruchkali qulf"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Yopiq qulf va kalit"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Kalit"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Qulf"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Ochiq qulf"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Qo‘ng‘iroq"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Taqiqlovchi chizig‘i bor qo‘ng‘iroq"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Xatcho‘p"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Link belgisi"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Radio tugma"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Tepasida chapga qaragan ko‘rsatkichli chizig‘i bor BACK (orqaga) yozuvi"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"Tepasida chapga qaragan ko‘rsatkichli chizig‘i bor END (oxiri) yozuvi"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"Tepasida chapga va o‘ngga qaragan ko‘rsatkichli chizig‘i bor ON! yozuvi"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Tepasida o‘ngga qaragan ko‘rsatkichli chizig‘i bor SOON (tez kunda) yozuvi"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Tepasida yuqoriga qaraganda ko‘rsatkichli chizig‘i bor TOP (yuqoriga) yozuvi"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"18 yoshga to‘lmaganlar uchun taqiqlanadi belgisi"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Ustiga 10 soni yozilgan tugma"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Lotincha bosh harflar uchun matn kiritish belgisi"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Lotincha kichik harflar uchun matn kiritish belgisi"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Raqamlar uchun matn kiritish belgisi"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Belgilar uchun matn kiritish belgisi"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Lotincha harflar uchun matn kiritish belgisi"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Olov"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Elektr fonar"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Gayka kaliti"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Bolg‘a"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Gayka va murvat"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Xanjar"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"To‘pponcha"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Mikroskop"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Teleskop"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Kristall donasi"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"O‘rtasida nuqtasi bor olti qirrali yulduz"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Boshlovchi darajasini bildiruvchi yaponcha belgi"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Uch ayrili nayza"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Qora kvadratli tugma"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Oq kvadrat tugma"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Katta qizil doira"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Katta havorang doira"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Katta to‘q sariq romb"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Katta havorang romb"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Kichkina to‘q sariq romb"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Kichkina havorang romb"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Yuqoriga qarab turgan qizil uchburchak"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Pastga qarab turgan qizil uchburchak"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Yuqoriga qarab turgan kichik qizil uchburchak"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Pastga qarab turgan kichik qizil uchburchak"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Birni ko‘rsatib turgan soat"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Ikkini ko‘rsatib turgan soat"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Uchni ko‘rsatib turgan soat"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"To‘rtni ko‘rsatib turgan soat"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Beshni ko‘rsatib turgan soat"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Oltini ko‘rsatib turgan soat"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Yettini ko‘rsatib turgan soat"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Sakkizni ko‘rsatib turgan soat"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"To‘qqizni ko‘rsatib turgan soat"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"O‘nni ko‘rsatib turgan soat"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"O‘n birni ko‘rsatib turgan soat"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"O‘n ikkini ko‘rsatib turgan soat"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Biru-o‘ttizni ko‘rsatib turgan soat"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Ikkiyu-o‘ttizni ko‘rsatib turgan soat"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Uchu-o‘ttizni ko‘rsatib turgan soat"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"To‘rtu-o‘ttizni ko‘rsatib turgan soat"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Beshu-o‘ttizni ko‘rsatib turgan soat"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Oltiyu-o‘ttizni ko‘rsatib turgan soat"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Yettiyu-o‘ttizni ko‘rsatib turgan soat"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Sakkizu-o‘ttizni ko‘rsatib turgan soat"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"To‘qqizu-o‘ttizni ko‘rsatib turgan soat"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"O‘nu-o‘ttizni ko‘rsatib turgan soat"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"O‘n biru-o‘ttizni ko‘rsatib turgan soat"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"O‘n ikkiyu-o‘ttizni ko‘rsatib turgan soat"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Fuji cho‘qqisi"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Tokio teleminorasi"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Ozodlik haykali"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Yaponiyaning xaritadagi ko‘rinishi"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moyai haykali"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Tirjaygan yuz"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Katta tabassum, ko‘zlar qisilgan"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Quvonch ko‘z yoshlari"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Og‘zini katta ochib kulayotgan yuz"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Tabassum, og‘iz ochiq, ko‘zlar qisilgan"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Og‘zini katta ochib kulayotgan yuz va bir tomchi ko‘z yoshi"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Og‘zini katta ochib kulayotgan yuz va qattiq yumilgan ko‘zlar"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Tabassum, bosh ustida gardish"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Kulayotgan shayton"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Ko‘z qisish"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Tabassum va kulib turgan ko‘zlar"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Mazali taomni tatib ko‘rgan til"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Xotirjam yuz"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Tabassum va yurak shaklidagi ko‘zlar"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Ko‘zoynak taqqan hamda kulayotgan yuz"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Ahmoqona iljayish"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"His-tuyg‘usiz"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"His-tuyg‘usiz yuz"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Kulmayotgan yuz"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Ko‘z yoshi oqayotgan yuz"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"G‘amgin yuz"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Xijolat bo‘lish"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Xijolatli yuz"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Bo‘sa olayotgan yuz"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Bo‘sa yuborayotgan yuz"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Bo‘sa olayotgan yuz va kulayotgan ko‘zlar"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Bo‘sa olayotgan yuz va yumilgan ko‘zlar"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Tilni chiqarish"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Tili osilgan va ko‘zi qisilgan"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Tili osilgan va ko‘zlari qattiq yumilgan"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Hafsalasi pir bo‘lgan yuz"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Havotir olayotgan yuz"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Jahli chiqqan yuz"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Arazlagan yuz"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Yig‘layotgan yuz"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Matonatli yuz"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Shod-xurramlik"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Hafsalasi pir bo‘lgan, biroq xotirjam yuz"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Og‘zini katta ochib xo‘mraygan yuz"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"G‘am-tashvishli yuz"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Qo‘rqqan yuz"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Xorg‘in yuz"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Uyqusiragan yuz"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Charchagan yuz"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Afti burishgan yuz"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Xo‘ngrab yig‘lash"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Og‘zi katta ochiq yuz"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Sukut saqlash"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Og‘zi katta ochiq va yig‘layotgan yuz"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Qo‘rquvdan qichqirish"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Hayratlanayotgan yuz"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Yuzi qizargan"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Uxlayotgan yuz"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Boshi aylanayotgan yuz"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Og‘zi yo‘q yuz"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Tibbiy niqob taqqan yuz"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Ko‘zlarini qisgan holda kulayotgan mushuk"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Quvonch ko‘z yoshlariga ega mushukbashara yuz"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Og‘zi ochiq holatda kulayotgan mushuk"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Yurak shaklidagi ko‘zlarga ega kulib turgan mushukbashara yuz"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Tirjayib turgan mushuk"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Ko‘zlari yopiq holda bo‘sa olayotgan mushukbashara yuz"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Badjahl mushuk"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Yig‘layotgan mushukbashara yuz"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Charchagan mushuk"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Hech narsa ishorasini ko‘rsatib turgan yuz"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"OK ishorasini ko‘rsatib turgan yuz"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Chuqur ta’zim qilayotgan odam"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Ko‘zlari yumilgan maymun"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Yomonlikni eshitmaydigan maymun"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Yomonlikni gapirmaydigan maymun"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Bir qo‘lini ko‘tarib turgan xursand odam"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Ikki qo‘lini ko‘tarib nishonlayotgan odam"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Xo‘mraygan odam"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Jahli chiqqan odam"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Qo‘llari ko‘ksiga zanjir qilingan odam"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Raketa"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Vertolyot"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Parovoz"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Temiryo‘l vagoni"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Tezyurar poyezd"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Oldi uchli tezyurar poyezd"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Poyezd"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Metro"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Tor izli temiryo‘l"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Bekat"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Tramvay"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Tramvay"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Avtobus"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Yaqinlashayotgan avtobus"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Trolleybus"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Avtobus bekati"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Minibus"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Tez tibbiy yordam mashinasi"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"O‘t o‘chirish mashinasi"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Politsiya mashinasi"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Yaqinlashayotgan politsiya mashinasi"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taksi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Yaqinlashayotgan taksi"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Avtomobil"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Yaqinlashayotgan avtomobil"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Xordiq chiqarish avtomobili"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Buyurtmani yetkazib beruvchi yuk mashinasi"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Tirkamali yuk mashinasi"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Traktor"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Bir izli temiryo‘l"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Tog‘ temiryo‘li"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Vaqtinchalik to‘xtatilgan temiryo‘l"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Tog‘ dor yo‘li"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Havo tramvayi"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Kema"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Eshkakli qayiq"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Tezyurar kater"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Yotiq holatdagi svetofor"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Tik holatdagi svetofor"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Qurilish belgisi"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Plotsiya mashinasi mayog‘i"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Tayoqqa o‘rnatilgan uchburchak bayroq"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Eshik"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Kirish mumkin emas belgisi"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Chekish mumkin belgisi"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Chekish mumkin emas belgisi"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Axlatni o‘z joyiga tashlang belgisi"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Axlat tashlamang belgisi"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Ichimlik suvi belgisi"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Ichib bo‘lmaydigan suv belgisi"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Velosiped"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Velosipedlar mumkin emas"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Velosipedchi"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Tog‘ velosipedchisi"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Piyoda"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Piyodalar mumkin emas"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Bolalar o‘tish joyi"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Erkaklar uchun belgisi"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Ayollar hojatxonasi"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Pardoz-andoz xonasi"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Chaqaloq belgisi"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Hojatxona"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Hojatxona"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Dush"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Vanna"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Cho‘milish uchun tos"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Pasport nazorati"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Bojxona"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Yuklarni olish joyi"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Vaqtinchalik saqlash xonasida qoldirilgan yuk"</string>
+</resources>
diff --git a/java/res/values-uz-rUZ/strings-talkback-descriptions.xml b/java/res/values-uz-rUZ/strings-talkback-descriptions.xml
index 589790b..4a1e802 100644
--- a/java/res/values-uz-rUZ/strings-talkback-descriptions.xml
+++ b/java/res/values-uz-rUZ/strings-talkback-descriptions.xml
@@ -20,112 +20,69 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for spoken_use_headphones (4313642710742229868) -->
-    <skip />
-    <!-- no translation found for spoken_current_text_is (4240549866156675799) -->
-    <skip />
-    <!-- no translation found for spoken_no_text_entered (1711276837961785646) -->
-    <skip />
-    <!-- no translation found for spoken_auto_correct (8989324692167993804) -->
-    <skip />
-    <!-- no translation found for spoken_auto_correct_obscured (7769449372355268412) -->
-    <skip />
+    <string name="spoken_use_headphones" msgid="4313642710742229868">"Parolni eshitish uchun quloqchinni tiqing."</string>
+    <string name="spoken_current_text_is" msgid="4240549866156675799">"Kiritilgan matn: %s"</string>
+    <string name="spoken_no_text_entered" msgid="1711276837961785646">"Hech qanday matn kiritilmadi"</string>
+    <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> tugmasi bosilganda “<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>” so‘zi “<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>” so‘ziga o‘zgartiriladi"</string>
+    <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> tugmasi avtomatik tuzatishni amalga oshiradi"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Taklif yo‘q"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Noma’lum belgi"</string>
-    <!-- no translation found for spoken_description_shift (7209798151676638728) -->
-    <skip />
-    <!-- no translation found for spoken_description_symbols_shift (3483198879916435717) -->
-    <skip />
-    <!-- no translation found for spoken_description_shift_shifted (3122704922642232605) -->
-    <skip />
-    <!-- no translation found for spoken_description_symbols_shift_shifted (5179175466878186081) -->
-    <skip />
-    <!-- no translation found for spoken_description_caps_lock (1224851412185975036) -->
-    <skip />
-    <!-- no translation found for spoken_description_delete (3878902286264983302) -->
-    <skip />
-    <!-- no translation found for spoken_description_to_symbol (8244903740201126590) -->
-    <skip />
-    <!-- no translation found for spoken_description_to_alpha (4081215210530031950) -->
-    <skip />
-    <!-- no translation found for spoken_description_to_numeric (4560261331530795682) -->
-    <skip />
-    <!-- no translation found for spoken_description_settings (7281251004003143204) -->
-    <skip />
-    <!-- no translation found for spoken_description_tab (8210782459446866716) -->
-    <skip />
-    <!-- no translation found for spoken_description_space (5908716896642059145) -->
-    <skip />
-    <!-- no translation found for spoken_description_mic (6153138783813452464) -->
-    <skip />
-    <!-- no translation found for spoken_description_emoji (7990051553008088470) -->
-    <skip />
-    <!-- no translation found for spoken_description_return (3183692287397645708) -->
-    <skip />
-    <!-- no translation found for spoken_description_search (5099937658231911288) -->
-    <skip />
-    <!-- no translation found for spoken_description_dot (5644176501632325560) -->
-    <skip />
-    <!-- no translation found for spoken_description_language_switch (6818666779313544553) -->
-    <skip />
-    <!-- no translation found for spoken_description_action_next (431761808119616962) -->
-    <skip />
-    <!-- no translation found for spoken_description_action_previous (2919072174697865110) -->
-    <skip />
-    <!-- no translation found for spoken_description_shiftmode_on (5107180516341258979) -->
-    <skip />
-    <!-- no translation found for spoken_description_shiftmode_locked (7307477738053606881) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_symbol (111186851131446691) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_symbol_shift (4305607977537665389) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_alpha (4676004119618778911) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_phone (2061220553756692903) -->
-    <skip />
-    <!-- no translation found for spoken_description_mode_phone_shift (7879963803547701090) -->
-    <skip />
-    <!-- no translation found for announce_keyboard_hidden (2313574218950517779) -->
-    <skip />
-    <!-- no translation found for announce_keyboard_mode (6698257917367823205) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_date (6597407244976713364) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_date_time (3642804408726668808) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_email (1239682082047693644) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_im (3812086215529493501) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_number (5395042245837996809) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_phone (2486230278064523665) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_text (9138789594969187494) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_time (8558297845514402675) -->
-    <skip />
-    <!-- no translation found for keyboard_mode_url (8072011652949962550) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_recents (4185344945205590692) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_people (8414196269847492817) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_objects (6116297906606195278) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_nature (5018340512472354640) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_places (1163315840948545317) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_symbols (474680659024880601) -->
-    <skip />
-    <!-- no translation found for spoken_descrption_emoji_category_emoticons (456737544787823539) -->
-    <skip />
+    <string name="spoken_description_shift" msgid="7209798151676638728">"Yuqori registr tugmasi"</string>
+    <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Ko‘proq belgilar"</string>
+    <string name="spoken_description_shift_shifted" msgid="3122704922642232605">"Yuqori registr tugmasi"</string>
+    <string name="spoken_description_symbols_shift_shifted" msgid="5179175466878186081">"Belgilar"</string>
+    <string name="spoken_description_caps_lock" msgid="1224851412185975036">"Yuqori registr tugmasi"</string>
+    <string name="spoken_description_delete" msgid="3878902286264983302">"O‘chirish"</string>
+    <string name="spoken_description_to_symbol" msgid="8244903740201126590">"Belgilar"</string>
+    <string name="spoken_description_to_alpha" msgid="4081215210530031950">"Harflar"</string>
+    <string name="spoken_description_to_numeric" msgid="4560261331530795682">"Raqamlar"</string>
+    <string name="spoken_description_settings" msgid="7281251004003143204">"Sozlamalar"</string>
+    <string name="spoken_description_tab" msgid="8210782459446866716">"Tab tugmasi"</string>
+    <string name="spoken_description_space" msgid="5908716896642059145">"Bo‘sh joy"</string>
+    <string name="spoken_description_mic" msgid="6153138783813452464">"Ovoz bilan yozish"</string>
+    <string name="spoken_description_emoji" msgid="7990051553008088470">"Kulgichlar"</string>
+    <string name="spoken_description_return" msgid="3183692287397645708">"Kiritish"</string>
+    <string name="spoken_description_search" msgid="5099937658231911288">"Qidirish"</string>
+    <string name="spoken_description_dot" msgid="5644176501632325560">"Qora nuqta"</string>
+    <string name="spoken_description_language_switch" msgid="6818666779313544553">"Tilni o‘zgartirish"</string>
+    <string name="spoken_description_action_next" msgid="431761808119616962">"Keyingi"</string>
+    <string name="spoken_description_action_previous" msgid="2919072174697865110">"Avvalgi"</string>
+    <string name="spoken_description_shiftmode_on" msgid="5107180516341258979">"Yuqori registr yoqildi"</string>
+    <string name="spoken_description_shiftmode_locked" msgid="7307477738053606881">"Caps Lock yoqildi"</string>
+    <string name="spoken_description_mode_symbol" msgid="111186851131446691">"Belgilar rejimi"</string>
+    <string name="spoken_description_mode_symbol_shift" msgid="4305607977537665389">"Ko‘proq belgilar rejimi"</string>
+    <string name="spoken_description_mode_alpha" msgid="4676004119618778911">"Harflar rejimi"</string>
+    <string name="spoken_description_mode_phone" msgid="2061220553756692903">"Telefon rejimi"</string>
+    <string name="spoken_description_mode_phone_shift" msgid="7879963803547701090">"Telefon belgilari rejimi"</string>
+    <string name="announce_keyboard_hidden" msgid="2313574218950517779">"Klaviatura yashirildi."</string>
+    <string name="announce_keyboard_mode" msgid="6698257917367823205">"<xliff:g id="KEYBOARD_MODE">%s</xliff:g> rejimi yoqildi"</string>
+    <string name="keyboard_mode_date" msgid="6597407244976713364">"sana"</string>
+    <string name="keyboard_mode_date_time" msgid="3642804408726668808">"sana va vaqt"</string>
+    <string name="keyboard_mode_email" msgid="1239682082047693644">"e-pochta"</string>
+    <string name="keyboard_mode_im" msgid="3812086215529493501">"xabar kiritish"</string>
+    <string name="keyboard_mode_number" msgid="5395042245837996809">"raqam"</string>
+    <string name="keyboard_mode_phone" msgid="2486230278064523665">"telefon"</string>
+    <string name="keyboard_mode_text" msgid="9138789594969187494">"matn kiritish"</string>
+    <string name="keyboard_mode_time" msgid="8558297845514402675">"vaqt"</string>
+    <string name="keyboard_mode_url" msgid="8072011652949962550">"URL"</string>
+    <string name="spoken_descrption_emoji_category_recents" msgid="4185344945205590692">"So‘nggi ishlatilganlar"</string>
+    <string name="spoken_descrption_emoji_category_people" msgid="8414196269847492817">"Odamlar"</string>
+    <string name="spoken_descrption_emoji_category_objects" msgid="6116297906606195278">"Narsa-buyumlar"</string>
+    <string name="spoken_descrption_emoji_category_nature" msgid="5018340512472354640">"Tabiat"</string>
+    <string name="spoken_descrption_emoji_category_places" msgid="1163315840948545317">"Joylar"</string>
+    <string name="spoken_descrption_emoji_category_symbols" msgid="474680659024880601">"Belgilar"</string>
+    <string name="spoken_descrption_emoji_category_emoticons" msgid="456737544787823539">"Kulgichlar"</string>
     <string name="spoken_description_upper_case" msgid="4904835255229433916">"Bosh harf bilan yozilgan <xliff:g id="LOWER_LETTER">%s</xliff:g>"</string>
     <string name="spoken_letter_0049" msgid="4743162182646977944">"Katta I harfi"</string>
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Tepasida nuqtasi bor katta I harfi"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Noma’lum belgi"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Noma’lum kulgich"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Zerikkan"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Uyalgan"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Qora ko‘zoynak taqqan yuz"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Ajablangan"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Bo‘sa olayotgan yuz"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Xo‘mraygan"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Muqobil belgilar mavjud"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Muqobil belgilar tushirib qoldirildi"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Muqobil takliflar mavjud"</string>
diff --git a/java/res/values-uz-rUZ/strings.xml b/java/res/values-uz-rUZ/strings.xml
index 2b5da53..a5b87f4 100644
--- a/java/res/values-uz-rUZ/strings.xml
+++ b/java/res/values-uz-rUZ/strings.xml
@@ -20,355 +20,189 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for english_ime_input_options (3909945612939668554) -->
+    <string name="english_ime_input_options" msgid="3909945612939668554">"Matn kiritish sozlamalari"</string>
+    <string name="use_contacts_for_spellchecking_option_title" msgid="5374120998125353898">"Kontaktlarni qidirish"</string>
+    <string name="use_contacts_for_spellchecking_option_summary" msgid="8754413382543307713">"Imlo tekshirgich kontaktlaringizdagi qaydlardan foydalanadi"</string>
+    <string name="vibrate_on_keypress" msgid="5258079494276955460">"Tugma bosilganda tebranish"</string>
+    <string name="sound_on_keypress" msgid="6093592297198243644">"Tugma bosilganda ovoz"</string>
+    <string name="popup_on_keypress" msgid="123894815723512944">"Tugma bosilganda qalqib chiqish"</string>
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Shaxsiy sozlamalar"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Hisoblar va maxfiylik"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Tashqi ko‘rinishi va joylashuvi"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Imo-ishoralar bilan yozish"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Matnni tuzatish"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Qo‘shimcha"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Mavzu"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Ikkiga ajratiladigan klaviaturani yoqish"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google klaviaturasini sinx-sh"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Sinxronlash yoqildi"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Shaxsiy lug‘atingizni qurilmalar bo‘ylab sinxronlang"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Hozir sinxronlash"</string>
+    <!-- no translation found for clear_sync_data_title (8582001557037069154) -->
     <skip />
-    <!-- no translation found for use_contacts_for_spellchecking_option_title (5374120998125353898) -->
-    <skip />
-    <!-- no translation found for use_contacts_for_spellchecking_option_summary (8754413382543307713) -->
-    <skip />
-    <!-- no translation found for vibrate_on_keypress (5258079494276955460) -->
-    <skip />
-    <!-- no translation found for sound_on_keypress (6093592297198243644) -->
-    <skip />
-    <!-- no translation found for popup_on_keypress (123894815723512944) -->
-    <skip />
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
-    <!-- no translation found for include_other_imes_in_language_switch_list (4533689960308565519) -->
-    <skip />
-    <!-- no translation found for include_other_imes_in_language_switch_list_summary (840637129103317635) -->
-    <skip />
-    <!-- no translation found for show_language_switch_key (5915478828318774384) -->
-    <skip />
-    <!-- no translation found for show_language_switch_key_summary (7343403647474265713) -->
-    <skip />
-    <!-- no translation found for sliding_key_input_preview (6604262359510068370) -->
-    <skip />
-    <!-- no translation found for sliding_key_input_preview_summary (6340524345729093886) -->
-    <skip />
-    <!-- no translation found for key_preview_popup_dismiss_delay (6213164897443068248) -->
-    <skip />
-    <!-- no translation found for key_preview_popup_dismiss_no_delay (2096123151571458064) -->
-    <skip />
-    <!-- no translation found for key_preview_popup_dismiss_default_delay (2166964333903906734) -->
-    <skip />
-    <!-- no translation found for abbreviation_unit_milliseconds (8700286094028323363) -->
-    <skip />
-    <!-- no translation found for settings_system_default (6268225104743331821) -->
-    <skip />
-    <!-- no translation found for use_contacts_dict (4435317977804180815) -->
-    <skip />
-    <!-- no translation found for use_contacts_dict_summary (6599983334507879959) -->
-    <skip />
-    <!-- no translation found for use_personalized_dicts (5167396352105467626) -->
-    <skip />
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Google xizmatlaridagi sinxronlangan ma’lumotlaringizni o‘chirib tashlaydi"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Sinxronlangan ma’lumotlaringiz o‘chib ketadi. Davom etsinmi?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"O‘chirish"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Bekor qilish"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Sizning shaxsiy lug\'atingiz Google serverlarida sinxronlashadi va zahiraga nusxalanadi. So‘zning qayta uchrash ko‘rsatkichi statistik ma’lumotlari, bizga mahsulotlarimiz sifatini oshirishda ko‘maklashish uchun to‘planishi mumkin. Barcha ma’lumotlar yig‘ilishi va foydalanishi "<a href="https://www.google.com/policies/privacy">" Google maxfiylik siyosati "</a>" shartlari bo‘yicha amalga oshadi."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Ushbu imkoniyatni yoqish uchun, iltimos, Google hisobingizni qo‘shing"</string>
+    <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Boshqa usullarga o‘tish"</string>
+    <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Tilni o‘zgartirish tugmasi matn kiritish usulini ham o‘zgartiradi"</string>
+    <string name="show_language_switch_key" msgid="5915478828318774384">"Tilni o‘zgartirish tugmasi"</string>
+    <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Bir nechta matn kiritish tili mavjud bo‘lganda ko‘rsatilsin"</string>
+    <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Yopilish uchun to‘xtalish"</string>
+    <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"To‘xtalishlarsiz"</string>
+    <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Standart"</string>
+    <string name="abbreviation_unit_milliseconds" msgid="8700286094028323363">"<xliff:g id="MILLISECONDS">%s</xliff:g> ms"</string>
+    <string name="settings_system_default" msgid="6268225104743331821">"Tizim standarti"</string>
+    <string name="use_contacts_dict" msgid="4435317977804180815">"Ismlarni taklif qilish"</string>
+    <string name="use_contacts_dict_summary" msgid="6599983334507879959">"Kontaktlardagi ismlardan takliflar va tuzatishlarda foydalanilsin"</string>
+    <string name="use_personalized_dicts" msgid="5167396352105467626">"Moslashtirilgan takliflar"</string>
     <string name="enable_metrics_logging" msgid="5506372337118822837">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> ilovasini takomillashtirish"</string>
-    <!-- no translation found for use_double_space_period (8781529969425082860) -->
-    <skip />
-    <!-- no translation found for use_double_space_period_summary (6532892187247952799) -->
-    <skip />
-    <!-- no translation found for auto_cap (1719746674854628252) -->
-    <skip />
-    <!-- no translation found for auto_cap_summary (7934452761022946874) -->
-    <skip />
-    <!-- no translation found for edit_personal_dictionary (3996910038952940420) -->
-    <skip />
-    <!-- no translation found for configure_dictionaries_title (4238652338556902049) -->
-    <skip />
-    <!-- no translation found for main_dictionary (4798763781818361168) -->
-    <skip />
-    <!-- no translation found for prefs_show_suggestions (8026799663445531637) -->
-    <skip />
-    <!-- no translation found for prefs_show_suggestions_summary (1583132279498502825) -->
-    <skip />
-    <!-- no translation found for prefs_suggestion_visibility_show_name (3219916594067551303) -->
-    <skip />
-    <!-- no translation found for prefs_suggestion_visibility_show_only_portrait_name (3859783767435239118) -->
-    <skip />
-    <!-- no translation found for prefs_suggestion_visibility_hide_name (6309143926422234673) -->
-    <skip />
-    <!-- no translation found for prefs_block_potentially_offensive_title (5078480071057408934) -->
-    <skip />
-    <!-- no translation found for prefs_block_potentially_offensive_summary (2371835479734991364) -->
-    <skip />
-    <!-- no translation found for auto_correction (7630720885194996950) -->
-    <skip />
-    <!-- no translation found for auto_correction_summary (5625751551134658006) -->
-    <skip />
-    <!-- no translation found for auto_correction_threshold_mode_off (8470882665417944026) -->
-    <skip />
-    <!-- no translation found for auto_correction_threshold_mode_modest (8788366690620799097) -->
-    <skip />
-    <!-- no translation found for auto_correction_threshold_mode_aggressive (7319007299148899623) -->
-    <skip />
-    <!-- no translation found for auto_correction_threshold_mode_very_aggressive (1853309024129480416) -->
-    <skip />
-    <!-- no translation found for bigram_prediction (1084449187723948550) -->
-    <skip />
-    <!-- no translation found for bigram_prediction_summary (3896362682751109677) -->
-    <skip />
-    <!-- no translation found for gesture_input (826951152254563827) -->
-    <skip />
-    <!-- no translation found for gesture_input_summary (9180350639305731231) -->
-    <skip />
-    <!-- no translation found for gesture_preview_trail (3802333369335722221) -->
-    <skip />
-    <!-- no translation found for gesture_floating_preview_text (4443240334739381053) -->
-    <skip />
-    <!-- no translation found for gesture_floating_preview_text_summary (4472696213996203533) -->
-    <skip />
-    <!-- no translation found for gesture_space_aware (2078291600664682496) -->
-    <skip />
-    <!-- no translation found for gesture_space_aware_summary (4371385818348528538) -->
-    <skip />
-    <!-- no translation found for voice_input (3583258583521397548) -->
-    <skip />
-    <!-- no translation found for voice_input_disabled_summary (8141750303464726129) -->
-    <skip />
-    <!-- no translation found for configure_input_method (373356270290742459) -->
-    <skip />
-    <!-- no translation found for language_selection_title (1651299598555326750) -->
-    <skip />
-    <!-- no translation found for send_feedback (1780431884109392046) -->
-    <skip />
-    <!-- no translation found for select_language (3693815588777926848) -->
-    <skip />
-    <!-- no translation found for hint_add_to_dictionary (573678656946085380) -->
-    <skip />
-    <!-- no translation found for has_dictionary (6071847973466625007) -->
-    <skip />
-    <!-- no translation found for keyboard_layout (8451164783510487501) -->
-    <skip />
-    <!-- no translation found for subtype_en_GB (88170601942311355) -->
-    <skip />
-    <!-- no translation found for subtype_en_US (6160452336634534239) -->
-    <skip />
-    <!-- no translation found for subtype_es_US (5583145191430180200) -->
-    <skip />
-    <!-- no translation found for subtype_with_layout_en_GB (1931018968641592304) -->
-    <skip />
-    <!-- no translation found for subtype_with_layout_en_US (8809311287529805422) -->
-    <skip />
-    <!-- no translation found for subtype_with_layout_es_US (510930471167541338) -->
-    <skip />
-    <!-- no translation found for subtype_generic_traditional (8584594350973800586) -->
-    <skip />
-    <!-- no translation found for subtype_generic_cyrillic (7486451947618138947) -->
-    <skip />
-    <!-- no translation found for subtype_generic_latin (9128716486310604145) -->
-    <skip />
-    <!-- no translation found for subtype_no_language (7137390094240139495) -->
-    <skip />
-    <!-- no translation found for subtype_no_language_qwerty (244337630616742604) -->
-    <skip />
-    <!-- no translation found for subtype_no_language_qwertz (443066912507547976) -->
-    <skip />
-    <!-- no translation found for subtype_no_language_azerty (8144348527575640087) -->
-    <skip />
-    <!-- no translation found for subtype_no_language_dvorak (1564494667584718094) -->
-    <skip />
-    <!-- no translation found for subtype_no_language_colemak (5837418400010302623) -->
-    <skip />
-    <!-- no translation found for subtype_no_language_pcqwerty (5354918232046200018) -->
-    <skip />
-    <!-- no translation found for subtype_emoji (7483586578074549196) -->
-    <skip />
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
-    <!-- no translation found for custom_input_styles_title (8429952441821251512) -->
-    <skip />
-    <!-- no translation found for add_style (6163126614514489951) -->
-    <skip />
-    <!-- no translation found for add (8299699805688017798) -->
-    <skip />
-    <!-- no translation found for remove (4486081658752944606) -->
-    <skip />
-    <!-- no translation found for save (7646738597196767214) -->
-    <skip />
-    <!-- no translation found for subtype_locale (8576443440738143764) -->
-    <skip />
-    <!-- no translation found for keyboard_layout_set (4309233698194565609) -->
-    <skip />
-    <!-- no translation found for custom_input_style_note_message (8826731320846363423) -->
-    <skip />
-    <!-- no translation found for enable (5031294444630523247) -->
-    <skip />
-    <!-- no translation found for not_now (6172462888202790482) -->
-    <skip />
-    <!-- no translation found for custom_input_style_already_exists (8008728952215449707) -->
-    <skip />
-    <!-- no translation found for prefs_key_longpress_timeout_settings (6102240298932897873) -->
-    <skip />
-    <!-- no translation found for prefs_keypress_vibration_duration_settings (7918341459947439226) -->
-    <skip />
-    <!-- no translation found for prefs_keypress_sound_volume_settings (6027007337036891623) -->
-    <skip />
-    <!-- no translation found for prefs_read_external_dictionary (2588931418575013067) -->
-    <skip />
-    <!-- no translation found for read_external_dictionary_no_files_message (4947420942224623792) -->
-    <skip />
-    <!-- no translation found for read_external_dictionary_multiple_files_title (7637749044265808628) -->
-    <skip />
-    <!-- no translation found for read_external_dictionary_confirm_install_message (4782116251651288054) -->
-    <skip />
-    <!-- no translation found for error (8940763624668513648) -->
-    <skip />
-    <!-- no translation found for button_default (3988017840431881491) -->
-    <skip />
-    <!-- no translation found for setup_welcome_title (6112821709832031715) -->
-    <skip />
-    <!-- no translation found for setup_welcome_additional_description (8150252008545768953) -->
-    <skip />
-    <!-- no translation found for setup_start_action (8936036460897347708) -->
-    <skip />
-    <!-- no translation found for setup_next_action (371821437915144603) -->
-    <skip />
-    <!-- no translation found for setup_steps_title (6400373034871816182) -->
-    <skip />
-    <!-- no translation found for setup_step1_title (3147967630253462315) -->
-    <skip />
-    <!-- no translation found for setup_step1_instruction (2578631936624637241) -->
-    <skip />
-    <!-- no translation found for setup_step1_finished_instruction (10761482004957994) -->
-    <skip />
-    <!-- no translation found for setup_step1_action (4366513534999901728) -->
-    <skip />
-    <!-- no translation found for setup_step2_title (6860725447906690594) -->
-    <skip />
-    <!-- no translation found for setup_step2_instruction (9141481964870023336) -->
-    <skip />
-    <!-- no translation found for setup_step2_action (1660330307159824337) -->
-    <skip />
-    <!-- no translation found for setup_step3_title (3154757183631490281) -->
-    <skip />
-    <!-- no translation found for setup_step3_instruction (8025981829605426000) -->
-    <skip />
-    <!-- no translation found for setup_step3_action (600879797256942259) -->
-    <skip />
-    <!-- no translation found for setup_finish_action (276559243409465389) -->
-    <skip />
-    <!-- no translation found for show_setup_wizard_icon (5008028590593710830) -->
-    <skip />
-    <!-- no translation found for show_setup_wizard_icon_summary (4119998322536880213) -->
-    <skip />
-    <!-- no translation found for app_name (6320102637491234792) -->
-    <skip />
-    <!-- no translation found for dictionary_provider_name (3027315045397363079) -->
-    <skip />
-    <!-- no translation found for dictionary_service_name (6237472350693511448) -->
-    <skip />
-    <!-- no translation found for download_description (6014835283119198591) -->
-    <skip />
-    <!-- no translation found for dictionary_settings_title (8091417676045693313) -->
-    <skip />
-    <!-- no translation found for dictionary_install_over_metered_network_prompt (3587517870006332980) -->
-    <skip />
-    <!-- no translation found for dictionary_settings_summary (5305694987799824349) -->
-    <skip />
-    <!-- no translation found for user_dictionaries (3582332055892252845) -->
-    <skip />
-    <!-- no translation found for default_user_dict_pref_name (1625055720489280530) -->
-    <skip />
-    <!-- no translation found for dictionary_available (4728975345815214218) -->
-    <skip />
-    <!-- no translation found for dictionary_downloading (2982650524622620983) -->
-    <skip />
-    <!-- no translation found for dictionary_installed (8081558343559342962) -->
-    <skip />
-    <!-- no translation found for dictionary_disabled (8950383219564621762) -->
-    <skip />
-    <!-- no translation found for cannot_connect_to_dict_service (9216933695765732398) -->
-    <skip />
-    <!-- no translation found for no_dictionaries_available (8039920716566132611) -->
-    <skip />
-    <!-- no translation found for check_for_updates_now (8087688440916388581) -->
-    <skip />
-    <!-- no translation found for last_update (730467549913588780) -->
-    <skip />
-    <!-- no translation found for message_updating (4457761393932375219) -->
-    <skip />
-    <!-- no translation found for message_loading (5638680861387748936) -->
-    <skip />
-    <!-- no translation found for main_dict_description (3072821352793492143) -->
-    <skip />
-    <!-- no translation found for cancel (6830980399865683324) -->
-    <skip />
-    <!-- no translation found for go_to_settings (3876892339342569259) -->
-    <skip />
-    <!-- no translation found for install_dict (180852772562189365) -->
-    <skip />
-    <!-- no translation found for cancel_download_dict (7843340278507019303) -->
-    <skip />
-    <!-- no translation found for delete_dict (756853268088330054) -->
-    <skip />
-    <!-- no translation found for should_download_over_metered_prompt (1583881200688185508) -->
-    <skip />
-    <!-- no translation found for download_over_metered (1643065851159409546) -->
-    <skip />
-    <!-- no translation found for do_not_download_over_metered (2176209579313941583) -->
-    <skip />
-    <!-- no translation found for dict_available_notification_title (4583842811218581658) -->
-    <skip />
-    <!-- no translation found for dict_available_notification_description (1075194169443163487) -->
-    <skip />
-    <!-- no translation found for toast_downloading_suggestions (6128155879830851739) -->
-    <skip />
-    <!-- no translation found for version_text (2715354215568469385) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_menu_title (1254195365689387076) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_dialog_title (4096700390211748168) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_screen_title (5818914331629278758) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_dialog_more_options (5671682004887093112) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_dialog_less_options (2716586567241724126) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_dialog_confirm (4703129507388332950) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_word_option_name (6665558053408962865) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_shortcut_option_name (3094731590655523777) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_locale_option_name (4738643440987277705) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_word_hint (4902434148985906707) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_add_shortcut_hint (2265453012555060178) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_edit_dialog_title (3765774633869590352) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_context_menu_edit_title (6812255903472456302) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_context_menu_delete_title (8142932447689461181) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_empty_text (558499587532668203) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_all_languages (8276126583216298886) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_more_languages (7131268499685180461) -->
-    <skip />
-    <!-- no translation found for user_dict_settings_delete (110413335187193859) -->
-    <skip />
-    <!-- no translation found for user_dict_fast_scroll_alphabet (5431919401558285473) -->
-    <skip />
+    <string name="use_double_space_period" msgid="8781529969425082860">"Nuqta avtomatik qo‘yilsin"</string>
+    <string name="use_double_space_period_summary" msgid="6532892187247952799">"Bo‘sh joy tugmasini ikki marta bosish nuqta va bo‘sh joy qoldirsin"</string>
+    <string name="auto_cap" msgid="1719746674854628252">"Avtomatik bosh harfga o‘tkazish"</string>
+    <string name="auto_cap_summary" msgid="7934452761022946874">"Har bir gapning birinchi so‘zini bosh harf bilan yozish"</string>
+    <string name="edit_personal_dictionary" msgid="3996910038952940420">"Shaxsiy lug‘at"</string>
+    <string name="configure_dictionaries_title" msgid="4238652338556902049">"Qo‘shimcha lug‘atlar"</string>
+    <string name="main_dictionary" msgid="4798763781818361168">"Asosiy lug‘at"</string>
+    <string name="prefs_show_suggestions" msgid="8026799663445531637">"To‘g‘rilash uchun variantlar"</string>
+    <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Yozayotganda taklif qilingan so‘zlar ko‘rsatilsin"</string>
+    <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Haqoratomuz so‘zlarni bloklash"</string>
+    <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Haqoratomuz so‘zlar taklif qilinmasin"</string>
+    <string name="auto_correction" msgid="7630720885194996950">"Avtomatik to‘g‘rilash"</string>
+    <string name="auto_correction_summary" msgid="5625751551134658006">"Bo‘sh joy yoki tinish belgisi xato yoz-n so‘z-ni avto. to‘g‘ri-di"</string>
+    <string name="auto_correction_threshold_mode_off" msgid="8470882665417944026">"O‘chirish"</string>
+    <string name="auto_correction_threshold_mode_modest" msgid="8788366690620799097">"O‘rtacha"</string>
+    <string name="auto_correction_threshold_mode_aggressive" msgid="7319007299148899623">"Juda faol"</string>
+    <string name="auto_correction_threshold_mode_very_aggressive" msgid="1853309024129480416">"Juda faol"</string>
+    <string name="bigram_prediction" msgid="1084449187723948550">"Keyingi so‘zni taklif qilish"</string>
+    <string name="bigram_prediction_summary" msgid="3896362682751109677">"So‘zlarni taklif qilishda avval yozilgan so‘zga asoslanish"</string>
+    <string name="gesture_input" msgid="826951152254563827">"Imo-ishoralar bilan yozish"</string>
+    <string name="gesture_input_summary" msgid="9180350639305731231">"So‘zlarni barmog‘ingizni klaviaturadan uzmasdan yozing"</string>
+    <string name="gesture_preview_trail" msgid="3802333369335722221">"Chiziq chizish"</string>
+    <string name="gesture_floating_preview_text" msgid="4443240334739381053">"Taklif qil-n so‘z-ni ko‘rsatish"</string>
+    <string name="gesture_floating_preview_text_summary" msgid="4472696213996203533">"Matn kiritayotganda taklif qilingan so‘zlarni ko‘rsatish"</string>
+    <string name="gesture_space_aware" msgid="2078291600664682496">"Iboralarni uzluksiz kiritish"</string>
+    <string name="gesture_space_aware_summary" msgid="4371385818348528538">"Barmoqni har bir so‘zdan so‘ng bo‘sh joy qoldirish tugmasiga olib borish"</string>
+    <string name="voice_input" msgid="3583258583521397548">"Ovoz bilan kiritish tugmasi"</string>
+    <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Ovoz bilan yozish usuli yoqilmagan. Til va matn kiritish sozlamalarini tekshiring."</string>
+    <string name="configure_input_method" msgid="373356270290742459">"Matn kiritish usullarini sozlash"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Tillar"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Yordam va fikr-mulohaza"</string>
+    <string name="select_language" msgid="5709487854987078367">"Tillar"</string>
+    <string name="hint_add_to_dictionary" msgid="573678656946085380">"Saqlash uchun yana bosing"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Saqlash uchun bu yerga bosing"</string>
+    <string name="has_dictionary" msgid="6071847973466625007">"Lug‘at mavjud"</string>
+    <string name="keyboard_layout" msgid="8451164783510487501">"Klaviatura mavzusi"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Hisobni almashtirish"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Hech qanday hisob tanlanmadi"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Hozir foydalanilmoqda: <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Bekor qilish"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Chiqish"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Foydalanish uchun hisobni tanlang"</string>
+    <string name="subtype_en_GB" msgid="88170601942311355">"Ingliz (Buyuk Britaniya)"</string>
+    <string name="subtype_en_US" msgid="6160452336634534239">"Ingliz (AQSH)"</string>
+    <string name="subtype_es_US" msgid="5583145191430180200">"Ispan (AQSH)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Serb (Lotin)"</string>
+    <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Ingliz (Buyuk Britaniya) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Ingliz (AQSH) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Ispan (AQSH) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Serb (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (an’anaviy)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (ixcham)"</string>
+    <string name="subtype_no_language" msgid="7137390094240139495">"Til aniqlanmadi (lotin)"</string>
+    <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Lotin (QWERTY)"</string>
+    <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Lotin (QWERTZ)"</string>
+    <string name="subtype_no_language_azerty" msgid="8144348527575640087">"Lotin (AZERTY)"</string>
+    <string name="subtype_no_language_dvorak" msgid="1564494667584718094">"Lotin (Dvorak)"</string>
+    <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Lotin (Colemak)"</string>
+    <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Lotin (shaxsiy kompyuter)"</string>
+    <string name="subtype_emoji" msgid="7483586578074549196">"Kulgichlar"</string>
+    <string name="keyboard_theme" msgid="4909551808526178852">"Klaviatura mavzusi"</string>
+    <string name="custom_input_styles_title" msgid="8429952441821251512">"Moslashtirilgan usullar"</string>
+    <string name="add_style" msgid="6163126614514489951">"Uslub qo‘shish"</string>
+    <string name="add" msgid="8299699805688017798">"Qo‘shish"</string>
+    <string name="remove" msgid="4486081658752944606">"O‘chirish"</string>
+    <string name="save" msgid="7646738597196767214">"Saqlash"</string>
+    <string name="subtype_locale" msgid="8576443440738143764">"Til"</string>
+    <string name="keyboard_layout_set" msgid="4309233698194565609">"Joylashuv"</string>
+    <string name="custom_input_style_note_message" msgid="8826731320846363423">"Moslashtirilgan matn kiritish usulini yoqish lozim. Uni hozir yoqmoqchimisiz?"</string>
+    <string name="enable" msgid="5031294444630523247">"Yoqish"</string>
+    <string name="not_now" msgid="6172462888202790482">"Hozir emas"</string>
+    <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Xuddi shunday matn kiritish usuli allaqachon mavjud: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
+    <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Tugma bosilganda tebranish vaqti"</string>
+    <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Tugma bosilgandagi ovoz"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Uzoq bosib turish"</string>
+    <string name="button_default" msgid="3988017840431881491">"Standart"</string>
+    <string name="setup_welcome_title" msgid="6112821709832031715">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> ilovasiga xush kelibsiz!"</string>
+    <string name="setup_welcome_additional_description" msgid="8150252008545768953">"Imo-ishoralar bilan yozish"</string>
+    <string name="setup_start_action" msgid="8936036460897347708">"Boshladik"</string>
+    <string name="setup_next_action" msgid="371821437915144603">"Keyingi qadam"</string>
+    <string name="setup_steps_title" msgid="6400373034871816182">"Sozlash: <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
+    <string name="setup_step1_title" msgid="3147967630253462315">"Yoqish: <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
+    <string name="setup_step1_instruction" msgid="2578631936624637241">"Matn kiritishda foydalanish uchun Til va matn kiritish sozlamalarida “<xliff:g id="APPLICATION_NAME">%s</xliff:g>” bandiga belgi qo‘ying."</string>
+    <string name="setup_step1_finished_instruction" msgid="10761482004957994">"<xliff:g id="APPLICATION_NAME">%s</xliff:g> ilovasi allaqachon Til va matn kiritish sozlamalarida yoqilgan, shuning uchun keyingi qadamga o‘tish mumkin."</string>
+    <string name="setup_step1_action" msgid="4366513534999901728">"Sozlamalardan yoqish"</string>
+    <string name="setup_step2_title" msgid="6860725447906690594">"<xliff:g id="APPLICATION_NAME">%s</xliff:g>: faollashtirish"</string>
+    <string name="setup_step2_instruction" msgid="9141481964870023336">"Keyin, joriy matn kiritish usuli sifatida “<xliff:g id="APPLICATION_NAME">%s</xliff:g>” ilovasini tanlang."</string>
+    <string name="setup_step2_action" msgid="1660330307159824337">"Matn kiritish usulini o‘zgartirish"</string>
+    <string name="setup_step3_title" msgid="3154757183631490281">"Tabriklaymiz, hammasi tayyor!"</string>
+    <string name="setup_step3_instruction" msgid="8025981829605426000">"Endi, matn kiritish uchun “<xliff:g id="APPLICATION_NAME">%s</xliff:g>” ilovasidan foydalanishingiz mumkin."</string>
+    <string name="setup_step3_action" msgid="600879797256942259">"Qo‘shimcha tillarni sozlash"</string>
+    <string name="setup_finish_action" msgid="276559243409465389">"Tugallandi"</string>
+    <string name="app_name" msgid="6320102637491234792">"Lug‘atlar ta’minotchisi"</string>
+    <string name="dictionary_provider_name" msgid="3027315045397363079">"Lug‘atlar ta’minotchisi"</string>
+    <string name="dictionary_service_name" msgid="6237472350693511448">"Lug‘atlar xizmati"</string>
+    <string name="download_description" msgid="6014835283119198591">"Lug‘atlarni yangilash ma’lumoti"</string>
+    <string name="dictionary_settings_title" msgid="8091417676045693313">"Qo‘shimcha lug‘atlar"</string>
+    <string name="dictionary_install_over_metered_network_prompt" msgid="3587517870006332980">"Lug‘at mavjud"</string>
+    <string name="dictionary_settings_summary" msgid="5305694987799824349">"Lug‘atlar uchun sozlamalar"</string>
+    <string name="user_dictionaries" msgid="3582332055892252845">"Foydalanuvchi lug‘atlari"</string>
+    <string name="default_user_dict_pref_name" msgid="1625055720489280530">"Foydalanuvchi lug‘ati"</string>
+    <string name="dictionary_available" msgid="4728975345815214218">"Lug‘at mavjud"</string>
+    <string name="dictionary_downloading" msgid="2982650524622620983">"Hozirda yuklab olinmoqda"</string>
+    <string name="dictionary_installed" msgid="8081558343559342962">"O‘rnatilgan"</string>
+    <string name="dictionary_disabled" msgid="8950383219564621762">"O‘rnatilgan, o‘chirib qo‘yilgan"</string>
+    <string name="cannot_connect_to_dict_service" msgid="9216933695765732398">"Ulanib bo‘lmadi"</string>
+    <string name="no_dictionaries_available" msgid="8039920716566132611">"Lug‘at mavjud emas"</string>
+    <string name="check_for_updates_now" msgid="8087688440916388581">"Yangilash"</string>
+    <string name="last_update" msgid="730467549913588780">"So‘nggi marta yangilandi"</string>
+    <string name="message_updating" msgid="4457761393932375219">"Yangilanish mavjudligi tekshirilmoqda"</string>
+    <string name="message_loading" msgid="5638680861387748936">"Yuklanmoqda…"</string>
+    <string name="main_dict_description" msgid="3072821352793492143">"Asosiy lug‘at"</string>
+    <string name="cancel" msgid="6830980399865683324">"Bekor qilish"</string>
+    <string name="go_to_settings" msgid="3876892339342569259">"Sozlamalar"</string>
+    <string name="install_dict" msgid="180852772562189365">"O‘rnatish"</string>
+    <string name="cancel_download_dict" msgid="7843340278507019303">"Bekor qilish"</string>
+    <string name="delete_dict" msgid="756853268088330054">"O‘chirish"</string>
+    <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Mobil telefoningizda tanlangan til uchun lug‘at mavjud.&lt;br/&gt; Matnlarni tezkor va bexato kiritish uchun <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> lug‘atini &lt;b&gt;yuklab olish&lt;/b&gt; tavsiya etiladi. &lt;br/&gt; &lt;br/&gt; Agar sizda mobil internet uchun &lt;b&gt;cheksiz internet tarifi&lt;/b&gt; o‘rnatilgan bo‘lsa, lug‘atni 3G orqali yuklab olishingiz mumkin (bir-ikki daqiqa vaqt oladi).&lt;br/&gt;Agar tarif rejangiz tafsilotlarini bilmasangiz, u holda Wi-Fi orqali yuklab olgan ma’qul (yuklab olish avtomatik ravishda boshlanadi).&lt;br/&gt; &lt;br/&gt; Maslahat: Lug‘at qo‘shish, o‘chirish yoki sozlash uchun mobil qurilmangizning &lt;b&gt;Sozlamalar&lt;/b&gt; menyusidan &lt;b&gt;Til va matn kiritish&lt;/b&gt; bo‘limiga o‘ting."</string>
+    <string name="download_over_metered" msgid="1643065851159409546">"Yuklab olish (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g> MB)"</string>
+    <string name="do_not_download_over_metered" msgid="2176209579313941583">"Wi-Fi orqali yuklab olish"</string>
+    <string name="dict_available_notification_title" msgid="4583842811218581658">"Lug‘at mavjud: <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>"</string>
+    <string name="dict_available_notification_description" msgid="1075194169443163487">"Ko‘rib chiqish va yuklab olish uchun bosing"</string>
+    <string name="toast_downloading_suggestions" msgid="6128155879830851739">"Yuklab olinmoqda: <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> tili uchun so‘zlarni taklif qilish xususiyati tez orada tayyor bo‘ladi."</string>
+    <string name="version_text" msgid="2715354215568469385">"<xliff:g id="VERSION_NUMBER">%1$s</xliff:g> versiyasi"</string>
+    <string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"Qo‘shish"</string>
+    <string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"Lug‘atga qo‘shish"</string>
+    <string name="user_dict_settings_add_screen_title" msgid="5818914331629278758">"Ibora"</string>
+    <string name="user_dict_settings_add_dialog_more_options" msgid="5671682004887093112">"Ko‘proq soz-lar"</string>
+    <string name="user_dict_settings_add_dialog_less_options" msgid="2716586567241724126">"Kamroq sozlamalar"</string>
+    <string name="user_dict_settings_add_dialog_confirm" msgid="4703129507388332950">"OK"</string>
+    <string name="user_dict_settings_add_word_option_name" msgid="6665558053408962865">"So‘z:"</string>
+    <string name="user_dict_settings_add_shortcut_option_name" msgid="3094731590655523777">"Tezkor tugmalar:"</string>
+    <string name="user_dict_settings_add_locale_option_name" msgid="4738643440987277705">"Til:"</string>
+    <string name="user_dict_settings_add_word_hint" msgid="4902434148985906707">"So‘zni kiriting"</string>
+    <string name="user_dict_settings_add_shortcut_hint" msgid="2265453012555060178">"Ibora uchun yorliq (ixtiyoriy)"</string>
+    <string name="user_dict_settings_edit_dialog_title" msgid="3765774633869590352">"So‘zni tahrirlash"</string>
+    <string name="user_dict_settings_context_menu_edit_title" msgid="6812255903472456302">"Tahrirlash"</string>
+    <string name="user_dict_settings_context_menu_delete_title" msgid="8142932447689461181">"O‘chirish"</string>
+    <string name="user_dict_settings_empty_text" msgid="558499587532668203">"Foydalanuvchi lug‘atida hali hech narsa yo‘q. Yangi so‘z qo‘shish uchun Qo‘shish (+) tugmasini bosing."</string>
+    <string name="user_dict_settings_all_languages" msgid="8276126583216298886">"Barcha tillar uchun"</string>
+    <string name="user_dict_settings_more_languages" msgid="7131268499685180461">"Ko‘proq tillar…"</string>
+    <string name="user_dict_settings_delete" msgid="110413335187193859">"O‘chirish"</string>
+    <string name="user_dict_fast_scroll_alphabet" msgid="5431919401558285473">" ABDEFGHIJKLMNOPQRSTUVXYZO‘G‘SHCH"</string>
 </resources>
diff --git a/java/res/values-v19/spinner-style.xml b/java/res/values-v19/spinner-style.xml
new file mode 100644
index 0000000..a699905
--- /dev/null
+++ b/java/res/values-v19/spinner-style.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+    <!-- Until KitKat (API 19), {@link android.widget.Spinner} of dialog mode in a Dialog can't
+         handle orientation change correctly. Using dropdown mode avoids the issue.
+         This file overrides values/spinner-style.xml on KitKat and up. -->
+    <style name="additionalSubtypeSpinnerStyle">
+        <item name="android:spinnerMode">dialog</item>
+    </style>
+</resources>
diff --git a/java/res/values-v21/platform-theme.xml b/java/res/values-v21/platform-theme.xml
index 2a54798..58763fb 100644
--- a/java/res/values-v21/platform-theme.xml
+++ b/java/res/values-v21/platform-theme.xml
@@ -20,6 +20,6 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android">
     <style name="platformActivityTheme" parent="@android:style/Theme.DeviceDefault.Light" />
-    <style name="platformSettingsTheme" parent="@android:style/Theme.DeviceDefault.Light" />
+    <style name="platformSettingsTheme" parent="@android:style/Theme.DeviceDefault.Settings" />
     <style name="platformDialogTheme" parent="@android:style/Theme.DeviceDefault.Light.Dialog" />
 </resources>
diff --git a/java/res/values-v21/themes-lxx.xml b/java/res/values-v21/themes-lxx.xml
new file mode 100644
index 0000000..5a6017c
--- /dev/null
+++ b/java/res/values-v21/themes-lxx.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+    <style
+        name="InputView.LXX"
+        parent="InputView"
+    >
+        <item name="android:elevation">8dp</item>
+    </style>
+</resources>
diff --git a/java/res/values-vi/strings-emoji-descriptions.xml b/java/res/values-vi/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..492c726
--- /dev/null
+++ b/java/res/values-vi/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Biểu tượng bản quyền"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Biểu tượng đã đăng ký"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Hai dấu chấm than"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Dấu chấm than dấu hỏi"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Biểu tượng nhãn hiệu thương mại"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Nguồn thông tin"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Mũi tên trái phải"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Mũi tên lên xuống"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Mũi tên tây bắc"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Mũi tên đông bắc"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Mũi tên đông nam"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Mũi tên tây nam"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Mũi tên sang trái có móc"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Mũi tên sang phải có móc"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Đồng hồ"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Đồng hồ cát"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Hai tam giác màu đen trỏ sang phải"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Hai tam giác màu đen trỏ sang trái"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Hai tam giác màu đen trỏ lên"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Hai tam giác màu đen trỏ xuống"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Đồng hồ báo thức"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Đồng hồ cát với cát đang chảy"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Chữ m hoa trong vòng tròn"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Hình vuông đen nhỏ"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Hình vuông trắng nhỏ"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Hình tam giác đen trỏ sang phải"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Hình tam giác đen trỏ sang trái"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Hình vuông trắng trung bình"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Hình vuông đen trung bình"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Hình vuông trắng nhỏ trung bình"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Hình vuông đen nhỏ trung bình"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Mặt trời màu đen với các tia"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Mây"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Điện thoại màu đen"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Hộp phiếu có dấu kiểm"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Ô với giọt mưa"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Đồ uống nóng"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Ngón trỏ chỉ lên màu trắng"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Mặt cười màu trắng"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"Cung Bạch dương"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"Cung Kim ngưu"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"Cung Song sinh"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"Cung Cự giải"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"Cung Sư tử"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"Cung Xử nữ"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"Cung Thiên bình"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"Cung Bọ cạp"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"Cung Nhân mã"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"Cung Ma kết"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"Cung Bảo bình"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"Cung Song ngư"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Quân bích đen"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Quân tép đen"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Quân cơ đen"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Quân rô đen"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Suối nước nóng"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Biểu tượng tái chế chung màu đen"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Biểu tượng xe lăn"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Mỏ neo"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Biển báo nguy hiểm"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Biểu tượng điện cao thế"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Vòng tròn trắng trung bình"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Vòng tròn đen trung bình"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Quả bóng đá"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"Bóng chày"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Người tuyết không có tuyết"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Mặt trời phía sau đám mây"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"Chòm sao"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Cấm vào"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Nhà thờ"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Vòi phun nước"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Cờ trong lỗ"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Thuyền buồm"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Lều"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Bơm nhiên liệu"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Kéo đen"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Dấu kiểm trắng đậm"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Máy bay"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Phong bì"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Giơ quả đấm"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Giơ tay"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Tay chữ V"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Bút chì"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Đầu ngòi bút đen"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Dấu kiểm đậm"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"Dấu nhân x đậm"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Tia lửa"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Dấu hoa thị 8 que"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Sao màu đen 8 que"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Bông tuyết"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Tia lửa"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Dấu gạch chéo"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Biểu tượng dấu gạch chéo hình vuông"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Hình trang trí dấu hỏi màu đen"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Hình trang trí dấu hỏi màu trắng"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Hình trang trí dấu cảm thán màu trắng"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Biểu tượng dấu cảm thán đậm"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Trái tim buồn phiền"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Dấu cộng đậm"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Dấu trừ đậm"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Dấu chia đậm"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Mũi tên sang phải màu đen"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Vòng xoắn"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Hai vòng xoắn"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Mũi tên trỏ sang phải rồi uốn cong lên trên"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Mũi tên trỏ sang phải rồi uốn cong xuống dưới"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Mũi tên đen trỏ sang trái"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Mũi tên đen trỏ lên"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Mũi tên đen trỏ xuống"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Hình vuông lớn màu đen"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Hình vuông lớn màu trắng"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Sao trắng trung bình"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Vòng tròn đậm lớn"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"Nét lượn sóng"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Dấu biến thiên từng phần"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Biểu tượng chữ tượng hình \"Chúc mừng\" vòng tròn"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Biểu tượng chữ tượng hình \"Bí mật\" vòng tròn"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Rồng đỏ xếp tầng Mahjong"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Chơi bài phăng teo đen"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Nhóm máu A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Nhóm máu B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Nhóm máu O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Bãi đỗ xe"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Nhóm máu AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"Biểu tượng CL hình vuông"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Biểu tượng \"Cool\" hình vuông"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Biểu tượng \"Free\" hình vuông"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"Biểu tượng \"ID\" hình vuông"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Biểu tượng \"New\" hình vuông"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"Biểu tượng \"N G\" hình vuông"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"Biểu tượng \"OK\" hình vuông"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"Biểu tượng \"SOS\" hình vuông"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Biểu tượng \"Up!\" hình vuông"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Biểu tượng \"VS\" hình vuông"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"Biểu tượng \"Here\" (theo kiểu katakana) hình vuông"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Biểu tượng \"Service\" (theo kiểu katakana) hình vuông"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Biểu tượng chữ tượng hình \"Miễn phí\" hình vuông"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Biểu tượng chữ tượng hình \"Chỗ ngồi đặt trước\" hình vuông"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Biểu tượng chữ tượng hình \"Cấm\" hình vuông"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Biểu tượng chữ tượng hình \"Còn trống\" hình vuông"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Biểu tượng chữ tượng hình \"Chấp nhận\" hình vuông"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Biểu tượng chữ tượng hình \"Hết chỗ\" hình vuông"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"Biểu tượng chữ tượng hình \"Trả tiền\" hình vuông"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"Biểu tượng chữ tượng hình \"Hàng tháng\" hình vuông"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Biểu tượng chữ tượng hình \"Đơn đăng ký\" hình vuông"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Biểu tượng chữ tượng hình \"Giảm giá\" hình vuông"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"Biểu tượng chữ tượng hình \"Doanh nghiệp\" hình vuông"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Biểu tượng chữ tượng hình \"Thuận lợi\" hình tròn"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Biểu tượng chữ tượng hình \"Chấp nhận\" hình tròn"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Gió xoáy"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Sương mù"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Ô đóng"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Đêm đầy sao"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Bình minh trên núi"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Bình minh"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Cảnh quan thành phố khi trời tối"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Bình minh trên các tòa nhà"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Cầu vồng"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Cầu vào ban đêm"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Sóng nước"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Núi lửa"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Ngân hà"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Châu Âu-Châu Phi trên quả địa cầu"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"Châu Mỹ trên quả địa cầu"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Châu Á-Châu Úc trên quả địa cầu"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Quả cầu có kinh tuyến"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Biểu tượng trăng non"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Biểu tượng trăng lưỡi liềm"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Biểu tượng trăng thượng tuần"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Biểu tượng trăng khuyết"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Biểu tượng trăng tròn"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Biểu tượng trăng khuyết cuối tháng"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Biểu tượng trăng hạ tuần"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Biểu tượng trăng khuyết"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Trăng lưỡi liềm"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Trăng non hình khuôn mặt"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Trăng thượng tuần hình khuôn mặt"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Trăng hạ tuần hình khuôn mặt"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Trăng tròn hình khuôn mặt"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Mặt trời hình khuôn mặt"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Sao lấp lánh"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Sao băng"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"Cây hạt dẻ"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Cây giống con"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Cây thường xanh"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Cây lá rộng"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Cây cọ"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Cây xương rồng"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"Hoa tulip"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Hoa anh đào"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Hoa hồng"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"Hoa dâm bụt"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Hoa hướng dương"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Hoa nở"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Bắp ngô"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Bông lúa"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Thảo mộc"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"Cỏ bốn lá"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Lá phong đỏ"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Lá rơi"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Lá đu đưa trong gió"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Nấm"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Cà chua"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"Cà tím"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Nho"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Quả dưa"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Dưa hấu"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"Quả quýt"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Chanh"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Quả chuối"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Quả dứa"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"Táo đỏ"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"Táo xanh"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Lê"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Đào"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Quả anh đào"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Quả dâu"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"Hamburger"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Lát pizza"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Thịt trên xương"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Chân gia cầm"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Bánh gạo"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Nắm gạo"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Cơm"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Bột ca ri và gạo"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Bát bốc hơi"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"Mì ống"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Bánh mì"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Khoai tây chiên kiểu Pháp"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Khoai lang nướng"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"Bánh đoàn tử"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"Sushi"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Tôm chiên"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Bánh cá hình cuộn sóng"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"Kem mềm"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Đá bào"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"Kem"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Bánh rán"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Bánh quy"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Thanh sôcôla"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Kẹo"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lollipop"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Món sữa trứng"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Mắt ong"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Bánh bơ giòn"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Hộp Bento"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Nồi thức ăn"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Nấu ăn"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Dao và nĩa"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Chèn trà không có tay cầm"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Cốc và chai sake"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Cốc rượu"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Cốc cocktail"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Đồ uống kiểu nhiệt đới"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Cốc bia"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Chạm cốc bia"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Chai nhỏ"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Chiếc nơ"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Món quà được bọc"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Bánh sinh nhật"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"Đèn ma"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Cây Nô-en"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Ông già Nô-en"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Pháo hoa"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Nến pháo hoa"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Bóng bay"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Pháo hoa kim tuyến"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Quả cầu hoa giấy"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Cây Tanabata"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Cờ đan chéo"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Trang trí bằng quả thông"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Búp bê Nhật Bản"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"Cờ cá chép"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Gió thổi"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Khai mạc lễ ngắm trăng"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Cặp đi học"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Mũ tốt nghiệp"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Vòng quay ngựa gỗ"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Vòng đu quay"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"Đường sắt cho tàu trượt"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Cần câu cá và cá"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Micrô"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Máy quay phim"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Rạp chiếu phim"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Tai nghe"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Bảng màu họa sĩ"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Mũ chóp cao"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Lều trại"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Vé"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Bảng phân cảnh"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Nghệ thuật biểu diễn"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Trò chơi điện tử"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Mũi tên trúng đích"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Máy bán hàng tự động"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Bi-a"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Xúc xắc"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"Trò chơi lăn bóng gỗ"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Chơi bài hoa"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Nốt nhạc"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Nhiều nốt nhạc"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Saxophone"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Guitar"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Bàn phím nhạc"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Kèn Trompet"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Vĩ cầm"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Điểm âm nhạc"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Áo thun có khăn quàng cổ chạy"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Vợt tennis và bóng"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Trượt tuyết và ủng trượt tuyết"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"Bóng rổ và vòng"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Cờ có kẻ ô vuông"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Người trượt tuyết bằng ván"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Người chạy"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Người lướt sóng"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Cúp"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Đua ngựa"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Bóng đá Mỹ"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Bóng bầu dục"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Người bơi"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Xây nhà"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Nhà có vườn"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Tòa nhà văn phòng"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Bưu điện ở Nhật Bản"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Bưu điện ở Châu Âu"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Bệnh viện"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Ngân hàng"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Máy rút tiền tự động"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Khách sạn"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Khách sạn tình yêu"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Cửa hàng tiện ích"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Trường học"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Cửa hàng bách hóa"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Nhà máy"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"Đèn lồng Izakaya"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Lâu đài ở Nhật Bản"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Lâu đài ở Châu Âu"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Chuột cống"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Chuột"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Bò đực"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Con trâu"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Bò cái"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Con báo"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Con thỏ"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Mèo"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Rồng"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Cá sấu"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Cá voi"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Ốc sên"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Rắn"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Ngựa"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Cừu đực"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Dê"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Cừu"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Khỉ"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Gà trống"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Gà con"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Cún"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Lợn"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Lợn lòi đực"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Voi"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Bạch tuộc"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"Vỏ xoắn"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Con rệp"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Kiến"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Ong mật"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Bọ cánh cứng"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Cá"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Cá nhiệt đới"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"Cá nóc"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Rùa"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Gà ấp trứng"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Gà con"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Gà con mặt trước"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Chim"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Chim cánh cụt"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"Gấu túi"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Chó xù"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Lạc đà một bướu"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Lạc đà hai bướu"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Cá heo"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Mặt chuột"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Mặt bò đực"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Mặt hổ"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Mặt thỏ"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Mặt mèo"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Mặt rồng"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Cá voi phun tia"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Mặt ngựa"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Mặt khỉ"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Mặt cún"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Mặt lợn"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Mặt ếch"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Mặt chuột đồng"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Mặt sói"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Mặt gấu"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Mặt gấu trúc"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Mũi lợn"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Vết móng"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Đôi mắt"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Tai"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Mũi"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Miệng"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Lưỡi"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Ngón trỏ chỉ lên trên"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Ngón trỏ chỉ xuống dưới"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Ngón trỏ chỉ sang trái"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Ngón trỏ chỉ sang phải"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Biểu tượng quả đấm"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Biểu tượng tay vẫy"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Biểu tượng bàn tay ra dấu Ok"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Biểu tượng ngón tay cái giơ lên"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Biểu tượng ngón tay cái quay xuống"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Biểu tượng vỗ tay"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Biểu tượng đôi bàn tay mở"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Vương miện"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Mũ nữ"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Mắt kính"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Ca vát"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Áo sơ mi"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Quần bò"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Váy"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Bộ bikini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Quần áo nữ"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Ví"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Túi xách"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Túi đựng"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Giày nam"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Giày điền kinh"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Giày cao gót"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Xăng đan nữ"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Giày ống nữ"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Dấu chân"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Hình bóng nửa người"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Hình bóng nửa người"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Cậu bé"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Cô bé"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Nam"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Nữ"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Gia đình"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Đôi nam nữ nắm tay"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Hai người đàn ông nắm tay"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Hai người phụ nữ nắm tay"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Cảnh sát"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Người phụ nữ có tai thỏ"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Cô dâu mang khăn che mặt"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Người có tóc vàng hoe"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Người đàn ông đội mũ gua pi mao"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Người đàn ông đội khăn xếp"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Người đàn ông già hơn"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Người phụ nữ già hơn"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Đứa trẻ"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Công nhân xây dựng"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Công chúa"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Yêu quái Nhật Bản"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Yêu tinh Nhật Bản"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Ma"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Thiên thần nhỏ"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"Người ngoài hành tinh"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"Quỷ ngoài hành tinh"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Tiểu yêu"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Sọ"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Nhân viên tiếp tân"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Nhân viên bảo vệ"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Vũ công"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Son môi"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Sơn móng tay"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Xoa bóp mặt"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Cắt tóc"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Thợ cắt tóc"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Ống tiêm"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Viên thuốc"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Dấu hôn"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Thư tình"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Chuông"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Ngọc"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Nụ hôn"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Bó hoa"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Cặp đôi trái tim"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Lễ cưới"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Trái tim đập"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Trái tim tan vỡ"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Hai trái tim"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Trái tim lấp lánh"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Trái tím lớn lên"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Trái tim có mũi tên"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Trái tim màu xanh lam"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Trái tim màu xanh lục"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Trái tim màu vàng"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Trái tim màu tía"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Trái tim có dải băng"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Trái tim xoay vòng"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Trang trí trái tim"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Hình kim cương có dấu chấm bên trong"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Đèn điện"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Biểu tượng giận dữ"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Bom"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Biểu tượng đang ngủ"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Biểu tượng va chạm"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Biểu trưng giọt mồ hôi vã ra"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Giọt nhỏ"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Biểu tượng nét gạch"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Một đống"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Bắp tay uốn cong"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Biểu tượng hoa mắt"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Bóng lời nói"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Bóng suy nghĩ"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Hoa trắng"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Biểu tượng một trăm điểm"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Túi tiền"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Hối đoái"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Biểu tượng đồng đô la mạnh"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Thẻ tín dụng"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Tiền giấy có ký hiệu đồng yên"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Tiền giấy có ký hiệu đô la"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Tiền giấy có ký hiệu đồng Euro"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Tiền giấy có ký hiệu bảng Anh"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Tiền có đôi cánh"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Biểu đồ có xu hướng đi lên và ký hiệu yen"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Chỗ ngồi"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Máy tính cá nhân"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Cặp tài liệu"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Đĩa nhỏ"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Đĩa mềm"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Đĩa quang"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"Dvd"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Thư mục tệp"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Mở thư mục tệp"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Trang giấy uốn quăn"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Trang ngửa lên"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Lịch"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Lịch xé"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Chỉ mục thẻ"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Biểu đồ có xu hướng đi lên"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Biểu đồ có xu hướng đi xuống"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Biểu đồ thanh"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Khay nhớ tạm"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Đinh ghim"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Đinh ghim tròn"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Kẹp giấy"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Thước kẻ thẳng"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Thước kẻ hình chữ nhật"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Thanh dấu trang"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Sổ cái"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Sổ ghi chú"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Sổ ghi chú có bìa trang trí"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Sách đóng"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Sách mở"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Sách xanh lục"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Sách xanh lam"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Sách cam"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Sách"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Huy hiệu tên"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Cuộn"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Bản ghi nhớ"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Bộ nhận điện thoại"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Máy nhắn tin"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Máy fax"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"Ăng-ten vệ tinh"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Loa phóng thanh"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"Loa cổ động"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Khay hộp thư đi"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Khay hộp thư đến"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Gói"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Biểu tượng email"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Phong bì thư đến"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Phong bì có mũi tên hướng xuống dưới ở trên"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Hộp thư đóng với cờ được hạ xuống"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Hộp thư đóng với cờ được giương lên"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Hộp thư mở với cờ được giương lên"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Hộp thư mở với cờ được hạ xuống"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Hòm thư"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Còi bưu chính"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Báo"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Điện thoại di động"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Điện thoại di động có mũi tên về phía phải ở bên trái"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Chế độ rung"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Tắt điện thoại di động"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Cấm điện thoại di động"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"Ăng-ten có các vạch"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Máy ảnh"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Máy quay video"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"TV"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Đài"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Videocassette"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Mũi tên xoắn về bên phải"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Mũi tên vòng tròn mở về bên phải và về bên trái theo chiều kim đồng hồ"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Mũi tên vòng tròn mở về bên phải và bên bên trái theo chiều kim đồng hồ có lớp phủ 1 hình tròn"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Mũi tên hình tròn mở hướng xuống dưới và hướng lên trên theo chiều kim đồng hồ"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Mũi tên hình tròn mở hướng xuống dưới và hướng lên trên ngược chiều kim đồng hồ"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Biểu tượng độ sáng thấp"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Biểu tượng độ sáng cao"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Loa có tiếng gõ hủy"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Loa"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Loa có một sóng âm thanh"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Loa có ba sóng âm thanh"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Pin"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Đầu cắm điện"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Kính lúp trỏ sang trái"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Kính lúp trỏ sang phải"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Khóa có bút mực"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Khóa đóng có chìa"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Chìa khóa"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Khóa"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Khóa mở"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Chuông"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Chuông có tiếng gõ hủy"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Dấu trang"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Biểu tượng liên kết"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Nút đài"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Biểu tượng \"BACK\" có mũi tên sang trái ở trên"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"Biểu tượng \"END\" có mũi tên sang trái ở trên"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"Biểu tượng \"ON!\" có mũi tên trái phải ở trên"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Biểu tượng \"SOON\" với mũi tên sang phải ở trên"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Biểu tượng \"TOP\" với mũi tên hướng lên trên ở trên"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Biểu tượng cấm người dưới 18"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"Mũ phím 10"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Biểu tượng nhập cho chữ cái hoa la tinh"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Biểu tượng nhập các chữ cái nhỏ la tinh"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Biểu tượng nhập cho số"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Nhập ký hiệu cho ký hiệu"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Biểu tượng nhập cho chữ cái la tinh"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Lửa"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Đuốc điện"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Cờ lê"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Búa"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Đai ốc và bu lông"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"Hocho"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Súng lục"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Kính hiển vi"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Kính thiên văn"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Quả cầu pha lê"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Ngôi sao sáu cánh có chấm ở giữa"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Biểu tượng tiếng Nhật cho người mới bắt đầu"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Biểu tượng đinh ba"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Nút hình vuông màu đen"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Nút hình vuông màu trắng"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Vòng tròn đỏ lớn"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Vòng tròn xanh lam lớn"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Hình thoi màu cam lớn"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Hình thoi màu xanh lam lớn"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Hình thoi màu cam nhỏ"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Hình thoi màu xanh lam nhỏ"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Hình tam giác đỏ một đỉnh trỏ lên"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Tam giác đỏ một đỉnh trỏ xuống"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Tam giác đỏ nhỏ một đỉnh trỏ lên"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Tam giác đỏ nhỏ một đỉnh trỏ xuống"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Mặt đồng hồ chỉ 1 giờ"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Mặt đồng hồ chỉ 2 giờ"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Mặt đồng hồ chỉ 3 giờ"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Mặt đồng hồ chỉ 4 giờ"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Mặt đồng hồ chỉ 5 giờ"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Mặt đồng hồ chỉ 6 giờ"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Mặt đồng hồ chỉ 7 giờ"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Mặt đồng hồ chỉ 8 giờ"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Mặt đồng hồ chỉ 9 giờ"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Mặt đồng hồ chỉ 10 giờ"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Mặt đồng hồ chỉ 11 giờ"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Mặt đồng hồ chỉ 12 giờ"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Mặt đồng hồ chỉ 1 giờ 30 phút"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Mặt đồng hồ chỉ 2 giờ 30 phút"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Mặt đồng hồ chỉ 3 giờ 30 phút"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Mặt đồng hồ chỉ 4 giờ 30 phút"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Mặt đồng hồ chỉ 5 giờ 30 phút"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Mặt đồng hồ chỉ 6 giờ 30 phút"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Mặt đồng hồ chỉ 7 giờ 30 phút"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Mặt đồng hồ chỉ 8 giờ 30 phút"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Mặt đồng hồ chỉ 9 giờ 30 phút"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Mặt đồng hồ chỉ 10 giờ 30 phút"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Mặt đồng hồ chỉ 11 giờ 30 phút"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Mặt đồng hồ chỉ 12 giờ 30 phút"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"Đỉnh fuji"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Tháp Tokyo"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Tượng nữ thần tự do"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"Hình bóng của Nhật Bản"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"Moyai"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Mặt cười"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Khuôn mặt cười toe toét với đôi mắt cười"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Khuôn mặt với giọt nước mắt vui mừng"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Mặt cười với miệng há"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Mặt cười với miệng há và đôi mắt cười"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Mặt cười với miệng há và toát mồ hôi"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Mặt cười với miệng há và đôi mắt nhắm chặt"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Mặt cười với vầng hào quang"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Mặt có sừng cười"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Mặt nháy mắt"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Mặt cười với đôi mắt cười"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Mặt nhấm nháp thức ăn ngon"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Mặt thanh thản"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Mặt cười với đôi mắt hình trái tim"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Mặt cười với kính râm"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Mặt cười giả tạo"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Mặt trung lập"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Mặt vô cảm"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Mặt buồn rầu"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Mặt toát mồ hôi"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Mặt trầm ngâm"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Mặt bối rối"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Mặt bực bội"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Mặt đang hôn"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Mặt đang gửi một nụ hôn"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Mặt đang hôn với đôi mắt cười"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Mặt đang hôn với đôi mắt nhắm"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Mặt lè lưỡi"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Mặt lè lưỡi và nháy mắt"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Mặt lè lưỡi và đôi mắt nhắm chặt"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Mặt thất vọng"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Mặt lo lắng"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Mặt giận dữ"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Mặt hờn dỗi"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Mặt khóc"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Mặt kiên nhẫn"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Mặt giận dữ"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Mặt thất vọng nhưng thanh thản"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Mặt cau có với miệng há"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Khuôn mặt đau khổ"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Mặt sợ hãi"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Mặt mệt lử"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Mặt buồn ngủ"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Mặt mệt mỏi"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Mặt nhăn nhó"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Mặt khóc òa"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Mặt há miệng"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Mặt ngơ ngác"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Mặt há miệng và toát mồ hôi"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Mặt la hét vì sợ hãi"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Mặt ngạc nhiên"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Mặt xúc động"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Mặt buồn ngủ"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Mặt choáng váng"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Khuôn mặt không có miệng"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Khuôn mặt đeo khẩu trang y tế"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Khuôn mặt mèo rạng rỡ với đôi mắt cười"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Khuôn mặt với giọt nước mắt vui mừng"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Khuôn mặt mèo cười với miệng há"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Mặt mèo cười với đôi mắt hình trái tim"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Mặt mèo với nụ cười gượng gạo"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Khuôn mặt mèo đang hôn với mắt nhắm"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Mặt mèo hờn dỗi"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Mặt mèo khóc"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Mặt mèo mệt lử"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Khuôn mặt với cử chỉ tồi"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Khuôn mặt với cử chỉ tốt"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Người cúi gập mình"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Khỉ che mắt"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Khỉ bịt tai"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Khỉ bịt miệng"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Người vui vẻ giơ một tay"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Người giơ hai tay chúc mừng"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Người mặt cau có"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Người mặt hờn dỗi"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Người với hai tay gập"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Tên lửa"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Máy bay trực thăng"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Đầu máy hơi nước"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Ô tô ray"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Tàu cao tốc"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Tàu cao tốc có mũi hình viên đạn"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Tàu"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"Xe điện ngầm"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Đường sắt loại nhẹ"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Ga"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Xe điện"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Tàu điện"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Xe buýt"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Xe buýt sắp đến"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Ô tô điện"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Bến xe buýt"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Xe buýt nhỏ"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"Xe cứu thương"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Xe chữa cháy"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Ô tô cảnh sát"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Ô tô cảnh sát sắp đến"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Taxi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Taxi sắp đến"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Ô tô"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Ô tô sắp đến"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Phương tiện giải trí"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Xe chở hàng"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Xe tải nối khớp"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Máy kéo"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Đường một ray"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Đường sắt trên núi"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Đường xe lửa trên cao"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Đường cáp qua núi"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Cáp treo"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Tàu thủy"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Xuồng"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Thuyền tốc độ"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Đèn giao thông theo chiều ngang"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Đèn giao thông theo chiều dọc"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Biểu tượng xây dựng"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Ô tô cảnh sát có đèn xoay"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Cờ tam giác trên cột trụ"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Cửa"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Biểu tượng cấm vào"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Biểu tượng hút thuốc"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Biểu tượng không hút thuốc"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Biểu tượng vứt rác vào nơi quy định"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Biểu tượng không vứt rác"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Biểu tượng nước uống được"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Biểu tượng nước không uống được"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Xe đạp"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Cấm xe đap"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Người đi xe đạp"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Người đi xe đạp leo núi"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Người đi bộ"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Cấm người đi bộ"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Trẻ em qua đường"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Biểu tượng đàn ông"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Biểu tượng phụ nữ"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Phòng vệ sinh"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Biểu tượng trẻ em"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Nhà vệ sinh"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Nhà vệ sinh"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Vòi hoa sen"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Tắm"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Bồn tắm"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Kiểm soát hộ chiếu"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Hải quan"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Xác nhận hành lý"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Hành lý bên trái"</string>
+</resources>
diff --git a/java/res/values-vi/strings-talkback-descriptions.xml b/java/res/values-vi/strings-talkback-descriptions.xml
index 659b1d3..c799345 100644
--- a/java/res/values-vi/strings-talkback-descriptions.xml
+++ b/java/res/values-vi/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Không có ký tự nào được nhập"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"<xliff:g id="KEY_NAME">%1$s</xliff:g> sửa <xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> thành <xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"<xliff:g id="KEY_NAME">%1$s</xliff:g> tự động sửa"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Không có đề xuất nào"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Ký tự không xác định"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Biểu tượng khác"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"I hoa, dấu chấm phía trên"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Ký hiệu không xác định"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"Biểu tượng cảm xúc không xác định"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Mặt buồn chán"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Mặt bối rối"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Mặt đeo kính râm"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Mặt ngạc nhiên"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Mặt đang hôn"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Mặt cau mày"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Có ký tự thay thế"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Ký tự thay thế đã bị loại bỏ"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Có đề xuất thay thế"</string>
diff --git a/java/res/values-vi/strings.xml b/java/res/values-vi/strings.xml
index ccb8668..14a029d 100644
--- a/java/res/values-vi/strings.xml
+++ b/java/res/values-vi/strings.xml
@@ -25,26 +25,31 @@
     <string name="use_contacts_for_spellchecking_option_summary" msgid="8754413382543307713">"Trình kiểm tra chính tả sử dụng các mục nhập từ danh sách liên hệ của bạn"</string>
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Rung khi nhấn phím"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Âm thanh khi nhấn phím"</string>
-    <string name="popup_on_keypress" msgid="123894815723512944">"Cửa sổ bật lên khi nhấn phím"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="popup_on_keypress" msgid="123894815723512944">"Bật lên khi nhấn phím"</string>
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Tùy chọn"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Tài khoản và bảo mật"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Giao diện và bố cục"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Nhập bằng cử chỉ"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Sửa văn bản"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Nâng cao"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Chủ đề"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Bật chia bàn phím"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Đồng bộ hóa Bàn phím Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Đã bật tính năng đồng bộ hóa"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Đồng bộ hóa từ điển cá nhân của bạn trên các thiết bị"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Đồng bộ hóa ngay bây giờ"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Xóa dữ liệu đám mây"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Xóa dữ liệu đã được đồng bộ hóa của bạn khỏi Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Dữ liệu đã đồng bộ hóa của bạn sẽ bị xóa khỏi đám mây. Bạn có chắc chắn không?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Xóa"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Hủy"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Từ điển cá nhân của bạn sẽ được đồng bộ hóa và sao lưu vào máy chủ Google. Chúng tôi có thể thu thập thông tin thống kê về tần suất của từ để giúp cải thiện sản phẩm của mình. Việc thu thập và sử dụng tất cả thông tin sẽ tuân thủ "<a href="https://www.google.com/policies/privacy">"Chính sách bảo mật của Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Vui lòng thêm một tài khoản Google vào thiết bị này để bật tính năng này"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Phương thức nhập khác"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Khóa chuyển ngôn ngữ bao gồm cả các phương thức nhập liệu khác"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Phím chuyển đổi ngôn ngữ"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Hiển thị khi nhiều ngôn ngữ đầu vào được bật"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Hiển thị chỉ báo trượt"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Hiển thị tín hiệu hình ảnh trong khi trượt từ phím Shift hoặc phím Biểu tượng"</string>
-    <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Loại bỏ hiển thị phím trễ"</string>
+    <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Độ trễ ẩn phím bật lên"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Không có tgian trễ"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Mặc định"</string>
     <string name="abbreviation_unit_milliseconds" msgid="8700286094028323363">"<xliff:g id="MILLISECONDS">%s</xliff:g> mili giây"</string>
@@ -53,8 +58,8 @@
     <string name="use_contacts_dict_summary" msgid="6599983334507879959">"Sử dụng tên từ Danh bạ cho các đề xuất và chỉnh sửa"</string>
     <string name="use_personalized_dicts" msgid="5167396352105467626">"Đề xuất được cá nhân hóa"</string>
     <string name="enable_metrics_logging" msgid="5506372337118822837">"Cải thiện <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
-    <string name="use_double_space_period" msgid="8781529969425082860">"Dấu cách đôi"</string>
-    <string name="use_double_space_period_summary" msgid="6532892187247952799">"Nhấn đúp vào phím cách sẽ chèn thêm một dấu sau dấu cách"</string>
+    <string name="use_double_space_period" msgid="8781529969425082860">"Nhấn đúp phím cách chèn dấu chấm câu"</string>
+    <string name="use_double_space_period_summary" msgid="6532892187247952799">"Nhấn đúp phím cách sẽ chèn thêm một dấu chấm câu, theo sau là dấu cách"</string>
     <string name="auto_cap" msgid="1719746674854628252">"Tự động viết hoa"</string>
     <string name="auto_cap_summary" msgid="7934452761022946874">"Viết hoa chữ đầu tiên của mỗi câu"</string>
     <string name="edit_personal_dictionary" msgid="3996910038952940420">"Từ điển cá nhân"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Từ điển chính"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Hiển thị gợi ý sửa"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Hiển thị từ được đề xuất khi nhập"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Luôn hiển thị"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Hiển thị ở chế độ dọc"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Luôn ẩn"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Chặn các từ xúc phạm"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Không đề xuất các từ có thể gây xúc phạm"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Tự động sửa"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Khóa nhập giọng nói"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Không có phương thức nhập bằng giọng nói nào được bật. Kiểm tra cài đặt Ngôn ngữ và phương thức nhập."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Định cấu hình phương thức nhập"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Ngôn ngữ nhập"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Gửi phản hồi"</string>
-    <string name="select_language" msgid="3693815588777926848">"Ngôn ngữ nhập"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Ngôn ngữ"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Trợ giúp và phản hồi"</string>
+    <string name="select_language" msgid="5709487854987078367">"Ngôn ngữ"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Chạm lại để lưu"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Chạm vào đây để lưu"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Có sẵn từ điển"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Chủ đề bàn phím"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Chuyển đổi tài khoản"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Chưa chọn tài khoản nào"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Hiện đang sử dụng <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"OK"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Hủy"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Đăng xuất"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Chọn một tài khoản để sử dụng"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"Tiếng Anh (Anh)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"Tiếng Anh (Mỹ)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"Tiếng Tây Ban Nha (Mỹ)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"Tiếng Anh-Hindi"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Tiếng Serbia (La tinh)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"Tiếng Anh (Anh) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"Tiếng Anh (Mỹ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Tiếng Tây Ban Nha (Mỹ) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"Tiếng Anh-Hindi (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Tiếng Serbia (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Truyền thống)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tiếng Kirin)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (tiếng Latin)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Viết tắt)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Không ngôn ngữ nào (Bảng chữ cái)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Bảng chữ cái (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Bảng chữ cái (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Bảng chữ cái (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Bảng chữ cái (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Biểu tượng cảm xúc"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Chủ đề bàn phím"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Kiểu nhập tùy chỉnh"</string>
     <string name="add_style" msgid="6163126614514489951">"Thêm kiểu"</string>
     <string name="add" msgid="8299699805688017798">"Thêm"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Bật"</string>
     <string name="not_now" msgid="6172462888202790482">"Để sau"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Đã tồn tại kiểu nhập tương tự: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Tgian chờ cho nhấn và giữ phím"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Thời gian rung khi nhấn phím"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Âm lượng khi nhấn phím"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Đọc tệp từ điển bên ngoài"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Không có tệp từ điển nào trong thư mục Nội dung tải xuống"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Chọn tệp từ điển để cài đặt"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Thực sự cài đặt tệp này cho <xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Đã xảy ra lỗi"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Tgian chờ cho nhấn và giữ phím"</string>
     <string name="button_default" msgid="3988017840431881491">"Mặc định"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Chào mừng bạn đến với <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"với Nhập bằng cử chỉ"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Bây giờ bạn có thể nhập vào tất cả ứng dụng yêu thích của mình với <xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Định cấu hình các ngôn ngữ khác"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Đã xong"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Hiển thị biểu tượng ứng dụng"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Hiển thị biểu tượng ứng dụng trong trình chạy"</string>
     <string name="app_name" msgid="6320102637491234792">"Nhà cung cấp từ điển"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Nhà cung cấp từ điển"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Dịch vụ từ điển"</string>
@@ -181,7 +178,7 @@
     <string name="install_dict" msgid="180852772562189365">"Cài đặt"</string>
     <string name="cancel_download_dict" msgid="7843340278507019303">"Hủy"</string>
     <string name="delete_dict" msgid="756853268088330054">"Xóa"</string>
-    <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Ngôn ngữ đã chọn trên thiết bị di động của bạn hiện có từ điển.&lt;br/&gt; Bạn nên &lt;b&gt;tải xuống&lt;/b&gt; từ điển <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> để cải thiện trải nghiệm nhập của mình.&lt;br/&gt; &lt;br/&gt; Quá trình tải xuống có thể mất vài phút qua 3G. Có thể mất phí nếu bạn không có &lt;b&gt;gói dữ liệu không giới hạn&lt;/b&gt;.&lt;br/&gt; Nếu bạn không chắc mình có gói dữ liệu nào, bạn nên tìm kết nối Wi-Fi để bắt đầu tải xuống tự động.&lt;br/&gt; &lt;br/&gt; Mẹo: Bạn có thể tải xuống và xóa từ điển bằng cách đi tới &lt;b&gt;Ngôn ngữ và nhập&lt;/b&gt; trong trình đơn &lt;b&gt;Cài đặt&lt;/b&gt; trên thiết bị di động của mình."</string>
+    <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"Ngôn ngữ đã chọn trên thiết bị di động của bạn hiện có từ điển.&lt;br/&gt; Bạn nên &lt;b&gt;tải xuống&lt;/b&gt; từ điển <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g> để cải thiện trải nghiệm nhập của mình.&lt;br/&gt; &lt;br/&gt; Quá trình tải xuống có thể mất vài phút qua 3G. Có thể mất phí nếu bạn không có &lt;b&gt;gói dữ liệu không giới hạn&lt;/b&gt;.&lt;br/&gt; Nếu bạn không chắc mình có gói dữ liệu nào, bạn nên tìm kết nối Wi-Fi để bắt đầu tải xuống tự động.&lt;br/&gt; &lt;br/&gt; Mẹo: Bạn có thể tải xuống và xóa từ điển bằng cách đi tới &lt;b&gt;Ngôn ngữ và nhập&lt;/b&gt; trong menu &lt;b&gt;Cài đặt&lt;/b&gt; trên thiết bị di động của mình."</string>
     <string name="download_over_metered" msgid="1643065851159409546">"Tải xuống bây giờ (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>MB)"</string>
     <string name="do_not_download_over_metered" msgid="2176209579313941583">"Tải xuống qua Wi-Fi"</string>
     <string name="dict_available_notification_title" msgid="4583842811218581658">"Hiện có từ điển cho <xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>"</string>
diff --git a/java/res/values-zh-rCN/strings-emoji-descriptions.xml b/java/res/values-zh-rCN/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..9ea3fbe
--- /dev/null
+++ b/java/res/values-zh-rCN/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"版权符号"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"注册符号"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"双叹号"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"感叹号和问号"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"商标符号"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"信息来源"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"左右箭头"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"上下箭头"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"西北箭头"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"东北箭头"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"东南箭头"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"西南箭头"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"有钩的向左箭头"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"有钩的向右箭头"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"手表"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"沙漏"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"实心右指双三角"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"实心左指双三角"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"实心上指双三角"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"实心下指双三角"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"闹钟"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"沙粒流动中的沙漏"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"带圆圈的拉丁文大写字母M"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"实心小方形"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"空心小方形"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"实心右指三角形"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"实心左指三角形"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"空心中等方形"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"实心中等方形"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"空心中小方形"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"实心中小方形"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"放射光线的实心太阳"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"云朵"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"实心电话标志"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"带对钩的选框"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"挡着雨点的雨伞"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"热饮料"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"向上指的食指"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"轻松的笑脸"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"白羊座"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"金牛座"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"双子座"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"巨蟹座"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"狮子座"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"处女座"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"天秤座"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"天蝎座"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"人马座"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"摩羯座"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"水瓶座"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"双鱼座"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"实心黑桃"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"实心梅花"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"实心红桃"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"实心方块"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"温泉"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"实心通用再循环符号"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"轮椅符号"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"锚"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"警告符号"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"高压符号"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"中等空心圆圈"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"中等实心圆圈"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"足球"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"棒球"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"雪人"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"被云遮挡的太阳"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"蛇夫座"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"禁止通行"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"教堂"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"喷泉"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"插在高尔夫球洞中的旗"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"帆船"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"帐篷"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"油泵"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"实心剪刀"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"空心加粗对钩标志"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"飞机"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"信封"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"举着的拳头"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"举着的手"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"胜利手势"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"铅笔"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"实心钢笔尖"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"加粗对钩标志"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"加粗乘号 x"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"火花"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"八轮辐星号"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"实心八角星"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"雪花"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"火花"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"十字线"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"带方框的反白十字线"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"实心问号装饰"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"空心问号装饰"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"空心叹号装饰"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"加粗叹号"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"实心的心形"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"加粗加号"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"加粗减号"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"加粗除号"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"实心向右箭头"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"卷曲环"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"双卷曲环"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"指向右侧然后向上弯曲的箭头"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"指向右侧然后向下弯曲的箭头"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"向左实心箭头"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"向上实心箭头"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"向下实心箭头"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"实心大正方形"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"空心大正方形"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"空心中等星形"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"加粗大圆圈"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"波形长划"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"部分替换标记"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"带圆圈的汉字祝"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"带圆圈的汉字秘"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"麻将牌红中"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"扑克牌小王"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"A型血"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"B型血"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"O型血"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"停车场"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"AB型血"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"带方框的CL"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"带方框的COOL"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"带方框的FREE"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"带方框的ID"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"带方框的NEW"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"带方框的NG"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"带方框的OK"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"带方框的SOS"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"带方框的UP和感叹号"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"带方框的VS"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"带方框的片假名ココ"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"带方框的片假名サ"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"带方框的汉字無"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"带方框的汉字指"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"带方框的汉字禁"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"带方框的汉字空"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"带方框的汉字合"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"带方框的汉字満"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"带方框的汉字有"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"带方框的汉字月"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"带方框的汉字申"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"带方框的汉字割"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"带方框的汉字営"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"带圆圈的汉字得"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"带圆圈的汉字可"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"旋风"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"有雾"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"合上的雨伞"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"有星星的夜晚"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"越过山顶的日出"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"日出"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"黄昏的城市风景"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"越过建筑物的日落"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"彩虹"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"夜间的大桥"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"水波"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"火山"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"银河系"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"地球欧洲-非洲"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"地球美洲"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"地球亚洲-澳大利亚"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"带子午线的球形"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"新月符号"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"新月娥眉月符号"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"上弦月符号"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"盈凸月符号"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"满月符号"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"亏凸月符号"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"下弦月符号"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"残月娥眉月符号"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"娥眉月"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"带一张脸的新月"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"带一张脸的上弦月"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"带一张脸的下弦月"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"带一张脸的满月"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"带一张脸的太阳"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"发光的星星"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"流星"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"板栗"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"幼苗"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"常青树"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"落叶树"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"棕榈树"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"仙人掌"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"郁金香"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"樱花"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"玫瑰"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"芙蓉"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"向日葵"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"花蕾"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"玉米穗"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"稻穗"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"香草"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"四叶草"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"枫叶"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"落叶"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"在风中飘扬的树叶"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"蘑菇"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"番茄"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"茄子"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"葡萄"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"哈密瓜"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"西瓜"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"柑橘"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"柠檬"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"香蕉"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"菠萝"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"红苹果"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"青苹果"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"梨"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"桃"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"樱桃"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"草莓"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"汉堡"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"披萨片"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"连骨肉"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"鸡腿"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"米饼"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"饭团"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"白米饭"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"咖喱饭"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"热气腾腾的碗"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"意大利面"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"面包"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"炸薯条"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"烤地瓜"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"团子"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"关东煮"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"寿司"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"炸虾"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"漩涡图案鱼饼"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"软冰淇淋"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"刨冰"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"冰淇淋"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"甜甜圈"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"饼干"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"巧克力块"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"糖果"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"棒棒糖"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"奶油蛋羹"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"蜜罐"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"水果蛋糕"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"便当盒"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"盛满食物的锅"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"烹调"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"刀叉"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"无柄茶杯"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"日本酒瓶和杯子"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"葡萄酒杯"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"鸡尾酒杯"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"热带风情鸡尾酒"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"啤酒杯"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"碰在一起的啤酒杯"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"婴儿奶瓶"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"绸带"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"包好的礼物"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"生日蛋糕"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"南瓜灯"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"圣诞树"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"圣诞老人"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"焰火"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"烟花焰火"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"气球"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"礼花"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"五彩纸屑球"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"七夕树"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"交叉旗帜"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"门松"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"日本人偶"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"鲤鱼旗"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"风铃"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"赏月仪式"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"书包"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"毕业帽"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"旋转木马"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"摩天轮"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"过山车"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"鱼竿和鱼"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"麦克风"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"摄像机"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"电影院"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"耳机"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"画家调色板"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"礼帽"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"马戏团帐篷"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"门票"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"场记板"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"表演艺术"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"电子游戏机"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"命中靶心"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"老虎机"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"台球"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"游戏骰子"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"保龄球"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"花牌"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"音符"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"多个音符"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"萨克斯管"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"吉他"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"音乐键盘"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"小号"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"小提琴"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"乐谱"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"带饰带的运动衫"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"网球拍和网球"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"滑雪板和滑雪靴"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"篮球和篮框"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"格子旗"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"单板滑雪者"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"跑步者"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"冲浪者"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"奖杯"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"赛马"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"美式橄榄球"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"英式橄榄球"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"游泳者"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"房屋建筑"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"带花园的房子"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"办公楼"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"日本邮局"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"欧洲邮局"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"医院"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"银行"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"自动取款机"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"酒店"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"情侣酒店"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"便利店"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"学校"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"百货公司"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"工厂"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"居酒屋灯笼"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"日本城堡"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"欧洲城堡"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"大老鼠"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"小老鼠"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"牛"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"水牛"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"奶牛"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"豹"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"兔子"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"猫"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"龙"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"鳄鱼"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"鲸"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"蜗牛"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"蛇"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"马"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"公羊"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"山羊"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"绵羊"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"猴子"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"公鸡"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"母鸡"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"狗"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"猪"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"野猪"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"大象"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"章鱼"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"螺蛳"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"虫子"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"蚂蚁"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"蜜蜂"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"瓢虫"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"鱼"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"热带鱼"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"河豚"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"乌龟"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"破壳而出的小鸡"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"小鸡"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"面朝前方的小鸡"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"鸟"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"企鹅"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"考拉"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"贵宾狗"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"单峰驼"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"双峰驼"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"海豚"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"老鼠脸"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"牛脸"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"老虎脸"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"兔脸"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"猫脸"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"龙脸"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"喷水的鲸"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"马脸"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"猴脸"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"狗脸"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"猪脸"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"青蛙脸"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"仓鼠脸"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"狼脸"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"熊脸"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"熊猫脸"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"猪鼻子"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"掌印"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"眼睛"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"耳朵"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"鼻子"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"嘴"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"舌头"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"反手向上指的食指"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"反手向下指的食指"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"反手向左指的食指"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"反手向右指的食指"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"握拳手势"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"挥手手势"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"OK手势"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"拇指朝上手势"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"拇指朝下手势"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"拍手手势"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"张开双手手势"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"王冠"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"女式帽子"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"眼镜"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"领带"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"T恤衫"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"牛仔裤"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"礼服"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"和服"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"比基尼"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"女装"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"女用小提包"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"手提包"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"小包包"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"男鞋"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"运动鞋"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"高跟鞋"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"女式凉鞋"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"女靴"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"脚印"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"半身人像轮廓"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"双半身人像轮廓"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"男孩"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"女孩"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"男人"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"女人"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"家庭"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"男人和女人手牵着手"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"握住手的两位男性"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"握住手的两位女性"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"警官"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"兔耳朵装扮的女性"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"戴面纱的新娘"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"金发人"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"戴瓜皮帽的男性"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"戴头巾的男性"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"年长的男性"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"年长的女性"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"婴儿"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"建筑工人"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"公主"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"日本鬼"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"日本天狗"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"幽灵"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"天使宝贝"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"外星人"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"外星怪物"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"小鬼"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"头骨"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"信息服务台人员"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"卫兵"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"舞者"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"口红"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"指甲油"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"脸部按摩"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"理发"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"理发店门前的旋转彩柱"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"注射器"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"药丸"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"吻痕"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"情书"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"戒指"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"宝石"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"接吻"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"花束"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"夫妻连心"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"婚礼"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"跳动的心"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"破碎的心"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"两颗心"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"闪亮的心"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"成长的心"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"被箭射中的心"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"蓝色的心"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"绿色的心"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"黄色的心"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"紫色的心"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"带丝带的心"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"环绕旋转的心"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"心形装饰"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"代表花卉的内部带点的菱形"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"电灯泡"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"愤怒标志"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"炸弹"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"睡觉标志"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"碰撞标志"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"汗水飞溅"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"水滴"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"快速奔跑标志"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"便便堆"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"弯曲二头肌"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"眩晕符号"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"对话泡泡框"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"思考泡泡框"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"白花"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"一百分符号"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"钱袋"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"货币兑换"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"加粗美元符号"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"信用卡"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"带日元符号的钞票"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"带美元符号的钞票"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"带欧元符号的钞票"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"带英镑符号的钞票"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"长翅膀的钱"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"带向上趋势和日元符号的图表"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"座椅"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"个人计算机"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"公文包"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"微型碟片"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"软盘"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"光盘"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"文件夹"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"打开的文件夹"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"下端卷起的纸页"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"正面朝上的纸页"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"日历"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"撕页日历"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"卡片索引"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"带向上趋势的图表"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"带向下趋势的图表"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"条形图"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"带夹写字板"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"图钉"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"圆图钉"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"曲别针"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"直尺"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"三角尺"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"书签贴纸"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"帐簿"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"笔记本"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"带装饰封面的笔记本"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"合上的书"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"打开的书"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"绿皮书"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"蓝皮书"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"橙皮书"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"图书"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"姓名牌"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"文卷"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"便笺"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"电话听筒"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"寻呼机"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"传真机"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"卫星天线"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"公共广播喇叭"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"啦啦队喇叭筒"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"发件箱"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"收件箱"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"包裹"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"电子邮件符号"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"来函"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"上方带有向下箭头的信封"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"带有降下的旗帜的关闭信箱"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"带有升起的旗帜的关闭信箱"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"带有升起的旗帜的打开信箱"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"带有降下的旗帜的打开信箱"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"信箱"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"邮政号角"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"报纸"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"手机"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"左侧带向右箭头的手机"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"振动模式"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"手机关机"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"禁止使用手机"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"天线信号格"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"相机"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"摄像机"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"电视"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"收音机"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"录像带"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"相交的向右箭头"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"顺时针向右和向左绕成开放式圆圈的箭头"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"顺时针向右和向左绕成开放式圆圈的箭头，左下角圆圈中标有数字1"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"顺时针向下和向上绕成开放式圆圈的箭头"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"逆时针向下和向上绕成开放式圆圈的箭头"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"低亮度符号"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"高亮度符号"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"带删除斜线的扬声器"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"扬声器"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"带一个声波的扬声器"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"带三个声波的扬声器"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"电池"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"电源插头"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"朝向左边的放大镜"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"朝向右边的放大镜"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"带有墨水笔的锁"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"带有钥匙的闭合锁"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"钥匙"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"锁"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"打开的锁"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"铃"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"带删除斜线的铃"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"书签"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"链接符号"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"单选按钮"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"上带向左箭头的BACK"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"上带向左箭头的END"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"上带左右箭头的ON和感叹号"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"上带向右箭头的SOON"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"上带向上箭头的TOP"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"未满18岁禁止符号"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"键帽10"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"大写拉丁文字母输入符号"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"小写拉丁文字母输入符号"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"数字输入符号"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"符号的输入符号"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"拉丁文字母输入符号"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"火"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"手电筒"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"扳手"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"锤子"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"螺母和螺栓"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"日式厨刀"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"手枪"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"显微镜"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"望远镜"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"水晶球"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"中间带点的六角星"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"日本的新手标志"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"三叉戟徽章"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"实心方形按钮"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"空心方形按钮"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"红色大圆"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"蓝色大圆"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"橙色大菱形"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"蓝色大菱形"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"橙色小菱形"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"蓝色小菱形"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"尖朝上的红色三角形"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"尖朝下的红色三角形"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"尖朝上的红色小三角形"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"尖朝下的红色小三角形"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"显示为一点的钟面"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"显示为两点的钟面"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"显示为三点的钟面"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"显示为四点的钟面"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"显示为五点的钟面"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"显示为六点的钟面"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"显示为七点的钟面"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"显示为八点的钟面"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"显示为九点的钟面"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"显示为十点的钟面"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"显示为十一点的钟面"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"显示为十二点的钟面"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"显示为一点半的钟面"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"显示为两点半的钟面"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"显示为三点半的钟面"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"显示为四点半的钟面"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"显示为五点半的钟面"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"显示为六点半的钟面"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"显示为七点半的钟面"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"显示为八点半的钟面"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"显示为九点半的钟面"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"显示为十点半的钟面"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"显示为十一点半的钟面"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"显示为十二点半的钟面"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"富士山"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"东京塔"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"自由女神像"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"日本地图轮廓"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"摩艾石像"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"露齿而笑的表情"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"咧嘴眉开眼笑的表情"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"喜极而泣的表情"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"咧嘴笑的表情"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"咧嘴且眯眼笑的表情"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"咧嘴笑且冒冷汗的表情"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"咧嘴笑且眼睛紧闭的表情"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"带光环的笑脸"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"带恶魔角的笑脸"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"眨眼微笑的表情"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"眼睛笑眯眯的表情"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"品尝到美食的表情"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"如释重负的表情"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"眼睛呈心形的笑脸"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"戴墨镜的笑脸"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"得意的笑脸"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"无表情的脸"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"无动于衷的脸"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"面带不快的脸"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"冒冷汗的脸"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"忧虑的表情"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"困惑的表情"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"不知所措的表情"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"为亲吻而嘟着嘴的脸"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"拋飞吻的脸"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"为亲吻而嘟着嘴的笑眯眯的脸"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"为亲吻而嘟着嘴的闭起眼的脸"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"吐舌头的表情"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"眨眼吐舌头的表情"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"闭眼吐舌头的表情"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"失望的表情"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"担心的表情"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"生气的表情"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"噘嘴的表情"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"哭泣的表情"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"忍着哭的表情"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"不可一世的表情"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"失望但如释重负的表情"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"张嘴皱眉的表情"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"苦恼的表情"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"害怕的表情"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"厌烦的表情"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"打瞌睡的表情"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"疲惫的表情"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"做鬼脸的表情"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"嚎啕大哭的表情"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"张大嘴的表情"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"噤声的表情"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"张嘴冒冷汗的表情"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"恐惧尖叫的表情"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"惊讶的表情"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"脸红的表情"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"熟睡的表情"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"头晕眼花的表情"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"没有嘴的脸"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"戴医用口罩的脸"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"露齿笑眯眯的猫脸"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"喜极而泣的猫脸"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"张嘴微笑的猫脸"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"眼睛呈心形的笑猫脸"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"坏笑的猫脸"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"为亲吻而嘟着嘴的闭起眼的猫脸"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"噘嘴的猫脸"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"哭泣的猫脸"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"厌倦的猫脸"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"做禁止手势的人"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"做OK手势的人"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"跪伏的人"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"非礼勿视的猴子"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"非礼勿听的猴子"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"非礼勿言的猴子"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"开心地举起一只手的人"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"高举双手庆祝的人"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"皱眉的人"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"噘嘴的人"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"双手合十的人"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"火箭"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"直升飞机"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"蒸汽火车"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"火车车厢"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"高铁列车"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"子弹头高铁列车"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"火车"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"地铁"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"轻轨"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"车站"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"有轨电车"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"电车车厢"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"公交车"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"迎面而来的公交车"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"无轨电车"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"公交车站牌"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"小型公共汽车"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"救护车"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"消防车"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"警车"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"迎面而来的警车"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"出租车"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"迎面而来的出租车"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"汽车"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"迎面而来的汽车"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"野营旅游车"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"送货车"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"铰接式卡车"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"拖拉机"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"单轨列车"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"山区铁路"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"高架铁路"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"山地索道"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"空中缆车"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"轮船"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"小船"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"快艇"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"横向红绿灯"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"竖向红绿灯"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"施工标志"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"旋转的警车警示灯"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"旗杆上的三角旗"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"门"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"禁止通行标志"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"吸烟标志"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"禁止吸烟标志"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"正确丢弃垃圾标志"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"请勿乱丢垃圾标志"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"饮用水标志"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"非饮用水标志"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"自行车"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"禁止自行车通行"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"骑自行车的人"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"骑山地自行车的人"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"行人"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"禁止行人通行"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"注意儿童穿越马路"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"男士标志"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"女士标志"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"洗手间"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"婴儿标志"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"卫生间"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"厕所"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"淋浴喷头"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"洗浴"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"浴缸"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"入境护照检查"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"海关"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"行李领取处"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"行李寄存处"</string>
+</resources>
diff --git a/java/res/values-zh-rCN/strings-talkback-descriptions.xml b/java/res/values-zh-rCN/strings-talkback-descriptions.xml
index b7b6b41..ed59f30 100644
--- a/java/res/values-zh-rCN/strings-talkback-descriptions.xml
+++ b/java/res/values-zh-rCN/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"未输入文字"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"按<xliff:g id="KEY_NAME">%1$s</xliff:g>键可将<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>更正为<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"按<xliff:g id="KEY_NAME">%1$s</xliff:g>键可进行自动更正"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"没有任何建议"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"未知字符"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"更多符号"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"带上点的拉丁文大写字母I"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"未知符号"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"未知表情符号"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"无聊"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"尴尬"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"戴墨镜"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"惊讶"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"亲吻"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"皱眉"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"有可用的替代字符"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"已关闭替代字符"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"有可用的其他建议字词"</string>
diff --git a/java/res/values-zh-rCN/strings.xml b/java/res/values-zh-rCN/strings.xml
index 9e71e99..8082033 100644
--- a/java/res/values-zh-rCN/strings.xml
+++ b/java/res/values-zh-rCN/strings.xml
@@ -26,24 +26,30 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"按键振动"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"按键音效"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"按键时弹出显示字符"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"偏好设置"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"帐户和隐私权"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"外观和布局"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"滑行输入"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"文字更正"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"高级"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"主题背景"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"使用分离式键盘"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google 键盘同步"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"同步功能已开启"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"在设备间同步您的个人字典"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"立即同步"</string>
+    <!-- no translation found for clear_sync_data_title (8582001557037069154) -->
     <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"将您已同步的数据从 Google 删除"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"您已同步的数据将会从云端删除。确定要执行此操作吗？"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"删除"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"取消"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"您的个人字典将会同步并备份到 Google 服务器。系统可能会收集字词出现频率的统计信息，来帮助改进我们的产品。所有信息的收集和使用都会遵守 "<a href="https://www.google.com/policies/privacy">"Google 隐私权政策"</a>"。"</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"要启用此功能，请将 Google 帐户添加到此设备中"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"切换到其他输入法"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"语言切换键也可用于切换其他输入法"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"语言切换键"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"启用了多种输入语言时显示"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"显示滑动指示效果"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"从 Shift 键或符号键滑动时显示视觉提示"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"弹出字符隐藏延迟"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"无延迟"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"默认"</string>
@@ -57,14 +63,11 @@
     <string name="use_double_space_period_summary" msgid="6532892187247952799">"双击空格键可插入句号并后跟空格"</string>
     <string name="auto_cap" msgid="1719746674854628252">"自动大写"</string>
     <string name="auto_cap_summary" msgid="7934452761022946874">"句首字词大写"</string>
-    <string name="edit_personal_dictionary" msgid="3996910038952940420">"个人词典"</string>
-    <string name="configure_dictionaries_title" msgid="4238652338556902049">"附加词典"</string>
-    <string name="main_dictionary" msgid="4798763781818361168">"主词典"</string>
+    <string name="edit_personal_dictionary" msgid="3996910038952940420">"个人字典"</string>
+    <string name="configure_dictionaries_title" msgid="4238652338556902049">"附加字典"</string>
+    <string name="main_dictionary" msgid="4798763781818361168">"主字典"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"显示更正建议"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"键入时显示建议的字词"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"始终显示"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"在纵向模式中显示"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"始终隐藏"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"屏蔽不文明的字词"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"屏蔽可能不文明的字词"</string>
     <string name="auto_correction" msgid="7630720885194996950">"自动更正"</string>
@@ -85,21 +88,32 @@
     <string name="voice_input" msgid="3583258583521397548">"语音输入键"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"未启用任何语音输入法。请检查“语言和输入法”设置。"</string>
     <string name="configure_input_method" msgid="373356270290742459">"配置输入法"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"输入语言"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"发送反馈"</string>
-    <string name="select_language" msgid="3693815588777926848">"输入语言"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"语言"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"帮助和反馈"</string>
+    <string name="select_language" msgid="5709487854987078367">"语言"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"再次触摸即可保存"</string>
-    <string name="has_dictionary" msgid="6071847973466625007">"有可用词典"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"触摸此处即可保存"</string>
+    <string name="has_dictionary" msgid="6071847973466625007">"有可用字典"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"键盘主题"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"切换帐户"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"未选择任何帐户"</string>
+    <string name="account_selected" msgid="2846876462199625974">"当前使用的是<xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"确定"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"取消"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"退出帐户"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"选择要使用的帐户"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"英语(英国)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"英语(美国)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"西班牙语（美国）"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"印地英语"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"塞尔维亚语（拉丁语布局）"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"英式英语（<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>）"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"美式英语（<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>）"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"美式西班牙语（<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>）"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"印地英语（<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>）"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"塞尔维亚语（<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>布局）"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g>（传统）"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g>（西里尔文）"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g>（拉丁文）"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g>（紧凑型）"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"无语言（字母）"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"字母 (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"字母 (QWERTZ)"</string>
@@ -108,16 +122,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"字母 (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"字母 (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"表情符号"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"键盘主题"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"自定义输入风格"</string>
     <string name="add_style" msgid="6163126614514489951">"添加样式"</string>
     <string name="add" msgid="8299699805688017798">"添加"</string>
@@ -129,14 +134,9 @@
     <string name="enable" msgid="5031294444630523247">"启用"</string>
     <string name="not_now" msgid="6172462888202790482">"以后再说"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"已经存在相同的输入风格：<xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"按键长按延迟"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"按键振动时长"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"按键音量"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"读取外部词典文件"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"“下载内容”文件夹中没有词典文件"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"选择要安装的词典文件"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"确定要安装这个<xliff:g id="LANGUAGE_NAME">%s</xliff:g>词典吗？"</string>
-    <string name="error" msgid="8940763624668513648">"出现错误"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"按键长按延迟"</string>
     <string name="button_default" msgid="3988017840431881491">"默认"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"欢迎使用 <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"体验顺畅的滑行输入体验"</string>
@@ -154,42 +154,40 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"现在，您可以在自己喜欢的所有应用中使用 <xliff:g id="APPLICATION_NAME">%s</xliff:g>来输入内容了。"</string>
     <string name="setup_step3_action" msgid="600879797256942259">"配置其他语言"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"完成"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"显示应用图标"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"在启动器中显示应用图标"</string>
-    <string name="app_name" msgid="6320102637491234792">"词典提供程序"</string>
-    <string name="dictionary_provider_name" msgid="3027315045397363079">"词典提供程序"</string>
-    <string name="dictionary_service_name" msgid="6237472350693511448">"词典服务"</string>
-    <string name="download_description" msgid="6014835283119198591">"词典更新信息"</string>
-    <string name="dictionary_settings_title" msgid="8091417676045693313">"附加词典"</string>
-    <string name="dictionary_install_over_metered_network_prompt" msgid="3587517870006332980">"词典可供下载"</string>
-    <string name="dictionary_settings_summary" msgid="5305694987799824349">"词典设置"</string>
-    <string name="user_dictionaries" msgid="3582332055892252845">"用户词典"</string>
-    <string name="default_user_dict_pref_name" msgid="1625055720489280530">"用户词典"</string>
-    <string name="dictionary_available" msgid="4728975345815214218">"词典可供下载"</string>
+    <string name="app_name" msgid="6320102637491234792">"字典提供程序"</string>
+    <string name="dictionary_provider_name" msgid="3027315045397363079">"字典提供程序"</string>
+    <string name="dictionary_service_name" msgid="6237472350693511448">"字典服务"</string>
+    <string name="download_description" msgid="6014835283119198591">"字典更新信息"</string>
+    <string name="dictionary_settings_title" msgid="8091417676045693313">"附加字典"</string>
+    <string name="dictionary_install_over_metered_network_prompt" msgid="3587517870006332980">"字典可供下载"</string>
+    <string name="dictionary_settings_summary" msgid="5305694987799824349">"字典设置"</string>
+    <string name="user_dictionaries" msgid="3582332055892252845">"用户字典"</string>
+    <string name="default_user_dict_pref_name" msgid="1625055720489280530">"用户字典"</string>
+    <string name="dictionary_available" msgid="4728975345815214218">"字典可供下载"</string>
     <string name="dictionary_downloading" msgid="2982650524622620983">"目前正在下载"</string>
     <string name="dictionary_installed" msgid="8081558343559342962">"已安装"</string>
     <string name="dictionary_disabled" msgid="8950383219564621762">"已安装，但目前已停用"</string>
-    <string name="cannot_connect_to_dict_service" msgid="9216933695765732398">"连接到词典服务时发生问题"</string>
-    <string name="no_dictionaries_available" msgid="8039920716566132611">"没有可供下载的词典"</string>
+    <string name="cannot_connect_to_dict_service" msgid="9216933695765732398">"连接到字典服务时发生问题"</string>
+    <string name="no_dictionaries_available" msgid="8039920716566132611">"没有可供下载的字典"</string>
     <string name="check_for_updates_now" msgid="8087688440916388581">"刷新"</string>
     <string name="last_update" msgid="730467549913588780">"上次更新时间"</string>
     <string name="message_updating" msgid="4457761393932375219">"正在检查更新"</string>
     <string name="message_loading" msgid="5638680861387748936">"正在加载…"</string>
-    <string name="main_dict_description" msgid="3072821352793492143">"主词典"</string>
+    <string name="main_dict_description" msgid="3072821352793492143">"主字典"</string>
     <string name="cancel" msgid="6830980399865683324">"取消"</string>
     <string name="go_to_settings" msgid="3876892339342569259">"设置"</string>
     <string name="install_dict" msgid="180852772562189365">"安装"</string>
     <string name="cancel_download_dict" msgid="7843340278507019303">"取消"</string>
     <string name="delete_dict" msgid="756853268088330054">"删除"</string>
-    <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"您的移动设备上选择的语言有一个词典可供下载。&lt;br/&gt;我们建议您&lt;b&gt;下载&lt;/b&gt;这个<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>词典，以便获得更好的输入体验。&lt;br/&gt;&lt;br/&gt;通过3G网络下载可能需要一两分钟的时间。如果您使用的不是&lt;b&gt;无流量限制的套餐&lt;/b&gt;，则可能产生一定的流量费。&lt;br/&gt;如果您不确定自己使用的是哪种流量套餐，我们建议您连接到WLAN网络以便自动开始下载。&lt;br/&gt;&lt;br/&gt;提示：您可以在移动设备上的&lt;b&gt;语言和输入法&lt;/b&gt;部分（位于&lt;b&gt;设置&lt;/b&gt;菜单中）下载和删除词典。"</string>
+    <string name="should_download_over_metered_prompt" msgid="1583881200688185508">"您的移动设备上选择的语言有一个字典可供下载。&lt;br/&gt;我们建议您&lt;b&gt;下载&lt;/b&gt;这个<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>字典，以便获得更好的输入体验。&lt;br/&gt;&lt;br/&gt;通过3G网络下载可能需要一两分钟的时间。如果您使用的不是&lt;b&gt;无流量限制的套餐&lt;/b&gt;，则可能产生一定的流量费。&lt;br/&gt;如果您不确定自己使用的是哪种流量套餐，我们建议您连接到WLAN网络以便自动开始下载。&lt;br/&gt;&lt;br/&gt;提示：您可以在移动设备上的&lt;b&gt;语言和输入法&lt;/b&gt;部分（位于&lt;b&gt;设置&lt;/b&gt;菜单中）下载和删除字典。"</string>
     <string name="download_over_metered" msgid="1643065851159409546">"立即下载 (<xliff:g id="SIZE_IN_MEGABYTES">%1$.1f</xliff:g>MB)"</string>
-    <string name="do_not_download_over_metered" msgid="2176209579313941583">"通过 WLAN 下载"</string>
-    <string name="dict_available_notification_title" msgid="4583842811218581658">"有一个<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>词典可供下载"</string>
+    <string name="do_not_download_over_metered" msgid="2176209579313941583">"通过WLAN网络下载"</string>
+    <string name="dict_available_notification_title" msgid="4583842811218581658">"有一个<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>字典可供下载"</string>
     <string name="dict_available_notification_description" msgid="1075194169443163487">"按此通知即可查看和下载"</string>
     <string name="toast_downloading_suggestions" msgid="6128155879830851739">"正在下载：<xliff:g id="LANGUAGE_NAME">%1$s</xliff:g>输入建议功能马上就可以使用了！"</string>
     <string name="version_text" msgid="2715354215568469385">"版本<xliff:g id="VERSION_NUMBER">%1$s</xliff:g>"</string>
     <string name="user_dict_settings_add_menu_title" msgid="1254195365689387076">"添加"</string>
-    <string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"添加到词典"</string>
+    <string name="user_dict_settings_add_dialog_title" msgid="4096700390211748168">"添加到字典"</string>
     <string name="user_dict_settings_add_screen_title" msgid="5818914331629278758">"词组"</string>
     <string name="user_dict_settings_add_dialog_more_options" msgid="5671682004887093112">"更多选项"</string>
     <string name="user_dict_settings_add_dialog_less_options" msgid="2716586567241724126">"隐藏部分选项"</string>
@@ -202,7 +200,7 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="3765774633869590352">"修改字词"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="6812255903472456302">"修改"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="8142932447689461181">"删除"</string>
-    <string name="user_dict_settings_empty_text" msgid="558499587532668203">"用户词典中没有您定义的任何字词。您可以触摸“添加”(+) 按钮添加字词。"</string>
+    <string name="user_dict_settings_empty_text" msgid="558499587532668203">"用户字典中没有您定义的任何字词。您可以触摸“添加”(+) 按钮添加字词。"</string>
     <string name="user_dict_settings_all_languages" msgid="8276126583216298886">"所有语言"</string>
     <string name="user_dict_settings_more_languages" msgid="7131268499685180461">"更多语言…"</string>
     <string name="user_dict_settings_delete" msgid="110413335187193859">"删除"</string>
diff --git a/java/res/values-zh-rHK/strings-emoji-descriptions.xml b/java/res/values-zh-rHK/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..b14c41d
--- /dev/null
+++ b/java/res/values-zh-rHK/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"版權符號"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"註冊符號"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"雙感嘆號"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"感嘆和問號"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"商標符號"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"資料來源"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"向左向右箭嘴"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"向上向下箭嘴"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"西北方箭嘴"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"東北方箭嘴"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"東南方箭嘴"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"西南方箭嘴"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"有鉤向左箭嘴"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"有鉤向右箭嘴"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"手錶"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"沙漏"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"黑色向右雙重三角形"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"黑色向左雙重三角形"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"黑色向上雙重三角形"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"黑色向下雙重三角形"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"鬧鐘"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"流動的沙漏"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"圓圈中的大寫字母 M"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"小型黑色正方形"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"小型白色正方形"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"黑色向右三角形"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"黑色向左三角形"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"中型白色正方形"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"中型黑色正方形"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"中小型白色正方形"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"中小型黑色正方形"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"有光芒的太陽"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"雲朵"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"黑色電話"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"有勾選記號的投票箱"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"有雨滴的傘"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"熱飲"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"指向上的白色食指"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"白色笑臉"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"白羊座"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"金牛座"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"雙子座"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"巨蟹座"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"獅子座"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"處女座"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"天秤座"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"天蠍座"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"射手座"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"摩羯座"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"水瓶座"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"雙魚座"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"黑色葵扇紙牌"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"黑色梅花紙牌"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"黑色紅心紙牌"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"黑色階磚紙牌"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"溫泉"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"黑色的國際通用資源回收符號"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"輪椅符號"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"錨"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"警告標誌"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"高電壓標誌"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"中型白圓點"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"中型黑圓點"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"足球"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"棒球"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"四周沒有下雪的雪人"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"雲遮日"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"蛇夫座"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"禁止進入"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"教堂"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"噴泉"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"插在洞中的旗子"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"帆船"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"帳篷"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"燃料泵"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"黑剪刀"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"白色加粗的剔號"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"飛機"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"信封"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"高舉拳頭"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"舉起的手"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"勝利手勢"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"鉛筆"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"黑色筆尖"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"加粗的剔號"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"加粗的乘法符號"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"三個火花"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"八角星號"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"黑色八角星形"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"雪花"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"火花"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"打叉符號"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"反白方框交叉符號"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"黑色問號裝飾"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"白色問號裝飾"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"白色感嘆號裝飾"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"加粗的感嘆號符號"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"粗黑的愛心"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"加粗的加號"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"加粗的減號"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"加粗的除號"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"黑色向右箭嘴"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"捲曲循環線"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"雙捲曲循環線"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"先向右再往上彎曲的箭嘴"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"先向右再往下彎曲的箭嘴"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"黑色向左箭嘴"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"黑色向上箭嘴"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"黑色向下箭嘴"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"大型黑色正方形"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"大型白色正方形"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"中型白色星星"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"加粗的大圓形"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"波折線"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"專輯交替標記"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"圓形的表意文字「祝賀」"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"圓形的表意文字「秘密」"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"麻雀牌紅中"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"黑色鬼牌"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"A 型血"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"B 型血"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"O 型血"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"停車場"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"AB 型血"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"方框 CL"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"方框 COOL"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"方框 FREE"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"方框 ID"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"方框 NEW"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"方框 NG"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"方框 OK"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"方框 SOS"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"方框 UP 與感嘆號"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"方框 VS"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"方框片假名「這裡」"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"方框片假名「服務」"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"方框表意文字「免費」"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"方框表意文字「預留座位」"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"方框表意文字「禁止」"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"方框表意文字「空位」"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"方框表意文字「同意」"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"方框表意文字「已滿」"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"方框表意文字「收費」"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"方框表意文字「每月」"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"方框表意文字「申請」"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"方框表意文字「折扣」"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"方框表意文字「營業中」"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"圓圈表意文字「特惠」"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"圓圈表意文字「接受」"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"氣旋"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"有霧"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"未打開的雨傘"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"有星空的夜晚"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"山頂日出"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"日出"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"暮光傾城"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"夕陽下的城市森林"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"彩虹"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"橋下夜色"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"水波"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"火山"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"銀河"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"地球 (歐洲到非洲)"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"地球 (美洲)"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"地球 (亞洲到澳洲)"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"有經線的地球"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"新月符號"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"眉月符號"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"上弦月符號"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"盈凸月符號"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"滿月符號"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"虧凸月符號"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"下弦月符號"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"殘月符號"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"新月"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"有臉孔的新月"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"有臉孔的上弦月"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"有臉孔的下弦月"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"有臉孔的滿月"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"有臉孔的太陽"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"閃耀的星星"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"流星"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"栗子"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"幼苗"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"長青樹"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"落葉樹"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"棕櫚樹"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"仙人掌"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"鬱金香"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"櫻花"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"玫瑰"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"大紅花"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"向日葵"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"花朵"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"玉米穗"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"稻穗"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"香草"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"四葉草"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"楓葉"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"落葉"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"隨風飛舞的葉子"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"蘑菇"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"番茄"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"茄子"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"葡萄"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"蜜瓜"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"西瓜"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"橘子"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"檸檬"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"香蕉"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"菠蘿"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"紅蘋果"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"青蘋果"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"梨"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"桃"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"車厘子"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"士多啤梨"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"漢堡包"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"一片薄餅"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"連骨的肉"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"家禽腿肉"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"米餅"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"飯糰"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"煮熟的飯"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"咖哩飯"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"冒著熱氣的碗"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"意粉"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"麵包"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"薯條"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"烤蕃薯"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"糯米丸子"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"關東煮"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"壽司"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"炸蝦"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"魚餅"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"軟雪糕"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"刨冰"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"雪糕"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"冬甩"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"曲奇"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"朱古力條"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"糖果"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"波板糖"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"奶黄/吉士"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"蜜糖罐"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"酥餅"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"便當"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"鍋物"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"烹飪"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"刀叉"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"無柄茶杯"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"清酒瓶與杯"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"酒杯"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"雞尾酒杯"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"熱帶飲料"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"啤酒杯"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"乾杯"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"奶瓶"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"絲帶"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"包裝好的禮物"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"生日蛋糕"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"南瓜燈"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"聖誕樹"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"聖誕老人"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"煙花"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"仙女棒"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"汽球"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"單線拉炮"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"五彩碎紙球"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"七夕許願樹"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"交叉的旗子"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"松果裝飾品"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"日本娃娃"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"鯉魚旗"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"風鈴"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"賞月"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"書包"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"學士帽"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"旋轉木馬"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"摩天輪"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"過山車"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"釣竿與魚"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"咪高峰"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"電影攝影機"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"戲院"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"耳機"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"調色盤"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"大禮帽"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"馬戲團帳篷"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"門票"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"場記牌"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"表演藝術"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"電子遊戲"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"正中紅心"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"老虎機"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"桌球"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"遊戲骰子"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"保齡球"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"花牌"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"音符"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"許多音符"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"色士風"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"結他"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"鍵盤琴"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"小號"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"小提琴"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"樂譜"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"有飾帶的運動衣"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"網球拍與球"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"滑雪與滑雪靴"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"籃球與球框"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"賽車方格旗"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"滑雪的人"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"跑步者"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"衝浪者"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"獎盃"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"賽馬"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"美式足球"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"橄欖球"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"游泳者"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"住宅建築"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"有庭院的房子"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"辦公大樓"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"日本郵局"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"歐洲郵局"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"醫院"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"銀行"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"自動提款機"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"酒店"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"汽車旅館"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"便利店"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"學校"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"百貨公司"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"工廠"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"居酒屋燈籠"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"日本城堡"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"歐式城堡"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"大型家鼠"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"老鼠"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"牛"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"水牛"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"母牛"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"豹"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"兔子"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"貓"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"龍"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"鱷魚"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"鯨魚"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"蝸牛"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"蛇"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"馬"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"公羊"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"山羊"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"綿羊"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"猴子"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"公雞"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"雞"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"狗"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"豬"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"野豬"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"大象"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"章魚"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"貝殼"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"蟲子"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"螞蟻"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"蜜蜂"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"甲蟲"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"魚"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"熱帶魚"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"河豚"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"烏龜"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"剛孵化的小雞"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"小雞"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"正面的小雞"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"鳥"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"企鵝"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"無尾熊"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"捲毛狗"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"單峰駱駝"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"雙峰駱駝"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"海豚"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"老鼠臉"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"牛臉"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"老虎臉"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"兔子臉"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"貓臉"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"龍臉"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"噴水鯨魚"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"馬臉"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"猴子臉"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"狗臉"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"豬臉"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"青蛙臉"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"倉鼠臉"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"狼臉"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"熊臉"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"熊貓臉"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"豬鼻"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"動物足印"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"眼睛"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"耳朵"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"鼻子"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"嘴巴"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"舌頭"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"白色食指向上反手"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"白色食指向下反手"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"白色食指向左反手"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"白色食指向右反手"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"握拳符號"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"揮手符號"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"OK 手勢符號"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"豎起拇指符號"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"拇指朝下符號"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"鼓掌符號"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"張開雙手符號"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"皇冠"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"女裝帽"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"眼鏡"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"領帶"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"T 恤"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"牛仔褲"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"連身裙"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"和服"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"比基尼"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"女裝"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"皮包"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"手提包"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"小袋子"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"男裝鞋"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"運動鞋"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"高跟鞋"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"女裝涼鞋"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"女裝長靴"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"腳印"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"半身剪影"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"多個半身剪影"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"男孩"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"女孩"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"男人"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"女人"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"家庭"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"手牽手的男女"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"手牽手的男人"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"手牽手的女人"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"警察"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"兔女郎"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"戴著面紗的新娘"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"金髮的人"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"戴瓜皮帽的男人"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"戴著頭巾的男性"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"男性長者"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"女性長者"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"嬰兒"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"建築工人"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"公主"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"日本魔鬼"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"日本天狗"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"鬼魂"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"嬰兒天使"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"外星人"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"外星怪獸"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"小惡魔"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"骷髏頭"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"服務台人員"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"衛兵"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"舞者"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"唇膏"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"指甲油"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"臉部按摩"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"理髮"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"理髮店招牌"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"注射器"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"藥丸"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"唇印"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"情書"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"戒指"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"寶石"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"親吻"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"花束"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"情侶加上愛心"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"婚禮"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"跳動的心"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"破碎的心"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"兩顆心"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"閃耀的心"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"日益增大的心"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"一箭穿心"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"藍色的心"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"綠色的心"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"黃色的心"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"紫色的心"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"有彩帶的心"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"旋轉的心"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"心形裝飾品"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"中間有一點的鑽石圖案"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"電燈泡"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"生氣符號"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"炸彈"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"睡覺中符號"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"衝突符號"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"噴汗符號"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"小水滴"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"衝刺符號"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"一坨便便"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"展示二頭肌"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"暈眩符號"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"對話框"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"思考框"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"白色的花"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"一百分符號"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"錢包"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"貨幣換算"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"粗黑貨幣符號"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"信用卡"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"有日圓記號的鈔票"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"有美元記號的鈔票"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"有歐元記號的鈔票"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"有英鎊記號的鈔票"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"有翅膀的貨幣"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"有日圓記號且走勢向上的圖表"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"座位"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"個人電腦"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"公事包"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"迷你光碟"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"磁碟"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"光碟"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"檔案資料夾"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"開啟文件夾"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"捲曲的頁面"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"頁面朝上"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"日曆"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"撕頁式日曆"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"卡片索引"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"走勢向上的圖表"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"走勢向下的圖表"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"棒型圖"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"剪貼簿"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"圖釘"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"圓頂圖釘"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"萬字夾"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"直尺"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"三角尺"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"便利貼書籤"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"總帳"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"筆記本"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"有裝飾封面的筆記本"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"合起來的書"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"打開的書"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"綠色的書"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"藍色的書"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"橙色的書"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"圖書"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"名牌"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"捲軸"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"備忘標籤"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"電話聽筒"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"傳呼機"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"傳真機"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"衛星天線"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"大型擴音器"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"傳聲筒加油棒"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"送件匣"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"收件匣"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"包裹"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"電郵符號"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"寄來的信封"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"上方有向下箭嘴的信封"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"關閉而旗幟倒下的信箱"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"關閉而旗幟拉起的信箱"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"開啟而旗幟拉起的信箱"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"開啟而旗幟倒下的信箱"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"郵筒"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"急件喇叭"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"報紙"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"手機"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"左方有向右箭嘴的手機"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"振動模式"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"手機關機"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"禁止使用手機"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"含訊號格的天線"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"相機"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"攝影機"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"電視"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"無線電"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"錄影帶"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"扭轉向右的兩個箭嘴"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"順時針向右和向左繞成開放式圓圈的箭嘴"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"順時針向右和向左繞成開放式圓圈的箭嘴，上面有在圓圈內的 1 字"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"順時針向下和向上繞成開放式圓圈的箭嘴"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"逆時針向下和向上繞成開放式圓圈的箭嘴"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"低亮度符號"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"高亮度符號"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"加上刪除斜線的揚聲器"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"揚聲器"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"有一個聲波符號的揚聲器"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"有三個聲波符號的揚聲器"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"電池"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"電源插頭"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"向左的放大鏡"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"向右的放大鏡"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"墨水筆和鎖"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"鎖與鑰匙"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"鑰匙"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"鎖"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"打開了的鎖"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"鈴噹"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"加上刪除斜線的鈴鐺"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"書籤"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"連結符號"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"圓形按鈕"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"上方有向左箭嘴的「BACK」"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"上方有向左箭嘴的「END」"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"上方有向左、向右箭嘴的「ON」和感嘆號"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"上方有向右箭嘴的「SOON」"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"上方有向上箭嘴的「TOP」"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"18 禁符號"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"鍵帽 10"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"大寫拉丁字母輸入符號"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"小寫拉丁字母輸入符號"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"數字輸入符號"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"符號輸入符號"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"拉丁字母輸入符號"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"火"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"電筒"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"士巴拿"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"鐵鎚"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"螺帽與螺栓"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"日式廚刀"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"手槍"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"顯微鏡"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"望遠鏡"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"水晶球"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"中間有一點的六星形"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"日本的新手符號"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"三叉戟圖騰"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"黑色方形按鈕"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"白色方形按鈕"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"大型紅色圓圈"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"大型藍色圓圈"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"大型橙色菱形"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"大型藍色菱形"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"小型橙色菱形"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"小型藍色菱形"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"往上的紅色三角形"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"往下的紅色三角形"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"往上的小型紅色三角形"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"往下的小型紅色三角形"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"顯示為一點的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"顯示為兩點的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"顯示為三點的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"顯示為四點的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"顯示為五點的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"顯示為六點的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"顯示為七點的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"顯示為八點的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"顯示為九點的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"顯示為十點的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"顯示為十一點的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"顯示為十二點的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"顯示為一點辦的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"顯示為兩點半的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"顯示為三點半的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"顯示為四點半的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"顯示為五點半的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"顯示為六點半的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"顯示為七點半的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"顯示為八點半的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"顯示為九點半的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"顯示為十點半的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"顯示為十一點半的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"顯示為十二點半的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"富士山"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"東京鐵塔"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"自由女神像"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"日本的剪影"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"澀谷仿摩艾石像"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"露齒而笑的笑臉"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"帶著微笑眼睛且露齒而笑的笑臉"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"流下開心淚水的笑臉"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"張嘴的笑臉"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"張嘴且帶著笑意的笑臉"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"張嘴且冒著冷汗的笑臉"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"張嘴閉眼的笑臉"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"頭頂光環的笑臉"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"頭上長角的笑臉"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"眨眼睛的表情"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"眼帶笑意的笑臉"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"嚐到美食的表情"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"安心的表情"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"眼睛呈現心形的笑臉"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"戴著太陽眼鏡的笑臉"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"嘻笑的臉"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"無表情"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"面無表情的臉"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"不帶一絲愉悅的表情"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"冒冷汗的表情"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"沈思的表情"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"困惑的表情"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"狼狽的表情"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"親吻的表情"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"送出飛吻的表情"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"笑咪咪親吻的表情"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"閉眼親吻的表情"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"伸舌的表情"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"伸舌眨眼的表情"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"伸舌閉眼的表情"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"失望的表情"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"擔心的表情"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"生氣的表情"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"面露不悅的表情"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"嚎啕大哭"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"固執己見的表情"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"洋洋得意的表情"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"失望卻又安心的表情"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"皺眉張嘴的表情"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"苦惱的表情"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"害怕的表情"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"精疲力竭的表情"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"想睡的表情"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"疲倦的表情"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"做鬼臉"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"大聲哭泣的表情"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"張嘴的表情"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"噤聲的表情"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"張嘴且冒著冷汗的表情"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"因害怕而尖叫的表情"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"驚訝的表情"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"興奮的表情"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"熟睡的表情"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"頭暈目眩的表情"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"沒有嘴巴的臉"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"帶著口罩的臉"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"眼睛微笑且露齒而笑的貓臉"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"喜極而泣的貓臉"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"露齒而笑的貓臉"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"微笑時眼睛呈心形的貓臉"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"帶著諷刺微笑的貓臉"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"閉著眼睛親吻的貓臉"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"生氣的貓臉"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"正在哭泣的貓臉"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"精疲力竭的貓臉"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"帶有「不好」手勢的臉"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"帶有 OK 手勢的臉"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"深深鞠躬的人"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"非禮勿視的猴子"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"非禮勿聽的猴子"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"非禮勿言的猴子"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"快樂且高舉單手的人"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"高舉雙手慶祝的人"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"皺眉的人"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"面露不悅的人"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"雙手交叉的人"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"火箭"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"直升機"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"蒸汽火車頭"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"火車車廂"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"高鐵列車"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"子彈火車"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"火車"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"地鐵"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"輕鐵"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"車站"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"電車"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"電車車廂"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"巴士"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"迎面駛來的巴士"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"無軌電車"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"巴士站"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"小巴"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"救護車"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"消防車"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"警車"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"迎面駛來的警車"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"的士"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"迎面駛來的的士"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"汽車"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"迎面駛來的汽車"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"露營車"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"運輸貨車"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"拖斗貨車"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"拖拉機"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"單軌鐵路"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"山區火車"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"懸掛式鐵路"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"山區纜車"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"架空纜車"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"船隻"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"划艇"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"快艇"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"橫向紅綠燈"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"垂直式紅綠燈"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"施工標誌"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"旋轉的警車警示燈"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"郵筒上的三角旗"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"門"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"禁止進入標誌"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"吸煙區符號"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"禁煙符號"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"正確丟棄垃圾標誌"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"請勿亂丟垃圾標誌"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"飲用水標誌"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"非飲用水標誌"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"單車"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"禁止單車"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"單車騎士"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"越野單車騎士"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"行人"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"禁止行人通過"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"注意兒童穿越馬路"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"男性符號"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"女性符號"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"廁所"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"嬰兒符號"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"廁所"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"盥洗室"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"淋浴間"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"浸浴"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"浴缸"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"護照檢查處"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"海關"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"行李領取處"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"行李寄存處"</string>
+</resources>
diff --git a/java/res/values-zh-rHK/strings-talkback-descriptions.xml b/java/res/values-zh-rHK/strings-talkback-descriptions.xml
index 386b5b5..6a1aa53 100644
--- a/java/res/values-zh-rHK/strings-talkback-descriptions.xml
+++ b/java/res/values-zh-rHK/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"未輸入文字"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"按「<xliff:g id="KEY_NAME">%1$s</xliff:g>」可將「<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>」修正為「<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>」"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"按「<xliff:g id="KEY_NAME">%1$s</xliff:g>」可自動修正"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"沒有建議"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"未知的字元"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift 鍵"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"更多符號"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"上方加點的大寫 I"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"未知的符號"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"未知的表情符號"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"無聊"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"尷尬"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"戴著墨鏡"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"驚訝"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"親吻"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"皺眉"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"有可用的替代字元"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"已關閉替代字元"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"有可用的建議字詞"</string>
diff --git a/java/res/values-zh-rHK/strings.xml b/java/res/values-zh-rHK/strings.xml
index 4229bce..460c2a1 100644
--- a/java/res/values-zh-rHK/strings.xml
+++ b/java/res/values-zh-rHK/strings.xml
@@ -26,24 +26,30 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"按鍵時震動"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"按鍵時播放音效"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"按鍵時顯示彈出式視窗"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"偏好設定"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"帳戶與私隱權"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"外觀和版面配置"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"手勢輸入"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"文字更正"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"進階"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"主題背景"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"啟用分離式鍵盤"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google 鍵盤同步"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"同步功能已啟用"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"同步處理各裝置之間的個人字典"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"立即同步"</string>
+    <!-- no translation found for clear_sync_data_title (8582001557037069154) -->
     <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"刪除您來自 Google 的同步處理資料"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"您的同步處理資料將從雲端刪除，要確定嗎？"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"刪除"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"取消"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"您的個人字典將同步處理並備份至 Google 伺服器。系統可能會收集字詞頻率的統計資料，以協助改善產品。所有資訊的收集和使用均遵循《"<a href="https://www.google.com/policies/privacy">"Google 私隱權政策"</a>"》。"</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"請在這部裝置加入 Google 帳戶，以加入此功能。"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"切換至其他輸入法"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"語言切換鍵包括其他輸入法"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"語言切換鍵"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"在啟用多種輸入語言時顯示"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"顯示滑動指示器"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"從 Shift 鍵或符號鍵開始滑動時顯示視覺提示"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"關閉彈出式鍵盤的延遲時間"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"不延遲"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"預設"</string>
@@ -62,9 +68,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"主要字典"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"顯示更正建議"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"輸入時顯示建議字詞"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"永遠顯示"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"以垂直模式顯示"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"永遠隱藏"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"封鎖令人反感的字詞"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"不建議使用可能令人反感的字詞"</string>
     <string name="auto_correction" msgid="7630720885194996950">"自動更正"</string>
@@ -85,21 +88,32 @@
     <string name="voice_input" msgid="3583258583521397548">"語音輸入鍵"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"尚未啟用語音輸入法，請檢查語言和輸入設定。"</string>
     <string name="configure_input_method" msgid="373356270290742459">"設定輸入法"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"輸入語言"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"傳送意見"</string>
-    <string name="select_language" msgid="3693815588777926848">"輸入語言"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"語言"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"說明和意見反映"</string>
+    <string name="select_language" msgid="5709487854987078367">"語言"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"再次輕觸即可儲存"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"輕觸即可儲存"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"可使用字典"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"鍵盤主題"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"切換帳戶"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"未選取任何帳戶"</string>
+    <string name="account_selected" msgid="2846876462199625974">"目前使用的是 <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"確定"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"取消"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"登出"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"選取要使用的帳戶"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"英文 (英國)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"英文 (美國)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"西班牙文 (美國)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"印度英文"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"塞爾維亞文 (拉丁文)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"英文 (英國) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"英文 (美國) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"西班牙文 (美國) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"印度英文 (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"塞爾維亞文 (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (傳統)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (西里爾文)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (拉丁文)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (精簡版)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"無語言 (字母)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"字母 (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"字母 (QWERTZ)"</string>
@@ -108,16 +122,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"字母 (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"字母 (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"Emoji"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"鍵盤主題"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"自訂輸入樣式"</string>
     <string name="add_style" msgid="6163126614514489951">"新增樣式"</string>
     <string name="add" msgid="8299699805688017798">"新增"</string>
@@ -129,14 +134,9 @@
     <string name="enable" msgid="5031294444630523247">"啟用"</string>
     <string name="not_now" msgid="6172462888202790482">"暫時不要"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"已存在相同的輸入樣式：<xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"長按鍵延遲"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"按鍵震動時間"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"按鍵音量"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"讀取外部字典檔案"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"「下載」資料夾中沒有任何字典檔案"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"選取要安裝的字典檔案"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"準備為<xliff:g id="LANGUAGE_NAME">%s</xliff:g>版本安裝這個檔案嗎？"</string>
-    <string name="error" msgid="8940763624668513648">"發生錯誤"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"長按鍵延遲"</string>
     <string name="button_default" msgid="3988017840431881491">"預設"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"歡迎使用「<xliff:g id="APPLICATION_NAME">%s</xliff:g>」"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"配備觸控輸入功能"</string>
@@ -154,8 +154,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"現在，您可以在所有最愛的應用程式中使用「<xliff:g id="APPLICATION_NAME">%s</xliff:g>」輸入文字。"</string>
     <string name="setup_step3_action" msgid="600879797256942259">"設定其他語言"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"完成"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"顯示應用程式圖示"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"在啟動器中顯示應用程式圖示"</string>
     <string name="app_name" msgid="6320102637491234792">"字典供應商"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"字典供應商"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"字典服務"</string>
@@ -163,8 +161,8 @@
     <string name="dictionary_settings_title" msgid="8091417676045693313">"附加字典"</string>
     <string name="dictionary_install_over_metered_network_prompt" msgid="3587517870006332980">"可使用字典"</string>
     <string name="dictionary_settings_summary" msgid="5305694987799824349">"字典設定"</string>
-    <string name="user_dictionaries" msgid="3582332055892252845">"用戶字典"</string>
-    <string name="default_user_dict_pref_name" msgid="1625055720489280530">"用戶字典"</string>
+    <string name="user_dictionaries" msgid="3582332055892252845">"使用者字典"</string>
+    <string name="default_user_dict_pref_name" msgid="1625055720489280530">"使用者字典"</string>
     <string name="dictionary_available" msgid="4728975345815214218">"可使用字典"</string>
     <string name="dictionary_downloading" msgid="2982650524622620983">"目前下載中"</string>
     <string name="dictionary_installed" msgid="8081558343559342962">"已安裝"</string>
@@ -202,7 +200,7 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="3765774633869590352">"編輯字詞"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="6812255903472456302">"編輯"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="8142932447689461181">"刪除"</string>
-    <string name="user_dict_settings_empty_text" msgid="558499587532668203">"您的用戶字典中沒有任何字詞。輕觸 [新增] (+) 按鈕即可新增字詞。"</string>
+    <string name="user_dict_settings_empty_text" msgid="558499587532668203">"您的使用者字典中沒有任何字詞。輕觸 [新增] (+) 按鈕即可新增字詞。"</string>
     <string name="user_dict_settings_all_languages" msgid="8276126583216298886">"所有語言"</string>
     <string name="user_dict_settings_more_languages" msgid="7131268499685180461">"更多語言..."</string>
     <string name="user_dict_settings_delete" msgid="110413335187193859">"刪除"</string>
diff --git a/java/res/values-zh-rTW/strings-emoji-descriptions.xml b/java/res/values-zh-rTW/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..b5c7230
--- /dev/null
+++ b/java/res/values-zh-rTW/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"版權符號"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"註冊符號"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"雙驚嘆號"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"驚嘆號和問號"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"商標符號"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"資訊來源"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"左右箭頭"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"上下箭頭"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"西北方箭頭"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"東北方箭頭"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"東南方箭頭"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"西南方箭頭"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"鉤狀向左箭頭"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"鉤狀向右箭頭"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"手錶"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"沙漏"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"指向右邊的兩個黑色三角形"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"指向左邊的兩個黑色三角形"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"指向上方的兩個黑色三角形"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"指向下方的兩個黑色三角形"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"鬧鐘"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"沙粒流動中的沙漏"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"圓圈中的大寫字母 M"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"小型黑色正方形"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"小型白色正方形"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"指向右邊的黑色三角形"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"指向左邊的黑色三角形"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"中型白色正方形"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"中型黑色正方形"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"中小型白色正方形"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"中小型黑色正方形"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"黑色的太陽和光線"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"雲朵"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"黑色電話"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"打勾的黑色方塊"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"雨傘和雨滴"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"熱飲"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"往上指的白色食指"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"白色笑臉"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"牡羊座"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"金牛座"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"雙子座"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"巨蟹座"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"獅子座"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"處女座"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"天秤座"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"天蠍座"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"射手座"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"摩羯座"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"水瓶座"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"雙魚座"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"黑色的黑桃紙牌花色"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"黑色的梅花紙牌花色"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"黑色的紅心紙牌花色"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"黑色的方塊紙牌花色"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"溫泉"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"黑色的國際通用資源回收符號"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"輪椅符號"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"船錨"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"警告標誌"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"高壓電標誌"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"中型白色圓形"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"中型黑色圓形"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"足球"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"棒球"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"四周沒有下雪的雪人"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"雲後的太陽"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"蛇夫座"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"禁止進入"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"教堂"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"噴泉"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"球洞中的旗子"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"帆船"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"帳篷"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"燃油泵"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"黑色剪刀"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"加粗的白色打勾記號"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"飛機"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"信封"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"舉起的拳頭"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"舉起的手"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"勝利手勢"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"鉛筆"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"黑色鋼筆筆尖"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"加粗的打勾記號"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"加粗的乘法記號"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"閃光"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"八角星芒"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"黑色八角星形"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"雪花"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"火花"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"交叉記號"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"反白方框打叉記號"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"黑色問號裝飾"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"白色問號裝飾"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"白色驚嘆號裝飾"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"加粗的驚嘆號符號"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"加粗的黑色愛心"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"加粗的加號"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"加粗的減號"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"加粗的除號"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"黑色向右箭頭"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"捲曲線"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"雙捲曲線"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"先向右再往上彎曲的箭頭"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"先向右再往下彎曲的箭頭"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"黑色向左箭頭"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"黑色向上箭頭"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"黑色向下箭頭"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"大型黑色正方形"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"大型白色正方形"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"中型白色星星"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"加粗的大型圓形"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"連續波浪號"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"歌謠標記"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"圓圈形的表意字元「祝賀」"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"圓圈形的表意字元「秘密」"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"麻將牌紅中"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"黑色鬼牌"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"血型 A 型"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"血型 B 型"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"血型 O 型"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"停車場"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"血型 AB 型"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"方框 CL"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"方框 COOL"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"方框 FREE"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"方框 ID"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"方框 NEW"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"方框 NG"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"方框 OK"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"方框 SOS"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"方框 UP 和驚嘆號"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"方框 VS"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"方框片假名「這裡」"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"方框片假名「服務」"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"方框表意字元「免費」"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"方框表意字元「對號座」"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"方框表意字元「禁止」"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"方框表意字元「空位」"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"方框表意字元「同意」"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"方框表意字元「已滿」"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"方框表意字元「收費」"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"方框表意字元「每月」"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"方框表意字元「申請」"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"方框表意字元「折扣」"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"方框表意字元「營業中」"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"圓圈形的表意字元「特惠」"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"圓圈形的表意字元「接受」"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"氣旋"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"起霧"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"收起的雨傘"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"星夜"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"山頂日出"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"日出"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"城市暮色"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"高樓日落"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"彩虹"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"夜晚的橋"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"水波"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"火山"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"銀河"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"地球 (歐洲到非洲)"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"地球 (美洲)"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"地球 (亞洲到澳洲)"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"有經線的地球"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"新月符號"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"娥眉月符號"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"上弦月符號"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"盈凸月符號"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"滿月符號"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"虧凸月符號"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"下弦月符號"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"殘月符號"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"月牙"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"有臉的新月"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"有臉的上弦月"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"有臉的下弦月"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"有臉的滿月"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"有臉的太陽"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"發光的星星"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"流星"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"栗子"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"樹苗"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"常綠植物"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"落葉植物"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"棕櫚樹"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"仙人掌"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"鬱金香"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"櫻花"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"玫瑰"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"扶桑花"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"向日葵"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"花朵"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"玉米"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"稻米"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"香草"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"四葉酢醬草"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"楓葉"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"落葉"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"風中落葉"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"蘑菇"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"番茄"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"茄子"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"葡萄"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"香瓜"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"西瓜"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"柑橘"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"檸檬"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"香蕉"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"鳳梨"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"紅蘋果"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"綠蘋果"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"梨子"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"桃子"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"櫻桃"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"草莓"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"漢堡"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"披薩切片"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"帶骨肉"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"家禽腿肉"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"米脆餅"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"飯糰"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"米飯"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"咖哩飯"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"熱食"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"義大利麵"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"麵包"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"薯條"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"烤地瓜"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"日式糯米丸子"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"關東煮"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"壽司"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"炸蝦"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"鳴門卷"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"霜淇淋"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"刨冰"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"冰淇淋"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"甜甜圈"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"餅乾"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"巧克力棒"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"糖果"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"Lollipop"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"卡士達"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"蜂蜜罐"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"水果蛋糕"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"便當"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"火鍋料理"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"烹飪"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"刀叉"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"茶碗"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"清酒和酒杯"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"葡萄酒杯"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"雞尾酒杯"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"熱帶風情雞尾酒"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"啤酒杯"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"乾杯"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"奶瓶"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"緞帶"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"包裝好的禮物"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"生日蛋糕"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"萬聖節南瓜燈籠"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"聖誕樹"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"聖誕老人"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"煙火"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"仙女棒"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"氣球"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"拉炮"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"五彩碎紙球"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"七夕許願樹"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"交叉的旗子"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"門松"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"日本女兒節人偶"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"鯉魚旗"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"風鈴"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"賞月"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"書包"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"學士帽"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"旋轉木馬"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"摩天輪"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"雲霄飛車"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"釣竿和魚"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"麥克風"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"電影攝影機"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"電影"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"耳機"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"調色盤"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"禮帽"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"馬戲團帳篷"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"門票"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"場記板"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"表演藝術"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"電玩遊戲"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"正中紅心"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"吃角子老虎機"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"撞球"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"遊戲骰子"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"保齡球"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"日本花牌"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"音符"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"許多音符"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"薩克斯風"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"吉他"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"鍵盤樂器"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"小號"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"小提琴"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"樂譜"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"有飾帶的跑步運動服"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"網球拍和球"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"滑雪和滑雪靴"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"籃球和籃框"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"賽車方格旗"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"滑雪板"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"跑者"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"衝浪客"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"獎盃"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"賽馬"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"美式足球"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"橄欖球"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"游泳者"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"住家建築"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"有庭院的房子"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"辦公建築"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"日本郵局"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"歐洲郵局"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"醫院"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"銀行"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"自動櫃員機"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"飯店"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"賓館"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"便利商店"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"學校"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"百貨公司"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"工廠"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"居酒屋燈籠"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"日式宮殿"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"歐式城堡"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"大型家鼠"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"老鼠"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"牛"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"水牛"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"母牛"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"豹"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"兔子"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"貓"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"龍"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"鱷魚"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"鯨魚"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"蝸牛"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"蛇"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"馬"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"公羊"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"山羊"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"綿羊"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"猴子"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"公雞"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"雞"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"狗"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"豬"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"野豬"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"大象"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"章魚"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"螺"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"蟲子"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"螞蟻"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"蜜蜂"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"瓢蟲"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"魚"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"熱帶魚"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"河豚"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"烏龜"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"剛孵化的小雞"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"小雞"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"面向前方的小雞"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"鳥"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"企鵝"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"無尾熊"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"貴賓狗"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"單峰駱駝"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"雙峰駱駝"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"海豚"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"老鼠臉"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"母牛臉"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"老虎臉"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"兔子臉"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"貓臉"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"龍臉"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"噴水的鯨魚"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"馬臉"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"猴子臉"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"狗臉"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"豬臉"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"青蛙臉"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"倉鼠臉"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"狼臉"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"熊臉"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"貓熊臉"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"豬鼻子"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"腳掌印"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"眼睛"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"耳朵"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"鼻子"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"嘴巴"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"舌頭"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"手背朝前往上指的白色食指"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"手背朝前往下指的白色食指"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"手背朝前往左指的白色食指"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"手背朝前往右指的白色食指"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"握拳符號"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"揮手符號"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"OK 手勢符號"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"拇指朝上符號"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"拇指朝下符號"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"鼓掌符號"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"張開雙手符號"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"皇冠"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"女帽"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"眼鏡"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"領帶"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"T 恤"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"牛仔褲"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"洋裝"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"和服"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"比基尼"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"女裝"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"錢包"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"手提包"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"小袋子"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"男鞋"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"運動鞋"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"高跟鞋"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"女用涼鞋"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"女靴"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"腳印"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"半身像輪廓"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"多個半身像輪廓"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"男孩"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"女孩"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"男人"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"女人"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"家庭"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"一男一女手牽手"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"兩個男人手牽手"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"兩個女人手牽手"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"警察"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"兔耳女郎"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"戴頭紗的新娘"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"金髮的人"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"戴瓜皮帽的男人"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"戴頭巾的男人"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"男性長者"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"女性長者"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"嬰兒"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"建築工人"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"公主"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"日本妖怪"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"日本天狗"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"幽靈"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"小天使"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"外星人"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"外星怪物"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"小惡魔"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"骷髏"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"服務台人員"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"衛兵"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"舞者"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"口紅"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"指甲油"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"臉部按摩"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"剪髮"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"理髮店彩色旋轉燈筒招牌"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"注射器"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"藥丸"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"唇印"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"情書"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"戒指"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"寶石"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"親吻"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"花束"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"情侶和愛心"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"婚禮"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"跳動的心"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"碎裂的心"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"兩顆愛心"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"閃閃發光的愛心"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"變大的愛心"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"一箭穿心"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"藍色愛心"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"綠色愛心"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"黃色愛心"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"紫色愛心"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"綁上緞帶的愛心"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"旋轉的愛心"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"心形裝飾"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"中間有一個點的鑽石形狀"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"電燈泡"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"生氣符號"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"炸彈"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"想睡符號"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"碰撞符號"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"噴汗符號"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"水滴"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"衝刺符號"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"一坨便便"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"股起的二頭肌"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"暈眩符號"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"對話泡泡框"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"思考泡泡框"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"白花"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"一百分符號"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"錢袋"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"貨幣兌換"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"大型錢幣符號"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"信用卡"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"有日幣符號的鈔票"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"有美元符號的鈔票"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"有歐元符號的鈔票"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"有英鎊符號的鈔票"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"長翅膀的錢"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"有日圓符號且走勢往上的圖表"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"座位"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"個人電腦"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"公事包"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"迷你光碟"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"磁碟片"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"光碟"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"文件夾"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"開啟的文件夾"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"一角捲起的紙頁"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"正面朝上的紙頁"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"日曆"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"撕頁式日曆"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"卡片索引"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"走勢往上的圖表"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"走勢往下的圖表"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"長條圖"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"剪貼簿"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"圖釘"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"圓頭圖釘"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"迴紋針"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"直尺"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"三角板"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"書籤標籤"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"分類帳"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"筆記本"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"有裝飾性封面的筆記本"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"闔上的書"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"翻開的書"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"綠色的書"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"藍色的書"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"橘色的書"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"書籍"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"識別證"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"卷軸"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"筆記"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"電話話筒"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"呼叫器"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"傳真機"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"衛星天線"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"大聲公"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"傳聲筒加油棒"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"寄件匣"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"收件匣"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"包裹"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"電子郵件符號"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"寄來的信封"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"上方有向下箭頭的信封"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"關閉且已將旗子拉下的信箱"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"關閉且已將旗子升起的信箱"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"開啟且已將旗子升起的信箱"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"開啟且已將旗子降下的信箱"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"郵筒"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"急件喇叭"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"報紙"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"手機"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"左方有向右箭頭的手機"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"振動模式"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"手機關機"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"禁止使用手機"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"含訊號格的天線"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"相機"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"攝影機"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"電視"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"收音機"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"錄影帶"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"扭轉向右的兩個箭頭"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"順時針向右和向左繞成開放式圓圈的箭頭"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"順時針向右和向左繞成開放式圓圈的箭頭，上面有圈起來的 1"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"順時針向下和向上繞成開放式圓圈的箭頭"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"逆時針向下和向上繞成開放式圓圈的箭頭"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"低亮度符號"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"高亮度符號"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"加上刪除斜線的喇叭"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"喇叭"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"有一個聲波符號的喇叭"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"有三個聲波符號的喇叭"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"電池"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"插頭"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"朝向左邊的放大鏡"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"朝向右邊的放大鏡"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"鎖頭和鋼筆"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"關上的鎖頭和鑰匙"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"鑰匙"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"鎖頭"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"打開的鎖頭"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"響鈴"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"加上刪除斜線的響鈴"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"書籤"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"連結符號"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"圓形按鈕"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"上方有向左箭頭的 BACK"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"上方有向左箭頭的 END"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"上方有向左箭頭的 ON 和驚嘆號"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"上面有向右箭頭的 SOON"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"上面有向上箭頭的 TOP"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"18 禁符號"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"鍵帽 10"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"大寫拉丁字母輸入符號"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"小寫拉丁字母輸入符號"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"數字輸入符號"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"符號輸入符號"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"拉丁字母輸入符號"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"火"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"手電筒"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"扳手"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"鐵鎚"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"螺帽與螺栓"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"日式廚刀"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"手槍"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"顯微鏡"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"望遠鏡"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"水晶球"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"中間有一個點的六角星"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"日本的新手符號"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"三插戟圖騰"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"黑色方形按鈕"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"白色方形按鈕"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"大型紅色圓圈"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"大型藍色圓圈"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"大型橘色菱形"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"大型藍色菱形"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"小型橘色菱形"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"小型藍色菱形"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"往上的紅色三角形"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"往下的紅色三角形"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"往上的小型紅色三角形"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"往下的小型紅色三角形"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"顯示為一點的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"顯示為兩點的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"顯示為三點的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"顯示為四點的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"顯示為五點的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"顯示為六點的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"顯示為七點的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"顯示為八點的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"顯示為九點的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"顯示為十點的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"顯示為十一點的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"顯示為十二點的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"顯示為一點半的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"顯示為兩點半的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"顯示為三點半的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"顯示為四點半的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"顯示為五點半的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"顯示為六點半的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"顯示為七點半的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"顯示為八點半的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"顯示為九點半的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"顯示為十點半的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"顯示為十一點半的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"顯示為十二點半的時鐘鐘面"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"富士山"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"東京鐵塔"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"自由女神像"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"日本地圖輪廓"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"澀谷仿摩艾石像"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"露齒而笑的表情"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"眉開眼笑的表情"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"喜極而泣的表情"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"張嘴微笑的表情"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"張嘴眉開眼笑的表情"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"張嘴微笑冒冷汗的表情"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"張嘴微笑眼睛緊閉的表情"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"有光圈的笑臉"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"長角的笑臉"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"眨眼微笑的表情"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"眼睛笑眯眯的表情"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"嚐到美食的表情"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"如釋重負的表情"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"眼睛變成愛心的笑臉"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"戴墨鏡微笑的表情"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"得意的表情"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"心平氣和的表情"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"面無表情的臉"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"無精打采的表情"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"冒冷汗的表情"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"憂慮的表情"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"困惑的表情"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"困惑的表情"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"親吻的表情"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"飛吻的表情"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"笑咪咪親吻的表情"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"眨眼親吻的表情"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"吐舌頭的表情"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"眨眼吐舌頭的表情"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"緊閉眼睛吐舌頭的表情"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"失望的表情"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"擔心的表情"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"生氣的表情"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"噘嘴的表情"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"哭泣的表情"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"堅持的表情"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"洋洋得意的表情"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"失望又鬆了一口氣的表情"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"皺眉張嘴的表情"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"苦惱的表情"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"害怕的表情"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"厭倦的表情"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"想睡的表情"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"疲累的表情"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"扭曲的表情"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"嚎啕大哭的表情"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"張大嘴的表情"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"噤聲的表情"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"張嘴冒冷汗的表情"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"驚恐尖叫的表情"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"吃驚的表情"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"臉紅的表情"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"想睡的表情"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"頭暈眼花的表情"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"沒有嘴巴的臉"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"戴著醫療口罩的臉"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"貓咪眉開眼笑的表情"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"貓咪喜極而泣的表情"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"貓咪張嘴微笑的表情"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"貓咪眼睛變成愛心的笑臉"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"貓咪狡猾微笑的表情"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"貓咪眨眼親吻的表情"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"貓咪噘嘴的表情"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"貓咪哭泣的表情"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"貓咪厭倦的表情"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"比出拒絕手勢的人"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"比出 OK 手勢的人"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"深深鞠躬的人"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"代表非禮勿視的猴子"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"代表非禮勿聽的猴子"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"代表非禮勿言的猴子"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"開心地舉起一隻手的人"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"舉起雙手慶祝的人"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"皺眉的人"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"噘嘴的人"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"雙手合十的人"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"火箭"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"直昇機"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"蒸汽火車頭"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"火車車廂"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"高速鐵路列車"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"子彈頭高速鐵路列車"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"火車"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"地下鐵路"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"輕軌鐵路"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"車站"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"電車"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"電車車廂"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"公車"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"迎面駛來的公車"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"無軌電車"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"公車站牌"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"小型巴士"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"救護車"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"消防車"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"警車"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"迎面駛來的警車"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"計程車"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"迎面駛來的計程車"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"汽車"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"迎面駛來的汽車"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"休旅露營車"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"運貨車"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"鉸接式卡車"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"拖拉機"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"單軌鐵路"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"山區火車"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"懸掛式鐵路"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"山區纜車"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"空中纜車"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"船隻"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"划槳船"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"快艇"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"水平式紅綠燈"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"垂直式紅綠燈"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"施工標誌"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"旋轉的警車警示燈"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"旗杆上的三角旗"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"門"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"禁止進入標誌"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"吸菸標誌"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"禁菸標誌"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"請正確丟棄垃圾標誌"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"請勿亂丟垃圾標誌"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"飲用水標誌"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"非飲用水標誌"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"腳踏車"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"禁帶腳踏車"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"腳踏車騎士"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"越野自行車騎士"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"行人"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"禁止行人通行"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"注意兒童穿越馬路"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"男性符號"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"女性符號"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"洗手間"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"嬰兒符號"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"馬桶"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"廁所"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"淋浴間"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"浴室"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"浴缸"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"護照查驗處"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"海關"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"行李領取處"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"行李寄存處"</string>
+</resources>
diff --git a/java/res/values-zh-rTW/strings-talkback-descriptions.xml b/java/res/values-zh-rTW/strings-talkback-descriptions.xml
index 7a5f3df..ed5f158 100644
--- a/java/res/values-zh-rTW/strings-talkback-descriptions.xml
+++ b/java/res/values-zh-rTW/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"未輸入文字"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"按下「<xliff:g id="KEY_NAME">%1$s</xliff:g>」可將「<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g>」修正為「<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>」"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"按下「<xliff:g id="KEY_NAME">%1$s</xliff:g>」可執行自動修正"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"沒有任何建議"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"未知的字元"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"Shift 鍵"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"更多符號"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"上方加點的大寫 I"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"未知的符號"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"未知的表情符號"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"無聊"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"尷尬"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"戴墨鏡"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"驚訝"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"親吻"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"皺眉"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"有可用的替代字元"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"已關閉替代字元"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"有可用的建議字詞"</string>
diff --git a/java/res/values-zh-rTW/strings.xml b/java/res/values-zh-rTW/strings.xml
index eafea5b..a729d0d 100644
--- a/java/res/values-zh-rTW/strings.xml
+++ b/java/res/values-zh-rTW/strings.xml
@@ -26,24 +26,30 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"按鍵時震動"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"按鍵聲音"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"按鍵時彈出"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"偏好設定"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"帳戶與隱私權"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"外觀與版面配置"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"手勢輸入"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"文字修正"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"進階"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"主題"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"啟用分離式鍵盤"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Google 鍵盤同步處理"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"同步處理功能已開啟"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"在各裝置上同步處理您的個人字典"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"立即同步處理"</string>
+    <!-- no translation found for clear_sync_data_title (8582001557037069154) -->
     <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"將已同步處理的資料從 Google 刪除"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"已同步處理的資料將從雲端中刪除。您確定嗎？"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"刪除"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"取消"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"系統將會同步處理您的個人字典並備份至 Google 伺服器，同時也會收集字詞頻率的統計資訊，藉此改善我們的產品品質。所有資訊的收集和使用方式都會遵守《"<a href="https://www.google.com/policies/privacy">"Google 隱私權政策"</a>"》的規定。"</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"請將 Google 帳戶新增到這個裝置以啟用這項功能"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"切換到其他輸入法"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"使語言切換鍵包含其他輸入法"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"語言切換鍵"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"有多種輸入語言可選用時顯示切換鍵"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"顯示滑動指示器"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"從 Shift 鍵或符號鍵滑動時顯示視覺提示"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"關閉彈出式鍵盤的延遲時間"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"不延遲"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"預設"</string>
@@ -62,9 +68,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"主要字典"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"顯示修正建議"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"輸入時顯示建議字詞"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"一律顯示"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"在垂直模式中顯示"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"一律隱藏"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"封鎖令人反感的字詞"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"不建議可能令人反感的字詞"</string>
     <string name="auto_correction" msgid="7630720885194996950">"自動修正"</string>
@@ -85,21 +88,32 @@
     <string name="voice_input" msgid="3583258583521397548">"語音輸入按鍵"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"尚未啟動語音輸入法，請檢查語言與輸入設定。"</string>
     <string name="configure_input_method" msgid="373356270290742459">"設定輸入法"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"輸入語言"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"提供意見"</string>
-    <string name="select_language" msgid="3693815588777926848">"輸入語言"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"語言"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"說明與意見回饋"</string>
+    <string name="select_language" msgid="5709487854987078367">"語言"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"再次輕觸即可儲存"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"輕觸這裡即可儲存"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"可用的字典"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"鍵盤主題"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"切換帳戶"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"尚未選取帳戶"</string>
+    <string name="account_selected" msgid="2846876462199625974">"目前使用的帳戶是 <xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"確定"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"取消"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"登出"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"選取要使用的帳戶"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"英文 (英國)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"英文 (美國)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"西班牙文 (美國)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"印度英文"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"塞爾維亞文 (拉丁文)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"英文 (英國) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"英文 (美國) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"西班牙文 (美國) (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"印度英文 (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"塞爾維亞文 (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (傳統)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (斯拉夫文)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (拉丁文)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (精簡)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"無語言 (字母)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"字母 (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"字母 (QWERTZ)"</string>
@@ -108,16 +122,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"字母 (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"字母 (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"表情符號"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"鍵盤主題"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"自訂輸入樣式"</string>
     <string name="add_style" msgid="6163126614514489951">"新增樣式"</string>
     <string name="add" msgid="8299699805688017798">"新增"</string>
@@ -129,14 +134,9 @@
     <string name="enable" msgid="5031294444630523247">"啟用"</string>
     <string name="not_now" msgid="6172462888202790482">"暫時不要"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"已存在相同的輸入樣式：<xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"按鍵長按延遲"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"按鍵震動持續時間"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"按鍵音量"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"讀取外部字典檔案"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"「下載」資料夾中沒有任何字典檔案"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"選取要安裝的字典檔案"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"確定要安裝這個<xliff:g id="LANGUAGE_NAME">%s</xliff:g>檔案嗎？"</string>
-    <string name="error" msgid="8940763624668513648">"發生錯誤"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"按鍵長按延遲"</string>
     <string name="button_default" msgid="3988017840431881491">"預設"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"歡迎使用 <xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"含滑行輸入功能"</string>
@@ -154,8 +154,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"現在，您可以在自己喜愛的所有應用程式中使用「<xliff:g id="APPLICATION_NAME">%s</xliff:g>」輸入文字。"</string>
     <string name="setup_step3_action" msgid="600879797256942259">"設定其他語言"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"完成"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"顯示應用程式圖示"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"在啟動器中顯示應用程式圖示"</string>
     <string name="app_name" msgid="6320102637491234792">"字典提供者"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"字典提供者"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"字典服務"</string>
diff --git a/java/res/values-zu/strings-emoji-descriptions.xml b/java/res/values-zu/strings-emoji-descriptions.xml
new file mode 100644
index 0000000..d8f81bd
--- /dev/null
+++ b/java/res/values-zu/strings-emoji-descriptions.xml
@@ -0,0 +1,851 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+ -->
+
+<!-- 
+    These Emoji symbols are unsupported by TTS.
+    TODO: Remove this file when TTS/TalkBack support these Emoji symbols.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="spoken_emoji_00A9" msgid="2859822817116803638">"Uphawu le-copyright"</string>
+    <string name="spoken_emoji_00AE" msgid="7708335454134589027">"Uphawu olubhalisiwe"</string>
+    <string name="spoken_emoji_203C" msgid="153340916701508663">"Isababazo kabili"</string>
+    <string name="spoken_emoji_2049" msgid="4877256448299555371">"Uphawu lesibabazo mbuzo"</string>
+    <string name="spoken_emoji_2122" msgid="9188440722954720429">"Uphawu lokuhweba"</string>
+    <string name="spoken_emoji_2139" msgid="9114342638917304327">"Umthombo wolwazi"</string>
+    <string name="spoken_emoji_2194" msgid="8055202727034946680">"Umcibisholo ongakwesokunxele-nakwesokudla"</string>
+    <string name="spoken_emoji_2195" msgid="8028122253301087407">"Umcibisholo obheke phezulu naphansi"</string>
+    <string name="spoken_emoji_2196" msgid="4019164898967854363">"Umcibisholo wenyakatho nentshonalanga"</string>
+    <string name="spoken_emoji_2197" msgid="4255723717709017801">"Umcibisholo wenyakatho nempumalanga"</string>
+    <string name="spoken_emoji_2198" msgid="1452063451313622090">"Umcibisholo weningizimu nempumalanga"</string>
+    <string name="spoken_emoji_2199" msgid="6942722693368807849">"Umcibisholo weningizimu nentshonalanga"</string>
+    <string name="spoken_emoji_21A9" msgid="5204750172335111188">"Umcibisholo ongakwesokunxele nehhuku"</string>
+    <string name="spoken_emoji_21AA" msgid="3950259884359247006">"Umcibisholo ongakwesokudla nehhuku"</string>
+    <string name="spoken_emoji_231A" msgid="6751448803233874993">"Buka"</string>
+    <string name="spoken_emoji_231B" msgid="5956428809948426182">"Ingilasi yesikhathi"</string>
+    <string name="spoken_emoji_23E9" msgid="4022497733535162237">"Unxande okabili omnyama obheke ngakwesokudla"</string>
+    <string name="spoken_emoji_23EA" msgid="2251396938087774944">"Unxande okabili omnyama obheke ngakwesokunxele"</string>
+    <string name="spoken_emoji_23EB" msgid="3746885195641491865">"Unxande okabili omnyama obheke ngaphezulu"</string>
+    <string name="spoken_emoji_23EC" msgid="7852372752901163416">"Unxande okabili omnyama obheke ngezansi"</string>
+    <string name="spoken_emoji_23F0" msgid="8474219588750627870">"Iwashi le-alamu"</string>
+    <string name="spoken_emoji_23F3" msgid="166900119581024371">"Ingilasi yesikhathi egeleza isihlabathi"</string>
+    <string name="spoken_emoji_24C2" msgid="3948348737566038470">"Igama elingu-m lofeleba oyingiliziwe"</string>
+    <string name="spoken_emoji_25AA" msgid="7865181015100227349">"Isikwele esincane esimnyama"</string>
+    <string name="spoken_emoji_25AB" msgid="6446532820937381457">"Isikwele esincane esimhlophe"</string>
+    <string name="spoken_emoji_25B6" msgid="2423897708496040947">"Unxande omnyama obheke ngakwesokudla"</string>
+    <string name="spoken_emoji_25C0" msgid="3595083440074484934">"Unxande omnyama obheke ngakwesokunxele"</string>
+    <string name="spoken_emoji_25FB" msgid="4838691986881215419">"Isikwele esimhlophe esimaphakathi"</string>
+    <string name="spoken_emoji_25FC" msgid="7008859564991191050">"Isikwele esimnyama esimaphakathi"</string>
+    <string name="spoken_emoji_25FD" msgid="7673439755069217479">"Isikwele esincane esimaphakathi esimhlophe"</string>
+    <string name="spoken_emoji_25FE" msgid="6782214109919768923">"Isikwele esincane esimaphakathi esimnyama"</string>
+    <string name="spoken_emoji_2600" msgid="2272722634618990413">"Ilanga elimnyama elinemisebe"</string>
+    <string name="spoken_emoji_2601" msgid="6205136889311537150">"Ifu"</string>
+    <string name="spoken_emoji_260E" msgid="8670395193046424238">"Ucingo olumnyama"</string>
+    <string name="spoken_emoji_2611" msgid="4530550203347054611">"Ibhokisi lokuvota nesheke"</string>
+    <string name="spoken_emoji_2614" msgid="1612791247861229500">"Isambulela esinamaconsi emvula"</string>
+    <string name="spoken_emoji_2615" msgid="3320562382424018588">"Isiphuzo esishisayo"</string>
+    <string name="spoken_emoji_261D" msgid="4690554173549768467">"Inkomba emhlophe ebheke phezulu"</string>
+    <string name="spoken_emoji_263A" msgid="3170094381521989300">"Ubuso obumhlophe obumomothekayo"</string>
+    <string name="spoken_emoji_2648" msgid="4621241062667020673">"I-Aries"</string>
+    <string name="spoken_emoji_2649" msgid="7694461245947059086">"I-Taurus"</string>
+    <string name="spoken_emoji_264A" msgid="1258074605878705030">"I-Gemini"</string>
+    <string name="spoken_emoji_264B" msgid="4409219914377810956">"I-Cancer"</string>
+    <string name="spoken_emoji_264C" msgid="6520255367817054163">"I-Leo"</string>
+    <string name="spoken_emoji_264D" msgid="1504758945499854018">"I-Virgo"</string>
+    <string name="spoken_emoji_264E" msgid="2354847104530633519">"I-Libra"</string>
+    <string name="spoken_emoji_264F" msgid="5822933280406416112">"I-Scorpius"</string>
+    <string name="spoken_emoji_2650" msgid="4832481156714796163">"I-Sagittarius"</string>
+    <string name="spoken_emoji_2651" msgid="840953134601595090">"I-Capricorn"</string>
+    <string name="spoken_emoji_2652" msgid="3586925968718775281">"I-Aquarius"</string>
+    <string name="spoken_emoji_2653" msgid="8420547731496254492">"I-Pisces"</string>
+    <string name="spoken_emoji_2660" msgid="4541170554542412536">"Isudi yesipedi esimnyama"</string>
+    <string name="spoken_emoji_2663" msgid="3669352721942285724">"Isudi yeklabhu emnyama"</string>
+    <string name="spoken_emoji_2665" msgid="6347941599683765843">"Isudi yenhliziyo emnyama"</string>
+    <string name="spoken_emoji_2666" msgid="8296769213401115999">"Isudi yedayimane elimnyama"</string>
+    <string name="spoken_emoji_2668" msgid="7063148281053820386">"Intwasanhlobo eshisayo"</string>
+    <string name="spoken_emoji_267B" msgid="21716857176812762">"Uphawu olumnyama lokusebenzisa kabusha jikelele"</string>
+    <string name="spoken_emoji_267F" msgid="8833496533226475443">"Uphawu lesihlalo sabakhubazekile"</string>
+    <string name="spoken_emoji_2693" msgid="7443148847598433088">"Ihange"</string>
+    <string name="spoken_emoji_26A0" msgid="6272635532992727510">"Uphawu lesexwayiso"</string>
+    <string name="spoken_emoji_26A1" msgid="5604749644693339145">"Uphawu lesilinganiso sikagesi esiphezulu"</string>
+    <string name="spoken_emoji_26AA" msgid="8005748091690377153">"Isiyingi esimhlophe okumaphakathi"</string>
+    <string name="spoken_emoji_26AB" msgid="1655910278422753244">"Isiyingi esimaphakathi esimnyama"</string>
+    <string name="spoken_emoji_26BD" msgid="1545218197938889737">"Ibhola lezinyawo"</string>
+    <string name="spoken_emoji_26BE" msgid="8959760533076498209">"I-Baseball"</string>
+    <string name="spoken_emoji_26C4" msgid="3045791757044255626">"Indoda yeqhwa engenalo iqhwa"</string>
+    <string name="spoken_emoji_26C5" msgid="5580129409712578639">"Ilanga ngemva kwefu"</string>
+    <string name="spoken_emoji_26CE" msgid="8963656417276062998">"I-Ophiuchus"</string>
+    <string name="spoken_emoji_26D4" msgid="2231451988209604130">"Akungenwa"</string>
+    <string name="spoken_emoji_26EA" msgid="7513319636103804907">"Isonto"</string>
+    <string name="spoken_emoji_26F2" msgid="7134115206158891037">"Umthombo"</string>
+    <string name="spoken_emoji_26F3" msgid="4912302210162075465">"Ifulegi kwimbobo"</string>
+    <string name="spoken_emoji_26F5" msgid="4766328116769075217">"Isikebhe"</string>
+    <string name="spoken_emoji_26FA" msgid="5888017494809199037">"Itende"</string>
+    <string name="spoken_emoji_26FD" msgid="2417060622927453534">"Isifutho sophethiloli"</string>
+    <string name="spoken_emoji_2702" msgid="4005741160717451912">"Izikele ezimnyama"</string>
+    <string name="spoken_emoji_2705" msgid="164605766946697759">"Uphawu lokuhlola olusindayo olumhlophe"</string>
+    <string name="spoken_emoji_2708" msgid="7153840886849268988">"Indiza"</string>
+    <string name="spoken_emoji_2709" msgid="2217319160724311369">"Imvilophi"</string>
+    <string name="spoken_emoji_270A" msgid="508347232762319473">"Ingqindi ephakanyisiwe"</string>
+    <string name="spoken_emoji_270B" msgid="6640562128327753423">"Isandla esiphakamisiwe"</string>
+    <string name="spoken_emoji_270C" msgid="1344288035704944581">"Isandla sokunqoba"</string>
+    <string name="spoken_emoji_270F" msgid="6108251586067318718">"Umsizi"</string>
+    <string name="spoken_emoji_2712" msgid="6320544535087710482">"Inibhu emnyama"</string>
+    <string name="spoken_emoji_2714" msgid="1968242800064001654">"Uphawu lokuhlola olusindayo"</string>
+    <string name="spoken_emoji_2716" msgid="511941294762977228">"U-x wokuphinda osindayo"</string>
+    <string name="spoken_emoji_2728" msgid="5650330815808691881">"Ukucwebezela"</string>
+    <string name="spoken_emoji_2733" msgid="8915809595141157327">"Izinkanyezi ezihlanganisiwe eziyisishiyagalombili"</string>
+    <string name="spoken_emoji_2734" msgid="4846583547980754332">"Inkanyezi emnyama yamaphoyinti ayisishiyagalombili"</string>
+    <string name="spoken_emoji_2744" msgid="4350636647760161042">"Iqhwa"</string>
+    <string name="spoken_emoji_2747" msgid="3718282973916474455">"Ukukhazimula"</string>
+    <string name="spoken_emoji_274C" msgid="2752145886733295314">"Uphawu lokushayisana"</string>
+    <string name="spoken_emoji_274E" msgid="4262918689871098338">"Uphawu lokushayisana lesikwele esingesihle"</string>
+    <string name="spoken_emoji_2753" msgid="6935897159942119808">"Umhlobiso wophawu lombuzo olumnyama"</string>
+    <string name="spoken_emoji_2754" msgid="7277504915105532954">"Umhlobiso wophawu lombuzo omhlophe"</string>
+    <string name="spoken_emoji_2755" msgid="6853076969826960210">"Umhlobisi wesibabazo esimhlophe"</string>
+    <string name="spoken_emoji_2757" msgid="3707907828776912174">"Uphawu lesibabazo olusindayo"</string>
+    <string name="spoken_emoji_2764" msgid="4214257843609432167">"Inhliziyo emnyama esindayo"</string>
+    <string name="spoken_emoji_2795" msgid="6563954833786162168">"Uphawu lokuhlanganisa olusindayo"</string>
+    <string name="spoken_emoji_2796" msgid="5990926508250772777">"Uphawu lokususa olusindayo"</string>
+    <string name="spoken_emoji_2797" msgid="24694184172879174">"Uphawu lokwehlukanisa olusindayo"</string>
+    <string name="spoken_emoji_27A1" msgid="3513434778263100580">"Umcibisholo ongakwesokudla omnyama"</string>
+    <string name="spoken_emoji_27B0" msgid="203395646864662198">"Umumo otshekile"</string>
+    <string name="spoken_emoji_27BF" msgid="4940514642375640510">"Umumo otshekile kabili"</string>
+    <string name="spoken_emoji_2934" msgid="9062130477982973457">"Umcibisholo obheke ngakwesokudla bese watsheka ngaphezulu"</string>
+    <string name="spoken_emoji_2935" msgid="6198710960720232074">"Umcibisholo obheke ngakwesokudla bese watsheka ngezansi"</string>
+    <string name="spoken_emoji_2B05" msgid="4813405635410707690">"Umcibisholo omnyama ongakwesokunxele"</string>
+    <string name="spoken_emoji_2B06" msgid="1223172079106250748">"Umncibisholo omnyama ongaphezulu"</string>
+    <string name="spoken_emoji_2B07" msgid="1599124424746596150">"Umcibisholo omnyama obheke phansi"</string>
+    <string name="spoken_emoji_2B1B" msgid="3461247311988501626">"Isikwele esikhulu esimnyama"</string>
+    <string name="spoken_emoji_2B1C" msgid="5793146430145248915">"Isikwele esikhulu esimhlophe"</string>
+    <string name="spoken_emoji_2B50" msgid="3850845519526950524">"Inkanyezi emaphakathi emhlophe"</string>
+    <string name="spoken_emoji_2B55" msgid="9137882158811541824">"Isiyingi esikhulu esisindayo"</string>
+    <string name="spoken_emoji_3030" msgid="4609172241893565639">"I-Wavy dash"</string>
+    <string name="spoken_emoji_303D" msgid="2545833934975907505">"Olunye uphawu lwengxenye"</string>
+    <string name="spoken_emoji_3297" msgid="928912923628973800">"Ukuhalalisa i-ideograph eyisiyingi"</string>
+    <string name="spoken_emoji_3299" msgid="3930347573693668426">"Imfihlo ye-ideograph eyisilingi"</string>
+    <string name="spoken_emoji_1F004" msgid="1705216181345894600">"Isilo esibomvu sethayili ye-Mahjong"</string>
+    <string name="spoken_emoji_1F0CF" msgid="7601493592085987866">"Ukudlala ikhadi le-joker omnyama"</string>
+    <string name="spoken_emoji_1F170" msgid="3817698686602826773">"Uhlobo legazi A"</string>
+    <string name="spoken_emoji_1F171" msgid="3684218589626650242">"Uhlobo legazi B"</string>
+    <string name="spoken_emoji_1F17E" msgid="2978809190364779029">"Uhlobo legazi O"</string>
+    <string name="spoken_emoji_1F17F" msgid="463634348668462040">"Indawo yokupaka"</string>
+    <string name="spoken_emoji_1F18E" msgid="1650705325221496768">"Uhlobo legazi AB"</string>
+    <string name="spoken_emoji_1F191" msgid="5386969264431429221">"I-CL eyisikwele"</string>
+    <string name="spoken_emoji_1F192" msgid="8324226436829162496">"Okupholile okuyisikwele"</string>
+    <string name="spoken_emoji_1F193" msgid="4731758603321515364">"Okuyisikwele kwamahhala"</string>
+    <string name="spoken_emoji_1F194" msgid="4903128609556175887">"I-ID eyisikwele"</string>
+    <string name="spoken_emoji_1F195" msgid="1433142500411060924">"Okuyisikwele okusha"</string>
+    <string name="spoken_emoji_1F196" msgid="8825160701159634202">"I-N G eyisikwele"</string>
+    <string name="spoken_emoji_1F197" msgid="7841079241554176535">"U-OK oyisikwele"</string>
+    <string name="spoken_emoji_1F198" msgid="7020298909426960622">"I-SOS eyisikwele"</string>
+    <string name="spoken_emoji_1F199" msgid="5971252667136235630">"Kuhlanganiswe nophawu lesibabazo"</string>
+    <string name="spoken_emoji_1F19A" msgid="4557270135899843959">"Okuyisikwele okumelene"</string>
+    <string name="spoken_emoji_1F201" msgid="7000490044681139002">"I-katakana eyisikwele lapha"</string>
+    <string name="spoken_emoji_1F202" msgid="8560906958695043947">"Isevisi ye-katakana eyisikwele"</string>
+    <string name="spoken_emoji_1F21A" msgid="1496435317324514033">"Inani lamahhala le-ideograph eyisikwele"</string>
+    <string name="spoken_emoji_1F22F" msgid="609797148862445402">"Isihlalo esibekiwe se-ideograph eyisikwele"</string>
+    <string name="spoken_emoji_1F232" msgid="8125716331632035820">"Ukuvinjelwa kwe-ideograph eyisikwele"</string>
+    <string name="spoken_emoji_1F233" msgid="8749401090457355028">"Isikhala se-ideography eyisikwele"</string>
+    <string name="spoken_emoji_1F234" msgid="3546951604285970768">"Ukwamukelwa kwe-ideograph eyisikwele"</string>
+    <string name="spoken_emoji_1F235" msgid="5320186982841793711">"Ukusetshenziswa ngokugcwele kwe-ideograph eyisikwele"</string>
+    <string name="spoken_emoji_1F236" msgid="879755752069393034">"I-Ideograph eyisikwele ekhokhelwe"</string>
+    <string name="spoken_emoji_1F237" msgid="6741807001205851437">"I-Ideography eyisikwele yanyanga zonke"</string>
+    <string name="spoken_emoji_1F238" msgid="5504414186438196912">"Uhlelo lokusebenza le-ideograph eyisikwele"</string>
+    <string name="spoken_emoji_1F239" msgid="1634067311597618959">"Isaphulelo se-ideograph eyisikwele"</string>
+    <string name="spoken_emoji_1F23A" msgid="3107862957630169536">"I-Ideograph eyisikwele kwezamabhizinisi"</string>
+    <string name="spoken_emoji_1F250" msgid="6586943922806727907">"Inzuzo ye-ideograph eyisiyingi"</string>
+    <string name="spoken_emoji_1F251" msgid="9099032855993346948">"Ukwamukela i-ideograph eyisiyingi"</string>
+    <string name="spoken_emoji_1F300" msgid="4720098285295840383">"Isihlwithi"</string>
+    <string name="spoken_emoji_1F301" msgid="3601962477653752974">"Nenkungu"</string>
+    <string name="spoken_emoji_1F302" msgid="3404357123421753593">"Isambulela esivaliwe"</string>
+    <string name="spoken_emoji_1F303" msgid="3899301321538188206">"Ubusuku obunezinkanyezi"</string>
+    <string name="spoken_emoji_1F304" msgid="2767148930689050040">"Ukuphuma kwelanga ezintabeni"</string>
+    <string name="spoken_emoji_1F305" msgid="9165812924292061196">"Ukuphuma kwelanga"</string>
+    <string name="spoken_emoji_1F306" msgid="5889294736109193104">"Ukubonakala kwedolobha lapho kuhlwa"</string>
+    <string name="spoken_emoji_1F307" msgid="2714290867291163713">"Ukushona kwelanga emabhilidini"</string>
+    <string name="spoken_emoji_1F308" msgid="688704703985173377">"Uthingo lwenkosazane"</string>
+    <string name="spoken_emoji_1F309" msgid="6217981957992313528">"Ibhuloho ebusuku"</string>
+    <string name="spoken_emoji_1F30A" msgid="4329309263152110893">"Igagasi lamanzi"</string>
+    <string name="spoken_emoji_1F30B" msgid="5729430693700923112">"Intabamlilo"</string>
+    <string name="spoken_emoji_1F30C" msgid="2961230863217543082">"Umthamo wezinkanyezi"</string>
+    <string name="spoken_emoji_1F30D" msgid="1113905673331547953">"Imbulunga yomhlaba waseyurophu ne-afrika"</string>
+    <string name="spoken_emoji_1F30E" msgid="5278512600749223671">"I-Amelika yembulunga yomhlaba"</string>
+    <string name="spoken_emoji_1F30F" msgid="5718144880978707493">"Imbulunga yomhlaba we-asia-australia"</string>
+    <string name="spoken_emoji_1F310" msgid="2959618582975247601">"Imbulunga ye-meridians"</string>
+    <string name="spoken_emoji_1F311" msgid="623906380914895542">"Uphawu lenyanga entsha"</string>
+    <string name="spoken_emoji_1F312" msgid="4458575672576125401">"Uphawu locwezana lenyanga egcwele"</string>
+    <string name="spoken_emoji_1F313" msgid="7599181787989497294">"Uphawu lenyanga yekota yokuqala"</string>
+    <string name="spoken_emoji_1F314" msgid="4898293184964365413">"Uphawu lenyanga egcwele ye-gibbous"</string>
+    <string name="spoken_emoji_1F315" msgid="3218117051779496309">"Uphawu lenyanga egcwele"</string>
+    <string name="spoken_emoji_1F316" msgid="2061317145777689569">"Uphawu lenyanga ye-gibbous eyehlayo"</string>
+    <string name="spoken_emoji_1F317" msgid="2721090687319539049">"Uphawu lenyanga yekota yokugcina"</string>
+    <string name="spoken_emoji_1F318" msgid="3814091755648887570">"Uphawu lenyanga yocwezana olwehlayo"</string>
+    <string name="spoken_emoji_1F319" msgid="4074299824890459465">"Ucwezana lenyanga"</string>
+    <string name="spoken_emoji_1F31A" msgid="3092285278116977103">"Inyanga entsha enobuso"</string>
+    <string name="spoken_emoji_1F31B" msgid="2658562138386927881">"Inyanga yekota yokuqala enobuso"</string>
+    <string name="spoken_emoji_1F31C" msgid="7914768515547867384">"Inyanga yekota yokugcina enobuso"</string>
+    <string name="spoken_emoji_1F31D" msgid="1925730459848297182">"Inyanga egcwele enobuso"</string>
+    <string name="spoken_emoji_1F31E" msgid="8022112382524084418">"Ilanga elinobuso"</string>
+    <string name="spoken_emoji_1F31F" msgid="1051661214137766369">"Inkanyezi ekhazimulayo"</string>
+    <string name="spoken_emoji_1F320" msgid="5450591979068216115">"Inkanyezi entwizayo"</string>
+    <string name="spoken_emoji_1F330" msgid="3115760035618051575">"I-Chestnut"</string>
+    <string name="spoken_emoji_1F331" msgid="5658888205290008691">"Isithombo"</string>
+    <string name="spoken_emoji_1F332" msgid="2935650450421165938">"Isihlahla esihlale siluhlaza"</string>
+    <string name="spoken_emoji_1F333" msgid="5898847427062482675">"Isihlahla esibunayo"</string>
+    <string name="spoken_emoji_1F334" msgid="6183375224678417894">"Isundu"</string>
+    <string name="spoken_emoji_1F335" msgid="5352418412103584941">"Umdolofiya"</string>
+    <string name="spoken_emoji_1F337" msgid="3839107352363566289">"I-Tulip"</string>
+    <string name="spoken_emoji_1F338" msgid="6389970364260468490">"Isithundu samathanduluka"</string>
+    <string name="spoken_emoji_1F339" msgid="9128891447985256151">"Irozi"</string>
+    <string name="spoken_emoji_1F33A" msgid="2025828400095233078">"I-Hibiscus"</string>
+    <string name="spoken_emoji_1F33B" msgid="8163868254348448552">"Ujikanelanga"</string>
+    <string name="spoken_emoji_1F33C" msgid="6850371206262335812">"Imbali"</string>
+    <string name="spoken_emoji_1F33D" msgid="9033484052864509610">"Indlebe yombila"</string>
+    <string name="spoken_emoji_1F33E" msgid="2540173396638444120">"Indlebe yelayisi"</string>
+    <string name="spoken_emoji_1F33F" msgid="4384823344364908558">"Isithombo"</string>
+    <string name="spoken_emoji_1F340" msgid="3494255459156499305">"I-Clover yamacembe amane"</string>
+    <string name="spoken_emoji_1F341" msgid="4581959481754990158">"Icembe le-maple"</string>
+    <string name="spoken_emoji_1F342" msgid="3119068426871821222">"Icembe eliwile"</string>
+    <string name="spoken_emoji_1F343" msgid="2663317495805149004">"Icembe eliphephezela emoyeni"</string>
+    <string name="spoken_emoji_1F344" msgid="2738517881678722159">"Inkowankowane"</string>
+    <string name="spoken_emoji_1F345" msgid="6135288642349085554">"Utamatisi"</string>
+    <string name="spoken_emoji_1F346" msgid="2075395322785406367">"I-Aubergine"</string>
+    <string name="spoken_emoji_1F347" msgid="7753453754963890571">"Amagilebhisi"</string>
+    <string name="spoken_emoji_1F348" msgid="1247076837284932788">"Ikhabe"</string>
+    <string name="spoken_emoji_1F349" msgid="5563054555180611086">"Ikhabe"</string>
+    <string name="spoken_emoji_1F34A" msgid="4688661208570160524">"I-Tangerine"</string>
+    <string name="spoken_emoji_1F34B" msgid="4335318423164185706">"Ilamuni"</string>
+    <string name="spoken_emoji_1F34C" msgid="3712827239858159474">"Ubhanana"</string>
+    <string name="spoken_emoji_1F34D" msgid="7712521967162622936">"Uphayinaphu"</string>
+    <string name="spoken_emoji_1F34E" msgid="1859466882598614228">"I-Apula elibomvu"</string>
+    <string name="spoken_emoji_1F34F" msgid="8251711032295005633">"I-Apula eliluhlaza okotshani"</string>
+    <string name="spoken_emoji_1F350" msgid="625802980159197701">"Iganandoda"</string>
+    <string name="spoken_emoji_1F351" msgid="4269460120610911895">"Ipentshisi"</string>
+    <string name="spoken_emoji_1F352" msgid="965600953360182635">"Amasheri"</string>
+    <string name="spoken_emoji_1F353" msgid="7068623879906925592">"Ijikijolo"</string>
+    <string name="spoken_emoji_1F354" msgid="45162285238888494">"I-Hamburger"</string>
+    <string name="spoken_emoji_1F355" msgid="9157587635526433283">"Ucezu le-pizza"</string>
+    <string name="spoken_emoji_1F356" msgid="2667196119149852244">"Inyama enethambo"</string>
+    <string name="spoken_emoji_1F357" msgid="8022817413851052256">"Umlenze wenkukhu"</string>
+    <string name="spoken_emoji_1F358" msgid="3042693264748036476">"Ikhekhe lelayisi"</string>
+    <string name="spoken_emoji_1F359" msgid="3988148661730121958">"Ilayisi eliyibhola"</string>
+    <string name="spoken_emoji_1F35A" msgid="1763824172198327268">"Ilayisi eliphekiwe"</string>
+    <string name="spoken_emoji_1F35B" msgid="62530406745717835">"Inani nelayisi"</string>
+    <string name="spoken_emoji_1F35C" msgid="7537756539198945509">"Isitsha sokubilisa"</string>
+    <string name="spoken_emoji_1F35D" msgid="8173523083861875196">"I-Spaghetti"</string>
+    <string name="spoken_emoji_1F35E" msgid="2935428307894662571">"Isinkwa"</string>
+    <string name="spoken_emoji_1F35F" msgid="4840297386785728443">"Amazambane athosiwe"</string>
+    <string name="spoken_emoji_1F360" msgid="4094659855684686801">"Ubhatata oyosiwe"</string>
+    <string name="spoken_emoji_1F361" msgid="6475486395784096109">"I-Dango"</string>
+    <string name="spoken_emoji_1F362" msgid="5004692577661076275">"I-Oden"</string>
+    <string name="spoken_emoji_1F363" msgid="1606603765717743806">"I-Sushi"</string>
+    <string name="spoken_emoji_1F364" msgid="6550457766169570811">"Imbaza ethosiwe"</string>
+    <string name="spoken_emoji_1F365" msgid="4963815540953316307">"Ikhekhe lenhlanzi elidizayinwe ngendlela eyaluzayo"</string>
+    <string name="spoken_emoji_1F366" msgid="7862401745277049404">"I-Asikhilimu ethambile"</string>
+    <string name="spoken_emoji_1F367" msgid="7447972978281980414">"Iqhwa eliphuciwe"</string>
+    <string name="spoken_emoji_1F368" msgid="7790003146142724913">"U-Ayisikhilimu"</string>
+    <string name="spoken_emoji_1F369" msgid="7383712944084857350">"Idonathi"</string>
+    <string name="spoken_emoji_1F36A" msgid="2726271795913042295">"Ikhukhi"</string>
+    <string name="spoken_emoji_1F36B" msgid="6342163604299875931">"Ibha yoshokholethi"</string>
+    <string name="spoken_emoji_1F36C" msgid="2168934753998218790">"Uswidi"</string>
+    <string name="spoken_emoji_1F36D" msgid="3671507903799975792">"I-Lollipop"</string>
+    <string name="spoken_emoji_1F36E" msgid="4630541402785165902">"Ukhastadi"</string>
+    <string name="spoken_emoji_1F36F" msgid="5577915387425169439">"Ibhodwe loju"</string>
+    <string name="spoken_emoji_1F370" msgid="7243244547866114951">"Okusaswidi"</string>
+    <string name="spoken_emoji_1F371" msgid="6731527040552916358">"Ibhokisi le-Bento"</string>
+    <string name="spoken_emoji_1F372" msgid="1635035323832181733">"Imbiza yokudla"</string>
+    <string name="spoken_emoji_1F373" msgid="7799289534289221045">"Ukupheka"</string>
+    <string name="spoken_emoji_1F374" msgid="5973820884987069131">"Imfoloko nommese"</string>
+    <string name="spoken_emoji_1F375" msgid="1074832087699617700">"Inkomishi engenaso isibambo"</string>
+    <string name="spoken_emoji_1F376" msgid="6499274685584852067">"Ibhodlela le-Sake nenkomishi"</string>
+    <string name="spoken_emoji_1F377" msgid="1762398562314172075">"Ingilasi yewayini"</string>
+    <string name="spoken_emoji_1F378" msgid="5528234560590117516">"Ingilasi ye-cocktail"</string>
+    <string name="spoken_emoji_1F379" msgid="790581290787943325">"Isiphuzo esinoshukela"</string>
+    <string name="spoken_emoji_1F37A" msgid="391966822450619516">"Inkomishi yobhiya"</string>
+    <string name="spoken_emoji_1F37B" msgid="9015043286465670662">"Ukuqhafaza izinkomishi zobhiya"</string>
+    <string name="spoken_emoji_1F37C" msgid="2532113819464508894">"Ibhodlela lomntwana"</string>
+    <string name="spoken_emoji_1F380" msgid="3487363857092458827">"Iribhoni"</string>
+    <string name="spoken_emoji_1F381" msgid="614180683680675444">"Isipho esigoqiwe"</string>
+    <string name="spoken_emoji_1F382" msgid="4720497171946687501">"Ikhekhe losuku lokuzalwa"</string>
+    <string name="spoken_emoji_1F383" msgid="3536505941578757623">"I-Jack-o-lantern"</string>
+    <string name="spoken_emoji_1F384" msgid="1797870204479059004">"Isihlahla sikakhisimusi"</string>
+    <string name="spoken_emoji_1F385" msgid="1754174063483626367">"Indoda yokhisimusi"</string>
+    <string name="spoken_emoji_1F386" msgid="2130445450758114746">"Iziqhumane"</string>
+    <string name="spoken_emoji_1F387" msgid="3403182563117999933">"Iziqhumane ezibanikayo"</string>
+    <string name="spoken_emoji_1F388" msgid="2903047203723251804">"Ibhamuza"</string>
+    <string name="spoken_emoji_1F389" msgid="2352830665883549388">"Umuntu oqeda ubumnandi"</string>
+    <string name="spoken_emoji_1F38A" msgid="6280428984773641322">"Ibhola le-confetti"</string>
+    <string name="spoken_emoji_1F38B" msgid="4902225837479015489">"Isihlahla se-Tanabata"</string>
+    <string name="spoken_emoji_1F38C" msgid="7623268024030989365">"Amafulegi ashayisanayo"</string>
+    <string name="spoken_emoji_1F38D" msgid="8237542796124408528">"Umhlobiso wephayini"</string>
+    <string name="spoken_emoji_1F38E" msgid="5373397476238212371">"Onodoli besi-Japanese"</string>
+    <string name="spoken_emoji_1F38F" msgid="8754091376829552844">"I-Carp streamer"</string>
+    <string name="spoken_emoji_1F390" msgid="8903307048095431374">"Ushimula"</string>
+    <string name="spoken_emoji_1F391" msgid="2134952069191911841">"Umkhosi wokubuka inyanga"</string>
+    <string name="spoken_emoji_1F392" msgid="6380405493914304737">"Isikhwama sesikole"</string>
+    <string name="spoken_emoji_1F393" msgid="6947890064872470996">"Isigqoko sokuthweswa iziqu"</string>
+    <string name="spoken_emoji_1F3A0" msgid="3572095190082826057">"Umbukiso wamahhashi"</string>
+    <string name="spoken_emoji_1F3A1" msgid="4300565511681058798">"Isondo lasepaki lokuzijabulisa"</string>
+    <string name="spoken_emoji_1F3A2" msgid="15486093912232140">"I-Roller coaster"</string>
+    <string name="spoken_emoji_1F3A3" msgid="921739319504942924">"Induku yokudoba nenhlanzi"</string>
+    <string name="spoken_emoji_1F3A4" msgid="7497596355346856950">"Imakrofoni"</string>
+    <string name="spoken_emoji_1F3A5" msgid="4290497821228183002">"Ikhamela ye-movie"</string>
+    <string name="spoken_emoji_1F3A6" msgid="26019057872319055">"Ibhayisikobho"</string>
+    <string name="spoken_emoji_1F3A7" msgid="837856608794094105">"Ihedfoni"</string>
+    <string name="spoken_emoji_1F3A8" msgid="2332260356509244587">"Iseceshana sompendi sokufaka upende"</string>
+    <string name="spoken_emoji_1F3A9" msgid="9045869366525115256">"Isigqoko esiphezulu"</string>
+    <string name="spoken_emoji_1F3AA" msgid="5728760354237132">"Itende lesekisi"</string>
+    <string name="spoken_emoji_1F3AB" msgid="1657997517193216284">"Ithikithi"</string>
+    <string name="spoken_emoji_1F3AC" msgid="4317366554314492152">"Idivayisi yokwenza ifilimu"</string>
+    <string name="spoken_emoji_1F3AD" msgid="607157286336130470">"Ukwenza ubuciko"</string>
+    <string name="spoken_emoji_1F3AE" msgid="2902308174671548150">"Igeyimu yevidiyo"</string>
+    <string name="spoken_emoji_1F3AF" msgid="5420539221790296407">"Ukushaya ngokuqondile"</string>
+    <string name="spoken_emoji_1F3B0" msgid="7440244806527891956">"Umshini wokugembula"</string>
+    <string name="spoken_emoji_1F3B1" msgid="545544382391379234">"Ama-Billiard"</string>
+    <string name="spoken_emoji_1F3B2" msgid="8302262034774787493">"Igeyimu yokufa"</string>
+    <string name="spoken_emoji_1F3B3" msgid="5180870610771027520">"I-Bowling"</string>
+    <string name="spoken_emoji_1F3B4" msgid="4723852033266071564">"Imbali yokudlala amakhadi"</string>
+    <string name="spoken_emoji_1F3B5" msgid="1998470239850548554">"Inothi yomculo"</string>
+    <string name="spoken_emoji_1F3B6" msgid="3827730457113941705">"Amanothi omculo amaningi"</string>
+    <string name="spoken_emoji_1F3B7" msgid="5503403099445042180">"Icilongo"</string>
+    <string name="spoken_emoji_1F3B8" msgid="3985658156795011430">"Isiginci"</string>
+    <string name="spoken_emoji_1F3B9" msgid="5596295757967881451">"Ikhibhodi yomculo"</string>
+    <string name="spoken_emoji_1F3BA" msgid="4284064120340683558">"Ithrampethi"</string>
+    <string name="spoken_emoji_1F3BB" msgid="2856598510069988745">"Ivayolini"</string>
+    <string name="spoken_emoji_1F3BC" msgid="1608424748821446230">"Isikolo somculo"</string>
+    <string name="spoken_emoji_1F3BD" msgid="5490786111375627777">"Ihembe lokugijima elinebhande"</string>
+    <string name="spoken_emoji_1F3BE" msgid="1851613105691627931">"Irakhethi yethenisi nebhola"</string>
+    <string name="spoken_emoji_1F3BF" msgid="6862405997423247921">"Ukusheleleza eqhweni nezicathulo zokusheleleza"</string>
+    <string name="spoken_emoji_1F3C0" msgid="7421420756115104085">"I-Basketball ne-hoop"</string>
+    <string name="spoken_emoji_1F3C1" msgid="6926537251677319922">"Ifulegi lemibala eminingi"</string>
+    <string name="spoken_emoji_1F3C2" msgid="5708596929237987082">"Ibhodi lokusheleleza eqhweni"</string>
+    <string name="spoken_emoji_1F3C3" msgid="5850982999510115824">"Umgijimi"</string>
+    <string name="spoken_emoji_1F3C4" msgid="8468355585994639838">"Umtshuzi"</string>
+    <string name="spoken_emoji_1F3C6" msgid="9094474706847545409">"Indondo"</string>
+    <string name="spoken_emoji_1F3C7" msgid="8172206200368370116">"Umjaho wamahhashi"</string>
+    <string name="spoken_emoji_1F3C8" msgid="5619171461277597709">"Ibhola lase-America"</string>
+    <string name="spoken_emoji_1F3C9" msgid="6371294008765871043">"Ibhola lombhoxo"</string>
+    <string name="spoken_emoji_1F3CA" msgid="130977831787806932">"Umbhukudi"</string>
+    <string name="spoken_emoji_1F3E0" msgid="6277213201655811842">"Isakhiwo sendlu"</string>
+    <string name="spoken_emoji_1F3E1" msgid="233476176077538885">"Indlu enengadi"</string>
+    <string name="spoken_emoji_1F3E2" msgid="919736380093964570">"Ibhilidi lehhovisi"</string>
+    <string name="spoken_emoji_1F3E3" msgid="6177606081825094184">"Iposi lase-Japanese"</string>
+    <string name="spoken_emoji_1F3E4" msgid="717377871070970293">"Iposi lase-European"</string>
+    <string name="spoken_emoji_1F3E5" msgid="1350532500431776780">"Isibhedlela"</string>
+    <string name="spoken_emoji_1F3E6" msgid="342132788513806214">"Ibhange"</string>
+    <string name="spoken_emoji_1F3E7" msgid="6322352038284944265">"Umshini ozenzakalelayo womthengisi"</string>
+    <string name="spoken_emoji_1F3E8" msgid="5864918444350599907">"Ihotela"</string>
+    <string name="spoken_emoji_1F3E9" msgid="7830416185375326938">"Ihotela lothando"</string>
+    <string name="spoken_emoji_1F3EA" msgid="5081084413084360479">"Isitolo esiphethe zonke izinto"</string>
+    <string name="spoken_emoji_1F3EB" msgid="7010966528205150525">"Isikole"</string>
+    <string name="spoken_emoji_1F3EC" msgid="4845978861878295154">"Isitolo somnyango"</string>
+    <string name="spoken_emoji_1F3ED" msgid="3980316226665215370">"Imboni"</string>
+    <string name="spoken_emoji_1F3EE" msgid="1253964276770550248">"I-Izakaya lantern"</string>
+    <string name="spoken_emoji_1F3EF" msgid="1128975573507389883">"Inqaba yesi-Japanese"</string>
+    <string name="spoken_emoji_1F3F0" msgid="1544632297502291578">"Inqaba yesi-European"</string>
+    <string name="spoken_emoji_1F400" msgid="2063034795679578294">"Igundane"</string>
+    <string name="spoken_emoji_1F401" msgid="6736421616217369594">"Igundane"</string>
+    <string name="spoken_emoji_1F402" msgid="7276670995895485604">"Inkabi"</string>
+    <string name="spoken_emoji_1F403" msgid="8045709541897118928">"Izinyathi"</string>
+    <string name="spoken_emoji_1F404" msgid="5240777285676662335">"Inkomo"</string>
+    <string name="spoken_emoji_1F406" msgid="5163461930159540018">"Ingwe"</string>
+    <string name="spoken_emoji_1F407" msgid="6905370221172708160">"Unogwaja"</string>
+    <string name="spoken_emoji_1F408" msgid="1362164550508207284">"Ikati"</string>
+    <string name="spoken_emoji_1F409" msgid="8476130983168866013">"Isilo"</string>
+    <string name="spoken_emoji_1F40A" msgid="1149626786411545043">"Ingwenya"</string>
+    <string name="spoken_emoji_1F40B" msgid="5199104921208397643">"Umkhomo"</string>
+    <string name="spoken_emoji_1F40C" msgid="2704006052881702675">"Umnenke"</string>
+    <string name="spoken_emoji_1F40D" msgid="8648186663643157522">"Inyoka"</string>
+    <string name="spoken_emoji_1F40E" msgid="7219137467573327268">"Ihhashi"</string>
+    <string name="spoken_emoji_1F40F" msgid="7834336676729040395">"Inyamazane yenduna"</string>
+    <string name="spoken_emoji_1F410" msgid="8686765722255775031">"Imbuzi"</string>
+    <string name="spoken_emoji_1F411" msgid="3585715397876383525">"Imvu"</string>
+    <string name="spoken_emoji_1F412" msgid="4924794582980077838">"Inkawu"</string>
+    <string name="spoken_emoji_1F413" msgid="1460475310405677377">"Iqhude"</string>
+    <string name="spoken_emoji_1F414" msgid="5857296282631892219">"Inkukhu"</string>
+    <string name="spoken_emoji_1F415" msgid="5920041074892949527">"Inja"</string>
+    <string name="spoken_emoji_1F416" msgid="4362403392912540286">"Ingulube"</string>
+    <string name="spoken_emoji_1F417" msgid="6836978415840795128">"Izingulube"</string>
+    <string name="spoken_emoji_1F418" msgid="7926161463897783691">"Indlovu"</string>
+    <string name="spoken_emoji_1F419" msgid="1055233959755784186">"Ingwane"</string>
+    <string name="spoken_emoji_1F41A" msgid="5195666556511558060">"I-Shell Spiral"</string>
+    <string name="spoken_emoji_1F41B" msgid="7652480167465557832">"Imbungulu"</string>
+    <string name="spoken_emoji_1F41C" msgid="1123461148697574239">"Intuthwane"</string>
+    <string name="spoken_emoji_1F41D" msgid="718579308764058851">"Inyosi"</string>
+    <string name="spoken_emoji_1F41E" msgid="6766305509608115467">"Omanqulwane"</string>
+    <string name="spoken_emoji_1F41F" msgid="1207261298343160838">"Inhlanzi"</string>
+    <string name="spoken_emoji_1F420" msgid="1041145003133609221">"Inhlanzi yasendaweni eshisayo"</string>
+    <string name="spoken_emoji_1F421" msgid="1748378324417438751">"I-Blowfish"</string>
+    <string name="spoken_emoji_1F422" msgid="4106724877523329148">"Ufudu"</string>
+    <string name="spoken_emoji_1F423" msgid="4077407945958691907">"Ukuchamisela ichwane"</string>
+    <string name="spoken_emoji_1F424" msgid="6911326019270172283">"Ichwane"</string>
+    <string name="spoken_emoji_1F425" msgid="5466514196557885577">"Ichwane elibheke ngaphambili"</string>
+    <string name="spoken_emoji_1F426" msgid="2163979138772892755">"Inyoni"</string>
+    <string name="spoken_emoji_1F427" msgid="3585670324511212961">"Ihlengethwa"</string>
+    <string name="spoken_emoji_1F428" msgid="7955440808647898579">"I-Koala"</string>
+    <string name="spoken_emoji_1F429" msgid="5028269352809819035">"Uhlobo ou"</string>
+    <string name="spoken_emoji_1F42A" msgid="4681926706404032484">"Ikamela le-Dromedary"</string>
+    <string name="spoken_emoji_1F42B" msgid="2725166074981558322">"Ikamela le-Bactrian"</string>
+    <string name="spoken_emoji_1F42C" msgid="6764791873413727085">"Ihlengethwa"</string>
+    <string name="spoken_emoji_1F42D" msgid="1033643138546864251">"Ubuso begundane"</string>
+    <string name="spoken_emoji_1F42E" msgid="8099223337120508820">"Ubuso benkomo"</string>
+    <string name="spoken_emoji_1F42F" msgid="2104743989330781572">"Ingwe"</string>
+    <string name="spoken_emoji_1F430" msgid="525492897063150160">"Ubuso bonogwaja"</string>
+    <string name="spoken_emoji_1F431" msgid="6051358666235016851">"Ubuso bekati"</string>
+    <string name="spoken_emoji_1F432" msgid="7698001871193018305">"Ubuso besilo"</string>
+    <string name="spoken_emoji_1F433" msgid="3762356053512899326">"Umkhomo otshuzayo"</string>
+    <string name="spoken_emoji_1F434" msgid="3619943222159943226">"Ubuso behhashi"</string>
+    <string name="spoken_emoji_1F435" msgid="59199202683252958">"Ubuso bonogwaja"</string>
+    <string name="spoken_emoji_1F436" msgid="340544719369009828">"Ubuso benja"</string>
+    <string name="spoken_emoji_1F437" msgid="1219818379784982585">"Ubuso bengulube"</string>
+    <string name="spoken_emoji_1F438" msgid="9128124743321008210">"Ubuso bexoxo"</string>
+    <string name="spoken_emoji_1F439" msgid="1424161319554642266">"Ubuso be-hamster"</string>
+    <string name="spoken_emoji_1F43A" msgid="6727645488430385584">"Ubuso bempisi"</string>
+    <string name="spoken_emoji_1F43B" msgid="5397170068392865167">"Ubuso bebhele"</string>
+    <string name="spoken_emoji_1F43C" msgid="2715995734367032431">"Ubuso be-Panda"</string>
+    <string name="spoken_emoji_1F43D" msgid="6005480717951776597">"Ikhala lengulube"</string>
+    <string name="spoken_emoji_1F43E" msgid="8917626103219080547">"Imikhondo yesidladla"</string>
+    <string name="spoken_emoji_1F440" msgid="7144338258163384433">"Amehlo"</string>
+    <string name="spoken_emoji_1F442" msgid="1905515392292676124">"Indlebe"</string>
+    <string name="spoken_emoji_1F443" msgid="1491504447758933115">"Ikhala"</string>
+    <string name="spoken_emoji_1F444" msgid="3654613047946080332">"Umlomo"</string>
+    <string name="spoken_emoji_1F445" msgid="7024905244040509204">"Ulimi"</string>
+    <string name="spoken_emoji_1F446" msgid="2150365643636471745">"Okumhlophe okubheke inkomba yesandla sasemuva"</string>
+    <string name="spoken_emoji_1F447" msgid="8794022344940891388">"Okumhlophe okuphasni okubheke inkomba yesandla sasemuva"</string>
+    <string name="spoken_emoji_1F448" msgid="3261812959215550650">"Okumhlophe kwesokunxele okubheke inkomba yesandla sasemuva"</string>
+    <string name="spoken_emoji_1F449" msgid="4764447975177805991">"Okumhlophe kwesokudla okubheke inkomba yesandla sasemuva"</string>
+    <string name="spoken_emoji_1F44A" msgid="7197417095486424841">"Uphawu lwesandla esiyingqindi"</string>
+    <string name="spoken_emoji_1F44B" msgid="1975968945250833117">"Uphawu lwesandla esiphephezelayo"</string>
+    <string name="spoken_emoji_1F44C" msgid="3185919567897876562">"Uphawu lwesandla esibonisa ukuthi kulungile"</string>
+    <string name="spoken_emoji_1F44D" msgid="6182553970602667815">"Uphawu lokushaphu"</string>
+    <string name="spoken_emoji_1F44E" msgid="8030851867365111809">"Uphawu lokungekho shaphu"</string>
+    <string name="spoken_emoji_1F44F" msgid="5148753662268213389">"Uphawu lokushaya izandla"</string>
+    <string name="spoken_emoji_1F450" msgid="1012021072085157054">"Uphawu lwezandla ezivulekile"</string>
+    <string name="spoken_emoji_1F451" msgid="8257466714629051320">"Umqhele"</string>
+    <string name="spoken_emoji_1F452" msgid="4567394011149905466">"Isigqoko sowesifazane"</string>
+    <string name="spoken_emoji_1F453" msgid="5978410551173163010">"Izibuko zamehlo"</string>
+    <string name="spoken_emoji_1F454" msgid="348469036193323252">"Uthayi"</string>
+    <string name="spoken_emoji_1F455" msgid="5665118831861433578">"Isikibha"</string>
+    <string name="spoken_emoji_1F456" msgid="1890991330923356408">"Obhokhathi"</string>
+    <string name="spoken_emoji_1F457" msgid="3904310482655702620">"Ingubo"</string>
+    <string name="spoken_emoji_1F458" msgid="5704243858031107692">"I-Kimono"</string>
+    <string name="spoken_emoji_1F459" msgid="3553148747050035251">"Ibhikhini"</string>
+    <string name="spoken_emoji_1F45A" msgid="1389654639484716101">"Izingubo zabesifazane"</string>
+    <string name="spoken_emoji_1F45B" msgid="1113293170254222904">"Isikhwama semali"</string>
+    <string name="spoken_emoji_1F45C" msgid="3410257778598006936">"Isikhwama"</string>
+    <string name="spoken_emoji_1F45D" msgid="812176504300064819">"Isikhwama esincane"</string>
+    <string name="spoken_emoji_1F45E" msgid="2901741399934723562">"Izicathulo zabesilisa"</string>
+    <string name="spoken_emoji_1F45F" msgid="6828566359287798863">"Izicathulo zabadlali"</string>
+    <string name="spoken_emoji_1F460" msgid="305863879170420855">"Isicathulo sesithende esiphezulu"</string>
+    <string name="spoken_emoji_1F461" msgid="5160493217831417630">"Izicathulo ezivulekile zabesifazane"</string>
+    <string name="spoken_emoji_1F462" msgid="1722897795554863734">"Amabhuthi abesifazane"</string>
+    <string name="spoken_emoji_1F463" msgid="5850772903593010699">"Izinyathelo"</string>
+    <string name="spoken_emoji_1F464" msgid="1228335905487734913">"Isithombe esibonisa ikhanda namahlombe"</string>
+    <string name="spoken_emoji_1F465" msgid="4461307702499679879">"Isithombe esibonisa ikhanda namahlombe"</string>
+    <string name="spoken_emoji_1F466" msgid="1938873085514108889">"Umfana"</string>
+    <string name="spoken_emoji_1F467" msgid="8237080594860144998">"Intombazane"</string>
+    <string name="spoken_emoji_1F468" msgid="6081300722526675382">"Indoda"</string>
+    <string name="spoken_emoji_1F469" msgid="1090140923076108158">"Owesifazane"</string>
+    <string name="spoken_emoji_1F46A" msgid="5063570981942606595">"Umndeni"</string>
+    <string name="spoken_emoji_1F46B" msgid="6795882374287327952">"Indoda nowesifazane ababambene izandla"</string>
+    <string name="spoken_emoji_1F46C" msgid="6844464165783964495">"Amadoda amabili abambene izandla"</string>
+    <string name="spoken_emoji_1F46D" msgid="2316773068014053180">"Abesifazane ababili ababambene izandla"</string>
+    <string name="spoken_emoji_1F46E" msgid="5897625605860822401">"Ihhovisi"</string>
+    <string name="spoken_emoji_1F46F" msgid="7716871657717641490">"Owesifazane onezindlebe ezindizayo"</string>
+    <string name="spoken_emoji_1F470" msgid="6409995400510338892">"Umakoti ofake umgubuzelo"</string>
+    <string name="spoken_emoji_1F471" msgid="3058247860441670806">"Umuntu onezinwele ezimhloshana"</string>
+    <string name="spoken_emoji_1F472" msgid="3928854667819339142">"Indoda ene-gua pi mao"</string>
+    <string name="spoken_emoji_1F473" msgid="5921952095808988381">"Indoda enomshuqulo"</string>
+    <string name="spoken_emoji_1F474" msgid="1082237499496725183">"Indoda esekhulile"</string>
+    <string name="spoken_emoji_1F475" msgid="7280323988642212761">"Owesifazane osekhulile"</string>
+    <string name="spoken_emoji_1F476" msgid="4713322657821088296">"Umntwana"</string>
+    <string name="spoken_emoji_1F477" msgid="2197036131029221370">"Isisebenzi sezokwakha"</string>
+    <string name="spoken_emoji_1F478" msgid="7245521193493488875">"Inkosazana"</string>
+    <string name="spoken_emoji_1F479" msgid="6876475321015553972">"Isilwane esisabekayo sesi-Japanese"</string>
+    <string name="spoken_emoji_1F47A" msgid="3900813633102703571">"Isichwe sesi-Japanese"</string>
+    <string name="spoken_emoji_1F47B" msgid="2608250873194079390">"Isipoki"</string>
+    <string name="spoken_emoji_1F47C" msgid="3838699131276537421">"Ingelosi yomntwana"</string>
+    <string name="spoken_emoji_1F47D" msgid="2874077455888369538">"I-Alien esemkhathini"</string>
+    <string name="spoken_emoji_1F47E" msgid="3642607168625579507">"I-Alien esabekayo"</string>
+    <string name="spoken_emoji_1F47F" msgid="441605977269926252">"Idemoni"</string>
+    <string name="spoken_emoji_1F480" msgid="3696253485164878739">"Ukhakhayi"</string>
+    <string name="spoken_emoji_1F481" msgid="320408708521966893">"Umuntu wendawo yosizo"</string>
+    <string name="spoken_emoji_1F482" msgid="3424354860245608949">"Ibutho"</string>
+    <string name="spoken_emoji_1F483" msgid="3221113594843849083">"Umdansi"</string>
+    <string name="spoken_emoji_1F484" msgid="7348014979080444885">"Iluji"</string>
+    <string name="spoken_emoji_1F485" msgid="6133507975565116339">"Ipholishi yenzipho"</string>
+    <string name="spoken_emoji_1F486" msgid="9085459968247394155">"Ukubhucunga ubuso"</string>
+    <string name="spoken_emoji_1F487" msgid="1479113637259592150">"Ukugunda izinwele"</string>
+    <string name="spoken_emoji_1F488" msgid="6922559285234100252">"Uphawu lasendaweni yokugunda"</string>
+    <string name="spoken_emoji_1F489" msgid="8114863680950147305">"Isichatha"</string>
+    <string name="spoken_emoji_1F48A" msgid="8526843630145963032">"Iphilisi"</string>
+    <string name="spoken_emoji_1F48B" msgid="2538528967897640292">"Uphawu lokuqabula"</string>
+    <string name="spoken_emoji_1F48C" msgid="1681173271652890232">"Incwadi yothando"</string>
+    <string name="spoken_emoji_1F48D" msgid="8259886164999042373">"Khalisa"</string>
+    <string name="spoken_emoji_1F48E" msgid="8777981696011111101">"Itshe eliyigugu"</string>
+    <string name="spoken_emoji_1F48F" msgid="741593675183677907">"Qabula"</string>
+    <string name="spoken_emoji_1F490" msgid="4482549128959806736">"Umqulu wezimbali"</string>
+    <string name="spoken_emoji_1F491" msgid="2305245307882441500">"Izithandani ezinenhliziyo"</string>
+    <string name="spoken_emoji_1F492" msgid="3884119934804475732">"Umshado"</string>
+    <string name="spoken_emoji_1F493" msgid="1208828371565525121">"Inhliziyo eshayayo"</string>
+    <string name="spoken_emoji_1F494" msgid="6198876398509338718">"Inhliziyo ephukile"</string>
+    <string name="spoken_emoji_1F495" msgid="9206202744967130919">"Izinhliziyo ezimbili"</string>
+    <string name="spoken_emoji_1F496" msgid="5436953041732207775">"Inhliziyo ekhazimulayo"</string>
+    <string name="spoken_emoji_1F497" msgid="7285142863951448473">"Inhliziyo ekhulayo"</string>
+    <string name="spoken_emoji_1F498" msgid="7940131245037575715">"Inhliziyo enomcibisholo"</string>
+    <string name="spoken_emoji_1F499" msgid="4453235040265550009">"Inhliziyo eluhlaza okwesibhakabha"</string>
+    <string name="spoken_emoji_1F49A" msgid="6262178648366971405">"Inhliziyo eluhlaza okotshani"</string>
+    <string name="spoken_emoji_1F49B" msgid="8085384999750714368">"Inhliziyo eliphuzi"</string>
+    <string name="spoken_emoji_1F49C" msgid="453829540120898698">"Inhliziyo ebumsomi"</string>
+    <string name="spoken_emoji_1F49D" msgid="3460534750224161888">"Inhliziyo eneribhoni"</string>
+    <string name="spoken_emoji_1F49E" msgid="4490636226072523867">"Izinhliziyo ezijikelezayo"</string>
+    <string name="spoken_emoji_1F49F" msgid="2059319756421226336">"Umhlobiso wenhliziyo"</string>
+    <string name="spoken_emoji_1F4A0" msgid="1954850380550212038">"Umumo wedayimane onechashazi ngaphakathi"</string>
+    <string name="spoken_emoji_1F4A1" msgid="403137413540909021">"Igilobhu yogesi yokukhanyisa"</string>
+    <string name="spoken_emoji_1F4A2" msgid="2604192053295622063">"Uphawu lentukuthelo"</string>
+    <string name="spoken_emoji_1F4A3" msgid="6378351742957821735">"Ibhomu"</string>
+    <string name="spoken_emoji_1F4A4" msgid="7217736258870346625">"Uphawu lokulala"</string>
+    <string name="spoken_emoji_1F4A5" msgid="5401995723541239858">"Uphawu lokushayisana"</string>
+    <string name="spoken_emoji_1F4A6" msgid="3837802182716483848">"Uphawu lokukhipha umjuluko"</string>
+    <string name="spoken_emoji_1F4A7" msgid="5718438987757885141">"Iconsi"</string>
+    <string name="spoken_emoji_1F4A8" msgid="4472108229720006377">"Uphawu lodwi"</string>
+    <string name="spoken_emoji_1F4A9" msgid="1240958472788430032">"Inqwaba yendle"</string>
+    <string name="spoken_emoji_1F4AA" msgid="8427525538635146416">"Izinkonyane ezigobile"</string>
+    <string name="spoken_emoji_1F4AB" msgid="5484114759939427459">"Uphawu lwesiyezi"</string>
+    <string name="spoken_emoji_1F4AC" msgid="5571196638219612682">"Ibhamuza lenkulumo"</string>
+    <string name="spoken_emoji_1F4AD" msgid="353174619257798652">"Ibhamuza lomncabango"</string>
+    <string name="spoken_emoji_1F4AE" msgid="1223142786927162641">"Imbali emhlophe"</string>
+    <string name="spoken_emoji_1F4AF" msgid="3526278354452138397">"Uphawu lamaphoyinti ayikhulu"</string>
+    <string name="spoken_emoji_1F4B0" msgid="4124102195175124156">"Isikhwama semali"</string>
+    <string name="spoken_emoji_1F4B1" msgid="8339494003418572905">"Ukushintshwa kohlobo lemali"</string>
+    <string name="spoken_emoji_1F4B2" msgid="3179159430187243132">"Uphawu lwedola esindayo"</string>
+    <string name="spoken_emoji_1F4B3" msgid="5375412518221759596">"Ikhadi lesikweletu"</string>
+    <string name="spoken_emoji_1F4B4" msgid="1068592463669453204">"Uphawu lemali ye-yen"</string>
+    <string name="spoken_emoji_1F4B5" msgid="1426708699891832564">"Imali enophawu ledola"</string>
+    <string name="spoken_emoji_1F4B6" msgid="8289249930736444837">"Uphawu lemali ye-euro"</string>
+    <string name="spoken_emoji_1F4B7" msgid="5245100496860739429">"Uphawu lemali yephawundi"</string>
+    <string name="spoken_emoji_1F4B8" msgid="4401099580477164440">"Imali enamaphiko"</string>
+    <string name="spoken_emoji_1F4B9" msgid="647509393536679903">"Ishadi elinomkhuba obheke phezulu nophawu le-yen"</string>
+    <string name="spoken_emoji_1F4BA" msgid="1269737854891046321">"Isihlalo"</string>
+    <string name="spoken_emoji_1F4BB" msgid="6252883563347816451">"Ikhompyutha yokomuntu siqu"</string>
+    <string name="spoken_emoji_1F4BC" msgid="6182597732218446206">"Isikhwama"</string>
+    <string name="spoken_emoji_1F4BD" msgid="5820961044768829176">"Idiski encane"</string>
+    <string name="spoken_emoji_1F4BE" msgid="4754542485835379808">"Iflophidiski"</string>
+    <string name="spoken_emoji_1F4BF" msgid="2237481756984721795">"Idiski ebonakalayo"</string>
+    <string name="spoken_emoji_1F4C0" msgid="491582501089694461">"I-DVD"</string>
+    <string name="spoken_emoji_1F4C1" msgid="6645461382494158111">"Ifolda yefayela"</string>
+    <string name="spoken_emoji_1F4C2" msgid="8095638715523765338">"Vula ifolda yefayela"</string>
+    <string name="spoken_emoji_1F4C3" msgid="3727274466173970142">"Ikhasi eligoqekile"</string>
+    <string name="spoken_emoji_1F4C4" msgid="4382570710795501612">"Ikhasi elibheke phezulu"</string>
+    <string name="spoken_emoji_1F4C5" msgid="8693944622627762487">"Ikhalenda"</string>
+    <string name="spoken_emoji_1F4C6" msgid="8469908708708424640">"Ikhalenda yokukhipha"</string>
+    <string name="spoken_emoji_1F4C7" msgid="2665313547987324495">"Inkomba yekhadi"</string>
+    <string name="spoken_emoji_1F4C8" msgid="8007686702282833600">"Ishadi enomkhuba obheke phezulu"</string>
+    <string name="spoken_emoji_1F4C9" msgid="2271951411192893684">"Ishadi elinomkhuba obheke phasni"</string>
+    <string name="spoken_emoji_1F4CA" msgid="3525692829622381444">"Ishadi lebha"</string>
+    <string name="spoken_emoji_1F4CB" msgid="977639227554095521">"Ibhodi lokumanathisela"</string>
+    <string name="spoken_emoji_1F4CC" msgid="156107396088741574">"Iphini"</string>
+    <string name="spoken_emoji_1F4CD" msgid="4266572175361190231">"Iphini eyindilinga"</string>
+    <string name="spoken_emoji_1F4CE" msgid="6294288509864968290">"Okokubamba iphepha"</string>
+    <string name="spoken_emoji_1F4CF" msgid="149679400831136810">"Umbusi oqondile"</string>
+    <string name="spoken_emoji_1F4D0" msgid="8130339336619202915">"Umbusi ongunxantathu"</string>
+    <string name="spoken_emoji_1F4D1" msgid="5852176364856284968">"Amathebhu ebhukhimakhi"</string>
+    <string name="spoken_emoji_1F4D2" msgid="2276810154105920052">"Ileja"</string>
+    <string name="spoken_emoji_1F4D3" msgid="5873386492793610808">"Inothibhuku"</string>
+    <string name="spoken_emoji_1F4D4" msgid="4754469936418776360">"Inothibhuku enekhava ehlotshisiwe"</string>
+    <string name="spoken_emoji_1F4D5" msgid="4642713351802778905">"Ibhuku elivaliwe"</string>
+    <string name="spoken_emoji_1F4D6" msgid="6987347918381807186">"Vula ibhuku"</string>
+    <string name="spoken_emoji_1F4D7" msgid="7813394163241379223">"Ibhuku eliluhlaza okotshani"</string>
+    <string name="spoken_emoji_1F4D8" msgid="7189799718984979521">"Ibhuku eliluhlaza okwesibhakabhaka"</string>
+    <string name="spoken_emoji_1F4D9" msgid="3874664073186440225">"Ibhuku elisawonlintshi"</string>
+    <string name="spoken_emoji_1F4DA" msgid="872212072924287762">"Amabhuku"</string>
+    <string name="spoken_emoji_1F4DB" msgid="2015183603583392969">"Ibheji legama"</string>
+    <string name="spoken_emoji_1F4DC" msgid="5075845110932456783">"Phenya"</string>
+    <string name="spoken_emoji_1F4DD" msgid="2494006707147586786">"Imemo"</string>
+    <string name="spoken_emoji_1F4DE" msgid="7883008605002117671">"Isamukeli socingo"</string>
+    <string name="spoken_emoji_1F4DF" msgid="3538610110623780465">"Ipheyi"</string>
+    <string name="spoken_emoji_1F4E0" msgid="2960778342609543077">"Umshini wefeksi"</string>
+    <string name="spoken_emoji_1F4E1" msgid="6269733703719242108">"I-Antenna yesethalaythi"</string>
+    <string name="spoken_emoji_1F4E2" msgid="1987535386302883116">"Isandisizwi sekheli elisesidlangalaleni"</string>
+    <string name="spoken_emoji_1F4E3" msgid="5588916572878599224">"I-Megaphone yenjabulo"</string>
+    <string name="spoken_emoji_1F4E4" msgid="2063561529097749707">"Itreyi lokuphumayo"</string>
+    <string name="spoken_emoji_1F4E5" msgid="3232462702926143576">"Itreyi lebhokisi lokungenayo"</string>
+    <string name="spoken_emoji_1F4E6" msgid="3399454337197561635">"Iphakeji"</string>
+    <string name="spoken_emoji_1F4E7" msgid="5557136988503873238">"Uphawu lwe-imeyili"</string>
+    <string name="spoken_emoji_1F4E8" msgid="30698793974124123">"Imvilophi yokungenayo"</string>
+    <string name="spoken_emoji_1F4E9" msgid="5947550337678643166">"Imvilophi engenhla enomcibisholo obheke phansi"</string>
+    <string name="spoken_emoji_1F4EA" msgid="772614045207213751">"Ibhokisi lemeyili elivaliwe elinefulegi eyehlisiwe"</string>
+    <string name="spoken_emoji_1F4EB" msgid="6491414165464146137">"Ibhokisi lemeyili elivaliwe elinefulegi ekhushuliwe"</string>
+    <string name="spoken_emoji_1F4EC" msgid="7369517138779988438">"Vula ibhokisi lemeyili elinefulegi ekhushuliwe"</string>
+    <string name="spoken_emoji_1F4ED" msgid="5657520436285454241">"Vula ibhokisi lemeyili elinefulegi eyehlisiwe"</string>
+    <string name="spoken_emoji_1F4EE" msgid="8464138906243608614">"Isigxobo seposi"</string>
+    <string name="spoken_emoji_1F4EF" msgid="8801427577198798226">"Uphondo lweposi"</string>
+    <string name="spoken_emoji_1F4F0" msgid="6330208624731662525">"Iphephandaba"</string>
+    <string name="spoken_emoji_1F4F1" msgid="3966503935581675695">"Iselula"</string>
+    <string name="spoken_emoji_1F4F2" msgid="1057540341746100087">"Iselula yomcibisholo wokwesokudla ngakwesokunxele"</string>
+    <string name="spoken_emoji_1F4F3" msgid="5003984447315754658">"Imodi yokudlidliza"</string>
+    <string name="spoken_emoji_1F4F4" msgid="5549847566968306253">"Iselula icishiwe"</string>
+    <string name="spoken_emoji_1F4F5" msgid="3660199448671699238">"Awekho amaselula"</string>
+    <string name="spoken_emoji_1F4F6" msgid="2676974903233268860">"I-Antenna enamabha"</string>
+    <string name="spoken_emoji_1F4F7" msgid="2643891943105989039">"Ikhamela"</string>
+    <string name="spoken_emoji_1F4F9" msgid="4475626303058218048">"Ikhamela yevidiyo"</string>
+    <string name="spoken_emoji_1F4FA" msgid="1079796186652960775">"Umabonakude"</string>
+    <string name="spoken_emoji_1F4FB" msgid="3848729587403760645">"Irediyo"</string>
+    <string name="spoken_emoji_1F4FC" msgid="8370432508874310054">"Ikhasethi yevidiyo"</string>
+    <string name="spoken_emoji_1F500" msgid="2389947994502144547">"Imicibisholo ejikiswe ngakwesokudla"</string>
+    <string name="spoken_emoji_1F501" msgid="2132188352433347009">"Imicibisholo yendilinga evulwe ngakwesokudla nangakwesokunxele"</string>
+    <string name="spoken_emoji_1F502" msgid="2361976580513178391">"Imicibisholo yendilinga evulwe ngakwesokudla nangakwesokunxele enombondela eyodwa ezungezile"</string>
+    <string name="spoken_emoji_1F503" msgid="8936283551917858793">"Imicibisholo yendilinga evulwe ngezansi nangaphezulu ehamba njengewashi"</string>
+    <string name="spoken_emoji_1F504" msgid="708290317843535943">"Imicibisholo yendilinga evulwe ngezansi nangaphezulu ehamba ngokuphambene newashi"</string>
+    <string name="spoken_emoji_1F505" msgid="6348909939004951860">"Uphawu lokukhanya okuphansi"</string>
+    <string name="spoken_emoji_1F506" msgid="4449609297521280173">"Uphawu lokukhanya okuphezulu"</string>
+    <string name="spoken_emoji_1F507" msgid="7136386694923708448">"Isipikha esinomudwa wokukhansela"</string>
+    <string name="spoken_emoji_1F508" msgid="5063567689831527865">"Isipikha"</string>
+    <string name="spoken_emoji_1F509" msgid="3948050077992370791">"Isipikha esinegagasi lomsindo elilodwa"</string>
+    <string name="spoken_emoji_1F50A" msgid="5818194948677277197">"Isipikha esinamagagasi omsindo amathathu"</string>
+    <string name="spoken_emoji_1F50B" msgid="8083470451266295876">"Ibhethri"</string>
+    <string name="spoken_emoji_1F50C" msgid="7793219132036431680">"Ipulagi kagesi"</string>
+    <string name="spoken_emoji_1F50D" msgid="8140244710637926780">"Isibonisakhulu esikhombe ngakwesokunxele"</string>
+    <string name="spoken_emoji_1F50E" msgid="4751821352839693365">"Isibonisakhulu esikhombe ngakwesokudla"</string>
+    <string name="spoken_emoji_1F50F" msgid="915079280472199605">"Khiya ngepeni loyinki"</string>
+    <string name="spoken_emoji_1F510" msgid="7658381761691758318">"Ilokhi evalwe ngokhiye"</string>
+    <string name="spoken_emoji_1F511" msgid="262319867774655688">"Ukhiye"</string>
+    <string name="spoken_emoji_1F512" msgid="5628688337255115175">"Khiya"</string>
+    <string name="spoken_emoji_1F513" msgid="8579201846619420981">"Vula ilokhi"</string>
+    <string name="spoken_emoji_1F514" msgid="7027268683047322521">"Isikhalisi"</string>
+    <string name="spoken_emoji_1F515" msgid="8903179856036069242">"Isikhalisi esinomudwa wokukhansela"</string>
+    <string name="spoken_emoji_1F516" msgid="108097933937925381">"Ibhukhimakhi"</string>
+    <string name="spoken_emoji_1F517" msgid="2450846665734313397">"Isixhumanisi sophawu"</string>
+    <string name="spoken_emoji_1F518" msgid="7028220286841437832">"Inkinobho yerediyo"</string>
+    <string name="spoken_emoji_1F519" msgid="8211189165075445687">"Ngemuva ngomcibisholo ongakwesokunxele ngenhla"</string>
+    <string name="spoken_emoji_1F51A" msgid="823966751787338892">"Phetha ngomcibisholo ongakwesokunxele ngenhla"</string>
+    <string name="spoken_emoji_1F51B" msgid="5920570742107943382">"Kuvulwe ngesibabazo esinomcibisholo ongakwesokunxele nesokudla ngenhla"</string>
+    <string name="spoken_emoji_1F51C" msgid="110609810659826676">"Maduze ngomcibisholo ongakwesokudla ngenhla"</string>
+    <string name="spoken_emoji_1F51D" msgid="4087697222026095447">"Ngaphezulu ngomcibisholo opheke phezulu ngenhla"</string>
+    <string name="spoken_emoji_1F51E" msgid="8512873526157201775">"Akekho ongaphansi kophawu leshumi nesishiyagalombili"</string>
+    <string name="spoken_emoji_1F51F" msgid="8673370823728653973">"I-Keycap yeshumi"</string>
+    <string name="spoken_emoji_1F520" msgid="7335109890337048900">"Uphawu lokokufaka lamagama ofeleba be-latin"</string>
+    <string name="spoken_emoji_1F521" msgid="2693185864450925778">"Uphawu lokokufaka lamagama amancane e-latin"</string>
+    <string name="spoken_emoji_1F522" msgid="8419130286280673347">"Uphawu lokokufaka lezinombolo"</string>
+    <string name="spoken_emoji_1F523" msgid="3318053476401719421">"Uphawu lokokufaka lezimpawu"</string>
+    <string name="spoken_emoji_1F524" msgid="1625073997522316331">"Uphawu lokokufaka lamagama e-latin"</string>
+    <string name="spoken_emoji_1F525" msgid="4083884189172963790">"Umlilo"</string>
+    <string name="spoken_emoji_1F526" msgid="2035494936742643580">"Ithoshi logesi"</string>
+    <string name="spoken_emoji_1F527" msgid="134257142354034271">"Ukudonsa"</string>
+    <string name="spoken_emoji_1F528" msgid="700627429570609375">"Isando"</string>
+    <string name="spoken_emoji_1F529" msgid="7480548235904988573">"Insinjana nomshudo"</string>
+    <string name="spoken_emoji_1F52A" msgid="7613580031502317893">"I-Hocho"</string>
+    <string name="spoken_emoji_1F52B" msgid="4554906608328118613">"Iphistoli"</string>
+    <string name="spoken_emoji_1F52C" msgid="1330294501371770790">"Isibonakhulu"</string>
+    <string name="spoken_emoji_1F52D" msgid="7549551775445177140">"Isibonakude"</string>
+    <string name="spoken_emoji_1F52E" msgid="4457099417872625141">"Ibhola le-Crystal"</string>
+    <string name="spoken_emoji_1F52F" msgid="8899031001317442792">"Inkanyezi enamaphoyinti ayisithupha nechashazi eliphakathi nendawo"</string>
+    <string name="spoken_emoji_1F530" msgid="3572898444281774023">"Uphawu lesi-Japanese lomqali"</string>
+    <string name="spoken_emoji_1F531" msgid="5225633376450025396">"Isibonakaliso se-Trident"</string>
+    <string name="spoken_emoji_1F532" msgid="9169568490485180779">"Inkinobho emnyama eyisikwele"</string>
+    <string name="spoken_emoji_1F533" msgid="6554193837201918598">"Inkinobho emhlophe eyisikwele"</string>
+    <string name="spoken_emoji_1F534" msgid="8339298801331865340">"Isiyingi esikhulu esibomvu"</string>
+    <string name="spoken_emoji_1F535" msgid="1227403104835533512">"Isiyingi esikhulu esiluhlaza okwesibhakabhaka"</string>
+    <string name="spoken_emoji_1F536" msgid="5477372445510469331">"Idayimane enkulu esawolintshi"</string>
+    <string name="spoken_emoji_1F537" msgid="3158915214347274626">"Idayimane elikhulu eliluhlaza okwesibhakabhaka"</string>
+    <string name="spoken_emoji_1F538" msgid="4300084249474451991">"Idayimane elincane elisawolintshi"</string>
+    <string name="spoken_emoji_1F539" msgid="6535159756325742275">"Idayimane elincane eliluhlaza okwesibhakabhaka"</string>
+    <string name="spoken_emoji_1F53A" msgid="3728196273988781389">"Unxande obomvu obheke phezulu"</string>
+    <string name="spoken_emoji_1F53B" msgid="7182097039614128707">"Unxande obomvu obheke phansi"</string>
+    <string name="spoken_emoji_1F53C" msgid="4077022046319615029">"Unxande omncane obomvu obheke phezulu"</string>
+    <string name="spoken_emoji_1F53D" msgid="3939112784894620713">"Unxande omncane obomvu obheke phansi"</string>
+    <string name="spoken_emoji_1F550" msgid="7761392621689986218">"Ubuso bewashi lehora lokuqala ezimpondweni"</string>
+    <string name="spoken_emoji_1F551" msgid="2699448504113431716">"Ubuso bewashi lehora lesibili ezimpondweni"</string>
+    <string name="spoken_emoji_1F552" msgid="5872107867411853750">"Ubuso bewashi lehora lesithathu ezimpondweni"</string>
+    <string name="spoken_emoji_1F553" msgid="8490966286158640743">"Ubuso bewashi lehora lesine ezimpondweni"</string>
+    <string name="spoken_emoji_1F554" msgid="7662585417832909280">"Ubuso bewashi lehora lesithathu ezimpondweni"</string>
+    <string name="spoken_emoji_1F555" msgid="5564698204520412009">"Ubuso bewashi lehora lesithupha ezimpondweni"</string>
+    <string name="spoken_emoji_1F556" msgid="7325712194836512205">"Ubuso bewashi lehora lesikhombisa ezimpondweni"</string>
+    <string name="spoken_emoji_1F557" msgid="4398343183682848693">"Ubuso bewashi lehora lesishiyagalombili ezimpondweni"</string>
+    <string name="spoken_emoji_1F558" msgid="3110507820404018172">"Ubuso bewashi lehora lesishiyagalolunye ezimpondweni"</string>
+    <string name="spoken_emoji_1F559" msgid="2972160366448337839">"Ubuso bewashi lehora leshumi ezimpondweni"</string>
+    <string name="spoken_emoji_1F55A" msgid="5568112876681714834">"Ubuso bewashi lehora leshumi nanye ezimpondweni"</string>
+    <string name="spoken_emoji_1F55B" msgid="6731739890330659276">"Ubuso bewashi lehora leshumi nambili ezimpondweni"</string>
+    <string name="spoken_emoji_1F55C" msgid="7838853679879115890">"Ubuso bewashi bamashumi amathathu nanye"</string>
+    <string name="spoken_emoji_1F55D" msgid="3518832144255922544">"Ubuso bewashi bamashumi amathathu nambili"</string>
+    <string name="spoken_emoji_1F55E" msgid="3092760695634993002">"Ubuso bewashi bamashumi amathathu nantathu"</string>
+    <string name="spoken_emoji_1F55F" msgid="2326720311892906763">"Ubuso bewashi bamashumi amathathu nane"</string>
+    <string name="spoken_emoji_1F560" msgid="5771339179963924448">"Ubuso bewashi bamashumi amathathu nanhlanu"</string>
+    <string name="spoken_emoji_1F561" msgid="3139944777062475382">"Ubuso bewashi bamashumi amathathu nesithupha"</string>
+    <string name="spoken_emoji_1F562" msgid="8273944611162457084">"Ubuso bewashi bamashumi amathathu nesikhombisa"</string>
+    <string name="spoken_emoji_1F563" msgid="8643976903718136299">"Ubuso bewashi bamashumi amathathu nesishiyagalombili"</string>
+    <string name="spoken_emoji_1F564" msgid="3511070239796141638">"Ubuso bewashi bamashumi amathathu nesishiyagalolunye"</string>
+    <string name="spoken_emoji_1F565" msgid="4567451985272963088">"Ubuso bewashi bamashumi amathathu neshumi"</string>
+    <string name="spoken_emoji_1F566" msgid="2790552288169929810">"Ubuso bewashi bamashumi amathathu neshumi nanye"</string>
+    <string name="spoken_emoji_1F567" msgid="9026037362100689337">"Ubuso bewashi bamashumi amathathu neshumi nambili"</string>
+    <string name="spoken_emoji_1F5FB" msgid="9037503671676124015">"I-Mount fuji"</string>
+    <string name="spoken_emoji_1F5FC" msgid="1409415995817242150">"Inqaba yase-Tokyo"</string>
+    <string name="spoken_emoji_1F5FD" msgid="2562726956654429582">"Isithombe senkululeko"</string>
+    <string name="spoken_emoji_1F5FE" msgid="1184469756905210580">"I-Silhouette yase-japan"</string>
+    <string name="spoken_emoji_1F5FF" msgid="6003594799354942297">"I-Moyai"</string>
+    <string name="spoken_emoji_1F600" msgid="7601109464776835283">"Ubuso obuhlinile"</string>
+    <string name="spoken_emoji_1F601" msgid="746026523967444503">"Ubuso obuhlinile namehlo amomothekayo"</string>
+    <string name="spoken_emoji_1F602" msgid="8354558091785198246">"Ubuso obunezinyembezi zenjabulo"</string>
+    <string name="spoken_emoji_1F603" msgid="3861022912544159823">"Ubuso obumomothekayo nomlomo ovuliwe"</string>
+    <string name="spoken_emoji_1F604" msgid="5119021072966343531">"Ubuso obumomothekayo nomlomo ovuliwe namehlo amomothekyo"</string>
+    <string name="spoken_emoji_1F605" msgid="6140813923973561735">"Ubuso obumomothekayo nomlomo ovulekile nomjuluko obandayo"</string>
+    <string name="spoken_emoji_1F606" msgid="3549936813966832799">"Ubuso obumomothekayo nomlomo ovulekile namehlo avalwe kakhulu"</string>
+    <string name="spoken_emoji_1F607" msgid="2826424078212384817">"Umlomo obumomothekayo obingelelayo"</string>
+    <string name="spoken_emoji_1F608" msgid="7343559595089811640">"Ubuso obumomothekayo obunezimpondo"</string>
+    <string name="spoken_emoji_1F609" msgid="5481030187207504405">"Ubuso obucimezayo"</string>
+    <string name="spoken_emoji_1F60A" msgid="5023337769148679767">"Ubuso obumomothekayo namehlo amomothekayo"</string>
+    <string name="spoken_emoji_1F60B" msgid="3005248217216195694">"Ubuso obujabulela ukudla okumnandi"</string>
+    <string name="spoken_emoji_1F60C" msgid="349384012958268496">"Ubuso obukhululekile"</string>
+    <string name="spoken_emoji_1F60D" msgid="7921853137164938391">"Ubuso obumomothekayo namehla amise okwenhliziyo"</string>
+    <string name="spoken_emoji_1F60E" msgid="441718886380605643">"Ubuso obumomothekayo nezibuko zelanga"</string>
+    <string name="spoken_emoji_1F60F" msgid="2674453144890180538">"Ubuso obusinekayo"</string>
+    <string name="spoken_emoji_1F610" msgid="3225675825334102369">"Ubuso obungathathi hlangothi"</string>
+    <string name="spoken_emoji_1F611" msgid="7199179827619679668">"Ubuso obungabonisi mizwa"</string>
+    <string name="spoken_emoji_1F612" msgid="985081329745137998">"Ubuso obungajabulile"</string>
+    <string name="spoken_emoji_1F613" msgid="5548607684830303562">"Ubuso obunomjuluko obondayo"</string>
+    <string name="spoken_emoji_1F614" msgid="3196305665259916390">"Ubuso obujulayo"</string>
+    <string name="spoken_emoji_1F615" msgid="3051674239303969101">"Ubuso obudidekile"</string>
+    <string name="spoken_emoji_1F616" msgid="8124887056243813089">"Ubuso bokugcizelela"</string>
+    <string name="spoken_emoji_1F617" msgid="7052733625511122870">"Ubuso bokuqabula"</string>
+    <string name="spoken_emoji_1F618" msgid="408207170572303753">"Ubuso obufutha ukuqabula"</string>
+    <string name="spoken_emoji_1F619" msgid="8645430335143153645">"Ubuso obuqabulayo namehlo amomothekayo"</string>
+    <string name="spoken_emoji_1F61A" msgid="2882157190974340247">"Ubuso obuqabulayo namehlo avaliwe"</string>
+    <string name="spoken_emoji_1F61B" msgid="3765927202787211499">"Ubuso bolimi obukhishwe ngaphandle"</string>
+    <string name="spoken_emoji_1F61C" msgid="198943912107589389">"Ubuso bolimi olukhishwe ngaphandle nehlo elicwayizayo"</string>
+    <string name="spoken_emoji_1F61D" msgid="7643546385877816182">"Ubuso nolimi olukhishwe ngaphandle namehlo avalwe kakhulu"</string>
+    <string name="spoken_emoji_1F61E" msgid="1528732952202098364">"Ubuso obudumele"</string>
+    <string name="spoken_emoji_1F61F" msgid="1853664164636082404">"Ubuso obukhathazekile"</string>
+    <string name="spoken_emoji_1F620" msgid="6051942001307375830">"Ubuso obucasukile"</string>
+    <string name="spoken_emoji_1F621" msgid="2114711878097257704">"Ubuso bomlomo ophukuliwe"</string>
+    <string name="spoken_emoji_1F622" msgid="29291014645931822">"Ubuso obukhalayo"</string>
+    <string name="spoken_emoji_1F623" msgid="7803959833595184773">"Ubuso obubekezelayo"</string>
+    <string name="spoken_emoji_1F624" msgid="8637637647725752799">"Ubuso bokunqoba"</string>
+    <string name="spoken_emoji_1F625" msgid="6153625183493635030">"Ubuso obuphoxekile kodwa obukhululekile"</string>
+    <string name="spoken_emoji_1F626" msgid="6179485689935562950">"Ubuso obuhlinayo nomlomo ovuliwe"</string>
+    <string name="spoken_emoji_1F627" msgid="8566204052903012809">"Ubuso obukhathazekile"</string>
+    <string name="spoken_emoji_1F628" msgid="8875777401624904224">"Ubuso obethukile"</string>
+    <string name="spoken_emoji_1F629" msgid="1411538490319190118">"Ubuso obukhathele"</string>
+    <string name="spoken_emoji_1F62A" msgid="4726686726690289969">"Ubuso obuzelayo"</string>
+    <string name="spoken_emoji_1F62B" msgid="3221980473921623613">"Ubuso obukhathele"</string>
+    <string name="spoken_emoji_1F62C" msgid="4616356691941225182">"Ubuso obuhlinayo"</string>
+    <string name="spoken_emoji_1F62D" msgid="4283677508698812232">"Ubuso obukhalela phezulu"</string>
+    <string name="spoken_emoji_1F62E" msgid="726083405284353894">"Ubuso bomlomo ovulekile"</string>
+    <string name="spoken_emoji_1F62F" msgid="7746620088234710962">"Ubuso obugcwele usizi"</string>
+    <string name="spoken_emoji_1F630" msgid="3298804852155581163">"Ubuso bomlomo ovulekile nomjuluko obandayo"</string>
+    <string name="spoken_emoji_1F631" msgid="1603391150954646779">"Ubuso obumemezayo ngenxa yokwesaba"</string>
+    <string name="spoken_emoji_1F632" msgid="4846193232203976013">"Ubuso obumangele"</string>
+    <string name="spoken_emoji_1F633" msgid="4023593836629700443">"Ubuso obucobekile"</string>
+    <string name="spoken_emoji_1F634" msgid="3155265083246248129">"Ubuso obulele"</string>
+    <string name="spoken_emoji_1F635" msgid="4616691133452764482">"Ubuso obunesiyezi"</string>
+    <string name="spoken_emoji_1F636" msgid="947000211822375683">"Ubuso obungenawo umlomo"</string>
+    <string name="spoken_emoji_1F637" msgid="1269551267347165774">"Ubuso obunesembozo sezempilo"</string>
+    <string name="spoken_emoji_1F638" msgid="3410766467496872301">"Ubuso bekati elihlinile namehlo amomothekayo"</string>
+    <string name="spoken_emoji_1F639" msgid="1833417519781022031">"Ubuso bekati nezinyembezi zenjabulo"</string>
+    <string name="spoken_emoji_1F63A" msgid="8566294484007152613">"Ubuso bekati nomlomo ovulekile"</string>
+    <string name="spoken_emoji_1F63B" msgid="74417995938927571">"Ubuso bekati obumomothekayo namehlo amise okwenhliziyo"</string>
+    <string name="spoken_emoji_1F63C" msgid="6472812005729468870">"Ubuso bekati nokumomotheka obubhuqayo"</string>
+    <string name="spoken_emoji_1F63D" msgid="1638398369553349509">"Ubuso bekati bokuqabula namehlo avaliwe"</string>
+    <string name="spoken_emoji_1F63E" msgid="6788969063020278986">"Ubuso bekati bokuphukula"</string>
+    <string name="spoken_emoji_1F63F" msgid="1207234562459550185">"Ubuso bekati obukhalayo"</string>
+    <string name="spoken_emoji_1F640" msgid="6023054549904329638">"Ubuso bekati obukhathele"</string>
+    <string name="spoken_emoji_1F645" msgid="5202090629227587076">"Ubuso obungenaso isenzo esihle"</string>
+    <string name="spoken_emoji_1F646" msgid="6734425134415138134">"Ubuso besenzo esilungile"</string>
+    <string name="spoken_emoji_1F647" msgid="1090285518444205483">"Umuntu ogobe ngokujulile"</string>
+    <string name="spoken_emoji_1F648" msgid="8978535230610522356">"Ukungaboni unogwaja omubi"</string>
+    <string name="spoken_emoji_1F649" msgid="8486145279809495102">"Ukungezwa unogwaja omubi"</string>
+    <string name="spoken_emoji_1F64A" msgid="1237524974033228660">"Ungakhulumi unogwaja omubi"</string>
+    <string name="spoken_emoji_1F64B" msgid="4251150782016370475">"Umuntu ojabulile ophakamisa isandla esisodwa"</string>
+    <string name="spoken_emoji_1F64C" msgid="5446231430684558344">"Umuntu ophakamise izandla ezimbili ngenxa yenjabulo"</string>
+    <string name="spoken_emoji_1F64D" msgid="4646485595309482342">"Umuntu ohlinayo"</string>
+    <string name="spoken_emoji_1F64E" msgid="3376579939836656097">"Umuntu onobuso obuphukulayo"</string>
+    <string name="spoken_emoji_1F64F" msgid="1044439574356230711">"Umuntu nezandla ezigoqiwe"</string>
+    <string name="spoken_emoji_1F680" msgid="513263736012689059">"Irokhethi"</string>
+    <string name="spoken_emoji_1F681" msgid="9201341783850525339">"Indiza"</string>
+    <string name="spoken_emoji_1F682" msgid="8046933583867498698">"Intuthu yesitimela"</string>
+    <string name="spoken_emoji_1F683" msgid="8772750354339223092">"Imoto yojantshi"</string>
+    <string name="spoken_emoji_1F684" msgid="346396777356203608">"Isitimela sejubane elisheshayo"</string>
+    <string name="spoken_emoji_1F685" msgid="1237059817190832730">"Isitimela sejubane elisheshayo nekhala elicijile"</string>
+    <string name="spoken_emoji_1F686" msgid="3525197227223620343">"Isitimela"</string>
+    <string name="spoken_emoji_1F687" msgid="5110143437960392837">"I-Metro"</string>
+    <string name="spoken_emoji_1F688" msgid="4702085029871797965">"Ujantshi olula"</string>
+    <string name="spoken_emoji_1F689" msgid="2375851019798817094">"Isiteshi"</string>
+    <string name="spoken_emoji_1F68A" msgid="6368370859718717198">"Ithilamu"</string>
+    <string name="spoken_emoji_1F68B" msgid="2920160427117436633">"Imoto yethilamu"</string>
+    <string name="spoken_emoji_1F68C" msgid="1061520934758810864">"Ibhasi"</string>
+    <string name="spoken_emoji_1F68D" msgid="2890059031360969304">"Ibhasi ezayo"</string>
+    <string name="spoken_emoji_1F68E" msgid="6234042976027309654">"Ibhasi yenqola"</string>
+    <string name="spoken_emoji_1F68F" msgid="5871099334672012107">"Isitobhi sebhasi"</string>
+    <string name="spoken_emoji_1F690" msgid="8080964620200195262">"Ikhumbi"</string>
+    <string name="spoken_emoji_1F691" msgid="999173032408730501">"I-Ambulensi"</string>
+    <string name="spoken_emoji_1F692" msgid="1712863785341849487">"Injini yomlilo"</string>
+    <string name="spoken_emoji_1F693" msgid="7987109037389768934">"Imoto yamaphoyisa"</string>
+    <string name="spoken_emoji_1F694" msgid="6061658916653884608">"Imoto yamaphoyisa ezayo"</string>
+    <string name="spoken_emoji_1F695" msgid="6913445460364247283">"Itekisi"</string>
+    <string name="spoken_emoji_1F696" msgid="6391604457418285404">"Itekisi ezayo"</string>
+    <string name="spoken_emoji_1F697" msgid="7978399334396733790">"Izimoto"</string>
+    <string name="spoken_emoji_1F698" msgid="7006050861129732018">"Izimoto ezizayo"</string>
+    <string name="spoken_emoji_1F699" msgid="630317052666590607">"Imoto yokuzithokozisa"</string>
+    <string name="spoken_emoji_1F69A" msgid="4739797891735823577">"Iloli yokuthumela"</string>
+    <string name="spoken_emoji_1F69B" msgid="4715997280786620649">"Iloli enezingxenye ezimbili"</string>
+    <string name="spoken_emoji_1F69C" msgid="5557395610750818161">"Ugandaganda"</string>
+    <string name="spoken_emoji_1F69D" msgid="5467164189942951047">"Ujantshi omncane"</string>
+    <string name="spoken_emoji_1F69E" msgid="169238196389832234">"Ujantshi wasentabeni"</string>
+    <string name="spoken_emoji_1F69F" msgid="7508128757012845102">"Ukumiswa kojantshi"</string>
+    <string name="spoken_emoji_1F6A0" msgid="8733056213790160147">"Imoto yekhubula yasentabeni"</string>
+    <string name="spoken_emoji_1F6A1" msgid="4666516337749347253">"Indlela yethilamu ye-Aerial"</string>
+    <string name="spoken_emoji_1F6A2" msgid="4511220588943129583">"Umkhumbi"</string>
+    <string name="spoken_emoji_1F6A3" msgid="8412962252222205387">"Isikebhe somdlalo"</string>
+    <string name="spoken_emoji_1F6A4" msgid="8867571300266339211">"Isikebhe esigijimayo"</string>
+    <string name="spoken_emoji_1F6A5" msgid="7650260812741963884">"Ilobhothi elivundlile"</string>
+    <string name="spoken_emoji_1F6A6" msgid="485575967773793454">"Ilobhothi emile"</string>
+    <string name="spoken_emoji_1F6A7" msgid="6411048933816976794">"Uphawu lesakhiwo"</string>
+    <string name="spoken_emoji_1F6A8" msgid="6345717218374788364">"Izimoto zamaphoyisa ezikhanyisayo"</string>
+    <string name="spoken_emoji_1F6A9" msgid="6586380356807600412">"Ifulegi engunxantathu eposini"</string>
+    <string name="spoken_emoji_1F6AA" msgid="8954448167261738885">"Umnyango"</string>
+    <string name="spoken_emoji_1F6AB" msgid="5313946262888343544">"Alukho uphawu lokungena"</string>
+    <string name="spoken_emoji_1F6AC" msgid="6946858177965948288">"Uphawu lokubhema"</string>
+    <string name="spoken_emoji_1F6AD" msgid="6320088669185507241">"Uphawu lokungabhemi"</string>
+    <string name="spoken_emoji_1F6AE" msgid="1062469925352817189">"Uphawu lokubeka udoti endaweni yawo"</string>
+    <string name="spoken_emoji_1F6AF" msgid="2286668056123642208">"Uphawu lokungalahleli phansi"</string>
+    <string name="spoken_emoji_1F6B0" msgid="179424763882990952">"Uphawu lamanzi aphuzwayo"</string>
+    <string name="spoken_emoji_1F6B1" msgid="5585212805429161877">"Uphawu lamanzi angaphuzwa"</string>
+    <string name="spoken_emoji_1F6B2" msgid="1771885082068421875">"Ibhayisikili"</string>
+    <string name="spoken_emoji_1F6B3" msgid="8033779581263314408">"Awekho amabhayisikili"</string>
+    <string name="spoken_emoji_1F6B4" msgid="1999538449018476947">"Umqhubi webhayisikili"</string>
+    <string name="spoken_emoji_1F6B5" msgid="340846352660993117">"Umqhubi webhayisikili entabeni"</string>
+    <string name="spoken_emoji_1F6B6" msgid="4351024386495098336">"Abahamba ngezinyawo"</string>
+    <string name="spoken_emoji_1F6B7" msgid="4564800655866838802">"Abavumelekile abahamba ngezinyawo"</string>
+    <string name="spoken_emoji_1F6B8" msgid="3020531906940267349">"Indawo yokuhamba izingane"</string>
+    <string name="spoken_emoji_1F6B9" msgid="1207095844125041251">"Uphawu lamadoda"</string>
+    <string name="spoken_emoji_1F6BA" msgid="2346879310071017531">"Uphawu labesifazane"</string>
+    <string name="spoken_emoji_1F6BB" msgid="2370172469642078526">"Indawo yangasese"</string>
+    <string name="spoken_emoji_1F6BC" msgid="5558827593563530851">"Uphawu labantwana"</string>
+    <string name="spoken_emoji_1F6BD" msgid="9213590243049835957">"Indlu yangasese"</string>
+    <string name="spoken_emoji_1F6BE" msgid="394016533781742491">"Ikhosambana lamanzi"</string>
+    <string name="spoken_emoji_1F6BF" msgid="906336365928291207">"Ishawa"</string>
+    <string name="spoken_emoji_1F6C0" msgid="4592099854378821599">"Ubhavu"</string>
+    <string name="spoken_emoji_1F6C1" msgid="2845056048320031158">"Ubhavu"</string>
+    <string name="spoken_emoji_1F6C2" msgid="8117262514698011877">"Ukulawula iphasiphothi"</string>
+    <string name="spoken_emoji_1F6C3" msgid="1176342001834630675">"Umnyango wezimpahla"</string>
+    <string name="spoken_emoji_1F6C4" msgid="1477622834179978886">"Ukulanda umthwalo"</string>
+    <string name="spoken_emoji_1F6C5" msgid="2495834050856617451">"Umthwalo oshiyiwe"</string>
+</resources>
diff --git a/java/res/values-zu/strings-talkback-descriptions.xml b/java/res/values-zu/strings-talkback-descriptions.xml
index 6d3de70..0673405 100644
--- a/java/res/values-zu/strings-talkback-descriptions.xml
+++ b/java/res/values-zu/strings-talkback-descriptions.xml
@@ -25,6 +25,7 @@
     <string name="spoken_no_text_entered" msgid="1711276837961785646">"Awukho umbhalo ofakiwe"</string>
     <string name="spoken_auto_correct" msgid="8989324692167993804">"I-<xliff:g id="KEY_NAME">%1$s</xliff:g> ilungisa i-<xliff:g id="ORIGINAL_WORD">%2$s</xliff:g> kube yi-<xliff:g id="CORRECTED_WORD">%3$s</xliff:g>"</string>
     <string name="spoken_auto_correct_obscured" msgid="7769449372355268412">"I-<xliff:g id="KEY_NAME">%1$s</xliff:g> yenza ukulungisa okuzenzakalelayo"</string>
+    <string name="spoken_empty_suggestion" msgid="4250215619373459752">"Asikho isiphakamiso"</string>
     <string name="spoken_description_unknown" msgid="5139930082759824442">"Uhlamvu olungaziwa"</string>
     <string name="spoken_description_shift" msgid="7209798151676638728">"U-Shift"</string>
     <string name="spoken_description_symbols_shift" msgid="3483198879916435717">"Amasimbuli amaningi"</string>
@@ -76,6 +77,12 @@
     <string name="spoken_letter_0130" msgid="4766619646231612274">"Ufeleba I, icashazi ngenhla"</string>
     <string name="spoken_symbol_unknown" msgid="717298227061173706">"Uphawu olungaziwa"</string>
     <string name="spoken_emoji_unknown" msgid="5981009928135394306">"I-emoji engaziwa"</string>
+    <string name="spoken_emoticon_3A_2D_21_20" msgid="2410905667389534573">"Ubuso obunesithukuthezi"</string>
+    <string name="spoken_emoticon_3A_2D_24_20" msgid="2481260475945560438">"Ubuso obuphoxekile"</string>
+    <string name="spoken_emoticon_42_2D_29_20" msgid="1063205250387128068">"Ubuso obugqoke izibuko"</string>
+    <string name="spoken_emoticon_3A_4F_20" msgid="532695091593447238">"Ubuso obumangele"</string>
+    <string name="spoken_emoticon_3A_2D_2A_20" msgid="5612342617244114291">"Ukubso bokuqabula"</string>
+    <string name="spoken_emoticon_3A_2D_5B_20" msgid="2223507987759905920">"Ubuso obuswacile"</string>
     <string name="spoken_open_more_keys_keyboard" msgid="6832897688371903747">"Ezinye izinhlamvu ziyatholakala"</string>
     <string name="spoken_close_more_keys_keyboard" msgid="3524914657934712026">"Ezinye izinhlamvu ziyalahlwa"</string>
     <string name="spoken_open_more_suggestions" msgid="4231720702882969760">"Ezinye iziphakamiso ziyatholakala"</string>
diff --git a/java/res/values-zu/strings.xml b/java/res/values-zu/strings.xml
index e644a12..9ed9742 100644
--- a/java/res/values-zu/strings.xml
+++ b/java/res/values-zu/strings.xml
@@ -26,24 +26,29 @@
     <string name="vibrate_on_keypress" msgid="5258079494276955460">"Dlidlizelisa ngokucindezela inkinobho"</string>
     <string name="sound_on_keypress" msgid="6093592297198243644">"Umsindo wokucindezela ukhiye"</string>
     <string name="popup_on_keypress" msgid="123894815723512944">"Ugaxekile ngokucindezela ukhiye"</string>
-    <!-- no translation found for settings_screen_input (2808654300248306866) -->
-    <skip />
-    <!-- no translation found for settings_screen_appearances (3611951947835553700) -->
-    <skip />
-    <!-- no translation found for settings_screen_multi_lingual (6829970893413937235) -->
-    <skip />
-    <!-- no translation found for settings_screen_gesture (9113437621722871665) -->
-    <skip />
-    <!-- no translation found for settings_screen_correction (1616818407747682955) -->
-    <skip />
-    <!-- no translation found for settings_screen_advanced (7472408607625972994) -->
-    <skip />
+    <string name="settings_screen_preferences" msgid="2696713156722014624">"Izintandokazi"</string>
+    <string name="settings_screen_accounts" msgid="2786418968536696670">"Ama-akhawunti nobumfihlo"</string>
+    <string name="settings_screen_appearance" msgid="7358046399111611615">"Ukubonakala nezakhiwo"</string>
+    <string name="settings_screen_gesture" msgid="8826372746901183556">"Ukuthayipha ngokuthinta"</string>
+    <string name="settings_screen_correction" msgid="1616818407747682955">"Ukulungisa umbhalo"</string>
+    <string name="settings_screen_advanced" msgid="7472408607625972994">"Okuthuthukisiwe"</string>
+    <string name="settings_screen_theme" msgid="2137262503543943871">"Itimu"</string>
+    <string name="enable_split_keyboard" msgid="4177264923999493614">"Nika amandla ikhibhodi yokuhlukanisa"</string>
+    <string name="cloud_sync_title" msgid="8579271074443847055">"Ukuvumlanisa kwekhibhodi ye-Google"</string>
+    <string name="cloud_sync_summary" msgid="7684887161145650857">"Ukuvumelanisa kuvuliwe"</string>
+    <string name="cloud_sync_summary_disabled" msgid="4553338970382825796">"Vumelanisa isichazamazwi sakho kuwo wonke amadivayisi wakho"</string>
+    <string name="sync_now_title" msgid="3088838136743277721">"Vumelanisa manje"</string>
+    <string name="clear_sync_data_title" msgid="8582001557037069154">"Susa idatha yamafu"</string>
+    <string name="clear_sync_data_summary" msgid="993477139012576584">"Susa idatha yakho evumelanisiwe esuka ku-Google"</string>
+    <string name="clear_sync_data_confirmation" msgid="2811931135574727678">"Idatha yakho evumelanisiwe izosuswa emafini. Ingabe uqinisekile?"</string>
+    <string name="clear_sync_data_ok" msgid="613104067705915132">"Susa"</string>
+    <string name="cloud_sync_cancel" msgid="5877481252150919037">"Khansela"</string>
+    <string name="cloud_sync_opt_in_text" msgid="9176039655776298248">"Isichazamazwi sakho somuntu siqu sizovumelaniswa siphinde senziwe isipele kumaseva we-Google. Ulwazi lezibalo lemvamisa yegama lingaqoqwa ukusiza ukuthuthukisa imikhiqizo yethu. Ukuqoqwa nokusetshenziswa kwalo lonke ulwazi kuzohambisana ne-"<a href="https://www.google.com/policies/privacy">"Inqubomgomo Yobumfihlo ye-Google"</a>"."</string>
+    <string name="add_account_to_enable_sync" msgid="7836932571852055265">"Sicela ungeze i-akhawunti ye-Google kule divayisi ukuze unike amandla lesi sici"</string>
     <string name="include_other_imes_in_language_switch_list" msgid="4533689960308565519">"Shintshela kwezinye izindlela zokungena"</string>
     <string name="include_other_imes_in_language_switch_list_summary" msgid="840637129103317635">"Ukhiye wokushintsha ulimi ubandakanya ezinye izindlela zokungenayo"</string>
     <string name="show_language_switch_key" msgid="5915478828318774384">"Ukhiye wokushintsha ullimi"</string>
     <string name="show_language_switch_key_summary" msgid="7343403647474265713">"Bonisa uma izilimi zokufaka zinikwe amandla"</string>
-    <string name="sliding_key_input_preview" msgid="6604262359510068370">"Bonisa isikhombi sesilayidi"</string>
-    <string name="sliding_key_input_preview_summary" msgid="6340524345729093886">"Bonisa isiboniso ngenkathi uslayida kusukela kukhiye ongu-Shift noma i-Symbol"</string>
     <string name="key_preview_popup_dismiss_delay" msgid="6213164897443068248">"Ukuvela kokhiye cashisa ukulibazisa"</string>
     <string name="key_preview_popup_dismiss_no_delay" msgid="2096123151571458064">"Cha ukulibazisa"</string>
     <string name="key_preview_popup_dismiss_default_delay" msgid="2166964333903906734">"Okuzenzakalelayo"</string>
@@ -62,9 +67,6 @@
     <string name="main_dictionary" msgid="4798763781818361168">"Isichazamazwi sakho ngqangi"</string>
     <string name="prefs_show_suggestions" msgid="8026799663445531637">"Bonisa ukusikesela kokulungisa"</string>
     <string name="prefs_show_suggestions_summary" msgid="1583132279498502825">"Bonisa amagama aphakamisiwe ngenkathi uthayipha"</string>
-    <string name="prefs_suggestion_visibility_show_name" msgid="3219916594067551303">"Bonisa njalo"</string>
-    <string name="prefs_suggestion_visibility_show_only_portrait_name" msgid="3859783767435239118">"Bonisa ngomumo oqondile"</string>
-    <string name="prefs_suggestion_visibility_hide_name" msgid="6309143926422234673">"Fihla njalo"</string>
     <string name="prefs_block_potentially_offensive_title" msgid="5078480071057408934">"Vimba amagama ahlaselayo"</string>
     <string name="prefs_block_potentially_offensive_summary" msgid="2371835479734991364">"Ungaphakamisi amagama angaba nokuhlaselayo"</string>
     <string name="auto_correction" msgid="7630720885194996950">"Ukulungisa okuzenzakalelayo"</string>
@@ -85,21 +87,32 @@
     <string name="voice_input" msgid="3583258583521397548">"Inkinobho yokufaka izwi"</string>
     <string name="voice_input_disabled_summary" msgid="8141750303464726129">"Azikho izindlela zokufaka zezwi ezinikwe amandla. Hlola izilungiselelo zolimi kanye nezokufaka."</string>
     <string name="configure_input_method" msgid="373356270290742459">"Misa izindlela zokufakwayo"</string>
-    <string name="language_selection_title" msgid="1651299598555326750">"Izilimi zokufakwayo"</string>
-    <string name="send_feedback" msgid="1780431884109392046">"Thumela impendulo"</string>
-    <string name="select_language" msgid="3693815588777926848">"Izilimi zokufakwayo"</string>
+    <string name="language_selection_title" msgid="3666971864764478269">"Izilimi"</string>
+    <string name="help_and_feedback" msgid="5328219371839879161">"Usizo nempendulo"</string>
+    <string name="select_language" msgid="5709487854987078367">"Izilimi"</string>
     <string name="hint_add_to_dictionary" msgid="573678656946085380">"Thinta futhi ukuze ulondoloze"</string>
+    <string name="hint_add_to_dictionary_without_word" msgid="3040385779511255101">"Thinta lapha ukuze ulondoloze"</string>
     <string name="has_dictionary" msgid="6071847973466625007">"Isichazamazwi siyatholakala"</string>
     <string name="keyboard_layout" msgid="8451164783510487501">"Indikimba yekhibhodi"</string>
+    <string name="switch_accounts" msgid="3321216593719006162">"Shintshanisa ama-akhawunti"</string>
+    <string name="no_accounts_selected" msgid="2073821619103904330">"Awekho ama-akhawunti akhethiwe"</string>
+    <string name="account_selected" msgid="2846876462199625974">"Okwamanje isebenzisa i-<xliff:g id="EMAIL_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="account_select_ok" msgid="9141195141763227797">"KULUNGILE"</string>
+    <string name="account_select_cancel" msgid="5181012062618504340">"Khansela"</string>
+    <string name="account_select_sign_out" msgid="3299651159390187933">"Phuma ngemvume"</string>
+    <string name="account_select_title" msgid="6279711684772922649">"Khetha i-akhawunti ezosetshenziswa"</string>
     <string name="subtype_en_GB" msgid="88170601942311355">"i-English(UK)"</string>
     <string name="subtype_en_US" msgid="6160452336634534239">"i-English (US)"</string>
     <string name="subtype_es_US" msgid="5583145191430180200">"I-Spanish (US)"</string>
+    <string name="subtype_hi_ZZ" msgid="8860448146262798623">"I-Hinglish"</string>
+    <string name="subtype_sr_ZZ" msgid="9059219552986034343">"Isi-Serbian (Latin)"</string>
     <string name="subtype_with_layout_en_GB" msgid="1931018968641592304">"I-English (UK) ( <xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g> )"</string>
     <string name="subtype_with_layout_en_US" msgid="8809311287529805422">"I-English (US) ( <xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g> )"</string>
     <string name="subtype_with_layout_es_US" msgid="510930471167541338">"Isi-Spanish (US) ( <xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g> )"</string>
+    <string name="subtype_with_layout_hi_ZZ" msgid="6827402953860547044">"I-Hinglish (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
+    <string name="subtype_with_layout_sr_ZZ" msgid="2859024772719772407">"Isi-Serbian (<xliff:g id="KEYBOARD_LAYOUT">%s</xliff:g>)"</string>
     <string name="subtype_generic_traditional" msgid="8584594350973800586">"Isi-<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Tradition)"</string>
-    <string name="subtype_generic_cyrillic" msgid="7486451947618138947">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Isi-Cyrillic)"</string>
-    <string name="subtype_generic_latin" msgid="9128716486310604145">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Isi-Latin)"</string>
+    <string name="subtype_generic_compact" msgid="3353673321203202922">"<xliff:g id="LANGUAGE_NAME">%s</xliff:g> (Okuqoqene ndawonye)"</string>
     <string name="subtype_no_language" msgid="7137390094240139495">"Alikho ulimi (Alfabhethi)"</string>
     <string name="subtype_no_language_qwerty" msgid="244337630616742604">"Alfabhethi (QWERTY)"</string>
     <string name="subtype_no_language_qwertz" msgid="443066912507547976">"Alfabhethi (QWERTZ)"</string>
@@ -108,16 +121,7 @@
     <string name="subtype_no_language_colemak" msgid="5837418400010302623">"Alfabhethi (Colemak)"</string>
     <string name="subtype_no_language_pcqwerty" msgid="5354918232046200018">"Alfabhethi (PC)"</string>
     <string name="subtype_emoji" msgid="7483586578074549196">"I-Emoji"</string>
-    <!-- no translation found for keyboard_theme (4909551808526178852) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_white (8506588144096428751) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_holo_blue (192400518003397418) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_dark (2701178578784760596) -->
-    <skip />
-    <!-- no translation found for keyboard_theme_material_light (3479400901818790331) -->
-    <skip />
+    <string name="keyboard_theme" msgid="4909551808526178852">"Itimu yekhibhodi"</string>
     <string name="custom_input_styles_title" msgid="8429952441821251512">"Izitayela zokufaka ngokwezifiso"</string>
     <string name="add_style" msgid="6163126614514489951">"Engeza isitayela"</string>
     <string name="add" msgid="8299699805688017798">"Engeza"</string>
@@ -129,14 +133,9 @@
     <string name="enable" msgid="5031294444630523247">"Nika amandla"</string>
     <string name="not_now" msgid="6172462888202790482">"Hhayi manje"</string>
     <string name="custom_input_style_already_exists" msgid="8008728952215449707">"Isitayela sokufaka esifanayo sesivele sikhona: <xliff:g id="INPUT_STYLE_NAME">%s</xliff:g>"</string>
-    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Ukulibazisa ukucindezela isikhashana ukhiye"</string>
     <string name="prefs_keypress_vibration_duration_settings" msgid="7918341459947439226">"Ubude besikhathi sokudlidliza ukucindezela ukhiye"</string>
     <string name="prefs_keypress_sound_volume_settings" msgid="6027007337036891623">"Ivolumu yomsindo wokucindezela ukhiye"</string>
-    <string name="prefs_read_external_dictionary" msgid="2588931418575013067">"Funda ifayela elangaphandle lesichazamazwi"</string>
-    <string name="read_external_dictionary_no_files_message" msgid="4947420942224623792">"Awekho amafayela wesichazamazwi kufolda yokulandiwe"</string>
-    <string name="read_external_dictionary_multiple_files_title" msgid="7637749044265808628">"Khetha ifayela lesichazamazwi ukuze ulifake"</string>
-    <string name="read_external_dictionary_confirm_install_message" msgid="4782116251651288054">"Fakela ngempela leli fayela i-<xliff:g id="LANGUAGE_NAME">%s</xliff:g>?"</string>
-    <string name="error" msgid="8940763624668513648">"Kube nephutha"</string>
+    <string name="prefs_key_longpress_timeout_settings" msgid="6102240298932897873">"Ukulibazisa ukucindezela isikhashana ukhiye"</string>
     <string name="button_default" msgid="3988017840431881491">"Okuzenzakalelayo"</string>
     <string name="setup_welcome_title" msgid="6112821709832031715">"Siyakwamukela ku-<xliff:g id="APPLICATION_NAME">%s</xliff:g>"</string>
     <string name="setup_welcome_additional_description" msgid="8150252008545768953">"nokuthayipha ngokuthinta"</string>
@@ -154,8 +153,6 @@
     <string name="setup_step3_instruction" msgid="8025981829605426000">"Manje usungathayipha ngokufaka zonke izinhlelo zokusebenza eziyizintandokazi zakho nge-<xliff:g id="APPLICATION_NAME">%s</xliff:g>."</string>
     <string name="setup_step3_action" msgid="600879797256942259">"Lungiselela izilimi ezingeziwe"</string>
     <string name="setup_finish_action" msgid="276559243409465389">"Iqedile"</string>
-    <string name="show_setup_wizard_icon" msgid="5008028590593710830">"Bonisa isithonjana sohlelo lokusebenza"</string>
-    <string name="show_setup_wizard_icon_summary" msgid="4119998322536880213">"Bonisa isithonjana sohlelo lokusebenza kusiqalisi"</string>
     <string name="app_name" msgid="6320102637491234792">"Umhlinzeki wesichazamazwi"</string>
     <string name="dictionary_provider_name" msgid="3027315045397363079">"Umhlinzeki wesichazamazwi"</string>
     <string name="dictionary_service_name" msgid="6237472350693511448">"Isevisi yesichazamazwi"</string>
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index f1253b4..d9e42f1 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -20,6 +20,8 @@
 
 <resources>
     <declare-styleable name="KeyboardTheme">
+        <!-- InputView style -->
+        <attr name="inputViewStyle" format="reference" />
         <!-- Keyboard style -->
         <attr name="keyboardStyle" format="reference" />
         <!-- KeyboardView style -->
@@ -41,15 +43,18 @@
     </declare-styleable>
 
     <declare-styleable name="KeyboardView">
-        <!-- Background image for the key. This image needs to be a {@link StateListDrawable},
-             with the following possible states: normal, pressed, checkable, checkable+pressed,
-             checkable+checked, checkable+checked+pressed. -->
+        <!-- Background image for the key. This image needs to be a
+            {@link android.graphics.drawable.StateListDrawable}, with the following possible states:
+             normal, pressed, checkable, checkable+pressed, checkable+checked,
+             checkable+checked+pressed. -->
         <attr name="keyBackground" format="reference" />
         <!-- Background image for the functional key. This image needs to be a
-             {@link StateListDrawable}, with the following possible states: normal, pressed. -->
+             {@link android.graphics.drawable.StateListDrawable}, with the following possible
+             states: normal, pressed. -->
         <attr name="functionalKeyBackground" format="reference" />
         <!-- Background image for the spacebar.  This image needs to be a
-             {@link StateListDrawable}, with the following possible states: normal, pressed. -->
+             {@link android.graphics.drawable.StateListDrawable}, with the following possible
+             states: normal, pressed. -->
         <attr name="spacebarBackground" format="reference" />
         <attr name="spacebarIconWidthRatio" format="float" />
         <!-- Right padding of hint letter to the edge of the key.-->
@@ -198,7 +203,8 @@
 
     <declare-styleable name="SuggestionStripView">
         <attr name="suggestionStripOptions" format="integer">
-            <!-- This should be aligned with SuggestionStripLayoutHelper.AUTO_CORRECT_* and etc. -->
+            <!-- This should be aligned with
+                 {@link com.android.inputmethod.latin.suggestions.SuggestionStripLayoutHelper.AUTO_CORRECT_BOLD} etc. -->
             <flag name="autoCorrectBold" value="0x01" />
             <flag name="autoCorrectUnderline" value="0x02" />
             <flag name="validTypedWordBold" value="0x04" />
@@ -216,7 +222,8 @@
 
     <declare-styleable name="Keyboard">
         <attr name="themeId" format="enum">
-            <!-- This should be aligned with KeyboardTheme.THEME_ID_*. -->
+            <!-- This should be aligned with
+                 {@link com.android.inputmethod.keyboard.KeyboardTheme#THEME_ID_ICS} etc. -->
             <enum name="ICS" value="0" />
             <enum name="KLP" value="2" />
             <enum name="LXXLight" value="3" />
@@ -238,8 +245,8 @@
         <attr name="verticalGap" format="fraction" />
         <!-- More keys keyboard layout template -->
         <attr name="moreKeysTemplate" format="reference" />
-        <!-- Icon set for key top and key preview.
-             These should be aligned with KeyboardIconsSet.NAMES_AND_ATTR_IDS[] -->
+        <!-- Icon set for key top and key preview. These should be aligned with
+             {@link com.android.inputmethod.keyboard.internal.KeyboardIconsSet#NAMES_AND_ATTR_IDS} -->
         <attr name="iconShiftKey" format="reference" />
         <attr name="iconDeleteKey" format="reference" />
         <attr name="iconSettingsKey" format="reference" />
@@ -285,7 +292,8 @@
         <!-- Maximum column of more keys keyboard -->
         <attr name="maxMoreKeysColumn" format="integer" />
         <attr name="backgroundType" format="enum">
-            <!-- This should be aligned with Key.BACKGROUND_TYPE_* -->
+            <!-- This should be aligned with
+                 {@link com.android.inputmethod.keyboard.Key#BACKGROUND_TYPE_NORMAL} etc. -->
             <enum name="empty" value="0" />
             <enum name="normal" value="1" />
             <enum name="functional" value="2" />
@@ -296,7 +304,8 @@
         </attr>
         <!-- The key action flags. -->
         <attr name="keyActionFlags" format="integer">
-            <!-- This should be aligned with Key.ACTION_FLAGS_* -->
+            <!-- This should be aligned with
+                 {@link com.android.inputmethod.keyboard.Key#ACTION_FLAGS_IS_REPEATABLE} etc. -->
             <flag name="isRepeatable" value="0x01" />
             <flag name="noKeyPreview" value="0x02" />
             <flag name="altCodeWhileTyping" value="0x04" />
@@ -310,7 +319,8 @@
         <attr name="keyHintLabelVerticalAdjustment" format="fraction" />
         <!-- The key label flags. -->
         <attr name="keyLabelFlags" format="integer">
-            <!-- This should be aligned with Key.LABEL_FLAGS__* -->
+            <!-- This should be aligned with
+                 {@link com.android.inputmethod.keyboard.Key#LABEL_FLAGS_FONT_NORMAL} etc. -->
             <flag name="alignHintLabelToBottom" value="0x02" />
             <flag name="alignIconToBottom" value="0x04" />
             <flag name="alignLabelOffCenter" value="0x08" />
@@ -355,7 +365,8 @@
         <!-- Width of the key, in the proportion of keyboard width.
              If the value is fillRight, the actual key width will be determined to fill out the
              area up to the right edge of the keyboard. -->
-        <!-- This should be aligned with KeyboardBuilder.Row.KEYWIDTH_* -->
+        <!-- This should be aligned with
+             {@link com.android.inputmethod.keyboard.internal.KeyboardRow#KEYWIDTH_FILL_RIGHT}. -->
         <attr name="keyWidth" format="fraction|enum">
             <enum name="fillRight" value="-1" />
         </attr>
@@ -366,7 +377,7 @@
 
         <!-- Key top visual attributes -->
         <attr name="keyTypeface" format="enum">
-            <!-- This should be aligned with Typeface.NORMAL etc. -->
+            <!-- This should be aligned with {@link android.graphics.Typeface#NORMAL} etc. -->
             <enum name="normal" value="0" />
             <enum name="bold" value="1" />
             <enum name="italic" value="2" />
@@ -389,11 +400,11 @@
         <attr name="keyShiftedLetterHintRatio" format="fraction" />
         <!-- The label's horizontal offset to the center of the key. Negative is to left and
              positive is to right. The value is in proportion of the width of
-             TypefaceUtils.KEY_LABEL_REFERENCE_CHAR. -->
+             {@link com.android.inputmethod.latin.utils.TypefaceUtils#KEY_LABEL_REFERENCE_CHAR}. -->
         <attr name="keyLabelOffCenterRatio" format="fraction" />
         <!-- The hint label's horizontal offset to the center of the key. Negative is to left and
              positive is to right. The value is in proportion of the width of
-             TypefaceUtils.KEY_LABEL_REFERENCE_CHAR. -->
+             {@link com.android.inputmethod.latin.utils.TypefaceUtils#KEY_LABEL_REFERENCE_CHAR}. -->
         <attr name="keyHintLabelOffCenterRatio" format="fraction" />
         <!-- Color to use for the label in a key. -->
         <attr name="keyTextColor" format="color" />
@@ -423,7 +434,8 @@
 
     <declare-styleable name="Keyboard_Case">
         <attr name="keyboardLayoutSet" format="string" />
-        <!-- This should be aligned with KeyboardLayoutSet_Element's elementName. -->
+        <!-- This should be aligned with
+             {@link com.android.inputmethod.keyboard.KeyboardId#ELEMENT_ALPHABET} etc. -->
         <attr name="keyboardLayoutSetElement" format="enum|string">
             <enum name="alphabet" value="0" />
             <enum name="alphabetManualShifted" value="1" />
@@ -443,14 +455,16 @@
             <enum name="emojiCategory5" value="15" />
             <enum name="emojiCategory6" value="16" />
         </attr>
-        <!-- This should be aligned with Keyboard.themeId and KeyboardTheme.THEME_ID_* -->
+        <!-- This should be aligned with Keyboard.themeId and
+             {@link com.android.inputmethod.keyboard.KeyboardTheme#THEME_ID_ICS} etc. -->
         <attr name="keyboardTheme" format="enum|string">
             <enum name="ICS" value="0" />
             <enum name="KLP" value="2" />
             <enum name="LXXLight" value="3" />
             <enum name="LXXDark" value="4" />
         </attr>
-        <!-- This should be aligned with KeyboardId.MODE_* -->
+        <!-- This should be aligned with
+             {@link com.android.inputmethod.keyboard.KeyboardId#MODE_TEXT} etc. -->
         <attr name="mode" format="enum|string">
             <enum name="text" value="0" />
             <enum name="url" value="1" />
@@ -467,7 +481,8 @@
         <attr name="languageSwitchKeyEnabled" format="boolean" />
         <attr name="isMultiLine" format="boolean" />
         <attr name="imeAction" format="enum">
-            <!-- This should be aligned with EditorInfo.IME_ACTION_* -->
+            <!-- This should be aligned with
+                 {@link android.view.inputmethod.EditorInfo#IME_ACTION_GO} etc. -->
             <enum name="actionUnspecified" value="0" />
             <enum name="actionNone" value="1" />
             <enum name="actionGo" value="2" />
@@ -476,13 +491,16 @@
             <enum name="actionNext" value="5" />
             <enum name="actionDone" value="6" />
             <enum name="actionPrevious" value="7" />
-            <!--  This should be aligned with KeyboardId.IME_ACTION_* -->
+            <!-- This should be aligned with
+                 {@link com.android.inputmethod.latin.utils.InputTypeUtils#IME_ACTION_CUSTOM_LABEL}. -->
             <enum name="actionCustomLabel" value="0x100" />
         </attr>
         <attr name="isIconDefined" format="string" />
         <attr name="localeCode" format="string" />
         <attr name="languageCode" format="string" />
         <attr name="countryCode" format="string" />
+        <!-- Enable split keyboard layout. Disabled by default. -->
+        <attr name="isSplitLayout" format="boolean" />
     </declare-styleable>
 
     <declare-styleable name="Keyboard_KeyStyle">
@@ -491,7 +509,8 @@
     </declare-styleable>
 
     <declare-styleable name="KeyboardLayoutSet_Element">
-        <!-- This should be aligned with KeyboardId.ELEMENT_* -->
+        <!-- This should be aligned with
+             {@link com.android.inputmethod.keyboard.KeyboardId#ELEMENT_ALPHABET} etc. -->
         <attr name="elementName" format="enum">
             <enum name="alphabet" value="0" />
             <enum name="alphabetManualShifted" value="1" />
@@ -514,10 +533,15 @@
         <attr name="elementKeyboard" format="reference"/>
         <!-- Enable proximity characters correction. Disabled by default. -->
         <attr name="enableProximityCharsCorrection" format="boolean" />
+        <!-- Indicates if the keyboard layout supports being split or not. false by default -->
+        <attr name="supportsSplitLayout" format="boolean" />
+        <!-- Allow redundant more keys when they are in the base layout. true by default. -->
+        <attr name="allowRedundantMoreKeys" format="boolean" />
     </declare-styleable>
 
     <declare-styleable name="KeyboardLayoutSet_Feature">
-        <!-- This should be aligned with ScriptUtils.SCRIPT_* -->
+        <!-- This should be aligned with
+             {@link com.android.inputmethod.latin.utils.ScriptUtils#SCRIPT_ARABIC} etc. -->
         <attr name="supportedScript" format="enum">
             <enum name="arabic" value="0" />
             <enum name="armenian" value="1" />
@@ -532,7 +556,7 @@
             <enum name="lao" value="10" />
             <enum name="latin" value="11" />
             <enum name="malayalam" value="12" />
-            <enum name="myanmar" value="13" />
+            <!-- Myanmar is disabled. <enum name="myanmar" value="13" /> -->
             <enum name="sinhala" value="14" />
             <enum name="tamil" value="15" />
             <enum name="telugu" value="16" />
diff --git a/java/res/values/config-auto-correction-thresholds.xml b/java/res/values/config-auto-correction-thresholds.xml
index 7d94a42..fc701c7 100644
--- a/java/res/values/config-auto-correction-thresholds.xml
+++ b/java/res/values/config-auto-correction-thresholds.xml
@@ -34,6 +34,12 @@
         <item>floatNegativeInfinity</item>
     </string-array>
 
+    <!-- Chosen to be slightly less than the "aggressive" threshold. This is the threshold for
+         a mildly plausible suggestion given the input; if no "plausible" suggestion is present
+         for a language, it's a strong indicator the user is not typing in this language, so we
+         may be more forgiving of whitelist entries in another language. -->
+    <string name="plausibility_threshold" translatable="false">0.065</string>
+
     <!-- The index of the auto correction threshold values array. -->
     <string name="auto_correction_threshold_mode_index_off" translatable="false">0</string>
     <string name="auto_correction_threshold_mode_index_modest" translatable="false">1</string>
diff --git a/java/res/values/config-common.xml b/java/res/values/config-common.xml
index 36fd30a..fb20f7c 100644
--- a/java/res/values/config-common.xml
+++ b/java/res/values/config-common.xml
@@ -20,8 +20,8 @@
 
 <resources>
     <bool name="config_block_potentially_offensive">true</bool>
-    <!-- Default value for next word prediction: after entering a word and a space only, should we look
-         at input history to suggest a hopefully helpful suggestions for the next word? -->
+    <!-- Default value for next word prediction: after entering a word and a space only, should we
+         look at input history to suggest a hopefully helpful suggestions for the next word? -->
     <bool name="config_default_next_word_prediction">true</bool>
 
     <integer name="config_delay_in_milliseconds_to_update_shift_state">100</integer>
diff --git a/java/res/values/config-dictionary-pack.xml b/java/res/values/config-dictionary-pack.xml
index d076af4..bf52de8 100644
--- a/java/res/values/config-dictionary-pack.xml
+++ b/java/res/values/config-dictionary-pack.xml
@@ -25,6 +25,6 @@
     <bool name="allow_over_roaming">false</bool>
     <bool name="dict_downloads_visible_in_download_UI">false</bool>
     <bool name="metadata_downloads_visible_in_download_UI">false</bool>
-    <bool name="display_notification_for_auto_update">false</bool>
-    <bool name="display_notification_for_user_requested_update">false</bool>
+    <bool name="display_notification_for_auto_update">true</bool>
+    <bool name="display_notification_for_user_requested_update">true</bool>
 </resources>
diff --git a/java/res/values/donottranslate-config-spacing-and-punctuations.xml b/java/res/values/donottranslate-config-spacing-and-punctuations.xml
index 2faf578..06144d0 100644
--- a/java/res/values/donottranslate-config-spacing-and-punctuations.xml
+++ b/java/res/values/donottranslate-config-spacing-and-punctuations.xml
@@ -33,9 +33,14 @@
     <string name="symbols_word_separators">"&#x0009;&#x0020;&#x000A;&#x00A0;"()[]{}*&amp;&lt;&gt;+=|.,;:!?/_\"</string>
     <!-- Word connectors -->
     <string name="symbols_word_connectors">\'-</string>
-    <!-- The sentence separator code point, for capitalization -->
+    <!-- The sentence separator code point, for capitalization and auto-insertion -->
     <!-- U+002E: "." FULL STOP   ; 2Eh = 46d -->
     <integer name="sentence_separator">46</integer>
+    <!-- The abbreviation marker code point -->
+    <!-- U+002E: "." FULL STOP   ; 2Eh = 46d -->
+    <integer name="abbreviation_marker">46</integer>
+    <!-- Symbols that terminate sentences and require capitalization on the next char -->
+    <string name="symbols_sentence_terminators">.?!</string>
     <!-- Whether this language uses spaces between words -->
     <bool name="current_language_has_spaces">true</bool>
 </resources>
diff --git a/java/res/values/donottranslate-debug-settings.xml b/java/res/values/donottranslate-debug-settings.xml
index 35e6efa..9df73ae 100644
--- a/java/res/values/donottranslate-debug-settings.xml
+++ b/java/res/values/donottranslate-debug-settings.xml
@@ -22,14 +22,11 @@
     <string name="english_ime_debug_settings">Android Keyboard Debug settings</string>
     <string name="prefs_debug_mode">Debug Mode</string>
     <string name="prefs_force_non_distinct_multitouch">Force non-distinct multitouch</string>
-    <string name="prefs_force_physical_keyboard_special_key">Force physical keyboard special key</string>
-    <string name="prefs_show_ui_to_accept_typed_word">Show UI to accept typed word</string>
+    <string name="prefs_should_show_lxx_suggestion_ui">Show LXX suggestion UI</string>
     <!-- Option to enable sliding key input indicator. The user can see a rubber band-like effect during sliding key input. [CHAR LIMIT=30]-->
     <string name="sliding_key_input_preview">Show slide indicator</string>
     <!-- Option summary to enable sliding key input indicator. The user can see a rubber band-like effect during sliding key input. [CHAR LIMIT=66]-->
     <string name="sliding_key_input_preview_summary">Display visual cue while sliding from Shift or Symbol keys</string>
-    <!-- Title of the settings for key long press delay [CHAR LIMIT=35] -->
-    <string name="prefs_key_longpress_timeout_settings">Key long press delay</string>
     <!-- Title of the settings for customize key popup animation parameters [CHAR LIMIT=35] -->
     <string name="prefs_customize_key_preview_animation">Customize key preview animation</string>
     <!-- Title of the settings for key popup show up animation duration (in milliseconds) [CHAR LIMIT=35] -->
@@ -44,16 +41,10 @@
     <string name="prefs_key_popup_dismiss_end_x_scale_settings">Key popup dismiss end X scale</string>
     <!-- Title of the settings for key popup dismiss animation end Y-scale (in percentile) [CHAR LIMIT=35] -->
     <string name="prefs_key_popup_dismiss_end_y_scale_settings">Key popup dismiss end Y scale</string>
-    <!-- Title of the settings for reading an external dictionary file -->
-    <string name="prefs_read_external_dictionary">Read external dictionary file</string>
-    <!-- Message to show when there are no files to install as an external dictionary [CHAR LIMIT=100] -->
-    <string name="read_external_dictionary_no_files_message">No dictionary files in the Downloads folder</string>
-    <!-- Title of the dialog that selects a file to install as an external dictionary [CHAR LIMIT=50] -->
-    <string name="read_external_dictionary_multiple_files_title">Select a dictionary file to install</string>
-    <!-- Title of the confirmation dialog to install a file as an external dictionary [CHAR LIMIT=50] -->
-    <string name="read_external_dictionary_confirm_install_message">Really install this file for <xliff:g id="LANGUAGE_NAME" example="English">%s</xliff:g>?</string>
-    <!-- Title for an error dialog that contains the details of the error in the body [CHAR LIMIT=80] -->
-    <string name="read_external_dictionary_error">There was an error</string>
+    <!-- Title of the settings to enable keyboard resizing -->
+    <string name="prefs_resize_keyboard">Enable keyboard resizing</string>
+    <!-- Title of the settings for setting keyboard height -->
+    <string name="prefs_keyboard_height_scale">Keyboard height scale</string>
     <!-- Title of the settings group for dumpping dictionary files that have been created on the device [CHAR LIMIT=35] -->
     <string name="prefs_dump_dynamic_dicts">Dump dictionary</string>
 </resources>
diff --git a/java/res/values/donottranslate-text-decorator.xml b/java/res/values/donottranslate-text-decorator.xml
deleted file mode 100644
index 2693645..0000000
--- a/java/res/values/donottranslate-text-decorator.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2014, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<resources>
-    <!-- The extra margin in dp around the hit area of the commit/add-to-dictionary indicator -->
-    <integer name="text_decorator_hit_area_margin_in_dp">
-        4
-    </integer>
-
-    <!-- Background color to be used to highlight the target text when the add-to-dictionary
-         indicator is visible. -->
-    <color name="text_decorator_add_to_dictionary_indicator_text_highlight_color">
-        #D1E7B7
-    </color>
-
-    <!-- Foreground color of the commit indicator. -->
-    <color name="text_decorator_add_to_dictionary_indicator_background_color">
-        #4EB848
-    </color>
-
-    <!-- Foreground color of the add-to-dictionary indicator. -->
-    <color name="text_decorator_add_to_dictionary_indicator_foreground_color">
-        #FFFFFF
-    </color>
-
-    <!-- Viewport size of "text_decorator_add_to_dictionary_indicator_path". -->
-    <integer name="text_decorator_add_to_dictionary_indicator_path_size">
-        480
-    </integer>
-
-    <!-- Coordinates of the closed path to be used to render the add-to-dictionary indicator.
-         The format is: X[0], Y[0], X[1], Y[1], ..., X[N-1], Y[N-1] -->
-    <integer-array name="text_decorator_add_to_dictionary_indicator_path">
-        <item>380</item>
-        <item>260</item>
-        <item>260</item>
-        <item>260</item>
-        <item>260</item>
-        <item>380</item>
-        <item>220</item>
-        <item>380</item>
-        <item>220</item>
-        <item>260</item>
-        <item>100</item>
-        <item>260</item>
-        <item>100</item>
-        <item>220</item>
-        <item>220</item>
-        <item>220</item>
-        <item>220</item>
-        <item>100</item>
-        <item>260</item>
-        <item>100</item>
-        <item>260</item>
-        <item>220</item>
-        <item>380</item>
-        <item>220</item>
-    </integer-array>
-</resources>
diff --git a/java/res/values/donottranslate.xml b/java/res/values/donottranslate.xml
index c54b995..08d8bb2 100644
--- a/java/res/values/donottranslate.xml
+++ b/java/res/values/donottranslate.xml
@@ -19,7 +19,7 @@
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <!-- For backward compatibility.
-         See {@link SettingsValues#needsToShowVoiceInputKey(SharedPreferences,Resources)} -->
+         @see com.android.inputmethod.latin.settings.SettingsValues#needsToShowVoiceInputKey(android.content.SharedPreferences,android.content.res.Resources) -->
     <string name="voice_mode_main">0</string>
 
     <!-- Subtype locale display name exceptions.
@@ -30,8 +30,18 @@
         <item>en_US</item>
         <item>en_GB</item>
         <item>es_US</item>
+        <item>hi_ZZ</item>
+        <item>sr_ZZ</item>
     </string-array>
 
+    <!-- Subtype locale whose name should be displayed in Locale.ROOT. -->
+    <string-array name="subtype_locale_displayed_in_root_locale">
+        <item>hi_ZZ</item>
+        <item>sr_ZZ</item>
+    </string-array>
+    <string name="subtype_in_root_locale_hi_ZZ">Hinglish</string>
+    <string name="subtype_in_root_locale_sr_ZZ">Srpski</string>
+
     <!-- Generic subtype label -->
     <string name="subtype_generic">%s</string>
 
diff --git a/java/res/values/keyboard-themes.xml b/java/res/values/keyboard-themes.xml
index 9d772c4..26b2582 100644
--- a/java/res/values/keyboard-themes.xml
+++ b/java/res/values/keyboard-themes.xml
@@ -25,11 +25,12 @@
         <item>@string/keyboard_theme_holo_white</item>
         <item>@string/keyboard_theme_holo_blue</item>
     </string-array>
-    <!-- An element must be a keyboard theme id of {@link KeyboardTheme#THEME_ID_*}. -->
-    <string-array name="keyboard_theme_ids" translatable="false">
+    <!-- An element must be a keyboard theme id of
+         {@link com.android.inputmethod.keyboard.KeyboardTheme#THEME_ID_ICS} etc. -->
+    <integer-array name="keyboard_theme_ids" translatable="false">
         <item>3</item>
         <item>4</item>
         <item>2</item>
         <item>0</item>
-    </string-array>
+    </integer-array>
 </resources>
diff --git a/java/res/values/setup-wizard.xml b/java/res/values/setup-wizard.xml
index 8464709..90c3eca 100644
--- a/java/res/values/setup-wizard.xml
+++ b/java/res/values/setup-wizard.xml
@@ -18,5 +18,4 @@
 */
 -->
 <resources>
-    <bool name="config_setup_wizard_available">false</bool>
 </resources>
diff --git a/java/res/values/spinner-style.xml b/java/res/values/spinner-style.xml
new file mode 100644
index 0000000..c0f32ab
--- /dev/null
+++ b/java/res/values/spinner-style.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+    <!-- Until KitKat (API 19), {@link android.widget.Spinner} of dialog mode in a Dialog can't
+         handle orientation change correctly. Using dropdown mode avoids the issue.
+         This file is overridden by values-v19/spinner-style.xml on KitKat and up. -->
+    <style name="additionalSubtypeSpinnerStyle">
+        <item name="android:spinnerMode">dropdown</item>
+    </style>
+</resources>
diff --git a/java/res/values/strings-talkback-descriptions.xml b/java/res/values/strings-talkback-descriptions.xml
index 80c7bdb..9644271 100644
--- a/java/res/values/strings-talkback-descriptions.xml
+++ b/java/res/values/strings-talkback-descriptions.xml
@@ -31,6 +31,9 @@
     <!-- Spoken description used during obscured (e.g. password) entry to let the user know that auto-correction will be performed when a key is pressed. -->
     <string name="spoken_auto_correct_obscured"><xliff:g id="KEY_NAME" example="Space">%1$s</xliff:g> performs auto-correction</string>
 
+    <!-- Spoken description of a suggestion when nothing is specified and the field is blank. -->
+    <string name="spoken_empty_suggestion">No suggestion</string>
+
     <!-- Spoken description for unknown keyboard keys. -->
     <string name="spoken_description_unknown">Unknown character</string>
     <!-- Spoken description for the "Shift" keyboard key when "Shift" is off. -->
@@ -139,6 +142,18 @@
     <string name="spoken_symbol_unknown">Unknown symbol</string>
     <!-- Spoken description for unknown emoji code point. -->
     <string name="spoken_emoji_unknown">Unknown emoji</string>
+    <!-- Spoken description for emoticons ":-!". -->
+    <string name="spoken_emoticon_3A_2D_21_20">Bored face</string>
+    <!-- Spoken description for emoticons ":-$". -->
+    <string name="spoken_emoticon_3A_2D_24_20">Embarrassed face</string>
+    <!-- Spoken description for emoticons "B-)". -->
+    <string name="spoken_emoticon_42_2D_29_20">Face wearing sunglasses</string>
+    <!-- Spoken description for emoticons ":O". -->
+    <string name="spoken_emoticon_3A_4F_20">Surprised face</string>
+    <!-- Spoken description for emoticons ":-*". -->
+    <string name="spoken_emoticon_3A_2D_2A_20">Kissing face</string>
+    <!-- Spoken description for emoticons ":-[". -->
+    <string name="spoken_emoticon_3A_2D_5B_20">Frowning face</string>
 
     <!-- Spoken descriptions when opening a more keys keyboard that has alternative characters. -->
     <string name="spoken_open_more_keys_keyboard">Alternative characters are available</string>
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index 2f8b380..5655a55 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -38,10 +38,10 @@
 
     <!-- Settings screen title for preferences [CHAR LIMIT=33]-->
     <string name="settings_screen_preferences">Preferences</string>
+    <!-- Settings screen title for accounts and privacy preferences [CHAR LIMIT=33]-->
+    <string name="settings_screen_accounts">Accounts &amp; Privacy</string>
     <!-- Settings screen title for appearance & layouts preferences [CHAR LIMIT=33] -->
-    <string name="settings_screen_appearance">Appearance &amp; layouts</string>
-    <!-- Settings screen title for multilingual options [CHAR_LIMIT=33] -->
-    <string name="settings_screen_multilingual">Multilingual options</string>
+    <string name="settings_screen_appearance">Appearance &amp; Layouts</string>
     <!-- Settings screen title for gesture typing preferences [CHAR_LIMIT=33] -->
     <string name="settings_screen_gesture">Gesture Typing</string>
     <!-- Settings screen title for text correction options [CHAR_LIMIT=33] -->
@@ -51,6 +51,38 @@
     <!-- Settings screen title for keyboard theme settings [CHAR LIMIT=33] -->
     <string name="settings_screen_theme">Theme</string>
 
+    <!--  Option for enabling or disabling the split keyboard layout. [CHAR LIMIT=65]-->
+    <string name="enable_split_keyboard">Enable split keyboard</string>
+
+    <!-- Option title for enabling cloud sync feature [CHAR LIMIT=33]-->
+    <string name="cloud_sync_title">Google Keyboard Sync</string>
+    <!-- Option summary when cloud sync feature is enabled  [CHAR LIMIT=65] -->
+    <string name="cloud_sync_summary">Sync is turned on</string>
+    <!-- Option summary when cloud sync feature is disabled  [CHAR LIMIT=65] -->
+    <string name="cloud_sync_summary_disabled">Sync your personal dictionary across devices</string>
+    <!-- Option title for starting the sync cycle now. [CHAR LIMIT=33]-->
+    <string name="sync_now_title">Sync now</string>
+    <!-- Option title for letting user delete synced google keyboard data from Google servers.  [CHAR LIMIT=35] -->
+    <string name="clear_sync_data_title">Delete cloud data</string>
+    <!-- Option summary for letting user delete synced google keyboard data from Google servers. [CHAR LIMIT=65] -->
+    <string name="clear_sync_data_summary">Deletes your synced data from Google</string>
+    <!-- Text for confirmation dialog box asking user to confirm deletion of cloud data. [CHAR LIMIT=65] -->
+    <string name="clear_sync_data_confirmation">Your synced data will be deleted from the cloud. Are you sure?</string>
+    <!-- Option to confirm deleting of user data from cloud [CHAR LIMIT=20] -->
+    <string name="clear_sync_data_ok">Delete</string>
+    <!-- Option to cancel the deletion of user data from cloud [CHAR LIMIT=20] -->
+    <string name="cloud_sync_cancel">Cancel</string>
+    <!-- Option to agree to terms and conditions for enabling cloud sync feature. -->
+    <string name="cloud_sync_opt_in_text">Your personal dictionary will be synced and backed up to
+        Google servers. The statistical information of word frequency may be collected to help
+        improve our products. The collection and usage of all the information will be compliant with
+        <a href="https://www.google.com/policies/privacy">Google\'s Privacy Policy</a>.
+    </string>
+    <!-- Text to tell the user to add a Google account to the device to enable the cloud sync feature. [CHAR LIMIT=65]-->
+    <string name="add_account_to_enable_sync">
+        Please add a Google account to this device to enable this feature
+    </string>
+
     <!-- Option name for including other IMEs in the language switch list [CHAR LIMIT=30] -->
     <string name="include_other_imes_in_language_switch_list">Switch to other input methods</string>
     <!-- Option summary for including other IMEs in the language switch list [CHAR LIMIT=65] -->
@@ -174,6 +206,23 @@
     <!-- Title of the item to change the keyboard theme [CHAR LIMIT=20]-->
     <string name="keyboard_layout">Keyboard theme</string>
 
+    <!-- Title of the preference item for switching accounts [CHAR LIMIT=30] -->
+    <string name="switch_accounts">Switch accounts</string>
+    <!-- Summary of the preference item for switching accounts when no accounts
+         are selected [CHAR LIMIT=65] -->
+    <string name="no_accounts_selected">No accounts selected</string>
+    <!-- Summary of the preference item for switching accounts when an account
+         is selected [CHAR LIMIT=65] -->
+    <string name="account_selected">Currently using <xliff:g id="EMAIL_ADDRESS" example="someone@example.com">%1$s</xliff:g></string>
+    <!-- Positive text for selecting an account -->
+    <string name="account_select_ok">OK</string>
+    <!-- Negative text for selecting an account -->
+    <string name="account_select_cancel">Cancel</string>
+    <!-- Text for signing out of an account -->
+    <string name="account_select_sign_out">Sign out</string>
+    <!-- Title of the account picker dialog for selecting an account [CHAR LIMIT=40] -->
+    <string name="account_select_title">Select an account to use</string>
+
     <!-- Description for English (UK) keyboard subtype [CHAR LIMIT=25]
          (UK) should be an abbreviation of United Kingdom to fit in the CHAR LIMIT. -->
     <string name="subtype_en_GB">English (UK)</string>
@@ -183,6 +232,11 @@
     <!-- Description for Spanish (US) keyboard subtype [CHAR LIMIT=25]
          (US) should be an abbreviation of United States to fit in the CHAR LIMIT. -->
     <string name="subtype_es_US">Spanish (US)</string>
+    <!-- Description for Hinglish (https://en.wikipedia.org/wiki/Hinglish) keyboard subtype [CHAR LIMIT=25] -->
+    <string name="subtype_hi_ZZ">Hinglish</string>
+    <!-- Description for Serbian (Latin) keyboard subtype [CHAR LIMIT=25]
+         (Latin) can be an abbreviation to fit in the CHAR LIMIT. -->
+    <string name="subtype_sr_ZZ">Serbian (Latin)</string>
     <!-- Description for English (UK) keyboard subtype with explicit keyboard layout [CHAR LIMIT=25]
          (UK) should be an abbreviation of United Kingdom to fit in the CHAR LIMIT.
          This should be identical to subtype_en_GB aside from the trailing (%s). -->
@@ -195,19 +249,18 @@
          (US) should be an abbreviation of United Statesn to fit in the CHAR LIMIT.
          This should be identical to subtype_es_US aside from the trailing (%s). -->
     <string name="subtype_with_layout_es_US">Spanish (US) (<xliff:g id="KEYBOARD_LAYOUT" example="QWERTY">%s</xliff:g>)</string>
+    <!-- Description for Hinglish (https://en.wikipedia.org/wiki/Hinglish) keyboard subtype with explicit keyboard layout [CHAR LIMIT=25]
+         This should be identical to subtype_hi_ZZ aside from the trailing (%s). -->
+    <string name="subtype_with_layout_hi_ZZ">Hinglish (<xliff:g id="KEYBOARD_LAYOUT" example="QWERTY">%s</xliff:g>)</string>
+    <!-- Description for Serbian (Latin) keyboard subtype with explicit keyboard layout [CHAR LIMIT=25]
+         This should be identical to subtype_sr_ZZ aside from the trailing (%s). -->
+    <string name="subtype_with_layout_sr_ZZ">Serbian (<xliff:g id="KEYBOARD_LAYOUT" example="QWERTY">%s</xliff:g>)</string>
     <!-- Description for "LANGUAGE_NAME" (Traditional) keyboard subtype [CHAR LIMIT=25]
          (Traditional) can be an abbreviation to fit in the CHAR LIMIT. -->
     <string name="subtype_generic_traditional"><xliff:g id="LANGUAGE_NAME" example="Nepali">%s</xliff:g> (Traditional)</string>
     <!-- Description for "LANGUAGE_NAME" (Compact) keyboard subtype [CHAR LIMIT=25]
-         (Compact) can be an abbreviation to fit in the CHAR LIMIT.
-         TODO: Remove translatable=false once we are settled down with the naming. -->
-    <string name="subtype_generic_compact" translatable="false"><xliff:g id="LANGUAGE_NAME" example="Hindi">%s</xliff:g> (Compact)</string>
-    <!-- Description for "LANGUAGE_NAME" (Cyrillic) keyboard subtype [CHAR LIMIT=25]
-         (Cyrillic) can be an abbreviation to fit in the CHAR LIMIT. -->
-    <string name="subtype_generic_cyrillic"><xliff:g id="LANGUAGE_NAME" example="Serbian">%s</xliff:g> (Cyrillic)</string>
-    <!-- Description for "LANGUAGE_NAME" (Latin) keyboard subtype [CHAR LIMIT=25]
-         (Latin) can be an abbreviation to fit in the CHAR LIMIT. -->
-    <string name="subtype_generic_latin"><xliff:g id="LANGUAGE_NAME" example="Serbian">%s</xliff:g> (Latin)</string>
+         (Compact) can be an abbreviation to fit in the CHAR LIMIT. -->
+    <string name="subtype_generic_compact"><xliff:g id="LANGUAGE_NAME" example="Hindi">%s</xliff:g> (Compact)</string>
     <!-- This string is displayed in a language list that allows to choose a language for
 suggestions in a software keyboard. This setting won't give suggestions in any particular
 language, hence "No language".
@@ -326,6 +379,14 @@
     <string name="prefs_keypress_vibration_duration_settings">Keypress vibration duration</string>
     <!-- Title of the settings for keypress sound volume [CHAR LIMIT=35] -->
     <string name="prefs_keypress_sound_volume_settings">Keypress sound volume</string>
+    <!-- Title of the settings for key long press delay [CHAR LIMIT=35] -->
+    <string name="prefs_key_longpress_timeout_settings">Key long press delay</string>
+    <!-- TODO: Let's finalize title of the settings and remove translatable="false" -->
+    <!-- Title of the settings for enabling Emoji palette triggered by the Alt key on physical keyboards [CHAR LIMIT=35] -->
+    <string name="prefs_enable_emoji_alt_physical_key" translatable="false">Emoji for physical keyboard</string>
+    <!-- TODO: Let's finalize title of the settings and remove translatable="false" -->
+    <!-- Description of the settings for enabling Emoji palette triggered by the Alt key on physical keyboards [CHAR LIMIT=64] -->
+    <string name="prefs_enable_emoji_alt_physical_key_summary" translatable="false">Physical Alt key shows the emoji palette</string>
 
     <!-- Title of the button to revert to the default value of the device in the settings dialog [CHAR LIMIT=15] -->
     <string name="button_default">Default</string>
@@ -368,10 +429,6 @@
     <string name="setup_step3_action">Configure additional languages</string>
     <!-- The label of the button that finishes the setup wizard. [CHAR_LIMIT=64] -->
     <string name="setup_finish_action">Finished</string>
-    <!-- Option to show setup wizard icon. [CHAR LIMIT=30]-->
-    <string name="show_setup_wizard_icon">Show app icon</string>
-    <!-- Description for the option to show setup wizard application icon of this IME in the laucher. [CHAR_LIMIT=65] -->
-    <string name="show_setup_wizard_icon_summary">Display application icon in the launcher</string>
 
     <!-- The dictionary provider application name. Visible in Settings/Applications/Manage applications. -->
     <string name="app_name">Dictionary Provider</string>
diff --git a/java/res/values/themes-common.xml b/java/res/values/themes-common.xml
index 110f6b7..2f768de 100644
--- a/java/res/values/themes-common.xml
+++ b/java/res/values/themes-common.xml
@@ -20,6 +20,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android">
     <style name="KeyboardIcons" />
+    <style name="InputView" />
     <!-- Default theme values -->
     <style name="Keyboard">
         <item name="rowHeight">25%p</item>
@@ -104,8 +105,10 @@
     <style
         name="MainKeyboardView"
         parent="KeyboardView" />
-    <!-- Though {@link EmojiPalettesView} doesn't extend {@link KeyboardView}, some views inside it,
-         for instance delete button, need themed {@link KeyboardView} attributes. -->
+    <!-- Though {@link com.android.inputmethod.keyboard.emoji.EmojiPalettesView} doesn't extend
+         {@link com.android.inputmethod.keyboard.KeyboardView}, some views inside it, for instance
+         delete button, need themed {@link com.android.inputmethod.keyboard.KeyboardView}
+         attributes. -->
     <style name="EmojiPalettesView" />
     <style name="MoreKeysKeyboard" />
     <style name="MoreKeysKeyboardView" />
diff --git a/java/res/values/themes-holo.xml b/java/res/values/themes-holo.xml
index 9f1bd2f..efac656 100644
--- a/java/res/values/themes-holo.xml
+++ b/java/res/values/themes-holo.xml
@@ -19,6 +19,10 @@
 -->
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android">
+    <style
+        name="InputView.Holo"
+        parent="InputView"
+    />
     <!-- Holo KeyboardView theme (ICS and KLP) -->
     <style
         name="KeyboardView.Holo"
diff --git a/java/res/values/themes-ics.xml b/java/res/values/themes-ics.xml
index bfbac0a..26ebd2f 100644
--- a/java/res/values/themes-ics.xml
+++ b/java/res/values/themes-ics.xml
@@ -20,6 +20,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android">
     <style name="KeyboardTheme.ICS" parent="KeyboardIcons.Holo">
+        <item name="inputViewStyle">@style/InputView.Holo</item>
         <item name="keyboardStyle">@style/Keyboard.ICS</item>
         <item name="keyboardViewStyle">@style/KeyboardView.ICS</item>
         <item name="mainKeyboardViewStyle">@style/MainKeyboardView.ICS</item>
@@ -72,8 +73,10 @@
         <item name="languageOnSpacebarTextShadowRadius">1.0</item>
         <item name="languageOnSpacebarTextShadowColor">@color/spacebar_text_shadow_color_holo</item>
     </style>
-    <!-- Though {@link EmojiPalettesView} doesn't extend {@link KeyboardView}, some views inside it,
-         for instance delete button, need themed {@link KeyboardView} attributes. -->
+    <!-- Though {@link com.android.inputmethod.keyboard.emoji.EmojiPalettesView} doesn't extend
+         {@link com.android.inputmethod.keyboard.KeyboardView}, some views inside it, for instance
+         delete button, need themed {@link com.android.inputmethod.keyboard.KeyboardView}
+         attributes. -->
     <style
         name="EmojiPalettesView.ICS"
         parent="MainKeyboardView.ICS"
diff --git a/java/res/values/themes-klp.xml b/java/res/values/themes-klp.xml
index 36b1fc1..c8e11a9 100644
--- a/java/res/values/themes-klp.xml
+++ b/java/res/values/themes-klp.xml
@@ -20,6 +20,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android">
     <style name="KeyboardTheme.KLP" parent="KeyboardIcons.Holo">
+        <item name="inputViewStyle">@style/InputView.Holo</item>
         <item name="keyboardStyle">@style/Keyboard.KLP</item>
         <item name="keyboardViewStyle">@style/KeyboardView.KLP</item>
         <item name="mainKeyboardViewStyle">@style/MainKeyboardView.KLP</item>
@@ -72,8 +73,10 @@
         <item name="languageOnSpacebarTextShadowRadius">1.0</item>
         <item name="languageOnSpacebarTextShadowColor">@color/spacebar_text_shadow_color_holo</item>
     </style>
-    <!-- Though {@link EmojiPalettesView} doesn't extend {@link KeyboardView}, some views inside it,
-         for instance delete button, need themed {@link KeyboardView} attributes. -->
+    <!-- Though {@link com.android.inputmethod.keyboard.emoji.EmojiPalettesView} doesn't extend
+         {@link com.android.inputmethod.keyboard.KeyboardView}, some views inside it, for instance
+         delete button, need themed {@link com.android.inputmethod.keyboard.KeyboardView}
+         attributes. -->
     <style
         name="EmojiPalettesView.KLP"
         parent="MainKeyboardView.KLP"
diff --git a/java/res/values/themes-lxx-dark.xml b/java/res/values/themes-lxx-dark.xml
index 67f94f3..0535064 100644
--- a/java/res/values/themes-lxx-dark.xml
+++ b/java/res/values/themes-lxx-dark.xml
@@ -20,6 +20,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android">
     <style name="KeyboardTheme.LXX_Dark" parent="KeyboardIcons.LXX_Dark">
+        <item name="inputViewStyle">@style/InputView.LXX</item>
         <item name="keyboardStyle">@style/Keyboard.LXX_Dark</item>
         <item name="keyboardViewStyle">@style/KeyboardView.LXX_Dark</item>
         <item name="mainKeyboardViewStyle">@style/MainKeyboardView.LXX_Dark</item>
@@ -72,8 +73,10 @@
         <!-- A negative value to disable text shadow layer. -->
         <item name="languageOnSpacebarTextShadowRadius">-1.0</item>
     </style>
-    <!-- Though {@link EmojiPalettesView} doesn't extend {@link KeyboardView}, some views inside it,
-         for instance delete button, need themed {@link KeyboardView} attributes. -->
+    <!-- Though {@link com.android.inputmethod.keyboard.emoji.EmojiPalettesView} doesn't extend
+         {@link com.android.inputmethod.keyboard.KeyboardView}, some views inside it, for instance
+         delete button, need themed {@link com.android.inputmethod.keyboard.KeyboardView}
+         attributes. -->
     <style
         name="EmojiPalettesView.LXX_Dark"
         parent="MainKeyboardView.LXX_Dark"
diff --git a/java/res/values/themes-lxx-light.xml b/java/res/values/themes-lxx-light.xml
index be817f4..80e88b8 100644
--- a/java/res/values/themes-lxx-light.xml
+++ b/java/res/values/themes-lxx-light.xml
@@ -20,6 +20,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android">
     <style name="KeyboardTheme.LXX_Light" parent="KeyboardIcons.LXX_Light">
+        <item name="inputViewStyle">@style/InputView.LXX</item>
         <item name="keyboardStyle">@style/Keyboard.LXX_Light</item>
         <item name="keyboardViewStyle">@style/KeyboardView.LXX_Light</item>
         <item name="mainKeyboardViewStyle">@style/MainKeyboardView.LXX_Light</item>
@@ -72,8 +73,10 @@
         <!-- A negative value to disable text shadow layer. -->
         <item name="languageOnSpacebarTextShadowRadius">-1.0</item>
     </style>
-    <!-- Though {@link EmojiPalettesView} doesn't extend {@link KeyboardView}, some views inside it,
-         for instance delete button, need themed {@link KeyboardView} attributes. -->
+    <!-- Though {@link com.android.inputmethod.keyboard.emoji.EmojiPalettesView} doesn't extend
+         {@link com.android.inputmethod.keyboard.KeyboardView}, some views inside it, for instance
+         delete button, need themed {@link com.android.inputmethod.keyboard.KeyboardView}
+         attributes. -->
     <style
         name="EmojiPalettesView.LXX_Light"
         parent="MainKeyboardView.LXX_Light"
diff --git a/java/res/values/themes-lxx.xml b/java/res/values/themes-lxx.xml
index c721888..463306b 100644
--- a/java/res/values/themes-lxx.xml
+++ b/java/res/values/themes-lxx.xml
@@ -19,6 +19,10 @@
 -->
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android">
+    <style
+        name="InputView.LXX"
+        parent="InputView"
+    />
     <!-- LXX KeyboardView theme (LXX_Light and LXX_Dark) -->
     <style
         name="KeyboardView.LXX"
diff --git a/java/res/xml-sw600dp-land/key_space_3kw.xml b/java/res/xml-sw600dp-land/key_space_3kw.xml
new file mode 100644
index 0000000..47c4e48
--- /dev/null
+++ b/java/res/xml-sw600dp-land/key_space_3kw.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <!-- TODO: Consolidate the layout specification between protrait and landscape.
+         Ideally just the keyWidth should be different -->
+    <switch>
+        <!-- fa: Perisan
+             kn: Kannada
+             ne: Nepali
+             te: Telugu -->
+        <case
+            latin:languageCode="fa|kn|ne|te"
+            latin:languageSwitchKeyEnabled="true"
+        >
+            <Key
+                latin:keyStyle="languageSwitchKeyStyle" />
+            <Key
+                latin:keyStyle="spaceKeyStyle"
+                latin:keyWidth="7.0%p" />
+            <Key
+                latin:keyStyle="zwnjKeyStyle" />
+        </case>
+        <case
+            latin:languageCode="fa|kn|ne|te"
+            latin:languageSwitchKeyEnabled="false"
+        >
+            <Key
+                latin:keyStyle="spaceKeyStyle"
+                latin:keyWidth="14.0%p" />
+            <Key
+                latin:keyStyle="zwnjKeyStyle" />
+        </case>
+        <case
+            latin:languageSwitchKeyEnabled="true"
+        >
+            <Key
+                latin:keyStyle="languageSwitchKeyStyle" />
+            <Key
+                latin:keyStyle="spaceKeyStyle"
+                latin:keyWidth="14.0%p" />
+        </case>
+        <!-- languageSwitchKeyEnabled="false" -->
+        <default>
+            <Key
+                latin:keyStyle="spaceKeyStyle"
+                latin:keyWidth="21.0%p" />
+        </default>
+    </switch>
+</merge>
diff --git a/java/res/xml-sw600dp-land/row_qwerty4.xml b/java/res/xml-sw600dp-land/row_qwerty4.xml
new file mode 100644
index 0000000..0fdb5c6
--- /dev/null
+++ b/java/res/xml-sw600dp-land/row_qwerty4.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <switch>
+        <!-- Split the 4th row for split layouts -->
+        <case
+            latin:isSplitLayout="true"
+        >
+            <Row
+                latin:keyWidth="7.0%p"
+                latin:backgroundType="functional"
+            >
+                <Key
+                    latin:keyStyle="toSymbolKeyStyle" />
+                <include
+                    latin:keyboardLayout="@xml/key_comma" />
+                <!-- Space key. -->
+                <include
+                    latin:keyboardLayout="@xml/key_space_3kw"
+                    latin:backgroundType="normal" />
+                <Spacer
+                    latin:keyWidth="28.0%p" />
+                <Key
+                    latin:keyStyle="spaceKeyStyle"
+                    latin:keyWidth="21.0%p" />
+                <include
+                    latin:keyboardLayout="@xml/key_period" />
+                <include
+                    latin:keyboardLayout="@xml/key_emoji" />
+            </Row>
+        </case>
+        <default>
+            <Row
+                latin:keyWidth="9.0%p"
+                latin:backgroundType="functional"
+            >
+                <Key
+                    latin:keyStyle="toSymbolKeyStyle"
+                    latin:keyWidth="10.0%p" />
+                <include
+                    latin:keyboardLayout="@xml/key_comma" />
+                <!-- Space key. -->
+                <include
+                    latin:keyXPos="19.0%p"
+                    latin:keyboardLayout="@xml/key_space_7kw"
+                    latin:backgroundType="normal" />
+                <include
+                    latin:keyboardLayout="@xml/key_period" />
+                <include
+                    latin:keyboardLayout="@xml/key_emoji" />
+            </Row>
+        </default>
+    </switch>
+</merge>
diff --git a/java/res/xml-sw600dp-land/rows_qwerty.xml b/java/res/xml-sw600dp-land/rows_qwerty.xml
new file mode 100644
index 0000000..b580dcf
--- /dev/null
+++ b/java/res/xml-sw600dp-land/rows_qwerty.xml
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** 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.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <include
+        latin:keyboardLayout="@xml/key_styles_common" />
+    <!-- First row -->
+    <Row>
+        <switch>
+            <!-- Split keyboard layout for the first row -->
+            <case
+                latin:isSplitLayout="true"
+            >
+                <include
+                    latin:keyboardLayout="@xml/rowkeys_qwerty1_left5"
+                    latin:keyWidth="7.0%p" />
+                <Spacer
+                    latin:keyWidth="20.0%p" />
+                <include
+                    latin:keyboardLayout="@xml/rowkeys_qwerty1_right5"
+                    latin:keyWidth="7.0%p" />
+                <Key
+                    latin:keyStyle="deleteKeyStyle"
+                    latin:keyWidth="10.0%p" />
+            </case>
+            <!-- Regular layout for the first row -->
+            <default>
+                <include
+                    latin:keyboardLayout="@xml/rowkeys_qwerty1"
+                    latin:keyWidth="9.0%p" />
+                <Key
+                    latin:keyStyle="deleteKeyStyle"
+                    latin:keyWidth="fillRight" />
+            </default>
+        </switch>
+    </Row>
+    <!-- Second row -->
+    <Row>
+        <switch>
+            <!-- Split keyboard layout for the second row -->
+            <case
+                latin:isSplitLayout="true"
+            >
+                <include
+                    latin:keyboardLayout="@xml/rowkeys_qwerty2_left5"
+                    latin:keyXPos="4.0%p"
+                    latin:keyWidth="7.0%p" />
+                <Spacer
+                    latin:keyWidth="23.0%p" />
+                <include
+                    latin:keyboardLayout="@xml/rowkeys_qwerty2_right4"
+                    latin:keyWidth="7.0%p" />
+                <Key
+                    latin:keyStyle="enterKeyStyle"
+                    latin:keyWidth="10.0%p" />
+            </case>
+            <!-- Regular layout for the second row -->
+            <default>
+                <include
+                    latin:keyboardLayout="@xml/rowkeys_qwerty2"
+                    latin:keyXPos="4.5%p"
+                    latin:keyWidth="9.0%p" />
+                <Key
+                    latin:keyStyle="enterKeyStyle"
+                    latin:keyWidth="fillRight" />
+            </default>
+        </switch>
+    </Row>
+    <!-- Third row -->
+    <Row>
+        <switch>
+            <!-- Split keyboard layout for the third row -->
+            <case
+                latin:isSplitLayout="true"
+            >
+                <Key
+                    latin:keyStyle="shiftKeyStyle"
+                    latin:keyWidth="10.0%p" />
+                <include
+                    latin:keyboardLayout="@xml/rowkeys_qwerty3_left4"
+                    latin:keyWidth="7.0%p" />
+                <Spacer
+                    latin:keyWidth="17.0%p" />
+                <include
+                    latin:keyboardLayout="@xml/rowkeys_qwerty3_right3"
+                    latin:keyWidth="7.0%p" />
+                <include
+                    latin:keyboardLayout="@xml/keys_exclamation_question"
+                    latin:keyWidth="7.0%p" />
+                <Key
+                    latin:keyStyle="shiftKeyStyle"
+                    latin:keyWidth="10.0%p" />
+            </case>
+            <!-- Regular layout for the third row -->
+            <default>
+                <Key
+                    latin:keyStyle="shiftKeyStyle"
+                    latin:keyWidth="10.0%p" />
+                <include
+                    latin:keyboardLayout="@xml/rowkeys_qwerty3"
+                    latin:keyWidth="9.0%p" />
+                <include
+                    latin:keyboardLayout="@xml/keys_exclamation_question"
+                    latin:keyWidth="9.0%p" />
+                <Key
+                    latin:keyStyle="shiftKeyStyle"
+                    latin:keyWidth="fillRight" />
+            </default>
+        </switch>
+    </Row>
+    <!-- Fourth row -->
+    <include
+        latin:keyboardLayout="@xml/row_qwerty4" />
+</merge>
diff --git a/java/res/xml-sw600dp/key_period.xml b/java/res/xml-sw600dp/key_period.xml
index df1daf7..3045cbc 100644
--- a/java/res/xml-sw600dp/key_period.xml
+++ b/java/res/xml-sw600dp/key_period.xml
@@ -25,17 +25,6 @@
     <!-- Kept as a separate file for cleaner overriding by an overlay.  -->
     <switch>
         <case
-            latin:languageCode="hi"
-            latin:keyboardLayoutSet="hindi_compact"
-        >
-            <!-- U+0964: "।" DEVANAGARI DANDA -->
-            <Key
-                latin:keySpec="\u0964"
-                latin:keyLabelFlags="hasPopupHint"
-                latin:moreKeys="!autoColumnOrder!8,\\,,.,',#,),(,/,;,@,:,-,&quot;,+,\\%,&amp;"
-                latin:backgroundType="functional" />
-        </case>
-        <case
             latin:keyboardLayoutSet="dvorak"
         >
             <Key
diff --git a/java/res/xml-sw600dp/key_space_3kw.xml b/java/res/xml-sw600dp/key_space_3kw.xml
new file mode 100644
index 0000000..8cc3a38
--- /dev/null
+++ b/java/res/xml-sw600dp/key_space_3kw.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <switch>
+        <case
+            latin:keyboardLayoutSet="bengali_akkhor|farsi|kannada|nepali_romanized|nepali_traditional|telugu"
+            latin:languageSwitchKeyEnabled="true"
+        >
+            <Key
+                latin:keyStyle="languageSwitchKeyStyle" />
+            <Key
+                latin:keyStyle="spaceKeyStyle"
+                latin:keyWidth="8.0%p" />
+            <Key
+                latin:keyStyle="zwnjKeyStyle" />
+        </case>
+        <case
+            latin:keyboardLayoutSet="bengali_akkhor|farsi|kannada|nepali_romanized|nepali_traditional|telugu"
+            latin:languageSwitchKeyEnabled="false"
+        >
+            <Key
+                latin:keyStyle="spaceKeyStyle"
+                latin:keyWidth="16.0%p" />
+            <Key
+                latin:keyStyle="zwnjKeyStyle" />
+        </case>
+        <case
+            latin:languageSwitchKeyEnabled="true"
+        >
+            <Key
+                latin:keyStyle="languageSwitchKeyStyle" />
+            <Key
+                latin:keyStyle="spaceKeyStyle"
+                latin:keyWidth="16.0%p" />
+        </case>
+        <!-- languageSwitchKeyEnabled="false" -->
+        <default>
+            <Key
+                latin:keyStyle="spaceKeyStyle"
+                latin:keyWidth="24.0%p" />
+        </default>
+    </switch>
+</merge>
diff --git a/java/res/xml-sw600dp/key_space_7kw.xml b/java/res/xml-sw600dp/key_space_7kw.xml
index 3311f81..61e0765 100644
--- a/java/res/xml-sw600dp/key_space_7kw.xml
+++ b/java/res/xml-sw600dp/key_space_7kw.xml
@@ -22,12 +22,8 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <switch>
-        <!-- fa: Perisan
-             kn: Kannada
-             ne: Nepali
-             te: Telugu -->
         <case
-            latin:languageCode="fa|kn|ne|te"
+            latin:keyboardLayoutSet="bengali_akkhor|farsi|kannada|nepali_romanized|nepali_traditional|telugu"
             latin:languageSwitchKeyEnabled="true"
         >
             <Key
@@ -39,7 +35,7 @@
                 latin:keyStyle="zwnjKeyStyle" />
         </case>
         <case
-            latin:languageCode="fa|kn|ne|te"
+            latin:keyboardLayoutSet="bengali_akkhor|farsi|kannada|nepali_romanized|nepali_traditional|telugu"
             latin:languageSwitchKeyEnabled="false"
         >
             <Key
diff --git a/java/res/xml-sw600dp/key_styles_common.xml b/java/res/xml-sw600dp/key_styles_common.xml
index 006cda3..ea8f292 100644
--- a/java/res/xml-sw600dp/key_styles_common.xml
+++ b/java/res/xml-sw600dp/key_styles_common.xml
@@ -35,10 +35,6 @@
                 latin:keyLabelFlags="hasShiftedLetterHint" />
         </default>
     </switch>
-    <!-- Base key style for the key which may have settings key as more keys. -->
-    <key-style
-        latin:styleName="baseSettingsMoreKeysStyle"
-        latin:parentStyle="hasShiftedLetterHintStyle" />
     <include
         latin:keyboardLayout="@xml/key_styles_settings" />
     <!-- Functional key styles -->
diff --git a/java/res/xml-sw600dp/row_qwerty4.xml b/java/res/xml-sw600dp/row_qwerty4.xml
index ed7150d..bcfd2cb 100644
--- a/java/res/xml-sw600dp/row_qwerty4.xml
+++ b/java/res/xml-sw600dp/row_qwerty4.xml
@@ -21,23 +21,54 @@
 <merge
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
-    <Row
-        latin:keyWidth="9.0%p"
-        latin:backgroundType="functional"
-    >
-        <Key
-            latin:keyStyle="toSymbolKeyStyle"
-            latin:keyWidth="10.0%p" />
-        <include
-            latin:keyboardLayout="@xml/key_comma" />
-        <!-- Space key. -->
-        <include
-            latin:keyXPos="19.0%p"
-            latin:keyboardLayout="@xml/key_space_7kw"
-            latin:backgroundType="normal" />
-        <include
-            latin:keyboardLayout="@xml/key_period" />
-        <include
-            latin:keyboardLayout="@xml/key_emoji" />
-    </Row>
+    <switch>
+        <!-- Split the 4th row for split layouts -->
+        <case
+            latin:isSplitLayout="true"
+        >
+            <Row
+                latin:keyWidth="8.0%p"
+                latin:backgroundType="functional"
+            >
+                <Key
+                    latin:keyStyle="toSymbolKeyStyle" />
+                <include
+                    latin:keyboardLayout="@xml/key_comma" />
+                <!-- Space key. -->
+                <include
+                    latin:keyboardLayout="@xml/key_space_3kw"
+                    latin:backgroundType="normal" />
+                <Spacer
+                    latin:keyWidth="20.0%p" />
+                <Key
+                    latin:keyStyle="spaceKeyStyle"
+                    latin:keyWidth="24.0%p" />
+                <include
+                    latin:keyboardLayout="@xml/key_period" />
+                <include
+                    latin:keyboardLayout="@xml/key_emoji" />
+            </Row>
+        </case>
+        <default>
+            <Row
+                latin:keyWidth="9.0%p"
+                latin:backgroundType="functional"
+            >
+                <Key
+                    latin:keyStyle="toSymbolKeyStyle"
+                    latin:keyWidth="10.0%p" />
+                <include
+                    latin:keyboardLayout="@xml/key_comma" />
+                <!-- Space key. -->
+                <include
+                    latin:keyXPos="19.0%p"
+                    latin:keyboardLayout="@xml/key_space_7kw"
+                    latin:backgroundType="normal" />
+                <include
+                    latin:keyboardLayout="@xml/key_period" />
+                <include
+                    latin:keyboardLayout="@xml/key_emoji" />
+            </Row>
+        </default>
+    </switch>
 </merge>
diff --git a/java/res/xml-sw600dp/rows_bengali_akkhor.xml b/java/res/xml-sw600dp/rows_bengali_akkhor.xml
new file mode 100644
index 0000000..3e81a14
--- /dev/null
+++ b/java/res/xml-sw600dp/rows_bengali_akkhor.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" >
+    <include latin:keyboardLayout="@xml/key_styles_common" />
+    <Row
+        latin:keyLabelFlags="fontNormal"
+        latin:keyWidth="8.182%p" >
+        <include latin:keyboardLayout="@xml/rowkeys_bengali_akkhor1" />
+        <Key
+            latin:keyStyle="deleteKeyStyle"
+            latin:keyWidth="fillRight" />
+    </Row>
+    <Row
+        latin:keyLabelFlags="fontNormal"
+        latin:keyWidth="8.182%p" >
+        <include latin:keyboardLayout="@xml/rowkeys_bengali_akkhor2" />
+        <Key
+            latin:keyStyle="enterKeyStyle"
+            latin:keyWidth="fillRight" />
+    </Row>
+    <Row
+        latin:keyLabelFlags="fontNormal"
+        latin:keyWidth="8.182%p" >
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyWidth="10.0%p" />
+
+        <include latin:keyboardLayout="@xml/rowkeys_bengali_akkhor3" />
+        <include latin:keyboardLayout="@xml/keys_exclamation_question" />
+    </Row>
+    <include latin:keyboardLayout="@xml/row_qwerty4" />
+</merge>
diff --git a/java/res/xml-sw600dp/rows_myanmar.xml b/java/res/xml-sw600dp/rows_myanmar.xml
deleted file mode 100644
index 20d9d8a..0000000
--- a/java/res/xml-sw600dp/rows_myanmar.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2014, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
-    <include latin:keyboardLayout="@xml/key_styles_common" />
-    <Row
-        latin:keyWidth="9.0%p"
-        latin:keyLabelFlags="fontNormal|autoXScale"
-    >
-        <include latin:keyboardLayout="@xml/rowkeys_myanmar1" />
-        <Key
-            latin:keyStyle="deleteKeyStyle"
-            latin:keyWidth="fillRight" />
-    </Row>
-    <Row
-        latin:keyWidth="9.0%p"
-        latin:keyLabelFlags="fontNormal|autoXScale"
-    >
-        <include latin:keyboardLayout="@xml/rowkeys_myanmar2" />
-    </Row>
-    <Row
-        latin:keyWidth="9.0%p"
-        latin:keyLabelFlags="fontNormal|autoXScale"
-    >
-        <include latin:keyboardLayout="@xml/rowkeys_myanmar3" />
-        <Key
-            latin:keyStyle="enterKeyStyle"
-            latin:keyWidth="fillRight" />
-    </Row>
-    <Row
-        latin:keyWidth="9.0%p"
-        latin:keyLabelFlags="fontNormal|autoXScale"
-    >
-        <Key
-            latin:keyStyle="shiftKeyStyle"
-            latin:keyWidth="10.0%p" />
-        <include latin:keyboardLayout="@xml/rowkeys_myanmar4" />
-        <include latin:keyboardLayout="@xml/keys_exclamation_question" />
-    </Row>
-    <include latin:keyboardLayout="@xml/row_qwerty4" />
-</merge>
diff --git a/java/res/xml-sw600dp/rows_nepali_romanized.xml b/java/res/xml-sw600dp/rows_nepali_romanized.xml
index fe73fbd..41cd2f9 100644
--- a/java/res/xml-sw600dp/rows_nepali_romanized.xml
+++ b/java/res/xml-sw600dp/rows_nepali_romanized.xml
@@ -39,7 +39,7 @@
             latin:keyWidth="fillRight" />
     </Row>
     <Row
-        latin:keyWidth="8.182%p"
+        latin:keyWidth="8.0%p"
         latin:keyLabelFlags="fontNormal"
     >
         <Key
@@ -47,6 +47,9 @@
             latin:keyWidth="10.0%p" />
         <include latin:keyboardLayout="@xml/rowkeys_nepali_romanized3" />
         <include latin:keyboardLayout="@xml/keys_exclamation_question" />
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyWidth="fillRight" />
     </Row>
     <include latin:keyboardLayout="@xml/row_qwerty4" />
 </merge>
diff --git a/java/res/xml-sw600dp/rows_nepali_traditional.xml b/java/res/xml-sw600dp/rows_nepali_traditional.xml
index e56271f..d23ca24 100644
--- a/java/res/xml-sw600dp/rows_nepali_traditional.xml
+++ b/java/res/xml-sw600dp/rows_nepali_traditional.xml
@@ -45,8 +45,8 @@
         <Key
             latin:keyStyle="shiftKeyStyle"
             latin:keyWidth="10.0%p" />
-        <include latin:keyboardLayout="@xml/rowkeys_nepali_traditional3_left6" />
-        <include latin:keyboardLayout="@xml/rowkeys_nepali_traditional3_right5" />
-    </Row>
+        <include latin:keyboardLayout="@xml/rowkeys_nepali_traditional3" />
+        <include latin:keyboardLayout="@xml/keys_exclamation_question" />
+        </Row>
     <include latin:keyboardLayout="@xml/row_qwerty4" />
 </merge>
diff --git a/java/res/xml-sw600dp/rows_number_normal.xml b/java/res/xml-sw600dp/rows_number_normal.xml
index 7a4700d..e6fdf73 100644
--- a/java/res/xml-sw600dp/rows_number_normal.xml
+++ b/java/res/xml-sw600dp/rows_number_normal.xml
@@ -24,17 +24,17 @@
     <Row>
         <Key
             latin:keySpec="-"
-            latin:keyStyle="numKeyStyle"
+            latin:keyStyle="numSymbolKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
         <Key
             latin:keySpec="+"
-            latin:keyStyle="numKeyStyle"
+            latin:keyStyle="numSymbolKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
         <Key
             latin:keySpec="."
-            latin:keyStyle="numKeyStyle"
+            latin:keyStyle="numSymbolKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
         <Key
@@ -53,13 +53,15 @@
             latin:keyWidth="fillRight" />
     </Row>
     <Row>
+        <!-- U+FF0A: "＊" FULLWIDTH ASTERISK -->
         <Key
-            latin:keyStyle="numStarKeyStyle"
+            latin:keySpec="&#xFF0A;|*"
+            latin:keyStyle="numSymbolKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
         <Key
             latin:keySpec="/"
-            latin:keyStyle="numKeyStyle"
+            latin:keyStyle="numSymbolKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
         <switch>
@@ -70,14 +72,14 @@
                     latin:keySpec=","
                     latin:keyLabelFlags="hasPopupHint"
                     latin:moreKeys="!text/morekeys_am_pm"
-                    latin:keyStyle="numKeyStyle"
+                    latin:keyStyle="numSymbolKeyStyle"
                     latin:keyWidth="10%p"
                     latin:backgroundType="functional" />
             </case>
             <default>
                 <Key
                     latin:keySpec=","
-                    latin:keyStyle="numKeyStyle"
+                    latin:keyStyle="numSymbolKeyStyle"
                     latin:keyWidth="10%p"
                     latin:backgroundType="functional" />
             </default>
@@ -100,12 +102,12 @@
     <Row>
         <Key
             latin:keySpec="("
-            latin:keyStyle="numKeyStyle"
+            latin:keyStyle="numSymbolKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
         <Key
             latin:keySpec=")"
-            latin:keyStyle="numKeyStyle"
+            latin:keyStyle="numSymbolKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
         <switch>
@@ -114,14 +116,14 @@
             >
                 <Key
                     latin:keySpec=":"
-                    latin:keyStyle="numKeyStyle"
+                    latin:keyStyle="numSymbolKeyStyle"
                     latin:keyWidth="10%p"
                     latin:backgroundType="functional" />
             </case>
             <default>
                 <Key
                     latin:keySpec="="
-                    latin:keyStyle="numKeyStyle"
+                    latin:keyStyle="numSymbolKeyStyle"
                     latin:keyWidth="10%p"
                     latin:backgroundType="functional" />
             </default>
@@ -143,8 +145,10 @@
         <Key
             latin:keyStyle="tabletNumSpaceKeyStyle"
             latin:keyWidth="30%p" />
+        <!-- U+FF0A: "＊" FULLWIDTH ASTERISK -->
         <Key
-            latin:keyStyle="numStarKeyStyle"
+            latin:keySpec="&#xFF0A;|*"
+            latin:keyStyle="numSymbolKeyStyle"
             latin:keyXPos="31%p" />
         <Key
             latin:keySpec="0"
diff --git a/java/res/xml-sw600dp/rows_number_password.xml b/java/res/xml-sw600dp/rows_number_password.xml
index 6c3855a..37e6338 100644
--- a/java/res/xml-sw600dp/rows_number_password.xml
+++ b/java/res/xml-sw600dp/rows_number_password.xml
@@ -70,7 +70,8 @@
         <Key
             latin:keyStyle="deleteKeyStyle" />
         <Key
-            latin:keyStyle="num0KeyStyle" />
+            latin:keyStyle="num0KeyStyle"
+            latin:keyHintLabel="+" />
         <Key
             latin:keyStyle="enterKeyStyle" />
         <!-- Note: This Spacer prevents the above key from being marked as a right edge key. -->
diff --git a/java/res/xml-sw600dp/rows_phone.xml b/java/res/xml-sw600dp/rows_phone.xml
index 612397a..fc86a76 100644
--- a/java/res/xml-sw600dp/rows_phone.xml
+++ b/java/res/xml-sw600dp/rows_phone.xml
@@ -28,16 +28,18 @@
     <Row>
         <Key
             latin:keySpec="-"
-            latin:keyStyle="numKeyStyle"
+            latin:keyStyle="numSymbolKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
         <Key
             latin:keySpec="+"
-            latin:keyStyle="numKeyStyle"
+            latin:keyStyle="numSymbolKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
         <Key
-            latin:keyStyle="numPauseKeyStyle"
+            latin:keySpec="!string/label_pause_key|,"
+            latin:keyLabelFlags="followKeyLabelRatio|autoXScale"
+            latin:keyStyle="numSymbolKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
         <Key
@@ -55,16 +57,18 @@
     <Row>
         <Key
             latin:keySpec=","
-            latin:keyStyle="numKeyStyle"
+            latin:keyStyle="numSymbolKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
         <Key
             latin:keySpec="."
-            latin:keyStyle="numKeyStyle"
+            latin:keyStyle="numSymbolKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
         <Key
-            latin:keyStyle="numWaitKeyStyle"
+            latin:keySpec="!string/label_wait_key|;"
+            latin:keyLabelFlags="followKeyLabelRatio|autoXScale"
+            latin:keyStyle="numSymbolKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
         <Key
@@ -82,17 +86,17 @@
     <Row>
         <Key
             latin:keySpec="("
-            latin:keyStyle="numKeyStyle"
+            latin:keyStyle="numSymbolKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
         <Key
             latin:keySpec=")"
-            latin:keyStyle="numKeyStyle"
+            latin:keyStyle="numSymbolKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
         <Key
             latin:keySpec="N"
-            latin:keyStyle="numKeyStyle"
+            latin:keyStyle="numSymbolKeyStyle"
             latin:keyWidth="10%p"
             latin:backgroundType="functional" />
         <Key
@@ -109,13 +113,16 @@
         <Key
             latin:keyStyle="tabletNumSpaceKeyStyle"
             latin:keyWidth="30%p" />
+        <!-- U+FF0A: "＊" FULLWIDTH ASTERISK -->
         <Key
-            latin:keyStyle="numStarKeyStyle"
+            latin:keySpec="&#xFF0A;|*"
+            latin:keyStyle="numSymbolKeyStyle"
             latin:keyXPos="31%p" />
         <Key
-            latin:keyStyle="num0KeyStyle" />
+            latin:keyStyle="num0KeyStyle"
+            latin:keyHintLabel="+" />
         <Key
             latin:keySpec="\#"
-            latin:keyStyle="numKeyStyle" />
+            latin:keyStyle="numSymbolKeyStyle" />
     </Row>
 </merge>
diff --git a/java/res/xml-sw600dp/rows_qwerty.xml b/java/res/xml-sw600dp/rows_qwerty.xml
index 58ba1d7..51df4b0 100644
--- a/java/res/xml-sw600dp/rows_qwerty.xml
+++ b/java/res/xml-sw600dp/rows_qwerty.xml
@@ -23,39 +23,114 @@
 >
     <include
         latin:keyboardLayout="@xml/key_styles_common" />
-    <Row
-        latin:keyWidth="9.0%p"
-    >
-        <include
-            latin:keyboardLayout="@xml/rowkeys_qwerty1" />
-        <Key
-            latin:keyStyle="deleteKeyStyle"
-            latin:keyWidth="fillRight" />
+    <!-- TODO: Consolidate the layout specification between protrait and landscape.
+         Ideally just the keyWidth should be different and the spacer should adjust to fill
+         the available space. -->
+    <!-- First row -->
+    <Row>
+        <switch>
+            <!-- Split keyboard layout for the first row -->
+            <case
+                latin:isSplitLayout="true"
+            >
+                <include
+                    latin:keyboardLayout="@xml/rowkeys_qwerty1_left5"
+                    latin:keyWidth="8.0%p" />
+                <Spacer
+                    latin:keyWidth="10.0%p" />
+                <include
+                    latin:keyboardLayout="@xml/rowkeys_qwerty1_right5"
+                    latin:keyWidth="8.0%p" />
+                <Key
+                    latin:keyStyle="deleteKeyStyle"
+                    latin:keyWidth="10.0%p" />
+            </case>
+            <!-- Regular layout for the first row -->
+            <default>
+                <include
+                    latin:keyboardLayout="@xml/rowkeys_qwerty1"
+                    latin:keyWidth="9.0%p" />
+                <Key
+                    latin:keyStyle="deleteKeyStyle"
+                    latin:keyWidth="fillRight" />
+            </default>
+        </switch>
     </Row>
-    <Row
-        latin:keyWidth="9.0%p"
-    >
-        <include
-            latin:keyboardLayout="@xml/rowkeys_qwerty2"
-            latin:keyXPos="4.5%p" />
-        <Key
-            latin:keyStyle="enterKeyStyle"
-            latin:keyWidth="fillRight" />
+    <!-- Second row -->
+    <Row>
+        <switch>
+            <!-- Split keyboard layout for the second row -->
+            <case
+                latin:isSplitLayout="true"
+            >
+                <include
+                    latin:keyboardLayout="@xml/rowkeys_qwerty2_left5"
+                    latin:keyXPos="4.0%p"
+                    latin:keyWidth="8.0%p" />
+                <Spacer
+                    latin:keyWidth="14.0%p" />
+                <include
+                    latin:keyboardLayout="@xml/rowkeys_qwerty2_right4"
+                    latin:keyWidth="8.0%p" />
+                <Key
+                    latin:keyStyle="enterKeyStyle"
+                    latin:keyWidth="10.0%p" />
+            </case>
+            <!-- Regular layout for the second row -->
+            <default>
+                <include
+                    latin:keyboardLayout="@xml/rowkeys_qwerty2"
+                    latin:keyXPos="4.5%p"
+                    latin:keyWidth="9.0%p" />
+                <Key
+                    latin:keyStyle="enterKeyStyle"
+                    latin:keyWidth="fillRight" />
+            </default>
+        </switch>
     </Row>
-    <Row
-        latin:keyWidth="9.0%p"
-    >
-        <Key
-            latin:keyStyle="shiftKeyStyle"
-            latin:keyWidth="10.0%p" />
-        <include
-            latin:keyboardLayout="@xml/rowkeys_qwerty3" />
-        <include
-            latin:keyboardLayout="@xml/keys_exclamation_question" />
-        <Key
-            latin:keyStyle="shiftKeyStyle"
-            latin:keyWidth="fillRight" />
+    <!-- Third row -->
+    <Row>
+        <switch>
+            <!-- Split keyboard layout for the third row -->
+            <case
+                latin:isSplitLayout="true"
+            >
+                <Key
+                    latin:keyStyle="shiftKeyStyle"
+                    latin:keyWidth="10.0%p" />
+                <include
+                    latin:keyboardLayout="@xml/rowkeys_qwerty3_left4"
+                    latin:keyWidth="8.0%p" />
+                <Spacer
+                    latin:keyWidth="8.0%p" />
+                <include
+                    latin:keyboardLayout="@xml/rowkeys_qwerty3_right3"
+                    latin:keyWidth="8.0%p" />
+                <include
+                    latin:keyboardLayout="@xml/keys_exclamation_question"
+                    latin:keyWidth="8.0%p" />
+                <Key
+                    latin:keyStyle="shiftKeyStyle"
+                    latin:keyWidth="10.0%p" />
+            </case>
+            <!-- Regular layout for the third row -->
+            <default>
+                <Key
+                    latin:keyStyle="shiftKeyStyle"
+                    latin:keyWidth="10.0%p" />
+                <include
+                    latin:keyboardLayout="@xml/rowkeys_qwerty3"
+                    latin:keyWidth="9.0%p" />
+                <include
+                    latin:keyboardLayout="@xml/keys_exclamation_question"
+                    latin:keyWidth="9.0%p" />
+                <Key
+                    latin:keyStyle="shiftKeyStyle"
+                    latin:keyWidth="fillRight" />
+            </default>
+        </switch>
     </Row>
+    <!-- Fourth row -->
     <include
         latin:keyboardLayout="@xml/row_qwerty4" />
 </merge>
diff --git a/java/res/xml-sw600dp/rows_serbian_qwertz.xml b/java/res/xml-sw600dp/rows_serbian_qwertz.xml
new file mode 100644
index 0000000..a3fb625
--- /dev/null
+++ b/java/res/xml-sw600dp/rows_serbian_qwertz.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" >
+    <include latin:keyboardLayout="@xml/key_styles_common" />
+    <Row latin:keyWidth="8.182%p" >
+        <include latin:keyboardLayout="@xml/rowkeys_serbian_qwertz1" />
+        <Key
+            latin:keyStyle="deleteKeyStyle"
+            latin:keyWidth="fillRight" />
+    </Row>
+    <Row latin:keyWidth="8.182%p" >
+        <include latin:keyboardLayout="@xml/rowkeys_serbian_qwertz2" />
+        <Key
+            latin:keyStyle="enterKeyStyle"
+            latin:keyWidth="fillRight" />
+    </Row>
+    <Row latin:keyWidth="8.182%p" >
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyWidth="10.0%p" />
+        <include latin:keyboardLayout="@xml/rowkeys_serbian_qwertz3" />
+        <include latin:keyboardLayout="@xml/keys_exclamation_question" />
+    </Row>
+    <include latin:keyboardLayout="@xml/row_qwerty4" />
+</merge>
diff --git a/java/res/xml-sw600dp/rows_uzbek.xml b/java/res/xml-sw600dp/rows_uzbek.xml
new file mode 100644
index 0000000..3cd9940
--- /dev/null
+++ b/java/res/xml-sw600dp/rows_uzbek.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" >
+    <include latin:keyboardLayout="@xml/key_styles_common" />
+    <Row latin:keyWidth="8.182%p" >
+        <include latin:keyboardLayout="@xml/rowkeys_uzbek1" />
+        <Key
+            latin:keyStyle="deleteKeyStyle"
+            latin:keyWidth="fillRight" />
+    </Row>
+    <Row latin:keyWidth="8.182%p" >
+        <include latin:keyboardLayout="@xml/rowkeys_uzbek2" />
+        <Key
+            latin:keyStyle="enterKeyStyle"
+            latin:keyWidth="fillRight" />
+    </Row>
+    <Row latin:keyWidth="8.182%p" >
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyWidth="10.0%p" />
+        <Spacer latin:keyWidth="3.181%p" />
+        <include latin:keyboardLayout="@xml/rowkeys_qwerty3" />
+        <include latin:keyboardLayout="@xml/keys_exclamation_question" />
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyWidth="fillRight"
+            latin:keyXPos="-10.0%p" />
+    </Row>
+    <include latin:keyboardLayout="@xml/row_qwerty4" />
+</merge>
\ No newline at end of file
diff --git a/java/res/xml/kbd_bengali_akkhor.xml b/java/res/xml/kbd_bengali_akkhor.xml
new file mode 100644
index 0000000..6c81d53
--- /dev/null
+++ b/java/res/xml/kbd_bengali_akkhor.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" >
+    <include latin:keyboardLayout="@xml/rows_bengali_akkhor" />
+</Keyboard>
diff --git a/java/res/xml/kbd_myanmar.xml b/java/res/xml/kbd_myanmar.xml
deleted file mode 100644
index af997b1..0000000
--- a/java/res/xml/kbd_myanmar.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2014, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<Keyboard
-    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
-    latin:rowHeight="20%p"
-    latin:verticalGap="@fraction/config_key_vertical_gap_5row"
-    latin:keyLetterSize="@fraction/config_key_letter_ratio_5row"
-    latin:keyShiftedLetterHintRatio="@fraction/config_key_shifted_letter_hint_ratio_5row"
-    latin:touchPositionCorrectionData="@array/touch_position_correction_data_default"
->
-    <include
-        latin:keyboardLayout="@xml/rows_myanmar" />
-</Keyboard>
diff --git a/java/res/xml/kbd_serbian_qwertz.xml b/java/res/xml/kbd_serbian_qwertz.xml
new file mode 100644
index 0000000..4f763b8
--- /dev/null
+++ b/java/res/xml/kbd_serbian_qwertz.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" >
+    <include latin:keyboardLayout="@xml/rows_serbian_qwertz" />
+</Keyboard>
\ No newline at end of file
diff --git a/java/res/xml/kbd_uzbek.xml b/java/res/xml/kbd_uzbek.xml
new file mode 100644
index 0000000..84486a7
--- /dev/null
+++ b/java/res/xml/kbd_uzbek.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" >
+    <include latin:keyboardLayout="@xml/rows_uzbek" />
+</Keyboard>
\ No newline at end of file
diff --git a/java/res/xml/key_period.xml b/java/res/xml/key_period.xml
index fc27c02..5b59cff 100644
--- a/java/res/xml/key_period.xml
+++ b/java/res/xml/key_period.xml
@@ -23,32 +23,6 @@
 >
     <switch>
         <case
-            latin:languageCode="hi"
-            latin:keyboardLayoutSet="hindi_compact"
-        >
-            <!-- U+0964: "।" DEVANAGARI DANDA -->
-            <Key
-                latin:keySpec="\u0964"
-                latin:keyLabelFlags="hasPopupHint"
-                latin:moreKeys="!autoColumnOrder!9,\\,,.,?,!,#,),(,/,;,',@,:,-,&quot;,+,\\%,&amp;"
-                latin:backgroundType="functional" />
-        </case>
-        <case
-            latin:languageCode="ne"
-            latin:keyboardLayoutSet="nepali_traditional"
-        >
-            <!-- Because the font rendering system prior to API version 16 can't automatically
-                 render dotted circle for incomplete combining letter of some scripts, different
-                 set of Key definitions are needed based on the API version. -->
-            <include
-                latin:keyboardLayout="@xml/keystyle_devanagari_sign_virama" />
-            <Key
-                latin:keyStyle="baseKeyDevanagariSignVirama"
-                latin:keyLabelFlags="hasPopupHint"
-                latin:moreKeys="!text/morekeys_punctuation"
-                latin:backgroundType="functional" />
-        </case>
-        <case
             latin:keyboardLayoutSet="dvorak"
         >
             <Key
diff --git a/java/res/xml/key_space_5kw.xml b/java/res/xml/key_space_5kw.xml
index b1fe0bb..692c245 100644
--- a/java/res/xml/key_space_5kw.xml
+++ b/java/res/xml/key_space_5kw.xml
@@ -22,12 +22,8 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <switch>
-        <!-- fa: Perisan
-             kn: Kannada
-             ne: Nepali
-             te: Telugu -->
         <case
-            latin:languageCode="fa|kn|ne|te"
+            latin:keyboardLayoutSet="bengali_akkhor|farsi|kannada|nepali_romanized|nepali_traditional|telugu"
             latin:languageSwitchKeyEnabled="true"
         >
             <Key
@@ -39,7 +35,7 @@
                 latin:keyStyle="zwnjKeyStyle" />
         </case>
         <case
-            latin:languageCode="fa|kn|ne|te"
+            latin:keyboardLayoutSet="bengali_akkhor|farsi|kannada|nepali_romanized|nepali_traditional|telugu"
             latin:languageSwitchKeyEnabled="false"
         >
             <Key
diff --git a/java/res/xml/key_styles_common.xml b/java/res/xml/key_styles_common.xml
index b36ddf2..d85438d 100644
--- a/java/res/xml/key_styles_common.xml
+++ b/java/res/xml/key_styles_common.xml
@@ -35,9 +35,6 @@
                 latin:keyLabelFlags="hasShiftedLetterHint" />
         </default>
     </switch>
-    <!-- Base key style for the key which may have settings key as more keys. -->
-    <key-style
-        latin:styleName="baseSettingsMoreKeysStyle" />
     <include
         latin:keyboardLayout="@xml/key_styles_settings" />
     <!-- Functional key styles -->
diff --git a/java/res/xml/key_styles_currency.xml b/java/res/xml/key_styles_currency.xml
index cfe9a90..de5e6f2 100644
--- a/java/res/xml/key_styles_currency.xml
+++ b/java/res/xml/key_styles_currency.xml
@@ -80,6 +80,7 @@
         </case>
         <!-- fa: Persian (Rial and Afgahni)
              hi: Hindi (Indian Rupee)
+             hi_ZZ: Hinglish (Indian Rupee)
              iw: Hebrew (New Sheqel)
              lo: Lao (Kip)
              mn: Mongolian (Tugrik)
@@ -97,8 +98,9 @@
             <include latin:keyboardLayout="@xml/key_styles_currency_generic" />
         </case>
         <!-- si_LK: Sinhala (Sri Lanka) (Sri Lanka Rupee)
-             ta_LK: Tamil (Sri Lanka) (Sri Lanka Rupee) -->
-        <case latin:countryCode="LK">
+             ta_LK: Tamil (Sri Lanka) (Sri Lanka Rupee)
+             bn_BD: Bengali (Bangladesh) (Taka) -->
+        <case latin:countryCode="LK|BD">
             <include latin:keyboardLayout="@xml/key_styles_currency_generic" />
         </case>
         <!-- bn_IN: Bengali (India) (Indian Rupee)
diff --git a/java/res/xml/key_styles_number.xml b/java/res/xml/key_styles_number.xml
index 97ae6c6..911c276 100644
--- a/java/res/xml/key_styles_number.xml
+++ b/java/res/xml/key_styles_number.xml
@@ -33,9 +33,7 @@
         latin:keyLabelFlags="fontNormal|followKeyLetterRatio|followFunctionalTextColor"
         latin:parentStyle="numKeyBaseStyle" />
     <key-style
-        latin:styleName="numFunctionalKeyStyle"
-        latin:keyLabelFlags="followKeyLargeLetterRatio"
-        latin:backgroundType="functional"
+        latin:styleName="numSymbolKeyStyle"
         latin:parentStyle="numKeyBaseStyle" />
     <key-style
         latin:styleName="numberKeyStyle"
@@ -89,11 +87,6 @@
         latin:keySpec="9"
         latin:keyHintLabel="WXYZ"
         latin:parentStyle="numberKeyStyle" />
-    <!-- U+FF0A: "＊" FULLWIDTH ASTERISK -->
-    <key-style
-        latin:styleName="numStarKeyStyle"
-        latin:keySpec="&#xFF0A;|*"
-        latin:parentStyle="numKeyStyle" />
     <!-- Only for non-tablet device -->
     <key-style
         latin:styleName="numPhoneToSymbolKeyStyle"
@@ -104,16 +97,6 @@
         latin:keySpec="!text/keylabel_to_phone_numeric|!code/key_switch_alpha_symbol"
         latin:parentStyle="numModeKeyStyle" />
     <key-style
-        latin:styleName="numPauseKeyStyle"
-        latin:keySpec="!text/label_pause_key|,"
-        latin:keyLabelFlags="followKeyHintLabelRatio|autoXScale"
-        latin:parentStyle="numKeyBaseStyle" />
-    <key-style
-        latin:styleName="numWaitKeyStyle"
-        latin:keySpec="!text/label_wait_key|;"
-        latin:keyLabelFlags="followKeyHintLabelRatio|autoXScale"
-        latin:parentStyle="numKeyBaseStyle" />
-    <key-style
         latin:styleName="numTabKeyStyle"
         latin:keyActionFlags="noKeyPreview"
         latin:parentStyle="tabKeyStyle" />
diff --git a/java/res/xml/key_styles_settings.xml b/java/res/xml/key_styles_settings.xml
index a504bed..43ee601 100644
--- a/java/res/xml/key_styles_settings.xml
+++ b/java/res/xml/key_styles_settings.xml
@@ -21,16 +21,14 @@
 <merge
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
-    <!-- Base key style for the key which may have settings key as more keys. -->
-    <!-- Kept as a separate file for cleaner overriding by an overlay.  -->
+    <!-- Key style for the key which may have settings key as more keys. -->
     <switch>
         <case
             latin:clobberSettingsKey="true"
         >
             <key-style
                 latin:styleName="settingsMoreKeysStyle"
-                latin:backgroundType="functional"
-                latin:parentStyle="baseSettingsMoreKeysStyle" />
+                latin:backgroundType="functional" />
         </case>
         <!-- clobberSettingsKey="false" -->
         <default>
@@ -38,8 +36,7 @@
                 latin:styleName="settingsMoreKeysStyle"
                 latin:keyLabelFlags="hasPopupHint"
                 latin:additionalMoreKeys="!text/keyspec_settings"
-                latin:backgroundType="functional"
-                latin:parentStyle="baseSettingsMoreKeysStyle" />
+                latin:backgroundType="functional" />
         </default>
     </switch>
 </merge>
diff --git a/java/res/xml/keyboard_layout_set_bengali_akkhor.xml b/java/res/xml/keyboard_layout_set_bengali_akkhor.xml
new file mode 100644
index 0000000..267064d
--- /dev/null
+++ b/java/res/xml/keyboard_layout_set_bengali_akkhor.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<KeyboardLayoutSet xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" >
+    <Feature latin:supportedScript="bengali" />
+    <Element
+        latin:elementKeyboard="@xml/kbd_bengali_akkhor"
+        latin:elementName="alphabet"
+        latin:enableProximityCharsCorrection="true" />
+    <Element
+        latin:elementKeyboard="@xml/kbd_bengali_akkhor"
+        latin:elementName="alphabetAutomaticShifted"
+        latin:enableProximityCharsCorrection="true" />
+    <!-- On these shifted alphabet layouts the proximity characters correction should be disabled
+         because the letters on these layouts aren't the ones in different case of the above
+         unshifted layouts.-->
+    <Element
+        latin:elementKeyboard="@xml/kbd_bengali_akkhor"
+        latin:elementName="alphabetManualShifted" />
+    <Element
+        latin:elementKeyboard="@xml/kbd_bengali_akkhor"
+        latin:elementName="alphabetShiftLocked" />
+    <Element
+        latin:elementKeyboard="@xml/kbd_bengali_akkhor"
+        latin:elementName="alphabetShiftLockShifted" />
+    <Element
+        latin:elementKeyboard="@xml/kbd_symbols"
+        latin:elementName="symbols" />
+    <Element
+        latin:elementKeyboard="@xml/kbd_symbols_shift"
+        latin:elementName="symbolsShifted" />
+    <Element
+        latin:elementKeyboard="@xml/kbd_phone"
+        latin:elementName="phone" />
+    <Element
+        latin:elementKeyboard="@xml/kbd_phone_symbols"
+        latin:elementName="phoneSymbols" />
+    <Element
+        latin:elementKeyboard="@xml/kbd_number"
+        latin:elementName="number" />
+</KeyboardLayoutSet>
diff --git a/java/res/xml/keyboard_layout_set_myanmar.xml b/java/res/xml/keyboard_layout_set_myanmar.xml
deleted file mode 100644
index 5af8c06..0000000
--- a/java/res/xml/keyboard_layout_set_myanmar.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2014, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<KeyboardLayoutSet
-    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
-    <Feature
-        latin:supportedScript="myanmar" />
-    <Element
-        latin:elementName="alphabet"
-        latin:elementKeyboard="@xml/kbd_myanmar"
-        latin:enableProximityCharsCorrection="true" />
-    <Element
-        latin:elementName="alphabetAutomaticShifted"
-        latin:elementKeyboard="@xml/kbd_myanmar"
-        latin:enableProximityCharsCorrection="true" />
-    <!-- On these shifted alphabet layouts the proximity characters correction should be disabled
-         because the letters on these layouts aren't the ones in different case of the above
-         unshifted layouts. -->
-    <Element
-        latin:elementName="alphabetManualShifted"
-        latin:elementKeyboard="@xml/kbd_myanmar" />
-    <Element
-        latin:elementName="alphabetShiftLocked"
-        latin:elementKeyboard="@xml/kbd_myanmar" />
-    <Element
-        latin:elementName="alphabetShiftLockShifted"
-        latin:elementKeyboard="@xml/kbd_myanmar" />
-    <Element
-        latin:elementName="symbols"
-        latin:elementKeyboard="@xml/kbd_symbols" />
-    <Element
-        latin:elementName="symbolsShifted"
-        latin:elementKeyboard="@xml/kbd_symbols_shift" />
-    <Element
-        latin:elementName="phone"
-        latin:elementKeyboard="@xml/kbd_phone" />
-    <Element
-        latin:elementName="phoneSymbols"
-        latin:elementKeyboard="@xml/kbd_phone_symbols" />
-    <Element
-        latin:elementName="number"
-        latin:elementKeyboard="@xml/kbd_number" />
-</KeyboardLayoutSet>
diff --git a/java/res/xml/keyboard_layout_set_nordic.xml b/java/res/xml/keyboard_layout_set_nordic.xml
index 1f00f44..eb3d45b 100644
--- a/java/res/xml/keyboard_layout_set_nordic.xml
+++ b/java/res/xml/keyboard_layout_set_nordic.xml
@@ -23,7 +23,8 @@
     <Element
         latin:elementName="alphabet"
         latin:elementKeyboard="@xml/kbd_nordic"
-        latin:enableProximityCharsCorrection="true" />
+        latin:enableProximityCharsCorrection="true"
+        latin:allowRedundantMoreKeys="false" />
     <Element
         latin:elementName="symbols"
         latin:elementKeyboard="@xml/kbd_symbols" />
diff --git a/java/res/xml/keyboard_layout_set_qwerty.xml b/java/res/xml/keyboard_layout_set_qwerty.xml
index 8215170..7c9a140 100644
--- a/java/res/xml/keyboard_layout_set_qwerty.xml
+++ b/java/res/xml/keyboard_layout_set_qwerty.xml
@@ -23,7 +23,8 @@
     <Element
         latin:elementName="alphabet"
         latin:elementKeyboard="@xml/kbd_qwerty"
-        latin:enableProximityCharsCorrection="true" />
+        latin:enableProximityCharsCorrection="true"
+        latin:supportsSplitLayout="true" />
     <Element
         latin:elementName="symbols"
         latin:elementKeyboard="@xml/kbd_symbols" />
diff --git a/java/res/xml/keyboard_layout_set_serbian_qwertz.xml b/java/res/xml/keyboard_layout_set_serbian_qwertz.xml
new file mode 100644
index 0000000..2c7e28b
--- /dev/null
+++ b/java/res/xml/keyboard_layout_set_serbian_qwertz.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<KeyboardLayoutSet xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" >
+    <Element
+        latin:allowRedundantMoreKeys="false"
+        latin:elementKeyboard="@xml/kbd_serbian_qwertz"
+        latin:elementName="alphabet"
+        latin:enableProximityCharsCorrection="true" />
+    <Element
+        latin:elementKeyboard="@xml/kbd_symbols"
+        latin:elementName="symbols" />
+    <Element
+        latin:elementKeyboard="@xml/kbd_symbols_shift"
+        latin:elementName="symbolsShifted" />
+    <Element
+        latin:elementKeyboard="@xml/kbd_phone"
+        latin:elementName="phone" />
+    <Element
+        latin:elementKeyboard="@xml/kbd_phone_symbols"
+        latin:elementName="phoneSymbols" />
+    <Element
+        latin:elementKeyboard="@xml/kbd_number"
+        latin:elementName="number" />
+</KeyboardLayoutSet>
\ No newline at end of file
diff --git a/java/res/xml/keyboard_layout_set_swiss.xml b/java/res/xml/keyboard_layout_set_swiss.xml
index e17a5ab..f925b83 100644
--- a/java/res/xml/keyboard_layout_set_swiss.xml
+++ b/java/res/xml/keyboard_layout_set_swiss.xml
@@ -23,7 +23,8 @@
     <Element
         latin:elementName="alphabet"
         latin:elementKeyboard="@xml/kbd_swiss"
-        latin:enableProximityCharsCorrection="true" />
+        latin:enableProximityCharsCorrection="true"
+        latin:allowRedundantMoreKeys="true" />
     <Element
         latin:elementName="symbols"
         latin:elementKeyboard="@xml/kbd_symbols" />
diff --git a/java/res/xml/keyboard_layout_set_uzbek.xml b/java/res/xml/keyboard_layout_set_uzbek.xml
new file mode 100644
index 0000000..8251b01
--- /dev/null
+++ b/java/res/xml/keyboard_layout_set_uzbek.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<KeyboardLayoutSet xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" >
+    <Element
+        latin:elementName="alphabet"
+        latin:elementKeyboard="@xml/kbd_uzbek"
+        latin:enableProximityCharsCorrection="true"
+        latin:allowRedundantMoreKeys="true" />
+    <Element
+        latin:elementKeyboard="@xml/kbd_symbols"
+        latin:elementName="symbols" />
+    <Element
+        latin:elementKeyboard="@xml/kbd_symbols_shift"
+        latin:elementName="symbolsShifted" />
+    <Element
+        latin:elementKeyboard="@xml/kbd_phone"
+        latin:elementName="phone" />
+    <Element
+        latin:elementKeyboard="@xml/kbd_phone_symbols"
+        latin:elementName="phoneSymbols" />
+    <Element
+        latin:elementKeyboard="@xml/kbd_number"
+        latin:elementName="number" />
+</KeyboardLayoutSet>
\ No newline at end of file
diff --git a/java/res/xml/keystyle_devanagari_sign_virama.xml b/java/res/xml/keystyle_devanagari_sign_virama.xml
index ff778d9..7863ca4 100644
--- a/java/res/xml/keystyle_devanagari_sign_virama.xml
+++ b/java/res/xml/keystyle_devanagari_sign_virama.xml
@@ -35,7 +35,7 @@
                  U+090D: "ऍ" DEVANAGARI LETTER CANDRA E -->
             <key-style
                 latin:styleName="moreKeysDevanagariSignVirama"
-                latin:moreKeys="&#x25CC;&#x0945;,&#x090D;" />
+                latin:moreKeys="&#x25CC;&#x0945;|&#x0945;,&#x090D;" />
         </case>
         <case latin:keyboardLayoutSet="marathi">
             <!-- U+0905: "अ" DEVANAGARI LETTER A -->
diff --git a/java/res/xml/method.xml b/java/res/xml/method.xml
index 4f8efa8..0b0c93e 100644
--- a/java/res/xml/method.xml
+++ b/java/res/xml/method.xml
@@ -28,6 +28,7 @@
     be_BY: Belarusian (Belarus)/east_slavic
     bg: Bulgarian/bulgarian
     bg: Bulgarian/bulgarian_bds
+    bn_BD: Bengali (Bangladesh)/bengali_akkhor
     bn_IN: Bengali (India)/bengali
     ca: Catalan/spanish
     cs: Czech/qwertz
@@ -52,6 +53,7 @@
     gl_ES: Galician (Spain)/spanish
     hi: Hindi/hindi
     hi: Hindi/hindi_compact
+    hi_ZZ: Hinglish/qwerty  # This is a preliminary keyboard layout.
     hr: Croatian/qwertz
     hu: Hungarian/qwertz
     hy_AM: Armenian (Armenia) Phonetic/armenian_phonetic
@@ -73,7 +75,6 @@
     mn_MN: Mongolian (Mongolia)/mongolian
     mr_IN: Marathi (India)/marathi
     ms_MY: Malay (Malaysia)/qwerty
-    (my_MM: Myanmar (Myanmar)/myanmar) # This is a preliminary keyboard layout.
     nb: Norwegian Bokmål/nordic
     ne_NP: Nepali (Nepal) Romanized/nepali_romanized
     ne_NP: Nepali (Nepal) Traditional/nepali_traditional
@@ -84,21 +85,22 @@
     pt_PT: Portuguese (Portugal)/qwerty
     ro: Romanian/qwerty
     ru: Russian/east_slavic
-    (si_LK: Sinhala (Sri Lanka)/sinhala) # This is a preliminary keyboard layout.
+    si_LK: Sinhala (Sri Lanka)/sinhala # This is a preliminary keyboard layout.
     sk: Slovak/qwerty
     sl: Slovenian/qwerty
     sr: Serbian/south_slavic
-    (sr-Latn: Serbian/qwerty) # not yet implemented.
+    sr_ZZ: Serbian (Latin)/serbian_qwertz # This is a preliminary keyboard layout.
     sv: Swedish/nordic
     sw: Swahili/qwerty
     ta_IN: Tamil (India)/tamil
-    (ta_LK: Tamil (Sri Lanka)/tamil) # Disabled in conjunction with si_LK.
+    ta_LK: Tamil (Sri Lanka)/tamil # Disabled in conjunction with si_LK.
     ta_SG: Tamil (Singapore)/tamil
     te_IN: Telugu (India)/telugu
     th: Thai/thai
     tl: Tagalog/spanish
     tr: Turkish/qwerty
     uk: Ukrainian/east_slavic
+    uz_UZ: Uzbek (Uzbekistan)/uzbek # This is a preliminary keyboard layout.
     vi: Vietnamese/qwerty
     zu: Zulu/qwerty
     zz: QWERTY/qwerty
@@ -180,6 +182,14 @@
     />
     <subtype android:icon="@drawable/ic_ime_switcher_dark"
             android:label="@string/subtype_generic"
+            android:subtypeId="0xa2144b0c"
+            android:imeSubtypeLocale="bn_BD"
+            android:imeSubtypeMode="keyboard"
+            android:imeSubtypeExtraValue="KeyboardLayoutSet=bengali_akkhor,EmojiCapable"
+            android:isAsciiCapable="false"
+    />
+    <subtype android:icon="@drawable/ic_ime_switcher_dark"
+            android:label="@string/subtype_generic"
             android:subtypeId="0xbff5986c"
             android:imeSubtypeLocale="bn_IN"
             android:imeSubtypeMode="keyboard"
@@ -354,6 +364,18 @@
             android:imeSubtypeExtraValue="KeyboardLayoutSet=hindi_compact,EmojiCapable"
             android:isAsciiCapable="false"
     />
+    <!-- TODO: This Hinglish keyboard is a preliminary layout.
+               This isn't based on the final specification. -->
+    <!--  Disabled because there is no LM yet, and this layout does not offer anything different.
+    <subtype android:icon="@drawable/ic_ime_switcher_dark"
+            android:label="@string/subtype_hi_ZZ"
+            android:subtypeId="0x352eb37c"
+            android:imeSubtypeLocale="hi_ZZ"
+            android:imeSubtypeMode="keyboard"
+            android:imeSubtypeExtraValue="AsciiCapable,KeyboardLayoutSet=qwerty,EmojiCapable"
+            android:isAsciiCapable="true"
+    />
+    -->
     <subtype android:icon="@drawable/ic_ime_switcher_dark"
             android:label="@string/subtype_generic"
             android:subtypeId="0x35b7526a"
@@ -524,18 +546,6 @@
             android:imeSubtypeExtraValue="KeyboardLayoutSet=qwerty,AsciiCapable,EmojiCapable"
             android:isAsciiCapable="true"
     />
-    <!-- TODO: This Myanmar keyboard is a preliminary layout.
-               This isn't based on the final specification. -->
-    <!--
-    <subtype android:icon="@drawable/ic_ime_switcher_dark"
-            android:label="@string/subtype_generic"
-            android:subtypeId="0xea266ea4"
-            android:imeSubtypeLocale="my_MM"
-            android:imeSubtypeMode="keyboard"
-            android:imeSubtypeExtraValue="KeyboardLayoutSet=myanmar,EmojiCapable,CombiningRules=MyanmarReordering"
-            android:isAsciiCapable="false"
-    />
-    -->
     <subtype android:icon="@drawable/ic_ime_switcher_dark"
             android:label="@string/subtype_generic"
             android:subtypeId="0x3f12ee14"
@@ -618,7 +628,7 @@
     />
     <!-- TODO: This Sinhala keyboard is a preliminary layout.
                This isn't based on the final specification. -->
-    <!--
+    <!-- si_LK is currently disabled due to lack of combination rules.
     <subtype android:icon="@drawable/ic_ime_switcher_dark"
             android:label="@string/subtype_generic"
             android:subtypeId="0x5c6b3bde"
@@ -652,24 +662,16 @@
             android:imeSubtypeExtraValue="SupportTouchPositionCorrection,EmojiCapable"
             android:isAsciiCapable="false"
     />
-    <!-- TODO: Uncomment once we can handle IETF language tag with script name specified.
+    <!-- TODO: This Serbian Latin keyboard is a preliminary layout.
+               This isn't based on the final specification. -->
     <subtype android:icon="@drawable/ic_ime_switcher_dark"
-            android:label="@string/subtype_serbian_cyrillic"
-            android:subtypeId="0xXXXXXXXX"
-            android:imeSubtypeLocale="sr"
+            android:label="@string/subtype_sr_ZZ"
+            android:subtypeId="0xf4a5569c"
+            android:imeSubtypeLocale="sr_ZZ"
             android:imeSubtypeMode="keyboard"
-            android:imeSubtypeExtraValue="SupportTouchPositionCorrection,EmojiCapable"
-            android:isAsciiCapable="false"
-    />
-    <subtype android:icon="@drawable/ic_ime_switcher_dark"
-            android:label="@string/subtype_serbian_latin"
-            android:subtypeId="0xXXXXXXXX"
-            android:imeSubtypeLocale="sr-Latn"
-            android:imeSubtypeMode="keyboard"
-            android:imeSubtypeExtraValue="KeyboardLayoutSet=qwerty,AsciiCapable,EmojiCapable"
+            android:imeSubtypeExtraValue="KeyboardLayoutSet=serbian_qwertz,AsciiCapable,EmojiCapable"
             android:isAsciiCapable="true"
     />
-    -->
     <subtype android:icon="@drawable/ic_ime_switcher_dark"
             android:label="@string/subtype_generic"
             android:subtypeId="0x48b4ff43"
@@ -694,8 +696,8 @@
             android:imeSubtypeExtraValue="KeyboardLayoutSet=tamil,EmojiCapable"
             android:isAsciiCapable="false"
     />
-    <!-- TODO: Enable ta_LK subtype when si_LK subtype is ready -->
-    <!--
+    <!-- TODO: Enabling/Disabling ta_LK subtype must be aligned with si_LK subtype. -->
+    <!-- ta_LK disabled alongside si_LK subtype due to lack of combination rules.
     <subtype android:icon="@drawable/ic_ime_switcher_dark"
             android:label="@string/subtype_generic"
             android:subtypeId="0x6ca12d84"
@@ -704,7 +706,7 @@
             android:imeSubtypeExtraValue="KeyboardLayoutSet=tamil,EmojiCapable"
             android:isAsciiCapable="false"
     />
-    -->
+    !-->
     <subtype android:icon="@drawable/ic_ime_switcher_dark"
             android:label="@string/subtype_generic"
             android:subtypeId="0x785abbd9"
@@ -753,6 +755,16 @@
             android:imeSubtypeExtraValue="KeyboardLayoutSet=east_slavic,EmojiCapable"
             android:isAsciiCapable="false"
     />
+    <!-- TODO: This Uzbek keyboard is a preliminary layout.
+               This isn't based on the final specification. -->
+    <subtype android:icon="@drawable/ic_ime_switcher_dark"
+            android:label="@string/subtype_generic"
+            android:subtypeId="0xad5cf7f6"
+            android:imeSubtypeLocale="uz_UZ"
+            android:imeSubtypeMode="keyboard"
+            android:imeSubtypeExtraValue="KeyboardLayoutSet=uzbek,AsciiCapable,EmojiCapable"
+            android:isAsciiCapable="true"
+    />
     <subtype android:icon="@drawable/ic_ime_switcher_dark"
             android:label="@string/subtype_generic"
             android:subtypeId="0x93972eee"
diff --git a/java/res/xml/prefs.xml b/java/res/xml/prefs.xml
index c14cd64..f01909f 100644
--- a/java/res/xml/prefs.xml
+++ b/java/res/xml/prefs.xml
@@ -23,14 +23,14 @@
         android:title="@string/settings_screen_preferences"
         android:key="screen_preferences" />
     <PreferenceScreen
+        android:fragment="com.android.inputmethod.latin.settings.AccountsSettingsFragment"
+        android:title="@string/settings_screen_accounts"
+        android:key="screen_accounts" />
+    <PreferenceScreen
         android:fragment="com.android.inputmethod.latin.settings.AppearanceSettingsFragment"
         android:title="@string/settings_screen_appearance"
         android:key="screen_appearance" />
     <PreferenceScreen
-        android:fragment="com.android.inputmethod.latin.settings.MultiLingualSettingsFragment"
-        android:title="@string/settings_screen_multilingual"
-        android:key="screen_multilingual" />
-    <PreferenceScreen
         android:fragment="com.android.inputmethod.latin.settings.GestureSettingsFragment"
         android:title="@string/settings_screen_gesture"
         android:key="screen_gesture" />
diff --git a/java/res/xml/prefs_screen_accounts.xml b/java/res/xml/prefs_screen_accounts.xml
new file mode 100644
index 0000000..f2ade91
--- /dev/null
+++ b/java/res/xml/prefs_screen_accounts.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+    android:title="@string/settings_screen_accounts">
+
+    <!-- This preference is a dummy view of the underlying preference.
+         This isn't persisted and the summary/title is refreshed by the fragment
+         after inspecting the underlying account preference. -->
+    <Preference
+        android:key="account_switcher"
+        android:persistent="false"
+        android:title="@string/switch_accounts"
+        android:summary="@string/no_accounts_selected" />
+
+    <!-- Summary will be set programmatically to reflect the account status -->
+    <CheckBoxPreference
+        android:key="pref_enable_cloud_sync"
+        android:title="@string/cloud_sync_title"
+        android:defaultValue="false"
+        android:persistent="true"
+        android:disableDependentsState="false" />
+
+    <!-- This preference (acts like a button) enables the user to initiate an one time sync. -->
+    <Preference android:key="pref_sync_now"
+        android:persistent="false"
+        android:title="@string/sync_now_title"
+        android:dependency="pref_enable_cloud_sync" />
+
+    <!-- This preference (acts like a button) enables the user to clear data from the cloud. -->
+    <Preference android:key="pref_clear_sync_data"
+        android:persistent="false"
+        android:title="@string/clear_sync_data_title"
+        android:summary="@string/clear_sync_data_summary"
+        android:dependency="pref_enable_cloud_sync" />
+
+    <!-- Title will be set programmatically to embed application name -->
+    <CheckBoxPreference
+        android:key="pref_enable_metrics_logging"
+        android:summary="@string/enable_metrics_logging_summary"
+        android:defaultValue="true"
+        android:persistent="true" />
+</PreferenceScreen>
diff --git a/java/res/xml/prefs_screen_advanced.xml b/java/res/xml/prefs_screen_advanced.xml
index 5aefcc8..6038f99 100644
--- a/java/res/xml/prefs_screen_advanced.xml
+++ b/java/res/xml/prefs_screen_advanced.xml
@@ -31,16 +31,16 @@
         android:key="pref_keypress_sound_volume"
         android:title="@string/prefs_keypress_sound_volume_settings"
         latin:maxValue="100" /> <!-- percent -->
-    <!-- The settings for showing setup wizard application icon shouldn't be persistent and
-         the default value is added programmatically. -->
+    <com.android.inputmethod.latin.settings.SeekBarDialogPreference
+        android:key="pref_key_longpress_timeout"
+        android:title="@string/prefs_key_longpress_timeout_settings"
+        latin:minValue="@integer/config_min_longpress_timeout"
+        latin:maxValue="@integer/config_max_longpress_timeout"
+        latin:stepValue="@integer/config_longpress_timeout_step" />
     <CheckBoxPreference
-        android:key="pref_show_setup_wizard_icon"
-        android:title="@string/show_setup_wizard_icon"
-        android:summary="@string/show_setup_wizard_icon_summary" />
-    <!-- title will be set programmatically to embed application name -->
-    <CheckBoxPreference
-        android:key="pref_enable_metrics_logging"
-        android:summary="@string/enable_metrics_logging_summary"
+        android:key="pref_enable_emoji_alt_physical_key"
+        android:title="@string/prefs_enable_emoji_alt_physical_key"
+        android:summary="@string/prefs_enable_emoji_alt_physical_key_summary"
         android:defaultValue="true"
         android:persistent="true" />
     <PreferenceScreen
diff --git a/java/res/xml/prefs_screen_appearance.xml b/java/res/xml/prefs_screen_appearance.xml
index 7719c05..036b665 100644
--- a/java/res/xml/prefs_screen_appearance.xml
+++ b/java/res/xml/prefs_screen_appearance.xml
@@ -26,4 +26,9 @@
         android:fragment="com.android.inputmethod.latin.settings.CustomInputStyleSettingsFragment"
         android:key="custom_input_styles"
         android:title="@string/custom_input_styles_title" />
+    <CheckBoxPreference
+        android:key="pref_split_keyboard"
+        android:title="@string/enable_split_keyboard"
+        android:persistent="true"
+        android:defaultValue="false" />
 </PreferenceScreen>
diff --git a/java/res/xml/prefs_screen_correction.xml b/java/res/xml/prefs_screen_correction.xml
index dd5ba54..a943dc1 100644
--- a/java/res/xml/prefs_screen_correction.xml
+++ b/java/res/xml/prefs_screen_correction.xml
@@ -41,13 +41,11 @@
         android:summary="@string/prefs_block_potentially_offensive_summary"
         android:defaultValue="@bool/config_block_potentially_offensive"
         android:persistent="true" />
-    <ListPreference
-        android:key="auto_correction_threshold"
+    <CheckBoxPreference
+        android:key="pref_key_auto_correction"
         android:title="@string/auto_correction"
         android:summary="@string/auto_correction_summary"
-        android:entryValues="@array/auto_correction_threshold_mode_indexes"
-        android:entries="@array/auto_correction_threshold_modes"
-        android:defaultValue="@string/auto_correction_threshold_mode_index_modest"
+        android:defaultValue="true"
         android:persistent="true" />
     <CheckBoxPreference
         android:key="show_suggestions"
diff --git a/java/res/xml/prefs_screen_debug.xml b/java/res/xml/prefs_screen_debug.xml
index c477402..1ae2d0e 100644
--- a/java/res/xml/prefs_screen_debug.xml
+++ b/java/res/xml/prefs_screen_debug.xml
@@ -31,13 +31,8 @@
         android:defaultValue="false"
         android:persistent="true" />
     <CheckBoxPreference
-        android:key="force_physical_keyboard_special_key"
-        android:title="@string/prefs_force_physical_keyboard_special_key"
-        android:defaultValue="false"
-        android:persistent="true" />
-    <CheckBoxPreference
-        android:key="pref_show_ui_to_accept_typed_word"
-        android:title="@string/prefs_show_ui_to_accept_typed_word"
+        android:key="pref_should_show_lxx_suggestion_ui"
+        android:title="@string/prefs_should_show_lxx_suggestion_ui"
         android:defaultValue="true"
         android:persistent="true" />
     <CheckBoxPreference
@@ -46,12 +41,6 @@
         android:summary="@string/sliding_key_input_preview_summary"
         android:defaultValue="true"
         android:persistent="true" />
-    <com.android.inputmethod.latin.settings.SeekBarDialogPreference
-        android:key="pref_key_longpress_timeout"
-        android:title="@string/prefs_key_longpress_timeout_settings"
-        latin:minValue="@integer/config_min_longpress_timeout"
-        latin:maxValue="@integer/config_max_longpress_timeout"
-        latin:stepValue="@integer/config_longpress_timeout_step" />
     <CheckBoxPreference
         android:key="pref_has_custom_key_preview_animation_params"
         android:title="@string/prefs_customize_key_preview_animation"
@@ -87,9 +76,17 @@
         android:key="pref_key_preview_dismiss_duration"
         android:title="@string/prefs_key_popup_dismiss_duration_settings"
         latin:maxValue="100" /> <!-- milliseconds -->
-    <PreferenceScreen
-        android:key="read_external_dictionary"
-        android:title="@string/prefs_read_external_dictionary" />
+    <CheckBoxPreference
+        android:key="pref_resize_keyboard"
+        android:title="@string/prefs_resize_keyboard"
+        android:defaultValue="false"
+        android:persistent="true" />
+    <com.android.inputmethod.latin.settings.SeekBarDialogPreference
+        android:dependency="pref_resize_keyboard"
+        android:key="pref_keyboard_height_scale"
+        android:title="@string/prefs_keyboard_height_scale"
+        latin:minValue="50"
+        latin:maxValue="120" /> <!-- percentage -->
     <PreferenceCategory
         android:key="pref_key_dump_dictionaries"
         android:title="@string/prefs_dump_dynamic_dicts">
diff --git a/java/res/xml/prefs_screen_gesture.xml b/java/res/xml/prefs_screen_gesture.xml
index c87316d..38c7eda 100644
--- a/java/res/xml/prefs_screen_gesture.xml
+++ b/java/res/xml/prefs_screen_gesture.xml
@@ -37,11 +37,4 @@
         android:title="@string/gesture_preview_trail"
         android:defaultValue="true"
         android:persistent="true" />
-    <CheckBoxPreference
-        android:key="pref_gesture_space_aware"
-        android:dependency="gesture_input"
-        android:title="@string/gesture_space_aware"
-        android:summary="@string/gesture_space_aware_summary"
-        android:defaultValue="true"
-        android:persistent="true" />
 </PreferenceScreen>
diff --git a/java/res/xml/prefs_screen_multilingual.xml b/java/res/xml/prefs_screen_multilingual.xml
deleted file mode 100644
index 07a4b70..0000000
--- a/java/res/xml/prefs_screen_multilingual.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<PreferenceScreen
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:title="@string/settings_screen_multilingual"
-    android:key="screen_multilingual">
-    <CheckBoxPreference
-        android:key="pref_show_language_switch_key"
-        android:title="@string/show_language_switch_key"
-        android:summary="@string/show_language_switch_key_summary"
-        android:defaultValue="true"
-        android:persistent="true" />
-    <CheckBoxPreference
-        android:key="pref_include_other_imes_in_language_switch_list"
-        android:dependency="pref_show_language_switch_key"
-        android:title="@string/include_other_imes_in_language_switch_list"
-        android:summary="@string/include_other_imes_in_language_switch_list_summary"
-        android:defaultValue="false"
-        android:persistent="true" />
-</PreferenceScreen>
diff --git a/java/res/xml/rowkeys_bengali_akkhor1.xml b/java/res/xml/rowkeys_bengali_akkhor1.xml
new file mode 100644
index 0000000..bc612be
--- /dev/null
+++ b/java/res/xml/rowkeys_bengali_akkhor1.xml
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
+    <switch>
+        <case latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted">
+            <!-- U+09A2: "ঢ" BENGALI LETTER DDHA -->
+            <Key latin:keySpec="&#x09A2;" />
+            <!-- U+09A0: "ঠ" BENGALI LETTER TTHA -->
+            <Key latin:keySpec="&#x09A0;" />
+            <!-- U+09C8: "ৈ" BENGALI VOWEL SIGN AI
+                 U+0990: "ঐ" BENGALI LETTER AI -->
+            <Key
+                latin:keySpec="&#x09C8;"
+                latin:moreKeys="&#x0990;" />
+            <!-- U+09DC: "ড়" BENGALI LETTER RRA
+                 U+09BC: "়" BENGALI SIGN NUKTA -->
+            <Key
+                latin:keySpec="&#x09DC;"
+                latin:moreKeys="&#x09BC;" />
+            <!-- U+099F: "ট" BENGALI LETTER TTA
+                 U+09F3: "৳" BENGALI RUPEE SIGN
+                 U+099F/U+09CD/U+099F: "ট্ট" BENGALI LETTER TTA/BENGALI SIGN VIRAMA/BENGALI LETTER TTA
+                 U+099F/U+09CD/U+09AC: "ট্ব" BENGALI LETTER TTA/BENGALI SIGN VIRAMA/BENGALI LETTER BA
+                 U+099F/U+09CD/U+09AE: "ট্ম" BENGALI LETTER TTA/BENGALI SIGN VIRAMA/BENGALI LETTER MA -->
+            <Key
+                latin:keySpec="&#x099F;"
+                latin:moreKeys="&#x09F3;,&#x099F;&#x09CD;&#x099F;,&#x099F;&#x09CD;&#x09AC;,&#x099F;&#x09CD;&#x09AE;" />
+            <!-- U+099E: "ঞ" BENGALI LETTER NYA
+                 U+099E/U+09CD/U+099A: "ঞ্চ" BENGALI LETTER NYA/BENGALI SIGN VIRAMA/BENGALI LETTER CA
+                 U+099E/U+09CD/U+099B: "ঞ্ছ" BENGALI LETTER NYA/BENGALI SIGN VIRAMA/BENGALI LETTER CHA
+                 U+099E/U+09CD/U+099C: "ঞ্জ" BENGALI LETTER NYA/BENGALI SIGN VIRAMA/BENGALI LETTER JA -->
+            <Key
+                latin:keySpec="&#x099E;"
+                latin:moreKeys="&#x099E;&#x09CD;&#x099A;,&#x099E;&#x09CD;&#x099B;,&#x099E;&#x09CD;&#x099C;" />
+            <!-- U+09C2: "ূ" BENGALI VOWEL SIGN UU
+                 U+098A: "ঊ" BENGALI LETTER UU -->
+            <Key
+                latin:keySpec="&#x09C2;"
+                latin:moreKeys="&#x098A;" />
+            <!-- U+09C0: "ী" BENGALI VOWEL SIGN II
+                 U+0988: "ঈ" BENGALI LETTER II -->
+            <Key
+                latin:keySpec="&#x09C0;"
+                latin:moreKeys="&#x0988;" />
+            <!-- U+09CC: "ৌ" BENGALI VOWEL SIGN AU
+                 U+099A: "ঔ" BENGALI LETTER CA
+                 U+09D7: "ৗ" BENGALI AU LENGTH MARK -->
+            <Key
+                latin:keySpec="&#x09CC;"
+                latin:moreKeys="&#x099A;,&#x09D7;" />
+            <!-- U+09AB: "ফ" BENGALI LETTER PHA
+                 U+09AB/U+09CD/U+099F: "ফ্ট" BENGALI LETTER PHA/BENGALI SIGN VIRAMA/BENGALI LETTER TTA
+                 U+09AB/U+09CD/U+09AF: "ফ্য" BENGALI LETTER PHA/BENGALI SIGN VIRAMA/BENGALI LETTER YA
+                 U+09AB/U+09CD/U+09B0: "ফ্র" BENGALI LETTER PHA/BENGALI SIGN VIRAMA/BENGALI LETTER RA
+                 U+09AB/U+09CD/U+09B2: "ফ্ল" BENGALI LETTER PHA/BENGALI SIGN VIRAMA/BENGALI LETTER LA -->
+            <Key
+                latin:keySpec="&#x09AB;"
+                latin:moreKeys="&#x09AB;&#x09CD;&#x099F;,&#x09AB;&#x09CD;&#x09AF;,&#x09AB;&#x09CD;&#x09B0;,&#x09AB;&#x09CD;&#x09B2;" />
+            <!-- U+098B: "ঋ" BENGALI LETTER VOCALIC R
+                 U+098C: "ঌ" BENGALI LETTER VOCALIC L
+                 U+09E1: "ৡ" BENGALI LETTER VOCALIC LL
+                 U+09F4: "৴" BENGALI CURRENCY NUMERATOR ONE
+                 U+09F5: "৵" BENGALI CURRENCY NUMERATOR TWO
+                 U+09F6: "৶" BENGALI CURRENCY NUMERATOR THREE
+                 U+09E2: " ৢ" BENGALI VOWEL SIGN VOCALIC L
+                 U+09E3: " ৣ" BENGALI VOWEL SIGN VOCALIC LL -->
+            <Key
+                latin:keySpec="&#x098B;"
+                latin:moreKeys="&#x098C;,&#x09E1;,&#x09F4;,&#x09F5;,&#x09F6;,&#x09E2;,&#x09E3;" />
+        </case>
+        <default>
+            <!-- U+09A7: "ধ" BENGALI LETTER DHA
+                 U+09E7: "১" BENGALI DIGIT ONE
+                 U+09A7/U+09CD/U+09AC: "ধ্ব্র" BENGALI LETTER DHA/BENGALI SIGN VIRAMA/BENGALI LETTER BA
+                 U+09A7/U+09CD/U+09AF: "ধ্য্র" BENGALI LETTER DHA/BENGALI SIGN VIRAMA/BENGALI LETTER YA
+                 U+09A7/U+09CD/U+09B0: "ধ্র" BENGALI LETTER DHA/BENGALI SIGN VIRAMA/BENGALI LETTER RA -->
+            <Key
+                latin:keySpec="&#x09A7;"
+                latin:keyHintLabel="&#x09E7;"
+                latin:additionalMoreKeys="&#x09E7;"
+                latin:moreKeys="&#x09A7;&#x09CD;&#x09AC;,&#x09A7;&#x09CD;&#x09AF;,&#x09A7;&#x09CD;&#x09B0;" />
+            <!-- U+09A5: "থ" BENGALI LETTER THA
+                 U+09E8: "২" BENGALI DIGIT TWO
+                 U+09A5/U+09CD/U+09AF: "থ্য" BENGALI LETTER THA/BENGALI SIGN VIRAMA/BENGALI LETTER YA
+                 U+09A5/U+09CD/U+09B0: "থ্র" BENGALI LETTER THA/BENGALI SIGN VIRAMA/BENGALI LETTER RA -->
+            <Key
+                latin:keySpec="&#x09A5;"
+                latin:keyHintLabel="&#x09E8;"
+                latin:additionalMoreKeys="&#x09E8;"
+                latin:moreKeys="&#x09A5;&#x09CD;&#x09AF;,&#x09A5;&#x09CD;&#x09B0;" />
+            <!-- U+09C7: "ে" BENGALI VOWEL SIGN E
+                 U+09E9: "৩" BENGALI DIGIT THREE
+                 U+098F: "এ" BENGALI LETTER E -->
+            <Key
+                latin:keySpec="&#x09C7;"
+                latin:keyHintLabel="&#x09E9;"
+                latin:additionalMoreKeys="&#x09E9;"
+                latin:moreKeys="&#x098F;" />
+            <!-- U+09B0: "র" BENGALI LETTER RA
+                 U+09EA: "৪" BENGALI DIGIT FOUR -->
+            <Key
+                latin:keySpec="&#x09B0;"
+                latin:keyHintLabel="&#x09EA;"
+                latin:additionalMoreKeys="&#x09EA;" />
+            <!-- U+09A4: "ত" BENGALI LETTER TA
+                 U+09EB: "৫" BENGALI DIGIT FIVE
+                 U+09CE: "ৎ" BENGALI LETTER KHANDA TA
+                 U+09A4/U+09CD/U+09A4: "ত্ত" BENGALI LETTER TA/BENGALI SIGN VIRAMA/BENGALI LETTER TA
+                 U+09A4/U+09CD/U+09A8: "ত্ন" BENGALI LETTER TA/BENGALI SIGN VIRAMA/BENGALI LETTER NA
+                 U+09A4/U+09CD/U+09AC: "ত্ব" BENGALI LETTER TA/BENGALI SIGN VIRAMA/BENGALI LETTER BA
+                 U+09A4/U+09CD/U+09AE: "ত্ম" BENGALI LETTER TA/BENGALI SIGN VIRAMA/BENGALI LETTER MA -->
+            <Key
+                latin:keySpec="&#x09A4;"
+                latin:keyHintLabel="&#x09EB;"
+                latin:additionalMoreKeys="&#x09EB;"
+                latin:moreKeys="&#x09CE;,&#x09A4;&#x09CD;&#x09A4;,&#x09A4;&#x09CD;&#x09A8;,&#x09A4;&#x09CD;&#x09AC;,&#x09A4;&#x09CD;&#x09AE;" />
+            <!-- U+09DF: "য়" BENGALI LETTER YYA
+                 U+09EC: "৬" BENGALI DIGIT SIX -->
+            <Key
+                latin:keySpec="&#x09DF;"
+                latin:keyHintLabel="&#x09EC;"
+                latin:additionalMoreKeys="&#x09EC;" />
+            <!-- U+09C1: "ু" BENGALI VOWEL SIGN U
+                 U+09ED: "৭" BENGALI DIGIT SEVEN
+                 U+0989: "উ" BENGALI LETTER U -->
+            <Key
+                latin:keySpec="&#x09C1;"
+                latin:keyHintLabel="&#x09ED;"
+                latin:additionalMoreKeys="&#x09ED;"
+                latin:moreKeys="&#x0989;" />
+            <!-- U+09BF: "ি" BENGALI VOWEL SIGN I
+                 U+09EE: "৮" BENGALI DIGIT EIGHT
+                 U+0987: "ই BENGALI LETTER I -->
+            <Key
+                latin:keySpec="&#x09BF;"
+                latin:keyHintLabel="&#x09EE;"
+                latin:additionalMoreKeys="&#x09EE;"
+                latin:moreKeys="&#x0987;" />
+            <!-- U+09CB: "ো" BENGALI VOWEL SIGN O
+                 U+09EF: "৯" BENGALI DIGIT NINE
+                 U+0993: "ও" BENGALI LETTER O -->
+            <Key
+                latin:keySpec="&#x09CB;"
+                latin:keyHintLabel="&#x09EF;"
+                latin:additionalMoreKeys="&#x09EF;"
+                latin:moreKeys="&#x0993;" />
+            <!-- U+09AA: "প" BENGALI LETTER PA
+                 U+09E6: "০" BENGALI DIGIT ZERO
+                 U+09AA/U+09CD/U+09A4: "প্ত" BENGALI LETTER PA/BENGALI SIGN VIRAMA/BENGALI LETTER TA
+                 U+09AA/U+09CD/U+09A8: "প্ন" BENGALI LETTER PA/BENGALI SIGN VIRAMA/BENGALI LETTER NA
+                 U+09AA/U+09CD/U+09AA: "প্প" BENGALI LETTER PA/BENGALI SIGN VIRAMA/BENGALI LETTER PA
+                 U+09AA/U+09CD/U+09AF: "প্য" BENGALI LETTER PA/BENGALI SIGN VIRAMA/BENGALI LETTER YA
+                 U+09AA/U+09CD/U+09B0: "প্র" BENGALI LETTER PA/BENGALI SIGN VIRAMA/BENGALI LETTER RA
+                 U+09AA/U+09CD/U+09B2: "প্ল" BENGALI LETTER PA/BENGALI SIGN VIRAMA/BENGALI LETTER LA
+                 U+09AA/U+09CD/U+09B8: "প্স" BENGALI LETTER PA/BENGALI SIGN VIRAMA/BENGALI LETTER SA -->
+            <Key
+                latin:keySpec="&#x09AA;"
+                latin:keyHintLabel="&#x09E6;"
+                latin:additionalMoreKeys="&#x09E6;"
+                latin:moreKeys="&#x09AA;&#x09CD;&#x09A4;,&#x09AA;&#x09CD;&#x09A8;,&#x09AA;&#x09CD;&#x09AA;,&#x09AA;&#x09CD;&#x09AF;,&#x09AA;&#x09CD;&#x09B0;,&#x09AA;&#x09CD;&#x09B2;,&#x09AA;&#x09CD;&#x09B8;" />
+            <!-- U+0986: "আ" BENGALI LETTER AA -->
+            <Key latin:keySpec="&#x0986;" />
+        </default>
+    </switch>
+</merge>
diff --git a/java/res/xml/rowkeys_bengali_akkhor2.xml b/java/res/xml/rowkeys_bengali_akkhor2.xml
new file mode 100644
index 0000000..1dbab55
--- /dev/null
+++ b/java/res/xml/rowkeys_bengali_akkhor2.xml
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
+    <switch>
+        <case latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted">
+            <!-- U+0985: "অ" BENGALI LETTER A -->
+            <Key latin:keySpec="&#x0985;" />
+            <!-- U+09B6: "শ" BENGALI LETTER SHA
+                 U+09B6/U+09CD/U+099A: "শ্চ" BENGALI LETTER SHA/BENGALI SIGN VIRAMA/BENGALI LETTER CA
+                 U+09B6/U+09CD/U+099B: "শ্ছ" BENGALI LETTER SHA/BENGALI SIGN VIRAMA/BENGALI LETTER CHA
+                 U+09B6/U+09CD/U+09A4: "শ্ত" BENGALI LETTER SHA/BENGALI SIGN VIRAMA/BENGALI LETTER TA
+                 U+09B6/U+09CD/U+09A8: "শ্ন" BENGALI LETTER SHA/BENGALI SIGN VIRAMA/BENGALI LETTER NA
+                 U+09B6/U+09CD/U+09AC: "শ্ব" BENGALI LETTER SHA/BENGALI SIGN VIRAMA/BENGALI LETTER BA
+                 U+09B6/U+09CD/U+09AE: "শ্ম" BENGALI LETTER SHA/BENGALI SIGN VIRAMA/BENGALI LETTER MA
+                 U+09B6/U+09CD/U+09B0: "শ্র" BENGALI LETTER SHA/BENGALI SIGN VIRAMA/BENGALI LETTER RA
+                 U+09B6/U+09CD/U+09B2: "শ্ল" BENGALI LETTER SHA/BENGALI SIGN VIRAMA/BENGALI LETTER LA -->
+            <Key
+                latin:keySpec="&#x09B6;"
+                latin:moreKeys="&#x09B6;&#x09CD;&#x099A;,&#x09B6;&#x09CD;&#x099B;,&#x09B6;&#x09CD;&#x09A4;,&#x09B6;&#x09CD;&#x09A8;,&#x09B6;&#x09CD;&#x09AC;,&#x09B6;&#x09CD;&#x09AE;,&#x09B6;&#x09CD;&#x09B0;,&#x09B6;&#x09CD;&#x09B2;" />
+            <!-- U+09A1: "ড" BENGALI LETTER DDA
+                 U+09A1/U+09CD/U+09A1: "ড্ড" BENGALI LETTER DDA/BENGALI SIGN VIRAMA/BENGALI LETTER DDA-->
+            <Key
+                latin:keySpec="&#x09A1;"
+                latin:moreKeys="&#x09A1;&#x09CD;&#x09A1;" />
+            <!-- U+09DD: "ঢ়" BENGALI LETTER RHA -->
+            <Key latin:keySpec="&#x09DD;" />
+            <!-- U+0998: "ঘ" BENGALI LETTER GHA -->
+            <Key latin:keySpec="&#x0998;" />
+            <!-- U+09B9: "হ" BENGALI LETTER HA
+                 U+09BD: "ঽ" BENGALI SIGN AVAGRAHA
+                 U+09B9/U+09CD/U+09A3: "হ্ণ" BENGALI LETTER HA/BENGALI SIGN VIRAMA/BENGALI LETTER NNA
+                 U+09B9/U+09CD/U+09A8: "হ্ন" BENGALI LETTER HA/BENGALI SIGN VIRAMA/BENGALI LETTER NA
+                 U+09B9/U+09CD/U+09AC: "হ্ব" BENGALI LETTER HA/BENGALI SIGN VIRAMA/BENGALI LETTER BA
+                 U+09B9/U+09CD/U+09AE: "হ্ম" BENGALI LETTER HA/BENGALI SIGN VIRAMA/BENGALI LETTER MA
+                 U+09B9/U+09CD/U+09B0: "হ্র" BENGALI LETTER HA/BENGALI SIGN VIRAMA/BENGALI LETTER RA
+                 U+09B9/U+09CD/U+09B2: "হ্ল" BENGALI LETTER HA/BENGALI SIGN VIRAMA/BENGALI LETTER LA -->
+            <Key
+                latin:keySpec="&#x09B9;"
+                latin:moreKeys="&#x09BD;,&#x09B9;&#x09CD;&#x09A3;,&#x09B9;&#x09CD;&#x09A8;,&#x09B9;&#x09CD;&#x09AC;,&#x09B9;&#x09CD;&#x09AE;,&#x09B9;&#x09CD;&#x09B0;,&#x09B9;&#x09CD;&#x09B2;" />
+            <!-- U+099D: "ঝ" BENGALI LETTER JHA -->
+            <Key latin:keySpec="&#x099D;" />
+            <!-- U+0996: "খ" BENGALI LETTER KHA -->
+            <Key latin:keySpec="&#x0996;" />
+            <!-- U+09CE: "ৎ" BENGALI LETTER KHANDA TA -->
+            <Key latin:keySpec="&#x09CE;" />
+            <!-- U+0988: "ঈ" BENGALI LETTER II -->
+            <Key latin:keySpec="&#x0988;" />
+            <!-- U+098A: "ঊ" BENGALI LETTER UU -->
+            <Key latin:keySpec="&#x098A;" />
+        </case>
+        <default>
+            <!-- U+09BE: "া BENGALI VOWEL SIGN AA
+                 U+0986: "আ" BENGALI LETTER AA -->
+            <Key
+                latin:keySpec="&#x09BE;"
+                latin:moreKeys="&#x0986;" />
+            <!-- U+09B8: "স" BENGALI LETTER SA
+                 U+09B8/U+09CD/U+09AC: "স্ব" BENGALI LETTER SA/BENGALI SIGN VIRAMA/BENGALI LETTER BA
+                 U+09B8/U+09CD/U+09A4: "স্ত" BENGALI LETTER SA/BENGALI SIGN VIRAMA/BENGALI LETTER TA
+                 U+09B8/U+09CD/U+099F: "স্ট" BENGALI LETTER SA/BENGALI SIGN VIRAMA/BENGALI LETTER TTA
+                 U+09B8/U+09CD/U+0995: "স্ক" BENGALI LETTER SA/BENGALI SIGN VIRAMA/BENGALI LETTER KA
+                 U+09B8/U+09CD/U+09AA: "স্প" BENGALI LETTER SA/BENGALI SIGN VIRAMA/BENGALI LETTER PA -->
+            <Key
+                latin:keySpec="&#x09B8;"
+                latin:moreKeys="&#x09B8;&#x09CD;&#x09AC;,&#x09B8;&#x09CD;&#x09A4;,&#x09B8;&#x09CD;&#x099F;,&#x09B8;&#x09CD;&#x0995;,&#x09B8;&#x09CD;&#x09AA;" />
+            <!-- U+09A6: "দ" BENGALI LETTER DA
+                 U+09A6/U+09CD/U+09A6: "দ্দ" BENGALI LETTER DA/BENGALI SIGN VIRAMA/BENGALI LETTER DA
+                 U+09A6/U+09CD/U+09A7: "দ্ধ" BENGALI LETTER DA/BENGALI SIGN VIRAMA/BENGALI LETTER DHA
+                 U+09A6/U+09CD/U+09AC: "দ্ব" BENGALI LETTER DA/BENGALI SIGN VIRAMA/BENGALI LETTER BA
+                 U+09A6/U+09CD/U+09AD: "দ্ভ" BENGALI LETTER DA/BENGALI SIGN VIRAMA/BENGALI LETTER BHA
+                 U+09A6/U+09CD/U+09AE: "দ্ম" BENGALI LETTER DA/BENGALI SIGN VIRAMA/BENGALI LETTER MA
+                 U+09A6/U+09CD/U+09AF: "দ্য" BENGALI LETTER DA/BENGALI SIGN VIRAMA/BENGALI LETTER YA
+                 U+09A6/U+09CD/U+09B0: "দ্র" BENGALI LETTER DA/BENGALI SIGN VIRAMA/BENGALI LETTER RA -->
+            <Key
+                latin:keySpec="&#x09A6;"
+                latin:moreKeys="&#x09A6;&#x09CD;&#x09A6;,&#x09A6;&#x09CD;&#x09A7;,&#x09A6;&#x09CD;&#x09AC;,&#x09A6;&#x09CD;&#x09AD;,&#x09A6;&#x09CD;&#x09AE;,&#x09A6;&#x09CD;&#x09AF;,&#x09A6;&#x09CD;&#x09B0;" />
+            <!-- U+09C3: "ৃ" BENGALI VOWEL SIGN VOCALIC R
+                 U+098B: "ঋ" BENGALI LETTER VOCALIC R -->
+            <Key
+                latin:keySpec="&#x09C3;"
+                latin:moreKeys="&#x098B;" />
+            <!-- U+0997: "গ" BENGALI LETTER GA
+                 U+0997/U+09CD/U+09A7: "গ্ধ" BENGALI LETTER GA/BENGALI SIGN VIRAMA/BENGALI LETTER DHA
+                 U+0997/U+09CD/U+09B0: "গ্র" BENGALI LETTER GA/BENGALI SIGN VIRAMA/BENGALI LETTER RA
+                 U+0997/U+09CD/U+09B2: "গ্ল" BENGALI LETTER GA/BENGALI SIGN VIRAMA/BENGALI LETTER LA
+                 U+0997/U+09CD/U+09A8: "গ্ন" BENGALI LETTER GA/BENGALI SIGN VIRAMA/BENGALI LETTER NA -->
+            <Key
+                latin:keySpec="&#x0997;"
+                latin:moreKeys="&#x0997;&#x09CD;&#x09A7;,&#x0997;&#x09CD;&#x09B0;,&#x0997;&#x09CD;&#x09B2;,&#x0997;&#x09CD;&#x09A8;" />
+            <!-- U+09CD: "্" BENGALI SIGN VIRAMA -->
+            <Key latin:keySpec="&#x09CD;" />
+            <!-- U+099C: "জ" BENGALI LETTER JA
+                 U+099C/U+09CD/U+099E: "জ্ঞ" BENGALI LETTER JA/BENGALI SIGN VIRAMA/BENGALI LETTER NYA
+                 U+099C/U+09CD/U+099C: "জ্জ" BENGALI LETTER JA/BENGALI SIGN VIRAMA/BENGALI LETTER JA
+                 U+099C/U+09CD/U+09AF: "জ্ব" BENGALI LETTER JA/BENGALI SIGN VIRAMA/BENGALI LETTER YA
+                 U+099C/U+09CD/U+09AC: "জ্য" BENGALI LETTER JA/BENGALI SIGN VIRAMA/BENGALI LETTER BA
+                 U+099C/U+09CD/U+09B0: "জ্র" BENGALI LETTER JA/BENGALI SIGN VIRAMA/BENGALI LETTER RA -->
+            <Key
+                latin:keySpec="&#x099C;"
+                latin:moreKeys="&#x099C;&#x09CD;&#x099E;,&#x099C;&#x09CD;&#x099C;,&#x099C;&#x09CD;&#x09AF;,&#x099C;&#x09CD;&#x09AC;,&#x099C;&#x09CD;&#x09B0;" />
+            <!-- U+0995: "ক" BENGALI LETTER KA
+                 U+0995/U+09CD/U+09B7: "ক্ষ" BENGALI LETTER KA/BENGALI SIGN VIRAMA/BENGALI LETTER SSA
+                 U+0995/U+09CD/U+0995: "ক্ক" BENGALI LETTER KA/BENGALI SIGN VIRAMA/BENGALI LETTER KA
+                 U+0995/U+09CD/U+099F: "ক্ট" BENGALI LETTER KA/BENGALI SIGN VIRAMA/BENGALI LETTER TTA
+                 U+0995/U+09CD/U+09A4: "ক্ত" BENGALI LETTER KA/BENGALI SIGN VIRAMA/BENGALI LETTER TA
+                 U+0995/U+09CD/U+09B0: "ক্র" BENGALI LETTER KA/BENGALI SIGN VIRAMA/BENGALI LETTER RA
+                 U+0995/U+09CD/U+09B8: "ক্স" BENGALI LETTER KA/BENGALI SIGN VIRAMA/BENGALI LETTER SA
+                 U+0995/U+09CD/U+09B2: "ক্ল" BENGALI LETTER KA/BENGALI SIGN VIRAMA/BENGALI LETTER LA -->
+            <Key
+                latin:keySpec="&#x0995;"
+                latin:moreKeys="&#x0995;&#x09CD;&#x09B7;,&#x0995;&#x09CD;&#x0995;,&#x0995;&#x09CD;&#x099F;,&#x0995;&#x09CD;&#x09A4;,&#x0995;&#x09CD;&#x09B0;,&#x0995;&#x09CD;&#x09B8;,&#x0995;&#x09CD;&#x09B2;" />
+            <!-- U+09B2: "ল" BENGALI LETTER LA
+                 U+09B2/U+09CD/U+0995: "ল্ক" BENGALI LETTER LA/BENGALI SIGN VIRAMA/BENGALI LETTER KA
+                 U+09B2/U+09CD/U+0997: "ল্গ" BENGALI LETTER LA/BENGALI SIGN VIRAMA/BENGALI LETTER GA
+                 U+09B2/U+09CD/U+099F: "ল্ট" BENGALI LETTER LA/BENGALI SIGN VIRAMA/BENGALI LETTER TTA
+                 U+09B2/U+09CD/U+09A1: "ল্ড" BENGALI LETTER LA/BENGALI SIGN VIRAMA/BENGALI LETTER DDA
+                 U+09B2/U+09CD/U+09A4: "ল্ত" BENGALI LETTER LA/BENGALI SIGN VIRAMA/BENGALI LETTER TA
+                 U+09B2/U+09CD/U+09A6: "ল্দ" BENGALI LETTER LA/BENGALI SIGN VIRAMA/BENGALI LETTER DA
+                 U+09B2/U+09CD/U+09A7: "ল্ধ" BENGALI LETTER LA/BENGALI SIGN VIRAMA/BENGALI LETTER DHA
+                 U+09B2/U+09CD/U+09AA: "ল্প" BENGALI LETTER LA/BENGALI SIGN VIRAMA/BENGALI LETTER PA
+                 U+09B2/U+09CD/U+09AB: "ল্ফ" BENGALI LETTER LA/BENGALI SIGN VIRAMA/BENGALI LETTER PHA
+                 U+09B2/U+09CD/U+09AC: "ল্ব" BENGALI LETTER LA/BENGALI SIGN VIRAMA/BENGALI LETTER BA
+                 U+09B2/U+09CD/U+09AE: "ল্ম" BENGALI LETTER LA/BENGALI SIGN VIRAMA/BENGALI LETTER MA
+                 U+09B2/U+09CD/U+09B2: "ল্ল" BENGALI LETTER LA/BENGALI SIGN VIRAMA/BENGALI LETTER LA -->
+            <Key
+                latin:keySpec="&#x09B2;"
+                latin:moreKeys="&#x09B2;&#x09CD;&#x0995;,&#x09B2;&#x09CD;&#x0997;,&#x09B2;&#x09CD;&#x099F;,&#x09B2;&#x09CD;&#x09A1;,&#x09B2;&#x09CD;&#x09A4;,&#x09B2;&#x09CD;&#x09A6;,&#x09B2;&#x09CD;&#x09A7;,&#x09B2;&#x09CD;&#x09AA;,&#x09B2;&#x09CD;&#x09AB;,&#x09B2;&#x09CD;&#x09AC;,&#x09B2;&#x09CD;&#x09AE;,&#x09B2;&#x09CD;&#x09B2;" />
+            <!-- U+0987: "ই" BENGALI LETTER I -->
+            <Key latin:keySpec="&#x0987;" />
+            <!-- U+0989: "উ" BENGALI LETTER U -->
+            <Key latin:keySpec="&#x0989;" />
+        </default>
+    </switch>
+</merge>
diff --git a/java/res/xml/rowkeys_bengali_akkhor3.xml b/java/res/xml/rowkeys_bengali_akkhor3.xml
new file mode 100644
index 0000000..eb9e836
--- /dev/null
+++ b/java/res/xml/rowkeys_bengali_akkhor3.xml
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
+    <switch>
+        <case latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted">
+            <!-- U+0964: "।" DEVANAGARI DANDA
+                 U+0965: "॥" DEVANAGARI DOUBLE DANDA -->
+            <Key
+                 latin:keySpec="&#x0964;"
+                 latin:moreKeys="&#x0965;" />
+            <!-- U+0999: "ঙ BENGALI LETTER NGA
+                 U+0999/U+09CD/U+0995: "ঙ্ক"
+                 U+0999/U+09CD/U+0996: "ঙ্খ"
+                 U+0999/U+09CD/U+0997: "ঙ্গ" -->
+            <Key latin:keySpec="&#x0999;"
+                 latin:moreKeys="&#x0999;&#x09CD;&#x0995;,&#x0999;&#x09CD;&#x0996;,&#x0999;&#x09CD;&#x0997;" />
+            <!-- U+099B: "ছ" BENGALI LETTER CHA -->
+            <Key latin:keySpec="&#x099B;" />
+            <!-- U+0983: "ঃ" BENGALI SIGN VISARGA -->
+            <Key latin:keySpec="&#x0983;" />
+            <!-- U+0981: "ঁ" BENGALI SIGN CANDRABINDU -->
+            <Key latin:keySpec="&#x0981;" />
+            <!-- U+09A3: "ণ" BENGALI LETTER NNA
+                 U+09A3/U+09CD/U+099F: "ণ্ট" BENGALI LETTER NNA/BENGALI SIGN VIRAMA/BENGALI LETTER TTA
+                 U+09A3/U+09CD/U+09A1: "ণ্ড" BENGALI LETTER NNA/BENGALI SIGN VIRAMA/BENGALI LETTER DDA
+                 U+09A3/U+09CD/U+09A3: "ণ্ণ" BENGALI LETTER NNA/BENGALI SIGN VIRAMA/BENGALI LETTER NNA -->
+            <Key latin:keySpec="&#x09A3;"
+                 latin:moreKeys="&#x09A3;&#x09CD;&#x099F;,&#x09A3;&#x09CD;&#x09A1;,&#x09A3;&#x09CD;&#x09A3;" />
+            <!-- U+0982: "ং" BENGALI SIGN ANUSVARA -->
+            <Key latin:keySpec="&#x0982;" />
+            <!-- U+0990: "ঐ" BENGALI LETTER AI -->
+            <Key latin:keySpec="&#x0990;" />
+            <!-- U+0994: "ঔ" BENGALI LETTER AU -->
+            <Key latin:keySpec="&#x0994;" />
+        </case>
+        <default>
+            <!-- U+09AF: "য" BENGALI LETTER YA
+                 U+09CD/U+09AF: "্য" BENGALI SIGN VIRAMA/BENGALI LETTER YA -->
+            <Key
+                 latin:keySpec="&#x09AF;"
+                 latin:moreKeys="&#x09CD;&#x09AF;" />
+            <!-- U+09B7: "ষ" BENGALI LETTER SSA
+                 U+09B7/U+09CD/U+0995: "ষ্ক" BENGALI LETTER SSA/BENGALI SIGN VIRAMA/BENGALI LETTER KA
+                 U+09B7/U+09CD/U+099F: "ষ্ট" BENGALI LETTER SSA/BENGALI SIGN VIRAMA/BENGALI LETTER TTA
+                 U+09B7/U+09CD/U+09A0: "ষ্ঠ" BENGALI LETTER SSA/BENGALI SIGN VIRAMA/BENGALI LETTER TTHA
+                 U+09B7/U+09CD/U+09A3: "ষ্ণ" BENGALI LETTER SSA/BENGALI SIGN VIRAMA/BENGALI LETTER NNA
+                 U+09B7/U+09CD/U+09AA: "ষ্প" BENGALI LETTER SSA/BENGALI SIGN VIRAMA/BENGALI LETTER PA
+                 U+09B7/U+09CD/U+09AB: "ষ্ফ" BENGALI LETTER SSA/BENGALI SIGN VIRAMA/BENGALI LETTER PHA
+                 U+09B7/U+09CD/U+09AE: "ষ্ম" BENGALI LETTER SSA/BENGALI SIGN VIRAMA/BENGALI LETTER MA -->
+            <Key
+                 latin:keySpec="&#x09B7;"
+                 latin:moreKeys="&#x09B7;&#x09CD;&#x0995;,&#x09B7;&#x09CD;&#x099F;,&#x09B7;&#x09CD;&#x09A0;,&#x09B7;&#x09CD;&#x09A3;,&#x09B7;&#x09CD;&#x09AA;,&#x09B7;&#x09CD;&#x09AB;,&#x09B7;&#x09CD;&#x09AE;" />
+            <!-- U+099A: "চ" BENGALI LETTER CA
+                 U+099A/U+09CD/U+099A: "চ্চ" BENGALI LETTER CA/BENGALI SIGN VIRAMA/BENGALI LETTER CA
+                 U+099A/U+09CD/U+099B: "চ্ছ" BENGALI LETTER CA/BENGALI SIGN VIRAMA/BENGALI LETTER CHA -->
+            <Key
+                 latin:keySpec="&#x099A;"
+                 latin:moreKeys="&#x099A;&#x09CD;&#x099A;,&#x099A;&#x09CD;&#x099B;" />
+            <!-- U+09AD: "ভ" BENGALI LETTER BHA
+                 U+09AD/U+09CD/U+09AF: "ভ্" BENGALI LETTER BHA/BENGALI SIGN VIRAMA/BENGALI LETTER YA
+                 U+09AD/U+09CD/U+09B0: "ভ্র" BENGALI LETTER BHA/BENGALI SIGN VIRAMA/BENGALI LETTER RA
+                 U+09AD/U+09CD/U+09B2: "ভ্ল" BENGALI LETTER BHA/BENGALI SIGN VIRAMA/BENGALI LETTER LA -->
+            <Key
+                 latin:keySpec="&#x09AD;"
+                 latin:moreKeys="&#x09AD;&#x09CD;&#x09AF;,&#x09AD;&#x09CD;&#x09B0;,&#x09AD;&#x09CD;&#x09B2;" />
+            <!-- U+09AC: "ব" BENGALI LETTER BA
+                 U+09CD/U+09AC: "্ব" BENGALI SIGN VIRAMA/BENGALI LETTER BA
+                 U+09AC/U+09CD/U+09B0: "ব্র" BENGALI LETTER BA/BENGALI SIGN VIRAMA/BENGALI LETTER RA
+                 U+09AC/U+09CD/U+099C: "ব্জ" BENGALI LETTER BA/BENGALI SIGN VIRAMA/BENGALI LETTER JA
+                 U+09AC/U+09CD/U+09A6: "ব্দ" BENGALI LETTER BA/BENGALI SIGN VIRAMA/BENGALI LETTER DA
+                 U+09AC/U+09CD/U+09A7: "ব্ধ" BENGALI LETTER BA/BENGALI SIGN VIRAMA/BENGALI LETTER DHA
+                 U+09AC/U+09CD/U+09AC: "ব্ব" BENGALI LETTER BA/BENGALI SIGN VIRAMA/BENGALI LETTER BA
+                 U+09AC/U+09CD/U+09B2: "ব্ল" BENGALI LETTER BA/BENGALI SIGN VIRAMA/BENGALI LETTER LA
+                 U+09F1: "ৱ" BENGALI LETTER RA WITH MIDDLE DIAGONAL
+                 U+09F0: "ৰ" BENGALI LETTER RA WITH LOWER DIAGONAL -->
+            <Key
+                 latin:keySpec="&#x09AC;"
+                 latin:moreKeys="&#x09CD;&#x09AC;,&#x09AC;&#x09CD;&#x09B0;,&#x09AC;&#x09CD;&#x099C;,&#x09AC;&#x09CD;&#x09A6;,&#x09AC;&#x09CD;&#x09A7;,&#x09AC;&#x09CD;&#x09AC;,&#x09AC;&#x09CD;&#x09B2;,&#x09F1;,&#x09F0;" />
+            <!-- U+09A8: "ন" BENGALI LETTER NA
+                 U+09A8/U+09CD/U+09A4: "ন্ত" BENGALI LETTER NA/BENGALI SIGN VIRAMA/BENGALI LETTER TA
+                 U+09A8/U+09CD/U+09A5: "ন্থ" BENGALI LETTER NA/BENGALI SIGN VIRAMA/BENGALI LETTER THA
+                 U+09A8/U+09CD/U+099F: "ন্ট" BENGALI LETTER NA/BENGALI SIGN VIRAMA/BENGALI LETTER TTA
+                 U+09A8/U+09CD/U+09A6: "ন্দ" BENGALI LETTER NA/BENGALI SIGN VIRAMA/BENGALI LETTER DA
+                 U+09A8/U+09CD/U+09A7: "ন্ধ" BENGALI LETTER NA/BENGALI SIGN VIRAMA/BENGALI LETTER DHA
+                 U+09A8/U+09CD/U+09A1: "ন্ড" BENGALI LETTER NA/BENGALI SIGN VIRAMA/BENGALI LETTER DDA
+                 U+09A8/U+09CD/U+09A8: "ন্ন" BENGALI LETTER NA/BENGALI SIGN VIRAMA/BENGALI LETTER NA
+                 U+09A8/U+09CD/U+09AC: "ন্ব" BENGALI LETTER NA/BENGALI SIGN VIRAMA/BENGALI LETTER BA
+                 U+09A8/U+09CD/U+09AE: "ন্ম" BENGALI LETTER NA/BENGALI SIGN VIRAMA/BENGALI LETTER MA
+                 U+09A8/U+09CD/U+09B8: "ন্স" BENGALI LETTER NA/BENGALI SIGN VIRAMA/BENGALI LETTER SA -->
+            <Key
+                 latin:keySpec="&#x09A8;"
+                 latin:moreKeys="&#x09A8;&#x09CD;&#x09A4;,&#x09A8;&#x09CD;&#x09A5;,&#x09A8;&#x09CD;&#x099F;,&#x09A8;&#x09CD;&#x09A6;,&#x09A8;&#x09CD;&#x09A7;,&#x09A8;&#x09CD;&#x09A1;,&#x09A8;&#x09CD;&#x09A8;,&#x09A8;&#x09CD;&#x09AC;,&#x09A8;&#x09CD;&#x09AE;,&#x09A8;&#x09CD;&#x09B8;" />
+            <!-- U+09AE: "ম" BENGALI LETTER MA
+                 U+09AE/U+09CD/U+09A8: "ম্ন" BENGALI LETTER MA/BENGALI SIGN VIRAMA/BENGALI LETTER NA
+                 U+09AE/U+09CD/U+09AA: "ম্প" BENGALI LETTER MA/BENGALI SIGN VIRAMA/BENGALI LETTER PA
+                 U+09AE/U+09CD/U+09AC: "ম্ব" BENGALI LETTER MA/BENGALI SIGN VIRAMA/BENGALI LETTER BA
+                 U+09AE/U+09CD/U+09AD: "ম্ভ" BENGALI LETTER MA/BENGALI SIGN VIRAMA/BENGALI LETTER BHA
+                 U+09AE/U+09CD/U+09AE: "ম্ম" BENGALI LETTER MA/BENGALI SIGN VIRAMA/BENGALI LETTER MA
+                 U+09AE/U+09CD/U+09B0: "ম্র" BENGALI LETTER MA/BENGALI SIGN VIRAMA/BENGALI LETTER RA
+                 U+09AE/U+09CD/U+09B2: "ম্ল" BENGALI LETTER MA/BENGALI SIGN VIRAMA/BENGALI LETTER LA -->
+            <Key
+                 latin:keySpec="&#x09AE;"
+                 latin:moreKeys=",&#x09AE;&#x09CD;&#x09A8;,&#x09AE;&#x09CD;&#x09AA;,&#x09AE;&#x09CD;&#x09AC;,&#x09AE;&#x09CD;&#x09AD;,&#x09AE;&#x09CD;&#x09AE;,&#x09AE;&#x09CD;&#x09B0;,&#x09AE;&#x09CD;&#x09B2;" />
+            <!-- U+098F: "এ" BENGALI LETTER E -->
+            <Key latin:keySpec="&#x098F;" />
+            <!-- U+0993: "ও" BENGALI LETTER O -->
+            <Key latin:keySpec="&#x0993;" />
+        </default>
+    </switch>
+</merge>
diff --git a/java/res/xml/rowkeys_myanmar1.xml b/java/res/xml/rowkeys_myanmar1.xml
deleted file mode 100644
index 1170074..0000000
--- a/java/res/xml/rowkeys_myanmar1.xml
+++ /dev/null
@@ -1,105 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2014, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
-    <switch>
-        <case latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted">
-            <!-- U+1027: "ဧ" MYANMAR LETTER E -->
-            <Key latin:keySpec="&#x1027;" />
-            <!-- U+104F: "၏" MYANMAR SYMBOL GENITIVE -->
-            <Key latin:keySpec="&#x104F;" />
-            <!-- U+1024: "ဤ" MYANMAR LETTER II -->
-            <Key latin:keySpec="&#x1024;" />
-            <!-- U+1023: "ဣ" MYANMAR LETTER I -->
-            <Key latin:keySpec="&#x1023;" />
-            <!-- U+104E: "၎" MYANMAR SYMBOL AFOREMENTIONED -->
-            <Key latin:keySpec="&#x104E;" />
-            <!-- U+1000/U+103B/U+1015/U+103A: "ကျပ်"
-                 MYANMAR LETTER KA/MYANMAR CONSONANT SIGN MEDIAL YA/MYANMAR LETTER PA/MYANMAR SIGN ASAT -->
-            <Key
-                latin:keySpec="&#x1000;&#x103B;&#x1015;&#x103A;"
-                latin:keyLabelFlags="followKeyLetterRatio|autoScale" />
-            <!-- U+1029: "ဩ" MYANMAR LETTER O -->
-            <Key
-                latin:keySpec="&#x1029;"
-                latin:keyLabelFlags="autoScale" />
-            <!-- U+102A: "ဪ" MYANMAR LETTER AU -->
-            <Key
-                latin:keySpec="&#x102A;"
-                latin:keyLabelFlags="autoScale" />
-            <!-- U+104D: "၍" MYANMAR SYMBOL COMPLETED -->
-            <Key latin:keySpec="&#x104D;" />
-            <!-- U+104C: "၌" MYANMAR SYMBOL LOCATIVE -->
-            <Key latin:keySpec="&#x104C;" />
-        </case>
-        <default>
-            <!-- U+1041: "၁" MYANMAR DIGIT ONE -->
-            <Key
-                latin:keySpec="&#x1041;"
-                latin:keyHintLabel="1"
-                latin:additionalMoreKeys="1" />
-            <!-- U+1042: "၂" MYANMAR DIGIT TWO -->
-            <Key
-                latin:keySpec="&#x1042;"
-                latin:keyHintLabel="2"
-                latin:additionalMoreKeys="2" />
-            <!-- U+1043: "၃" MYANMAR DIGIT THREE -->
-            <Key
-                latin:keySpec="&#x1043;"
-                latin:keyHintLabel="3"
-                latin:additionalMoreKeys="3" />
-            <!-- U+1044: "၄" MYANMAR DIGIT FOUR -->
-            <Key
-                latin:keySpec="&#x1044;"
-                latin:keyHintLabel="4"
-                latin:additionalMoreKeys="4" />
-            <!-- U+1045: "၅" MYANMAR DIGIT FIVE -->
-            <Key
-                latin:keySpec="&#x1045;"
-                latin:keyHintLabel="5"
-                latin:additionalMoreKeys="5" />
-            <!-- U+1046: "၆" MYANMAR DIGIT SIX -->
-            <Key
-                latin:keySpec="&#x1046;"
-                latin:keyHintLabel="6"
-                latin:additionalMoreKeys="6" />
-            <!-- U+1047: "၇" MYANMAR DIGIT SEVEN -->
-            <Key
-                latin:keySpec="&#x1047;"
-                latin:keyHintLabel="7"
-                latin:additionalMoreKeys="7" />
-            <!-- U+1048: "၈" MYANMAR DIGIT EIGHT -->
-            <Key
-                latin:keySpec="&#x1048;"
-                latin:keyHintLabel="8"
-                latin:additionalMoreKeys="8" />
-            <!-- U+1049: "၉" MYANMAR DIGIT NINE -->
-            <Key
-                latin:keySpec="&#x1049;"
-                latin:keyHintLabel="9"
-                latin:additionalMoreKeys="9" />
-            <!-- U+1040: "၀" MYANMAR DIGIT ZERO -->
-            <Key
-                latin:keySpec="&#x1040;"
-                latin:keyHintLabel="0"
-                latin:additionalMoreKeys="0" />
-        </default>
-    </switch>
-</merge>
diff --git a/java/res/xml/rowkeys_myanmar2.xml b/java/res/xml/rowkeys_myanmar2.xml
deleted file mode 100644
index ae71ecb..0000000
--- a/java/res/xml/rowkeys_myanmar2.xml
+++ /dev/null
@@ -1,104 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2014, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
-    <switch>
-        <case latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted">
-            <!-- U+1017: "ဗ" MYANMAR LETTER BA
-                 U+1039/U+1017: "္ဗ" MYANMAR SIGN VIRAMA/MYANMAR LETTER BA -->
-            <Key
-                latin:keySpec="&#x1017;"
-                latin:moreKeys="&#x1039;&#x1017;" />
-            <!-- U+1012: "ဒ" MYANMAR LETTER DA
-                 U+1039/U+1012: "္ဒ" MYANMAR SIGN VIRAMA/MYANMAR LETTER DA -->
-            <Key
-                latin:keySpec="&#x1012;"
-                latin:moreKeys="&#x1039;&#x1012;" />
-            <!-- U+1013: "ဓ" MYANMAR LETTER DHA
-                 U+1039/U+1013: "္ဓ" MYANMAR SIGN VIRAMA/MYANMAR LETTER DHA -->
-            <Key
-                latin:keySpec="&#x1013;"
-                latin:moreKeys="&#x1039;&#x1013;" />
-            <!-- U+1003: "ဃ" MYANMAR LETTER GHA -->
-            <Key latin:keySpec="&#x1003;" />
-            <!-- U+100E: "ဎ" MYANMAR LETTER DDHA -->
-            <Key latin:keySpec="&#x100E;" />
-            <!-- U+103F: "ဿ" MYANMAR LETTER GREAT SA -->
-            <Key latin:keySpec="&#x103F;" />
-            <!-- U+100F: "ဏ" MYANMAR LETTER NNA -->
-            <Key latin:keySpec="&#x100F;" />
-            <!-- U+1008: "ဈ" MYANMAR LETTER JHA
-                 U+1039/U+1008: "္ဈ" MYANMAR SIGN VIRAMA/MYANMAR LETTER JHA -->
-            <Key
-                latin:keySpec="&#x1008;"
-                latin:moreKeys="&#x1039;&#x1008;" />
-            <!-- U+1007: "ဇ" MYANMAR LETTER JA
-                 U+1039/U+1007: "္ဇ" MYANMAR SIGN VIRAMA/MYANMAR LETTER JA -->
-            <Key
-                latin:keySpec="&#x1007;"
-                latin:moreKeys="&#x1039;&#x1007;" />
-            <!-- U+1002: "ဂ" MYANMAR LETTER GA
-                 U+1039/U+1002: "္ဂ" MYANMAR SIGN VIRAMA/MYANMAR LETTER GA -->
-            <Key
-                latin:keySpec="&#x1002;"
-                latin:moreKeys="&#x1039;&#x1002;" />
-        </case>
-        <default>
-            <!-- U+1006: "ဆ" MYANMAR LETTER CHA
-                 U+1039/U+1006: "္ဆ" MYANMAR SIGN VIRAMA/MYANMAR LETTER CHA -->
-            <Key
-                latin:keySpec="&#x1006;"
-                latin:moreKeys="&#x1039;&#x1006;" />
-            <!-- U+1010: "တ" MYANMAR LETTER TA
-                 U+1039/U+1010: "္တ" MYANMAR SIGN VIRAMA/MYANMAR LETTER TA -->
-            <Key
-                latin:keySpec="&#x1010;"
-                latin:moreKeys="&#x1039;&#x1010;" />
-            <!-- U+1014: "န" MYANMAR LETTER NA
-                 U+1039/U+1014: "္န" MYANMAR SIGN VIRAMA/MYANMAR LETTER NA -->
-            <Key
-                latin:keySpec="&#x1014;"
-                latin:moreKeys="&#x1039;&#x1014;" />
-            <!-- U+1019: "မ" MYANMAR LETTER MA
-                 U+1039/U+1019: "္မ" MYANMAR SIGN VIRAMA/MYANMAR LETTER MA -->
-            <Key
-                latin:keySpec="&#x1019;"
-                latin:moreKeys="&#x1039;&#x1019;" />
-            <!-- U+1021: "အ" MYANMAR LETTER A -->
-            <Key latin:keySpec="&#x1021;" />
-            <!-- U+1015: "ပ" MYANMAR LETTER PA -->
-            <Key latin:keySpec="&#x1015;" />
-            <!-- U+1000: "က" MYANMAR LETTER KA
-                 U+1039/U+1000: "္က" MYANMAR SIGN VIRAMA/MYANMAR LETTER KA -->
-            <Key
-                latin:keySpec="&#x1000;"
-                latin:moreKeys="&#x1039;&#x1000;" />
-            <!-- U+1004: "င" MYANMAR LETTER NGA -->
-            <Key latin:keySpec="&#x1004;" />
-            <!-- U+101E: "သ" MYANMAR LETTER SA -->
-            <Key latin:keySpec="&#x101E;" />
-            <!-- U+1005: "စ" MYANMAR LETTER CA
-                 U+1039/U+1005: "္စ" MYANMAR SIGN VIRAMA/MYANMAR LETTER CA -->
-            <Key
-                latin:keySpec="&#x1005;"
-                latin:moreKeys="&#x1039;&#x1005;" />
-        </default>
-    </switch>
-</merge>
diff --git a/java/res/xml/rowkeys_myanmar3.xml b/java/res/xml/rowkeys_myanmar3.xml
deleted file mode 100644
index 4dafe09..0000000
--- a/java/res/xml/rowkeys_myanmar3.xml
+++ /dev/null
@@ -1,89 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2014, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
-    <switch>
-        <case latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted">
-            <!-- U+101A: "ယ" MYANMAR LETTER YA -->
-            <Key latin:keySpec="&#x101A;" />
-            <!-- U+1039: "္" MYANMAR SIGN VIRAMA -->
-            <Key latin:keySpec="&#x1039;" />
-            <!-- U+1004/U+103A/U+1039: "င်္င" MYANMAR LETTER NGA/MYANMAR SIGN ASAT/MYANMAR SIGN VIRAMA -->
-            <Key
-                latin:keySpec="&#x1004;&#x103A;&#x1039;"
-                latin:keyLabelFlags="followKeyLetterRatio" />
-            <!-- U+103E: "ှ" MYANMAR CONSONANT SIGN MEDIAL HA -->
-            <Key latin:keySpec="&#x103E;" />
-            <!-- U+102E: "ီ" MYANMAR VOWEL SIGN II -->
-            <Key latin:keySpec="&#x102E;" />
-            <!-- U+1030: "ူ" MYANMAR VOWEL SIGN UU -->
-            <Key latin:keySpec="&#x1030;" />
-            <!-- U+102B: "ါ" MYANMAR VOWEL SIGN TALL AA -->
-            <Key latin:keySpec="&#x102B;" />
-            <!-- U+1032: "ဲ" MYANMAR VOWEL SIGN AI -->
-            <Key latin:keySpec="&#x1032;" />
-            <!-- U+1036: "ံ" MYANMAR SIGN ANUSVARA -->
-            <Key latin:keySpec="&#x1036;" />
-            <!-- U+101F: "ဟ" MYANMAR LETTER HA -->
-            <Key latin:keySpec="&#x101F;" />
-        </case>
-        <default>
-            <!-- U+1031: "ေ" MYANMAR VOWEL SIGN E -->
-            <Key latin:keySpec="&#x1031;" />
-            <!-- U+103B: "ျ" MYANMAR CONSONANT SIGN MEDIAL YA -->
-            <Key latin:keySpec="&#x103B;" />
-            <!-- U+103C: "ြ" MYANMAR CONSONANT SIGN MEDIAL RA -->
-            <Key latin:keySpec="&#x103C;" />
-            <!-- U+103D: "ွ" MYANMAR CONSONANT SIGN MEDIAL WA
-                 U+103E: "ှ" MYANMAR CONSONANT SIGN MEDIAL HA
-                 U+103D/U+103E: "ွှ" MYANMAR CONSONANT SIGN MEDIAL WA/MYANMAR CONSONANT SIGN MEDIAL HA -->
-            <Key
-                latin:keySpec="&#x103D;"
-                latin:moreKeys="&#x103E;,&#x103D;&#x103E;" />
-            <!-- U+102D: "ိ" MYANMAR VOWEL SIGN I
-                 U+102E: "ီ" MYANMAR VOWEL SIGN II -->
-            <Key
-                latin:keySpec="&#x102D;"
-                latin:moreKeys="&#x102E;" />
-            <!-- U+102F: "ု" MYANMAR VOWEL SIGN U
-                 U+1030: "ူ" MYANMAR VOWEL SIGN UU -->
-            <Key
-                latin:keySpec="&#x102F;"
-                latin:moreKeys="&#x1030;" />
-            <!-- U+102C: "ာ" MYANMAR VOWEL SIGN AA
-                 U+102B: "ါ" MYANMAR VOWEL SIGN TALL AA -->
-            <Key
-                latin:keySpec="&#x102C;"
-                latin:moreKeys="&#x102B;" />
-            <!-- U+103A: "်" MYANMAR SIGN ASAT
-                 U+1032: "ဲ" MYANMAR VOWEL SIGN AI -->
-            <Key
-                latin:keySpec="&#x103A;"
-                latin:moreKeys="&#x1032;" />
-            <!-- U+1037: "့" MYANMAR SIGN DOT BELOW
-                 U+1036: "ံ" MYANMAR SIGN ANUSVARA -->
-            <Key
-                latin:keySpec="&#x1037;"
-                latin:moreKeys="&#x1036;" />
-            <!-- U+1038: "း" MYANMAR SIGN VISARGA -->
-            <Key latin:keySpec="&#x1038;" />
-        </default>
-    </switch>
-</merge>
diff --git a/java/res/xml/rowkeys_myanmar4.xml b/java/res/xml/rowkeys_myanmar4.xml
deleted file mode 100644
index a1befcf..0000000
--- a/java/res/xml/rowkeys_myanmar4.xml
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2014, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
-    <switch>
-        <case latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted">
-            <!-- U+1025: "ဥ" MYANMAR LETTER U -->
-            <Key latin:keySpec="&#x1025;" />
-            <!-- U+1026: "ဦ" MYANMAR LETTER UU -->
-            <Key latin:keySpec="&#x1026;" />
-            <!-- U+100C: "ဌ" MYANMAR LETTER TTHA -->
-            <Key latin:keySpec="&#x100C;" />
-            <!-- U+100B: "ဋ" MYANMAR LETTER TTA -->
-            <Key latin:keySpec="&#x100B;" />
-            <!-- U+100D: "ဍ" MYANMAR LETTER DDA -->
-            <Key latin:keySpec="&#x100D;" />
-            <!-- U+1020: "ဠ" MYANMAR LETTER LLA -->
-            <Key latin:keySpec="&#x1020;" />
-            <!-- U+100B/U+1039/U+100C: "ဋ္ဌ" MYANMAR LETTER TTA/MYANMAR SIGN VIRAMA/MYANMAR LETTER TTHA -->
-            <Key
-                latin:keySpec="&#x100B;&#x1039;&#x100C;"
-                latin:keyLabelFlags="followKeyLetterRatio" />
-            <!-- U+100F/U+1039/U+100D: "ဏ္ဍ" MYANMAR LETTER NNA/MYANMAR SIGN VIRAMA/MYANMAR LETTER DDA
-                 U+100F/U+1039/U+100C: "ဏ္ဌ" MYANMAR LETTER NNA/MYANMAR SIGN VIRAMA/MYANMAR LETTER TTHA -->
-            <Key
-                latin:keySpec="&#x100F;&#x1039;&#x100D;"
-                latin:moreKeys="&#x100F;&#x1039;&#x100C;"
-                latin:keyLabelFlags="followKeyLetterRatio" />
-        </case>
-        <default>
-            <!-- U+1016: "ဖ" MYANMAR LETTER PHA -->
-            <Key latin:keySpec="&#x1016;" />
-            <!-- U+1011: "ထ" MYANMAR LETTER THA
-                 U+1039/U+1011: "္ထ" MYANMAR SIGN VIRAMA/MYANMAR LETTER THA -->
-            <Key
-                latin:keySpec="&#x1011;"
-                latin:moreKeys="&#x1039;&#x1011;" />
-            <!-- U+1001: "ခ" MYANMAR LETTER KHA
-                 U+1039/U+1001: "္ခ" MYANMAR SIGN VIRAMA/MYANMAR LETTER KHA -->
-            <Key
-                latin:keySpec="&#x1001;"
-                latin:moreKeys="&#x1039;&#x1001;" />
-            <!-- U+101C: "လ" MYANMAR LETTER LA
-                 U+1039/U+101C: "္လ" MYANMAR SIGN VIRAMA/MYANMAR LETTER LA -->
-            <Key
-                latin:keySpec="&#x101C;"
-                latin:moreKeys="&#x1039;&#x101C;" />
-            <!-- U+1018: "ဘ" MYANMAR LETTER BHA
-                 U+1039/U+1018: "္ဘ" MYANMAR SIGN VIRAMA/MYANMAR LETTER BHA -->
-            <Key
-                latin:keySpec="&#x1018;"
-                latin:moreKeys="&#x1039;&#x1018;" />
-            <!-- U+100A: "ည" MYANMAR LETTER NNYA
-                 U+1009: "ဉ" MYANMAR LETTER NYA -->
-            <Key
-                latin:keySpec="&#x100A;"
-                latin:moreKeys="&#x1009;" />
-            <!-- U+101B: "ရ" MYANMAR LETTER RA -->
-            <Key latin:keySpec="&#x101B;" />
-            <!-- U+101D: "ဝ" MYANMAR LETTER WA -->
-            <Key latin:keySpec="&#x101D;" />
-        </default>
-    </switch>
-</merge>
diff --git a/java/res/xml/rowkeys_nepali_romanized3.xml b/java/res/xml/rowkeys_nepali_romanized3.xml
index 24f5908..c6a1e28 100644
--- a/java/res/xml/rowkeys_nepali_romanized3.xml
+++ b/java/res/xml/rowkeys_nepali_romanized3.xml
@@ -43,11 +43,6 @@
             <Key latin:keyStyle="baseKeyDevanagariSignAnusvara" />
             <!-- U+0919: "ङ" DEVANAGARI LETTER NGA -->
             <Key latin:keySpec="&#x0919;" />
-            <!-- Because the font rendering system prior to API version 16 can't automatically
-                 render dotted circle for incomplete combining letter of some scripts, different
-                 set of Key definitions are needed based on the API version. -->
-            <include latin:keyboardLayout="@xml/keystyle_devanagari_sign_virama" />
-            <Key latin:keyStyle="baseKeyDevanagariSignVirama" />
         </case>
         <default>
             <!-- U+0937: "ष" DEVANAGARI LETTER SSA -->
@@ -64,16 +59,14 @@
             <Key latin:keySpec="&#x0928;" />
             <!-- U+092E: "म" DEVANAGARI LETTER MA -->
             <Key latin:keySpec="&#x092E;" />
-            <!-- U+0964: "।" DEVANAGARI DANDA
-                 U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA -->
-            <Key
-                latin:keySpec="&#x0964;"
-                latin:moreKeys="&#x093D;" />
             <!-- Because the font rendering system prior to API version 16 can't automatically
                  render dotted circle for incomplete combining letter of some scripts, different
                  set of Key definitions are needed based on the API version. -->
             <include latin:keyboardLayout="@xml/keystyle_devanagari_sign_virama" />
-            <Key latin:keyStyle="baseKeyDevanagariSignVirama" />
+            <!-- U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA -->
+            <Key
+                latin:keyStyle="baseKeyDevanagariSignVirama"
+                latin:moreKeys="&#x093D;" />
         </default>
     </switch>
 </merge>
diff --git a/java/res/xml/rowkeys_nepali_traditional3.xml b/java/res/xml/rowkeys_nepali_traditional3.xml
new file mode 100644
index 0000000..c43c593
--- /dev/null
+++ b/java/res/xml/rowkeys_nepali_traditional3.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
+    <switch>
+        <case latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted">
+            <!-- U+0915/U+094D: "क्" DEVANAGARI LETTER KA/DEVANAGARI SIGN VIRAMA -->
+            <Key
+                latin:keySpec="&#x0915;&#x094D;"
+                latin:keyLabelFlags="followKeyLetterRatio" />
+            <!-- U+0939/U+094D/U+092E: "ह्म" DEVANAGARI LETTER HA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER MA -->
+            <Key
+                latin:keySpec="&#x0939;&#x094D;&#x092E;"
+                latin:keyLabelFlags="followKeyLetterRatio" />
+            <!-- U+090B: "ऋ" DEVANAGARI LETTER VOCALIC R -->
+            <Key latin:keySpec="&#x090B;" />
+            <!-- U+0950: "ॐ" DEVANAGARI OM -->
+            <Key latin:keySpec="&#x0950;" />
+            <!-- Because the font rendering system prior to API version 16 can't automatically
+                 render dotted circle for incomplete combining letter of some scripts, different
+                 set of Key definitions are needed based on the API version. -->
+            <include latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_au" />
+            <Key latin:keyStyle="baseKeyDevanagariVowelSignAu" />
+            <!-- U+0926/U+094D/U+092F: "द्य" DEVANAGARI LETTER DA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER YA -->
+            <Key
+                latin:keySpec="&#x0926;&#x094D;&#x092F;"
+                latin:keyLabelFlags="followKeyLetterRatio" />
+            <!-- Because the font rendering system prior to API version 16 can't automatically
+                 render dotted circle for incomplete combining letter of some scripts, different
+                 set of Key definitions are needed based on the API version. -->
+            <include latin:keyboardLayout="@xml/keystyle_devanagari_sign_anusvara" />
+            <Key latin:keyStyle="baseKeyDevanagariSignAnusvara" />
+            <!-- U+0919: "ङ" DEVANAGARI LETTER NGA -->
+            <Key latin:keySpec="&#x0919;" />
+            <!-- Because the font rendering system prior to API version 16 can't automatically
+                 render dotted circle for incomplete combining letter of some scripts, different
+                 set of Key definitions are needed based on the API version. -->
+            <include latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_ai" />
+            <Key latin:keyStyle="baseKeyDevanagariVowelSignAi" />
+        </case>
+        <default>
+            <!-- U+0936: "श" DEVANAGARI LETTER SHA -->
+            <Key latin:keySpec="&#x0936;" />
+            <!-- U+0939: "ह" DEVANAGARI LETTER HA -->
+            <Key latin:keySpec="&#x0939;" />
+            <!-- U+0905: "अ" DEVANAGARI LETTER A -->
+            <Key latin:keySpec="&#x0905;" />
+            <!-- U+0916: "ख" DEVANAGARI LETTER KHA -->
+            <Key latin:keySpec="&#x0916;" />
+            <!-- U+0926: "द" DEVANAGARI LETTER DA -->
+            <Key latin:keySpec="&#x0926;" />
+            <!-- U+0932: "ल" DEVANAGARI LETTER LA -->
+            <Key latin:keySpec="&#x0932;" />
+            <!-- Because the font rendering system prior to API version 16 can't automatically
+                 render dotted circle for incomplete combining letter of some scripts, different
+                 set of Key definitions are needed based on the API version. -->
+            <include latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_e" />
+            <Key latin:keyStyle="baseKeyDevanagariVowelSignE" />
+            <!-- Because the font rendering system prior to API version 16 can't automatically
+                 render dotted circle for incomplete combining letter of some scripts, different
+                 set of Key definitions are needed based on the API version. -->
+            <include
+                latin:keyboardLayout="@xml/keystyle_devanagari_sign_virama" />
+            <Key latin:keyStyle="baseKeyDevanagariSignVirama" />
+            <!-- U+0930: "र" DEVANAGARI LETTER RA
+                 U+0930/U+0941: "रु" DEVANAGARI LETTER RA/DEVANAGARI VOWEL SIGN U -->
+            <Key
+                latin:keySpec="&#x0930;"
+                latin:moreKeys="&#x0930;&#x0941;" />
+        </default>
+    </switch>
+</merge>
diff --git a/java/res/xml/rowkeys_nepali_traditional3_left6.xml b/java/res/xml/rowkeys_nepali_traditional3_left6.xml
deleted file mode 100644
index ade2787..0000000
--- a/java/res/xml/rowkeys_nepali_traditional3_left6.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2013, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
-    <switch>
-        <case latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted">
-            <!-- U+0915/U+094D: "क्" DEVANAGARI LETTER KA/DEVANAGARI SIGN VIRAMA -->
-            <Key
-                latin:keySpec="&#x0915;&#x094D;"
-                latin:keyLabelFlags="followKeyLetterRatio" />
-            <!-- U+0939/U+094D/U+092E: "ह्म" DEVANAGARI LETTER HA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER MA -->
-            <Key
-                latin:keySpec="&#x0939;&#x094D;&#x092E;"
-                latin:keyLabelFlags="followKeyLetterRatio" />
-            <!-- U+090B: "ऋ" DEVANAGARI LETTER VOCALIC R -->
-            <Key latin:keySpec="&#x090B;" />
-            <!-- U+0950: "ॐ" DEVANAGARI OM -->
-            <Key latin:keySpec="&#x0950;" />
-            <!-- Because the font rendering system prior to API version 16 can't automatically
-                 render dotted circle for incomplete combining letter of some scripts, different
-                 set of Key definitions are needed based on the API version. -->
-            <include latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_au" />
-            <Key latin:keyStyle="baseKeyDevanagariVowelSignAu" />
-            <!-- U+0926/U+094D/U+092F: "द्य" DEVANAGARI LETTER DA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER YA -->
-            <Key
-                latin:keySpec="&#x0926;&#x094D;&#x092F;"
-                latin:keyLabelFlags="followKeyLetterRatio" />
-        </case>
-        <default>
-            <!-- U+0936: "श" DEVANAGARI LETTER SHA -->
-            <Key latin:keySpec="&#x0936;" />
-            <!-- U+0939: "ह" DEVANAGARI LETTER HA -->
-            <Key latin:keySpec="&#x0939;" />
-            <!-- U+0905: "अ" DEVANAGARI LETTER A -->
-            <Key latin:keySpec="&#x0905;" />
-            <!-- U+0916: "ख" DEVANAGARI LETTER KHA -->
-            <Key latin:keySpec="&#x0916;" />
-            <!-- U+0926: "द" DEVANAGARI LETTER DA -->
-            <Key latin:keySpec="&#x0926;" />
-            <!-- U+0932: "ल" DEVANAGARI LETTER LA -->
-            <Key latin:keySpec="&#x0932;" />
-        </default>
-    </switch>
-</merge>
diff --git a/java/res/xml/rowkeys_nepali_traditional3_right3.xml b/java/res/xml/rowkeys_nepali_traditional3_right3.xml
deleted file mode 100644
index 4db438d..0000000
--- a/java/res/xml/rowkeys_nepali_traditional3_right3.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2013, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
-    <switch>
-        <case latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted">
-            <!-- Because the font rendering system prior to API version 16 can't automatically
-                 render dotted circle for incomplete combining letter of some scripts, different
-                 set of Key definitions are needed based on the API version. -->
-            <include latin:keyboardLayout="@xml/keystyle_devanagari_sign_anusvara" />
-            <Key latin:keyStyle="baseKeyDevanagariSignAnusvara" />
-            <!-- U+0919: "ङ" DEVANAGARI LETTER NGA -->
-            <Key latin:keySpec="&#x0919;" />
-            <!-- Because the font rendering system prior to API version 16 can't automatically
-                 render dotted circle for incomplete combining letter of some scripts, different
-                 set of Key definitions are needed based on the API version. -->
-            <include latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_ai" />
-            <Key latin:keyStyle="baseKeyDevanagariVowelSignAi" />
-        </case>
-        <default>
-            <!-- Because the font rendering system prior to API version 16 can't automatically
-                 render dotted circle for incomplete combining letter of some scripts, different
-                 set of Key definitions are needed based on the API version. -->
-            <include latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_e" />
-            <Key latin:keyStyle="baseKeyDevanagariVowelSignE" />
-            <!-- U+0964: "।" DEVANAGARI DANDA -->
-            <Key latin:keySpec="&#x0964;" />
-            <!-- U+0930: "र" DEVANAGARI LETTER RA
-                 U+0930/U+0941: "रु" DEVANAGARI LETTER RA/DEVANAGARI VOWEL SIGN U -->
-            <Key
-                latin:keySpec="&#x0930;"
-                latin:moreKeys="&#x0930;&#x0941;" />
-        </default>
-    </switch>
-</merge>
diff --git a/java/res/xml/rowkeys_nepali_traditional3_right5.xml b/java/res/xml/rowkeys_nepali_traditional3_right5.xml
deleted file mode 100644
index c7c73a4..0000000
--- a/java/res/xml/rowkeys_nepali_traditional3_right5.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2013, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
-    <switch>
-        <case latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted">
-            <!-- Because the font rendering system prior to API version 16 can't automatically
-                 render dotted circle for incomplete combining letter of some scripts, different
-                 set of Key definitions are needed based on the API version. -->
-            <include latin:keyboardLayout="@xml/keystyle_devanagari_sign_anusvara" />
-            <Key latin:keyStyle="baseKeyDevanagariSignAnusvara" />
-            <!-- U+0919: "ङ" DEVANAGARI LETTER NGA -->
-            <Key latin:keySpec="&#x0919;" />
-            <!-- Because the font rendering system prior to API version 16 can't automatically
-                 render dotted circle for incomplete combining letter of some scripts, different
-                 set of Key definitions are needed based on the API version. -->
-            <include latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_ai" />
-            <Key latin:keyStyle="baseKeyDevanagariVowelSignAi" />
-            <!-- U+0930/U+0941: "रु" DEVANAGARI LETTER RA/DEVANAGARI VOWEL SIGN U -->
-            <Key
-                latin:keySpec="&#x0930;&#x0941;"
-                latin:moreKeys="!"
-                latin:keyLabelFlags="followKeyLetterRatio" />
-            <Key
-                latin:keySpec="\?"
-                latin:keyLabelFlags="fontDefault" />
-        </case>
-        <default>
-            <!-- Because the font rendering system prior to API version 16 can't automatically
-                 render dotted circle for incomplete combining letter of some scripts, different
-                 set of Key definitions are needed based on the API version. -->
-            <include latin:keyboardLayout="@xml/keystyle_devanagari_sign_visarga" />
-            <!-- U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA -->
-            <Key
-                latin:keyStyle="baseKeyDevanagariSignVisarga"
-                latin:moreKeys="&#x093D;" />
-            <!-- Because the font rendering system prior to API version 16 can't automatically
-                 render dotted circle for incomplete combining letter of some scripts, different
-                 set of Key definitions are needed based on the API version. -->
-            <include latin:keyboardLayout="@xml/keystyle_devanagari_vowel_sign_e" />
-            <!-- Override more keys with empty definition -->
-            <key-style latin:styleName="moreKeysDevanagariVowelSignE" />
-            <Key latin:keyStyle="baseKeyDevanagariVowelSignE" />
-            <!-- U+0964: "।" DEVANAGARI DANDA -->
-            <Key latin:keySpec="&#x0964;" />
-            <!-- U+0930: "र" DEVANAGARI LETTER RA -->
-            <Key
-                latin:keySpec="&#x0930;"
-                latin:moreKeys="!" />
-            <!-- Because the font rendering system prior to API version 16 can't automatically
-                 render dotted circle for incomplete combining letter of some scripts, different
-                 set of Key definitions are needed based on the API version. -->
-            <include latin:keyboardLayout="@xml/keystyle_devanagari_sign_virama" />
-            <Key
-                latin:keyStyle="baseKeyDevanagariSignVirama"
-                latin:moreKeys="\?" />
-        </default>
-    </switch>
-</merge>
diff --git a/java/res/xml/rowkeys_qwerty1.xml b/java/res/xml/rowkeys_qwerty1.xml
index 8f3b160..b8e4a4c 100644
--- a/java/res/xml/rowkeys_qwerty1.xml
+++ b/java/res/xml/rowkeys_qwerty1.xml
@@ -21,53 +21,10 @@
 <merge
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
-    <Key
-        latin:keySpec="!text/keyspec_q"
-        latin:keyHintLabel="1"
-        latin:additionalMoreKeys="1"
-        latin:moreKeys="!text/morekeys_q" />
-    <Key
-        latin:keySpec="!text/keyspec_w"
-        latin:keyHintLabel="2"
-        latin:additionalMoreKeys="2"
-        latin:moreKeys="!text/morekeys_w" />
-    <Key
-        latin:keySpec="e"
-        latin:keyHintLabel="3"
-        latin:additionalMoreKeys="3"
-        latin:moreKeys="!text/morekeys_e" />
-    <Key
-        latin:keySpec="r"
-        latin:keyHintLabel="4"
-        latin:additionalMoreKeys="4"
-        latin:moreKeys="!text/morekeys_r" />
-    <Key
-        latin:keySpec="t"
-        latin:keyHintLabel="5"
-        latin:additionalMoreKeys="5"
-        latin:moreKeys="!text/morekeys_t" />
-    <Key
-        latin:keySpec="!text/keyspec_y"
-        latin:keyHintLabel="6"
-        latin:additionalMoreKeys="6"
-        latin:moreKeys="!text/morekeys_y" />
-    <Key
-        latin:keySpec="u"
-        latin:keyHintLabel="7"
-        latin:additionalMoreKeys="7"
-        latin:moreKeys="!text/morekeys_u" />
-    <Key
-        latin:keySpec="i"
-        latin:keyHintLabel="8"
-        latin:additionalMoreKeys="8"
-        latin:moreKeys="!text/morekeys_i" />
-    <Key
-        latin:keySpec="o"
-        latin:keyHintLabel="9"
-        latin:additionalMoreKeys="9"
-        latin:moreKeys="!text/morekeys_o" />
-    <Key
-        latin:keySpec="p"
-        latin:keyHintLabel="0"
-        latin:additionalMoreKeys="0" />
+    <!-- q,w,e,r,t -->
+    <include
+        latin:keyboardLayout="@xml/rowkeys_qwerty1_left5" />
+    <!-- y,u,i,o,p -->
+    <include
+        latin:keyboardLayout="@xml/rowkeys_qwerty1_right5" />
 </merge>
diff --git a/java/res/xml/rowkeys_qwerty1_left5.xml b/java/res/xml/rowkeys_qwerty1_left5.xml
new file mode 100644
index 0000000..ff9f1b2
--- /dev/null
+++ b/java/res/xml/rowkeys_qwerty1_left5.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <Key
+        latin:keySpec="!text/keyspec_q"
+        latin:keyHintLabel="1"
+        latin:additionalMoreKeys="1"
+        latin:moreKeys="!text/morekeys_q" />
+    <Key
+        latin:keySpec="!text/keyspec_w"
+        latin:keyHintLabel="2"
+        latin:additionalMoreKeys="2"
+        latin:moreKeys="!text/morekeys_w" />
+    <Key
+        latin:keySpec="e"
+        latin:keyHintLabel="3"
+        latin:additionalMoreKeys="3"
+        latin:moreKeys="!text/morekeys_e" />
+    <Key
+        latin:keySpec="r"
+        latin:keyHintLabel="4"
+        latin:additionalMoreKeys="4"
+        latin:moreKeys="!text/morekeys_r" />
+    <Key
+        latin:keySpec="t"
+        latin:keyHintLabel="5"
+        latin:additionalMoreKeys="5"
+        latin:moreKeys="!text/morekeys_t" />
+</merge>
diff --git a/java/res/xml/rowkeys_qwerty1_right5.xml b/java/res/xml/rowkeys_qwerty1_right5.xml
new file mode 100644
index 0000000..2b3cae2
--- /dev/null
+++ b/java/res/xml/rowkeys_qwerty1_right5.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <Key
+        latin:keySpec="!text/keyspec_y"
+        latin:keyHintLabel="6"
+        latin:additionalMoreKeys="6"
+        latin:moreKeys="!text/morekeys_y" />
+    <Key
+        latin:keySpec="u"
+        latin:keyHintLabel="7"
+        latin:additionalMoreKeys="7"
+        latin:moreKeys="!text/morekeys_u" />
+    <Key
+        latin:keySpec="i"
+        latin:keyHintLabel="8"
+        latin:additionalMoreKeys="8"
+        latin:moreKeys="!text/morekeys_i" />
+    <Key
+        latin:keySpec="o"
+        latin:keyHintLabel="9"
+        latin:additionalMoreKeys="9"
+        latin:moreKeys="!text/morekeys_o" />
+    <Key
+        latin:keySpec="p"
+        latin:keyHintLabel="0"
+        latin:additionalMoreKeys="0" />
+</merge>
diff --git a/java/res/xml/rowkeys_qwerty2.xml b/java/res/xml/rowkeys_qwerty2.xml
index 4077bea..550db3b 100644
--- a/java/res/xml/rowkeys_qwerty2.xml
+++ b/java/res/xml/rowkeys_qwerty2.xml
@@ -21,30 +21,10 @@
 <merge
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
-    <Key
-        latin:keySpec="a"
-        latin:moreKeys="!text/morekeys_a" />
-    <Key
-        latin:keySpec="s"
-        latin:moreKeys="!text/morekeys_s" />
-    <Key
-        latin:keySpec="d"
-        latin:moreKeys="!text/morekeys_d" />
-    <Key
-        latin:keySpec="f" />
-    <Key
-        latin:keySpec="g"
-        latin:moreKeys="!text/morekeys_g" />
-    <Key
-        latin:keySpec="h"
-        latin:moreKeys="!text/morekeys_h" />
-    <Key
-        latin:keySpec="j"
-        latin:moreKeys="!text/morekeys_j" />
-    <Key
-        latin:keySpec="k"
-        latin:moreKeys="!text/morekeys_k" />
-    <Key
-        latin:keySpec="l"
-        latin:moreKeys="!text/morekeys_l" />
+    <!-- a,s,d,f,g -->
+    <include
+        latin:keyboardLayout="@xml/rowkeys_qwerty2_left5" />
+    <!-- h,j,k,l -->
+    <include
+        latin:keyboardLayout="@xml/rowkeys_qwerty2_right4" />
 </merge>
diff --git a/java/res/xml/rowkeys_qwerty2_left5.xml b/java/res/xml/rowkeys_qwerty2_left5.xml
new file mode 100644
index 0000000..1803bf2
--- /dev/null
+++ b/java/res/xml/rowkeys_qwerty2_left5.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <Key
+        latin:keySpec="a"
+        latin:moreKeys="!text/morekeys_a" />
+    <Key
+        latin:keySpec="s"
+        latin:moreKeys="!text/morekeys_s" />
+    <Key
+        latin:keySpec="d"
+        latin:moreKeys="!text/morekeys_d" />
+    <Key
+        latin:keySpec="f" />
+    <Key
+        latin:keySpec="g"
+        latin:moreKeys="!text/morekeys_g" />
+</merge>
diff --git a/java/res/xml/rowkeys_qwerty2_right4.xml b/java/res/xml/rowkeys_qwerty2_right4.xml
new file mode 100644
index 0000000..99936b7
--- /dev/null
+++ b/java/res/xml/rowkeys_qwerty2_right4.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <Key
+        latin:keySpec="h"
+        latin:moreKeys="!text/morekeys_h" />
+    <Key
+        latin:keySpec="j"
+        latin:moreKeys="!text/morekeys_j" />
+    <Key
+        latin:keySpec="k"
+        latin:moreKeys="!text/morekeys_k" />
+    <Key
+        latin:keySpec="l"
+        latin:moreKeys="!text/morekeys_l" />
+</merge>
diff --git a/java/res/xml/rowkeys_qwerty3.xml b/java/res/xml/rowkeys_qwerty3.xml
index 8562003..7a523f1 100644
--- a/java/res/xml/rowkeys_qwerty3.xml
+++ b/java/res/xml/rowkeys_qwerty3.xml
@@ -21,23 +21,10 @@
 <merge
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
-    <Key
-        latin:keySpec="z"
-        latin:moreKeys="!text/morekeys_z" />
-    <Key
-        latin:keySpec="!text/keyspec_x"
-        latin:moreKeys="!text/morekeys_x" />
-    <Key
-        latin:keySpec="c"
-        latin:moreKeys="!text/morekeys_c" />
-    <Key
-        latin:keySpec="v"
-        latin:moreKeys="!text/morekeys_v" />
-    <Key
-        latin:keySpec="b" />
-    <Key
-        latin:keySpec="n"
-        latin:moreKeys="!text/morekeys_n" />
-    <Key
-        latin:keySpec="m" />
+    <!-- z,x,c,v -->
+    <include
+        latin:keyboardLayout="@xml/rowkeys_qwerty3_left4" />
+    <!-- b,n,m -->
+    <include
+        latin:keyboardLayout="@xml/rowkeys_qwerty3_right3" />
 </merge>
diff --git a/java/res/xml/rowkeys_qwerty3_left4.xml b/java/res/xml/rowkeys_qwerty3_left4.xml
new file mode 100644
index 0000000..6043c3b
--- /dev/null
+++ b/java/res/xml/rowkeys_qwerty3_left4.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <Key
+        latin:keySpec="z"
+        latin:moreKeys="!text/morekeys_z" />
+    <Key
+        latin:keySpec="!text/keyspec_x"
+        latin:moreKeys="!text/morekeys_x" />
+    <Key
+        latin:keySpec="c"
+        latin:moreKeys="!text/morekeys_c" />
+    <Key
+        latin:keySpec="v"
+        latin:moreKeys="!text/morekeys_v" />
+</merge>
diff --git a/java/res/xml/rowkeys_qwerty3_right3.xml b/java/res/xml/rowkeys_qwerty3_right3.xml
new file mode 100644
index 0000000..f699103
--- /dev/null
+++ b/java/res/xml/rowkeys_qwerty3_right3.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <Key
+        latin:keySpec="b" />
+    <Key
+        latin:keySpec="n"
+        latin:moreKeys="!text/morekeys_n" />
+    <Key
+        latin:keySpec="m" />
+</merge>
diff --git a/java/res/xml/rowkeys_serbian_qwertz1.xml b/java/res/xml/rowkeys_serbian_qwertz1.xml
new file mode 100644
index 0000000..1615701
--- /dev/null
+++ b/java/res/xml/rowkeys_serbian_qwertz1.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" >
+    <include latin:keyboardLayout="@xml/rowkeys_qwertz1" />
+    <!-- U+0161: "š" LATIN SMALL LETTER S WITH CARON -->
+    <Key latin:keySpec="&#x0161;" />
+</merge>
\ No newline at end of file
diff --git a/java/res/xml/rowkeys_serbian_qwertz2.xml b/java/res/xml/rowkeys_serbian_qwertz2.xml
new file mode 100644
index 0000000..83ec92d
--- /dev/null
+++ b/java/res/xml/rowkeys_serbian_qwertz2.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" >
+    <include latin:keyboardLayout="@xml/rowkeys_qwerty2" />
+    <!-- U+010D: "č" LATIN SMALL LETTER C WITH CARON -->
+    <Key latin:keySpec="&#x010D;" />
+    <!-- U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE -->
+    <Key latin:keySpec="&#x0107;" />
+</merge>
diff --git a/java/res/xml/rowkeys_serbian_qwertz3.xml b/java/res/xml/rowkeys_serbian_qwertz3.xml
new file mode 100644
index 0000000..30ba7af
--- /dev/null
+++ b/java/res/xml/rowkeys_serbian_qwertz3.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" >
+    <include latin:keyboardLayout="@xml/rowkeys_qwertz3" />
+    <!-- U+0111: "đ" LATIN SMALL LETTER D WITH STROKE -->
+    <Key latin:keySpec="&#x0111;" />
+    <!-- U+017E: "ž" LATIN SMALL LETTER Z WITH CARON -->
+    <Key latin:keySpec="&#x017E;" />
+</merge>
diff --git a/java/res/xml/rowkeys_symbols2.xml b/java/res/xml/rowkeys_symbols2.xml
index 8119158..e55b1b8 100644
--- a/java/res/xml/rowkeys_symbols2.xml
+++ b/java/res/xml/rowkeys_symbols2.xml
@@ -44,7 +44,8 @@
         </default>
     </switch>
     <Key
-        latin:keyStyle="currencyKeyStyle" />
+        latin:keyStyle="currencyKeyStyle"
+        latin:keyLabelFlags="followKeyLetterRatio" />
     <Key
         latin:keySpec="!text/keyspec_symbols_percent"
         latin:moreKeys="!text/morekeys_symbols_percent" />
diff --git a/java/res/xml/rowkeys_telugu2.xml b/java/res/xml/rowkeys_telugu2.xml
index a472fd3..f1ce459 100644
--- a/java/res/xml/rowkeys_telugu2.xml
+++ b/java/res/xml/rowkeys_telugu2.xml
@@ -51,10 +51,10 @@
         latin:moreKeys="&#x0C2B;" />
     <!-- U+0C30: "ర" TELUGU LETTER RA
          U+0C31: "ఱ" TELUGU LETTER RRA
-         U+0C43: "ృ" TELUGU VOWEL SIGN VOCALIC R -->
+         U+0C4D/U+0C30: "్ర" TELUGU SIGN VIRAMA/TELUGU LETTER RA -->
     <Key
         latin:keySpec="&#x0C30;"
-        latin:moreKeys="&#x0C31;,&#x0C43;" />
+        latin:moreKeys="&#x0C31;,&#x0C4D;&#x0C30;" />
     <!-- U+0C15: "క" TELUGU LETTER KA
          U+0C16: "ఖ" TELUGU LETTER KHA -->
     <Key
diff --git a/java/res/xml/rowkeys_telugu3.xml b/java/res/xml/rowkeys_telugu3.xml
index 05755ec..2e3730a 100644
--- a/java/res/xml/rowkeys_telugu3.xml
+++ b/java/res/xml/rowkeys_telugu3.xml
@@ -19,24 +19,28 @@
 -->
 
 <merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
-    <!-- U+0C46: "ె" TELUGU VOWEL SIGN E
+    <!-- U+0C4A: "ొ" TELUGU VOWEL SIGN O
          U+0C12: "ఒ" TELUGU LETTER O -->
     <Key
-        latin:keySpec="&#x0C46;"
+        latin:keySpec="&#x0C4A;"
         latin:moreKeys="&#x0C12;" />
-    <!-- U+0C02: "ం" TELUGU SIGN ANUSVARA
+    <!-- U+0C46: "ె" TELUGU VOWEL SIGN E
          U+0C0E: "ఎ" TELUGU LETTER E -->
     <Key
-        latin:keySpec="&#x0C02;"
+        latin:keySpec="&#x0C46;"
         latin:moreKeys="&#x0C0E;" />
-    <!-- U+0C2E: "మ" TELUGU LETTER MA -->
-    <Key latin:keySpec="&#x0C2E;" />
+    <!-- U+0C2E: "మ" TELUGU LETTER MA
+         U+0C02: "ం" TELUGU SIGN ANUSVARA
+         U+0C01: "ఁ" TELUGU SIGN CANDRABINDU -->
+    <Key latin:keySpec="&#x0C2E;"
+         latin:moreKeys="&#x0C02;,&#x0C01;" />
     <!-- U+0C28: "న" TELUGU LETTER NA
          U+0C23: "ణ" TELUGU LETTER NNA
-         U+0C19: "ఙ" TELUGU LETTER NGA -->
+         U+0C19: "ఙ" TELUGU LETTER NGA
+         U+0C1E: "ఞ" TELUGU LETTER NYA -->
     <Key
         latin:keySpec="&#x0C28;"
-        latin:moreKeys="&#x0C23;,&#x0C19;" />
+        latin:moreKeys="&#x0C23;,&#x0C19;,&#x0C1E;" />
     <!-- U+0C35: "వ" TELUGU LETTER VA -->
     <Key latin:keySpec="&#x0C35;" />
     <!-- U+0C32: "ల" TELUGU LETTER LA
@@ -50,10 +54,10 @@
         latin:keySpec="&#x0C38;"
         latin:moreKeys="&#x0C36;" />
     <!-- U+0C0B: "ఋ" TELUGU LETTER VOCALIC R
-         U+0C4D/U+0C30: "్ర" TELUGU SIGN VIRAMA/TELUGU LETTER RA -->
+         U+0C43: "ృ" TELUGU VOWEL SIGN VOCALIC R -->
     <Key
         latin:keySpec="&#x0C0B;"
-        latin:moreKeys="&#x0C4D;&#x0C30;" />
+        latin:moreKeys="&#x0C43;" />
     <!-- U+0C37: "ష" TELUGU LETTER SSA
          U+0C15/U+0C4D/U+0C37: "క్ష" TELUGU LETTER KA/TELUGU SIGN VIRAMA/TELUGU LETTER SSA -->
     <Key
diff --git a/java/res/xml/rowkeys_uzbek1.xml b/java/res/xml/rowkeys_uzbek1.xml
new file mode 100644
index 0000000..967e9a7
--- /dev/null
+++ b/java/res/xml/rowkeys_uzbek1.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" >
+    <include latin:keyboardLayout="@xml/rowkeys_qwerty1" />
+    <!-- U+006F/U+02BB: "oʻ" LATIN SMALL LETTER O/MODIFIER LETTER TURNED COMMA -->
+    <Key
+        latin:keySpec="o&#x02BB;"
+        latin:keyLabelFlags="followKeyLetterRatio" />
+</merge>
\ No newline at end of file
diff --git a/java/res/xml/rowkeys_uzbek2.xml b/java/res/xml/rowkeys_uzbek2.xml
new file mode 100644
index 0000000..b768a12
--- /dev/null
+++ b/java/res/xml/rowkeys_uzbek2.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" >
+    <include latin:keyboardLayout="@xml/rowkeys_qwerty2" />
+    <!-- U+0067/U+02BB: "gʻ" LATIN SMALL LETTER G/MODIFIER LETTER TURNED COMMA -->
+    <Key
+        latin:keySpec="g&#x02BB;"
+        latin:keyLabelFlags="followKeyLetterRatio" />
+    <!-- U+02BC: "ʼ" MODIFIER LETTER APOSTROPHE -->
+    <Key latin:keySpec="&#x02BC;" />
+</merge>
\ No newline at end of file
diff --git a/java/res/xml/rows_bengali_akkhor.xml b/java/res/xml/rows_bengali_akkhor.xml
new file mode 100644
index 0000000..1c7e772
--- /dev/null
+++ b/java/res/xml/rows_bengali_akkhor.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" >
+    <include latin:keyboardLayout="@xml/key_styles_common" />
+    <Row
+        latin:keyLabelFlags="fontNormal"
+        latin:keyWidth="9.091%p" >
+        <include latin:keyboardLayout="@xml/rowkeys_bengali_akkhor1" />
+    </Row>
+    <Row
+        latin:keyLabelFlags="fontNormal"
+        latin:keyWidth="9.091%p" >
+        <include latin:keyboardLayout="@xml/rowkeys_bengali_akkhor2" />
+    </Row>
+    <Row
+        latin:keyLabelFlags="fontNormal"
+        latin:keyWidth="8.711%p" >
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyWidth="10.8%p" />
+        <include latin:keyboardLayout="@xml/rowkeys_bengali_akkhor3" />
+        <Key
+            latin:keyStyle="deleteKeyStyle"
+            latin:keyWidth="fillRight" />
+    </Row>
+    <include latin:keyboardLayout="@xml/row_qwerty4" />
+</merge>
diff --git a/java/res/xml/rows_myanmar.xml b/java/res/xml/rows_myanmar.xml
deleted file mode 100644
index 54538a9..0000000
--- a/java/res/xml/rows_myanmar.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2014, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
-    <include latin:keyboardLayout="@xml/key_styles_common" />
-    <Row
-        latin:keyWidth="10.0%p"
-        latin:keyLabelFlags="fontNormal|autoXScale"
-    >
-        <include latin:keyboardLayout="@xml/rowkeys_myanmar1" />
-    </Row>
-    <Row
-        latin:keyWidth="10.0%p"
-        latin:keyLabelFlags="fontNormal|autoXScale"
-    >
-        <include latin:keyboardLayout="@xml/rowkeys_myanmar2" />
-    </Row>
-    <Row
-        latin:keyWidth="10.0%p"
-        latin:keyLabelFlags="fontNormal|autoXScale"
-    >
-        <include latin:keyboardLayout="@xml/rowkeys_myanmar3" />
-    </Row>
-    <Row
-        latin:keyWidth="10.0%p"
-        latin:keyLabelFlags="fontNormal|autoXScale"
-    >
-        <Key latin:keyStyle="shiftKeyStyle" />
-        <include latin:keyboardLayout="@xml/rowkeys_myanmar4" />
-        <Key latin:keyStyle="deleteKeyStyle" />
-    </Row>
-    <include latin:keyboardLayout="@xml/row_qwerty4" />
-</merge>
\ No newline at end of file
diff --git a/java/res/xml/rows_nepali_romanized.xml b/java/res/xml/rows_nepali_romanized.xml
index daca3ee..26737ec 100644
--- a/java/res/xml/rows_nepali_romanized.xml
+++ b/java/res/xml/rows_nepali_romanized.xml
@@ -33,16 +33,18 @@
         <include latin:keyboardLayout="@xml/rowkeys_nepali_romanized2" />
     </Row>
     <Row
-        latin:keyWidth="8.711%p"
+        latin:keyWidth="8.75%p"
         latin:keyLabelFlags="fontNormal"
     >
         <Key
             latin:keyStyle="shiftKeyStyle"
-            latin:keyWidth="10.8%p" />
+            latin:keyWidth="15%p"
+            latin:visualInsetsRight="1%p" />
         <include latin:keyboardLayout="@xml/rowkeys_nepali_romanized3" />
         <Key
             latin:keyStyle="deleteKeyStyle"
-            latin:keyWidth="fillRight" />
+            latin:keyWidth="fillRight"
+            latin:visualInsetsLeft="1%p" />
     </Row>
     <include latin:keyboardLayout="@xml/row_qwerty4" />
 </merge>
diff --git a/java/res/xml/rows_nepali_traditional.xml b/java/res/xml/rows_nepali_traditional.xml
index edcc73a..e2e710c 100644
--- a/java/res/xml/rows_nepali_traditional.xml
+++ b/java/res/xml/rows_nepali_traditional.xml
@@ -40,8 +40,7 @@
         <Key
             latin:keyStyle="shiftKeyStyle"
             latin:keyWidth="10.8%p" />
-        <include latin:keyboardLayout="@xml/rowkeys_nepali_traditional3_left6" />
-        <include latin:keyboardLayout="@xml/rowkeys_nepali_traditional3_right3" />
+        <include latin:keyboardLayout="@xml/rowkeys_nepali_traditional3" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyWidth="fillRight" />
diff --git a/java/res/xml/rows_number_normal.xml b/java/res/xml/rows_number_normal.xml
index d8d1508..0f92ac6 100644
--- a/java/res/xml/rows_number_normal.xml
+++ b/java/res/xml/rows_number_normal.xml
@@ -35,7 +35,8 @@
             latin:keySpec="-"
             latin:moreKeys="+"
             latin:keyLabelFlags="hasPopupHint"
-            latin:keyStyle="numFunctionalKeyStyle"
+            latin:keyStyle="numKeyStyle"
+            latin:backgroundType="functional"
             latin:keyWidth="fillRight" />
     </Row>
     <Row>
@@ -54,7 +55,8 @@
             >
                 <Key
                     latin:keySpec="."
-                    latin:keyStyle="numFunctionalKeyStyle"
+                    latin:keyStyle="numKeyStyle"
+                    latin:backgroundType="functional"
                     latin:keyWidth="fillRight" />
             </case>
             <case
@@ -62,15 +64,17 @@
             >
                 <Key
                     latin:keySpec="."
-                    latin:keyLabelFlags="hasPopupHint"
                     latin:moreKeys="!text/morekeys_am_pm"
-                    latin:keyStyle="numFunctionalKeyStyle"
+                    latin:keyLabelFlags="hasPopupHint"
+                    latin:keyStyle="numKeyStyle"
+                    latin:backgroundType="functional"
                     latin:keyWidth="fillRight" />
             </case>
             <default>
                 <Key
                     latin:keySpec=","
-                    latin:keyStyle="numFunctionalKeyStyle"
+                    latin:keyStyle="numKeyStyle"
+                    latin:backgroundType="functional"
                     latin:keyWidth="fillRight" />
             </default>
         </switch>
diff --git a/java/res/xml/rows_number_password.xml b/java/res/xml/rows_number_password.xml
index 2e61a08..65736c4 100644
--- a/java/res/xml/rows_number_password.xml
+++ b/java/res/xml/rows_number_password.xml
@@ -70,7 +70,8 @@
         <Key
             latin:keyStyle="deleteKeyStyle" />
         <Key
-            latin:keyStyle="num0KeyStyle" />
+            latin:keyStyle="num0KeyStyle"
+            latin:keyHintLabel="+" />
         <Key
             latin:keyStyle="enterKeyStyle" />
         <!-- Note: This Spacer prevents the above key from being marked as a right edge key. -->
diff --git a/java/res/xml/rows_phone.xml b/java/res/xml/rows_phone.xml
index 03e4541..bb5590d 100644
--- a/java/res/xml/rows_phone.xml
+++ b/java/res/xml/rows_phone.xml
@@ -36,7 +36,8 @@
             latin:keySpec="-"
             latin:moreKeys="+"
             latin:keyLabelFlags="hasPopupHint"
-            latin:keyStyle="numFunctionalKeyStyle"
+            latin:keyStyle="numKeyStyle"
+            latin:backgroundType="functional"
             latin:keyWidth="fillRight" />
     </Row>
     <Row>
@@ -48,7 +49,8 @@
             latin:keyStyle="num6KeyStyle" />
         <Key
             latin:keySpec="."
-            latin:keyStyle="numFunctionalKeyStyle"
+            latin:keyStyle="numKeyStyle"
+            latin:backgroundType="functional"
             latin:keyWidth="fillRight" />
     </Row>
     <Row>
diff --git a/java/res/xml/rows_phone_symbols.xml b/java/res/xml/rows_phone_symbols.xml
index 983bfb5..195a183 100644
--- a/java/res/xml/rows_phone_symbols.xml
+++ b/java/res/xml/rows_phone_symbols.xml
@@ -28,45 +28,53 @@
     <Row>
         <Key
             latin:keySpec="("
-            latin:keyStyle="numKeyStyle" />
+            latin:keyStyle="numSymbolKeyStyle" />
         <Key
             latin:keySpec="/"
-            latin:keyStyle="numKeyStyle" />
+            latin:keyStyle="numSymbolKeyStyle" />
         <Key
             latin:keySpec=")"
-            latin:keyStyle="numKeyStyle" />
+            latin:keyStyle="numSymbolKeyStyle" />
         <Key
             latin:keySpec="-"
             latin:moreKeys="+"
             latin:keyLabelFlags="hasPopupHint"
-            latin:keyStyle="numFunctionalKeyStyle"
+            latin:keyStyle="numKeyStyle"
+            latin:backgroundType="functional"
             latin:keyWidth="fillRight" />
     </Row>
     <Row>
         <Key
             latin:keySpec="N"
-            latin:keyStyle="numKeyBaseStyle" />
+            latin:keyStyle="numSymbolKeyStyle" />
         <!-- Pause is a comma. Check PhoneNumberUtils.java to see if this
             has changed. -->
         <Key
-            latin:keyStyle="numPauseKeyStyle" />
+            latin:keySpec="!string/label_pause_key|,"
+            latin:keyLabelFlags="followKeyLabelRatio|autoXScale"
+            latin:keyStyle="numSymbolKeyStyle" />
         <Key
             latin:keySpec=","
-            latin:keyStyle="numKeyStyle" />
+            latin:keyStyle="numSymbolKeyStyle" />
         <Key
             latin:keySpec="."
-            latin:keyStyle="numFunctionalKeyStyle"
+            latin:keyStyle="numKeyStyle"
+            latin:backgroundType="functional"
             latin:keyWidth="fillRight" />
     </Row>
     <Row>
+        <!-- U+FF0A: "＊" FULLWIDTH ASTERISK -->
         <Key
-            latin:keyStyle="numStarKeyStyle" />
+            latin:keySpec="&#xFF0A;|*"
+            latin:keyStyle="numSymbolKeyStyle" />
         <!-- Wait is a semicolon. -->
         <Key
-            latin:keyStyle="numWaitKeyStyle" />
+            latin:keySpec="!string/label_wait_key|;"
+            latin:keyLabelFlags="followKeyLabelRatio|autoXScale"
+            latin:keyStyle="numSymbolKeyStyle" />
         <Key
             latin:keySpec="\#"
-            latin:keyStyle="numKeyStyle" />
+            latin:keyStyle="numSymbolKeyStyle" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyWidth="fillRight" />
@@ -76,7 +84,7 @@
             latin:keyStyle="numPhoneToNumericKeyStyle" />
         <Key
             latin:keySpec="+"
-            latin:keyStyle="numKeyStyle" />
+            latin:keyStyle="numSymbolKeyStyle" />
         <Key
             latin:keyStyle="numSpaceKeyStyle" />
         <Key
diff --git a/java/res/xml/rows_serbian_qwertz.xml b/java/res/xml/rows_serbian_qwertz.xml
new file mode 100644
index 0000000..4be2abf
--- /dev/null
+++ b/java/res/xml/rows_serbian_qwertz.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" >
+    <include latin:keyboardLayout="@xml/key_styles_common" />
+    <Row latin:keyWidth="9.091%p" >
+        <include latin:keyboardLayout="@xml/rowkeys_serbian_qwertz1" />
+    </Row>
+    <Row latin:keyWidth="9.091%p" >
+        <include latin:keyboardLayout="@xml/rowkeys_serbian_qwertz2" />
+    </Row>
+    <Row latin:keyWidth="8.711%p" >
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyWidth="10.8%p" />
+        <include latin:keyboardLayout="@xml/rowkeys_serbian_qwertz3" />
+        <Key
+            latin:keyStyle="deleteKeyStyle"
+            latin:keyWidth="fillRight" />
+    </Row>
+    <include latin:keyboardLayout="@xml/row_qwerty4" />
+</merge>
\ No newline at end of file
diff --git a/java/res/xml/rows_uzbek.xml b/java/res/xml/rows_uzbek.xml
new file mode 100644
index 0000000..ae655d8
--- /dev/null
+++ b/java/res/xml/rows_uzbek.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" >
+    <include latin:keyboardLayout="@xml/key_styles_common" />
+    <Row latin:keyWidth="9.091%p" >
+        <include latin:keyboardLayout="@xml/rowkeys_uzbek1" />
+    </Row>
+    <Row latin:keyWidth="9.091%p" >
+        <include latin:keyboardLayout="@xml/rowkeys_uzbek2" />
+    </Row>
+    <Row latin:keyWidth="9.2%p" >
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyWidth="15%p"
+            latin:visualInsetsRight="1%p" />
+        <Spacer latin:keyWidth="2.8%p" />
+        <include latin:keyboardLayout="@xml/rowkeys_qwerty3" />
+        <Key
+            latin:keyStyle="deleteKeyStyle"
+            latin:keyWidth="fillRight"
+            latin:keyXPos="-15%p"
+            latin:visualInsetsLeft="1%p" />
+    </Row>
+    <include latin:keyboardLayout="@xml/row_qwerty4" />
+</merge>
\ No newline at end of file
diff --git a/java/src/com/android/inputmethod/accessibility/AccessibilityUtils.java b/java/src/com/android/inputmethod/accessibility/AccessibilityUtils.java
index 2762a9f..b0072ee 100644
--- a/java/src/com/android/inputmethod/accessibility/AccessibilityUtils.java
+++ b/java/src/com/android/inputmethod/accessibility/AccessibilityUtils.java
@@ -152,12 +152,16 @@
      * will occur when a key is typed.
      *
      * @param suggestedWords the list of suggested auto-correction words
-     * @param typedWord the currently typed word
      */
-    public void setAutoCorrection(final SuggestedWords suggestedWords, final String typedWord) {
+    public void setAutoCorrection(final SuggestedWords suggestedWords) {
         if (suggestedWords.mWillAutoCorrect) {
             mAutoCorrectionWord = suggestedWords.getWord(SuggestedWords.INDEX_OF_AUTO_CORRECTION);
-            mTypedWord = typedWord;
+            final SuggestedWords.SuggestedWordInfo typedWordInfo = suggestedWords.mTypedWordInfo;
+            if (null == typedWordInfo) {
+                mTypedWord = null;
+            } else {
+                mTypedWord = typedWordInfo.mWord;
+            }
         } else {
             mAutoCorrectionWord = null;
             mTypedWord = null;
diff --git a/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java b/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java
index 7a3510e..bbda9f8 100644
--- a/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java
+++ b/java/src/com/android/inputmethod/accessibility/KeyCodeDescriptionMapper.java
@@ -26,9 +26,9 @@
 import com.android.inputmethod.keyboard.Key;
 import com.android.inputmethod.keyboard.Keyboard;
 import com.android.inputmethod.keyboard.KeyboardId;
-import com.android.inputmethod.latin.Constants;
 import com.android.inputmethod.latin.R;
-import com.android.inputmethod.latin.utils.StringUtils;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.StringUtils;
 
 import java.util.Locale;
 
@@ -37,6 +37,8 @@
     private static final String SPOKEN_LETTER_RESOURCE_NAME_FORMAT = "spoken_accented_letter_%04X";
     private static final String SPOKEN_SYMBOL_RESOURCE_NAME_FORMAT = "spoken_symbol_%04X";
     private static final String SPOKEN_EMOJI_RESOURCE_NAME_FORMAT = "spoken_emoji_%04X";
+    private static final String SPOKEN_EMOTICON_RESOURCE_NAME_PREFIX = "spoken_emoticon";
+    private static final String SPOKEN_EMOTICON_CODE_POINT_FORMAT = "_%02X";
 
     // The resource ID of the string spoken for obscured keys
     private static final int OBSCURED_KEY_RES_ID = R.string.spoken_description_dot;
@@ -109,7 +111,9 @@
         }
 
         if (code == Constants.CODE_OUTPUT_TEXT) {
-            return key.getOutputText();
+            final String outputText = key.getOutputText();
+            final String description = getSpokenEmoticonDescription(context, outputText);
+            return TextUtils.isEmpty(description) ? outputText : description;
         }
 
         // Just attempt to speak the description.
@@ -340,4 +344,22 @@
         }
         return resId;
     }
+
+    // TODO: Remove this method once TTS supports emoticon verbalization.
+    private static String getSpokenEmoticonDescription(final Context context,
+            final String outputText) {
+        final StringBuilder sb = new StringBuilder(SPOKEN_EMOTICON_RESOURCE_NAME_PREFIX);
+        final int textLength = outputText.length();
+        for (int index = 0; index < textLength; index = outputText.offsetByCodePoints(index, 1)) {
+            final int codePoint = outputText.codePointAt(index);
+            sb.append(String.format(Locale.ROOT, SPOKEN_EMOTICON_CODE_POINT_FORMAT, codePoint));
+        }
+        final String resourceName = sb.toString();
+        final Resources resources = context.getResources();
+        // Note that the resource package name may differ from the context package name.
+        final String resourcePackageName = resources.getResourcePackageName(
+                R.string.spoken_description_unknown);
+        final int resId = resources.getIdentifier(resourceName, "string", resourcePackageName);
+        return (resId == 0) ? null : resources.getString(resId);
+    }
 }
diff --git a/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityNodeProvider.java b/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityNodeProvider.java
index 66b0acb..2de71ce 100644
--- a/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityNodeProvider.java
+++ b/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityNodeProvider.java
@@ -31,9 +31,9 @@
 import com.android.inputmethod.keyboard.Key;
 import com.android.inputmethod.keyboard.Keyboard;
 import com.android.inputmethod.keyboard.KeyboardView;
+import com.android.inputmethod.latin.common.CoordinateUtils;
 import com.android.inputmethod.latin.settings.Settings;
 import com.android.inputmethod.latin.settings.SettingsValues;
-import com.android.inputmethod.latin.utils.CoordinateUtils;
 
 import java.util.List;
 
@@ -329,9 +329,8 @@
         if (currentSettings.isWordSeparator(key.getCode())) {
             return mAccessibilityUtils.getAutoCorrectionDescription(
                     keyCodeDescription, shouldObscure);
-        } else {
-            return keyCodeDescription;
         }
+        return keyCodeDescription;
     }
 
     /**
diff --git a/java/src/com/android/inputmethod/accessibility/MainKeyboardAccessibilityDelegate.java b/java/src/com/android/inputmethod/accessibility/MainKeyboardAccessibilityDelegate.java
index b84d402..e80982f 100644
--- a/java/src/com/android/inputmethod/accessibility/MainKeyboardAccessibilityDelegate.java
+++ b/java/src/com/android/inputmethod/accessibility/MainKeyboardAccessibilityDelegate.java
@@ -121,7 +121,7 @@
      */
     private void announceKeyboardLanguage(final Keyboard keyboard) {
         final String languageText = SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(
-                keyboard.mId.mSubtype);
+                keyboard.mId.mSubtype.getRawSubtype());
         sendWindowStateChanged(languageText);
     }
 
@@ -269,13 +269,9 @@
                 eventTime, eventTime, MotionEvent.ACTION_DOWN, x, y, 0 /* metaState */);
         // Inject a fake down event to {@link PointerTracker} to handle a long press correctly.
         tracker.processMotionEvent(downEvent, mKeyDetector);
-        // The above fake down event triggers an unnecessary long press timer that should be
-        // canceled.
-        tracker.cancelLongPressTimer();
         downEvent.recycle();
-        // Invoke {@link MainKeyboardView#onLongPress(PointerTracker)} as if a long press timeout
-        // has passed.
-        mKeyboardView.onLongPress(tracker);
+        // Invoke {@link PointerTracker#onLongPressed()} as if a long press timeout has passed.
+        tracker.onLongPressed();
         // If {@link Key#hasNoPanelAutoMoreKeys()} is true (such as "0 +" key on the phone layout)
         // or a key invokes IME switcher dialog, we should just ignore the next
         // {@link #onRegisterHoverKey(Key,MotionEvent)}. It can be determined by whether
diff --git a/java/src/com/android/inputmethod/compat/BuildCompatUtils.java b/java/src/com/android/inputmethod/compat/BuildCompatUtils.java
index 7d1717b..5d56f12 100644
--- a/java/src/com/android/inputmethod/compat/BuildCompatUtils.java
+++ b/java/src/com/android/inputmethod/compat/BuildCompatUtils.java
@@ -33,11 +33,4 @@
     public static final int EFFECTIVE_SDK_INT = IS_RELEASE_BUILD
             ? Build.VERSION.SDK_INT
             : Build.VERSION.SDK_INT + 1;
-
-    /**
-     * API version for L-release.
-     */
-    // TODO: Substitute this constant reference with Build.VERSION_CODES.L* once the *next* version
-    // becomes available.
-    public static final int VERSION_CODES_LXX = 21;
 }
diff --git a/java/src/com/android/inputmethod/compat/CharacterCompat.java b/java/src/com/android/inputmethod/compat/CharacterCompat.java
new file mode 100644
index 0000000..609fe16
--- /dev/null
+++ b/java/src/com/android/inputmethod/compat/CharacterCompat.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.compat;
+
+import java.lang.reflect.Method;
+
+public final class CharacterCompat {
+    // Note that Character.isAlphabetic(int), has been introduced in API level 19
+    // (Build.VERSION_CODE.KITKAT).
+    private static final Method METHOD_isAlphabetic = CompatUtils.getMethod(
+            Character.class, "isAlphabetic", int.class);
+
+    private CharacterCompat() {
+        // This utility class is not publicly instantiable.
+    }
+
+    public static boolean isAlphabetic(final int code) {
+        if (METHOD_isAlphabetic != null) {
+            return (Boolean)CompatUtils.invoke(null, false, METHOD_isAlphabetic, code);
+        }
+        switch (Character.getType(code)) {
+        case Character.UPPERCASE_LETTER:
+        case Character.LOWERCASE_LETTER:
+        case Character.TITLECASE_LETTER:
+        case Character.MODIFIER_LETTER:
+        case Character.OTHER_LETTER:
+        case Character.LETTER_NUMBER:
+            return true;
+        default:
+            return false;
+        }
+    }
+}
diff --git a/java/src/com/android/inputmethod/compat/CompatUtils.java b/java/src/com/android/inputmethod/compat/CompatUtils.java
index 6aa2736..5db8019 100644
--- a/java/src/com/android/inputmethod/compat/CompatUtils.java
+++ b/java/src/com/android/inputmethod/compat/CompatUtils.java
@@ -144,7 +144,7 @@
 
         public <T> ToObjectMethodWrapper<T> getMethod(final String name,
                 final T defaultValue, final Class<?>... parameterTypes) {
-            return new ToObjectMethodWrapper<T>(CompatUtils.getMethod(mClass, name, parameterTypes),
+            return new ToObjectMethodWrapper<>(CompatUtils.getMethod(mClass, name, parameterTypes),
                     defaultValue);
         }
 
diff --git a/java/src/com/android/inputmethod/compat/CursorAnchorInfoCompatWrapper.java b/java/src/com/android/inputmethod/compat/CursorAnchorInfoCompatWrapper.java
index 5af3179..01a9e67 100644
--- a/java/src/com/android/inputmethod/compat/CursorAnchorInfoCompatWrapper.java
+++ b/java/src/com/android/inputmethod/compat/CursorAnchorInfoCompatWrapper.java
@@ -16,13 +16,20 @@
 
 package com.android.inputmethod.compat;
 
+import android.annotation.TargetApi;
 import android.graphics.Matrix;
 import android.graphics.RectF;
+import android.os.Build;
+import android.view.inputmethod.CursorAnchorInfo;
 
-import com.android.inputmethod.annotations.UsedForTesting;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 
-@UsedForTesting
-public final class CursorAnchorInfoCompatWrapper {
+/**
+ * A wrapper for {@link CursorAnchorInfo}, which has been introduced in API Level 21. You can use
+ * this wrapper to avoid direct dependency on newly introduced types.
+ */
+public class CursorAnchorInfoCompatWrapper {
 
     /**
      * The insertion marker or character bounds have at least one visible region.
@@ -39,123 +46,140 @@
      */
     public static final int FLAG_IS_RTL = 0x04;
 
-    // Note that CursorAnchorInfo has been introduced in API level XX (Build.VERSION_CODE.LXX).
-    private static final CompatUtils.ClassWrapper sCursorAnchorInfoClass;
-    private static final CompatUtils.ToIntMethodWrapper sGetSelectionStartMethod;
-    private static final CompatUtils.ToIntMethodWrapper sGetSelectionEndMethod;
-    private static final CompatUtils.ToObjectMethodWrapper<RectF> sGetCharacterBoundsMethod;
-    private static final CompatUtils.ToIntMethodWrapper sGetCharacterBoundsFlagsMethod;
-    private static final CompatUtils.ToObjectMethodWrapper<CharSequence> sGetComposingTextMethod;
-    private static final CompatUtils.ToIntMethodWrapper sGetComposingTextStartMethod;
-    private static final CompatUtils.ToFloatMethodWrapper sGetInsertionMarkerBaselineMethod;
-    private static final CompatUtils.ToFloatMethodWrapper sGetInsertionMarkerBottomMethod;
-    private static final CompatUtils.ToFloatMethodWrapper sGetInsertionMarkerHorizontalMethod;
-    private static final CompatUtils.ToFloatMethodWrapper sGetInsertionMarkerTopMethod;
-    private static final CompatUtils.ToObjectMethodWrapper<Matrix> sGetMatrixMethod;
-    private static final CompatUtils.ToIntMethodWrapper sGetInsertionMarkerFlagsMethod;
-
-    private static int INVALID_TEXT_INDEX = -1;
-    static {
-        sCursorAnchorInfoClass = CompatUtils.getClassWrapper(
-                "android.view.inputmethod.CursorAnchorInfo");
-        sGetSelectionStartMethod = sCursorAnchorInfoClass.getPrimitiveMethod(
-                "getSelectionStart", INVALID_TEXT_INDEX);
-        sGetSelectionEndMethod = sCursorAnchorInfoClass.getPrimitiveMethod(
-                "getSelectionEnd", INVALID_TEXT_INDEX);
-        sGetCharacterBoundsMethod = sCursorAnchorInfoClass.getMethod(
-                "getCharacterBounds", (RectF)null, int.class);
-        sGetCharacterBoundsFlagsMethod = sCursorAnchorInfoClass.getPrimitiveMethod(
-                "getCharacterBoundsFlags", 0, int.class);
-        sGetComposingTextMethod = sCursorAnchorInfoClass.getMethod(
-                "getComposingText", (CharSequence)null);
-        sGetComposingTextStartMethod = sCursorAnchorInfoClass.getPrimitiveMethod(
-                "getComposingTextStart", INVALID_TEXT_INDEX);
-        sGetInsertionMarkerBaselineMethod = sCursorAnchorInfoClass.getPrimitiveMethod(
-                "getInsertionMarkerBaseline", 0.0f);
-        sGetInsertionMarkerBottomMethod = sCursorAnchorInfoClass.getPrimitiveMethod(
-                "getInsertionMarkerBottom", 0.0f);
-        sGetInsertionMarkerHorizontalMethod = sCursorAnchorInfoClass.getPrimitiveMethod(
-                "getInsertionMarkerHorizontal", 0.0f);
-        sGetInsertionMarkerTopMethod = sCursorAnchorInfoClass.getPrimitiveMethod(
-                "getInsertionMarkerTop", 0.0f);
-        sGetMatrixMethod = sCursorAnchorInfoClass.getMethod("getMatrix", (Matrix)null);
-        sGetInsertionMarkerFlagsMethod = sCursorAnchorInfoClass.getPrimitiveMethod(
-                "getInsertionMarkerFlags", 0);
+    CursorAnchorInfoCompatWrapper() {
+        // This class is not publicly instantiable.
     }
 
-    @UsedForTesting
-    public boolean isAvailable() {
-        return sCursorAnchorInfoClass.exists() && mInstance != null;
-    }
-
-    private Object mInstance;
-
-    private CursorAnchorInfoCompatWrapper(final Object instance) {
-        mInstance = instance;
-    }
-
-    @UsedForTesting
-    public static CursorAnchorInfoCompatWrapper fromObject(final Object instance) {
-        if (!sCursorAnchorInfoClass.exists()) {
-            return new CursorAnchorInfoCompatWrapper(null);
+    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
+    @Nullable
+    public static CursorAnchorInfoCompatWrapper wrap(@Nullable final CursorAnchorInfo instance) {
+        if (BuildCompatUtils.EFFECTIVE_SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
+            return null;
         }
-        return new CursorAnchorInfoCompatWrapper(instance);
-    }
-
-    private static final class FakeHolder {
-        static CursorAnchorInfoCompatWrapper sInstance = new CursorAnchorInfoCompatWrapper(null);
-    }
-
-    @UsedForTesting
-    public static CursorAnchorInfoCompatWrapper getFake() {
-        return FakeHolder.sInstance;
+        if (instance == null) {
+            return null;
+        }
+        return new RealWrapper(instance);
     }
 
     public int getSelectionStart() {
-        return sGetSelectionStartMethod.invoke(mInstance);
+        throw new UnsupportedOperationException("not supported.");
     }
 
     public int getSelectionEnd() {
-        return sGetSelectionEndMethod.invoke(mInstance);
+        throw new UnsupportedOperationException("not supported.");
     }
 
     public CharSequence getComposingText() {
-        return sGetComposingTextMethod.invoke(mInstance);
+        throw new UnsupportedOperationException("not supported.");
     }
 
     public int getComposingTextStart() {
-        return sGetComposingTextStartMethod.invoke(mInstance);
+        throw new UnsupportedOperationException("not supported.");
     }
 
     public Matrix getMatrix() {
-        return sGetMatrixMethod.invoke(mInstance);
+        throw new UnsupportedOperationException("not supported.");
     }
 
+    @SuppressWarnings("unused")
     public RectF getCharacterBounds(final int index) {
-        return sGetCharacterBoundsMethod.invoke(mInstance, index);
+        throw new UnsupportedOperationException("not supported.");
     }
 
+    @SuppressWarnings("unused")
     public int getCharacterBoundsFlags(final int index) {
-        return sGetCharacterBoundsFlagsMethod.invoke(mInstance, index);
+        throw new UnsupportedOperationException("not supported.");
     }
 
     public float getInsertionMarkerBaseline() {
-        return sGetInsertionMarkerBaselineMethod.invoke(mInstance);
+        throw new UnsupportedOperationException("not supported.");
     }
 
     public float getInsertionMarkerBottom() {
-        return sGetInsertionMarkerBottomMethod.invoke(mInstance);
+        throw new UnsupportedOperationException("not supported.");
     }
 
     public float getInsertionMarkerHorizontal() {
-        return sGetInsertionMarkerHorizontalMethod.invoke(mInstance);
+        throw new UnsupportedOperationException("not supported.");
     }
 
     public float getInsertionMarkerTop() {
-        return sGetInsertionMarkerTopMethod.invoke(mInstance);
+        throw new UnsupportedOperationException("not supported.");
     }
 
     public int getInsertionMarkerFlags() {
-        return sGetInsertionMarkerFlagsMethod.invoke(mInstance);
+        throw new UnsupportedOperationException("not supported.");
+    }
+
+    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
+    private static final class RealWrapper extends CursorAnchorInfoCompatWrapper {
+
+        @Nonnull
+        private final CursorAnchorInfo mInstance;
+
+        public RealWrapper(@Nonnull final CursorAnchorInfo info) {
+            mInstance = info;
+        }
+
+        @Override
+        public int getSelectionStart() {
+            return mInstance.getSelectionStart();
+        }
+
+        @Override
+        public int getSelectionEnd() {
+            return mInstance.getSelectionEnd();
+        }
+
+        @Override
+        public CharSequence getComposingText() {
+            return mInstance.getComposingText();
+        }
+
+        @Override
+        public int getComposingTextStart() {
+            return mInstance.getComposingTextStart();
+        }
+
+        @Override
+        public Matrix getMatrix() {
+            return mInstance.getMatrix();
+        }
+
+        @Override
+        public RectF getCharacterBounds(final int index) {
+            return mInstance.getCharacterBounds(index);
+        }
+
+        @Override
+        public int getCharacterBoundsFlags(final int index) {
+            return mInstance.getCharacterBoundsFlags(index);
+        }
+
+        @Override
+        public float getInsertionMarkerBaseline() {
+            return mInstance.getInsertionMarkerBaseline();
+        }
+
+        @Override
+        public float getInsertionMarkerBottom() {
+            return mInstance.getInsertionMarkerBottom();
+        }
+
+        @Override
+        public float getInsertionMarkerHorizontal() {
+            return mInstance.getInsertionMarkerHorizontal();
+        }
+
+        @Override
+        public float getInsertionMarkerTop() {
+            return mInstance.getInsertionMarkerTop();
+        }
+
+        @Override
+        public int getInsertionMarkerFlags() {
+            return mInstance.getInsertionMarkerFlags();
+        }
     }
 }
diff --git a/java/src/com/android/inputmethod/compat/InputMethodSubtypeCompatUtils.java b/java/src/com/android/inputmethod/compat/InputMethodSubtypeCompatUtils.java
index 3658672..58ad4bd 100644
--- a/java/src/com/android/inputmethod/compat/InputMethodSubtypeCompatUtils.java
+++ b/java/src/com/android/inputmethod/compat/InputMethodSubtypeCompatUtils.java
@@ -20,11 +20,14 @@
 import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.annotations.UsedForTesting;
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.RichInputMethodSubtype;
+import com.android.inputmethod.latin.common.Constants;
 
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Method;
 
+import javax.annotation.Nonnull;
+
 public final class InputMethodSubtypeCompatUtils {
     private static final String TAG = InputMethodSubtypeCompatUtils.class.getSimpleName();
     // Note that InputMethodSubtype(int nameId, int iconId, String locale, String mode,
@@ -51,6 +54,8 @@
         // This utility class is not publicly instantiable.
     }
 
+    @SuppressWarnings("deprecation")
+    @Nonnull
     public static InputMethodSubtype newInputMethodSubtype(int nameId, int iconId, String locale,
             String mode, String extraValue, boolean isAuxiliary,
             boolean overridesImplicitlyEnabledSubtype, int id) {
@@ -64,6 +69,10 @@
                 overridesImplicitlyEnabledSubtype, id);
     }
 
+    public static boolean isAsciiCapable(final RichInputMethodSubtype subtype) {
+        return isAsciiCapable(subtype.getRawSubtype());
+    }
+
     public static boolean isAsciiCapable(final InputMethodSubtype subtype) {
         return isAsciiCapableWithAPI(subtype)
                 || subtype.containsExtraValueKey(Constants.Subtype.ExtraValue.ASCII_CAPABLE);
diff --git a/java/src/com/android/inputmethod/compat/LocaleSpanCompatUtils.java b/java/src/com/android/inputmethod/compat/LocaleSpanCompatUtils.java
index f411f18..58e5a36 100644
--- a/java/src/com/android/inputmethod/compat/LocaleSpanCompatUtils.java
+++ b/java/src/com/android/inputmethod/compat/LocaleSpanCompatUtils.java
@@ -17,6 +17,7 @@
 package com.android.inputmethod.compat;
 
 import android.text.Spannable;
+import android.text.Spanned;
 import android.text.style.LocaleSpan;
 import android.util.Log;
 
@@ -127,13 +128,13 @@
             final int spanFlag = spannable.getSpanFlags(existingLocaleSpan);
             if (spanStart < newStart) {
                 newStart = spanStart;
-                isStartExclusive = ((spanFlag & Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) ==
-                        Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+                isStartExclusive = ((spanFlag & Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) ==
+                        Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
             }
             if (newEnd < spanEnd) {
                 newEnd = spanEnd;
-                isEndExclusive = ((spanFlag & Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) ==
-                        Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+                isEndExclusive = ((spanFlag & Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) ==
+                        Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
             }
             existingLocaleSpansToBeMerged.add(existingLocaleSpan);
         }
@@ -201,24 +202,17 @@
 
     private static int getSpanFlag(final int originalFlag,
             final boolean isStartExclusive, final boolean isEndExclusive) {
-        return (originalFlag & ~Spannable.SPAN_POINT_MARK_MASK) |
+        return (originalFlag & ~Spanned.SPAN_POINT_MARK_MASK) |
                 getSpanPointMarkFlag(isStartExclusive, isEndExclusive);
     }
 
     private static int getSpanPointMarkFlag(final boolean isStartExclusive,
             final boolean isEndExclusive) {
         if (isStartExclusive) {
-            if (isEndExclusive) {
-                return Spannable.SPAN_EXCLUSIVE_EXCLUSIVE;
-            } else {
-                return Spannable.SPAN_EXCLUSIVE_INCLUSIVE;
-            }
-        } else {
-            if (isEndExclusive) {
-                return Spannable.SPAN_INCLUSIVE_EXCLUSIVE;
-            } else {
-                return Spannable.SPAN_INCLUSIVE_INCLUSIVE;
-            }
+            return isEndExclusive ? Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
+                    : Spanned.SPAN_EXCLUSIVE_INCLUSIVE;
         }
+        return isEndExclusive ? Spanned.SPAN_INCLUSIVE_EXCLUSIVE
+                : Spanned.SPAN_INCLUSIVE_INCLUSIVE;
     }
 }
diff --git a/java/src/com/android/inputmethod/compat/NotificationCompatUtils.java b/java/src/com/android/inputmethod/compat/NotificationCompatUtils.java
index eb18007..70ab972 100644
--- a/java/src/com/android/inputmethod/compat/NotificationCompatUtils.java
+++ b/java/src/com/android/inputmethod/compat/NotificationCompatUtils.java
@@ -71,13 +71,13 @@
         CompatUtils.invoke(builder, null, METHOD_setPriority, PRIORITY_LOW);
     }
 
+    @SuppressWarnings("deprecation")
     public static Notification build(final Notification.Builder builder) {
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
             // #build was added in API level 16, JELLY_BEAN
             return (Notification) CompatUtils.invoke(builder, null, METHOD_build);
-        } else {
-            // #getNotification was deprecated in API level 16, JELLY_BEAN
-            return builder.getNotification();
         }
+        // #getNotification was deprecated in API level 16, JELLY_BEAN
+        return builder.getNotification();
     }
 }
diff --git a/java/src/com/android/inputmethod/compat/SuggestionSpanUtils.java b/java/src/com/android/inputmethod/compat/SuggestionSpanUtils.java
index c33c015..4d2925d 100644
--- a/java/src/com/android/inputmethod/compat/SuggestionSpanUtils.java
+++ b/java/src/com/android/inputmethod/compat/SuggestionSpanUtils.java
@@ -23,13 +23,17 @@
 import android.text.TextUtils;
 import android.text.style.SuggestionSpan;
 
+import com.android.inputmethod.annotations.UsedForTesting;
 import com.android.inputmethod.latin.SuggestedWords;
 import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
+import com.android.inputmethod.latin.common.LocaleUtils;
 import com.android.inputmethod.latin.define.DebugFlags;
-import com.android.inputmethod.latin.SuggestionSpanPickedNotificationReceiver;
 
 import java.lang.reflect.Field;
 import java.util.ArrayList;
+import java.util.Locale;
+
+import javax.annotation.Nullable;
 
 public final class SuggestionSpanUtils {
     // Note that SuggestionSpan.FLAG_AUTO_CORRECTION has been introduced
@@ -51,20 +55,22 @@
         // This utility class is not publicly instantiable.
     }
 
+    @UsedForTesting
     public static CharSequence getTextWithAutoCorrectionIndicatorUnderline(
             final Context context, final String text) {
         if (TextUtils.isEmpty(text) || OBJ_FLAG_AUTO_CORRECTION == null) {
             return text;
         }
         final Spannable spannable = new SpannableString(text);
+        // TODO: Set locale if it is feasible.
         final SuggestionSpan suggestionSpan = new SuggestionSpan(context, null /* locale */,
-                new String[] {} /* suggestions */, OBJ_FLAG_AUTO_CORRECTION,
-                SuggestionSpanPickedNotificationReceiver.class);
+                new String[] {} /* suggestions */, OBJ_FLAG_AUTO_CORRECTION, null);
         spannable.setSpan(suggestionSpan, 0, text.length(),
                 Spanned.SPAN_EXCLUSIVE_EXCLUSIVE | Spanned.SPAN_COMPOSING);
         return spannable;
     }
 
+    @UsedForTesting
     public static CharSequence getTextWithSuggestionSpan(final Context context,
             final String pickedWord, final SuggestedWords suggestedWords) {
         if (TextUtils.isEmpty(pickedWord) || suggestedWords.isEmpty()
@@ -86,11 +92,31 @@
                 suggestionsList.add(word.toString());
             }
         }
+        // TODO: Set locale if it is feasible.
         final SuggestionSpan suggestionSpan = new SuggestionSpan(context, null /* locale */,
-                suggestionsList.toArray(new String[suggestionsList.size()]), 0 /* flags */,
-                SuggestionSpanPickedNotificationReceiver.class);
+                suggestionsList.toArray(new String[suggestionsList.size()]), 0 /* flags */, null);
         final Spannable spannable = new SpannableString(pickedWord);
         spannable.setSpan(suggestionSpan, 0, pickedWord.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
         return spannable;
     }
+
+    /**
+     * Returns first {@link Locale} found in the given array of {@link SuggestionSpan}.
+     * @param suggestionSpans the array of {@link SuggestionSpan} to be examined.
+     * @return the first {@link Locale} found in {@code suggestionSpans}. {@code null} when not
+     * found.
+     */
+    @UsedForTesting
+    @Nullable
+    public static Locale findFirstLocaleFromSuggestionSpans(
+            final SuggestionSpan[] suggestionSpans) {
+        for (final SuggestionSpan suggestionSpan : suggestionSpans) {
+            final String localeString = suggestionSpan.getLocale();
+            if (TextUtils.isEmpty(localeString)) {
+                continue;
+            }
+            return LocaleUtils.constructLocaleFromString(localeString);
+        }
+        return null;
+    }
 }
diff --git a/java/src/com/android/inputmethod/compat/UserDictionaryCompatUtils.java b/java/src/com/android/inputmethod/compat/UserDictionaryCompatUtils.java
deleted file mode 100644
index 1fb597b..0000000
--- a/java/src/com/android/inputmethod/compat/UserDictionaryCompatUtils.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.compat;
-
-import android.content.Context;
-import android.provider.UserDictionary.Words;
-
-import java.lang.reflect.Method;
-import java.util.Locale;
-
-public final class UserDictionaryCompatUtils {
-    // UserDictionary.Words#addWord(Context, String, int, String, Locale) was introduced
-    // in API level 16 (Build.VERSION_CODES.JELLY_BEAN).
-    private static final Method METHOD_addWord = CompatUtils.getMethod(Words.class, "addWord",
-            Context.class, String.class, int.class, String.class, Locale.class);
-
-    @SuppressWarnings("deprecation")
-    public static void addWord(final Context context, final String word,
-            final int freq, final String shortcut, final Locale locale) {
-        if (hasNewerAddWord()) {
-            CompatUtils.invoke(Words.class, null, METHOD_addWord, context, word, freq, shortcut,
-                    locale);
-        } else {
-            // Fall back to the pre-JellyBean method.
-            final int localeType;
-            if (null == locale) {
-                localeType = Words.LOCALE_TYPE_ALL;
-            } else {
-                final Locale currentLocale = context.getResources().getConfiguration().locale;
-                if (locale.equals(currentLocale)) {
-                    localeType = Words.LOCALE_TYPE_CURRENT;
-                } else {
-                    localeType = Words.LOCALE_TYPE_ALL;
-                }
-            }
-            Words.addWord(context, word, freq, localeType);
-        }
-    }
-
-    public static final boolean hasNewerAddWord() {
-        return null != METHOD_addWord;
-    }
-}
diff --git a/java/src/com/android/inputmethod/compat/ViewCompatUtils.java b/java/src/com/android/inputmethod/compat/ViewCompatUtils.java
index 0f00be1..16260ab 100644
--- a/java/src/com/android/inputmethod/compat/ViewCompatUtils.java
+++ b/java/src/com/android/inputmethod/compat/ViewCompatUtils.java
@@ -31,9 +31,6 @@
     private static final Method METHOD_setPaddingRelative = CompatUtils.getMethod(
             View.class, "setPaddingRelative",
             int.class, int.class, int.class, int.class);
-    // Note that View.setElevation(float) has been introduced in API level 21.
-    private static final Method METHOD_setElevation = CompatUtils.getMethod(
-            View.class, "setElevation", float.class);
     // Note that View.setTextAlignment(int) has been introduced in API level 17.
     private static final Method METHOD_setTextAlignment = CompatUtils.getMethod(
             View.class, "setTextAlignment", int.class);
@@ -58,10 +55,6 @@
         CompatUtils.invoke(view, null, METHOD_setPaddingRelative, start, top, end, bottom);
     }
 
-    public static void setElevation(final View view, final float elevation) {
-        CompatUtils.invoke(view, null, METHOD_setElevation, elevation);
-    }
-
     // These TEXT_ALIGNMENT_* constants have been introduced in API 17.
     public static final int TEXT_ALIGNMENT_INHERIT = 0;
     public static final int TEXT_ALIGNMENT_GRAVITY = 1;
diff --git a/java/src/com/android/inputmethod/compat/ViewOutlineProviderCompatUtils.java b/java/src/com/android/inputmethod/compat/ViewOutlineProviderCompatUtils.java
new file mode 100644
index 0000000..0c8e5b7
--- /dev/null
+++ b/java/src/com/android/inputmethod/compat/ViewOutlineProviderCompatUtils.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.compat;
+
+import android.inputmethodservice.InputMethodService;
+import android.os.Build;
+import android.view.View;
+
+public class ViewOutlineProviderCompatUtils {
+    private ViewOutlineProviderCompatUtils() {
+        // This utility class is not publicly instantiable.
+    }
+
+    public interface InsetsUpdater {
+        public void setInsets(final InputMethodService.Insets insets);
+    }
+
+    private static final InsetsUpdater EMPTY_INSETS_UPDATER = new InsetsUpdater() {
+        @Override
+        public void setInsets(final InputMethodService.Insets insets) {}
+    };
+
+    public static InsetsUpdater setInsetsOutlineProvider(final View view) {
+        if (BuildCompatUtils.EFFECTIVE_SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
+            return EMPTY_INSETS_UPDATER;
+        }
+        return ViewOutlineProviderCompatUtilsLXX.setInsetsOutlineProvider(view);
+    }
+}
diff --git a/java/src/com/android/inputmethod/compat/ViewOutlineProviderCompatUtilsLXX.java b/java/src/com/android/inputmethod/compat/ViewOutlineProviderCompatUtilsLXX.java
new file mode 100644
index 0000000..5bbb5ce
--- /dev/null
+++ b/java/src/com/android/inputmethod/compat/ViewOutlineProviderCompatUtilsLXX.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.compat;
+
+import android.annotation.TargetApi;
+import android.graphics.Outline;
+import android.inputmethodservice.InputMethodService;
+import android.os.Build;
+import android.view.View;
+import android.view.ViewOutlineProvider;
+
+import com.android.inputmethod.compat.ViewOutlineProviderCompatUtils.InsetsUpdater;
+
+@TargetApi(Build.VERSION_CODES.LOLLIPOP)
+class ViewOutlineProviderCompatUtilsLXX {
+    private ViewOutlineProviderCompatUtilsLXX() {
+        // This utility class is not publicly instantiable.
+    }
+
+    static InsetsUpdater setInsetsOutlineProvider(final View view) {
+        final InsetsOutlineProvider provider = new InsetsOutlineProvider(view);
+        view.setOutlineProvider(provider);
+        return provider;
+    }
+
+    private static class InsetsOutlineProvider extends ViewOutlineProvider
+            implements InsetsUpdater {
+        private final View mView;
+        private static final int NO_DATA = -1;
+        private int mLastVisibleTopInsets = NO_DATA;
+
+        public InsetsOutlineProvider(final View view) {
+            mView = view;
+            view.setOutlineProvider(this);
+        }
+
+        @Override
+        public void setInsets(final InputMethodService.Insets insets) {
+            final int visibleTopInsets = insets.visibleTopInsets;
+            if (mLastVisibleTopInsets != visibleTopInsets) {
+                mLastVisibleTopInsets = visibleTopInsets;
+                mView.invalidateOutline();
+            }
+        }
+
+        @Override
+        public void getOutline(final View view, final Outline outline) {
+            if (mLastVisibleTopInsets == NO_DATA) {
+                // Call default implementation.
+                ViewOutlineProvider.BACKGROUND.getOutline(view, outline);
+                return;
+            }
+            // TODO: Revisit this when floating/resize keyboard is supported.
+            outline.setRect(
+                    view.getLeft(), mLastVisibleTopInsets, view.getRight(), view.getBottom());
+        }
+    }
+}
diff --git a/java/src/com/android/inputmethod/dictionarypack/ActionBatch.java b/java/src/com/android/inputmethod/dictionarypack/ActionBatch.java
index 3d294ac..ee142d8 100644
--- a/java/src/com/android/inputmethod/dictionarypack/ActionBatch.java
+++ b/java/src/com/android/inputmethod/dictionarypack/ActionBatch.java
@@ -120,9 +120,10 @@
             if (MetadataDbHelper.STATUS_DOWNLOADING == status) {
                 // The word list is still downloading. Cancel the download and revert the
                 // word list status to "available".
-                 manager.remove(values.getAsLong(MetadataDbHelper.PENDINGID_COLUMN));
+                manager.remove(values.getAsLong(MetadataDbHelper.PENDINGID_COLUMN));
                 MetadataDbHelper.markEntryAsAvailable(db, mWordList.mId, mWordList.mVersion);
-            } else if (MetadataDbHelper.STATUS_AVAILABLE != status) {
+            } else if (MetadataDbHelper.STATUS_AVAILABLE != status
+                    && MetadataDbHelper.STATUS_RETRYING != status) {
                 // Should never happen
                 Log.e(TAG, "Unexpected state of the word list '" + mWordList.mId + "' : " + status
                         + " for an upgrade action. Fall back to download.");
@@ -171,6 +172,8 @@
 
             final long downloadId = UpdateHandler.registerDownloadRequest(manager, request, db,
                     mWordList.mId, mWordList.mVersion);
+            Log.i(TAG, String.format("Starting the dictionary download with version:"
+                            + " %d and Url: %s", mWordList.mVersion, uri));
             DebugLogUtils.l("Starting download of", uri, "with id", downloadId);
             PrivateLog.log("Starting download of " + uri + ", id : " + downloadId);
         }
@@ -325,8 +328,8 @@
                     mWordList.mId, mWordList.mLocale, mWordList.mDescription,
                     null == mWordList.mLocalFilename ? "" : mWordList.mLocalFilename,
                     mWordList.mRemoteFilename, mWordList.mLastUpdate, mWordList.mRawChecksum,
-                    mWordList.mChecksum, mWordList.mFileSize, mWordList.mVersion,
-                    mWordList.mFormatVersion);
+                    mWordList.mChecksum, mWordList.mRetryCount, mWordList.mFileSize,
+                    mWordList.mVersion, mWordList.mFormatVersion);
             PrivateLog.log("Insert 'available' record for " + mWordList.mDescription
                     + " and locale " + mWordList.mLocale);
             db.insert(MetadataDbHelper.METADATA_TABLE_NAME, null, values);
@@ -374,9 +377,9 @@
             final ContentValues values = MetadataDbHelper.makeContentValues(0,
                     MetadataDbHelper.TYPE_BULK, MetadataDbHelper.STATUS_INSTALLED,
                     mWordList.mId, mWordList.mLocale, mWordList.mDescription,
-                    "", mWordList.mRemoteFilename, mWordList.mLastUpdate, mWordList.mRawChecksum,
-                    mWordList.mChecksum, mWordList.mFileSize, mWordList.mVersion,
-                    mWordList.mFormatVersion);
+                    "", mWordList.mRemoteFilename, mWordList.mLastUpdate,
+                    mWordList.mRawChecksum, mWordList.mChecksum, mWordList.mRetryCount,
+                    mWordList.mFileSize, mWordList.mVersion, mWordList.mFormatVersion);
             PrivateLog.log("Insert 'preinstalled' record for " + mWordList.mDescription
                     + " and locale " + mWordList.mLocale);
             db.insert(MetadataDbHelper.METADATA_TABLE_NAME, null, values);
@@ -417,8 +420,8 @@
                     mWordList.mId, mWordList.mLocale, mWordList.mDescription,
                     oldValues.getAsString(MetadataDbHelper.LOCAL_FILENAME_COLUMN),
                     mWordList.mRemoteFilename, mWordList.mLastUpdate, mWordList.mRawChecksum,
-                    mWordList.mChecksum, mWordList.mFileSize, mWordList.mVersion,
-                    mWordList.mFormatVersion);
+                    mWordList.mChecksum, mWordList.mRetryCount, mWordList.mFileSize,
+                    mWordList.mVersion, mWordList.mFormatVersion);
             PrivateLog.log("Updating record for " + mWordList.mDescription
                     + " and locale " + mWordList.mLocale);
             db.update(MetadataDbHelper.METADATA_TABLE_NAME, values,
diff --git a/java/src/com/android/inputmethod/dictionarypack/ButtonSwitcher.java b/java/src/com/android/inputmethod/dictionarypack/ButtonSwitcher.java
index 6d6c8f5..0fa72c3 100644
--- a/java/src/com/android/inputmethod/dictionarypack/ButtonSwitcher.java
+++ b/java/src/com/android/inputmethod/dictionarypack/ButtonSwitcher.java
@@ -122,19 +122,23 @@
         mDeleteButton.setTranslationX(STATUS_DELETE == status ? 0 : width);
     }
 
+    // The helper method for {@link AnimatorListenerAdapter}.
+    void animateButtonIfStatusIsEqual(final View newButton, final int newStatus) {
+        if (newStatus != mStatus) return;
+        animateButton(newButton, ANIMATION_IN);
+    }
+
     private void animateButtonPosition(final int oldStatus, final int newStatus) {
         final View oldButton = getButton(oldStatus);
         final View newButton = getButton(newStatus);
         if (null != oldButton && null != newButton) {
             // Transition between two buttons : animate out, then in
-            animateButton(oldButton, ANIMATION_OUT).setListener(
-                    new AnimatorListenerAdapter() {
-                        @Override
-                        public void onAnimationEnd(final Animator animation) {
-                            if (newStatus != mStatus) return;
-                            animateButton(newButton, ANIMATION_IN);
-                        }
-                    });
+            animateButton(oldButton, ANIMATION_OUT).setListener(new AnimatorListenerAdapter() {
+                @Override
+                public void onAnimationEnd(final Animator animation) {
+                    animateButtonIfStatusIsEqual(newButton, newStatus);
+                }
+            });
         } else if (null != oldButton) {
             animateButton(oldButton, ANIMATION_OUT);
         } else if (null != newButton) {
@@ -159,9 +163,8 @@
         if (ANIMATION_IN == direction) {
             button.setClickable(true);
             return button.animate().translationX(0);
-        } else {
-            button.setClickable(false);
-            return button.animate().translationX(outerX - innerX);
         }
+        button.setClickable(false);
+        return button.animate().translationX(outerX - innerX);
     }
 }
diff --git a/java/src/com/android/inputmethod/dictionarypack/CommonPreferences.java b/java/src/com/android/inputmethod/dictionarypack/CommonPreferences.java
index 3d0e29e..3cd822a 100644
--- a/java/src/com/android/inputmethod/dictionarypack/CommonPreferences.java
+++ b/java/src/com/android/inputmethod/dictionarypack/CommonPreferences.java
@@ -22,6 +22,8 @@
 public final class CommonPreferences {
     private static final String COMMON_PREFERENCES_NAME = "LatinImeDictPrefs";
 
+    public static final String PREF_FORCE_DOWNLOAD_DICT = "pref_key_force_download_dict";
+
     public static SharedPreferences getCommonPreferences(final Context context) {
         return context.getSharedPreferences(COMMON_PREFERENCES_NAME, 0);
     }
@@ -37,4 +39,14 @@
         editor.putBoolean(id, false);
         editor.apply();
     }
+
+    public static boolean isForceDownloadDict(Context context) {
+        return getCommonPreferences(context).getBoolean(PREF_FORCE_DOWNLOAD_DICT, false);
+    }
+
+    public static void setForceDownloadDict(Context context, boolean forceDownload) {
+        SharedPreferences.Editor editor = getCommonPreferences(context).edit();
+        editor.putBoolean(PREF_FORCE_DOWNLOAD_DICT, forceDownload);
+        editor.apply();
+    }
 }
diff --git a/java/src/com/android/inputmethod/dictionarypack/DictionaryDownloadProgressBar.java b/java/src/com/android/inputmethod/dictionarypack/DictionaryDownloadProgressBar.java
index 1d84e58..7598520 100644
--- a/java/src/com/android/inputmethod/dictionarypack/DictionaryDownloadProgressBar.java
+++ b/java/src/com/android/inputmethod/dictionarypack/DictionaryDownloadProgressBar.java
@@ -148,7 +148,7 @@
             }
         }
 
-        private class UpdateHelper implements Runnable {
+        class UpdateHelper implements Runnable {
             private int mProgress;
             @Override
             public void run() {
diff --git a/java/src/com/android/inputmethod/dictionarypack/DictionaryListInterfaceState.java b/java/src/com/android/inputmethod/dictionarypack/DictionaryListInterfaceState.java
index 8e02617..836340a 100644
--- a/java/src/com/android/inputmethod/dictionarypack/DictionaryListInterfaceState.java
+++ b/java/src/com/android/inputmethod/dictionarypack/DictionaryListInterfaceState.java
@@ -32,7 +32,7 @@
  * in case some dictionaries appeared, disappeared, changed states etc.
  */
 public class DictionaryListInterfaceState {
-    private static class State {
+    static class State {
         public boolean mOpen = false;
         public int mStatus = MetadataDbHelper.STATUS_UNKNOWN;
     }
diff --git a/java/src/com/android/inputmethod/dictionarypack/DictionaryProvider.java b/java/src/com/android/inputmethod/dictionarypack/DictionaryProvider.java
index f5bd84c..659fe5c 100644
--- a/java/src/com/android/inputmethod/dictionarypack/DictionaryProvider.java
+++ b/java/src/com/android/inputmethod/dictionarypack/DictionaryProvider.java
@@ -31,6 +31,7 @@
 import android.util.Log;
 
 import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.common.LocaleUtils;
 import com.android.inputmethod.latin.utils.DebugLogUtils;
 
 import java.io.File;
@@ -255,10 +256,9 @@
                 if (null != dictFiles && dictFiles.size() > 0) {
                     PrivateLog.log("Returned " + dictFiles.size() + " files");
                     return new ResourcePathCursor(dictFiles);
-                } else {
-                    PrivateLog.log("No dictionary files for this URL");
-                    return new ResourcePathCursor(Collections.<WordListInfo>emptyList());
                 }
+                PrivateLog.log("No dictionary files for this URL");
+                return new ResourcePathCursor(Collections.<WordListInfo>emptyList());
             // V2_METADATA and V2_DATAFILE are not supported for query()
             default:
                 return null;
@@ -319,14 +319,13 @@
                 final AssetFileDescriptor afd = getContext().getResources().openRawResourceFd(
                         R.raw.empty);
                 return afd;
-            } else {
-                final String localFilename =
-                        wordList.getAsString(MetadataDbHelper.LOCAL_FILENAME_COLUMN);
-                final File f = getContext().getFileStreamPath(localFilename);
-                final ParcelFileDescriptor pfd =
-                        ParcelFileDescriptor.open(f, ParcelFileDescriptor.MODE_READ_ONLY);
-                return new AssetFileDescriptor(pfd, 0, pfd.getStatSize());
             }
+            final String localFilename =
+                    wordList.getAsString(MetadataDbHelper.LOCAL_FILENAME_COLUMN);
+            final File f = getContext().getFileStreamPath(localFilename);
+            final ParcelFileDescriptor pfd =
+                    ParcelFileDescriptor.open(f, ParcelFileDescriptor.MODE_READ_ONLY);
+            return new AssetFileDescriptor(pfd, 0, pfd.getStatSize());
         } catch (FileNotFoundException e) {
             // No file : fall through and return null
         }
@@ -461,30 +460,32 @@
         final String wordlistId = uri.getLastPathSegment();
         final String clientId = getClientId(uri);
         final ContentValues wordList = getWordlistMetadataForWordlistId(clientId, wordlistId);
-        if (null == wordList) return 0;
+        if (null == wordList) {
+            return 0;
+        }
         final int status = wordList.getAsInteger(MetadataDbHelper.STATUS_COLUMN);
         final int version = wordList.getAsInteger(MetadataDbHelper.VERSION_COLUMN);
         if (MetadataDbHelper.STATUS_DELETING == status) {
             UpdateHandler.markAsDeleted(getContext(), clientId, wordlistId, version, status);
             return 1;
-        } else if (MetadataDbHelper.STATUS_INSTALLED == status) {
+        }
+        if (MetadataDbHelper.STATUS_INSTALLED == status) {
             final String result = uri.getQueryParameter(QUERY_PARAMETER_DELETE_RESULT);
             if (QUERY_PARAMETER_FAILURE.equals(result)) {
-                UpdateHandler.markAsBroken(getContext(), clientId, wordlistId, version);
+                if (DEBUG) {
+                    Log.d(TAG,
+                            "Dictionary is broken, attempting to retry download & installation.");
+                }
+                UpdateHandler.markAsBrokenOrRetrying(getContext(), clientId, wordlistId, version);
             }
             final String localFilename =
                     wordList.getAsString(MetadataDbHelper.LOCAL_FILENAME_COLUMN);
             final File f = getContext().getFileStreamPath(localFilename);
             // f.delete() returns true if the file was successfully deleted, false otherwise
-            if (f.delete()) {
-                return 1;
-            } else {
-                return 0;
-            }
-        } else {
-            Log.e(TAG, "Attempt to delete a file whose status is " + status);
-            return 0;
+            return f.delete() ? 1 : 0;
         }
+        Log.e(TAG, "Attempt to delete a file whose status is " + status);
+        return 0;
     }
 
     /**
diff --git a/java/src/com/android/inputmethod/dictionarypack/DictionaryService.java b/java/src/com/android/inputmethod/dictionarypack/DictionaryService.java
index 41916b6..bbdf2a3 100644
--- a/java/src/com/android/inputmethod/dictionarypack/DictionaryService.java
+++ b/java/src/com/android/inputmethod/dictionarypack/DictionaryService.java
@@ -22,9 +22,12 @@
 import android.content.Context;
 import android.content.Intent;
 import android.os.IBinder;
+import android.util.Log;
 import android.widget.Toast;
 
+import com.android.inputmethod.latin.BinaryDictionaryFileDumper;
 import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.common.LocaleUtils;
 
 import java.util.Locale;
 import java.util.Random;
@@ -32,6 +35,8 @@
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 
+import javax.annotation.Nonnull;
+
 /**
  * Service that handles background tasks for the dictionary provider.
  *
@@ -50,6 +55,8 @@
  *     to access, and mark the current state as such.
  */
 public final class DictionaryService extends Service {
+    private static final String TAG = DictionaryService.class.getSimpleName();
+
     /**
      * The package name, to use in the intent actions.
      */
@@ -76,19 +83,29 @@
      * How often, in milliseconds, we want to update the metadata. This is a
      * floor value; actually, it may happen several hours later, or even more.
      */
-    private static final long UPDATE_FREQUENCY = TimeUnit.DAYS.toMillis(4);
+    private static final long UPDATE_FREQUENCY_MILLIS = TimeUnit.DAYS.toMillis(4);
 
     /**
      * We are waked around midnight, local time. We want to wake between midnight and 6 am,
      * roughly. So use a random time between 0 and this delay.
      */
-    private static final int MAX_ALARM_DELAY = (int)TimeUnit.HOURS.toMillis(6);
+    private static final int MAX_ALARM_DELAY_MILLIS = (int)TimeUnit.HOURS.toMillis(6);
 
     /**
      * How long we consider a "very long time". If no update took place in this time,
      * the content provider will trigger an update in the background.
      */
-    private static final long VERY_LONG_TIME = TimeUnit.DAYS.toMillis(14);
+    private static final long VERY_LONG_TIME_MILLIS = TimeUnit.DAYS.toMillis(14);
+
+    /**
+     * After starting a download, how long we wait before considering it may be stuck. After this
+     * period is elapsed, if the keyboard tries to download again, then we cancel and re-register
+     * the request; if it's within this time, we just leave it be.
+     * It's important to note that we do not re-submit the request merely because the time is up.
+     * This is only to decide whether to cancel the old one and re-requesting when the keyboard
+     * fires a new request for the same data.
+     */
+    public static final long NO_CANCEL_DOWNLOAD_PERIOD_MILLIS = TimeUnit.SECONDS.toMillis(30);
 
     /**
      * An executor that serializes tasks given to it.
@@ -145,9 +162,14 @@
             final int startId) {
         final DictionaryService self = this;
         if (SHOW_DOWNLOAD_TOAST_INTENT_ACTION.equals(intent.getAction())) {
-            // This is a UI action, it can't be run in another thread
-            showStartDownloadingToast(this, LocaleUtils.constructLocaleFromString(
-                    intent.getStringExtra(LOCALE_INTENT_ARGUMENT)));
+            final String localeString = intent.getStringExtra(LOCALE_INTENT_ARGUMENT);
+            if (localeString == null) {
+                Log.e(TAG, "Received " + intent.getAction() + " without locale; skipped");
+            } else {
+                // This is a UI action, it can't be run in another thread
+                showStartDownloadingToast(
+                        this, LocaleUtils.constructLocaleFromString(localeString));
+            }
         } else {
             // If it's a command that does not require UI, arrange for the work to be done on a
             // separate thread, so that we can return right away. The executor will spawn a thread
@@ -169,15 +191,28 @@
         return Service.START_REDELIVER_INTENT;
     }
 
-    private static void dispatchBroadcast(final Context context, final Intent intent) {
+    static void dispatchBroadcast(final Context context, final Intent intent) {
         if (DATE_CHANGED_INTENT_ACTION.equals(intent.getAction())) {
+            // Do not force download dictionaries on date change updates.
+            CommonPreferences.setForceDownloadDict(context, false);
             // This happens when the date of the device changes. This normally happens
             // at midnight local time, but it may happen if the user changes the date
             // by hand or something similar happens.
             checkTimeAndMaybeSetupUpdateAlarm(context);
         } else if (DictionaryPackConstants.UPDATE_NOW_INTENT_ACTION.equals(intent.getAction())) {
             // Intent to trigger an update now.
-            UpdateHandler.tryUpdate(context, false);
+            UpdateHandler.tryUpdate(context, CommonPreferences.isForceDownloadDict(context));
+        } else if (DictionaryPackConstants.INIT_AND_UPDATE_NOW_INTENT_ACTION.equals(
+                intent.getAction())) {
+            // Enable force download of dictionaries irrespective of wifi or metered connection.
+            CommonPreferences.setForceDownloadDict(context, true);
+
+            // Initialize the client Db.
+            final String mClientId = context.getString(R.string.dictionary_pack_client_id);
+            BinaryDictionaryFileDumper.initializeClientRecordHelper(context, mClientId);
+
+            // Updates the metadata and the download the dictionaries.
+            UpdateHandler.tryUpdate(context, true);
         } else {
             UpdateHandler.downloadFinished(context, intent);
         }
@@ -188,16 +223,16 @@
      */
     private static void checkTimeAndMaybeSetupUpdateAlarm(final Context context) {
         // Of all clients, if the one that hasn't been updated for the longest
-        // is still more recent than UPDATE_FREQUENCY, do nothing.
-        if (!isLastUpdateAtLeastThisOld(context, UPDATE_FREQUENCY)) return;
+        // is still more recent than UPDATE_FREQUENCY_MILLIS, do nothing.
+        if (!isLastUpdateAtLeastThisOld(context, UPDATE_FREQUENCY_MILLIS)) return;
 
         PrivateLog.log("Date changed - registering alarm");
         AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
 
-        // Best effort to wake between midnight and MAX_ALARM_DELAY in the morning.
+        // Best effort to wake between midnight and MAX_ALARM_DELAY_MILLIS in the morning.
         // It doesn't matter too much if this is very inexact.
         final long now = System.currentTimeMillis();
-        final long alarmTime = now + new Random().nextInt(MAX_ALARM_DELAY);
+        final long alarmTime = now + new Random().nextInt(MAX_ALARM_DELAY_MILLIS);
         final Intent updateIntent = new Intent(DictionaryPackConstants.UPDATE_NOW_INTENT_ACTION);
         final PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0,
                 updateIntent, PendingIntent.FLAG_CANCEL_CURRENT);
@@ -223,18 +258,19 @@
     /**
      * Refreshes data if it hasn't been refreshed in a very long time.
      *
-     * This will check the last update time, and if it's been more than VERY_LONG_TIME,
+     * This will check the last update time, and if it's been more than VERY_LONG_TIME_MILLIS,
      * update metadata now - and possibly take subsequent update actions.
      */
     public static void updateNowIfNotUpdatedInAVeryLongTime(final Context context) {
-        if (!isLastUpdateAtLeastThisOld(context, VERY_LONG_TIME)) return;
-        UpdateHandler.tryUpdate(context, false);
+        if (!isLastUpdateAtLeastThisOld(context, VERY_LONG_TIME_MILLIS)) return;
+        UpdateHandler.tryUpdate(context, CommonPreferences.isForceDownloadDict(context));
     }
 
     /**
      * Shows a toast informing the user that an automatic dictionary download is starting.
      */
-    private static void showStartDownloadingToast(final Context context, final Locale locale) {
+    private static void showStartDownloadingToast(final Context context,
+            @Nonnull final Locale locale) {
         final String toastText = String.format(
                 context.getString(R.string.toast_downloading_suggestions),
                 locale.getDisplayName());
diff --git a/java/src/com/android/inputmethod/dictionarypack/DictionarySettingsActivity.java b/java/src/com/android/inputmethod/dictionarypack/DictionarySettingsActivity.java
index 4366348..284032b 100644
--- a/java/src/com/android/inputmethod/dictionarypack/DictionarySettingsActivity.java
+++ b/java/src/com/android/inputmethod/dictionarypack/DictionarySettingsActivity.java
@@ -18,7 +18,9 @@
 
 import com.android.inputmethod.latin.utils.FragmentUtils;
 
+import android.annotation.TargetApi;
 import android.content.Intent;
+import android.os.Build;
 import android.os.Bundle;
 import android.preference.PreferenceActivity;
 
@@ -44,8 +46,8 @@
         return modIntent;
     }
 
-    // TODO: Uncomment the override annotation once we start using SDK version 19.
-    // @Override
+    @TargetApi(Build.VERSION_CODES.KITKAT)
+    @Override
     public boolean isValidFragment(String fragmentName) {
         return FragmentUtils.isValidFragment(fragmentName);
     }
diff --git a/java/src/com/android/inputmethod/dictionarypack/DictionarySettingsFragment.java b/java/src/com/android/inputmethod/dictionarypack/DictionarySettingsFragment.java
index 11982fa..88ea4e6 100644
--- a/java/src/com/android/inputmethod/dictionarypack/DictionarySettingsFragment.java
+++ b/java/src/com/android/inputmethod/dictionarypack/DictionarySettingsFragment.java
@@ -16,6 +16,8 @@
 
 package com.android.inputmethod.dictionarypack;
 
+import com.android.inputmethod.latin.common.LocaleUtils;
+
 import android.app.Activity;
 import android.content.BroadcastReceiver;
 import android.content.ContentResolver;
@@ -26,12 +28,12 @@
 import android.net.ConnectivityManager;
 import android.net.NetworkInfo;
 import android.net.Uri;
+import android.os.AsyncTask;
 import android.os.Bundle;
 import android.preference.Preference;
 import android.preference.PreferenceFragment;
 import android.preference.PreferenceGroup;
 import android.text.TextUtils;
-import android.text.format.DateUtils;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.Menu;
@@ -105,16 +107,27 @@
 
     @Override
     public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) {
-        final String metadataUri =
-                MetadataDbHelper.getMetadataUriAsString(getActivity(), mClientId);
-        // We only add the "Refresh" button if we have a non-empty URL to refresh from. If the
-        // URL is empty, of course we can't refresh so it makes no sense to display this.
-        if (!TextUtils.isEmpty(metadataUri)) {
-            mUpdateNowMenu =
-                    menu.add(Menu.NONE, MENU_UPDATE_NOW, 0, R.string.check_for_updates_now);
-            mUpdateNowMenu.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
-            refreshNetworkState();
-        }
+        new AsyncTask<Void, Void, String>() {
+            @Override
+            protected String doInBackground(Void... params) {
+                return MetadataDbHelper.getMetadataUriAsString(getActivity(), mClientId);
+            }
+
+            @Override
+            protected void onPostExecute(String metadataUri) {
+                // We only add the "Refresh" button if we have a non-empty URL to refresh from. If
+                // the URL is empty, of course we can't refresh so it makes no sense to display
+                // this.
+                if (!TextUtils.isEmpty(metadataUri)) {
+                    if (mUpdateNowMenu == null) {
+                        mUpdateNowMenu = menu.add(Menu.NONE, MENU_UPDATE_NOW, 0,
+                                        R.string.check_for_updates_now);
+                        mUpdateNowMenu.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
+                    }
+                    refreshNetworkState();
+                }
+            }
+        }.execute();
     }
 
     @Override
@@ -123,18 +136,25 @@
         mChangedSettings = false;
         UpdateHandler.registerUpdateEventListener(this);
         final Activity activity = getActivity();
-        if (!MetadataDbHelper.isClientKnown(activity, mClientId)) {
-            Log.i(TAG, "Unknown dictionary pack client: " + mClientId + ". Requesting info.");
-            final Intent unknownClientBroadcast =
-                    new Intent(DictionaryPackConstants.UNKNOWN_DICTIONARY_PROVIDER_CLIENT);
-            unknownClientBroadcast.putExtra(
-                    DictionaryPackConstants.DICTIONARY_PROVIDER_CLIENT_EXTRA, mClientId);
-            activity.sendBroadcast(unknownClientBroadcast);
-        }
         final IntentFilter filter = new IntentFilter();
         filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
         getActivity().registerReceiver(mConnectivityChangedReceiver, filter);
         refreshNetworkState();
+
+        new Thread("onResume") {
+            @Override
+            public void run() {
+                if (!MetadataDbHelper.isClientKnown(activity, mClientId)) {
+                    Log.i(TAG, "Unknown dictionary pack client: " + mClientId
+                            + ". Requesting info.");
+                    final Intent unknownClientBroadcast =
+                            new Intent(DictionaryPackConstants.UNKNOWN_DICTIONARY_PROVIDER_CLIENT);
+                    unknownClientBroadcast.putExtra(
+                            DictionaryPackConstants.DICTIONARY_PROVIDER_CLIENT_EXTRA, mClientId);
+                    activity.sendBroadcast(unknownClientBroadcast);
+                }
+            }
+        }.start();
     }
 
     @Override
@@ -203,25 +223,19 @@
     @Override
     public void updateCycleCompleted() {}
 
-    private void refreshNetworkState() {
+    void refreshNetworkState() {
         NetworkInfo info = mConnectivityManager.getActiveNetworkInfo();
         boolean isConnected = null == info ? false : info.isConnected();
         if (null != mUpdateNowMenu) mUpdateNowMenu.setEnabled(isConnected);
     }
 
-    private void refreshInterface() {
+    void refreshInterface() {
         final Activity activity = getActivity();
         if (null == activity) return;
-        final long lastUpdateDate =
-                MetadataDbHelper.getLastUpdateDateForClient(getActivity(), mClientId);
         final PreferenceGroup prefScreen = getPreferenceScreen();
         final Collection<? extends Preference> prefList =
                 createInstalledDictSettingsCollection(mClientId);
 
-        final String updateNowSummary = getString(R.string.last_update) + " "
-                + DateUtils.formatDateTime(activity, lastUpdateDate,
-                        DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_TIME);
-
         activity.runOnUiThread(new Runnable() {
                 @Override
                 public void run() {
@@ -239,14 +253,14 @@
             });
     }
 
-    private Preference createErrorMessage(final Activity activity, final int messageResource) {
+    private static Preference createErrorMessage(final Activity activity, final int messageResource) {
         final Preference message = new Preference(activity);
         message.setTitle(messageResource);
         message.setEnabled(false);
         return message;
     }
 
-    private void removeAnyDictSettings(final PreferenceGroup prefGroup) {
+    static void removeAnyDictSettings(final PreferenceGroup prefGroup) {
         for (int i = prefGroup.getPreferenceCount() - 1; i >= 0; --i) {
             prefGroup.removePreference(prefGroup.getPreference(i));
         }
@@ -276,7 +290,7 @@
                 .appendQueryParameter(DictionaryProvider.QUERY_PARAMETER_PROTOCOL_VERSION, "2")
                 .build();
         final Activity activity = getActivity();
-        final Cursor cursor = null == activity ? null
+        final Cursor cursor = (null == activity) ? null
                 : activity.getContentResolver().query(contentUri, null, null, null, null);
 
         if (null == cursor) {
@@ -289,61 +303,57 @@
                 final ArrayList<Preference> result = new ArrayList<>();
                 result.add(createErrorMessage(activity, R.string.no_dictionaries_available));
                 return result;
-            } else {
-                final String systemLocaleString = Locale.getDefault().toString();
-                final TreeMap<String, WordListPreference> prefMap = new TreeMap<>();
-                final int idIndex = cursor.getColumnIndex(MetadataDbHelper.WORDLISTID_COLUMN);
-                final int versionIndex = cursor.getColumnIndex(MetadataDbHelper.VERSION_COLUMN);
-                final int localeIndex = cursor.getColumnIndex(MetadataDbHelper.LOCALE_COLUMN);
-                final int descriptionIndex =
-                        cursor.getColumnIndex(MetadataDbHelper.DESCRIPTION_COLUMN);
-                final int statusIndex = cursor.getColumnIndex(MetadataDbHelper.STATUS_COLUMN);
-                final int filesizeIndex = cursor.getColumnIndex(MetadataDbHelper.FILESIZE_COLUMN);
-                do {
-                    final String wordlistId = cursor.getString(idIndex);
-                    final int version = cursor.getInt(versionIndex);
-                    final String localeString = cursor.getString(localeIndex);
-                    final Locale locale = new Locale(localeString);
-                    final String description = cursor.getString(descriptionIndex);
-                    final int status = cursor.getInt(statusIndex);
-                    final int matchLevel =
-                            LocaleUtils.getMatchLevel(systemLocaleString, localeString);
-                    final String matchLevelString =
-                            LocaleUtils.getMatchLevelSortedString(matchLevel);
-                    final int filesize = cursor.getInt(filesizeIndex);
-                    // The key is sorted in lexicographic order, according to the match level, then
-                    // the description.
-                    final String key = matchLevelString + "." + description + "." + wordlistId;
-                    final WordListPreference existingPref = prefMap.get(key);
-                    if (null == existingPref || existingPref.hasPriorityOver(status)) {
-                        final WordListPreference oldPreference = mCurrentPreferenceMap.get(key);
-                        final WordListPreference pref;
-                        if (null != oldPreference
-                                && oldPreference.mVersion == version
-                                && oldPreference.hasStatus(status)
-                                && oldPreference.mLocale.equals(locale)) {
-                            // If the old preference has all the new attributes, reuse it. Ideally,
-                            // we should reuse the old pref even if its status is different and call
-                            // setStatus here, but setStatus calls Preference#setSummary() which
-                            // needs to be done on the UI thread and we're not on the UI thread
-                            // here. We could do all this work on the UI thread, but in this case
-                            // it's probably lighter to stay on a background thread and throw this
-                            // old preference out.
-                            pref = oldPreference;
-                        } else {
-                            // Otherwise, discard it and create a new one instead.
-                            // TODO: when the status is different from the old one, we need to
-                            // animate the old one out before animating the new one in.
-                            pref = new WordListPreference(activity, mDictionaryListInterfaceState,
-                                    mClientId, wordlistId, version, locale, description, status,
-                                    filesize);
-                        }
-                        prefMap.put(key, pref);
-                    }
-                } while (cursor.moveToNext());
-                mCurrentPreferenceMap = prefMap;
-                return prefMap.values();
             }
+            final String systemLocaleString = Locale.getDefault().toString();
+            final TreeMap<String, WordListPreference> prefMap = new TreeMap<>();
+            final int idIndex = cursor.getColumnIndex(MetadataDbHelper.WORDLISTID_COLUMN);
+            final int versionIndex = cursor.getColumnIndex(MetadataDbHelper.VERSION_COLUMN);
+            final int localeIndex = cursor.getColumnIndex(MetadataDbHelper.LOCALE_COLUMN);
+            final int descriptionIndex = cursor.getColumnIndex(MetadataDbHelper.DESCRIPTION_COLUMN);
+            final int statusIndex = cursor.getColumnIndex(MetadataDbHelper.STATUS_COLUMN);
+            final int filesizeIndex = cursor.getColumnIndex(MetadataDbHelper.FILESIZE_COLUMN);
+            do {
+                final String wordlistId = cursor.getString(idIndex);
+                final int version = cursor.getInt(versionIndex);
+                final String localeString = cursor.getString(localeIndex);
+                final Locale locale = new Locale(localeString);
+                final String description = cursor.getString(descriptionIndex);
+                final int status = cursor.getInt(statusIndex);
+                final int matchLevel = LocaleUtils.getMatchLevel(systemLocaleString, localeString);
+                final String matchLevelString = LocaleUtils.getMatchLevelSortedString(matchLevel);
+                final int filesize = cursor.getInt(filesizeIndex);
+                // The key is sorted in lexicographic order, according to the match level, then
+                // the description.
+                final String key = matchLevelString + "." + description + "." + wordlistId;
+                final WordListPreference existingPref = prefMap.get(key);
+                if (null == existingPref || existingPref.hasPriorityOver(status)) {
+                    final WordListPreference oldPreference = mCurrentPreferenceMap.get(key);
+                    final WordListPreference pref;
+                    if (null != oldPreference
+                            && oldPreference.mVersion == version
+                            && oldPreference.hasStatus(status)
+                            && oldPreference.mLocale.equals(locale)) {
+                        // If the old preference has all the new attributes, reuse it. Ideally,
+                        // we should reuse the old pref even if its status is different and call
+                        // setStatus here, but setStatus calls Preference#setSummary() which
+                        // needs to be done on the UI thread and we're not on the UI thread
+                        // here. We could do all this work on the UI thread, but in this case
+                        // it's probably lighter to stay on a background thread and throw this
+                        // old preference out.
+                        pref = oldPreference;
+                    } else {
+                        // Otherwise, discard it and create a new one instead.
+                        // TODO: when the status is different from the old one, we need to
+                        // animate the old one out before animating the new one in.
+                        pref = new WordListPreference(activity, mDictionaryListInterfaceState,
+                                mClientId, wordlistId, version, locale, description, status,
+                                filesize);
+                    }
+                    prefMap.put(key, pref);
+                }
+            } while (cursor.moveToNext());
+            mCurrentPreferenceMap = prefMap;
+            return prefMap.values();
         } finally {
             cursor.close();
         }
@@ -384,8 +394,13 @@
     private void cancelRefresh() {
         UpdateHandler.unregisterUpdateEventListener(this);
         final Context context = getActivity();
-        UpdateHandler.cancelUpdate(context, mClientId);
-        stopLoadingAnimation();
+        new Thread("cancelByHand") {
+            @Override
+            public void run() {
+                UpdateHandler.cancelUpdate(context, mClientId);
+                stopLoadingAnimation();
+            }
+        }.start();
     }
 
     private void startLoadingAnimation() {
@@ -396,26 +411,28 @@
         if (null != mUpdateNowMenu) mUpdateNowMenu.setTitle(R.string.cancel);
     }
 
-    private void stopLoadingAnimation() {
+    void stopLoadingAnimation() {
         final View preferenceView = getView();
         final Activity activity = getActivity();
         if (null == activity) return;
+        final View loadingView = mLoadingView;
+        final MenuItem updateNowMenu = mUpdateNowMenu;
         activity.runOnUiThread(new Runnable() {
-                @Override
-                public void run() {
-                    mLoadingView.setVisibility(View.GONE);
-                    preferenceView.setVisibility(View.VISIBLE);
-                    mLoadingView.startAnimation(AnimationUtils.loadAnimation(
-                            getActivity(), android.R.anim.fade_out));
-                    preferenceView.startAnimation(AnimationUtils.loadAnimation(
-                            getActivity(), android.R.anim.fade_in));
-                    // The menu is created by the framework asynchronously after the activity,
-                    // which means it's possible to have the activity running but the menu not
-                    // created yet - hence the necessity for a null check here.
-                    if (null != mUpdateNowMenu) {
-                        mUpdateNowMenu.setTitle(R.string.check_for_updates_now);
-                    }
+            @Override
+            public void run() {
+                loadingView.setVisibility(View.GONE);
+                preferenceView.setVisibility(View.VISIBLE);
+                loadingView.startAnimation(AnimationUtils.loadAnimation(
+                        activity, android.R.anim.fade_out));
+                preferenceView.startAnimation(AnimationUtils.loadAnimation(
+                        activity, android.R.anim.fade_in));
+                // The menu is created by the framework asynchronously after the activity,
+                // which means it's possible to have the activity running but the menu not
+                // created yet - hence the necessity for a null check here.
+                if (null != updateNowMenu) {
+                    updateNowMenu.setTitle(R.string.check_for_updates_now);
                 }
-            });
+            }
+        });
     }
 }
diff --git a/java/src/com/android/inputmethod/dictionarypack/DownloadIdAndStartDate.java b/java/src/com/android/inputmethod/dictionarypack/DownloadIdAndStartDate.java
new file mode 100644
index 0000000..6247a15
--- /dev/null
+++ b/java/src/com/android/inputmethod/dictionarypack/DownloadIdAndStartDate.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.dictionarypack;
+
+/**
+ * A simple container of download ID and download start date.
+ */
+public class DownloadIdAndStartDate {
+    public final long mId;
+    public final long mStartDate;
+    public DownloadIdAndStartDate(final long id, final long startDate) {
+        mId = id;
+        mStartDate = startDate;
+    }
+}
diff --git a/java/src/com/android/inputmethod/dictionarypack/DownloadOverMeteredDialog.java b/java/src/com/android/inputmethod/dictionarypack/DownloadOverMeteredDialog.java
index d3c0a91..91ed673 100644
--- a/java/src/com/android/inputmethod/dictionarypack/DownloadOverMeteredDialog.java
+++ b/java/src/com/android/inputmethod/dictionarypack/DownloadOverMeteredDialog.java
@@ -24,9 +24,11 @@
 import android.widget.Button;
 import android.widget.TextView;
 
+import com.android.inputmethod.annotations.ExternallyReferenced;
 import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.common.LocaleUtils;
 
-import java.util.Locale;
+import javax.annotation.Nullable;
 
 /**
  * This implements the dialog for asking the user whether it's okay to download dictionaries over
@@ -52,22 +54,30 @@
         setTexts(localeString, size);
     }
 
-    private void setTexts(final String localeString, final long size) {
+    private void setTexts(@Nullable final String localeString, final long size) {
         final String promptFormat = getString(R.string.should_download_over_metered_prompt);
         final String allowButtonFormat = getString(R.string.download_over_metered);
-        final Locale locale = LocaleUtils.constructLocaleFromString(localeString);
-        final String language = (null == locale ? "" : locale.getDisplayLanguage());
+        final String language = (null == localeString) ? ""
+                : LocaleUtils.constructLocaleFromString(localeString).getDisplayLanguage();
         final TextView prompt = (TextView)findViewById(R.id.download_over_metered_prompt);
         prompt.setText(Html.fromHtml(String.format(promptFormat, language)));
         final Button allowButton = (Button)findViewById(R.id.allow_button);
         allowButton.setText(String.format(allowButtonFormat, ((float)size)/(1024*1024)));
     }
 
+    // This method is externally referenced from layout/download_over_metered.xml using onClick
+    // attribute of Button.
+    @ExternallyReferenced
+    @SuppressWarnings("unused")
     public void onClickDeny(final View v) {
         UpdateHandler.setDownloadOverMeteredSetting(this, false);
         finish();
     }
 
+    // This method is externally referenced from layout/download_over_metered.xml using onClick
+    // attribute of Button.
+    @ExternallyReferenced
+    @SuppressWarnings("unused")
     public void onClickAllow(final View v) {
         UpdateHandler.setDownloadOverMeteredSetting(this, true);
         UpdateHandler.installIfNeverRequested(this, mClientId, mWordListToDownload,
diff --git a/java/src/com/android/inputmethod/dictionarypack/LocaleUtils.java b/java/src/com/android/inputmethod/dictionarypack/LocaleUtils.java
deleted file mode 100644
index 4f0805c..0000000
--- a/java/src/com/android/inputmethod/dictionarypack/LocaleUtils.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.android.inputmethod.dictionarypack;
-
-import android.content.res.Configuration;
-import android.content.res.Resources;
-import android.text.TextUtils;
-
-import java.util.HashMap;
-import java.util.Locale;
-
-/**
- * A class to help with handling Locales in string form.
- *
- * This file has the same meaning and features (and shares all of its code) with the one with the
- * same name in Latin IME. They need to be kept synchronized; for any update/bugfix to
- * this file, consider also updating/fixing the version in Latin IME.
- */
-public final class LocaleUtils {
-    private LocaleUtils() {
-        // Intentional empty constructor for utility class.
-    }
-
-    // Locale match level constants.
-    // A higher level of match is guaranteed to have a higher numerical value.
-    // Some room is left within constants to add match cases that may arise necessary
-    // in the future, for example differentiating between the case where the countries
-    // are both present and different, and the case where one of the locales does not
-    // specify the countries. This difference is not needed now.
-
-    // Nothing matches.
-    public static final int LOCALE_NO_MATCH = 0;
-    // The languages matches, but the country are different. Or, the reference locale requires a
-    // country and the tested locale does not have one.
-    public static final int LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER = 3;
-    // The languages and country match, but the variants are different. Or, the reference locale
-    // requires a variant and the tested locale does not have one.
-    public static final int LOCALE_LANGUAGE_AND_COUNTRY_MATCH_VARIANT_DIFFER = 6;
-    // The required locale is null or empty so it will accept anything, and the tested locale
-    // is non-null and non-empty.
-    public static final int LOCALE_ANY_MATCH = 10;
-    // The language matches, and the tested locale specifies a country but the reference locale
-    // does not require one.
-    public static final int LOCALE_LANGUAGE_MATCH = 15;
-    // The language and the country match, and the tested locale specifies a variant but the
-    // reference locale does not require one.
-    public static final int LOCALE_LANGUAGE_AND_COUNTRY_MATCH = 20;
-    // The compared locales are fully identical. This is the best match level.
-    public static final int LOCALE_FULL_MATCH = 30;
-
-    // The level at which a match is "normally" considered a locale match with standard algorithms.
-    // Don't use this directly, use #isMatch to test.
-    private static final int LOCALE_MATCH = LOCALE_ANY_MATCH;
-
-    // Make this match the maximum match level. If this evolves to have more than 2 digits
-    // when written in base 10, also adjust the getMatchLevelSortedString method.
-    private static final int MATCH_LEVEL_MAX = 30;
-
-    /**
-     * Return how well a tested locale matches a reference locale.
-     *
-     * This will check the tested locale against the reference locale and return a measure of how
-     * a well it matches the reference. The general idea is that the tested locale has to match
-     * every specified part of the required locale. A full match occur when they are equal, a
-     * partial match when the tested locale agrees with the reference locale but is more specific,
-     * and a difference when the tested locale does not comply with all requirements from the
-     * reference locale.
-     * In more detail, if the reference locale specifies at least a language and the testedLocale
-     * does not specify one, or specifies a different one, LOCALE_NO_MATCH is returned. If the
-     * reference locale is empty or null, it will match anything - in the form of LOCALE_FULL_MATCH
-     * if the tested locale is empty or null, and LOCALE_ANY_MATCH otherwise. If the reference and
-     * tested locale agree on the language, but not on the country,
-     * LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER is returned if the reference locale specifies a country,
-     * and LOCALE_LANGUAGE_MATCH otherwise.
-     * If they agree on both the language and the country, but not on the variant,
-     * LOCALE_LANGUAGE_AND_COUNTRY_MATCH_VARIANT_DIFFER is returned if the reference locale
-     * specifies a variant, and LOCALE_LANGUAGE_AND_COUNTRY_MATCH otherwise. If everything matches,
-     * LOCALE_FULL_MATCH is returned.
-     * Examples:
-     * en <=> en_US  => LOCALE_LANGUAGE_MATCH
-     * en_US <=> en => LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER
-     * en_US_POSIX <=> en_US_Android  =>  LOCALE_LANGUAGE_AND_COUNTRY_MATCH_VARIANT_DIFFER
-     * en_US <=> en_US_Android => LOCALE_LANGUAGE_AND_COUNTRY_MATCH
-     * sp_US <=> en_US  =>  LOCALE_NO_MATCH
-     * de <=> de  => LOCALE_FULL_MATCH
-     * en_US <=> en_US => LOCALE_FULL_MATCH
-     * "" <=> en_US => LOCALE_ANY_MATCH
-     *
-     * @param referenceLocale the reference locale to test against.
-     * @param testedLocale the locale to test.
-     * @return a constant that measures how well the tested locale matches the reference locale.
-     */
-    public static int getMatchLevel(final String referenceLocale, final String testedLocale) {
-        if (TextUtils.isEmpty(referenceLocale)) {
-            return TextUtils.isEmpty(testedLocale) ? LOCALE_FULL_MATCH : LOCALE_ANY_MATCH;
-        }
-        if (null == testedLocale) return LOCALE_NO_MATCH;
-        final String[] referenceParams = referenceLocale.split("_", 3);
-        final String[] testedParams = testedLocale.split("_", 3);
-        // By spec of String#split, [0] cannot be null and length cannot be 0.
-        if (!referenceParams[0].equals(testedParams[0])) return LOCALE_NO_MATCH;
-        switch (referenceParams.length) {
-        case 1:
-            return 1 == testedParams.length ? LOCALE_FULL_MATCH : LOCALE_LANGUAGE_MATCH;
-        case 2:
-            if (1 == testedParams.length) return LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER;
-            if (!referenceParams[1].equals(testedParams[1]))
-                return LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER;
-            if (3 == testedParams.length) return LOCALE_LANGUAGE_AND_COUNTRY_MATCH;
-            return LOCALE_FULL_MATCH;
-        case 3:
-            if (1 == testedParams.length) return LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER;
-            if (!referenceParams[1].equals(testedParams[1]))
-                return LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER;
-            if (2 == testedParams.length) return LOCALE_LANGUAGE_AND_COUNTRY_MATCH_VARIANT_DIFFER;
-            if (!referenceParams[2].equals(testedParams[2]))
-                return LOCALE_LANGUAGE_AND_COUNTRY_MATCH_VARIANT_DIFFER;
-            return LOCALE_FULL_MATCH;
-        }
-        // It should be impossible to come here
-        return LOCALE_NO_MATCH;
-    }
-
-    /**
-     * Return a string that represents this match level, with better matches first.
-     *
-     * The strings are sorted in lexicographic order: a better match will always be less than
-     * a worse match when compared together.
-     */
-    public static String getMatchLevelSortedString(final int matchLevel) {
-        // This works because the match levels are 0~99 (actually 0~30)
-        // Ideally this should use a number of digits equals to the 1og10 of the greater matchLevel
-        return String.format(Locale.ROOT, "%02d", MATCH_LEVEL_MAX - matchLevel);
-    }
-
-    /**
-     * Find out whether a match level should be considered a match.
-     *
-     * This method takes a match level as returned by the #getMatchLevel method, and returns whether
-     * it should be considered a match in the usual sense with standard Locale functions.
-     *
-     * @param level the match level, as returned by getMatchLevel.
-     * @return whether this is a match or not.
-     */
-    public static boolean isMatch(final int level) {
-        return LOCALE_MATCH <= level;
-    }
-
-    /**
-     * Sets the system locale for this process.
-     *
-     * @param res the resources to use. Pass current resources.
-     * @param newLocale the locale to change to.
-     * @return the old locale.
-     */
-    public static Locale setSystemLocale(final Resources res, final Locale newLocale) {
-        final Configuration conf = res.getConfiguration();
-        final Locale saveLocale = conf.locale;
-        conf.locale = newLocale;
-        res.updateConfiguration(conf, res.getDisplayMetrics());
-        return saveLocale;
-    }
-
-    private static final HashMap<String, Locale> sLocaleCache = new HashMap<>();
-
-    /**
-     * Creates a locale from a string specification.
-     */
-    public static Locale constructLocaleFromString(final String localeStr) {
-        if (localeStr == null)
-            return null;
-        synchronized (sLocaleCache) {
-            if (sLocaleCache.containsKey(localeStr))
-                return sLocaleCache.get(localeStr);
-            Locale retval = null;
-            String[] localeParams = localeStr.split("_", 3);
-            if (localeParams.length == 1) {
-                retval = new Locale(localeParams[0]);
-            } else if (localeParams.length == 2) {
-                retval = new Locale(localeParams[0], localeParams[1]);
-            } else if (localeParams.length == 3) {
-                retval = new Locale(localeParams[0], localeParams[1], localeParams[2]);
-            }
-            if (retval != null) {
-                sLocaleCache.put(localeStr, retval);
-            }
-            return retval;
-        }
-    }
-}
diff --git a/java/src/com/android/inputmethod/dictionarypack/MetadataDbHelper.java b/java/src/com/android/inputmethod/dictionarypack/MetadataDbHelper.java
index 17dd781..a2789cc 100644
--- a/java/src/com/android/inputmethod/dictionarypack/MetadataDbHelper.java
+++ b/java/src/com/android/inputmethod/dictionarypack/MetadataDbHelper.java
@@ -47,10 +47,14 @@
     // used to identify the versions for upgrades. This should never change going forward.
     private static final int METADATA_DATABASE_VERSION_WITH_CLIENTID = 6;
     // The current database version.
-    private static final int CURRENT_METADATA_DATABASE_VERSION = 9;
+    // This MUST be increased every time the dictionary pack metadata URL changes.
+    private static final int CURRENT_METADATA_DATABASE_VERSION = 14;
 
     private final static long NOT_A_DOWNLOAD_ID = -1;
 
+    // The number of retries allowed when attempting to download a broken dictionary.
+    public static final int DICTIONARY_RETRY_THRESHOLD = 2;
+
     public static final String METADATA_TABLE_NAME = "pendingUpdates";
     static final String CLIENT_TABLE_NAME = "clients";
     public static final String PENDINGID_COLUMN = "pendingid"; // Download Manager ID
@@ -68,7 +72,8 @@
     public static final String FORMATVERSION_COLUMN = "formatversion";
     public static final String FLAGS_COLUMN = "flags";
     public static final String RAW_CHECKSUM_COLUMN = "rawChecksum";
-    public static final int COLUMN_COUNT = 14;
+    public static final String RETRY_COUNT_COLUMN = "remainingRetries";
+    public static final int COLUMN_COUNT = 15;
 
     private static final String CLIENT_CLIENT_ID_COLUMN = "clientid";
     private static final String CLIENT_METADATA_URI_COLUMN = "uri";
@@ -98,6 +103,8 @@
     // Deleting: the user marked this word list to be deleted, but it has not been yet because
     // Latin IME is not up yet.
     public static final int STATUS_DELETING = 5;
+    // Retry: dictionary got corrupted, so an attempt must be done to download & install it again.
+    public static final int STATUS_RETRYING = 6;
 
     // Types, for storing in the TYPE_COLUMN
     // This is metadata about what is available.
@@ -124,6 +131,7 @@
             + FORMATVERSION_COLUMN + " INTEGER, "
             + FLAGS_COLUMN + " INTEGER, "
             + RAW_CHECKSUM_COLUMN + " TEXT,"
+            + RETRY_COUNT_COLUMN + " INTEGER, "
             + "PRIMARY KEY (" + WORDLISTID_COLUMN + "," + VERSION_COLUMN + "));";
     private static final String METADATA_CREATE_CLIENT_TABLE =
             "CREATE TABLE IF NOT EXISTS " + CLIENT_TABLE_NAME + " ("
@@ -140,7 +148,7 @@
             STATUS_COLUMN, WORDLISTID_COLUMN, LOCALE_COLUMN, DESCRIPTION_COLUMN,
             LOCAL_FILENAME_COLUMN, REMOTE_FILENAME_COLUMN, DATE_COLUMN, CHECKSUM_COLUMN,
             FILESIZE_COLUMN, VERSION_COLUMN, FORMATVERSION_COLUMN, FLAGS_COLUMN,
-            RAW_CHECKSUM_COLUMN };
+            RAW_CHECKSUM_COLUMN, RETRY_COUNT_COLUMN };
     // List of all client table columns.
     static final String[] CLIENT_TABLE_COLUMNS = { CLIENT_CLIENT_ID_COLUMN,
             CLIENT_METADATA_URI_COLUMN, CLIENT_PENDINGID_COLUMN, FLAGS_COLUMN };
@@ -219,7 +227,7 @@
         createClientTable(db);
     }
 
-    private void addRawChecksumColumnUnlessPresent(final SQLiteDatabase db, final String clientId) {
+    private static void addRawChecksumColumnUnlessPresent(final SQLiteDatabase db) {
         try {
             db.execSQL("SELECT " + RAW_CHECKSUM_COLUMN + " FROM "
                     + METADATA_TABLE_NAME + " LIMIT 0;");
@@ -230,6 +238,17 @@
         }
     }
 
+    private static void addRetryCountColumnUnlessPresent(final SQLiteDatabase db) {
+        try {
+            db.execSQL("SELECT " + RETRY_COUNT_COLUMN + " FROM "
+                    + METADATA_TABLE_NAME + " LIMIT 0;");
+        } catch (SQLiteException e) {
+            Log.i(TAG, "No " + RETRY_COUNT_COLUMN + " column : creating it");
+            db.execSQL("ALTER TABLE " + METADATA_TABLE_NAME + " ADD COLUMN "
+                    + RETRY_COUNT_COLUMN + " INTEGER DEFAULT " + DICTIONARY_RETRY_THRESHOLD + ";");
+        }
+    }
+
     /**
      * Upgrade the database. Upgrade from version 3 is supported.
      * Version 3 has a DB named METADATA_DATABASE_NAME_STEM containing a table METADATA_TABLE_NAME.
@@ -245,6 +264,8 @@
      */
     @Override
     public void onUpgrade(final SQLiteDatabase db, final int oldVersion, final int newVersion) {
+        // Allow automatic download of dictionaries on upgrading the database.
+        CommonPreferences.setForceDownloadDict(mContext, true);
         if (METADATA_DATABASE_INITIAL_VERSION == oldVersion
                 && METADATA_DATABASE_VERSION_WITH_CLIENTID <= newVersion
                 && CURRENT_METADATA_DATABASE_VERSION >= newVersion) {
@@ -280,7 +301,14 @@
         // strengthen the system against corrupted dictionary files.
         // The most secure way to upgrade a database is to just test for the column presence, and
         // add it if it's not there.
-        addRawChecksumColumnUnlessPresent(db, mClientId);
+        addRawChecksumColumnUnlessPresent(db);
+
+        // A retry count column that did not exist in the previous versions was added that
+        // corresponds to the number of download & installation attempts that have been made
+        // in order to strengthen the system recovery from corrupted dictionary files.
+        // The most secure way to upgrade a database is to just test for the column presence, and
+        // add it if it's not there.
+        addRetryCountColumnUnlessPresent(db);
     }
 
     /**
@@ -408,18 +436,18 @@
      *
      * @param context a context instance to open the database on
      * @param uri the URI to retrieve the metadata download ID of
-     * @return the metadata download ID, or NOT_AN_ID if no download is in progress
+     * @return the download id and start date, or null if the URL is not known
      */
-    public static long getMetadataDownloadIdForURI(final Context context,
-            final String uri) {
+    public static DownloadIdAndStartDate getMetadataDownloadIdAndStartDateForURI(
+            final Context context, final String uri) {
         SQLiteDatabase defaultDb = getDb(context, null);
         final Cursor cursor = defaultDb.query(CLIENT_TABLE_NAME,
-                new String[] { CLIENT_PENDINGID_COLUMN },
+                new String[] { CLIENT_PENDINGID_COLUMN, CLIENT_LAST_UPDATE_DATE_COLUMN },
                 CLIENT_METADATA_URI_COLUMN + " = ?", new String[] { uri },
                 null, null, null, null);
         try {
-            if (!cursor.moveToFirst()) return UpdateHandler.NOT_AN_ID;
-            return cursor.getInt(0); // Only one column, return it
+            if (!cursor.moveToFirst()) return null;
+            return new DownloadIdAndStartDate(cursor.getInt(0), cursor.getLong(1));
         } finally {
             cursor.close();
         }
@@ -452,8 +480,8 @@
     public static ContentValues makeContentValues(final int pendingId, final int type,
             final int status, final String wordlistId, final String locale,
             final String description, final String filename, final String url, final long date,
-            final String rawChecksum, final String checksum, final long filesize, final int version,
-            final int formatVersion) {
+            final String rawChecksum, final String checksum, final int retryCount,
+            final long filesize, final int version, final int formatVersion) {
         final ContentValues result = new ContentValues(COLUMN_COUNT);
         result.put(PENDINGID_COLUMN, pendingId);
         result.put(TYPE_COLUMN, type);
@@ -465,6 +493,7 @@
         result.put(REMOTE_FILENAME_COLUMN, url);
         result.put(DATE_COLUMN, date);
         result.put(RAW_CHECKSUM_COLUMN, rawChecksum);
+        result.put(RETRY_COUNT_COLUMN, retryCount);
         result.put(CHECKSUM_COLUMN, checksum);
         result.put(FILESIZE_COLUMN, filesize);
         result.put(VERSION_COLUMN, version);
@@ -502,6 +531,9 @@
         if (null == result.get(DATE_COLUMN)) result.put(DATE_COLUMN, 0);
         // Raw checksum unknown unless specified
         if (null == result.get(RAW_CHECKSUM_COLUMN)) result.put(RAW_CHECKSUM_COLUMN, "");
+        // Retry column 0 unless specified
+        if (null == result.get(RETRY_COUNT_COLUMN)) result.put(RETRY_COUNT_COLUMN,
+                DICTIONARY_RETRY_THRESHOLD);
         // Checksum unknown unless specified
         if (null == result.get(CHECKSUM_COLUMN)) result.put(CHECKSUM_COLUMN, "");
         // No filesize unless specified
@@ -551,6 +583,7 @@
             putIntResult(result, cursor, DATE_COLUMN);
             putStringResult(result, cursor, RAW_CHECKSUM_COLUMN);
             putStringResult(result, cursor, CHECKSUM_COLUMN);
+            putIntResult(result, cursor, RETRY_COUNT_COLUMN);
             putIntResult(result, cursor, FILESIZE_COLUMN);
             putIntResult(result, cursor, VERSION_COLUMN);
             putIntResult(result, cursor, FORMATVERSION_COLUMN);
@@ -676,8 +709,16 @@
             final String id, final int version) {
         final Cursor cursor = db.query(METADATA_TABLE_NAME,
                 METADATA_TABLE_COLUMNS,
-                WORDLISTID_COLUMN + "= ? AND " + VERSION_COLUMN + "= ?",
-                new String[] { id, Integer.toString(version) }, null, null, null);
+                WORDLISTID_COLUMN + "= ? AND " + VERSION_COLUMN + "= ? AND "
+                        + FORMATVERSION_COLUMN + "<= ?",
+                new String[]
+                        { id,
+                          Integer.toString(version),
+                          Integer.toString(UpdateHandler.MAXIMUM_SUPPORTED_FORMAT_VERSION)
+                        },
+                null /* groupBy */,
+                null /* having */,
+                FORMATVERSION_COLUMN + " DESC"/* orderBy */);
         if (null == cursor) {
             return null;
         }
@@ -706,7 +747,7 @@
             return null;
         }
         try {
-            // This is a lookup by primary key, so there can't be more than one result.
+            // Return the first result from the list of results.
             return getFirstLineAsContentValues(cursor);
         } finally {
             cursor.close();
@@ -884,6 +925,7 @@
             final long downloadId) {
         final ContentValues values = new ContentValues();
         values.put(CLIENT_PENDINGID_COLUMN, downloadId);
+        values.put(CLIENT_LAST_UPDATE_DATE_COLUMN, System.currentTimeMillis());
         final SQLiteDatabase defaultDb = getDb(context, "");
         final Cursor cursor = MetadataDbHelper.queryClientIds(context);
         if (null == cursor) return;
@@ -1085,4 +1127,27 @@
             final int version) {
         markEntryAs(db, id, version, STATUS_DELETING, NOT_A_DOWNLOAD_ID);
     }
+
+    /**
+     * Checks retry counts and marks the word list as retrying if retry is possible.
+     *
+     * @param db the metadata database.
+     * @param id the id of the word list.
+     * @param version the version of the word list.
+     * @return {@code true} if the retry is possible.
+     */
+    public static boolean maybeMarkEntryAsRetrying(final SQLiteDatabase db, final String id,
+            final int version) {
+        final ContentValues values = MetadataDbHelper.getContentValuesByWordListId(db, id, version);
+        int retryCount = values.getAsInteger(MetadataDbHelper.RETRY_COUNT_COLUMN);
+        if (retryCount > 1) {
+            values.put(STATUS_COLUMN, STATUS_RETRYING);
+            values.put(RETRY_COUNT_COLUMN, retryCount - 1);
+            db.update(METADATA_TABLE_NAME, values,
+                    WORDLISTID_COLUMN + " = ? AND " + VERSION_COLUMN + " = ?",
+                    new String[] { id, Integer.toString(version) });
+            return true;
+        }
+        return false;
+    }
 }
diff --git a/java/src/com/android/inputmethod/dictionarypack/MetadataHandler.java b/java/src/com/android/inputmethod/dictionarypack/MetadataHandler.java
index d66b690..329b9f6 100644
--- a/java/src/com/android/inputmethod/dictionarypack/MetadataHandler.java
+++ b/java/src/com/android/inputmethod/dictionarypack/MetadataHandler.java
@@ -16,6 +16,7 @@
 
 package com.android.inputmethod.dictionarypack;
 
+import android.content.ContentValues;
 import android.content.Context;
 import android.database.Cursor;
 
@@ -29,9 +30,6 @@
  * Helper class to easy up manipulation of dictionary pack metadata.
  */
 public class MetadataHandler {
-    @SuppressWarnings("unused")
-    private static final String TAG = "DictionaryProvider:" + MetadataHandler.class.getSimpleName();
-
     // The canonical file name for metadata. This is not the name of a real file on the
     // device, but a symbolic name used in the database and in metadata handling. It is never
     // tested against, only used for human-readability as the file name for the metadata.
@@ -55,6 +53,7 @@
             final int rawChecksumIndex =
                     results.getColumnIndex(MetadataDbHelper.RAW_CHECKSUM_COLUMN);
             final int checksumIndex = results.getColumnIndex(MetadataDbHelper.CHECKSUM_COLUMN);
+            final int retryCountIndex = results.getColumnIndex(MetadataDbHelper.RETRY_COUNT_COLUMN);
             final int localFilenameIndex =
                     results.getColumnIndex(MetadataDbHelper.LOCAL_FILENAME_COLUMN);
             final int remoteFilenameIndex =
@@ -70,6 +69,7 @@
                         results.getLong(fileSizeIndex),
                         results.getString(rawChecksumIndex),
                         results.getString(checksumIndex),
+                        results.getInt(retryCountIndex),
                         results.getString(localFilenameIndex),
                         results.getString(remoteFilenameIndex),
                         results.getInt(versionIndex),
@@ -102,6 +102,22 @@
     }
 
     /**
+     * Gets the metadata, for a specific dictionary.
+     *
+     * @param context The context to open files over.
+     * @param clientId the client id for retrieving the database. null for default (deprecated).
+     * @param wordListId the word list ID.
+     * @param version the word list version.
+     * @return the current metaData
+     */
+    public static WordListMetadata getCurrentMetadataForWordList(final Context context,
+            final String clientId, final String wordListId, final int version) {
+        final ContentValues contentValues = MetadataDbHelper.getContentValuesByWordListId(
+                MetadataDbHelper.getDb(context, clientId), wordListId, version);
+        return WordListMetadata.createFromContentValues(contentValues);
+    }
+
+    /**
      * Read metadata from a stream.
      * @param input The stream to read from.
      * @return The read metadata.
diff --git a/java/src/com/android/inputmethod/dictionarypack/MetadataParser.java b/java/src/com/android/inputmethod/dictionarypack/MetadataParser.java
index 52290ca..2b67ae9 100644
--- a/java/src/com/android/inputmethod/dictionarypack/MetadataParser.java
+++ b/java/src/com/android/inputmethod/dictionarypack/MetadataParser.java
@@ -83,6 +83,7 @@
                 Long.parseLong(arguments.get(FILESIZE_FIELD_NAME)),
                 arguments.get(RAW_CHECKSUM_FIELD_NAME),
                 arguments.get(CHECKSUM_FIELD_NAME),
+                MetadataDbHelper.DICTIONARY_RETRY_THRESHOLD /* retryCount */,
                 null,
                 arguments.get(REMOTE_FILENAME_FIELD_NAME),
                 Integer.parseInt(arguments.get(VERSION_FIELD_NAME)),
diff --git a/java/src/com/android/inputmethod/dictionarypack/PrivateLog.java b/java/src/com/android/inputmethod/dictionarypack/PrivateLog.java
index 67dd7b9..bb64721 100644
--- a/java/src/com/android/inputmethod/dictionarypack/PrivateLog.java
+++ b/java/src/com/android/inputmethod/dictionarypack/PrivateLog.java
@@ -43,8 +43,8 @@
             + COLUMN_DATE + " TEXT,"
             + COLUMN_EVENT + " TEXT);";
 
-    private static final SimpleDateFormat sDateFormat =
-            new SimpleDateFormat("yyyy/MM/dd HH:mm:ss", Locale.US);
+    static final SimpleDateFormat sDateFormat = new SimpleDateFormat(
+            "yyyy/MM/dd HH:mm:ss", Locale.ROOT);
 
     private static PrivateLog sInstance = new PrivateLog();
     private static DebugHelper sDebugHelper = null;
@@ -62,9 +62,9 @@
         }
     }
 
-    private static class DebugHelper extends SQLiteOpenHelper {
+    static class DebugHelper extends SQLiteOpenHelper {
 
-        private DebugHelper(final Context context) {
+        DebugHelper(final Context context) {
             super(context, LOG_DATABASE_NAME, null, LOG_DATABASE_VERSION);
         }
 
@@ -84,7 +84,7 @@
             insert(db, "Upgrade finished");
         }
 
-        private static void insert(SQLiteDatabase db, String event) {
+        static void insert(SQLiteDatabase db, String event) {
             if (!DEBUG) return;
             final ContentValues c = new ContentValues(2);
             c.put(COLUMN_DATE, sDateFormat.format(new Date(System.currentTimeMillis())));
diff --git a/java/src/com/android/inputmethod/dictionarypack/UpdateHandler.java b/java/src/com/android/inputmethod/dictionarypack/UpdateHandler.java
index 6fbca44..30ff0b8 100644
--- a/java/src/com/android/inputmethod/dictionarypack/UpdateHandler.java
+++ b/java/src/com/android/inputmethod/dictionarypack/UpdateHandler.java
@@ -31,7 +31,6 @@
 import android.database.sqlite.SQLiteDatabase;
 import android.net.ConnectivityManager;
 import android.net.Uri;
-import android.os.Build;
 import android.os.ParcelFileDescriptor;
 import android.text.TextUtils;
 import android.util.Log;
@@ -40,6 +39,8 @@
 import com.android.inputmethod.compat.DownloadManagerCompatUtils;
 import com.android.inputmethod.compat.NotificationCompatUtils;
 import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.common.LocaleUtils;
+import com.android.inputmethod.latin.makedict.FormatSpec;
 import com.android.inputmethod.latin.utils.ApplicationUtils;
 import com.android.inputmethod.latin.utils.DebugLogUtils;
 
@@ -56,10 +57,11 @@
 import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
-import java.util.Locale;
 import java.util.Set;
 import java.util.TreeSet;
 
+import javax.annotation.Nullable;
+
 /**
  * Handler for the update process.
  *
@@ -77,7 +79,8 @@
     // DownloadManager uses as an ID numbers returned out of an AUTOINCREMENT column
     // in SQLite, so it should never return anything < 0.
     public static final int NOT_AN_ID = -1;
-    public static final int MAXIMUM_SUPPORTED_FORMAT_VERSION = 2;
+    public static final int MAXIMUM_SUPPORTED_FORMAT_VERSION =
+            FormatSpec.MAXIMUM_SUPPORTED_STATIC_VERSION;
 
     // Arbitrary. Probably good if it's a power of 2, and a couple thousand bytes long.
     private static final int FILE_COPY_BUFFER_SIZE = 8192;
@@ -252,12 +255,16 @@
                 res.getBoolean(R.bool.metadata_downloads_visible_in_download_UI));
 
         final DownloadManagerWrapper manager = new DownloadManagerWrapper(context);
-        cancelUpdateWithDownloadManager(context, metadataUri, manager);
+        if (maybeCancelUpdateAndReturnIfStillRunning(context, metadataUri, manager,
+                DictionaryService.NO_CANCEL_DOWNLOAD_PERIOD_MILLIS)) {
+            // We already have a recent download in progress. Don't register a new download.
+            return;
+        }
         final long downloadId;
         synchronized (sSharedIdProtector) {
             downloadId = manager.enqueue(metadataRequest);
             DebugLogUtils.l("Metadata download requested with id", downloadId);
-            // If there is already a download in progress, it's been there for a while and
+            // If there is still a download in progress, it's been there for a while and
             // there is probably something wrong with download manager. It's best to just
             // overwrite the id and request it again. If the old one happens to finish
             // anyway, we don't know about its ID any more, so the downloadFinished
@@ -268,21 +275,29 @@
     }
 
     /**
-     * Cancels downloading a file, if there is one for this URI.
+     * Cancels downloading a file if there is one for this URI and it's too long.
      *
      * If we are not currently downloading the file at this URI, this is a no-op.
      *
      * @param context the context to open the database on
      * @param metadataUri the URI to cancel
      * @param manager an wrapped instance of DownloadManager
+     * @param graceTime if there was a download started less than this many milliseconds, don't
+     *  cancel and return true
+     * @return whether the download is still active
      */
-    private static void cancelUpdateWithDownloadManager(final Context context,
-            final String metadataUri, final DownloadManagerWrapper manager) {
+    private static boolean maybeCancelUpdateAndReturnIfStillRunning(final Context context,
+            final String metadataUri, final DownloadManagerWrapper manager, final long graceTime) {
         synchronized (sSharedIdProtector) {
-            final long metadataDownloadId =
-                    MetadataDbHelper.getMetadataDownloadIdForURI(context, metadataUri);
-            if (NOT_AN_ID == metadataDownloadId) return;
-            manager.remove(metadataDownloadId);
+            final DownloadIdAndStartDate metadataDownloadIdAndStartDate =
+                    MetadataDbHelper.getMetadataDownloadIdAndStartDateForURI(context, metadataUri);
+            if (null == metadataDownloadIdAndStartDate) return false;
+            if (NOT_AN_ID == metadataDownloadIdAndStartDate.mId) return false;
+            if (metadataDownloadIdAndStartDate.mStartDate + graceTime
+                    > System.currentTimeMillis()) {
+                return true;
+            }
+            manager.remove(metadataDownloadIdAndStartDate.mId);
             writeMetadataDownloadId(context, metadataUri, NOT_AN_ID);
         }
         // Consider a cancellation as a failure. As such, inform listeners that the download
@@ -290,6 +305,7 @@
         for (UpdateEventListener listener : linkedCopyOfList(sUpdateEventListeners)) {
             listener.downloadedMetadata(false);
         }
+        return false;
     }
 
     /**
@@ -304,7 +320,7 @@
     public static void cancelUpdate(final Context context, final String clientId) {
         final DownloadManagerWrapper manager = new DownloadManagerWrapper(context);
         final String metadataUri = MetadataDbHelper.getMetadataUriAsString(context, clientId);
-        cancelUpdateWithDownloadManager(context, metadataUri, manager);
+        maybeCancelUpdateAndReturnIfStillRunning(context, metadataUri, manager, 0 /* graceTime */);
     }
 
     /**
@@ -388,7 +404,7 @@
             // If any of these is metadata, we should update the DB
             boolean hasMetadata = false;
             for (DownloadRecord record : downloadRecords) {
-                if (null == record.mAttributes) {
+                if (record.isMetadata()) {
                     hasMetadata = true;
                     break;
                 }
@@ -433,6 +449,8 @@
         // download, so we are pretty sure it's alive. It's theoretically possible that it's
         // disabled right inbetween the firing of the intent and the control reaching here.
 
+        boolean dictionaryDownloaded = false;
+
         for (final DownloadRecord record : recordList) {
             // downloadSuccessful is not final because we may still have exceptions from now on
             boolean downloadSuccessful = false;
@@ -447,9 +465,15 @@
                     final SQLiteDatabase db = MetadataDbHelper.getDb(context, record.mClientId);
                     publishUpdateWordListCompleted(context, downloadSuccessful, fileId,
                             db, record.mAttributes, record.mClientId);
+                    dictionaryDownloaded = true;
                 }
             }
         }
+
+        if (dictionaryDownloaded) {
+            // Disable the force download after downloading the dictionaries.
+            CommonPreferences.setForceDownloadDict(context, false);
+        }
         // Now that we're done using it, we can remove this download from DLManager
         manager.remove(fileId);
     }
@@ -738,19 +762,22 @@
      * @return an ordered list of runnables to be called to upgrade.
      */
     private static ActionBatch compareMetadataForUpgrade(final Context context,
-            final String clientId, List<WordListMetadata> from, List<WordListMetadata> to) {
+            final String clientId, @Nullable final List<WordListMetadata> from,
+            @Nullable final List<WordListMetadata> to) {
         final ActionBatch actions = new ActionBatch();
         // Upgrade existing word lists
         DebugLogUtils.l("Comparing dictionaries");
         final Set<String> wordListIds = new TreeSet<>();
         // TODO: Can these be null?
-        if (null == from) from = new ArrayList<>();
-        if (null == to) to = new ArrayList<>();
-        for (WordListMetadata wlData : from) wordListIds.add(wlData.mId);
-        for (WordListMetadata wlData : to) wordListIds.add(wlData.mId);
+        final List<WordListMetadata> fromList = (from == null) ? new ArrayList<WordListMetadata>()
+                : from;
+        final List<WordListMetadata> toList = (to == null) ? new ArrayList<WordListMetadata>()
+                : to;
+        for (WordListMetadata wlData : fromList) wordListIds.add(wlData.mId);
+        for (WordListMetadata wlData : toList) wordListIds.add(wlData.mId);
         for (String id : wordListIds) {
-            final WordListMetadata currentInfo = MetadataHandler.findWordListById(from, id);
-            final WordListMetadata metadataInfo = MetadataHandler.findWordListById(to, id);
+            final WordListMetadata currentInfo = MetadataHandler.findWordListById(fromList, id);
+            final WordListMetadata metadataInfo = MetadataHandler.findWordListById(toList, id);
             // TODO: Remove the following unnecessary check, since we are now doing the filtering
             // inside findWordListById.
             final WordListMetadata newInfo = null == metadataInfo
@@ -785,6 +812,10 @@
             } else {
                 final SQLiteDatabase db = MetadataDbHelper.getDb(context, clientId);
                 if (newInfo.mVersion == currentInfo.mVersion) {
+                    if (TextUtils.equals(newInfo.mRemoteFilename, currentInfo.mRemoteFilename)) {
+                        // If the dictionary url hasn't changed, we should preserve the retryCount.
+                        newInfo.mRetryCount = currentInfo.mRetryCount;
+                    }
                     // If it's the same id/version, we update the DB with the new values.
                     // It doesn't matter too much if they didn't change.
                     actions.add(new ActionBatch.UpdateDataAction(clientId, newInfo));
@@ -797,7 +828,8 @@
                     actions.add(new ActionBatch.MakeAvailableAction(clientId, newInfo));
                     if (status == MetadataDbHelper.STATUS_INSTALLED
                             || status == MetadataDbHelper.STATUS_DISABLED) {
-                        actions.add(new ActionBatch.StartDownloadAction(clientId, newInfo, false));
+                        actions.add(new ActionBatch.StartDownloadAction(
+                                clientId, newInfo, CommonPreferences.isForceDownloadDict(context)));
                     } else {
                         // Pass true to ForgetAction: this is indeed an update to a non-installed
                         // word list, so activate status == AVAILABLE check
@@ -856,8 +888,8 @@
         // None of those are expected to happen, but just in case...
         if (null == notificationIntent || null == notificationManager) return;
 
-        final Locale locale = LocaleUtils.constructLocaleFromString(localeString);
-        final String language = (null == locale ? "" : locale.getDisplayLanguage());
+        final String language = (null == localeString) ? ""
+                : LocaleUtils.constructLocaleFromString(localeString).getDisplayLanguage();
         final String titleFormat = context.getString(R.string.dict_available_notification_title);
         final String notificationTitle = String.format(titleFormat, language);
         final Notification.Builder builder = new Notification.Builder(context)
@@ -950,8 +982,10 @@
         // change the shared preferences. So there is no way for a word list that has been
         // auto-installed once to get auto-installed again, and that's what we want.
         final ActionBatch actions = new ActionBatch();
-        actions.add(new ActionBatch.StartDownloadAction(clientId,
-                WordListMetadata.createFromContentValues(installCandidate), false));
+        actions.add(new ActionBatch.StartDownloadAction(
+                clientId,
+                WordListMetadata.createFromContentValues(installCandidate),
+                CommonPreferences.isForceDownloadDict(context)));
         final String localeString = installCandidate.getAsString(MetadataDbHelper.LOCALE_COLUMN);
         // We are in a content provider: we can't do any UI at all. We have to defer the displaying
         // itself to the service. Also, we only display this when the user does not have a
@@ -987,17 +1021,19 @@
     public static void markAsUsed(final Context context, final String clientId,
             final String wordlistId, final int version,
             final int status, final boolean allowDownloadOnMeteredData) {
-        final List<WordListMetadata> currentMetadata =
-                MetadataHandler.getCurrentMetadata(context, clientId);
-        WordListMetadata wordList = MetadataHandler.findWordListById(currentMetadata, wordlistId);
-        if (null == wordList) return;
+        final WordListMetadata wordListMetaData = MetadataHandler.getCurrentMetadataForWordList(
+                context, clientId, wordlistId, version);
+
+        if (null == wordListMetaData) return;
+
         final ActionBatch actions = new ActionBatch();
         if (MetadataDbHelper.STATUS_DISABLED == status
                 || MetadataDbHelper.STATUS_DELETING == status) {
-            actions.add(new ActionBatch.EnableAction(clientId, wordList));
+            actions.add(new ActionBatch.EnableAction(clientId, wordListMetaData));
         } else if (MetadataDbHelper.STATUS_AVAILABLE == status) {
-            actions.add(new ActionBatch.StartDownloadAction(clientId, wordList,
-                    allowDownloadOnMeteredData));
+            boolean forceDownloadDict = CommonPreferences.isForceDownloadDict(context);
+            actions.add(new ActionBatch.StartDownloadAction(clientId, wordListMetaData,
+                    forceDownloadDict || allowDownloadOnMeteredData));
         } else {
             Log.e(TAG, "Unexpected state of the word list for markAsUsed : " + status);
         }
@@ -1022,13 +1058,13 @@
     // markAsUsed for consistency.
     public static void markAsUnused(final Context context, final String clientId,
             final String wordlistId, final int version, final int status) {
-        final List<WordListMetadata> currentMetadata =
-                MetadataHandler.getCurrentMetadata(context, clientId);
-        final WordListMetadata wordList =
-                MetadataHandler.findWordListById(currentMetadata, wordlistId);
-        if (null == wordList) return;
+
+        final WordListMetadata wordListMetaData = MetadataHandler.getCurrentMetadataForWordList(
+                context, clientId, wordlistId, version);
+
+        if (null == wordListMetaData) return;
         final ActionBatch actions = new ActionBatch();
-        actions.add(new ActionBatch.DisableAction(clientId, wordList));
+        actions.add(new ActionBatch.DisableAction(clientId, wordListMetaData));
         actions.execute(context, new LogProblemReporter(TAG));
         signalNewDictionaryState(context);
     }
@@ -1051,14 +1087,14 @@
      */
     public static void markAsDeleting(final Context context, final String clientId,
             final String wordlistId, final int version, final int status) {
-        final List<WordListMetadata> currentMetadata =
-                MetadataHandler.getCurrentMetadata(context, clientId);
-        final WordListMetadata wordList =
-                MetadataHandler.findWordListById(currentMetadata, wordlistId);
-        if (null == wordList) return;
+
+        final WordListMetadata wordListMetaData = MetadataHandler.getCurrentMetadataForWordList(
+                context, clientId, wordlistId, version);
+
+        if (null == wordListMetaData) return;
         final ActionBatch actions = new ActionBatch();
-        actions.add(new ActionBatch.DisableAction(clientId, wordList));
-        actions.add(new ActionBatch.StartDeleteAction(clientId, wordList));
+        actions.add(new ActionBatch.DisableAction(clientId, wordListMetaData));
+        actions.add(new ActionBatch.StartDeleteAction(clientId, wordListMetaData));
         actions.execute(context, new LogProblemReporter(TAG));
         signalNewDictionaryState(context);
     }
@@ -1076,33 +1112,48 @@
      */
     public static void markAsDeleted(final Context context, final String clientId,
             final String wordlistId, final int version, final int status) {
-        final List<WordListMetadata> currentMetadata =
-                MetadataHandler.getCurrentMetadata(context, clientId);
-        final WordListMetadata wordList =
-                MetadataHandler.findWordListById(currentMetadata, wordlistId);
-        if (null == wordList) return;
+        final WordListMetadata wordListMetaData = MetadataHandler.getCurrentMetadataForWordList(
+                        context, clientId, wordlistId, version);
+
+        if (null == wordListMetaData) return;
+
         final ActionBatch actions = new ActionBatch();
-        actions.add(new ActionBatch.FinishDeleteAction(clientId, wordList));
+        actions.add(new ActionBatch.FinishDeleteAction(clientId, wordListMetaData));
         actions.execute(context, new LogProblemReporter(TAG));
         signalNewDictionaryState(context);
     }
 
     /**
-     * Marks the word list with the passed id as broken.
-     *
-     * This effectively deletes the entry from the metadata. It doesn't prevent the same
-     * word list to be downloaded again at a later time if the same or a new version is
-     * available the next time we download the metadata.
+     * Checks whether the word list should be downloaded again; in which case an download &
+     * installation attempt is made. Otherwise the word list is marked broken.
      *
      * @param context the context to open the database on.
      * @param clientId the id of the client.
-     * @param wordlistId the id of the word list to mark as broken.
-     * @param version the version of the word list to mark as deleted.
+     * @param wordlistId the id of the word list which is broken.
+     * @param version the version of the broken word list.
      */
-    public static void markAsBroken(final Context context, final String clientId,
+    public static void markAsBrokenOrRetrying(final Context context, final String clientId,
             final String wordlistId, final int version) {
-        // TODO: do this on another thread to avoid blocking the UI.
-        MetadataDbHelper.deleteEntry(MetadataDbHelper.getDb(context, clientId),
-                wordlistId, version);
+        boolean isRetryPossible = MetadataDbHelper.maybeMarkEntryAsRetrying(
+                MetadataDbHelper.getDb(context, clientId), wordlistId, version);
+
+        if (isRetryPossible) {
+            if (DEBUG) {
+                Log.d(TAG, "Attempting to download & install the wordlist again.");
+            }
+            final WordListMetadata wordListMetaData = MetadataHandler.getCurrentMetadataForWordList(
+                    context, clientId, wordlistId, version);
+
+            final ActionBatch actions = new ActionBatch();
+            actions.add(new ActionBatch.StartDownloadAction(
+                    clientId, wordListMetaData, CommonPreferences.isForceDownloadDict(context)));
+            actions.execute(context, new LogProblemReporter(TAG));
+        } else {
+            if (DEBUG) {
+                Log.d(TAG, "Retries for wordlist exhausted, deleting the wordlist from table.");
+            }
+            MetadataDbHelper.deleteEntry(MetadataDbHelper.getDb(context, clientId),
+                    wordlistId, version);
+        }
     }
 }
diff --git a/java/src/com/android/inputmethod/dictionarypack/WordListMetadata.java b/java/src/com/android/inputmethod/dictionarypack/WordListMetadata.java
index 9e510a6..59f75e4 100644
--- a/java/src/com/android/inputmethod/dictionarypack/WordListMetadata.java
+++ b/java/src/com/android/inputmethod/dictionarypack/WordListMetadata.java
@@ -36,6 +36,7 @@
     public final String mRemoteFilename;
     public final int mVersion; // version of this word list
     public final int mFlags; // Always 0 in this version, reserved for future use
+    public int mRetryCount;
 
     // The locale is matched against the locale requested by the client. The matching algorithm
     // is a standard locale matching with fallback; it is implemented in
@@ -51,8 +52,9 @@
 
     public WordListMetadata(final String id, final int type,
             final String description, final long lastUpdate, final long fileSize,
-            final String rawChecksum, final String checksum, final String localFilename,
-            final String remoteFilename, final int version, final int formatVersion,
+            final String rawChecksum, final String checksum, final int retryCount,
+            final String localFilename, final String remoteFilename,
+            final int version, final int formatVersion,
             final int flags, final String locale) {
         mId = id;
         mType = type;
@@ -61,6 +63,7 @@
         mFileSize = fileSize;
         mRawChecksum = rawChecksum;
         mChecksum = checksum;
+        mRetryCount = retryCount;
         mLocalFilename = localFilename;
         mRemoteFilename = remoteFilename;
         mVersion = version;
@@ -82,6 +85,7 @@
         final Long fileSize = values.getAsLong(MetadataDbHelper.FILESIZE_COLUMN);
         final String rawChecksum = values.getAsString(MetadataDbHelper.RAW_CHECKSUM_COLUMN);
         final String checksum = values.getAsString(MetadataDbHelper.CHECKSUM_COLUMN);
+        final int retryCount = values.getAsInteger(MetadataDbHelper.RETRY_COUNT_COLUMN);
         final String localFilename = values.getAsString(MetadataDbHelper.LOCAL_FILENAME_COLUMN);
         final String remoteFilename = values.getAsString(MetadataDbHelper.REMOTE_FILENAME_COLUMN);
         final Integer version = values.getAsInteger(MetadataDbHelper.VERSION_COLUMN);
@@ -103,7 +107,8 @@
             throw new IllegalArgumentException();
         }
         return new WordListMetadata(id, type, description, lastUpdate, fileSize, rawChecksum,
-                checksum, localFilename, remoteFilename, version, formatVersion, flags, locale);
+                checksum, retryCount, localFilename, remoteFilename, version, formatVersion,
+                flags, locale);
     }
 
     @Override
@@ -116,6 +121,7 @@
         sb.append("\nFileSize : ").append(mFileSize);
         sb.append("\nRawChecksum : ").append(mRawChecksum);
         sb.append("\nChecksum : ").append(mChecksum);
+        sb.append("\nRetryCount: ").append(mRetryCount);
         sb.append("\nLocalFilename : ").append(mLocalFilename);
         sb.append("\nRemoteFilename : ").append(mRemoteFilename);
         sb.append("\nVersion : ").append(mVersion);
diff --git a/java/src/com/android/inputmethod/dictionarypack/WordListPreference.java b/java/src/com/android/inputmethod/dictionarypack/WordListPreference.java
index aea16af..500e39e 100644
--- a/java/src/com/android/inputmethod/dictionarypack/WordListPreference.java
+++ b/java/src/com/android/inputmethod/dictionarypack/WordListPreference.java
@@ -38,45 +38,39 @@
  * enable or delete it as appropriate for the current state of the word list.
  */
 public final class WordListPreference extends Preference {
-    static final private String TAG = WordListPreference.class.getSimpleName();
+    private static final String TAG = WordListPreference.class.getSimpleName();
 
     // What to display in the "status" field when we receive unknown data as a status from
     // the content provider. Empty string sounds sensible.
-    static final private String NO_STATUS_MESSAGE = "";
+    private static final String NO_STATUS_MESSAGE = "";
 
     /// Actions
-    static final private int ACTION_UNKNOWN = 0;
-    static final private int ACTION_ENABLE_DICT = 1;
-    static final private int ACTION_DISABLE_DICT = 2;
-    static final private int ACTION_DELETE_DICT = 3;
+    private static final int ACTION_UNKNOWN = 0;
+    private static final int ACTION_ENABLE_DICT = 1;
+    private static final int ACTION_DISABLE_DICT = 2;
+    private static final int ACTION_DELETE_DICT = 3;
 
     // Members
-    // The context to get resources
-    final Context mContext;
-    // The id of the client for which this preference is.
-    final String mClientId;
     // The metadata word list id and version of this word list.
     public final String mWordlistId;
     public final int mVersion;
     public final Locale mLocale;
     public final String mDescription;
+
+    // The id of the client for which this preference is.
+    private final String mClientId;
     // The status
     private int mStatus;
     // The size of the dictionary file
     private final int mFilesize;
 
     private final DictionaryListInterfaceState mInterfaceState;
-    private final OnWordListPreferenceClick mPreferenceClickHandler =
-            new OnWordListPreferenceClick();
-    private final OnActionButtonClick mActionButtonClickHandler =
-            new OnActionButtonClick();
 
     public WordListPreference(final Context context,
             final DictionaryListInterfaceState dictionaryListInterfaceState, final String clientId,
             final String wordlistId, final int version, final Locale locale,
             final String description, final int status, final int filesize) {
         super(context, null);
-        mContext = context;
         mInterfaceState = dictionaryListInterfaceState;
         mClientId = clientId;
         mVersion = version;
@@ -116,22 +110,23 @@
     }
 
     private String getSummary(final int status) {
+        final Context context = getContext();
         switch (status) {
-            // If we are deleting the word list, for the user it's like it's already deleted.
-            // It should be reinstallable. Exposing to the user the whole complexity of
-            // the delayed deletion process between the dictionary pack and Android Keyboard
-            // would only be confusing.
-            case MetadataDbHelper.STATUS_DELETING:
-            case MetadataDbHelper.STATUS_AVAILABLE:
-                return mContext.getString(R.string.dictionary_available);
-            case MetadataDbHelper.STATUS_DOWNLOADING:
-                return mContext.getString(R.string.dictionary_downloading);
-            case MetadataDbHelper.STATUS_INSTALLED:
-                return mContext.getString(R.string.dictionary_installed);
-            case MetadataDbHelper.STATUS_DISABLED:
-                return mContext.getString(R.string.dictionary_disabled);
-            default:
-                return NO_STATUS_MESSAGE;
+        // If we are deleting the word list, for the user it's like it's already deleted.
+        // It should be reinstallable. Exposing to the user the whole complexity of
+        // the delayed deletion process between the dictionary pack and Android Keyboard
+        // would only be confusing.
+        case MetadataDbHelper.STATUS_DELETING:
+        case MetadataDbHelper.STATUS_AVAILABLE:
+            return context.getString(R.string.dictionary_available);
+        case MetadataDbHelper.STATUS_DOWNLOADING:
+            return context.getString(R.string.dictionary_downloading);
+        case MetadataDbHelper.STATUS_INSTALLED:
+            return context.getString(R.string.dictionary_installed);
+        case MetadataDbHelper.STATUS_DISABLED:
+            return context.getString(R.string.dictionary_disabled);
+        default:
+            return NO_STATUS_MESSAGE;
         }
     }
 
@@ -154,7 +149,7 @@
         { ButtonSwitcher.STATUS_INSTALL, ACTION_ENABLE_DICT }
     };
 
-    private int getButtonSwitcherStatus(final int status) {
+    static int getButtonSwitcherStatus(final int status) {
         if (status >= sStatusActionList.length) {
             Log.e(TAG, "Unknown status " + status);
             return ButtonSwitcher.STATUS_NO_BUTTON;
@@ -162,7 +157,7 @@
         return sStatusActionList[status][0];
     }
 
-    private static int getActionIdFromStatusAndMenuEntry(final int status) {
+    static int getActionIdFromStatusAndMenuEntry(final int status) {
         if (status >= sStatusActionList.length) {
             Log.e(TAG, "Unknown status " + status);
             return ACTION_UNKNOWN;
@@ -171,9 +166,10 @@
     }
 
     private void disableDict() {
-        SharedPreferences prefs = CommonPreferences.getCommonPreferences(mContext);
+        final Context context = getContext();
+        final SharedPreferences prefs = CommonPreferences.getCommonPreferences(context);
         CommonPreferences.disable(prefs, mWordlistId);
-        UpdateHandler.markAsUnused(mContext, mClientId, mWordlistId, mVersion, mStatus);
+        UpdateHandler.markAsUnused(context, mClientId, mWordlistId, mVersion, mStatus);
         if (MetadataDbHelper.STATUS_DOWNLOADING == mStatus) {
             setStatus(MetadataDbHelper.STATUS_AVAILABLE);
         } else if (MetadataDbHelper.STATUS_INSTALLED == mStatus) {
@@ -184,11 +180,13 @@
             Log.e(TAG, "Unexpected state of the word list for disabling " + mStatus);
         }
     }
+
     private void enableDict() {
-        SharedPreferences prefs = CommonPreferences.getCommonPreferences(mContext);
+        final Context context = getContext();
+        final SharedPreferences prefs = CommonPreferences.getCommonPreferences(context);
         CommonPreferences.enable(prefs, mWordlistId);
         // Explicit enabling by the user : allow downloading on metered data connection.
-        UpdateHandler.markAsUsed(mContext, mClientId, mWordlistId, mVersion, mStatus, true);
+        UpdateHandler.markAsUsed(context, mClientId, mWordlistId, mVersion, mStatus, true);
         if (MetadataDbHelper.STATUS_AVAILABLE == mStatus) {
             setStatus(MetadataDbHelper.STATUS_DOWNLOADING);
         } else if (MetadataDbHelper.STATUS_DISABLED == mStatus
@@ -203,11 +201,13 @@
             Log.e(TAG, "Unexpected state of the word list for enabling " + mStatus);
         }
     }
+
     private void deleteDict() {
-        SharedPreferences prefs = CommonPreferences.getCommonPreferences(mContext);
+        final Context context = getContext();
+        final SharedPreferences prefs = CommonPreferences.getCommonPreferences(context);
         CommonPreferences.disable(prefs, mWordlistId);
         setStatus(MetadataDbHelper.STATUS_DELETING);
-        UpdateHandler.markAsDeleting(mContext, mClientId, mWordlistId, mVersion, mStatus);
+        UpdateHandler.markAsDeleting(context, mClientId, mWordlistId, mVersion, mStatus);
     }
 
     @Override
@@ -225,8 +225,8 @@
         status.setVisibility(showProgressBar ? View.INVISIBLE : View.VISIBLE);
         progressBar.setVisibility(showProgressBar ? View.VISIBLE : View.INVISIBLE);
 
-        final ButtonSwitcher buttonSwitcher =
-                (ButtonSwitcher)view.findViewById(R.id.wordlist_button_switcher);
+        final ButtonSwitcher buttonSwitcher = (ButtonSwitcher)view.findViewById(
+                R.id.wordlist_button_switcher);
         // We need to clear the state of the button switcher, because we reuse views; if we didn't
         // reset it would animate from whatever its old state was.
         buttonSwitcher.reset(mInterfaceState);
@@ -244,63 +244,67 @@
             // The button is closed.
             buttonSwitcher.setStatusAndUpdateVisuals(ButtonSwitcher.STATUS_NO_BUTTON);
         }
-        buttonSwitcher.setInternalOnClickListener(mActionButtonClickHandler);
-        view.setOnClickListener(mPreferenceClickHandler);
+        buttonSwitcher.setInternalOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(final View v) {
+                onActionButtonClicked();
+            }
+        });
+        view.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(final View v) {
+                onWordListClicked(v);
+            }
+        });
     }
 
-    private class OnWordListPreferenceClick implements View.OnClickListener {
-        @Override
-        public void onClick(final View v) {
-            // Note : v is the preference view
-            final ViewParent parent = v.getParent();
-            // Just in case something changed in the framework, test for the concrete class
-            if (!(parent instanceof ListView)) return;
-            final ListView listView = (ListView)parent;
-            final int indexToOpen;
-            // Close all first, we'll open back any item that needs to be open.
-            final boolean wasOpen = mInterfaceState.isOpen(mWordlistId);
-            mInterfaceState.closeAll();
-            if (wasOpen) {
-                // This button being shown. Take note that we don't want to open any button in the
-                // loop below.
-                indexToOpen = -1;
+    void onWordListClicked(final View v) {
+        // Note : v is the preference view
+        final ViewParent parent = v.getParent();
+        // Just in case something changed in the framework, test for the concrete class
+        if (!(parent instanceof ListView)) return;
+        final ListView listView = (ListView)parent;
+        final int indexToOpen;
+        // Close all first, we'll open back any item that needs to be open.
+        final boolean wasOpen = mInterfaceState.isOpen(mWordlistId);
+        mInterfaceState.closeAll();
+        if (wasOpen) {
+            // This button being shown. Take note that we don't want to open any button in the
+            // loop below.
+            indexToOpen = -1;
+        } else {
+            // This button was not being shown. Open it, and remember the index of this
+            // child as the one to open in the following loop.
+            mInterfaceState.setOpen(mWordlistId, mStatus);
+            indexToOpen = listView.indexOfChild(v);
+        }
+        final int lastDisplayedIndex =
+                listView.getLastVisiblePosition() - listView.getFirstVisiblePosition();
+        // The "lastDisplayedIndex" is actually displayed, hence the <=
+        for (int i = 0; i <= lastDisplayedIndex; ++i) {
+            final ButtonSwitcher buttonSwitcher = (ButtonSwitcher)listView.getChildAt(i)
+                    .findViewById(R.id.wordlist_button_switcher);
+            if (i == indexToOpen) {
+                buttonSwitcher.setStatusAndUpdateVisuals(getButtonSwitcherStatus(mStatus));
             } else {
-                // This button was not being shown. Open it, and remember the index of this
-                // child as the one to open in the following loop.
-                mInterfaceState.setOpen(mWordlistId, mStatus);
-                indexToOpen = listView.indexOfChild(v);
-            }
-            final int lastDisplayedIndex =
-                    listView.getLastVisiblePosition() - listView.getFirstVisiblePosition();
-            // The "lastDisplayedIndex" is actually displayed, hence the <=
-            for (int i = 0; i <= lastDisplayedIndex; ++i) {
-                final ButtonSwitcher buttonSwitcher = (ButtonSwitcher)listView.getChildAt(i)
-                        .findViewById(R.id.wordlist_button_switcher);
-                if (i == indexToOpen) {
-                    buttonSwitcher.setStatusAndUpdateVisuals(getButtonSwitcherStatus(mStatus));
-                } else {
-                    buttonSwitcher.setStatusAndUpdateVisuals(ButtonSwitcher.STATUS_NO_BUTTON);
-                }
+                buttonSwitcher.setStatusAndUpdateVisuals(ButtonSwitcher.STATUS_NO_BUTTON);
             }
         }
     }
 
-    private class OnActionButtonClick implements View.OnClickListener {
-        @Override
-        public void onClick(final View v) {
-            switch (getActionIdFromStatusAndMenuEntry(mStatus)) {
-            case ACTION_ENABLE_DICT:
-                enableDict();
-                break;
-            case ACTION_DISABLE_DICT:
-                disableDict();
-                break;
-            case ACTION_DELETE_DICT:
-                deleteDict();
-                break;
-            default:
-                Log.e(TAG, "Unknown menu item pressed");
-            }
+    void onActionButtonClicked() {
+        switch (getActionIdFromStatusAndMenuEntry(mStatus)) {
+        case ACTION_ENABLE_DICT:
+            enableDict();
+            break;
+        case ACTION_DISABLE_DICT:
+            disableDict();
+            break;
+        case ACTION_DELETE_DICT:
+            deleteDict();
+            break;
+        default:
+            Log.e(TAG, "Unknown menu item pressed");
         }
     }
 }
diff --git a/java/src/com/android/inputmethod/event/CombinerChain.java b/java/src/com/android/inputmethod/event/CombinerChain.java
index 2d2731f..d77ece8 100644
--- a/java/src/com/android/inputmethod/event/CombinerChain.java
+++ b/java/src/com/android/inputmethod/event/CombinerChain.java
@@ -19,10 +19,9 @@
 import android.text.SpannableStringBuilder;
 import android.text.TextUtils;
 
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.common.Constants;
 
 import java.util.ArrayList;
-import java.util.HashMap;
 
 import javax.annotation.Nonnull;
 
@@ -45,13 +44,6 @@
     private SpannableStringBuilder mStateFeedback;
     private final ArrayList<Combiner> mCombiners;
 
-    private static final HashMap<String, Class<? extends Combiner>> IMPLEMENTED_COMBINERS =
-            new HashMap<>();
-    static {
-        IMPLEMENTED_COMBINERS.put("MyanmarReordering", MyanmarReordering.class);
-    }
-    private static final String COMBINER_SPEC_SEPARATOR = ";";
-
     /**
      * Create an combiner chain.
      *
@@ -61,15 +53,11 @@
      * cursor: we'll start after this.
      *
      * @param initialText The text that has already been combined so far.
-     * @param combinerList A list of combiners to be applied in order.
      */
-    public CombinerChain(final String initialText, final Combiner... combinerList) {
+    public CombinerChain(final String initialText) {
         mCombiners = new ArrayList<>();
         // The dead key combiner is always active, and always first
         mCombiners.add(new DeadKeyCombiner());
-        for (final Combiner combiner : combinerList) {
-            mCombiners.add(combiner);
-        }
         mCombinedText = new StringBuilder(initialText);
         mStateFeedback = new SpannableStringBuilder();
     }
@@ -97,7 +85,8 @@
      *   new event. However it may never be null.
      */
     @Nonnull
-    public Event processEvent(final ArrayList<Event> previousEvents, final Event newEvent) {
+    public Event processEvent(final ArrayList<Event> previousEvents,
+            @Nonnull final Event newEvent) {
         final ArrayList<Event> modifiablePreviousEvents = new ArrayList<>(previousEvents);
         Event event = newEvent;
         for (final Combiner combiner : mCombiners) {
@@ -145,30 +134,4 @@
         final SpannableStringBuilder s = new SpannableStringBuilder(mCombinedText);
         return s.append(mStateFeedback);
     }
-
-    public static Combiner[] createCombiners(final String spec) {
-        if (TextUtils.isEmpty(spec)) {
-            return new Combiner[0];
-        }
-        final String[] combinerDescriptors = spec.split(COMBINER_SPEC_SEPARATOR);
-        final Combiner[] combiners = new Combiner[combinerDescriptors.length];
-        int i = 0;
-        for (final String combinerDescriptor : combinerDescriptors) {
-            final Class<? extends Combiner> combinerClass =
-                    IMPLEMENTED_COMBINERS.get(combinerDescriptor);
-            if (null == combinerClass) {
-                throw new RuntimeException("Unknown combiner descriptor: " + combinerDescriptor);
-            }
-            try {
-                combiners[i++] = combinerClass.newInstance();
-            } catch (InstantiationException e) {
-                throw new RuntimeException("Unable to instantiate combiner: " + combinerDescriptor,
-                        e);
-            } catch (IllegalAccessException e) {
-                throw new RuntimeException("Unable to instantiate combiner: " + combinerDescriptor,
-                        e);
-            }
-        }
-        return combiners;
-    }
 }
diff --git a/java/src/com/android/inputmethod/event/DeadKeyCombiner.java b/java/src/com/android/inputmethod/event/DeadKeyCombiner.java
index 4f3f4d2..1a28bb1 100644
--- a/java/src/com/android/inputmethod/event/DeadKeyCombiner.java
+++ b/java/src/com/android/inputmethod/event/DeadKeyCombiner.java
@@ -17,10 +17,11 @@
 package com.android.inputmethod.event;
 
 import android.text.TextUtils;
-import android.view.KeyCharacterMap;
+import android.util.SparseIntArray;
 
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.common.Constants;
 
+import java.text.Normalizer;
 import java.util.ArrayList;
 
 import javax.annotation.Nonnull;
@@ -29,9 +30,208 @@
  * A combiner that handles dead keys.
  */
 public class DeadKeyCombiner implements Combiner {
+
+    private static class Data {
+        // This class data taken from KeyCharacterMap.java.
+
+        /* Characters used to display placeholders for dead keys. */
+        private static final int ACCENT_ACUTE = '\u00B4';
+        private static final int ACCENT_BREVE = '\u02D8';
+        private static final int ACCENT_CARON = '\u02C7';
+        private static final int ACCENT_CEDILLA = '\u00B8';
+        private static final int ACCENT_CIRCUMFLEX = '\u02C6';
+        private static final int ACCENT_COMMA_ABOVE = '\u1FBD';
+        private static final int ACCENT_COMMA_ABOVE_RIGHT = '\u02BC';
+        private static final int ACCENT_DOT_ABOVE = '\u02D9';
+        private static final int ACCENT_DOT_BELOW = Constants.CODE_PERIOD; // approximate
+        private static final int ACCENT_DOUBLE_ACUTE = '\u02DD';
+        private static final int ACCENT_GRAVE = '\u02CB';
+        private static final int ACCENT_HOOK_ABOVE = '\u02C0';
+        private static final int ACCENT_HORN = Constants.CODE_SINGLE_QUOTE; // approximate
+        private static final int ACCENT_MACRON = '\u00AF';
+        private static final int ACCENT_MACRON_BELOW = '\u02CD';
+        private static final int ACCENT_OGONEK = '\u02DB';
+        private static final int ACCENT_REVERSED_COMMA_ABOVE = '\u02BD';
+        private static final int ACCENT_RING_ABOVE = '\u02DA';
+        private static final int ACCENT_STROKE = Constants.CODE_DASH; // approximate
+        private static final int ACCENT_TILDE = '\u02DC';
+        private static final int ACCENT_TURNED_COMMA_ABOVE = '\u02BB';
+        private static final int ACCENT_UMLAUT = '\u00A8';
+        private static final int ACCENT_VERTICAL_LINE_ABOVE = '\u02C8';
+        private static final int ACCENT_VERTICAL_LINE_BELOW = '\u02CC';
+
+        /* Legacy dead key display characters used in previous versions of the API (before L)
+         * We still support these characters by mapping them to their non-legacy version. */
+        private static final int ACCENT_GRAVE_LEGACY = Constants.CODE_GRAVE_ACCENT;
+        private static final int ACCENT_CIRCUMFLEX_LEGACY = Constants.CODE_CIRCUMFLEX_ACCENT;
+        private static final int ACCENT_TILDE_LEGACY = Constants.CODE_TILDE;
+
+        /**
+         * Maps Unicode combining diacritical to display-form dead key.
+         */
+        static final SparseIntArray sCombiningToAccent = new SparseIntArray();
+        static final SparseIntArray sAccentToCombining = new SparseIntArray();
+        static {
+            // U+0300: COMBINING GRAVE ACCENT
+            addCombining('\u0300', ACCENT_GRAVE);
+            // U+0301: COMBINING ACUTE ACCENT
+            addCombining('\u0301', ACCENT_ACUTE);
+            // U+0302: COMBINING CIRCUMFLEX ACCENT
+            addCombining('\u0302', ACCENT_CIRCUMFLEX);
+            // U+0303: COMBINING TILDE
+            addCombining('\u0303', ACCENT_TILDE);
+            // U+0304: COMBINING MACRON
+            addCombining('\u0304', ACCENT_MACRON);
+            // U+0306: COMBINING BREVE
+            addCombining('\u0306', ACCENT_BREVE);
+            // U+0307: COMBINING DOT ABOVE
+            addCombining('\u0307', ACCENT_DOT_ABOVE);
+            // U+0308: COMBINING DIAERESIS
+            addCombining('\u0308', ACCENT_UMLAUT);
+            // U+0309: COMBINING HOOK ABOVE
+            addCombining('\u0309', ACCENT_HOOK_ABOVE);
+            // U+030A: COMBINING RING ABOVE
+            addCombining('\u030A', ACCENT_RING_ABOVE);
+            // U+030B: COMBINING DOUBLE ACUTE ACCENT
+            addCombining('\u030B', ACCENT_DOUBLE_ACUTE);
+            // U+030C: COMBINING CARON
+            addCombining('\u030C', ACCENT_CARON);
+            // U+030D: COMBINING VERTICAL LINE ABOVE
+            addCombining('\u030D', ACCENT_VERTICAL_LINE_ABOVE);
+            // U+030E: COMBINING DOUBLE VERTICAL LINE ABOVE
+            //addCombining('\u030E', ACCENT_DOUBLE_VERTICAL_LINE_ABOVE);
+            // U+030F: COMBINING DOUBLE GRAVE ACCENT
+            //addCombining('\u030F', ACCENT_DOUBLE_GRAVE);
+            // U+0310: COMBINING CANDRABINDU
+            //addCombining('\u0310', ACCENT_CANDRABINDU);
+            // U+0311: COMBINING INVERTED BREVE
+            //addCombining('\u0311', ACCENT_INVERTED_BREVE);
+            // U+0312: COMBINING TURNED COMMA ABOVE
+            addCombining('\u0312', ACCENT_TURNED_COMMA_ABOVE);
+            // U+0313: COMBINING COMMA ABOVE
+            addCombining('\u0313', ACCENT_COMMA_ABOVE);
+            // U+0314: COMBINING REVERSED COMMA ABOVE
+            addCombining('\u0314', ACCENT_REVERSED_COMMA_ABOVE);
+            // U+0315: COMBINING COMMA ABOVE RIGHT
+            addCombining('\u0315', ACCENT_COMMA_ABOVE_RIGHT);
+            // U+031B: COMBINING HORN
+            addCombining('\u031B', ACCENT_HORN);
+            // U+0323: COMBINING DOT BELOW
+            addCombining('\u0323', ACCENT_DOT_BELOW);
+            // U+0326: COMBINING COMMA BELOW
+            //addCombining('\u0326', ACCENT_COMMA_BELOW);
+            // U+0327: COMBINING CEDILLA
+            addCombining('\u0327', ACCENT_CEDILLA);
+            // U+0328: COMBINING OGONEK
+            addCombining('\u0328', ACCENT_OGONEK);
+            // U+0329: COMBINING VERTICAL LINE BELOW
+            addCombining('\u0329', ACCENT_VERTICAL_LINE_BELOW);
+            // U+0331: COMBINING MACRON BELOW
+            addCombining('\u0331', ACCENT_MACRON_BELOW);
+            // U+0335: COMBINING SHORT STROKE OVERLAY
+            addCombining('\u0335', ACCENT_STROKE);
+            // U+0342: COMBINING GREEK PERISPOMENI
+            //addCombining('\u0342', ACCENT_PERISPOMENI);
+            // U+0344: COMBINING GREEK DIALYTIKA TONOS
+            //addCombining('\u0344', ACCENT_DIALYTIKA_TONOS);
+            // U+0345: COMBINING GREEK YPOGEGRAMMENI
+            //addCombining('\u0345', ACCENT_YPOGEGRAMMENI);
+
+            // One-way mappings to equivalent preferred accents.
+            // U+0340: COMBINING GRAVE TONE MARK
+            sCombiningToAccent.append('\u0340', ACCENT_GRAVE);
+            // U+0341: COMBINING ACUTE TONE MARK
+            sCombiningToAccent.append('\u0341', ACCENT_ACUTE);
+            // U+0343: COMBINING GREEK KORONIS
+            sCombiningToAccent.append('\u0343', ACCENT_COMMA_ABOVE);
+
+            // One-way legacy mappings to preserve compatibility with older applications.
+            // U+0300: COMBINING GRAVE ACCENT
+            sAccentToCombining.append(ACCENT_GRAVE_LEGACY, '\u0300');
+            // U+0302: COMBINING CIRCUMFLEX ACCENT
+            sAccentToCombining.append(ACCENT_CIRCUMFLEX_LEGACY, '\u0302');
+            // U+0303: COMBINING TILDE
+            sAccentToCombining.append(ACCENT_TILDE_LEGACY, '\u0303');
+        }
+
+        private static void addCombining(int combining, int accent) {
+            sCombiningToAccent.append(combining, accent);
+            sAccentToCombining.append(accent, combining);
+        }
+
+        // Caution! This may only contain chars, not supplementary code points. It's unlikely
+        // it will ever need to, but if it does we'll have to change this
+        private static final SparseIntArray sNonstandardDeadCombinations = new SparseIntArray();
+        static {
+            // Non-standard decompositions.
+            // Stroke modifier for Finnish multilingual keyboard and others.
+            // U+0110: LATIN CAPITAL LETTER D WITH STROKE
+            addNonStandardDeadCombination(ACCENT_STROKE, 'D', '\u0110');
+            // U+01E4: LATIN CAPITAL LETTER G WITH STROKE
+            addNonStandardDeadCombination(ACCENT_STROKE, 'G', '\u01e4');
+            // U+0126: LATIN CAPITAL LETTER H WITH STROKE
+            addNonStandardDeadCombination(ACCENT_STROKE, 'H', '\u0126');
+            // U+0197: LATIN CAPITAL LETTER I WITH STROKE
+            addNonStandardDeadCombination(ACCENT_STROKE, 'I', '\u0197');
+            // U+0141: LATIN CAPITAL LETTER L WITH STROKE
+            addNonStandardDeadCombination(ACCENT_STROKE, 'L', '\u0141');
+            // U+00D8: LATIN CAPITAL LETTER O WITH STROKE
+            addNonStandardDeadCombination(ACCENT_STROKE, 'O', '\u00d8');
+            // U+0166: LATIN CAPITAL LETTER T WITH STROKE
+            addNonStandardDeadCombination(ACCENT_STROKE, 'T', '\u0166');
+            // U+0111: LATIN SMALL LETTER D WITH STROKE
+            addNonStandardDeadCombination(ACCENT_STROKE, 'd', '\u0111');
+            // U+01E5: LATIN SMALL LETTER G WITH STROKE
+            addNonStandardDeadCombination(ACCENT_STROKE, 'g', '\u01e5');
+            // U+0127: LATIN SMALL LETTER H WITH STROKE
+            addNonStandardDeadCombination(ACCENT_STROKE, 'h', '\u0127');
+            // U+0268: LATIN SMALL LETTER I WITH STROKE
+            addNonStandardDeadCombination(ACCENT_STROKE, 'i', '\u0268');
+            // U+0142: LATIN SMALL LETTER L WITH STROKE
+            addNonStandardDeadCombination(ACCENT_STROKE, 'l', '\u0142');
+            // U+00F8: LATIN SMALL LETTER O WITH STROKE
+            addNonStandardDeadCombination(ACCENT_STROKE, 'o', '\u00f8');
+            // U+0167: LATIN SMALL LETTER T WITH STROKE
+            addNonStandardDeadCombination(ACCENT_STROKE, 't', '\u0167');
+        }
+
+        private static void addNonStandardDeadCombination(final int deadCodePoint,
+                final int spacingCodePoint, final int result) {
+            final int combination = (deadCodePoint << 16) | spacingCodePoint;
+            sNonstandardDeadCombinations.put(combination, result);
+        }
+
+        public static final int NOT_A_CHAR = 0;
+        public static final int BITS_TO_SHIFT_DEAD_CODE_POINT_FOR_NON_STANDARD_COMBINATION = 16;
+        // Get a non-standard combination
+        public static char getNonstandardCombination(final int deadCodePoint,
+                final int spacingCodePoint) {
+            final int combination = spacingCodePoint |
+                    (deadCodePoint << BITS_TO_SHIFT_DEAD_CODE_POINT_FOR_NON_STANDARD_COMBINATION);
+            return (char)sNonstandardDeadCombinations.get(combination, NOT_A_CHAR);
+        }
+    }
+
     // TODO: make this a list of events instead
     final StringBuilder mDeadSequence = new StringBuilder();
 
+    @Nonnull
+    private static Event createEventChainFromSequence(final @Nonnull CharSequence text,
+            @Nonnull final Event originalEvent) {
+        int index = text.length();
+        if (index <= 0) {
+            return originalEvent;
+        }
+        Event lastEvent = null;
+        do {
+            final int codePoint = Character.codePointBefore(text, index);
+            lastEvent = Event.createHardwareKeypressEvent(codePoint,
+                    originalEvent.mKeyCode, lastEvent, false /* isKeyRepeat */);
+            index -= Character.charCount(codePoint);
+        } while (index > 0);
+        return lastEvent;
+    }
+
     @Override
     @Nonnull
     public Event processEvent(final ArrayList<Event> previousEvents, final Event event) {
@@ -46,32 +246,49 @@
             // no dead keys at all in the current input, so this combiner has nothing to do and
             // simply returns the event as is. The majority of events will go through this path.
             return event;
-        } else {
-            // TODO: Allow combining for several dead chars rather than only the first one.
-            // The framework doesn't know how to do this now.
-            final int deadCodePoint = mDeadSequence.codePointAt(0);
-            mDeadSequence.setLength(0);
-            final int resultingCodePoint =
-                    KeyCharacterMap.getDeadChar(deadCodePoint, event.mCodePoint);
-            if (0 == resultingCodePoint) {
-                // We can't combine both characters. We need to commit the dead key as a separate
-                // character, and the next char too unless it's a space (because as a special case,
-                // dead key + space should result in only the dead key being committed - that's
-                // how dead keys work).
-                // If the event is a space, we should commit the dead char alone, but if it's
-                // not, we need to commit both.
-                // TODO: this is not necessarily triggered by hardware key events, so it's not
-                // a good idea to masquerade as one. This should be typed as a software
-                // composite event or something.
-                return Event.createHardwareKeypressEvent(deadCodePoint, event.mKeyCode,
-                        Constants.CODE_SPACE == event.mCodePoint ? null : event /* next */,
-                        false /* isKeyRepeat */);
-            } else {
-                // We could combine the characters.
-                return Event.createHardwareKeypressEvent(resultingCodePoint, event.mKeyCode,
-                        null /* next */, false /* isKeyRepeat */);
-            }
         }
+        if (Character.isWhitespace(event.mCodePoint)
+                || event.mCodePoint == mDeadSequence.codePointBefore(mDeadSequence.length())) {
+            // When whitespace or twice the same dead key, we should output the dead sequence as is.
+            final Event resultEvent = createEventChainFromSequence(mDeadSequence.toString(),
+                    event);
+            mDeadSequence.setLength(0);
+            return resultEvent;
+        }
+        if (event.isFunctionalKeyEvent()) {
+            if (Constants.CODE_DELETE == event.mKeyCode) {
+                // Remove the last code point
+                final int trimIndex = mDeadSequence.length() - Character.charCount(
+                        mDeadSequence.codePointBefore(mDeadSequence.length()));
+                mDeadSequence.setLength(trimIndex);
+                return Event.createConsumedEvent(event);
+            }
+            return event;
+        }
+        if (event.isDead()) {
+            mDeadSequence.appendCodePoint(event.mCodePoint);
+            return Event.createConsumedEvent(event);
+        }
+        // Combine normally.
+        final StringBuilder sb = new StringBuilder();
+        sb.appendCodePoint(event.mCodePoint);
+        int codePointIndex = 0;
+        while (codePointIndex < mDeadSequence.length()) {
+            final int deadCodePoint = mDeadSequence.codePointAt(codePointIndex);
+            final char replacementSpacingChar =
+                    Data.getNonstandardCombination(deadCodePoint, event.mCodePoint);
+            if (Data.NOT_A_CHAR != replacementSpacingChar) {
+                sb.setCharAt(0, replacementSpacingChar);
+            } else {
+                final int combining = Data.sAccentToCombining.get(deadCodePoint);
+                sb.appendCodePoint(0 == combining ? deadCodePoint : combining);
+            }
+            codePointIndex += Character.isSupplementaryCodePoint(deadCodePoint) ? 2 : 1;
+        }
+        final String normalizedString = Normalizer.normalize(sb, Normalizer.Form.NFC);
+        final Event resultEvent = createEventChainFromSequence(normalizedString, event);
+        mDeadSequence.setLength(0);
+        return resultEvent;
     }
 
     @Override
diff --git a/java/src/com/android/inputmethod/event/Event.java b/java/src/com/android/inputmethod/event/Event.java
index ef5b047..e3b1afc 100644
--- a/java/src/com/android/inputmethod/event/Event.java
+++ b/java/src/com/android/inputmethod/event/Event.java
@@ -16,9 +16,12 @@
 
 package com.android.inputmethod.event;
 
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.annotations.ExternallyReferenced;
 import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
-import com.android.inputmethod.latin.utils.StringUtils;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.StringUtils;
+
+import javax.annotation.Nonnull;
 
 /**
  * Class representing a generic input event as handled by Latin IME.
@@ -55,6 +58,8 @@
     final public static int EVENT_TYPE_SUGGESTION_PICKED = 5;
     // An event corresponding to a string generated by some software process.
     final public static int EVENT_TYPE_SOFTWARE_GENERATED_STRING = 6;
+    // An event corresponding to a cursor move
+    final public static int EVENT_TYPE_CURSOR_MOVE = 7;
 
     // 0 is a valid code point, so we use -1 here.
     final public static int NOT_A_CODE_POINT = -1;
@@ -133,12 +138,14 @@
         }
     }
 
+    @Nonnull
     public static Event createSoftwareKeypressEvent(final int codePoint, final int keyCode,
             final int x, final int y, final boolean isKeyRepeat) {
         return new Event(EVENT_TYPE_INPUT_KEYPRESS, null /* text */, codePoint, keyCode, x, y,
                 null /* suggestedWordInfo */, isKeyRepeat ? FLAG_REPEAT : FLAG_NONE, null);
     }
 
+    @Nonnull
     public static Event createHardwareKeypressEvent(final int codePoint, final int keyCode,
             final Event next, final boolean isKeyRepeat) {
         return new Event(EVENT_TYPE_INPUT_KEYPRESS, null /* text */, codePoint, keyCode,
@@ -147,6 +154,8 @@
     }
 
     // This creates an input event for a dead character. @see {@link #FLAG_DEAD}
+    @ExternallyReferenced
+    @Nonnull
     public static Event createDeadEvent(final int codePoint, final int keyCode, final Event next) {
         // TODO: add an argument or something if we ever create a software layout with dead keys.
         return new Event(EVENT_TYPE_INPUT_KEYPRESS, null /* text */, codePoint, keyCode,
@@ -161,6 +170,7 @@
      * @param codePoint the code point.
      * @return an event for this code point.
      */
+    @Nonnull
     public static Event createEventForCodePointFromUnknownSource(final int codePoint) {
         // TODO: should we have a different type of event for this? After all, it's not a key press.
         return new Event(EVENT_TYPE_INPUT_KEYPRESS, null /* text */, codePoint, NOT_A_KEY_CODE,
@@ -176,6 +186,7 @@
      * @param y the Y coordinate.
      * @return an event for this code point and coordinates.
      */
+    @Nonnull
     public static Event createEventForCodePointFromAlreadyTypedText(final int codePoint,
             final int x, final int y) {
         // TODO: should we have a different type of event for this? After all, it's not a key press.
@@ -187,6 +198,7 @@
      * Creates an input event representing the manual pick of a suggestion.
      * @return an event for this suggestion pick.
      */
+    @Nonnull
     public static Event createSuggestionPickedEvent(final SuggestedWordInfo suggestedWordInfo) {
         return new Event(EVENT_TYPE_SUGGESTION_PICKED, suggestedWordInfo.mWord,
                 NOT_A_CODE_POINT, NOT_A_KEY_CODE,
@@ -202,6 +214,7 @@
      * @param keyCode the key code, or NOT_A_KEYCODE if not applicable.
      * @return an event for this text.
      */
+    @Nonnull
     public static Event createSoftwareTextEvent(final CharSequence text, final int keyCode) {
         return new Event(EVENT_TYPE_SOFTWARE_GENERATED_STRING, text, NOT_A_CODE_POINT, keyCode,
                 Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE,
@@ -212,6 +225,7 @@
      * Creates an input event representing the manual pick of a punctuation suggestion.
      * @return an event for this suggestion pick.
      */
+    @Nonnull
     public static Event createPunctuationSuggestionPickedEvent(
             final SuggestedWordInfo suggestedWordInfo) {
         final int primaryCode = suggestedWordInfo.mWord.charAt(0);
@@ -222,10 +236,23 @@
     }
 
     /**
+     * Creates an input event representing moving the cursor. The relative move amount is stored
+     * in mX.
+     * @param moveAmount the relative move amount.
+     * @return an event for this cursor move.
+     */
+    @Nonnull
+    public static Event createCursorMovedEvent(final int moveAmount) {
+        return new Event(EVENT_TYPE_CURSOR_MOVE, null, NOT_A_CODE_POINT, NOT_A_KEY_CODE,
+                moveAmount, Constants.NOT_A_COORDINATE, null, FLAG_NONE, null);
+    }
+
+    /**
      * Creates an event identical to the passed event, but that has already been consumed.
      * @param source the event to copy the properties of.
      * @return an identical event marked as consumed.
      */
+    @Nonnull
     public static Event createConsumedEvent(final Event source) {
         // A consumed event should not input any text at all, so we pass the empty string as text.
         return new Event(source.mEventType, source.mText, source.mCodePoint, source.mKeyCode,
@@ -233,6 +260,7 @@
                 source.mNextEvent);
     }
 
+    @Nonnull
     public static Event createNotHandledEvent() {
         return new Event(EVENT_TYPE_NOT_HANDLED, null /* text */, NOT_A_CODE_POINT, NOT_A_KEY_CODE,
                 Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE,
@@ -277,6 +305,7 @@
         case EVENT_TYPE_MODE_KEY:
         case EVENT_TYPE_NOT_HANDLED:
         case EVENT_TYPE_TOGGLE:
+        case EVENT_TYPE_CURSOR_MOVE:
             return "";
         case EVENT_TYPE_INPUT_KEYPRESS:
             return StringUtils.newSingleCodePointString(mCodePoint);
diff --git a/java/src/com/android/inputmethod/event/HardwareKeyboardEventDecoder.java b/java/src/com/android/inputmethod/event/HardwareKeyboardEventDecoder.java
index c61f45e..3a4097d 100644
--- a/java/src/com/android/inputmethod/event/HardwareKeyboardEventDecoder.java
+++ b/java/src/com/android/inputmethod/event/HardwareKeyboardEventDecoder.java
@@ -19,7 +19,7 @@
 import android.view.KeyCharacterMap;
 import android.view.KeyEvent;
 
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.common.Constants;
 
 /**
  * A hardware event decoder for a hardware qwerty-ish keyboard.
@@ -67,10 +67,9 @@
                 if (keyEvent.isShiftPressed()) {
                     return Event.createHardwareKeypressEvent(Event.NOT_A_CODE_POINT,
                             Constants.CODE_SHIFT_ENTER, null /* next */, isKeyRepeat);
-                } else {
-                    return Event.createHardwareKeypressEvent(Constants.CODE_ENTER, keyCode,
-                            null /* next */, isKeyRepeat);
                 }
+                return Event.createHardwareKeypressEvent(Constants.CODE_ENTER, keyCode,
+                        null /* next */, isKeyRepeat);
             }
             // If not Enter, then this is just a regular keypress event for a normal character
             // that can be committed right away, taking into account the current state.
diff --git a/java/src/com/android/inputmethod/event/MyanmarReordering.java b/java/src/com/android/inputmethod/event/MyanmarReordering.java
deleted file mode 100644
index dcd06c8..0000000
--- a/java/src/com/android/inputmethod/event/MyanmarReordering.java
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.event;
-
-import com.android.inputmethod.latin.Constants;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-
-import javax.annotation.Nonnull;
-
-/**
- * A combiner that reorders input for Myanmar.
- */
-public class MyanmarReordering implements Combiner {
-    // U+1031 MYANMAR VOWEL SIGN E
-    private final static int VOWEL_E = 0x1031; // Code point for vowel E that we need to reorder
-    // U+200C ZERO WIDTH NON-JOINER
-    // U+200B ZERO WIDTH SPACE
-    private final static int ZERO_WIDTH_NON_JOINER = 0x200B; // should be 0x200C
-
-    private final ArrayList<Event> mCurrentEvents = new ArrayList<>();
-
-    // List of consonants :
-    // U+1000 MYANMAR LETTER KA
-    // U+1001 MYANMAR LETTER KHA
-    // U+1002 MYANMAR LETTER GA
-    // U+1003 MYANMAR LETTER GHA
-    // U+1004 MYANMAR LETTER NGA
-    // U+1005 MYANMAR LETTER CA
-    // U+1006 MYANMAR LETTER CHA
-    // U+1007 MYANMAR LETTER JA
-    // U+1008 MYANMAR LETTER JHA
-    // U+1009 MYANMAR LETTER NYA
-    // U+100A MYANMAR LETTER NNYA
-    // U+100B MYANMAR LETTER TTA
-    // U+100C MYANMAR LETTER TTHA
-    // U+100D MYANMAR LETTER DDA
-    // U+100E MYANMAR LETTER DDHA
-    // U+100F MYANMAR LETTER NNA
-    // U+1010 MYANMAR LETTER TA
-    // U+1011 MYANMAR LETTER THA
-    // U+1012 MYANMAR LETTER DA
-    // U+1013 MYANMAR LETTER DHA
-    // U+1014 MYANMAR LETTER NA
-    // U+1015 MYANMAR LETTER PA
-    // U+1016 MYANMAR LETTER PHA
-    // U+1017 MYANMAR LETTER BA
-    // U+1018 MYANMAR LETTER BHA
-    // U+1019 MYANMAR LETTER MA
-    // U+101A MYANMAR LETTER YA
-    // U+101B MYANMAR LETTER RA
-    // U+101C MYANMAR LETTER LA
-    // U+101D MYANMAR LETTER WA
-    // U+101E MYANMAR LETTER SA
-    // U+101F MYANMAR LETTER HA
-    // U+1020 MYANMAR LETTER LLA
-    // U+103F MYANMAR LETTER GREAT SA
-    private static boolean isConsonant(final int codePoint) {
-        return (codePoint >= 0x1000 && codePoint <= 0x1020) || 0x103F == codePoint;
-    }
-
-    // List of medials :
-    // U+103B MYANMAR CONSONANT SIGN MEDIAL YA
-    // U+103C MYANMAR CONSONANT SIGN MEDIAL RA
-    // U+103D MYANMAR CONSONANT SIGN MEDIAL WA
-    // U+103E MYANMAR CONSONANT SIGN MEDIAL HA
-    // U+105E MYANMAR CONSONANT SIGN MON MEDIAL NA
-    // U+105F MYANMAR CONSONANT SIGN MON MEDIAL MA
-    // U+1060 MYANMAR CONSONANT SIGN MON MEDIAL LA
-    // U+1082 MYANMAR CONSONANT SIGN SHAN MEDIAL WA
-    private static int[] MEDIAL_LIST = { 0x103B, 0x103C, 0x103D, 0x103E,
-            0x105E, 0x105F, 0x1060, 0x1082};
-    private static boolean isMedial(final int codePoint) {
-        return Arrays.binarySearch(MEDIAL_LIST, codePoint) >= 0;
-    }
-
-    private static boolean isConsonantOrMedial(final int codePoint) {
-        return isConsonant(codePoint) || isMedial(codePoint);
-    }
-
-    private Event getLastEvent() {
-        final int size = mCurrentEvents.size();
-        if (size <= 0) {
-            return null;
-        }
-        return mCurrentEvents.get(size - 1);
-    }
-
-    private CharSequence getCharSequence() {
-        final StringBuilder s = new StringBuilder();
-        for (final Event e : mCurrentEvents) {
-            s.appendCodePoint(e.mCodePoint);
-        }
-        return s;
-    }
-
-    /**
-     * Clears the currently combining stream of events and returns the resulting software text
-     * event corresponding to the stream. Optionally adds a new event to the cleared stream.
-     * @param newEvent the new event to add to the stream. null if none.
-     * @return the resulting software text event. Never null.
-     */
-    private Event clearAndGetResultingEvent(final Event newEvent) {
-        final CharSequence combinedText;
-        if (mCurrentEvents.size() > 0) {
-            combinedText = getCharSequence();
-            mCurrentEvents.clear();
-        } else {
-            combinedText = null;
-        }
-        if (null != newEvent) {
-            mCurrentEvents.add(newEvent);
-        }
-        return null == combinedText ? Event.createConsumedEvent(newEvent)
-                : Event.createSoftwareTextEvent(combinedText, Event.NOT_A_KEY_CODE);
-    }
-
-    @Override
-    @Nonnull
-    public Event processEvent(ArrayList<Event> previousEvents, Event newEvent) {
-        final int codePoint = newEvent.mCodePoint;
-        if (VOWEL_E == codePoint) {
-            final Event lastEvent = getLastEvent();
-            if (null == lastEvent) {
-                mCurrentEvents.add(newEvent);
-                return Event.createConsumedEvent(newEvent);
-            } else if (isConsonantOrMedial(lastEvent.mCodePoint)) {
-                final Event resultingEvent = clearAndGetResultingEvent(null);
-                mCurrentEvents.add(Event.createSoftwareKeypressEvent(ZERO_WIDTH_NON_JOINER,
-                        Event.NOT_A_KEY_CODE,
-                        Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE,
-                        false /* isKeyRepeat */));
-                mCurrentEvents.add(newEvent);
-                return resultingEvent;
-            } else { // VOWEL_E == lastCodePoint. But if that was anything else this is correct too.
-                return clearAndGetResultingEvent(newEvent);
-            }
-        } if (isConsonant(codePoint)) {
-            final Event lastEvent = getLastEvent();
-            if (null == lastEvent) {
-                mCurrentEvents.add(newEvent);
-                return Event.createConsumedEvent(newEvent);
-            } else if (VOWEL_E == lastEvent.mCodePoint) {
-                final int eventSize = mCurrentEvents.size();
-                if (eventSize >= 2
-                        && mCurrentEvents.get(eventSize - 2).mCodePoint == ZERO_WIDTH_NON_JOINER) {
-                    // We have a ZWJN before a vowel E. We need to remove the ZWNJ and then
-                    // reorder the vowel with respect to the consonant.
-                    mCurrentEvents.remove(eventSize - 1);
-                    mCurrentEvents.remove(eventSize - 2);
-                    mCurrentEvents.add(newEvent);
-                    mCurrentEvents.add(lastEvent);
-                    return Event.createConsumedEvent(newEvent);
-                }
-                // If there is already a consonant, then we are starting a new syllable.
-                for (int i = eventSize - 2; i >= 0; --i) {
-                    if (isConsonant(mCurrentEvents.get(i).mCodePoint)) {
-                        return clearAndGetResultingEvent(newEvent);
-                    }
-                }
-                // If we come here, we didn't have a consonant so we reorder
-                mCurrentEvents.remove(eventSize - 1);
-                mCurrentEvents.add(newEvent);
-                mCurrentEvents.add(lastEvent);
-                return Event.createConsumedEvent(newEvent);
-            } else { // lastCodePoint is a consonant/medial. But if it's something else it's fine
-                return clearAndGetResultingEvent(newEvent);
-            }
-        } else if (isMedial(codePoint)) {
-            final Event lastEvent = getLastEvent();
-            if (null == lastEvent) {
-                mCurrentEvents.add(newEvent);
-                return Event.createConsumedEvent(newEvent);
-            } else if (VOWEL_E == lastEvent.mCodePoint) {
-                final int eventSize = mCurrentEvents.size();
-                // If there is already a consonant, then we are in the middle of a syllable, and we
-                // need to reorder.
-                boolean hasConsonant = false;
-                for (int i = eventSize - 2; i >= 0; --i) {
-                    if (isConsonant(mCurrentEvents.get(i).mCodePoint)) {
-                        hasConsonant = true;
-                        break;
-                    }
-                }
-                if (hasConsonant) {
-                    mCurrentEvents.remove(eventSize - 1);
-                    mCurrentEvents.add(newEvent);
-                    mCurrentEvents.add(lastEvent);
-                    return Event.createConsumedEvent(newEvent);
-                }
-                // Otherwise, we just commit everything.
-                return clearAndGetResultingEvent(null);
-            } else { // lastCodePoint is a consonant/medial. But if it's something else it's fine
-                return clearAndGetResultingEvent(newEvent);
-            }
-        } else if (Constants.CODE_DELETE == newEvent.mKeyCode) {
-            final Event lastEvent = getLastEvent();
-            final int eventSize = mCurrentEvents.size();
-            if (null != lastEvent) {
-                if (VOWEL_E == lastEvent.mCodePoint) {
-                    // We have a VOWEL_E at the end. There are four cases.
-                    // - The vowel is the only code point in the buffer. Remove it.
-                    // - The vowel is preceded by a ZWNJ. Remove both vowel E and ZWNJ.
-                    // - The vowel is preceded by a consonant/medial, remove the consonant/medial.
-                    // - In all other cases, it's strange, so just remove the last code point.
-                    if (eventSize <= 1) {
-                        mCurrentEvents.clear();
-                    } else { // eventSize >= 2
-                        final int previousCodePoint = mCurrentEvents.get(eventSize - 2).mCodePoint;
-                        if (previousCodePoint == ZERO_WIDTH_NON_JOINER) {
-                            mCurrentEvents.remove(eventSize - 1);
-                            mCurrentEvents.remove(eventSize - 2);
-                        } else if (isConsonantOrMedial(previousCodePoint)) {
-                            mCurrentEvents.remove(eventSize - 2);
-                        } else {
-                            mCurrentEvents.remove(eventSize - 1);
-                        }
-                    }
-                    return Event.createConsumedEvent(newEvent);
-                } else if (eventSize > 0) {
-                    mCurrentEvents.remove(eventSize - 1);
-                    return Event.createConsumedEvent(newEvent);
-                }
-            }
-        }
-        // This character is not part of the combining scheme, so we should reset everything.
-        if (mCurrentEvents.size() > 0) {
-            // If we have events in flight, then add the new event and return the resulting event.
-            mCurrentEvents.add(newEvent);
-            return clearAndGetResultingEvent(null);
-        } else {
-            // If we don't have any events in flight, then just pass this one through.
-            return newEvent;
-        }
-    }
-
-    @Override
-    public CharSequence getCombiningStateFeedback() {
-        return getCharSequence();
-    }
-
-    @Override
-    public void reset() {
-        mCurrentEvents.clear();
-    }
-}
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index 81ea90a..299d1b7 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -17,10 +17,10 @@
 package com.android.inputmethod.keyboard;
 
 import static com.android.inputmethod.keyboard.internal.KeyboardIconsSet.ICON_UNDEFINED;
-import static com.android.inputmethod.latin.Constants.CODE_OUTPUT_TEXT;
-import static com.android.inputmethod.latin.Constants.CODE_SHIFT;
-import static com.android.inputmethod.latin.Constants.CODE_SWITCH_ALPHA_SYMBOL;
-import static com.android.inputmethod.latin.Constants.CODE_UNSPECIFIED;
+import static com.android.inputmethod.latin.common.Constants.CODE_OUTPUT_TEXT;
+import static com.android.inputmethod.latin.common.Constants.CODE_SHIFT;
+import static com.android.inputmethod.latin.common.Constants.CODE_SWITCH_ALPHA_SYMBOL;
+import static com.android.inputmethod.latin.common.Constants.CODE_UNSPECIFIED;
 
 import android.content.res.TypedArray;
 import android.graphics.Rect;
@@ -36,13 +36,16 @@
 import com.android.inputmethod.keyboard.internal.KeyboardParams;
 import com.android.inputmethod.keyboard.internal.KeyboardRow;
 import com.android.inputmethod.keyboard.internal.MoreKeySpec;
-import com.android.inputmethod.latin.Constants;
 import com.android.inputmethod.latin.R;
-import com.android.inputmethod.latin.utils.StringUtils;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.StringUtils;
 
 import java.util.Arrays;
 import java.util.Locale;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 /**
  * Class for describing the position and characteristics of a single key in the keyboard.
  */
@@ -94,18 +97,30 @@
     /** Icon to display instead of a label. Icon takes precedence over a label */
     private final int mIconId;
 
-    /** Width of the key, not including the gap */
+    /** Width of the key, excluding the gap */
     private final int mWidth;
-    /** Height of the key, not including the gap */
+    /** Height of the key, excluding the gap */
     private final int mHeight;
-    /** X coordinate of the key in the keyboard layout */
+    /**
+     * The combined width in pixels of the horizontal gaps belonging to this key, both to the left
+     * and to the right. I.e., mWidth + mHorizontalGap = total width belonging to the key.
+     */
+    private final int mHorizontalGap;
+    /**
+     * The combined height in pixels of the vertical gaps belonging to this key, both above and
+     * below. I.e., mHeight + mVerticalGap = total height belonging to the key.
+     */
+    private final int mVerticalGap;
+    /** X coordinate of the top-left corner of the key in the keyboard layout, excluding the gap. */
     private final int mX;
-    /** Y coordinate of the key in the keyboard layout */
+    /** Y coordinate of the top-left corner of the key in the keyboard layout, excluding the gap. */
     private final int mY;
     /** Hit bounding box of the key */
+    @Nonnull
     private final Rect mHitBox = new Rect();
 
     /** More keys. It is guaranteed that this is null or an array of one or more elements */
+    @Nullable
     private final MoreKeySpec[] mMoreKeys;
     /** More keys column number and flags */
     private final int mMoreKeysColumnAndFlags;
@@ -148,8 +163,9 @@
     private static final int ACTION_FLAGS_ALT_CODE_WHILE_TYPING = 0x04;
     private static final int ACTION_FLAGS_ENABLE_LONG_PRESS = 0x08;
 
+    @Nullable
     private final KeyVisualAttributes mKeyVisualAttributes;
-
+    @Nullable
     private final OptionalAttributes mOptionalAttributes;
 
     private static final class OptionalAttributes {
@@ -171,6 +187,7 @@
             mVisualInsetsRight = visualInsetsRight;
         }
 
+        @Nullable
         public static OptionalAttributes newInstance(final String outputText, final int altCode,
                 final int disabledIconId, final int visualInsetsLeft, final int visualInsetsRight) {
             if (outputText == null && altCode == CODE_UNSPECIFIED
@@ -194,12 +211,14 @@
      * Constructor for a key on <code>MoreKeyKeyboard</code>, on <code>MoreSuggestions</code>,
      * and in a <GridRows/>.
      */
-    public Key(final String label, final int iconId, final int code, final String outputText,
-            final String hintLabel, final int labelFlags, final int backgroundType, final int x,
-            final int y, final int width, final int height, final int horizontalGap,
-            final int verticalGap) {
-        mHeight = height - verticalGap;
+    public Key(@Nullable final String label, final int iconId, final int code,
+            @Nullable final String outputText, @Nullable final String hintLabel,
+            final int labelFlags, final int backgroundType, final int x, final int y,
+            final int width, final int height, final int horizontalGap, final int verticalGap) {
         mWidth = width - horizontalGap;
+        mHeight = height - verticalGap;
+        mHorizontalGap = horizontalGap;
+        mVerticalGap = verticalGap;
         mHintLabel = hintLabel;
         mLabelFlags = labelFlags;
         mBackgroundType = backgroundType;
@@ -214,7 +233,7 @@
         mEnabled = (code != CODE_UNSPECIFIED);
         mIconId = iconId;
         // Horizontal gap is divided equally to both sides of the key.
-        mX = x + horizontalGap / 2;
+        mX = x + mHorizontalGap / 2;
         mY = y;
         mHitBox.set(x, y, x + width + 1, y + height);
         mKeyVisualAttributes = null;
@@ -233,20 +252,24 @@
      * @param row the row that this key belongs to. row's x-coordinate will be the right edge of
      *        this key.
      */
-    public Key(final String keySpec, final TypedArray keyAttr, final KeyStyle style,
-            final KeyboardParams params, final KeyboardRow row) {
-        final float horizontalGap = isSpacer() ? 0 : params.mHorizontalGap;
+    public Key(@Nullable final String keySpec, @Nonnull final TypedArray keyAttr,
+            @Nonnull final KeyStyle style, @Nonnull final KeyboardParams params,
+            @Nonnull final KeyboardRow row) {
+        mHorizontalGap = isSpacer() ? 0 : params.mHorizontalGap;
+        mVerticalGap = params.mVerticalGap;
+
+        final float horizontalGapFloat = mHorizontalGap;
         final int rowHeight = row.getRowHeight();
-        mHeight = rowHeight - params.mVerticalGap;
+        mHeight = rowHeight - mVerticalGap;
 
         final float keyXPos = row.getKeyX(keyAttr);
         final float keyWidth = row.getKeyWidth(keyAttr, keyXPos);
         final int keyYPos = row.getKeyY();
 
         // Horizontal gap is divided equally to both sides of the key.
-        mX = Math.round(keyXPos + horizontalGap / 2);
+        mX = Math.round(keyXPos + horizontalGapFloat / 2);
         mY = keyYPos;
-        mWidth = Math.round(keyWidth - horizontalGap);
+        mWidth = Math.round(keyWidth - horizontalGapFloat);
         mHitBox.set(Math.round(keyXPos), keyYPos, Math.round(keyXPos + keyWidth) + 1,
                 keyYPos + rowHeight);
         // Update row to have current x coordinate.
@@ -263,8 +286,8 @@
 
         mLabelFlags = style.getFlags(keyAttr, R.styleable.Keyboard_Key_keyLabelFlags)
                 | row.getDefaultKeyLabelFlags();
-        final boolean needsToUpperCase = needsToUpperCase(mLabelFlags, params.mId.mElementId);
-        final Locale locale = params.mId.mLocale;
+        final boolean needsToUpcase = needsToUpcase(mLabelFlags, params.mId.mElementId);
+        final Locale localeForUpcasing = params.mId.getLocale();
         int actionFlags = style.getFlags(keyAttr, R.styleable.Keyboard_Key_keyActionFlags);
         String[] moreKeys = style.getStringArray(keyAttr, R.styleable.Keyboard_Key_moreKeys);
 
@@ -306,7 +329,7 @@
             actionFlags |= ACTION_FLAGS_ENABLE_LONG_PRESS;
             mMoreKeys = new MoreKeySpec[moreKeys.length];
             for (int i = 0; i < moreKeys.length; i++) {
-                mMoreKeys[i] = new MoreKeySpec(moreKeys[i], needsToUpperCase, locale);
+                mMoreKeys[i] = new MoreKeySpec(moreKeys[i], needsToUpcase, localeForUpcasing);
             }
         } else {
             mMoreKeys = null;
@@ -326,17 +349,24 @@
             // code point nor as a surrogate pair.
             mLabel = new StringBuilder().appendCodePoint(code).toString();
         } else {
-            mLabel = StringUtils.toUpperCaseOfStringForLocale(
-                    KeySpecParser.getLabel(keySpec), needsToUpperCase, locale);
+            final String label = KeySpecParser.getLabel(keySpec);
+            mLabel = needsToUpcase
+                    ? StringUtils.toTitleCaseOfKeyLabel(label, localeForUpcasing)
+                    : label;
         }
         if ((mLabelFlags & LABEL_FLAGS_DISABLE_HINT_LABEL) != 0) {
             mHintLabel = null;
         } else {
-            mHintLabel = StringUtils.toUpperCaseOfStringForLocale(style.getString(keyAttr,
-                    R.styleable.Keyboard_Key_keyHintLabel), needsToUpperCase, locale);
+            final String hintLabel = style.getString(
+                    keyAttr, R.styleable.Keyboard_Key_keyHintLabel);
+            mHintLabel = needsToUpcase
+                    ? StringUtils.toTitleCaseOfKeyLabel(hintLabel, localeForUpcasing)
+                    : hintLabel;
         }
-        String outputText = StringUtils.toUpperCaseOfStringForLocale(
-                KeySpecParser.getOutputText(keySpec), needsToUpperCase, locale);
+        String outputText = KeySpecParser.getOutputText(keySpec);
+        if (needsToUpcase) {
+            outputText = StringUtils.toTitleCaseOfKeyLabel(outputText, localeForUpcasing);
+        }
         // Choose the first letter of the label as primary code if not specified.
         if (code == CODE_UNSPECIFIED && TextUtils.isEmpty(outputText)
                 && !TextUtils.isEmpty(mLabel)) {
@@ -362,12 +392,14 @@
                 mCode = CODE_OUTPUT_TEXT;
             }
         } else {
-            mCode = StringUtils.toUpperCaseOfCodeForLocale(code, needsToUpperCase, locale);
+            mCode = needsToUpcase ? StringUtils.toTitleCaseOfKeyCode(code, localeForUpcasing)
+                    : code;
         }
         final int altCodeInAttr = KeySpecParser.parseCode(
                 style.getString(keyAttr, R.styleable.Keyboard_Key_altCode), CODE_UNSPECIFIED);
-        final int altCode = StringUtils.toUpperCaseOfCodeForLocale(
-                altCodeInAttr, needsToUpperCase, locale);
+        final int altCode = needsToUpcase
+                ? StringUtils.toTitleCaseOfKeyCode(altCodeInAttr, localeForUpcasing)
+                : altCodeInAttr;
         mOptionalAttributes = OptionalAttributes.newInstance(outputText, altCode,
                 disabledIconId, visualInsetsLeft, visualInsetsRight);
         mKeyVisualAttributes = KeyVisualAttributes.newInstance(keyAttr);
@@ -379,7 +411,11 @@
      *
      * @param key the original key.
      */
-    protected Key(final Key key) {
+    protected Key(@Nonnull final Key key) {
+        this(key, key.mMoreKeys);
+    }
+
+    private Key(@Nonnull final Key key, @Nullable final MoreKeySpec[] moreKeys) {
         // Final attributes.
         mCode = key.mCode;
         mLabel = key.mLabel;
@@ -388,10 +424,12 @@
         mIconId = key.mIconId;
         mWidth = key.mWidth;
         mHeight = key.mHeight;
+        mHorizontalGap = key.mHorizontalGap;
+        mVerticalGap = key.mVerticalGap;
         mX = key.mX;
         mY = key.mY;
         mHitBox.set(key.mHitBox);
-        mMoreKeys = key.mMoreKeys;
+        mMoreKeys = moreKeys;
         mMoreKeysColumnAndFlags = key.mMoreKeysColumnAndFlags;
         mBackgroundType = key.mBackgroundType;
         mActionFlags = key.mActionFlags;
@@ -403,7 +441,16 @@
         mEnabled = key.mEnabled;
     }
 
-    private static boolean needsToUpperCase(final int labelFlags, final int keyboardElementId) {
+    @Nonnull
+    public static Key removeRedundantMoreKeys(@Nonnull final Key key,
+            @Nonnull final MoreKeySpec.LettersOnBaseLayout lettersOnBaseLayout) {
+        final MoreKeySpec[] moreKeys = key.getMoreKeys();
+        final MoreKeySpec[] filteredMoreKeys = MoreKeySpec.removeRedundantMoreKeys(
+                moreKeys, lettersOnBaseLayout);
+        return (filteredMoreKeys == moreKeys) ? key : new Key(key, filteredMoreKeys);
+    }
+
+    private static boolean needsToUpcase(final int labelFlags, final int keyboardElementId) {
         if ((labelFlags & LABEL_FLAGS_PRESERVE_CASE) != 0) return false;
         switch (keyboardElementId) {
         case KeyboardId.ELEMENT_ALPHABET_MANUAL_SHIFTED:
@@ -516,14 +563,17 @@
         return mCode;
     }
 
+    @Nullable
     public String getLabel() {
         return mLabel;
     }
 
+    @Nullable
     public String getHintLabel() {
         return mHintLabel;
     }
 
+    @Nullable
     public MoreKeySpec[] getMoreKeys() {
         return mMoreKeys;
     }
@@ -582,6 +632,7 @@
         return mKeyVisualAttributes;
     }
 
+    @Nonnull
     public final Typeface selectTypeface(final KeyDrawParams params) {
         switch (mLabelFlags & LABEL_FLAGS_FONT_MASK) {
         case LABEL_FLAGS_FONT_NORMAL:
@@ -658,6 +709,7 @@
         return params.mLetterSize;
     }
 
+    @Nonnull
     public Typeface selectPreviewTypeface(final KeyDrawParams params) {
         if (previewHasLetterSize()) {
             return selectTypeface(params);
@@ -742,6 +794,7 @@
         return (mMoreKeysColumnAndFlags & MORE_KEYS_FLAGS_NO_PANEL_AUTO_MORE_KEY) != 0;
     }
 
+    @Nullable
     public final String getOutputText() {
         final OptionalAttributes attrs = mOptionalAttributes;
         return (attrs != null) ? attrs.mOutputText : null;
@@ -756,6 +809,7 @@
         return mIconId;
     }
 
+    @Nullable
     public Drawable getIcon(final KeyboardIconsSet iconSet, final int alpha) {
         final OptionalAttributes attrs = mOptionalAttributes;
         final int disabledIconId = (attrs != null) ? attrs.mDisabledIconId : ICON_UNDEFINED;
@@ -767,22 +821,57 @@
         return icon;
     }
 
+    @Nullable
     public Drawable getPreviewIcon(final KeyboardIconsSet iconSet) {
         return iconSet.getIconDrawable(getIconId());
     }
 
+    /**
+     * Gets the width of the key in pixels, excluding the gap.
+     * @return The width of the key in pixels, excluding the gap.
+     */
     public int getWidth() {
         return mWidth;
     }
 
+    /**
+     * Gets the height of the key in pixels, excluding the gap.
+     * @return The height of the key in pixels, excluding the gap.
+     */
     public int getHeight() {
         return mHeight;
     }
 
+    /**
+     * The combined width in pixels of the horizontal gaps belonging to this key, both above and
+     * below. I.e., getWidth() + getHorizontalGap() = total width belonging to the key.
+     * @return Horizontal gap belonging to this key.
+     */
+    public int getHorizontalGap() {
+        return mHorizontalGap;
+    }
+
+    /**
+     * The combined height in pixels of the vertical gaps belonging to this key, both above and
+     * below. I.e., getHeight() + getVerticalGap() = total height belonging to the key.
+     * @return Vertical gap belonging to this key.
+     */
+    public int getVerticalGap() {
+        return mVerticalGap;
+    }
+
+    /**
+     * Gets the x-coordinate of the top-left corner of the key in pixels, excluding the gap.
+     * @return The x-coordinate of the top-left corner of the key in pixels, excluding the gap.
+     */
     public int getX() {
         return mX;
     }
 
+    /**
+     * Gets the y-coordinate of the top-left corner of the key in pixels, excluding the gap.
+     * @return The y-coordinate of the top-left corner of the key in pixels, excluding the gap.
+     */
     public int getY() {
         return mY;
     }
@@ -825,6 +914,7 @@
         mEnabled = enabled;
     }
 
+    @Nonnull
     public Rect getHitBox() {
         return mHitBox;
     }
@@ -896,8 +986,10 @@
      * @return the background drawable of the key.
      * @see android.graphics.drawable.StateListDrawable#setState(int[])
      */
-    public final Drawable selectBackgroundDrawable(final Drawable keyBackground,
-            final Drawable functionalKeyBackground, final Drawable spacebarBackground) {
+    @Nonnull
+    public final Drawable selectBackgroundDrawable(@Nonnull final Drawable keyBackground,
+            @Nonnull final Drawable functionalKeyBackground,
+            @Nonnull final Drawable spacebarBackground) {
         final Drawable background;
         if (mBackgroundType == BACKGROUND_TYPE_FUNCTIONAL) {
             background = functionalKeyBackground;
diff --git a/java/src/com/android/inputmethod/keyboard/Keyboard.java b/java/src/com/android/inputmethod/keyboard/Keyboard.java
index 85dfea4..7318d47 100644
--- a/java/src/com/android/inputmethod/keyboard/Keyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/Keyboard.java
@@ -21,13 +21,16 @@
 import com.android.inputmethod.keyboard.internal.KeyVisualAttributes;
 import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
 import com.android.inputmethod.keyboard.internal.KeyboardParams;
-import com.android.inputmethod.latin.Constants;
-import com.android.inputmethod.latin.utils.CoordinateUtils;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.CoordinateUtils;
 
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 /**
  * Loads an XML description of a keyboard and stores the attributes of the keys. A keyboard
  * consists of rows of keys.
@@ -47,6 +50,7 @@
  * </pre>
  */
 public class Keyboard {
+    @Nonnull
     public final KeyboardId mId;
     public final int mThemeId;
 
@@ -78,17 +82,25 @@
     public final int mMaxMoreKeysKeyboardColumn;
 
     /** List of keys in this keyboard */
+    @Nonnull
     private final List<Key> mSortedKeys;
+    @Nonnull
     public final List<Key> mShiftKeys;
+    @Nonnull
     public final List<Key> mAltCodeKeysWhileTyping;
+    @Nonnull
     public final KeyboardIconsSet mIconsSet;
 
     private final SparseArray<Key> mKeyCache = new SparseArray<>();
 
+    @Nonnull
     private final ProximityInfo mProximityInfo;
+    @Nonnull
+    private final KeyboardLayout mKeyboardLayout;
+
     private final boolean mProximityCharsCorrectionEnabled;
 
-    public Keyboard(final KeyboardParams params) {
+    public Keyboard(@Nonnull final KeyboardParams params) {
         mId = params.mId;
         mThemeId = params.mThemeId;
         mOccupiedHeight = params.mOccupiedHeight;
@@ -108,14 +120,15 @@
         mAltCodeKeysWhileTyping = Collections.unmodifiableList(params.mAltCodeKeysWhileTyping);
         mIconsSet = params.mIconsSet;
 
-        mProximityInfo = new ProximityInfo(params.mId.mLocale.toString(),
-                params.GRID_WIDTH, params.GRID_HEIGHT, mOccupiedWidth, mOccupiedHeight,
-                mMostCommonKeyWidth, mMostCommonKeyHeight, mSortedKeys,
-                params.mTouchPositionCorrection);
+        mProximityInfo = new ProximityInfo(params.GRID_WIDTH, params.GRID_HEIGHT,
+                mOccupiedWidth, mOccupiedHeight, mMostCommonKeyWidth, mMostCommonKeyHeight,
+                mSortedKeys, params.mTouchPositionCorrection);
         mProximityCharsCorrectionEnabled = params.mProximityCharsCorrectionEnabled;
+        mKeyboardLayout = KeyboardLayout.newKeyboardLayout(mSortedKeys, mMostCommonKeyWidth,
+                mMostCommonKeyHeight, mOccupiedWidth, mOccupiedHeight);
     }
 
-    protected Keyboard(final Keyboard keyboard) {
+    protected Keyboard(@Nonnull final Keyboard keyboard) {
         mId = keyboard.mId;
         mThemeId = keyboard.mThemeId;
         mOccupiedHeight = keyboard.mOccupiedHeight;
@@ -137,6 +150,7 @@
 
         mProximityInfo = keyboard.mProximityInfo;
         mProximityCharsCorrectionEnabled = keyboard.mProximityCharsCorrectionEnabled;
+        mKeyboardLayout = keyboard.mKeyboardLayout;
     }
 
     public boolean hasProximityCharsCorrection(final int code) {
@@ -151,20 +165,28 @@
         return canAssumeNativeHasProximityCharsInfoOfAllKeys || Character.isLetter(code);
     }
 
+    @Nonnull
     public ProximityInfo getProximityInfo() {
         return mProximityInfo;
     }
 
+    @Nonnull
+    public KeyboardLayout getKeyboardLayout() {
+        return mKeyboardLayout;
+    }
+
     /**
      * Return the sorted list of keys of this keyboard.
      * The keys are sorted from top-left to bottom-right order.
      * The list may contain {@link Key.Spacer} object as well.
      * @return the sorted unmodifiable list of {@link Key}s of this keyboard.
      */
+    @Nonnull
     public List<Key> getSortedKeys() {
         return mSortedKeys;
     }
 
+    @Nullable
     public Key getKey(final int code) {
         if (code == Constants.CODE_UNSPECIFIED) {
             return null;
@@ -186,7 +208,7 @@
         }
     }
 
-    public boolean hasKey(final Key aKey) {
+    public boolean hasKey(@Nonnull final Key aKey) {
         if (mKeyCache.indexOfValue(aKey) >= 0) {
             return true;
         }
@@ -212,6 +234,7 @@
      * @return the list of the nearest keys to the given point. If the given
      * point is out of range, then an array of size zero is returned.
      */
+    @Nonnull
     public List<Key> getNearestKeys(final int x, final int y) {
         // Avoid dead pixels at edges of the keyboard
         final int adjustedX = Math.max(0, Math.min(x, mOccupiedWidth - 1));
@@ -219,7 +242,8 @@
         return mProximityInfo.getNearestKeys(adjustedX, adjustedY);
     }
 
-    public int[] getCoordinates(final int[] codePoints) {
+    @Nonnull
+    public int[] getCoordinates(@Nonnull final int[] codePoints) {
         final int length = codePoints.length;
         final int[] coordinates = CoordinateUtils.newCoordinateArray(length);
         for (int i = 0; i < length; ++i) {
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardActionListener.java b/java/src/com/android/inputmethod/keyboard/KeyboardActionListener.java
index c565866..cdd632b 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardActionListener.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardActionListener.java
@@ -16,8 +16,8 @@
 
 package com.android.inputmethod.keyboard;
 
-import com.android.inputmethod.latin.Constants;
-import com.android.inputmethod.latin.InputPointers;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.InputPointers;
 
 public interface KeyboardActionListener {
     /**
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardId.java b/java/src/com/android/inputmethod/keyboard/KeyboardId.java
index 3c11675..a1f7bf0 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardId.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardId.java
@@ -16,16 +16,15 @@
 
 package com.android.inputmethod.keyboard;
 
-import static com.android.inputmethod.latin.Constants.Subtype.ExtraValue.KEYBOARD_LAYOUT_SET;
+import static com.android.inputmethod.latin.common.Constants.Subtype.ExtraValue.KEYBOARD_LAYOUT_SET;
 
 import android.text.InputType;
 import android.text.TextUtils;
 import android.view.inputmethod.EditorInfo;
-import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.compat.EditorInfoCompatUtils;
+import com.android.inputmethod.latin.RichInputMethodSubtype;
 import com.android.inputmethod.latin.utils.InputTypeUtils;
-import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
 import java.util.Arrays;
 import java.util.Locale;
@@ -62,8 +61,7 @@
     public static final int ELEMENT_EMOJI_CATEGORY5 = 15;
     public static final int ELEMENT_EMOJI_CATEGORY6 = 16;
 
-    public final InputMethodSubtype mSubtype;
-    public final Locale mLocale;
+    public final RichInputMethodSubtype mSubtype;
     public final int mWidth;
     public final int mHeight;
     public final int mMode;
@@ -73,12 +71,12 @@
     public final boolean mLanguageSwitchKeyEnabled;
     public final String mCustomActionLabel;
     public final boolean mHasShortcutKey;
+    public final boolean mIsSplitLayout;
 
     private final int mHashCode;
 
     public KeyboardId(final int elementId, final KeyboardLayoutSet.Params params) {
         mSubtype = params.mSubtype;
-        mLocale = SubtypeLocaleUtils.getSubtypeLocale(mSubtype);
         mWidth = params.mKeyboardWidth;
         mHeight = params.mKeyboardHeight;
         mMode = params.mMode;
@@ -89,6 +87,7 @@
         mCustomActionLabel = (mEditorInfo.actionLabel != null)
                 ? mEditorInfo.actionLabel.toString() : null;
         mHasShortcutKey = params.mVoiceInputKeyEnabled;
+        mIsSplitLayout = params.mIsSplitLayoutEnabled;
 
         mHashCode = computeHashCode(this);
     }
@@ -108,7 +107,8 @@
                 id.mCustomActionLabel,
                 id.navigateNext(),
                 id.navigatePrevious(),
-                id.mSubtype
+                id.mSubtype,
+                id.mIsSplitLayout
         });
     }
 
@@ -128,7 +128,8 @@
                 && TextUtils.equals(other.mCustomActionLabel, mCustomActionLabel)
                 && other.navigateNext() == navigateNext()
                 && other.navigatePrevious() == navigatePrevious()
-                && other.mSubtype.equals(mSubtype);
+                && other.mSubtype.equals(mSubtype)
+                && other.mIsSplitLayout == mIsSplitLayout;
     }
 
     private static boolean isAlphabetKeyboard(final int elementId) {
@@ -163,6 +164,10 @@
         return InputTypeUtils.getImeOptionsActionIdFromEditorInfo(mEditorInfo);
     }
 
+    public Locale getLocale() {
+        return mSubtype.getLocale();
+    }
+
     @Override
     public boolean equals(final Object other) {
         return other instanceof KeyboardId && equals((KeyboardId) other);
@@ -175,9 +180,10 @@
 
     @Override
     public String toString() {
-        return String.format(Locale.ROOT, "[%s %s:%s %dx%d %s %s%s%s%s%s%s%s%s]",
+        return String.format(Locale.ROOT, "[%s %s:%s %dx%d %s %s%s%s%s%s%s%s%s%s]",
                 elementIdToName(mElementId),
-                mLocale, mSubtype.getExtraValueOf(KEYBOARD_LAYOUT_SET),
+                mSubtype.getLocale(),
+                mSubtype.getExtraValueOf(KEYBOARD_LAYOUT_SET),
                 mWidth, mHeight,
                 modeName(mMode),
                 actionName(imeAction()),
@@ -187,7 +193,8 @@
                 (passwordInput() ? " passwordInput" : ""),
                 (mHasShortcutKey ? " hasShortcutKey" : ""),
                 (mLanguageSwitchKeyEnabled ? " languageSwitchKeyEnabled" : ""),
-                (isMultiLine() ? " isMultiLine" : "")
+                (isMultiLine() ? " isMultiLine" : ""),
+                (mIsSplitLayout ? " isSplitLayout" : "")
         );
     }
 
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardLayout.java b/java/src/com/android/inputmethod/keyboard/KeyboardLayout.java
new file mode 100644
index 0000000..d0f3207
--- /dev/null
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardLayout.java
@@ -0,0 +1,124 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.inputmethod.keyboard;
+
+import com.android.inputmethod.annotations.UsedForTesting;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Nonnull;
+
+/**
+ * KeyboardLayout maintains the keyboard layout information.
+ */
+public class KeyboardLayout {
+
+    private final int[] mKeyCodes;
+
+    private final int[] mKeyXCoordinates;
+    private final int[] mKeyYCoordinates;
+
+    private final int[] mKeyWidths;
+    private final int[] mKeyHeights;
+
+    public final int mMostCommonKeyWidth;
+    public final int mMostCommonKeyHeight;
+
+    public final int mKeyboardWidth;
+    public final int mKeyboardHeight;
+
+    public KeyboardLayout(ArrayList<Key> layoutKeys, int mostCommonKeyWidth,
+            int mostCommonKeyHeight, int keyboardWidth, int keyboardHeight) {
+        mMostCommonKeyWidth = mostCommonKeyWidth;
+        mMostCommonKeyHeight = mostCommonKeyHeight;
+        mKeyboardWidth = keyboardWidth;
+        mKeyboardHeight = keyboardHeight;
+
+        mKeyCodes = new int[layoutKeys.size()];
+        mKeyXCoordinates = new int[layoutKeys.size()];
+        mKeyYCoordinates = new int[layoutKeys.size()];
+        mKeyWidths = new int[layoutKeys.size()];
+        mKeyHeights = new int[layoutKeys.size()];
+
+        for (int i = 0; i < layoutKeys.size(); i++) {
+            Key key = layoutKeys.get(i);
+            mKeyCodes[i] = Character.toLowerCase(key.getCode());
+            mKeyXCoordinates[i] = key.getX();
+            mKeyYCoordinates[i] = key.getY();
+            mKeyWidths[i] = key.getWidth();
+            mKeyHeights[i] = key.getHeight();
+        }
+    }
+
+    @UsedForTesting
+    public int[] getKeyCodes() {
+        return mKeyCodes;
+    }
+
+    /**
+     * The x-coordinate for the top-left corner of the keys.
+     *
+     */
+    public int[] getKeyXCoordinates() {
+        return mKeyXCoordinates;
+    }
+
+    /**
+     * The y-coordinate for the top-left corner of the keys.
+     */
+    public int[] getKeyYCoordinates() {
+        return mKeyYCoordinates;
+    }
+
+    /**
+     * The widths of the keys which are smaller than the true hit-area due to the gaps
+     * between keys. The mostCommonKey(Width/Height) represents the true key width/height
+     * including the gaps.
+     */
+    public int[] getKeyWidths() {
+        return mKeyWidths;
+    }
+
+    /**
+     * The heights of the keys which are smaller than the true hit-area due to the gaps
+     * between keys. The mostCommonKey(Width/Height) represents the true key width/height
+     * including the gaps.
+     */
+    public int[] getKeyHeights() {
+        return mKeyHeights;
+    }
+
+    /**
+     * Factory method to create {@link KeyboardLayout} objects.
+     */
+    public static KeyboardLayout newKeyboardLayout(@Nonnull final List<Key> sortedKeys,
+            int mostCommonKeyWidth, int mostCommonKeyHeight,
+            int occupiedWidth, int occupiedHeight) {
+        final ArrayList<Key> layoutKeys = new ArrayList<Key>();
+        for (final Key key : sortedKeys) {
+            if (!ProximityInfo.needsProximityInfo(key)) {
+                continue;
+            }
+            if (key.getCode() != ',') {
+                layoutKeys.add(key);
+            }
+        }
+        return new KeyboardLayout(layoutKeys, mostCommonKeyWidth,
+                mostCommonKeyHeight, occupiedWidth, occupiedHeight);
+    }
+}
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java b/java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java
index feb79ef..47013fe 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java
@@ -16,8 +16,8 @@
 
 package com.android.inputmethod.keyboard;
 
-import static com.android.inputmethod.latin.Constants.ImeOption.FORCE_ASCII;
-import static com.android.inputmethod.latin.Constants.ImeOption.NO_SETTINGS_KEY;
+import static com.android.inputmethod.latin.common.Constants.ImeOption.FORCE_ASCII;
+import static com.android.inputmethod.latin.common.Constants.ImeOption.NO_SETTINGS_KEY;
 
 import android.content.Context;
 import android.content.res.Resources;
@@ -34,10 +34,10 @@
 import com.android.inputmethod.compat.InputMethodSubtypeCompatUtils;
 import com.android.inputmethod.keyboard.internal.KeyboardBuilder;
 import com.android.inputmethod.keyboard.internal.KeyboardParams;
-import com.android.inputmethod.keyboard.internal.KeysCache;
+import com.android.inputmethod.keyboard.internal.UniqueKeysCache;
 import com.android.inputmethod.latin.InputAttributes;
 import com.android.inputmethod.latin.R;
-import com.android.inputmethod.latin.SubtypeSwitcher;
+import com.android.inputmethod.latin.RichInputMethodSubtype;
 import com.android.inputmethod.latin.define.DebugFlags;
 import com.android.inputmethod.latin.utils.InputTypeUtils;
 import com.android.inputmethod.latin.utils.ScriptUtils;
@@ -51,6 +51,9 @@
 import java.lang.ref.SoftReference;
 import java.util.HashMap;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 /**
  * This class represents a set of keyboard layouts. Each of them represents a different keyboard
  * specific to a keyboard state, such as alphabet, symbols, and so on.  Layouts in the same
@@ -60,7 +63,7 @@
  */
 public final class KeyboardLayoutSet {
     private static final String TAG = KeyboardLayoutSet.class.getSimpleName();
-    private static final boolean DEBUG_CACHE = DebugFlags.DEBUG_ENABLED;
+    private static final boolean DEBUG_CACHE = false;
 
     private static final String TAG_KEYBOARD_SET = "KeyboardLayoutSet";
     private static final String TAG_ELEMENT = "Element";
@@ -69,6 +72,7 @@
     private static final String KEYBOARD_LAYOUT_SET_RESOURCE_PREFIX = "keyboard_layout_set_";
 
     private final Context mContext;
+    @Nonnull
     private final Params mParams;
 
     // How many layouts we forcibly keep in cache. This only includes ALPHABET (default) and
@@ -81,7 +85,10 @@
     private static final Keyboard[] sForcibleKeyboardCache = new Keyboard[FORCIBLE_CACHE_SIZE];
     private static final HashMap<KeyboardId, SoftReference<Keyboard>> sKeyboardCache =
             new HashMap<>();
-    private static final KeysCache sKeysCache = new KeysCache();
+    @Nonnull
+    private static final UniqueKeysCache sUniqueKeysCache = UniqueKeysCache.newInstance();
+    private final static HashMap<InputMethodSubtype, Integer> sScriptIdsForSubtypes =
+            new HashMap<>();
 
     @SuppressWarnings("serial")
     public static final class KeyboardLayoutSetException extends RuntimeException {
@@ -96,6 +103,8 @@
     private static final class ElementParams {
         int mKeyboardXmlId;
         boolean mProximityCharsCorrectionEnabled;
+        boolean mSupportsSplitLayout;
+        boolean mAllowRedundantMoreKeys;
         public ElementParams() {}
     }
 
@@ -109,11 +118,17 @@
         boolean mVoiceInputKeyEnabled;
         boolean mNoSettingsKey;
         boolean mLanguageSwitchKeyEnabled;
-        InputMethodSubtype mSubtype;
+        RichInputMethodSubtype mSubtype;
         boolean mIsSpellChecker;
         int mKeyboardWidth;
         int mKeyboardHeight;
         int mScriptId = ScriptUtils.SCRIPT_LATIN;
+        // Indicates if the user has enabled the split-layout preference
+        // and the required ProductionFlags are enabled.
+        boolean mIsSplitLayoutEnabledByUser;
+        // Indicates if split layout is actually enabled, taking into account
+        // whether the user has enabled it, and the keyboard layout supports it.
+        boolean mIsSplitLayoutEnabled;
         // Sparse array of KeyboardLayoutSet element parameters indexed by element's id.
         final SparseArray<ElementParams> mKeyboardLayoutSetElementIdToParamsMap =
                 new SparseArray<>();
@@ -129,14 +144,26 @@
 
     private static void clearKeyboardCache() {
         sKeyboardCache.clear();
-        sKeysCache.clear();
+        sUniqueKeysCache.clear();
     }
 
-    KeyboardLayoutSet(final Context context, final Params params) {
+    public static int getScriptId(final Resources resources,
+            @Nonnull final InputMethodSubtype subtype) {
+        final Integer value = sScriptIdsForSubtypes.get(subtype);
+        if (null == value) {
+            final int scriptId = Builder.readScriptId(resources, subtype);
+            sScriptIdsForSubtypes.put(subtype, scriptId);
+            return scriptId;
+        }
+        return value;
+    }
+
+    KeyboardLayoutSet(final Context context, @Nonnull final Params params) {
         mContext = context;
         mParams = params;
     }
 
+    @Nonnull
     public Keyboard getKeyboard(final int baseKeyboardLayoutSetElementId) {
         final int keyboardLayoutSetElementId;
         switch (mParams.mMode) {
@@ -168,6 +195,9 @@
         // attribute in a keyboard_layout_set XML file.  Also each keyboard layout XML resource is
         // specified as an elementKeyboard attribute in the file.
         // The KeyboardId is an internal key for a Keyboard object.
+
+        mParams.mIsSplitLayoutEnabled = mParams.mIsSplitLayoutEnabledByUser
+                && elementParams.mSupportsSplitLayout;
         final KeyboardId id = new KeyboardId(keyboardLayoutSetElementId, mParams);
         try {
             return getKeyboard(elementParams, id);
@@ -177,6 +207,7 @@
         }
     }
 
+    @Nonnull
     private Keyboard getKeyboard(final ElementParams elementParams, final KeyboardId id) {
         final SoftReference<Keyboard> ref = sKeyboardCache.get(id);
         final Keyboard cachedKeyboard = (ref == null) ? null : ref.get();
@@ -188,10 +219,9 @@
         }
 
         final KeyboardBuilder<KeyboardParams> builder =
-                new KeyboardBuilder<>(mContext, new KeyboardParams());
-        if (id.isAlphabetKeyboard()) {
-            builder.setAutoGenerate(sKeysCache);
-        }
+                new KeyboardBuilder<>(mContext, new KeyboardParams(sUniqueKeysCache));
+        sUniqueKeysCache.setEnabled(id.isAlphabetKeyboard());
+        builder.setAllowRedundantMoreKes(elementParams.mAllowRedundantMoreKeys);
         final int keyboardXmlId = elementParams.mKeyboardXmlId;
         builder.load(keyboardXmlId, id);
         if (mParams.mDisableTouchPositionCorrectionDataForTest) {
@@ -232,7 +262,7 @@
 
         private static final EditorInfo EMPTY_EDITOR_INFO = new EditorInfo();
 
-        public Builder(final Context context, final EditorInfo ei) {
+        public Builder(final Context context, @Nullable final EditorInfo ei) {
             mContext = context;
             mPackageName = context.getPackageName();
             mResources = context.getResources();
@@ -253,7 +283,7 @@
             return this;
         }
 
-        public Builder setSubtype(final InputMethodSubtype subtype) {
+        public Builder setSubtype(@Nonnull final RichInputMethodSubtype subtype) {
             final boolean asciiCapable = InputMethodSubtypeCompatUtils.isAsciiCapable(subtype);
             // TODO: Consolidate with {@link InputAttributes}.
             @SuppressWarnings("deprecation")
@@ -262,12 +292,12 @@
             final boolean forceAscii = EditorInfoCompatUtils.hasFlagForceAscii(
                     mParams.mEditorInfo.imeOptions)
                     || deprecatedForceAscii;
-            final InputMethodSubtype keyboardSubtype = (forceAscii && !asciiCapable)
-                    ? SubtypeSwitcher.getInstance().getNoLanguageSubtype()
+            final RichInputMethodSubtype keyboardSubtype = (forceAscii && !asciiCapable)
+                    ? RichInputMethodSubtype.getNoLanguageSubtype()
                     : subtype;
             mParams.mSubtype = keyboardSubtype;
             mParams.mKeyboardLayoutSetName = KEYBOARD_LAYOUT_SET_RESOURCE_PREFIX
-                    + SubtypeLocaleUtils.getKeyboardLayoutSetName(keyboardSubtype);
+                    + keyboardSubtype.getKeyboardLayoutSetName();
             return this;
         }
 
@@ -286,31 +316,75 @@
             return this;
         }
 
-        public void disableTouchPositionCorrectionData() {
+        public Builder disableTouchPositionCorrectionData() {
             mParams.mDisableTouchPositionCorrectionDataForTest = true;
+            return this;
         }
 
-        public void setScriptId(final int scriptId) {
-            mParams.mScriptId = scriptId;
+        public Builder setSplitLayoutEnabledByUser(final boolean enabled) {
+            mParams.mIsSplitLayoutEnabledByUser = enabled;
+            return this;
+        }
+
+        // Super redux version of reading the script ID for some subtype from Xml.
+        static int readScriptId(final Resources resources, final InputMethodSubtype subtype) {
+            final String layoutSetName = KEYBOARD_LAYOUT_SET_RESOURCE_PREFIX
+                    + SubtypeLocaleUtils.getKeyboardLayoutSetName(subtype);
+            final int xmlId = getXmlId(resources, layoutSetName);
+            final XmlResourceParser parser = resources.getXml(xmlId);
+            try {
+                while (parser.getEventType() != XmlPullParser.END_DOCUMENT) {
+                    // Bovinate through the XML stupidly searching for TAG_FEATURE, and read
+                    // the script Id from it.
+                    parser.next();
+                    final String tag = parser.getName();
+                    if (TAG_FEATURE.equals(tag)) {
+                        return readScriptIdFromTagFeature(resources, parser);
+                    }
+                }
+            } catch (final IOException | XmlPullParserException e) {
+                throw new RuntimeException(e.getMessage() + " in " + layoutSetName, e);
+            } finally {
+                parser.close();
+            }
+            // If the tag is not found, then the default script is Latin.
+            return ScriptUtils.SCRIPT_LATIN;
+        }
+
+        private static int readScriptIdFromTagFeature(final Resources resources,
+                final XmlPullParser parser) throws IOException, XmlPullParserException {
+            final TypedArray featureAttr = resources.obtainAttributes(Xml.asAttributeSet(parser),
+                    R.styleable.KeyboardLayoutSet_Feature);
+            try {
+                final int scriptId =
+                        featureAttr.getInt(R.styleable.KeyboardLayoutSet_Feature_supportedScript,
+                                ScriptUtils.SCRIPT_UNKNOWN);
+                XmlParseUtils.checkEndTag(TAG_FEATURE, parser);
+                return scriptId;
+            } finally {
+                featureAttr.recycle();
+            }
         }
 
         public KeyboardLayoutSet build() {
             if (mParams.mSubtype == null)
                 throw new RuntimeException("KeyboardLayoutSet subtype is not specified");
-            final String packageName = mResources.getResourcePackageName(
-                    R.xml.keyboard_layout_set_qwerty);
-            final String keyboardLayoutSetName = mParams.mKeyboardLayoutSetName;
-            final int xmlId = mResources.getIdentifier(keyboardLayoutSetName, "xml", packageName);
+            final int xmlId = getXmlId(mResources, mParams.mKeyboardLayoutSetName);
             try {
                 parseKeyboardLayoutSet(mResources, xmlId);
-            } catch (final IOException e) {
-                throw new RuntimeException(e.getMessage() + " in " + keyboardLayoutSetName, e);
-            } catch (final XmlPullParserException e) {
-                throw new RuntimeException(e.getMessage() + " in " + keyboardLayoutSetName, e);
+            } catch (final IOException | XmlPullParserException e) {
+                throw new RuntimeException(e.getMessage() + " in " + mParams.mKeyboardLayoutSetName,
+                        e);
             }
             return new KeyboardLayoutSet(mContext, mParams);
         }
 
+        private static int getXmlId(final Resources resources, final String keyboardLayoutSetName) {
+            final String packageName = resources.getResourcePackageName(
+                    R.xml.keyboard_layout_set_qwerty);
+            return resources.getIdentifier(keyboardLayoutSetName, "xml", packageName);
+        }
+
         private void parseKeyboardLayoutSet(final Resources res, final int resId)
                 throws XmlPullParserException, IOException {
             final XmlResourceParser parser = res.getXml(resId);
@@ -340,7 +414,7 @@
                     if (TAG_ELEMENT.equals(tag)) {
                         parseKeyboardLayoutSetElement(parser);
                     } else if (TAG_FEATURE.equals(tag)) {
-                        parseKeyboardLayoutSetFeature(parser);
+                        mParams.mScriptId = readScriptIdFromTagFeature(mResources, parser);
                     } else {
                         throw new XmlParseUtils.IllegalStartTag(parser, tag, TAG_KEYBOARD_SET);
                     }
@@ -348,9 +422,8 @@
                     final String tag = parser.getName();
                     if (TAG_KEYBOARD_SET.equals(tag)) {
                         break;
-                    } else {
-                        throw new XmlParseUtils.IllegalEndTag(parser, tag, TAG_KEYBOARD_SET);
                     }
+                    throw new XmlParseUtils.IllegalEndTag(parser, tag, TAG_KEYBOARD_SET);
                 }
             }
         }
@@ -376,27 +449,16 @@
                 elementParams.mProximityCharsCorrectionEnabled = a.getBoolean(
                         R.styleable.KeyboardLayoutSet_Element_enableProximityCharsCorrection,
                         false);
+                elementParams.mSupportsSplitLayout = a.getBoolean(
+                        R.styleable.KeyboardLayoutSet_Element_supportsSplitLayout, false);
+                elementParams.mAllowRedundantMoreKeys = a.getBoolean(
+                        R.styleable.KeyboardLayoutSet_Element_allowRedundantMoreKeys, true);
                 mParams.mKeyboardLayoutSetElementIdToParamsMap.put(elementName, elementParams);
             } finally {
                 a.recycle();
             }
         }
 
-        private void parseKeyboardLayoutSetFeature(final XmlPullParser parser)
-                throws XmlPullParserException, IOException {
-            final TypedArray a = mResources.obtainAttributes(Xml.asAttributeSet(parser),
-                    R.styleable.KeyboardLayoutSet_Feature);
-            try {
-                final int scriptId = a.getInt(
-                        R.styleable.KeyboardLayoutSet_Feature_supportedScript,
-                        ScriptUtils.SCRIPT_LATIN);
-                XmlParseUtils.checkEndTag(TAG_FEATURE, parser);
-                setScriptId(scriptId);
-            } finally {
-                a.recycle();
-            }
-        }
-
         private static int getKeyboardMode(final EditorInfo editorInfo) {
             final int inputType = editorInfo.inputType;
             final int variation = inputType & InputType.TYPE_MASK_VARIATION;
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
index 60665f8..92e5dfc 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
@@ -17,9 +17,7 @@
 package com.android.inputmethod.keyboard;
 
 import android.content.Context;
-import android.content.SharedPreferences;
 import android.content.res.Resources;
-import android.preference.PreferenceManager;
 import android.util.Log;
 import android.view.ContextThemeWrapper;
 import android.view.LayoutInflater;
@@ -27,6 +25,7 @@
 import android.view.inputmethod.EditorInfo;
 
 import com.android.inputmethod.compat.InputMethodServiceCompatUtils;
+import com.android.inputmethod.event.Event;
 import com.android.inputmethod.keyboard.KeyboardLayoutSet.KeyboardLayoutSetException;
 import com.android.inputmethod.keyboard.emoji.EmojiPalettesView;
 import com.android.inputmethod.keyboard.internal.KeyboardState;
@@ -35,24 +34,25 @@
 import com.android.inputmethod.latin.LatinIME;
 import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.RichInputMethodManager;
-import com.android.inputmethod.latin.SubtypeSwitcher;
 import com.android.inputmethod.latin.WordComposer;
+import com.android.inputmethod.latin.define.ProductionFlags;
 import com.android.inputmethod.latin.settings.Settings;
 import com.android.inputmethod.latin.settings.SettingsValues;
+import com.android.inputmethod.latin.utils.CapsModeUtils;
+import com.android.inputmethod.latin.utils.LanguageOnSpacebarUtils;
+import com.android.inputmethod.latin.utils.RecapitalizeStatus;
 import com.android.inputmethod.latin.utils.ResourceUtils;
 import com.android.inputmethod.latin.utils.ScriptUtils;
 
 public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
     private static final String TAG = KeyboardSwitcher.class.getSimpleName();
 
-    private SubtypeSwitcher mSubtypeSwitcher;
-    private SharedPreferences mPrefs;
-
     private InputView mCurrentInputView;
     private View mMainKeyboardFrame;
     private MainKeyboardView mKeyboardView;
     private EmojiPalettesView mEmojiPalettesView;
     private LatinIME mLatinIME;
+    private RichInputMethodManager mRichImm;
     private boolean mIsHardwareAcceleratedDrawingEnabled;
 
     private KeyboardState mState;
@@ -75,14 +75,12 @@
     }
 
     public static void init(final LatinIME latinIme) {
-        final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(latinIme);
-        sInstance.initInternal(latinIme, prefs);
+        sInstance.initInternal(latinIme);
     }
 
-    private void initInternal(final LatinIME latinIme, final SharedPreferences prefs) {
+    private void initInternal(final LatinIME latinIme) {
         mLatinIME = latinIme;
-        mPrefs = prefs;
-        mSubtypeSwitcher = SubtypeSwitcher.getInstance();
+        mRichImm = RichInputMethodManager.getInstance();
         mState = new KeyboardState(this);
         mIsHardwareAcceleratedDrawingEnabled =
                 InputMethodServiceCompatUtils.enableHardwareAcceleration(mLatinIME);
@@ -90,7 +88,7 @@
 
     public void updateKeyboardTheme() {
         final boolean themeUpdated = updateKeyboardThemeAndContextThemeWrapper(
-                mLatinIME, KeyboardTheme.getKeyboardTheme(mPrefs));
+                mLatinIME, KeyboardTheme.getKeyboardTheme(mLatinIME /* context */));
         if (themeUpdated && mKeyboardView != null) {
             mLatinIME.setInputView(onCreateInputView(mIsHardwareAcceleratedDrawingEnabled));
         }
@@ -113,18 +111,19 @@
                 mThemeContext, editorInfo);
         final Resources res = mThemeContext.getResources();
         final int keyboardWidth = ResourceUtils.getDefaultKeyboardWidth(res);
-        final int keyboardHeight = ResourceUtils.getDefaultKeyboardHeight(res);
+        final int keyboardHeight = ResourceUtils.getKeyboardHeight(res, settingsValues);
         builder.setKeyboardGeometry(keyboardWidth, keyboardHeight);
-        builder.setSubtype(mSubtypeSwitcher.getCurrentSubtype());
+        builder.setSubtype(mRichImm.getCurrentSubtype());
         builder.setVoiceInputKeyEnabled(settingsValues.mShowsVoiceInputKey);
         builder.setLanguageSwitchKeyEnabled(mLatinIME.shouldShowLanguageSwitchKey());
+        builder.setSplitLayoutEnabledByUser(ProductionFlags.IS_SPLIT_KEYBOARD_SUPPORTED
+                && settingsValues.mIsSplitKeyboardEnabled);
         mKeyboardLayoutSet = builder.build();
         try {
             mState.onLoadKeyboard(currentAutoCapsState, currentRecapitalizeState);
-            mKeyboardTextsSet.setLocale(mSubtypeSwitcher.getCurrentSubtypeLocale(), mThemeContext);
+            mKeyboardTextsSet.setLocale(mRichImm.getCurrentSubtypeLocale(), mThemeContext);
         } catch (KeyboardLayoutSetException e) {
             Log.w(TAG, "loading keyboard failed: " + e.mKeyboardId, e.getCause());
-            return;
         }
     }
 
@@ -160,12 +159,12 @@
                 currentSettingsValues.mKeyPreviewDismissEndXScale,
                 currentSettingsValues.mKeyPreviewDismissEndYScale,
                 currentSettingsValues.mKeyPreviewDismissDuration);
-        keyboardView.updateShortcutKey(mSubtypeSwitcher.isShortcutImeReady());
+        keyboardView.updateShortcutKey(mRichImm.isShortcutImeReady());
         final boolean subtypeChanged = (oldKeyboard == null)
-                || !keyboard.mId.mLocale.equals(oldKeyboard.mId.mLocale);
-        final int languageOnSpacebarFormatType = mSubtypeSwitcher.getLanguageOnSpacebarFormatType(
-                keyboard.mId.mSubtype);
-        final boolean hasMultipleEnabledIMEsOrSubtypes = RichInputMethodManager.getInstance()
+                || !keyboard.mId.mSubtype.equals(oldKeyboard.mId.mSubtype);
+        final int languageOnSpacebarFormatType = LanguageOnSpacebarUtils
+                .getLanguageOnSpacebarFormatType(keyboard.mId.mSubtype);
+        final boolean hasMultipleEnabledIMEsOrSubtypes = mRichImm
                 .hasMultipleEnabledIMEsOrSubtypes(true /* shouldIncludeAuxiliarySubtypes */);
         keyboardView.startDisplayLanguageOnSpacebar(subtypeChanged, languageOnSpacebarFormatType,
                 hasMultipleEnabledIMEsOrSubtypes);
@@ -203,42 +202,64 @@
     // Implements {@link KeyboardState.SwitchActions}.
     @Override
     public void setAlphabetKeyboard() {
+        if (DEBUG_ACTION) {
+            Log.d(TAG, "setAlphabetKeyboard");
+        }
         setKeyboard(mKeyboardLayoutSet.getKeyboard(KeyboardId.ELEMENT_ALPHABET));
     }
 
     // Implements {@link KeyboardState.SwitchActions}.
     @Override
     public void setAlphabetManualShiftedKeyboard() {
+        if (DEBUG_ACTION) {
+            Log.d(TAG, "setAlphabetManualShiftedKeyboard");
+        }
         setKeyboard(mKeyboardLayoutSet.getKeyboard(KeyboardId.ELEMENT_ALPHABET_MANUAL_SHIFTED));
     }
 
     // Implements {@link KeyboardState.SwitchActions}.
     @Override
     public void setAlphabetAutomaticShiftedKeyboard() {
+        if (DEBUG_ACTION) {
+            Log.d(TAG, "setAlphabetAutomaticShiftedKeyboard");
+        }
         setKeyboard(mKeyboardLayoutSet.getKeyboard(KeyboardId.ELEMENT_ALPHABET_AUTOMATIC_SHIFTED));
     }
 
     // Implements {@link KeyboardState.SwitchActions}.
     @Override
     public void setAlphabetShiftLockedKeyboard() {
+        if (DEBUG_ACTION) {
+            Log.d(TAG, "setAlphabetShiftLockedKeyboard");
+        }
         setKeyboard(mKeyboardLayoutSet.getKeyboard(KeyboardId.ELEMENT_ALPHABET_SHIFT_LOCKED));
     }
 
     // Implements {@link KeyboardState.SwitchActions}.
     @Override
     public void setAlphabetShiftLockShiftedKeyboard() {
+        if (DEBUG_ACTION) {
+            Log.d(TAG, "setAlphabetShiftLockShiftedKeyboard");
+        }
         setKeyboard(mKeyboardLayoutSet.getKeyboard(KeyboardId.ELEMENT_ALPHABET_SHIFT_LOCK_SHIFTED));
     }
 
     // Implements {@link KeyboardState.SwitchActions}.
     @Override
     public void setSymbolsKeyboard() {
+        if (DEBUG_ACTION) {
+            Log.d(TAG, "setSymbolsKeyboard");
+        }
         setKeyboard(mKeyboardLayoutSet.getKeyboard(KeyboardId.ELEMENT_SYMBOLS));
     }
 
     private void setMainKeyboardFrame(final SettingsValues settingsValues) {
-        mMainKeyboardFrame.setVisibility(
-                settingsValues.mHasHardwareKeyboard ? View.GONE : View.VISIBLE);
+        final int visibility = settingsValues.mHasHardwareKeyboard ? View.GONE : View.VISIBLE;
+        mKeyboardView.setVisibility(visibility);
+        // The visibility of {@link #mKeyboardView} must be aligned with {@link #MainKeyboardFrame}.
+        // @see #getVisibleKeyboardView() and
+        // @see LatinIME#onComputeInset(android.inputmethodservice.InputMethodService.Insets)
+        mMainKeyboardFrame.setVisibility(visibility);
         mEmojiPalettesView.setVisibility(View.GONE);
         mEmojiPalettesView.stopEmojiPalettes();
     }
@@ -246,8 +267,15 @@
     // Implements {@link KeyboardState.SwitchActions}.
     @Override
     public void setEmojiKeyboard() {
+        if (DEBUG_ACTION) {
+            Log.d(TAG, "setEmojiKeyboard");
+        }
         final Keyboard keyboard = mKeyboardLayoutSet.getKeyboard(KeyboardId.ELEMENT_ALPHABET);
         mMainKeyboardFrame.setVisibility(View.GONE);
+        // The visibility of {@link #mKeyboardView} must be aligned with {@link #MainKeyboardFrame}.
+        // @see #getVisibleKeyboardView() and
+        // @see LatinIME#onComputeInset(android.inputmethodservice.InputMethodService.Insets)
+        mKeyboardView.setVisibility(View.GONE);
         mEmojiPalettesView.startEmojiPalettes(
                 mKeyboardTextsSet.getText(KeyboardTextsSet.SWITCH_TO_ALPHA_KEY_LABEL),
                 mKeyboardView.getKeyVisualAttribute(), keyboard.mIconsSet);
@@ -255,8 +283,9 @@
     }
 
     public void onToggleEmojiKeyboard() {
-        if (mKeyboardLayoutSet == null || !isShowingEmojiPalettes()) {
-            mLatinIME.startShowingInputView();
+        final boolean needsToLoadKeyboard = (mKeyboardLayoutSet == null);
+        if (needsToLoadKeyboard || !isShowingEmojiPalettes()) {
+            mLatinIME.startShowingInputView(needsToLoadKeyboard);
             setEmojiKeyboard();
         } else {
             mLatinIME.stopShowingInputView();
@@ -267,18 +296,29 @@
     // Implements {@link KeyboardState.SwitchActions}.
     @Override
     public void setSymbolsShiftedKeyboard() {
+        if (DEBUG_ACTION) {
+            Log.d(TAG, "setSymbolsShiftedKeyboard");
+        }
         setKeyboard(mKeyboardLayoutSet.getKeyboard(KeyboardId.ELEMENT_SYMBOLS_SHIFTED));
     }
 
     // Future method for requesting an updating to the shift state.
-    public void requestUpdatingShiftState(final int currentAutoCapsState,
-            final int currentRecapitalizeState) {
-        mState.onUpdateShiftState(currentAutoCapsState, currentRecapitalizeState);
+    @Override
+    public void requestUpdatingShiftState(final int autoCapsFlags, final int recapitalizeMode) {
+        if (DEBUG_ACTION) {
+            Log.d(TAG, "requestUpdatingShiftState: "
+                    + " autoCapsFlags=" + CapsModeUtils.flagsToString(autoCapsFlags)
+                    + " recapitalizeMode=" + RecapitalizeStatus.modeToString(recapitalizeMode));
+        }
+        mState.onUpdateShiftState(autoCapsFlags, recapitalizeMode);
     }
 
     // Implements {@link KeyboardState.SwitchActions}.
     @Override
     public void startDoubleTapShiftKeyTimer() {
+        if (DEBUG_TIMER_ACTION) {
+            Log.d(TAG, "startDoubleTapShiftKeyTimer");
+        }
         final MainKeyboardView keyboardView = getMainKeyboardView();
         if (keyboardView != null) {
             keyboardView.startDoubleTapShiftKeyTimer();
@@ -288,6 +328,9 @@
     // Implements {@link KeyboardState.SwitchActions}.
     @Override
     public void cancelDoubleTapShiftKeyTimer() {
+        if (DEBUG_TIMER_ACTION) {
+            Log.d(TAG, "setAlphabetKeyboard");
+        }
         final MainKeyboardView keyboardView = getMainKeyboardView();
         if (keyboardView != null) {
             keyboardView.cancelDoubleTapShiftKeyTimer();
@@ -297,6 +340,9 @@
     // Implements {@link KeyboardState.SwitchActions}.
     @Override
     public boolean isInDoubleTapShiftKeyTimeout() {
+        if (DEBUG_TIMER_ACTION) {
+            Log.d(TAG, "isInDoubleTapShiftKeyTimeout");
+        }
         final MainKeyboardView keyboardView = getMainKeyboardView();
         return keyboardView != null && keyboardView.isInDoubleTapShiftKeyTimeout();
     }
@@ -304,9 +350,9 @@
     /**
      * Updates state machine to figure out when to automatically switch back to the previous mode.
      */
-    public void onCodeInput(final int code, final int currentAutoCapsState,
+    public void onEvent(final Event event, final int currentAutoCapsState,
             final int currentRecapitalizeState) {
-        mState.onCodeInput(code, currentAutoCapsState, currentRecapitalizeState);
+        mState.onEvent(event, currentAutoCapsState, currentRecapitalizeState);
     }
 
     public boolean isShowingEmojiPalettes() {
@@ -347,7 +393,7 @@
         }
 
         updateKeyboardThemeAndContextThemeWrapper(
-                mLatinIME, KeyboardTheme.getKeyboardTheme(mPrefs));
+                mLatinIME, KeyboardTheme.getKeyboardTheme(mLatinIME /* context */));
         mCurrentInputView = (InputView)LayoutInflater.from(mThemeContext).inflate(
                 R.layout.input_view, null);
         mMainKeyboardFrame = mCurrentInputView.findViewById(R.id.main_keyboard_frame);
@@ -363,12 +409,6 @@
         return mCurrentInputView;
     }
 
-    public void onNetworkStateChanged() {
-        if (mKeyboardView != null) {
-            mKeyboardView.updateShortcutKey(mSubtypeSwitcher.isShortcutImeReady());
-        }
-    }
-
     public int getKeyboardShiftMode() {
         final Keyboard keyboard = getKeyboard();
         if (keyboard == null) {
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java b/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java
index 7161d3f..006d086 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardTheme.java
@@ -16,14 +16,17 @@
 
 package com.android.inputmethod.keyboard;
 
+import android.content.Context;
 import android.content.SharedPreferences;
+import android.os.Build;
 import android.os.Build.VERSION_CODES;
+import android.preference.PreferenceManager;
 import android.util.Log;
 
-import com.android.inputmethod.annotations.UsedForTesting;
 import com.android.inputmethod.compat.BuildCompatUtils;
 import com.android.inputmethod.latin.R;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 
 public final class KeyboardTheme implements Comparable<KeyboardTheme> {
@@ -40,7 +43,10 @@
     public static final int THEME_ID_LXX_DARK = 4;
     public static final int DEFAULT_THEME_ID = THEME_ID_KLP;
 
-    private static final KeyboardTheme[] KEYBOARD_THEMES = {
+    private static KeyboardTheme[] AVAILABLE_KEYBOARD_THEMES;
+
+    /* package private for testing */
+    static final KeyboardTheme[] KEYBOARD_THEMES = {
         new KeyboardTheme(THEME_ID_ICS, "ICS", R.style.KeyboardTheme_ICS,
                 // This has never been selected because we support ICS or later.
                 VERSION_CODES.BASE),
@@ -49,8 +55,9 @@
                 VERSION_CODES.ICE_CREAM_SANDWICH),
         new KeyboardTheme(THEME_ID_LXX_LIGHT, "LXXLight", R.style.KeyboardTheme_LXX_Light,
                 // Default theme for LXX.
-                BuildCompatUtils.VERSION_CODES_LXX),
+                Build.VERSION_CODES.LOLLIPOP),
         new KeyboardTheme(THEME_ID_LXX_DARK, "LXXDark", R.style.KeyboardTheme_LXX_Dark,
+                // This has never been selected as default theme.
                 VERSION_CODES.BASE),
     };
 
@@ -62,7 +69,7 @@
     public final int mThemeId;
     public final int mStyleId;
     public final String mThemeName;
-    private final int mMinApiVersion;
+    public final int mMinApiVersion;
 
     // Note: The themeId should be aligned with "themeId" attribute of Keyboard style
     // in values/themes-<style>.xml.
@@ -92,10 +99,11 @@
         return mThemeId;
     }
 
-    @UsedForTesting
-    static KeyboardTheme searchKeyboardThemeById(final int themeId) {
+    /* package private for testing */
+    static KeyboardTheme searchKeyboardThemeById(final int themeId,
+            final KeyboardTheme[] availableThemeIds) {
         // TODO: This search algorithm isn't optimal if there are many themes.
-        for (final KeyboardTheme theme : KEYBOARD_THEMES) {
+        for (final KeyboardTheme theme : availableThemeIds) {
             if (theme.mThemeId == themeId) {
                 return theme;
             }
@@ -103,15 +111,16 @@
         return null;
     }
 
-    @UsedForTesting
+    /* package private for testing */
     static KeyboardTheme getDefaultKeyboardTheme(final SharedPreferences prefs,
-            final int sdkVersion) {
+            final int sdkVersion, final KeyboardTheme[] availableThemeArray) {
         final String klpThemeIdString = prefs.getString(KLP_KEYBOARD_THEME_KEY, null);
         if (klpThemeIdString != null) {
             if (sdkVersion <= VERSION_CODES.KITKAT) {
                 try {
                     final int themeId = Integer.parseInt(klpThemeIdString);
-                    final KeyboardTheme theme = searchKeyboardThemeById(themeId);
+                    final KeyboardTheme theme = searchKeyboardThemeById(themeId,
+                            availableThemeArray);
                     if (theme != null) {
                         return theme;
                     }
@@ -125,25 +134,24 @@
             prefs.edit().remove(KLP_KEYBOARD_THEME_KEY).apply();
         }
         // TODO: This search algorithm isn't optimal if there are many themes.
-        for (final KeyboardTheme theme : KEYBOARD_THEMES) {
+        for (final KeyboardTheme theme : availableThemeArray) {
             if (sdkVersion >= theme.mMinApiVersion) {
                 return theme;
             }
         }
-        return searchKeyboardThemeById(DEFAULT_THEME_ID);
+        return searchKeyboardThemeById(DEFAULT_THEME_ID, availableThemeArray);
     }
 
     public static String getKeyboardThemeName(final int themeId) {
-        final KeyboardTheme theme = searchKeyboardThemeById(themeId);
+        final KeyboardTheme theme = searchKeyboardThemeById(themeId, KEYBOARD_THEMES);
         return theme.mThemeName;
     }
 
-    public static void saveKeyboardThemeId(final String themeIdString,
-            final SharedPreferences prefs) {
-        saveKeyboardThemeId(themeIdString, prefs, BuildCompatUtils.EFFECTIVE_SDK_INT);
+    public static void saveKeyboardThemeId(final int themeId, final SharedPreferences prefs) {
+        saveKeyboardThemeId(themeId, prefs, BuildCompatUtils.EFFECTIVE_SDK_INT);
     }
 
-    @UsedForTesting
+    /* package private for testing */
     static String getPreferenceKey(final int sdkVersion) {
         if (sdkVersion <= VERSION_CODES.KITKAT) {
             return KLP_KEYBOARD_THEME_KEY;
@@ -151,26 +159,48 @@
         return LXX_KEYBOARD_THEME_KEY;
     }
 
-    @UsedForTesting
-    static void saveKeyboardThemeId(final String themeIdString,
-            final SharedPreferences prefs, final int sdkVersion) {
+    /* package private for testing */
+    static void saveKeyboardThemeId(final int themeId, final SharedPreferences prefs,
+            final int sdkVersion) {
         final String prefKey = getPreferenceKey(sdkVersion);
-        prefs.edit().putString(prefKey, themeIdString).apply();
+        prefs.edit().putString(prefKey, Integer.toString(themeId)).apply();
     }
 
-    public static KeyboardTheme getKeyboardTheme(final SharedPreferences prefs) {
-        return getKeyboardTheme(prefs, BuildCompatUtils.EFFECTIVE_SDK_INT);
+    public static KeyboardTheme getKeyboardTheme(final Context context) {
+        final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
+        final KeyboardTheme[] availableThemeArray = getAvailableThemeArray(context);
+        return getKeyboardTheme(prefs, BuildCompatUtils.EFFECTIVE_SDK_INT, availableThemeArray);
     }
 
-    @UsedForTesting
-    static KeyboardTheme getKeyboardTheme(final SharedPreferences prefs, final int sdkVersion) {
+    /* package private for testing */
+    static KeyboardTheme[] getAvailableThemeArray(final Context context) {
+        if (AVAILABLE_KEYBOARD_THEMES == null) {
+            final int[] availableThemeIdStringArray = context.getResources().getIntArray(
+                    R.array.keyboard_theme_ids);
+            final ArrayList<KeyboardTheme> availableThemeList = new ArrayList<>();
+            for (final int id : availableThemeIdStringArray) {
+                final KeyboardTheme theme = searchKeyboardThemeById(id, KEYBOARD_THEMES);
+                if (theme != null) {
+                    availableThemeList.add(theme);
+                }
+            }
+            AVAILABLE_KEYBOARD_THEMES = availableThemeList.toArray(
+                    new KeyboardTheme[availableThemeList.size()]);
+            Arrays.sort(AVAILABLE_KEYBOARD_THEMES);
+        }
+        return AVAILABLE_KEYBOARD_THEMES;
+    }
+
+    /* package private for testing */
+    static KeyboardTheme getKeyboardTheme(final SharedPreferences prefs, final int sdkVersion,
+            final KeyboardTheme[] availableThemeArray) {
         final String lxxThemeIdString = prefs.getString(LXX_KEYBOARD_THEME_KEY, null);
         if (lxxThemeIdString == null) {
-            return getDefaultKeyboardTheme(prefs, sdkVersion);
+            return getDefaultKeyboardTheme(prefs, sdkVersion, availableThemeArray);
         }
         try {
             final int themeId = Integer.parseInt(lxxThemeIdString);
-            final KeyboardTheme theme = searchKeyboardThemeById(themeId);
+            final KeyboardTheme theme = searchKeyboardThemeById(themeId, availableThemeArray);
             if (theme != null) {
                 return theme;
             }
@@ -180,6 +210,6 @@
         }
         // Remove preference that contains unknown or illegal theme id.
         prefs.edit().remove(LXX_KEYBOARD_THEME_KEY).apply();
-        return getDefaultKeyboardTheme(prefs, sdkVersion);
+        return getDefaultKeyboardTheme(prefs, sdkVersion, availableThemeArray);
     }
 }
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index 98cd1da..27e538c 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -25,7 +25,6 @@
 import android.graphics.Paint.Align;
 import android.graphics.PorterDuff;
 import android.graphics.Rect;
-import android.graphics.Region;
 import android.graphics.Typeface;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.NinePatchDrawable;
@@ -35,12 +34,15 @@
 
 import com.android.inputmethod.keyboard.internal.KeyDrawParams;
 import com.android.inputmethod.keyboard.internal.KeyVisualAttributes;
-import com.android.inputmethod.latin.Constants;
 import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.common.Constants;
 import com.android.inputmethod.latin.utils.TypefaceUtils;
 
 import java.util.HashSet;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 /**
  * A view that renders a virtual {@link Keyboard}.
  *
@@ -98,24 +100,28 @@
     private static final float MAX_LABEL_RATIO = 0.90f;
 
     // Main keyboard
+    // TODO: Consider having a dummy keyboard object to make this @Nonnull
+    @Nullable
     private Keyboard mKeyboard;
-    protected final KeyDrawParams mKeyDrawParams = new KeyDrawParams();
+    @Nonnull
+    private final KeyDrawParams mKeyDrawParams = new KeyDrawParams();
 
     // Drawing
     /** True if all keys should be drawn */
     private boolean mInvalidateAllKeys;
     /** The keys that should be drawn */
     private final HashSet<Key> mInvalidatedKeys = new HashSet<>();
-    /** The working rectangle variable */
-    private final Rect mWorkingRect = new Rect();
+    /** The working rectangle for clipping */
+    private final Rect mClipRect = new Rect();
     /** The keyboard bitmap buffer for faster updates */
-    /** The clip region to draw keys */
-    private final Region mClipRegion = new Region();
     private Bitmap mOffscreenBuffer;
     /** The canvas for the above mutable keyboard bitmap */
+    @Nonnull
     private final Canvas mOffscreenCanvas = new Canvas();
+    @Nonnull
     private final Paint mPaint = new Paint();
     private final Paint.FontMetrics mFontMetrics = new Paint.FontMetrics();
+
     public KeyboardView(final Context context, final AttributeSet attrs) {
         this(context, attrs, R.attr.keyboardViewStyle);
     }
@@ -159,11 +165,12 @@
         mPaint.setAntiAlias(true);
     }
 
+    @Nullable
     public KeyVisualAttributes getKeyVisualAttribute() {
         return mKeyVisualAttributes;
     }
 
-    private static void blendAlpha(final Paint paint, final int alpha) {
+    private static void blendAlpha(@Nonnull final Paint paint, final int alpha) {
         final int color = paint.getColor();
         paint.setARGB((paint.getAlpha() * alpha) / Constants.Color.ALPHA_OPAQUE,
                 Color.red(color), Color.green(color), Color.blue(color));
@@ -182,7 +189,7 @@
      * @see #getKeyboard()
      * @param keyboard the keyboard to display in this view
      */
-    public void setKeyboard(final Keyboard keyboard) {
+    public void setKeyboard(@Nonnull final Keyboard keyboard) {
         mKeyboard = keyboard;
         final int keyHeight = keyboard.mMostCommonKeyHeight - keyboard.mVerticalGap;
         mKeyDrawParams.updateParams(keyHeight, mKeyVisualAttributes);
@@ -196,6 +203,7 @@
      * @return the currently attached keyboard
      * @see #setKeyboard(Keyboard)
      */
+    @Nullable
     public Keyboard getKeyboard() {
         return mKeyboard;
     }
@@ -204,19 +212,25 @@
         return mVerticalCorrection;
     }
 
+    @Nonnull
+    protected KeyDrawParams getKeyDrawParams() {
+        return mKeyDrawParams;
+    }
+
     protected void updateKeyDrawParams(final int keyHeight) {
         mKeyDrawParams.updateParams(keyHeight, mKeyVisualAttributes);
     }
 
     @Override
     protected void onMeasure(final int widthMeasureSpec, final int heightMeasureSpec) {
-        if (mKeyboard == null) {
+        final Keyboard keyboard = getKeyboard();
+        if (keyboard == null) {
             super.onMeasure(widthMeasureSpec, heightMeasureSpec);
             return;
         }
         // The main keyboard expands to the entire this {@link KeyboardView}.
-        final int width = mKeyboard.mOccupiedWidth + getPaddingLeft() + getPaddingRight();
-        final int height = mKeyboard.mOccupiedHeight + getPaddingTop() + getPaddingBottom();
+        final int width = keyboard.mOccupiedWidth + getPaddingLeft() + getPaddingRight();
+        final int height = keyboard.mOccupiedHeight + getPaddingTop() + getPaddingBottom();
         setMeasuredDimension(width, height);
     }
 
@@ -264,52 +278,45 @@
         }
     }
 
-    private void onDrawKeyboard(final Canvas canvas) {
-        if (mKeyboard == null) return;
+    private void onDrawKeyboard(@Nonnull final Canvas canvas) {
+        final Keyboard keyboard = getKeyboard();
+        if (keyboard == null) {
+            return;
+        }
 
-        final int width = getWidth();
-        final int height = getHeight();
         final Paint paint = mPaint;
-
+        final Drawable background = getBackground();
         // Calculate clip region and set.
         final boolean drawAllKeys = mInvalidateAllKeys || mInvalidatedKeys.isEmpty();
         final boolean isHardwareAccelerated = canvas.isHardwareAccelerated();
         // TODO: Confirm if it's really required to draw all keys when hardware acceleration is on.
         if (drawAllKeys || isHardwareAccelerated) {
-            mClipRegion.set(0, 0, width, height);
-        } else {
-            mClipRegion.setEmpty();
-            for (final Key key : mInvalidatedKeys) {
-                if (mKeyboard.hasKey(key)) {
-                    final int x = key.getX() + getPaddingLeft();
-                    final int y = key.getY() + getPaddingTop();
-                    mWorkingRect.set(x, y, x + key.getWidth(), y + key.getHeight());
-                    mClipRegion.union(mWorkingRect);
-                }
-            }
-        }
-        if (!isHardwareAccelerated) {
-            canvas.clipRegion(mClipRegion, Region.Op.REPLACE);
-            // Draw keyboard background.
-            canvas.drawColor(Color.BLACK, PorterDuff.Mode.CLEAR);
-            final Drawable background = getBackground();
-            if (background != null) {
+            if (!isHardwareAccelerated && background != null) {
+                // Need to draw keyboard background on {@link #mOffscreenBuffer}.
+                canvas.drawColor(Color.BLACK, PorterDuff.Mode.CLEAR);
                 background.draw(canvas);
             }
-        }
-
-        // TODO: Confirm if it's really required to draw all keys when hardware acceleration is on.
-        if (drawAllKeys || isHardwareAccelerated) {
             // Draw all keys.
-            for (final Key key : mKeyboard.getSortedKeys()) {
+            for (final Key key : keyboard.getSortedKeys()) {
                 onDrawKey(key, canvas, paint);
             }
         } else {
-            // Draw invalidated keys.
             for (final Key key : mInvalidatedKeys) {
-                if (mKeyboard.hasKey(key)) {
-                    onDrawKey(key, canvas, paint);
+                if (!keyboard.hasKey(key)) {
+                    continue;
                 }
+                if (background != null) {
+                    // Need to redraw key's background on {@link #mOffscreenBuffer}.
+                    final int x = key.getX() + getPaddingLeft();
+                    final int y = key.getY() + getPaddingTop();
+                    mClipRect.set(x, y, x + key.getWidth(), y + key.getHeight());
+                    canvas.save();
+                    canvas.clipRect(mClipRect);
+                    canvas.drawColor(Color.BLACK, PorterDuff.Mode.CLEAR);
+                    background.draw(canvas);
+                    canvas.restore();
+                }
+                onDrawKey(key, canvas, paint);
             }
         }
 
@@ -317,20 +324,22 @@
         mInvalidateAllKeys = false;
     }
 
-    private void onDrawKey(final Key key, final Canvas canvas, final Paint paint) {
+    private void onDrawKey(@Nonnull final Key key, @Nonnull final Canvas canvas,
+            @Nonnull final Paint paint) {
         final int keyDrawX = key.getDrawX() + getPaddingLeft();
         final int keyDrawY = key.getY() + getPaddingTop();
         canvas.translate(keyDrawX, keyDrawY);
 
-        final int keyHeight = mKeyboard.mMostCommonKeyHeight - mKeyboard.mVerticalGap;
         final KeyVisualAttributes attr = key.getVisualAttributes();
-        final KeyDrawParams params = mKeyDrawParams.mayCloneAndUpdateParams(keyHeight, attr);
+        final KeyDrawParams params = mKeyDrawParams.mayCloneAndUpdateParams(key.getHeight(), attr);
         params.mAnimAlpha = Constants.Color.ALPHA_OPAQUE;
 
         if (!key.isSpacer()) {
             final Drawable background = key.selectBackgroundDrawable(
                     mKeyBackground, mFunctionalKeyBackground, mSpacebarBackground);
-            onDrawKeyBackground(key, canvas, background);
+            if (background != null) {
+                onDrawKeyBackground(key, canvas, background);
+            }
         }
         onDrawKeyTopVisuals(key, canvas, paint, params);
 
@@ -338,8 +347,8 @@
     }
 
     // Draw key background.
-    protected void onDrawKeyBackground(final Key key, final Canvas canvas,
-            final Drawable background) {
+    protected void onDrawKeyBackground(@Nonnull final Key key, @Nonnull final Canvas canvas,
+            @Nonnull final Drawable background) {
         final int keyWidth = key.getDrawWidth();
         final int keyHeight = key.getHeight();
         final int bgWidth, bgHeight, bgX, bgY;
@@ -371,15 +380,17 @@
     }
 
     // Draw key top visuals.
-    protected void onDrawKeyTopVisuals(final Key key, final Canvas canvas, final Paint paint,
-            final KeyDrawParams params) {
+    protected void onDrawKeyTopVisuals(@Nonnull final Key key, @Nonnull final Canvas canvas,
+            @Nonnull final Paint paint, @Nonnull final KeyDrawParams params) {
         final int keyWidth = key.getDrawWidth();
         final int keyHeight = key.getHeight();
         final float centerX = keyWidth * 0.5f;
         final float centerY = keyHeight * 0.5f;
 
         // Draw key label.
-        final Drawable icon = key.getIcon(mKeyboard.mIconsSet, params.mAnimAlpha);
+        final Keyboard keyboard = getKeyboard();
+        final Drawable icon = (keyboard == null) ? null
+                : key.getIcon(keyboard.mIconsSet, params.mAnimAlpha);
         float labelX = centerX;
         float labelBaseline = centerY;
         final String label = key.getLabel();
@@ -498,8 +509,8 @@
     }
 
     // Draw popup hint "..." at the bottom right corner of the key.
-    protected void drawKeyPopupHint(final Key key, final Canvas canvas, final Paint paint,
-            final KeyDrawParams params) {
+    protected void drawKeyPopupHint(@Nonnull final Key key, @Nonnull final Canvas canvas,
+            @Nonnull final Paint paint, @Nonnull final KeyDrawParams params) {
         if (TextUtils.isEmpty(mKeyPopupHintLetter)) {
             return;
         }
@@ -516,15 +527,15 @@
         canvas.drawText(mKeyPopupHintLetter, hintX, hintY, paint);
     }
 
-    protected static void drawIcon(final Canvas canvas, final Drawable icon, final int x,
-            final int y, final int width, final int height) {
+    protected static void drawIcon(@Nonnull final Canvas canvas,@Nonnull final Drawable icon,
+            final int x, final int y, final int width, final int height) {
         canvas.translate(x, y);
         icon.setBounds(0, 0, width, height);
         icon.draw(canvas);
         canvas.translate(-x, -y);
     }
 
-    public Paint newLabelPaint(final Key key) {
+    public Paint newLabelPaint(@Nullable final Key key) {
         final Paint paint = new Paint();
         paint.setAntiAlias(true);
         if (key == null) {
@@ -557,9 +568,10 @@
      * @param key key in the attached {@link Keyboard}.
      * @see #invalidateAllKeys
      */
-    public void invalidateKey(final Key key) {
-        if (mInvalidateAllKeys) return;
-        if (key == null) return;
+    public void invalidateKey(@Nullable final Key key) {
+        if (mInvalidateAllKeys || key == null) {
+            return;
+        }
         mInvalidatedKeys.add(key);
         final int x = key.getX() + getPaddingLeft();
         final int y = key.getY() + getPaddingTop();
diff --git a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
index 2b16785..00d4fa2 100644
--- a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java
@@ -28,40 +28,44 @@
 import android.graphics.Paint.Align;
 import android.graphics.Typeface;
 import android.preference.PreferenceManager;
+import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
-import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.accessibility.AccessibilityUtils;
 import com.android.inputmethod.accessibility.MainKeyboardAccessibilityDelegate;
 import com.android.inputmethod.annotations.ExternallyReferenced;
-import com.android.inputmethod.keyboard.internal.DrawingHandler;
 import com.android.inputmethod.keyboard.internal.DrawingPreviewPlacerView;
+import com.android.inputmethod.keyboard.internal.DrawingProxy;
 import com.android.inputmethod.keyboard.internal.GestureFloatingTextDrawingPreview;
 import com.android.inputmethod.keyboard.internal.GestureTrailsDrawingPreview;
 import com.android.inputmethod.keyboard.internal.KeyDrawParams;
 import com.android.inputmethod.keyboard.internal.KeyPreviewChoreographer;
 import com.android.inputmethod.keyboard.internal.KeyPreviewDrawParams;
 import com.android.inputmethod.keyboard.internal.KeyPreviewView;
-import com.android.inputmethod.keyboard.internal.LanguageOnSpacebarHelper;
 import com.android.inputmethod.keyboard.internal.MoreKeySpec;
 import com.android.inputmethod.keyboard.internal.NonDistinctMultitouchHelper;
 import com.android.inputmethod.keyboard.internal.SlidingKeyInputDrawingPreview;
 import com.android.inputmethod.keyboard.internal.TimerHandler;
-import com.android.inputmethod.latin.Constants;
 import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.RichInputMethodSubtype;
 import com.android.inputmethod.latin.SuggestedWords;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.CoordinateUtils;
 import com.android.inputmethod.latin.settings.DebugSettings;
-import com.android.inputmethod.latin.utils.CoordinateUtils;
-import com.android.inputmethod.latin.utils.SpacebarLanguageUtils;
+import com.android.inputmethod.latin.utils.LanguageOnSpacebarUtils;
 import com.android.inputmethod.latin.utils.TypefaceUtils;
 
+import java.util.Locale;
 import java.util.WeakHashMap;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 /**
  * A view that is responsible for detecting key presses and touch movements.
  *
@@ -105,8 +109,8 @@
  * @attr ref R.styleable#MainKeyboardView_gestureRecognitionSpeedThreshold
  * @attr ref R.styleable#MainKeyboardView_suppressKeyPreviewAfterBatchInputDuration
  */
-public final class MainKeyboardView extends KeyboardView implements PointerTracker.DrawingProxy,
-        MoreKeysPanel.Controller, DrawingHandler.Callbacks, TimerHandler.Callbacks {
+public final class MainKeyboardView extends KeyboardView implements DrawingProxy,
+        MoreKeysPanel.Controller {
     private static final String TAG = MainKeyboardView.class.getSimpleName();
 
     /** Listener for {@link KeyboardActionListener}. */
@@ -147,7 +151,6 @@
 
     // More keys keyboard
     private final Paint mBackgroundDimAlphaPaint = new Paint();
-    private boolean mNeedsToDimEntireKeyboard;
     private final View mMoreKeysKeyboardContainer;
     private final View mMoreKeysKeyboardForActionContainer;
     private final WeakHashMap<Key, Keyboard> mMoreKeysKeyboardCache = new WeakHashMap<>();
@@ -163,11 +166,9 @@
     private final KeyDetector mKeyDetector;
     private final NonDistinctMultitouchHelper mNonDistinctMultitouchHelper;
 
-    private final TimerHandler mKeyTimerHandler;
+    private final TimerHandler mTimerHandler;
     private final int mLanguageOnSpacebarHorizontalMargin;
 
-    private final DrawingHandler mDrawingHandler = new DrawingHandler(this);
-
     private MainKeyboardAccessibilityDelegate mAccessibilityDelegate;
 
     public MainKeyboardView(final Context context, final AttributeSet attrs) {
@@ -177,7 +178,8 @@
     public MainKeyboardView(final Context context, final AttributeSet attrs, final int defStyle) {
         super(context, attrs, defStyle);
 
-        mDrawingPreviewPlacerView = new DrawingPreviewPlacerView(context, attrs);
+        final DrawingPreviewPlacerView drawingPreviewPlacerView =
+                new DrawingPreviewPlacerView(context, attrs);
 
         final TypedArray mainKeyboardViewAttr = context.obtainStyledAttributes(
                 attrs, R.styleable.MainKeyboardView, defStyle, R.style.MainKeyboardView);
@@ -185,7 +187,7 @@
                 R.styleable.MainKeyboardView_ignoreAltCodeKeyTimeout, 0);
         final int gestureRecognitionUpdateTime = mainKeyboardViewAttr.getInt(
                 R.styleable.MainKeyboardView_gestureRecognitionUpdateTime, 0);
-        mKeyTimerHandler = new TimerHandler(
+        mTimerHandler = new TimerHandler(
                 this, ignoreAltCodeKeyTimeout, gestureRecognitionUpdateTime);
 
         final float keyHysteresisDistance = mainKeyboardViewAttr.getDimension(
@@ -195,7 +197,7 @@
         mKeyDetector = new KeyDetector(
                 keyHysteresisDistance, keyHysteresisDistanceForSlidingModifier);
 
-        PointerTracker.init(mainKeyboardViewAttr, mKeyTimerHandler, this /* DrawingProxy */);
+        PointerTracker.init(mainKeyboardViewAttr, mTimerHandler, this /* DrawingProxy */);
 
         final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
         final boolean forceNonDistinctMultitouch = prefs.getBoolean(
@@ -245,15 +247,17 @@
 
         mGestureFloatingTextDrawingPreview = new GestureFloatingTextDrawingPreview(
                 mainKeyboardViewAttr);
-        mGestureFloatingTextDrawingPreview.setDrawingView(mDrawingPreviewPlacerView);
+        mGestureFloatingTextDrawingPreview.setDrawingView(drawingPreviewPlacerView);
 
         mGestureTrailsDrawingPreview = new GestureTrailsDrawingPreview(mainKeyboardViewAttr);
-        mGestureTrailsDrawingPreview.setDrawingView(mDrawingPreviewPlacerView);
+        mGestureTrailsDrawingPreview.setDrawingView(drawingPreviewPlacerView);
 
         mSlidingKeyInputDrawingPreview = new SlidingKeyInputDrawingPreview(mainKeyboardViewAttr);
-        mSlidingKeyInputDrawingPreview.setDrawingView(mDrawingPreviewPlacerView);
+        mSlidingKeyInputDrawingPreview.setDrawingView(drawingPreviewPlacerView);
         mainKeyboardViewAttr.recycle();
 
+        mDrawingPreviewPlacerView = drawingPreviewPlacerView;
+
         final LayoutInflater inflater = LayoutInflater.from(getContext());
         mMoreKeysKeyboardContainer = inflater.inflate(moreKeysKeyboardLayoutId, null);
         mMoreKeysKeyboardForActionContainer = inflater.inflate(
@@ -306,17 +310,24 @@
         animatorToStart.setCurrentPlayTime(startTime);
     }
 
-    // Implements {@link TimerHander.Callbacks} method.
+    // Implements {@link DrawingProxy#startWhileTypingAnimation(int)}.
+    /**
+     * Called when a while-typing-animation should be started.
+     * @param fadeInOrOut {@link DrawingProxy#FADE_IN} starts while-typing-fade-in animation.
+     * {@link DrawingProxy#FADE_OUT} starts while-typing-fade-out animation.
+     */
     @Override
-    public void startWhileTypingFadeinAnimation() {
-        cancelAndStartAnimators(
-                mAltCodeKeyWhileTypingFadeoutAnimator, mAltCodeKeyWhileTypingFadeinAnimator);
-    }
-
-    @Override
-    public void startWhileTypingFadeoutAnimation() {
-        cancelAndStartAnimators(
-                mAltCodeKeyWhileTypingFadeinAnimator, mAltCodeKeyWhileTypingFadeoutAnimator);
+    public void startWhileTypingAnimation(final int fadeInOrOut) {
+        switch (fadeInOrOut) {
+        case DrawingProxy.FADE_IN:
+            cancelAndStartAnimators(
+                    mAltCodeKeyWhileTypingFadeoutAnimator, mAltCodeKeyWhileTypingFadeinAnimator);
+            break;
+        case DrawingProxy.FADE_OUT:
+            cancelAndStartAnimators(
+                    mAltCodeKeyWhileTypingFadeinAnimator, mAltCodeKeyWhileTypingFadeoutAnimator);
+            break;
+        }
     }
 
     @ExternallyReferenced
@@ -378,7 +389,7 @@
     @Override
     public void setKeyboard(final Keyboard keyboard) {
         // Remove any pending messages, except dismissing preview and key repeat.
-        mKeyTimerHandler.cancelLongPressTimers();
+        mTimerHandler.cancelLongPressTimers();
         super.setKeyboard(keyboard);
         mKeyDetector.setKeyboard(
                 keyboard, -getPaddingLeft(), -getPaddingTop() + getVerticalCorrection());
@@ -450,19 +461,17 @@
         windowContentView.addView(mDrawingPreviewPlacerView);
     }
 
-    // Implements {@link DrawingHandler.Callbacks} method.
+    // Implements {@link DrawingProxy#onKeyPressed(Key,boolean)}.
     @Override
-    public void dismissAllKeyPreviews() {
-        mKeyPreviewChoreographer.dismissAllKeyPreviews();
-        PointerTracker.setReleasedKeyGraphicsToAllKeys();
+    public void onKeyPressed(@Nonnull final Key key, final boolean withPreview) {
+        key.onPressed();
+        invalidateKey(key);
+        if (withPreview && !key.noKeyPreview()) {
+            showKeyPreview(key);
+        }
     }
 
-    @Override
-    public void showKeyPreview(final Key key) {
-        // If the key is invalid or has no key preview, we must not show key preview.
-        if (key == null || key.noKeyPreview()) {
-            return;
-        }
+    private void showKeyPreview(@Nonnull final Key key) {
         final Keyboard keyboard = getKeyboard();
         if (keyboard == null) {
             return;
@@ -475,26 +484,36 @@
 
         locatePreviewPlacerView();
         getLocationInWindow(mOriginCoords);
-        mKeyPreviewChoreographer.placeAndShowKeyPreview(key, keyboard.mIconsSet, mKeyDrawParams,
+        mKeyPreviewChoreographer.placeAndShowKeyPreview(key, keyboard.mIconsSet, getKeyDrawParams(),
                 getWidth(), mOriginCoords, mDrawingPreviewPlacerView, isHardwareAccelerated());
     }
 
-    // Implements {@link TimerHandler.Callbacks} method.
-    @Override
-    public void dismissKeyPreviewWithoutDelay(final Key key) {
+    private void dismissKeyPreviewWithoutDelay(@Nonnull final Key key) {
         mKeyPreviewChoreographer.dismissKeyPreview(key, false /* withAnimation */);
-        // To redraw key top letter.
         invalidateKey(key);
     }
 
+    // Implements {@link DrawingProxy#onKeyReleased(Key,boolean)}.
     @Override
-    public void dismissKeyPreview(final Key key) {
-        if (!isHardwareAccelerated()) {
-            // TODO: Implement preference option to control key preview method and duration.
-            mDrawingHandler.dismissKeyPreview(mKeyPreviewDrawParams.getLingerTimeout(), key);
+    public void onKeyReleased(@Nonnull final Key key, final boolean withAnimation) {
+        key.onReleased();
+        invalidateKey(key);
+        if (!key.noKeyPreview()) {
+            if (withAnimation) {
+                dismissKeyPreview(key);
+            } else {
+                dismissKeyPreviewWithoutDelay(key);
+            }
+        }
+    }
+
+    private void dismissKeyPreview(@Nonnull final Key key) {
+        if (isHardwareAccelerated()) {
+            mKeyPreviewChoreographer.dismissKeyPreview(key, true /* withAnimation */);
             return;
         }
-        mKeyPreviewChoreographer.dismissKeyPreview(key, true /* withAnimation */);
+        // TODO: Implement preference option to control key preview method and duration.
+        mTimerHandler.postDismissKeyPreview(key, mKeyPreviewDrawParams.getLingerTimeout());
     }
 
     public void setSlidingKeyInputPreviewEnabled(final boolean enabled) {
@@ -502,14 +521,13 @@
     }
 
     @Override
-    public void showSlidingKeyInputPreview(final PointerTracker tracker) {
+    public void showSlidingKeyInputPreview(@Nullable final PointerTracker tracker) {
         locatePreviewPlacerView();
-        mSlidingKeyInputDrawingPreview.setPreviewPosition(tracker);
-    }
-
-    @Override
-    public void dismissSlidingKeyInputPreview() {
-        mSlidingKeyInputDrawingPreview.dismissSlidingKeyInputPreview();
+        if (tracker != null) {
+            mSlidingKeyInputDrawingPreview.setPreviewPosition(tracker);
+        } else {
+            mSlidingKeyInputDrawingPreview.dismissSlidingKeyInputPreview();
+        }
     }
 
     private void setGesturePreviewMode(final boolean isGestureTrailEnabled,
@@ -518,20 +536,26 @@
         mGestureTrailsDrawingPreview.setPreviewEnabled(isGestureTrailEnabled);
     }
 
-    // Implements {@link DrawingHandler.Callbacks} method.
-    @Override
-    public void showGestureFloatingPreviewText(final SuggestedWords suggestedWords) {
+    public void showGestureFloatingPreviewText(@Nonnull final SuggestedWords suggestedWords,
+            final boolean dismissDelayed) {
         locatePreviewPlacerView();
-        mGestureFloatingTextDrawingPreview.setSuggetedWords(suggestedWords);
+        final GestureFloatingTextDrawingPreview gestureFloatingTextDrawingPreview =
+                mGestureFloatingTextDrawingPreview;
+        gestureFloatingTextDrawingPreview.setSuggetedWords(suggestedWords);
+        if (dismissDelayed) {
+            mTimerHandler.postDismissGestureFloatingPreviewText(
+                    mGestureFloatingPreviewTextLingerTimeout);
+        }
     }
 
-    public void dismissGestureFloatingPreviewText() {
-        locatePreviewPlacerView();
-        mDrawingHandler.dismissGestureFloatingPreviewText(mGestureFloatingPreviewTextLingerTimeout);
+    // Implements {@link DrawingProxy#dismissGestureFloatingPreviewTextWithoutDelay()}.
+    @Override
+    public void dismissGestureFloatingPreviewTextWithoutDelay() {
+        mGestureFloatingTextDrawingPreview.dismissGestureFloatingPreviewText();
     }
 
     @Override
-    public void showGestureTrail(final PointerTracker tracker,
+    public void showGestureTrail(@Nonnull final PointerTracker tracker,
             final boolean showsFloatingPreviewText) {
         locatePreviewPlacerView();
         if (showsFloatingPreviewText) {
@@ -566,7 +590,11 @@
         mDrawingPreviewPlacerView.removeAllViews();
     }
 
-    private MoreKeysPanel onCreateMoreKeysPanel(final Key key, final Context context) {
+    // Implements {@link DrawingProxy@showMoreKeysKeyboard(Key,PointerTracker)}.
+    @Override
+    @Nullable
+    public MoreKeysPanel showMoreKeysKeyboard(@Nonnull final Key key,
+            @Nonnull final PointerTracker tracker) {
         final MoreKeySpec[] moreKeys = key.getMoreKeys();
         if (moreKeys == null) {
             return null;
@@ -582,7 +610,7 @@
                     && !key.noKeyPreview() && moreKeys.length == 1
                     && mKeyPreviewDrawParams.getVisibleWidth() > 0;
             final MoreKeysKeyboard.Builder builder = new MoreKeysKeyboard.Builder(
-                    context, key, getKeyboard(), isSingleMoreKeyWithPreview,
+                    getContext(), key, getKeyboard(), isSingleMoreKeyWithPreview,
                     mKeyPreviewDrawParams.getVisibleWidth(),
                     mKeyPreviewDrawParams.getVisibleHeight(), newLabelPaint(key));
             moreKeysKeyboard = builder.build();
@@ -595,50 +623,6 @@
                 (MoreKeysKeyboardView)container.findViewById(R.id.more_keys_keyboard_view);
         moreKeysKeyboardView.setKeyboard(moreKeysKeyboard);
         container.measure(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
-        return moreKeysKeyboardView;
-    }
-
-    // Implements {@link TimerHandler.Callbacks} method.
-    /**
-     * Called when a key is long pressed.
-     * @param tracker the pointer tracker which pressed the parent key
-     */
-    @Override
-    public void onLongPress(final PointerTracker tracker) {
-        if (isShowingMoreKeysPanel()) {
-            return;
-        }
-        final Key key = tracker.getKey();
-        if (key == null) {
-            return;
-        }
-        final KeyboardActionListener listener = mKeyboardActionListener;
-        if (key.hasNoPanelAutoMoreKey()) {
-            final int moreKeyCode = key.getMoreKeys()[0].mCode;
-            tracker.onLongPressed();
-            listener.onPressKey(moreKeyCode, 0 /* repeatCount */, true /* isSinglePointer */);
-            listener.onCodeInput(moreKeyCode, Constants.NOT_A_COORDINATE,
-                    Constants.NOT_A_COORDINATE, false /* isKeyRepeat */);
-            listener.onReleaseKey(moreKeyCode, false /* withSliding */);
-            return;
-        }
-        final int code = key.getCode();
-        if (code == Constants.CODE_SPACE || code == Constants.CODE_LANGUAGE_SWITCH) {
-            // Long pressing the space key invokes IME switcher dialog.
-            if (listener.onCustomRequest(Constants.CUSTOM_CODE_SHOW_INPUT_METHOD_PICKER)) {
-                tracker.onLongPressed();
-                listener.onReleaseKey(code, false /* withSliding */);
-                return;
-            }
-        }
-        openMoreKeysPanel(key, tracker);
-    }
-
-    private void openMoreKeysPanel(final Key key, final PointerTracker tracker) {
-        final MoreKeysPanel moreKeysPanel = onCreateMoreKeysPanel(key, getContext());
-        if (moreKeysPanel == null) {
-            return;
-        }
 
         final int[] lastCoords = CoordinateUtils.newInstance();
         tracker.getLastCoordinates(lastCoords);
@@ -656,10 +640,8 @@
         // {@code mPreviewVisibleOffset} has been set appropriately in
         // {@link KeyboardView#showKeyPreview(PointerTracker)}.
         final int pointY = key.getY() + mKeyPreviewDrawParams.getVisibleOffset();
-        moreKeysPanel.showMoreKeysPanel(this, this, pointX, pointY, mKeyboardActionListener);
-        tracker.onShowMoreKeysPanel(moreKeysPanel);
-        // TODO: Implement zoom in animation of more keys panel.
-        dismissKeyPreviewWithoutDelay(key);
+        moreKeysKeyboardView.showMoreKeysPanel(this, this, pointX, pointY, mKeyboardActionListener);
+        return moreKeysKeyboardView;
     }
 
     public boolean isInDraggingFinger() {
@@ -672,9 +654,14 @@
     @Override
     public void onShowMoreKeysPanel(final MoreKeysPanel panel) {
         locatePreviewPlacerView();
+        // Dismiss another {@link MoreKeysPanel} that may be being showed.
+        onDismissMoreKeysPanel();
+        // Dismiss all key previews that may be being showed.
+        PointerTracker.setReleasedKeyGraphicsToAllKeys();
+        // Dismiss sliding key input preview that may be being showed.
+        mSlidingKeyInputDrawingPreview.dismissSlidingKeyInputPreview();
         panel.showInParent(mDrawingPreviewPlacerView);
         mMoreKeysPanel = panel;
-        dimEntireKeyboard(true /* dimmed */);
     }
 
     public boolean isShowingMoreKeysPanel() {
@@ -688,7 +675,6 @@
 
     @Override
     public void onDismissMoreKeysPanel() {
-        dimEntireKeyboard(false /* dimmed */);
         if (isShowingMoreKeysPanel()) {
             mMoreKeysPanel.removeFromParent();
             mMoreKeysPanel = null;
@@ -696,37 +682,37 @@
     }
 
     public void startDoubleTapShiftKeyTimer() {
-        mKeyTimerHandler.startDoubleTapShiftKeyTimer();
+        mTimerHandler.startDoubleTapShiftKeyTimer();
     }
 
     public void cancelDoubleTapShiftKeyTimer() {
-        mKeyTimerHandler.cancelDoubleTapShiftKeyTimer();
+        mTimerHandler.cancelDoubleTapShiftKeyTimer();
     }
 
     public boolean isInDoubleTapShiftKeyTimeout() {
-        return mKeyTimerHandler.isInDoubleTapShiftKeyTimeout();
+        return mTimerHandler.isInDoubleTapShiftKeyTimeout();
     }
 
     @Override
-    public boolean onTouchEvent(final MotionEvent me) {
+    public boolean onTouchEvent(final MotionEvent event) {
         if (getKeyboard() == null) {
             return false;
         }
         if (mNonDistinctMultitouchHelper != null) {
-            if (me.getPointerCount() > 1 && mKeyTimerHandler.isInKeyRepeat()) {
+            if (event.getPointerCount() > 1 && mTimerHandler.isInKeyRepeat()) {
                 // Key repeating timer will be canceled if 2 or more keys are in action.
-                mKeyTimerHandler.cancelKeyRepeatTimers();
+                mTimerHandler.cancelKeyRepeatTimers();
             }
             // Non distinct multitouch screen support
-            mNonDistinctMultitouchHelper.processMotionEvent(me, mKeyDetector);
+            mNonDistinctMultitouchHelper.processMotionEvent(event, mKeyDetector);
             return true;
         }
-        return processMotionEvent(me);
+        return processMotionEvent(event);
     }
 
-    public boolean processMotionEvent(final MotionEvent me) {
-        final int index = me.getActionIndex();
-        final int id = me.getPointerId(index);
+    public boolean processMotionEvent(final MotionEvent event) {
+        final int index = event.getActionIndex();
+        final int id = event.getPointerId(index);
         final PointerTracker tracker = PointerTracker.getPointerTracker(id);
         // When a more keys panel is showing, we should ignore other fingers' single touch events
         // other than the finger that is showing the more keys panel.
@@ -734,16 +720,15 @@
                 && PointerTracker.getActivePointerTrackerCount() == 1) {
             return true;
         }
-        tracker.processMotionEvent(me, mKeyDetector);
+        tracker.processMotionEvent(event, mKeyDetector);
         return true;
     }
 
     public void cancelAllOngoingEvents() {
-        mKeyTimerHandler.cancelAllMessages();
-        mDrawingHandler.cancelAllMessages();
-        dismissAllKeyPreviews();
-        dismissGestureFloatingPreviewText();
-        dismissSlidingKeyInputPreview();
+        mTimerHandler.cancelAllMessages();
+        PointerTracker.setReleasedKeyGraphicsToAllKeys();
+        mGestureFloatingTextDrawingPreview.dismissGestureFloatingPreviewText();
+        mSlidingKeyInputDrawingPreview.dismissSlidingKeyInputPreview();
         PointerTracker.dismissAllMoreKeysPanels();
         PointerTracker.cancelAllPointerTrackers();
     }
@@ -798,10 +783,10 @@
         mHasMultipleEnabledIMEsOrSubtypes = hasMultipleEnabledIMEsOrSubtypes;
         final ObjectAnimator animator = mLanguageOnSpacebarFadeoutAnimator;
         if (animator == null) {
-            mLanguageOnSpacebarFormatType = LanguageOnSpacebarHelper.FORMAT_TYPE_NONE;
+            mLanguageOnSpacebarFormatType = LanguageOnSpacebarUtils.FORMAT_TYPE_NONE;
         } else {
             if (subtypeChanged
-                    && languageOnSpacebarFormatType != LanguageOnSpacebarHelper.FORMAT_TYPE_NONE) {
+                    && languageOnSpacebarFormatType != LanguageOnSpacebarUtils.FORMAT_TYPE_NONE) {
                 setLanguageOnSpacebarAnimAlpha(Constants.Color.ALPHA_OPAQUE);
                 if (animator.isStarted()) {
                     animator.cancel();
@@ -816,24 +801,6 @@
         invalidateKey(mSpaceKey);
     }
 
-    private void dimEntireKeyboard(final boolean dimmed) {
-        final boolean needsRedrawing = mNeedsToDimEntireKeyboard != dimmed;
-        mNeedsToDimEntireKeyboard = dimmed;
-        if (needsRedrawing) {
-            invalidateAllKeys();
-        }
-    }
-
-    @Override
-    protected void onDraw(final Canvas canvas) {
-        super.onDraw(canvas);
-
-        // Overlay a dark rectangle to dim.
-        if (mNeedsToDimEntireKeyboard) {
-            canvas.drawRect(0.0f, 0.0f, getWidth(), getHeight(), mBackgroundDimAlphaPaint);
-        }
-    }
-
     @Override
     protected void onDrawKeyTopVisuals(final Key key, final Canvas canvas, final Paint paint,
             final KeyDrawParams params) {
@@ -844,7 +811,7 @@
         final int code = key.getCode();
         if (code == Constants.CODE_SPACE) {
             // If input language are explicitly selected.
-            if (mLanguageOnSpacebarFormatType != LanguageOnSpacebarHelper.FORMAT_TYPE_NONE) {
+            if (mLanguageOnSpacebarFormatType != LanguageOnSpacebarUtils.FORMAT_TYPE_NONE) {
                 drawLanguageOnSpacebar(key, canvas, paint);
             }
             // Whether space key needs to show the "..." popup hint for special purposes
@@ -875,16 +842,16 @@
 
     // Layout language name on spacebar.
     private String layoutLanguageOnSpacebar(final Paint paint,
-            final InputMethodSubtype subtype, final int width) {
+            final RichInputMethodSubtype subtype, final int width) {
         // Choose appropriate language name to fit into the width.
-        if (mLanguageOnSpacebarFormatType == LanguageOnSpacebarHelper.FORMAT_TYPE_FULL_LOCALE) {
-            final String fullText = SpacebarLanguageUtils.getFullDisplayName(subtype);
+        if (mLanguageOnSpacebarFormatType == LanguageOnSpacebarUtils.FORMAT_TYPE_FULL_LOCALE) {
+            final String fullText = subtype.getFullDisplayName();
             if (fitsTextIntoWidth(width, fullText, paint)) {
                 return fullText;
             }
         }
 
-        final String middleText = SpacebarLanguageUtils.getMiddleDisplayName(subtype);
+        final String middleText = subtype.getMiddleDisplayName();
         if (fitsTextIntoWidth(width, middleText, paint)) {
             return middleText;
         }
@@ -893,13 +860,16 @@
     }
 
     private void drawLanguageOnSpacebar(final Key key, final Canvas canvas, final Paint paint) {
+        final Keyboard keyboard = getKeyboard();
+        if (keyboard == null) {
+            return;
+        }
         final int width = key.getWidth();
         final int height = key.getHeight();
         paint.setTextAlign(Align.CENTER);
         paint.setTypeface(Typeface.DEFAULT);
         paint.setTextSize(mLanguageOnSpacebarTextSize);
-        final InputMethodSubtype subtype = getKeyboard().mId.mSubtype;
-        final String language = layoutLanguageOnSpacebar(paint, subtype, width);
+        final String language = layoutLanguageOnSpacebar(paint, keyboard.mId.mSubtype, width);
         // Draw language text with shadow
         final float descent = paint.descent();
         final float textHeight = -paint.ascent() + descent;
diff --git a/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java b/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java
index abcfff8..a021e5e 100644
--- a/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboard.java
@@ -24,9 +24,11 @@
 import com.android.inputmethod.keyboard.internal.KeyboardParams;
 import com.android.inputmethod.keyboard.internal.MoreKeySpec;
 import com.android.inputmethod.latin.R;
-import com.android.inputmethod.latin.utils.StringUtils;
+import com.android.inputmethod.latin.common.StringUtils;
 import com.android.inputmethod.latin.utils.TypefaceUtils;
 
+import javax.annotation.Nonnull;
+
 public final class MoreKeysKeyboard extends Keyboard {
     private final int mDefaultKeyCoordX;
 
@@ -328,6 +330,7 @@
         }
 
         @Override
+        @Nonnull
         public MoreKeysKeyboard build() {
             final MoreKeysKeyboardParams params = mParams;
             final int moreKeyFlags = mParentKey.getMoreKeyLabelFlags();
diff --git a/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java b/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java
index 841283b..3acc11b 100644
--- a/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/MoreKeysKeyboardView.java
@@ -29,9 +29,9 @@
 import com.android.inputmethod.accessibility.AccessibilityUtils;
 import com.android.inputmethod.accessibility.MoreKeysKeyboardAccessibilityDelegate;
 import com.android.inputmethod.keyboard.internal.KeyDrawParams;
-import com.android.inputmethod.latin.Constants;
 import com.android.inputmethod.latin.R;
-import com.android.inputmethod.latin.utils.CoordinateUtils;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.CoordinateUtils;
 
 /**
  * A view that renders a virtual {@link MoreKeysKeyboard}. It handles rendering of keys and
diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
index 49288ad..9764cb3 100644
--- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java
+++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
@@ -25,22 +25,27 @@
 import com.android.inputmethod.keyboard.internal.BatchInputArbiter;
 import com.android.inputmethod.keyboard.internal.BatchInputArbiter.BatchInputArbiterListener;
 import com.android.inputmethod.keyboard.internal.BogusMoveEventDetector;
+import com.android.inputmethod.keyboard.internal.DrawingProxy;
 import com.android.inputmethod.keyboard.internal.GestureEnabler;
 import com.android.inputmethod.keyboard.internal.GestureStrokeDrawingParams;
 import com.android.inputmethod.keyboard.internal.GestureStrokeDrawingPoints;
 import com.android.inputmethod.keyboard.internal.GestureStrokeRecognitionParams;
 import com.android.inputmethod.keyboard.internal.PointerTrackerQueue;
+import com.android.inputmethod.keyboard.internal.TimerProxy;
 import com.android.inputmethod.keyboard.internal.TypingTimeRecorder;
-import com.android.inputmethod.latin.Constants;
-import com.android.inputmethod.latin.InputPointers;
 import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.CoordinateUtils;
+import com.android.inputmethod.latin.common.InputPointers;
 import com.android.inputmethod.latin.define.DebugFlags;
 import com.android.inputmethod.latin.settings.Settings;
-import com.android.inputmethod.latin.utils.CoordinateUtils;
 import com.android.inputmethod.latin.utils.ResourceUtils;
 
 import java.util.ArrayList;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 public final class PointerTracker implements PointerTrackerQueue.Element,
         BatchInputArbiterListener {
     private static final String TAG = PointerTracker.class.getSimpleName();
@@ -49,60 +54,6 @@
     private static final boolean DEBUG_LISTENER = false;
     private static boolean DEBUG_MODE = DebugFlags.DEBUG_ENABLED || DEBUG_EVENT;
 
-    public interface DrawingProxy {
-        public void invalidateKey(Key key);
-        public void showKeyPreview(Key key);
-        public void dismissKeyPreview(Key key);
-        public void showSlidingKeyInputPreview(PointerTracker tracker);
-        public void dismissSlidingKeyInputPreview();
-        public void showGestureTrail(PointerTracker tracker, boolean showsFloatingPreviewText);
-    }
-
-    public interface TimerProxy {
-        public void startTypingStateTimer(Key typedKey);
-        public boolean isTypingState();
-        public void startKeyRepeatTimerOf(PointerTracker tracker, int repeatCount, int delay);
-        public void startLongPressTimerOf(PointerTracker tracker, int delay);
-        public void cancelLongPressTimerOf(PointerTracker tracker);
-        public void cancelLongPressShiftKeyTimers();
-        public void cancelKeyTimersOf(PointerTracker tracker);
-        public void startDoubleTapShiftKeyTimer();
-        public void cancelDoubleTapShiftKeyTimer();
-        public boolean isInDoubleTapShiftKeyTimeout();
-        public void startUpdateBatchInputTimer(PointerTracker tracker);
-        public void cancelUpdateBatchInputTimer(PointerTracker tracker);
-        public void cancelAllUpdateBatchInputTimers();
-
-        public static class Adapter implements TimerProxy {
-            @Override
-            public void startTypingStateTimer(Key typedKey) {}
-            @Override
-            public boolean isTypingState() { return false; }
-            @Override
-            public void startKeyRepeatTimerOf(PointerTracker tracker, int repeatCount, int delay) {}
-            @Override
-            public void startLongPressTimerOf(PointerTracker tracker, int delay) {}
-            @Override
-            public void cancelLongPressTimerOf(PointerTracker tracker) {}
-            @Override
-            public void cancelLongPressShiftKeyTimers() {}
-            @Override
-            public void cancelKeyTimersOf(PointerTracker tracker) {}
-            @Override
-            public void startDoubleTapShiftKeyTimer() {}
-            @Override
-            public void cancelDoubleTapShiftKeyTimer() {}
-            @Override
-            public boolean isInDoubleTapShiftKeyTimeout() { return false; }
-            @Override
-            public void startUpdateBatchInputTimer(PointerTracker tracker) {}
-            @Override
-            public void cancelUpdateBatchInputTimer(PointerTracker tracker) {}
-            @Override
-            public void cancelAllUpdateBatchInputTimers() {}
-        }
-    }
-
     static final class PointerTrackerParams {
         public final boolean mKeySelectionByDraggingFinger;
         public final int mTouchNoiseThresholdTime;
@@ -163,6 +114,7 @@
 
     // The position and time at which first down event occurred.
     private long mDownTime;
+    @Nonnull
     private int[] mDownCoordinates = CoordinateUtils.newInstance();
     private long mUpTime;
 
@@ -270,7 +222,7 @@
         final int trackersSize = sTrackers.size();
         for (int i = 0; i < trackersSize; ++i) {
             final PointerTracker tracker = sTrackers.get(i);
-            tracker.setReleasedKeyGraphics(tracker.getKey());
+            tracker.setReleasedKeyGraphics(tracker.getKey(), true /* withAnimation */);
         }
     }
 
@@ -416,6 +368,7 @@
         return mIsInDraggingFinger;
     }
 
+    @Nullable
     public Key getKey() {
         return mCurrentKey;
     }
@@ -429,19 +382,17 @@
         return mKeyDetector.detectHitKey(x, y);
     }
 
-    private void setReleasedKeyGraphics(final Key key) {
-        sDrawingProxy.dismissKeyPreview(key);
+    private void setReleasedKeyGraphics(@Nullable final Key key, final boolean withAnimation) {
         if (key == null) {
             return;
         }
 
-        // Even if the key is disabled, update the key release graphics just in case.
-        updateReleaseKeyGraphics(key);
+        sDrawingProxy.onKeyReleased(key, withAnimation);
 
         if (key.isShift()) {
             for (final Key shiftKey : mKeyboard.mShiftKeys) {
                 if (shiftKey != key) {
-                    updateReleaseKeyGraphics(shiftKey);
+                    sDrawingProxy.onKeyReleased(shiftKey, false /* withAnimation */);
                 }
             }
         }
@@ -450,11 +401,11 @@
             final int altCode = key.getAltCode();
             final Key altKey = mKeyboard.getKey(altCode);
             if (altKey != null) {
-                updateReleaseKeyGraphics(altKey);
+                sDrawingProxy.onKeyReleased(altKey, false /* withAnimation */);
             }
             for (final Key k : mKeyboard.mAltCodeKeysWhileTyping) {
                 if (k != key && k.getAltCode() == altCode) {
-                    updateReleaseKeyGraphics(k);
+                    sDrawingProxy.onKeyReleased(k, false /* withAnimation */);
                 }
             }
         }
@@ -465,7 +416,7 @@
         return sTypingTimeRecorder.needsToSuppressKeyPreviewPopup(eventTime);
     }
 
-    private void setPressedKeyGraphics(final Key key, final long eventTime) {
+    private void setPressedKeyGraphics(@Nullable final Key key, final long eventTime) {
         if (key == null) {
             return;
         }
@@ -477,15 +428,13 @@
             return;
         }
 
-        if (!key.noKeyPreview() && !sInGesture && !needsToSuppressKeyPreviewPopup(eventTime)) {
-            sDrawingProxy.showKeyPreview(key);
-        }
-        updatePressKeyGraphics(key);
+        final boolean noKeyPreview = sInGesture || needsToSuppressKeyPreviewPopup(eventTime);
+        sDrawingProxy.onKeyPressed(key, !noKeyPreview);
 
         if (key.isShift()) {
             for (final Key shiftKey : mKeyboard.mShiftKeys) {
                 if (shiftKey != key) {
-                    updatePressKeyGraphics(shiftKey);
+                    sDrawingProxy.onKeyPressed(shiftKey, false /* withPreview */);
                 }
             }
         }
@@ -494,31 +443,21 @@
             final int altCode = key.getAltCode();
             final Key altKey = mKeyboard.getKey(altCode);
             if (altKey != null) {
-                updatePressKeyGraphics(altKey);
+                sDrawingProxy.onKeyPressed(altKey, false /* withPreview */);
             }
             for (final Key k : mKeyboard.mAltCodeKeysWhileTyping) {
                 if (k != key && k.getAltCode() == altCode) {
-                    updatePressKeyGraphics(k);
+                    sDrawingProxy.onKeyPressed(k, false /* withPreview */);
                 }
             }
         }
     }
 
-    private static void updateReleaseKeyGraphics(final Key key) {
-        key.onReleased();
-        sDrawingProxy.invalidateKey(key);
-    }
-
-    private static void updatePressKeyGraphics(final Key key) {
-        key.onPressed();
-        sDrawingProxy.invalidateKey(key);
-    }
-
     public GestureStrokeDrawingPoints getGestureStrokeDrawingPoints() {
         return mGestureStrokeDrawingPoints;
     }
 
-    public void getLastCoordinates(final int[] outCoords) {
+    public void getLastCoordinates(@Nonnull final int[] outCoords) {
         CoordinateUtils.set(outCoords, mLastX, mLastY);
     }
 
@@ -526,7 +465,7 @@
         return mDownTime;
     }
 
-    public void getDownCoordinates(final int[] outCoords) {
+    public void getDownCoordinates(@Nonnull final int[] outCoords) {
         CoordinateUtils.copy(outCoords, mDownCoordinates);
     }
 
@@ -575,7 +514,7 @@
         }
         sListener.onStartBatchInput();
         dismissAllMoreKeysPanels();
-        sTimerProxy.cancelLongPressTimerOf(this);
+        sTimerProxy.cancelLongPressTimersOf(this);
     }
 
     private void showGestureTrail() {
@@ -765,7 +704,7 @@
     private void resetKeySelectionByDraggingFinger() {
         mIsInDraggingFinger = false;
         mIsInSlidingKeyInput = false;
-        sDrawingProxy.dismissSlidingKeyInputPreview();
+        sDrawingProxy.showSlidingKeyInputPreview(null /* tracker */);
     }
 
     private void onGestureMoveEvent(final int x, final int y, final long eventTime,
@@ -884,7 +823,7 @@
     }
 
     private void processDraggingFingerOutFromOldKey(final Key oldKey) {
-        setReleasedKeyGraphics(oldKey);
+        setReleasedKeyGraphics(oldKey, true /* withAnimation */);
         callListenerOnRelease(oldKey, oldKey.getCode(), true /* withSliding */);
         startKeySelectionByDraggingFinger(oldKey);
         sTimerProxy.cancelKeyTimersOf(this);
@@ -927,12 +866,12 @@
             }
             onUpEvent(x, y, eventTime);
             cancelTrackingForAction();
-            setReleasedKeyGraphics(oldKey);
+            setReleasedKeyGraphics(oldKey, true /* withAnimation */);
         } else {
             if (!mIsDetectingGesture) {
                 cancelTrackingForAction();
             }
-            setReleasedKeyGraphics(oldKey);
+            setReleasedKeyGraphics(oldKey, true /* withAnimation */);
         }
     }
 
@@ -960,7 +899,7 @@
             onGestureMoveEvent(x, y, eventTime, true /* isMajorEvent */, newKey);
             if (sInGesture) {
                 mCurrentKey = null;
-                setReleasedKeyGraphics(oldKey);
+                setReleasedKeyGraphics(oldKey, true /* withAnimation */);
                 return;
             }
         }
@@ -1025,7 +964,7 @@
         final int currentRepeatingKeyCode = mCurrentRepeatingKeyCode;
         mCurrentRepeatingKeyCode = Constants.NOT_A_CODE;
         // Release the last pressed key.
-        setReleasedKeyGraphics(currentKey);
+        setReleasedKeyGraphics(currentKey, true /* withAnimation */);
 
         if (isShowingMoreKeysPanel()) {
             if (!mIsTrackingForActionDisabled) {
@@ -1062,14 +1001,6 @@
         }
     }
 
-    public void onShowMoreKeysPanel(final MoreKeysPanel panel) {
-        setReleasedKeyGraphics(mCurrentKey);
-        final int translatedX = panel.translateX(mLastX);
-        final int translatedY = panel.translateY(mLastY);
-        panel.onDownEvent(translatedX, translatedY, mPointerId, SystemClock.uptimeMillis());
-        mMoreKeysPanel = panel;
-    }
-
     @Override
     public void cancelTrackingForAction() {
         if (isShowingMoreKeysPanel()) {
@@ -1082,14 +1013,49 @@
         return !mIsTrackingForActionDisabled;
     }
 
-    public void cancelLongPressTimer() {
-        sTimerProxy.cancelLongPressTimerOf(this);
+    public void onLongPressed() {
+        sTimerProxy.cancelLongPressTimersOf(this);
+        if (isShowingMoreKeysPanel()) {
+            return;
+        }
+        final Key key = getKey();
+        if (key == null) {
+            return;
+        }
+        if (key.hasNoPanelAutoMoreKey()) {
+            cancelKeyTracking();
+            final int moreKeyCode = key.getMoreKeys()[0].mCode;
+            sListener.onPressKey(moreKeyCode, 0 /* repeatCont */, true /* isSinglePointer */);
+            sListener.onCodeInput(moreKeyCode, Constants.NOT_A_COORDINATE,
+                    Constants.NOT_A_COORDINATE, false /* isKeyRepeat */);
+            sListener.onReleaseKey(moreKeyCode, false /* withSliding */);
+            return;
+        }
+        final int code = key.getCode();
+        if (code == Constants.CODE_SPACE || code == Constants.CODE_LANGUAGE_SWITCH) {
+            // Long pressing the space key invokes IME switcher dialog.
+            if (sListener.onCustomRequest(Constants.CUSTOM_CODE_SHOW_INPUT_METHOD_PICKER)) {
+                cancelKeyTracking();
+                sListener.onReleaseKey(code, false /* withSliding */);
+                return;
+            }
+        }
+
+        setReleasedKeyGraphics(key, false /* withAnimation */);
+        final MoreKeysPanel moreKeysPanel = sDrawingProxy.showMoreKeysKeyboard(key, this);
+        if (moreKeysPanel == null) {
+            return;
+        }
+        final int translatedX = moreKeysPanel.translateX(mLastX);
+        final int translatedY = moreKeysPanel.translateY(mLastY);
+        moreKeysPanel.onDownEvent(translatedX, translatedY, mPointerId, SystemClock.uptimeMillis());
+        mMoreKeysPanel = moreKeysPanel;
     }
 
-    public void onLongPressed() {
+    private void cancelKeyTracking() {
         resetKeySelectionByDraggingFinger();
         cancelTrackingForAction();
-        setReleasedKeyGraphics(mCurrentKey);
+        setReleasedKeyGraphics(mCurrentKey, true /* withAnimation */);
         sPointerTrackerQueue.remove(this);
     }
 
@@ -1106,7 +1072,7 @@
 
     private void onCancelEventInternal() {
         sTimerProxy.cancelKeyTimersOf(this);
-        setReleasedKeyGraphics(mCurrentKey);
+        setReleasedKeyGraphics(mCurrentKey, true /* withAnimation */);
         resetKeySelectionByDraggingFinger();
         dismissMoreKeysPanel();
     }
@@ -1152,7 +1118,7 @@
     private void startLongPressTimer(final Key key) {
         // Note that we need to cancel all active long press shift key timers if any whenever we
         // start a new long press timer for both non-shift and shift keys.
-        sTimerProxy.cancelLongPressShiftKeyTimers();
+        sTimerProxy.cancelLongPressShiftKeyTimer();
         if (sInGesture) return;
         if (key == null) return;
         if (!key.isLongPressEnabled()) return;
diff --git a/java/src/com/android/inputmethod/keyboard/ProximityInfo.java b/java/src/com/android/inputmethod/keyboard/ProximityInfo.java
index c19cd67..b9a5eae 100644
--- a/java/src/com/android/inputmethod/keyboard/ProximityInfo.java
+++ b/java/src/com/android/inputmethod/keyboard/ProximityInfo.java
@@ -17,11 +17,10 @@
 package com.android.inputmethod.keyboard;
 
 import android.graphics.Rect;
-import android.text.TextUtils;
 import android.util.Log;
 
 import com.android.inputmethod.keyboard.internal.TouchPositionCorrection;
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.common.Constants;
 import com.android.inputmethod.latin.utils.JniUtils;
 
 import java.util.ArrayList;
@@ -29,6 +28,8 @@
 import java.util.Collections;
 import java.util.List;
 
+import javax.annotation.Nonnull;
+
 public class ProximityInfo {
     private static final String TAG = ProximityInfo.class.getSimpleName();
     private static final boolean DEBUG = false;
@@ -37,6 +38,7 @@
     public static final int MAX_PROXIMITY_CHARS_SIZE = 16;
     /** Number of key widths from current touch point to search for nearest keys. */
     private static final float SEARCH_DISTANCE = 1.2f;
+    @Nonnull
     private static final List<Key> EMPTY_KEY_LIST = Collections.emptyList();
     private static final float DEFAULT_TOUCH_POSITION_CORRECTION_RADIUS = 0.15f;
 
@@ -50,20 +52,16 @@
     private final int mKeyboardHeight;
     private final int mMostCommonKeyWidth;
     private final int mMostCommonKeyHeight;
+    @Nonnull
     private final List<Key> mSortedKeys;
+    @Nonnull
     private final List<Key>[] mGridNeighbors;
-    private final String mLocaleStr;
 
     @SuppressWarnings("unchecked")
-    ProximityInfo(final String localeStr, final int gridWidth, final int gridHeight,
-            final int minWidth, final int height, final int mostCommonKeyWidth,
-            final int mostCommonKeyHeight, final List<Key> sortedKeys,
-            final TouchPositionCorrection touchPositionCorrection) {
-        if (TextUtils.isEmpty(localeStr)) {
-            mLocaleStr = "";
-        } else {
-            mLocaleStr = localeStr;
-        }
+    ProximityInfo(final int gridWidth, final int gridHeight, final int minWidth, final int height,
+            final int mostCommonKeyWidth, final int mostCommonKeyHeight,
+            @Nonnull final List<Key> sortedKeys,
+            @Nonnull final TouchPositionCorrection touchPositionCorrection) {
         mGridWidth = gridWidth;
         mGridHeight = gridHeight;
         mGridSize = mGridWidth * mGridHeight;
@@ -89,16 +87,15 @@
     }
 
     // TODO: Stop passing proximityCharsArray
-    private static native long setProximityInfoNative(String locale,
-            int displayWidth, int displayHeight, int gridWidth, int gridHeight,
-            int mostCommonKeyWidth, int mostCommonKeyHeight, int[] proximityCharsArray,
-            int keyCount, int[] keyXCoordinates, int[] keyYCoordinates, int[] keyWidths,
-            int[] keyHeights, int[] keyCharCodes, float[] sweetSpotCenterXs,
+    private static native long setProximityInfoNative(int displayWidth, int displayHeight,
+            int gridWidth, int gridHeight, int mostCommonKeyWidth, int mostCommonKeyHeight,
+            int[] proximityCharsArray, int keyCount, int[] keyXCoordinates, int[] keyYCoordinates,
+            int[] keyWidths, int[] keyHeights, int[] keyCharCodes, float[] sweetSpotCenterXs,
             float[] sweetSpotCenterYs, float[] sweetSpotRadii);
 
     private static native void releaseProximityInfoNative(long nativeProximityInfo);
 
-    private static boolean needsProximityInfo(final Key key) {
+    static boolean needsProximityInfo(final Key key) {
         // Don't include special keys into ProximityInfo.
         return key.getCode() >= Constants.CODE_SPACE;
     }
@@ -113,7 +110,8 @@
         return count;
     }
 
-    private long createNativeProximityInfo(final TouchPositionCorrection touchPositionCorrection) {
+    private long createNativeProximityInfo(
+            @Nonnull final TouchPositionCorrection touchPositionCorrection) {
         final List<Key>[] gridNeighborKeys = mGridNeighbors;
         final int[] proximityCharsArray = new int[mGridSize * MAX_PROXIMITY_CHARS_SIZE];
         Arrays.fill(proximityCharsArray, Constants.NOT_A_CODE);
@@ -172,7 +170,7 @@
             infoIndex++;
         }
 
-        if (touchPositionCorrection != null && touchPositionCorrection.isValid()) {
+        if (touchPositionCorrection.isValid()) {
             if (DEBUG) {
                 Log.d(TAG, "touchPositionCorrection: ON");
             }
@@ -221,10 +219,10 @@
         }
 
         // TODO: Stop passing proximityCharsArray
-        return setProximityInfoNative(mLocaleStr, mKeyboardMinWidth, mKeyboardHeight,
-                mGridWidth, mGridHeight, mMostCommonKeyWidth, mMostCommonKeyHeight,
-                proximityCharsArray, keyCount, keyXCoordinates, keyYCoordinates, keyWidths,
-                keyHeights, keyCharCodes, sweetSpotCenterXs, sweetSpotCenterYs, sweetSpotRadii);
+        return setProximityInfoNative(mKeyboardMinWidth, mKeyboardHeight, mGridWidth, mGridHeight,
+                mMostCommonKeyWidth, mMostCommonKeyHeight, proximityCharsArray, keyCount,
+                keyXCoordinates, keyYCoordinates, keyWidths, keyHeights, keyCharCodes,
+                sweetSpotCenterXs, sweetSpotCenterYs, sweetSpotRadii);
     }
 
     public long getNativeProximityInfo() {
@@ -394,10 +392,8 @@
         }
     }
 
+    @Nonnull
     public List<Key> getNearestKeys(final int x, final int y) {
-        if (mGridNeighbors == null) {
-            return EMPTY_KEY_LIST;
-        }
         if (x >= 0 && x < mKeyboardMinWidth && y >= 0 && y < mKeyboardHeight) {
             int index = (y / mCellHeight) * mGridWidth + (x / mCellWidth);
             if (index < mGridSize) {
diff --git a/java/src/com/android/inputmethod/keyboard/TextDecorator.java b/java/src/com/android/inputmethod/keyboard/TextDecorator.java
deleted file mode 100644
index c22717f..0000000
--- a/java/src/com/android/inputmethod/keyboard/TextDecorator.java
+++ /dev/null
@@ -1,368 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.keyboard;
-
-import android.graphics.Matrix;
-import android.graphics.RectF;
-import android.inputmethodservice.InputMethodService;
-import android.os.Message;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.View;
-import android.view.inputmethod.CursorAnchorInfo;
-
-import com.android.inputmethod.annotations.UsedForTesting;
-import com.android.inputmethod.compat.CursorAnchorInfoCompatWrapper;
-import com.android.inputmethod.latin.utils.LeakGuardHandlerWrapper;
-
-import javax.annotation.Nonnull;
-
-/**
- * A controller class of the add-to-dictionary indicator (a.k.a. TextDecorator). This class
- * is designed to be independent of UI subsystems such as {@link View}. All the UI related
- * operations are delegated to {@link TextDecoratorUi} via {@link TextDecoratorUiOperator}.
- */
-public class TextDecorator {
-    private static final String TAG = TextDecorator.class.getSimpleName();
-    private static final boolean DEBUG = false;
-
-    private static final int INVALID_CURSOR_INDEX = -1;
-
-    private static final int MODE_MONITOR = 0;
-    private static final int MODE_WAITING_CURSOR_INDEX = 1;
-    private static final int MODE_SHOWING_INDICATOR = 2;
-
-    private int mMode = MODE_MONITOR;
-
-    private String mLastComposingText = null;
-    private boolean mHasRtlCharsInLastComposingText = false;
-    private RectF mComposingTextBoundsForLastComposingText = new RectF();
-
-    private boolean mIsFullScreenMode = false;
-    private String mWaitingWord = null;
-    private int mWaitingCursorStart = INVALID_CURSOR_INDEX;
-    private int mWaitingCursorEnd = INVALID_CURSOR_INDEX;
-    private CursorAnchorInfoCompatWrapper mCursorAnchorInfoWrapper = null;
-
-    @Nonnull
-    private final Listener mListener;
-
-    @Nonnull
-    private TextDecoratorUiOperator mUiOperator = EMPTY_UI_OPERATOR;
-
-    public interface Listener {
-        /**
-         * Called when the user clicks the indicator to add the word into the dictionary.
-         * @param word the word which the user clicked on.
-         */
-        void onClickComposingTextToAddToDictionary(final String word);
-    }
-
-    public TextDecorator(final Listener listener) {
-        mListener = (listener != null) ? listener : EMPTY_LISTENER;
-    }
-
-    /**
-     * Sets the UI operator for {@link TextDecorator}. Any user visible operations will be
-     * delegated to the associated UI operator.
-     * @param uiOperator the UI operator to be associated.
-     */
-    public void setUiOperator(final TextDecoratorUiOperator uiOperator) {
-        mUiOperator.disposeUi();
-        mUiOperator = uiOperator;
-        mUiOperator.setOnClickListener(getOnClickHandler());
-    }
-
-    private final Runnable mDefaultOnClickHandler = new Runnable() {
-        @Override
-        public void run() {
-            onClickIndicator();
-        }
-    };
-
-    @UsedForTesting
-    final Runnable getOnClickHandler() {
-        return mDefaultOnClickHandler;
-    }
-
-    /**
-     * Shows the "Add to dictionary" indicator and associates it with associating the given word.
-     *
-     * @param word the word which should be associated with the indicator. This object will be
-     * passed back in {@link Listener#onClickComposingTextToAddToDictionary(String)}.
-     * @param selectionStart the cursor index (inclusive) when the indicator should be displayed.
-     * @param selectionEnd the cursor index (exclusive) when the indicator should be displayed.
-     */
-    public void showAddToDictionaryIndicator(final String word, final int selectionStart,
-            final int selectionEnd) {
-        mWaitingWord = word;
-        mWaitingCursorStart = selectionStart;
-        mWaitingCursorEnd = selectionEnd;
-        mMode = MODE_WAITING_CURSOR_INDEX;
-        layoutLater();
-        return;
-    }
-
-    /**
-     * Must be called when the input method is about changing to for from the full screen mode.
-     * @param fullScreenMode {@code true} if the input method is entering the full screen mode.
-     * {@code false} is the input method is finishing the full screen mode.
-     */
-    public void notifyFullScreenMode(final boolean fullScreenMode) {
-        final boolean fullScreenModeChanged = (mIsFullScreenMode != fullScreenMode);
-        mIsFullScreenMode = fullScreenMode;
-        if (fullScreenModeChanged) {
-            layoutLater();
-        }
-    }
-
-    /**
-     * Resets previous requests and makes indicator invisible.
-     */
-    public void reset() {
-        mWaitingWord = null;
-        mMode = MODE_MONITOR;
-        mWaitingCursorStart = INVALID_CURSOR_INDEX;
-        mWaitingCursorEnd = INVALID_CURSOR_INDEX;
-        cancelLayoutInternalExpectedly("Resetting internal state.");
-    }
-
-    /**
-     * Must be called when the {@link InputMethodService#onUpdateCursorAnchorInfo(CursorAnchorInfo)}
-     * is called.
-     *
-     * <p>CAVEAT: Currently the input method author is responsible for ignoring
-     * {@link InputMethodService#onUpdateCursorAnchorInfo(CursorAnchorInfo)} called in full screen
-     * mode.</p>
-     * @param info the compatibility wrapper object for the received {@link CursorAnchorInfo}.
-     */
-    public void onUpdateCursorAnchorInfo(final CursorAnchorInfoCompatWrapper info) {
-        mCursorAnchorInfoWrapper = info;
-        // Do not use layoutLater() to minimize the latency.
-        layoutImmediately();
-    }
-
-    private void cancelLayoutInternalUnexpectedly(final String message) {
-        mUiOperator.hideUi();
-        Log.d(TAG, message);
-    }
-
-    private void cancelLayoutInternalExpectedly(final String message) {
-        mUiOperator.hideUi();
-        if (DEBUG) {
-            Log.d(TAG, message);
-        }
-    }
-
-    private void layoutLater() {
-        mLayoutInvalidator.invalidateLayout();
-    }
-
-
-    private void layoutImmediately() {
-        // Clear pending layout requests.
-        mLayoutInvalidator.cancelInvalidateLayout();
-        layoutMain();
-    }
-
-    private void layoutMain() {
-        final CursorAnchorInfoCompatWrapper info = mCursorAnchorInfoWrapper;
-
-        if (info == null || !info.isAvailable()) {
-            cancelLayoutInternalExpectedly("CursorAnchorInfo isn't available.");
-            return;
-        }
-
-        final Matrix matrix = info.getMatrix();
-        if (matrix == null) {
-            cancelLayoutInternalUnexpectedly("Matrix is null");
-        }
-
-        final CharSequence composingText = info.getComposingText();
-        if (!TextUtils.isEmpty(composingText)) {
-            final int composingTextStart = info.getComposingTextStart();
-            final int lastCharRectIndex = composingTextStart + composingText.length() - 1;
-            final RectF lastCharRect = info.getCharacterBounds(lastCharRectIndex);
-            final int lastCharRectFlags = info.getCharacterBoundsFlags(lastCharRectIndex);
-            final boolean hasInvisibleRegionInLastCharRect =
-                    (lastCharRectFlags & CursorAnchorInfoCompatWrapper.FLAG_HAS_INVISIBLE_REGION)
-                            != 0;
-            if (lastCharRect == null || matrix == null || hasInvisibleRegionInLastCharRect) {
-                mUiOperator.hideUi();
-                return;
-            }
-
-            // Note that the following layout information is fragile, and must be invalidated
-            // even when surrounding text next to the composing text is changed because it can
-            // affect how the composing text is rendered.
-            // TODO: Investigate if we can change the input logic to make the target text
-            // composing state so that we can retrieve the character bounds reliably.
-            final String composingTextString = composingText.toString();
-            final float top = lastCharRect.top;
-            final float bottom = lastCharRect.bottom;
-            float left = lastCharRect.left;
-            float right = lastCharRect.right;
-            boolean useRtlLayout = false;
-            for (int i = composingText.length() - 1; i >= 0; --i) {
-                final int characterIndex = composingTextStart + i;
-                final RectF characterBounds = info.getCharacterBounds(characterIndex);
-                final int characterBoundsFlags = info.getCharacterBoundsFlags(characterIndex);
-                if (characterBounds == null) {
-                    break;
-                }
-                if (characterBounds.top != top) {
-                    break;
-                }
-                if (characterBounds.bottom != bottom) {
-                    break;
-                }
-                if ((characterBoundsFlags & CursorAnchorInfoCompatWrapper.FLAG_IS_RTL) != 0) {
-                    // This is for both RTL text and bi-directional text. RTL languages usually mix
-                    // RTL characters with LTR characters and in this case we should display the
-                    // indicator on the left, while in LTR languages that normally never happens.
-                    // TODO: Try to come up with a better algorithm.
-                    useRtlLayout = true;
-                }
-                left = Math.min(characterBounds.left, left);
-                right = Math.max(characterBounds.right, right);
-            }
-            mLastComposingText = composingTextString;
-            mHasRtlCharsInLastComposingText = useRtlLayout;
-            mComposingTextBoundsForLastComposingText.set(left, top, right, bottom);
-        }
-
-        final int selectionStart = info.getSelectionStart();
-        final int selectionEnd = info.getSelectionEnd();
-        switch (mMode) {
-            case MODE_MONITOR:
-                mUiOperator.hideUi();
-                return;
-            case MODE_WAITING_CURSOR_INDEX:
-                if (selectionStart != mWaitingCursorStart || selectionEnd != mWaitingCursorEnd) {
-                    mUiOperator.hideUi();
-                    return;
-                }
-                mMode = MODE_SHOWING_INDICATOR;
-                break;
-            case MODE_SHOWING_INDICATOR:
-                if (selectionStart != mWaitingCursorStart || selectionEnd != mWaitingCursorEnd) {
-                    mUiOperator.hideUi();
-                    mMode = MODE_MONITOR;
-                    mWaitingCursorStart = INVALID_CURSOR_INDEX;
-                    mWaitingCursorEnd = INVALID_CURSOR_INDEX;
-                    return;
-                }
-                break;
-            default:
-                cancelLayoutInternalUnexpectedly("Unexpected internal mode=" + mMode);
-                return;
-        }
-
-        if (!TextUtils.equals(mLastComposingText, mWaitingWord)) {
-            cancelLayoutInternalUnexpectedly("mLastComposingText doesn't match mWaitingWord");
-            return;
-        }
-
-        if ((info.getInsertionMarkerFlags() &
-                CursorAnchorInfoCompatWrapper.FLAG_HAS_INVISIBLE_REGION) != 0) {
-            mUiOperator.hideUi();
-            return;
-        }
-
-        mUiOperator.layoutUi(matrix, mComposingTextBoundsForLastComposingText,
-                mHasRtlCharsInLastComposingText);
-    }
-
-    private void onClickIndicator() {
-        if (mMode != MODE_SHOWING_INDICATOR) {
-            return;
-        }
-        mListener.onClickComposingTextToAddToDictionary(mWaitingWord);
-    }
-
-    private final LayoutInvalidator mLayoutInvalidator = new LayoutInvalidator(this);
-
-    /**
-     * Used for managing pending layout tasks for {@link TextDecorator#layoutLater()}.
-     */
-    private static final class LayoutInvalidator {
-        private final HandlerImpl mHandler;
-        public LayoutInvalidator(final TextDecorator ownerInstance) {
-            mHandler = new HandlerImpl(ownerInstance);
-        }
-
-        private static final int MSG_LAYOUT = 0;
-
-        private static final class HandlerImpl
-                extends LeakGuardHandlerWrapper<TextDecorator> {
-            public HandlerImpl(final TextDecorator ownerInstance) {
-                super(ownerInstance);
-            }
-
-            @Override
-            public void handleMessage(final Message msg) {
-                final TextDecorator owner = getOwnerInstance();
-                if (owner == null) {
-                    return;
-                }
-                switch (msg.what) {
-                    case MSG_LAYOUT:
-                        owner.layoutMain();
-                        break;
-                }
-            }
-        }
-
-        /**
-         * Puts a layout task into the scheduler. Does nothing if one or more layout tasks are
-         * already scheduled.
-         */
-        public void invalidateLayout() {
-            if (!mHandler.hasMessages(MSG_LAYOUT)) {
-                mHandler.obtainMessage(MSG_LAYOUT).sendToTarget();
-            }
-        }
-
-        /**
-         * Clears the pending layout tasks.
-         */
-        public void cancelInvalidateLayout() {
-            mHandler.removeMessages(MSG_LAYOUT);
-        }
-    }
-
-    private final static Listener EMPTY_LISTENER = new Listener() {
-        @Override
-        public void onClickComposingTextToAddToDictionary(final String word) {
-        }
-    };
-
-    private final static TextDecoratorUiOperator EMPTY_UI_OPERATOR = new TextDecoratorUiOperator() {
-        @Override
-        public void disposeUi() {
-        }
-        @Override
-        public void hideUi() {
-        }
-        @Override
-        public void setOnClickListener(Runnable listener) {
-        }
-        @Override
-        public void layoutUi(Matrix matrix, RectF composingTextBounds, boolean useRtlLayout) {
-        }
-    };
-}
diff --git a/java/src/com/android/inputmethod/keyboard/TextDecoratorUi.java b/java/src/com/android/inputmethod/keyboard/TextDecoratorUi.java
deleted file mode 100644
index d87dc1b..0000000
--- a/java/src/com/android/inputmethod/keyboard/TextDecoratorUi.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.keyboard;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.graphics.Canvas;
-import android.graphics.Color;
-import android.graphics.Matrix;
-import android.graphics.Paint;
-import android.graphics.Path;
-import android.graphics.RectF;
-import android.graphics.drawable.ColorDrawable;
-import android.inputmethodservice.InputMethodService;
-import android.util.DisplayMetrics;
-import android.util.TypedValue;
-import android.view.Gravity;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.ViewGroup;
-import android.view.ViewGroup.LayoutParams;
-import android.view.ViewParent;
-import android.widget.PopupWindow;
-import android.widget.RelativeLayout;
-
-import com.android.inputmethod.latin.R;
-
-/**
- * Used as the UI component of {@link TextDecorator}.
- */
-public final class TextDecoratorUi implements TextDecoratorUiOperator {
-    private static final boolean VISUAL_DEBUG = false;
-    private static final int VISUAL_DEBUG_HIT_AREA_COLOR = 0x80ff8000;
-
-    private final RelativeLayout mLocalRootView;
-    private final AddToDictionaryIndicatorView mAddToDictionaryIndicatorView;
-    private final PopupWindow mTouchEventWindow;
-    private final View mTouchEventWindowClickListenerView;
-    private final float mHitAreaMarginInPixels;
-    private final RectF mDisplayRect;
-
-    /**
-     * This constructor is designed to be called from {@link InputMethodService#setInputView(View)}.
-     * Other usages are not supported.
-     *
-     * @param context the context of the input method.
-     * @param inputView the view that is passed to {@link InputMethodService#setInputView(View)}.
-     */
-    public TextDecoratorUi(final Context context, final View inputView) {
-        final Resources resources = context.getResources();
-        final int hitAreaMarginInDP = resources.getInteger(
-                R.integer.text_decorator_hit_area_margin_in_dp);
-        mHitAreaMarginInPixels = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
-                hitAreaMarginInDP, resources.getDisplayMetrics());
-        final DisplayMetrics displayMetrics = resources.getDisplayMetrics();
-        mDisplayRect = new RectF(0.0f, 0.0f, displayMetrics.widthPixels,
-                displayMetrics.heightPixels);
-
-        mLocalRootView = new RelativeLayout(context);
-        mLocalRootView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
-                LayoutParams.MATCH_PARENT));
-        // TODO: Use #setBackground(null) for API Level >= 16.
-        mLocalRootView.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
-
-        final ViewGroup contentView = getContentView(inputView);
-        mAddToDictionaryIndicatorView = new AddToDictionaryIndicatorView(context);
-        mLocalRootView.addView(mAddToDictionaryIndicatorView);
-        if (contentView != null) {
-            contentView.addView(mLocalRootView);
-        }
-
-        // This popup window is used to avoid the limitation that the input method is not able to
-        // observe the touch events happening outside of InputMethodService.Insets#touchableRegion.
-        // We don't use this popup window for rendering the UI for performance reasons though.
-        mTouchEventWindow = new PopupWindow(context);
-        if (VISUAL_DEBUG) {
-            mTouchEventWindow.setBackgroundDrawable(new ColorDrawable(VISUAL_DEBUG_HIT_AREA_COLOR));
-        } else {
-            mTouchEventWindow.setBackgroundDrawable(null);
-        }
-        mTouchEventWindowClickListenerView = new View(context);
-        mTouchEventWindow.setContentView(mTouchEventWindowClickListenerView);
-    }
-
-    @Override
-    public void disposeUi() {
-        if (mLocalRootView != null) {
-            final ViewParent parent = mLocalRootView.getParent();
-            if (parent != null && parent instanceof ViewGroup) {
-                ((ViewGroup) parent).removeView(mLocalRootView);
-            }
-            mLocalRootView.removeAllViews();
-        }
-        if (mTouchEventWindow != null) {
-            mTouchEventWindow.dismiss();
-        }
-    }
-
-    @Override
-    public void hideUi() {
-        mAddToDictionaryIndicatorView.setVisibility(View.GONE);
-        mTouchEventWindow.dismiss();
-    }
-
-    private static final RectF getIndicatorBoundsInScreenCoordinates(final Matrix matrix,
-            final RectF composingTextBounds, final boolean showAtLeftSide) {
-        final float indicatorSize = composingTextBounds.height();
-        final RectF indicatorBounds;
-        if (showAtLeftSide) {
-            indicatorBounds = new RectF(composingTextBounds.left - indicatorSize,
-                    composingTextBounds.top, composingTextBounds.left,
-                    composingTextBounds.top + indicatorSize);
-        } else {
-            indicatorBounds = new RectF(composingTextBounds.right, composingTextBounds.top,
-                    composingTextBounds.right + indicatorSize,
-                    composingTextBounds.top + indicatorSize);
-        }
-        matrix.mapRect(indicatorBounds);
-        return indicatorBounds;
-    }
-
-    @Override
-    public void layoutUi(final Matrix matrix, final RectF composingTextBounds,
-            final boolean useRtlLayout) {
-        RectF indicatorBoundsInScreenCoordinates = getIndicatorBoundsInScreenCoordinates(matrix,
-                composingTextBounds, useRtlLayout /* showAtLeftSide */);
-        if (indicatorBoundsInScreenCoordinates.left < mDisplayRect.left ||
-                mDisplayRect.right < indicatorBoundsInScreenCoordinates.right) {
-            // The indicator is clipped by the screen. Show the indicator at the opposite side.
-            indicatorBoundsInScreenCoordinates = getIndicatorBoundsInScreenCoordinates(matrix,
-                    composingTextBounds, !useRtlLayout /* showAtLeftSide */);
-        }
-
-        mAddToDictionaryIndicatorView.setBounds(indicatorBoundsInScreenCoordinates);
-
-        final RectF hitAreaBoundsInScreenCoordinates = new RectF();
-        matrix.mapRect(hitAreaBoundsInScreenCoordinates, composingTextBounds);
-        hitAreaBoundsInScreenCoordinates.union(indicatorBoundsInScreenCoordinates);
-        hitAreaBoundsInScreenCoordinates.inset(-mHitAreaMarginInPixels, -mHitAreaMarginInPixels);
-
-        final int[] originScreen = new int[2];
-        mLocalRootView.getLocationOnScreen(originScreen);
-        final int viewOriginX = originScreen[0];
-        final int viewOriginY = originScreen[1];
-        mAddToDictionaryIndicatorView.setX(indicatorBoundsInScreenCoordinates.left - viewOriginX);
-        mAddToDictionaryIndicatorView.setY(indicatorBoundsInScreenCoordinates.top - viewOriginY);
-        mAddToDictionaryIndicatorView.setVisibility(View.VISIBLE);
-
-        if (mTouchEventWindow.isShowing()) {
-            mTouchEventWindow.update((int)hitAreaBoundsInScreenCoordinates.left - viewOriginX,
-                    (int)hitAreaBoundsInScreenCoordinates.top - viewOriginY,
-                    (int)hitAreaBoundsInScreenCoordinates.width(),
-                    (int)hitAreaBoundsInScreenCoordinates.height());
-        } else {
-            mTouchEventWindow.setWidth((int)hitAreaBoundsInScreenCoordinates.width());
-            mTouchEventWindow.setHeight((int)hitAreaBoundsInScreenCoordinates.height());
-            mTouchEventWindow.showAtLocation(mLocalRootView, Gravity.NO_GRAVITY,
-                    (int)hitAreaBoundsInScreenCoordinates.left - viewOriginX,
-                    (int)hitAreaBoundsInScreenCoordinates.top - viewOriginY);
-        }
-    }
-
-    @Override
-    public void setOnClickListener(final Runnable listener) {
-        mTouchEventWindowClickListenerView.setOnClickListener(new OnClickListener() {
-            @Override
-            public void onClick(final View arg0) {
-                listener.run();
-            }
-        });
-    }
-
-    private static class IndicatorView extends View {
-        private final Path mPath;
-        private final Path mTmpPath = new Path();
-        private final Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
-        private final Matrix mMatrix = new Matrix();
-        private final int mBackgroundColor;
-        private final int mForegroundColor;
-        private final RectF mBounds = new RectF();
-        public IndicatorView(Context context, final int pathResourceId,
-                final int sizeResourceId, final int backgroundColorResourceId,
-                final int foregroundColroResourceId) {
-            super(context);
-            final Resources resources = context.getResources();
-            mPath = createPath(resources, pathResourceId, sizeResourceId);
-            mBackgroundColor = resources.getColor(backgroundColorResourceId);
-            mForegroundColor = resources.getColor(foregroundColroResourceId);
-        }
-
-        public void setBounds(final RectF rect) {
-            mBounds.set(rect);
-        }
-
-        @Override
-        protected void onDraw(Canvas canvas) {
-            mPaint.setColor(mBackgroundColor);
-            mPaint.setStyle(Paint.Style.FILL);
-            canvas.drawRect(0.0f, 0.0f, mBounds.width(), mBounds.height(), mPaint);
-
-            mMatrix.reset();
-            mMatrix.postScale(mBounds.width(), mBounds.height());
-            mPath.transform(mMatrix, mTmpPath);
-            mPaint.setColor(mForegroundColor);
-            canvas.drawPath(mTmpPath, mPaint);
-        }
-
-        private static Path createPath(final Resources resources, final int pathResourceId,
-                final int sizeResourceId) {
-            final int size = resources.getInteger(sizeResourceId);
-            final float normalizationFactor = 1.0f / size;
-            final int[] array = resources.getIntArray(pathResourceId);
-
-            final Path path = new Path();
-            for (int i = 0; i < array.length; i += 2) {
-                if (i == 0) {
-                    path.moveTo(array[i] * normalizationFactor, array[i + 1] * normalizationFactor);
-                } else {
-                    path.lineTo(array[i] * normalizationFactor, array[i + 1] * normalizationFactor);
-                }
-            }
-            path.close();
-            return path;
-        }
-    }
-
-    private static ViewGroup getContentView(final View view) {
-        final View rootView = view.getRootView();
-        if (rootView == null) {
-            return null;
-        }
-
-        final ViewGroup windowContentView = (ViewGroup)rootView.findViewById(android.R.id.content);
-        if (windowContentView == null) {
-            return null;
-        }
-        return windowContentView;
-    }
-
-    private static final class AddToDictionaryIndicatorView extends TextDecoratorUi.IndicatorView {
-        public AddToDictionaryIndicatorView(final Context context) {
-            super(context, R.array.text_decorator_add_to_dictionary_indicator_path,
-                    R.integer.text_decorator_add_to_dictionary_indicator_path_size,
-                    R.color.text_decorator_add_to_dictionary_indicator_background_color,
-                    R.color.text_decorator_add_to_dictionary_indicator_foreground_color);
-        }
-    }
-}
\ No newline at end of file
diff --git a/java/src/com/android/inputmethod/keyboard/TextDecoratorUiOperator.java b/java/src/com/android/inputmethod/keyboard/TextDecoratorUiOperator.java
deleted file mode 100644
index 9e30e41..0000000
--- a/java/src/com/android/inputmethod/keyboard/TextDecoratorUiOperator.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.keyboard;
-
-import android.graphics.Matrix;
-import android.graphics.RectF;
-
-/**
- * This interface defines how UI operations required for {@link TextDecorator} are delegated to
- * the actual UI implementation class.
- */
-public interface TextDecoratorUiOperator {
-    /**
-     * Called to notify that the UI is ready to be disposed.
-     */
-    void disposeUi();
-
-    /**
-     * Called when the UI should become invisible.
-     */
-    void hideUi();
-
-    /**
-     * Called to set the new click handler.
-     * @param onClickListener the callback object whose {@link Runnable#run()} should be called when
-     * the indicator is clicked.
-     */
-    void setOnClickListener(final Runnable onClickListener);
-
-    /**
-     * Called when the layout should be updated.
-     * @param matrix The matrix that transforms the local coordinates into the screen coordinates.
-     * @param composingTextBounds The bounding box of the composing text, in local coordinates.
-     * @param useRtlLayout {@code true} if the indicator should be optimized for RTL layout.
-     */
-    void layoutUi(final Matrix matrix, final RectF composingTextBounds, final boolean useRtlLayout);
-}
diff --git a/java/src/com/android/inputmethod/keyboard/emoji/EmojiCategory.java b/java/src/com/android/inputmethod/keyboard/emoji/EmojiCategory.java
index 0f9dc85..a9711ae 100644
--- a/java/src/com/android/inputmethod/keyboard/emoji/EmojiCategory.java
+++ b/java/src/com/android/inputmethod/keyboard/emoji/EmojiCategory.java
@@ -29,7 +29,6 @@
 import com.android.inputmethod.keyboard.Keyboard;
 import com.android.inputmethod.keyboard.KeyboardId;
 import com.android.inputmethod.keyboard.KeyboardLayoutSet;
-import com.android.inputmethod.latin.Constants;
 import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.settings.Settings;
 
@@ -147,7 +146,7 @@
         mShownCategories.add(properties);
     }
 
-    public String getCategoryName(final int categoryId, final int categoryPageId) {
+    public static String getCategoryName(final int categoryId, final int categoryPageId) {
         return sCategoryName[categoryId] + "-" + categoryPageId;
     }
 
@@ -271,7 +270,7 @@
     }
 
     private static final Long getCategoryKeyboardMapKey(final int categoryId, final int id) {
-        return (((long) categoryId) << Constants.MAX_INT_BIT_COUNT) | id;
+        return (((long) categoryId) << Integer.SIZE) | id;
     }
 
     public DynamicGridKeyboard getKeyboard(final int categoryId, final int id) {
diff --git a/java/src/com/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView.java b/java/src/com/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView.java
index 925ec6b..09313f8 100644
--- a/java/src/com/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/emoji/EmojiPageKeyboardView.java
@@ -138,6 +138,21 @@
         return mKeyDetector.detectHitKey(x, y);
     }
 
+    void callListenerOnReleaseKey(final Key releasedKey, final boolean withKeyRegistering) {
+        releasedKey.onReleased();
+        invalidateKey(releasedKey);
+        if (withKeyRegistering) {
+            mListener.onReleaseKey(releasedKey);
+        }
+    }
+
+    void callListenerOnPressKey(final Key pressedKey) {
+        mPendingKeyDown = null;
+        pressedKey.onPressed();
+        invalidateKey(pressedKey);
+        mListener.onPressKey(pressedKey);
+    }
+
     public void releaseCurrentKey(final boolean withKeyRegistering) {
         mHandler.removeCallbacks(mPendingKeyDown);
         mPendingKeyDown = null;
@@ -145,11 +160,7 @@
         if (currentKey == null) {
             return;
         }
-        currentKey.onReleased();
-        invalidateKey(currentKey);
-        if (withKeyRegistering) {
-            mListener.onReleaseKey(currentKey);
-        }
+        callListenerOnReleaseKey(currentKey, withKeyRegistering);
         mCurrentKey = null;
     }
 
@@ -165,10 +176,7 @@
         mPendingKeyDown = new Runnable() {
             @Override
             public void run() {
-                mPendingKeyDown = null;
-                key.onPressed();
-                invalidateKey(key);
-                mListener.onPressKey(key);
+                callListenerOnPressKey(key);
             }
         };
         mHandler.postDelayed(mPendingKeyDown, KEY_PRESS_DELAY_TIME);
@@ -195,15 +203,11 @@
             mHandler.postDelayed(new Runnable() {
                 @Override
                 public void run() {
-                    key.onReleased();
-                    invalidateKey(key);
-                    mListener.onReleaseKey(key);
+                    callListenerOnReleaseKey(key, true /* withRegistering */);
                 }
             }, KEY_RELEASE_DELAY_TIME);
         } else {
-            key.onReleased();
-            invalidateKey(key);
-            mListener.onReleaseKey(key);
+            callListenerOnReleaseKey(key, true /* withRegistering */);
         }
         return true;
     }
diff --git a/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesView.java b/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesView.java
index e37cd23..a3b869d 100644
--- a/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesView.java
+++ b/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesView.java
@@ -16,13 +16,12 @@
 
 package com.android.inputmethod.keyboard.emoji;
 
-import static com.android.inputmethod.latin.Constants.NOT_A_COORDINATE;
+import static com.android.inputmethod.latin.common.Constants.NOT_A_COORDINATE;
 
 import android.content.Context;
 import android.content.res.Resources;
 import android.content.res.TypedArray;
 import android.graphics.Color;
-import android.os.CountDownTimer;
 import android.preference.PreferenceManager;
 import android.support.v4.view.ViewPager;
 import android.util.AttributeSet;
@@ -47,13 +46,11 @@
 import com.android.inputmethod.keyboard.internal.KeyVisualAttributes;
 import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
 import com.android.inputmethod.latin.AudioAndHapticFeedbackManager;
-import com.android.inputmethod.latin.Constants;
 import com.android.inputmethod.latin.R;
-import com.android.inputmethod.latin.SubtypeSwitcher;
+import com.android.inputmethod.latin.RichInputMethodSubtype;
+import com.android.inputmethod.latin.common.Constants;
 import com.android.inputmethod.latin.utils.ResourceUtils;
 
-import java.util.concurrent.TimeUnit;
-
 /**
  * View class to implement Emoji palettes.
  * The Emoji keyboard consists of group of views layout/emoji_palettes_view.
@@ -75,9 +72,9 @@
     private final int mCategoryIndicatorBackgroundResId;
     private final int mCategoryPageIndicatorColor;
     private final int mCategoryPageIndicatorBackground;
-    private final DeleteKeyOnTouchListener mDeleteKeyOnTouchListener;
     private EmojiPalettesAdapter mEmojiPalettesAdapter;
     private final EmojiLayoutParams mEmojiLayoutParams;
+    private final DeleteKeyOnTouchListener mDeleteKeyOnTouchListener;
 
     private ImageButton mDeleteKey;
     private TextView mAlphabetKeyLeft;
@@ -113,7 +110,7 @@
                 context, null /* editorInfo */);
         final Resources res = context.getResources();
         mEmojiLayoutParams = new EmojiLayoutParams(res);
-        builder.setSubtype(SubtypeSwitcher.getInstance().getEmojiSubtype());
+        builder.setSubtype(RichInputMethodSubtype.getEmojiSubtype());
         builder.setKeyboardGeometry(ResourceUtils.getDefaultKeyboardWidth(res),
                 mEmojiLayoutParams.mEmojiKeyboardHeight);
         final KeyboardLayoutSet layoutSet = builder.build();
@@ -132,7 +129,7 @@
         mCategoryPageIndicatorBackground = emojiPalettesViewAttr.getColor(
                 R.styleable.EmojiPalettesView_categoryPageIndicatorBackground, 0);
         emojiPalettesViewAttr.recycle();
-        mDeleteKeyOnTouchListener = new DeleteKeyOnTouchListener(context);
+        mDeleteKeyOnTouchListener = new DeleteKeyOnTouchListener();
     }
 
     @Override
@@ -149,11 +146,14 @@
     }
 
     private void addTab(final TabHost host, final int categoryId) {
-        final String tabId = mEmojiCategory.getCategoryName(categoryId, 0 /* categoryPageId */);
+        final String tabId = EmojiCategory.getCategoryName(categoryId, 0 /* categoryPageId */);
         final TabHost.TabSpec tspec = host.newTabSpec(tabId);
         tspec.setContent(R.id.emoji_keyboard_dummy);
         final ImageView iconView = (ImageView)LayoutInflater.from(getContext()).inflate(
                 R.layout.emoji_keyboard_tab_icon, null);
+        // TODO: Replace background color with its own setting rather than using the
+        //       category page indicator background as a workaround.
+        iconView.setBackgroundColor(mCategoryPageIndicatorBackground);
         iconView.setImageResource(mEmojiCategory.getCategoryTabIcon(categoryId));
         iconView.setContentDescription(mEmojiCategory.getAccessibilityDescription(categoryId));
         tspec.setIndicator(iconView);
@@ -265,7 +265,7 @@
 
     @Override
     public void onPageScrolled(final int position, final float positionOffset,
-            final int positionOffsetPixels) {
+                               final int positionOffsetPixels) {
         mEmojiPalettesAdapter.onPageScrolled();
         final Pair<Integer, Integer> newPos =
                 mEmojiCategory.getCategoryIdAndPageIdFromPagePosition(position);
@@ -364,7 +364,7 @@
     }
 
     private static void setupAlphabetKey(final TextView alphabetKey, final String label,
-            final KeyDrawParams params) {
+                                         final KeyDrawParams params) {
         alphabetKey.setText(label);
         alphabetKey.setTextColor(params.mFunctionalTextColor);
         alphabetKey.setTextSize(TypedValue.COMPLEX_UNIT_PX, params.mLabelSize);
@@ -372,7 +372,8 @@
     }
 
     public void startEmojiPalettes(final String switchToAlphaLabel,
-            final KeyVisualAttributes keyVisualAttr, final KeyboardIconsSet iconSet) {
+                                   final KeyVisualAttributes keyVisualAttr,
+                                   final KeyboardIconsSet iconSet) {
         final int deleteIconResId = iconSet.getIconResourceId(KeyboardIconsSet.NAME_DELETE_KEY);
         if (deleteIconResId != 0) {
             mDeleteKey.setImageResource(deleteIconResId);
@@ -398,7 +399,7 @@
 
     public void setKeyboardActionListener(final KeyboardActionListener listener) {
         mKeyboardActionListener = listener;
-        mDeleteKeyOnTouchListener.setKeyboardActionListener(mKeyboardActionListener);
+        mDeleteKeyOnTouchListener.setKeyboardActionListener(listener);
     }
 
     private void updateEmojiCategoryPageIdView() {
@@ -436,45 +437,9 @@
     }
 
     private static class DeleteKeyOnTouchListener implements OnTouchListener {
-        static final long MAX_REPEAT_COUNT_TIME = TimeUnit.SECONDS.toMillis(30);
-        final long mKeyRepeatStartTimeout;
-        final long mKeyRepeatInterval;
-
-        public DeleteKeyOnTouchListener(Context context) {
-            final Resources res = context.getResources();
-            mKeyRepeatStartTimeout = res.getInteger(R.integer.config_key_repeat_start_timeout);
-            mKeyRepeatInterval = res.getInteger(R.integer.config_key_repeat_interval);
-            mTimer = new CountDownTimer(MAX_REPEAT_COUNT_TIME, mKeyRepeatInterval) {
-                @Override
-                public void onTick(long millisUntilFinished) {
-                    final long elapsed = MAX_REPEAT_COUNT_TIME - millisUntilFinished;
-                    if (elapsed < mKeyRepeatStartTimeout) {
-                        return;
-                    }
-                    onKeyRepeat();
-                }
-                @Override
-                public void onFinish() {
-                    onKeyRepeat();
-                }
-            };
-        }
-
-        /** Key-repeat state. */
-        private static final int KEY_REPEAT_STATE_INITIALIZED = 0;
-        // The key is touched but auto key-repeat is not started yet.
-        private static final int KEY_REPEAT_STATE_KEY_DOWN = 1;
-        // At least one key-repeat event has already been triggered and the key is not released.
-        private static final int KEY_REPEAT_STATE_KEY_REPEAT = 2;
-
         private KeyboardActionListener mKeyboardActionListener =
                 KeyboardActionListener.EMPTY_LISTENER;
 
-        // TODO: Do the same things done in PointerTracker
-        private final CountDownTimer mTimer;
-        private int mState = KEY_REPEAT_STATE_INITIALIZED;
-        private int mRepeatCount = 0;
-
         public void setKeyboardActionListener(final KeyboardActionListener listener) {
             mKeyboardActionListener = listener;
         }
@@ -482,79 +447,40 @@
         @Override
         public boolean onTouch(final View v, final MotionEvent event) {
             switch (event.getActionMasked()) {
-            case MotionEvent.ACTION_DOWN:
-                onTouchDown(v);
-                return true;
-            case MotionEvent.ACTION_MOVE:
-                final float x = event.getX();
-                final float y = event.getY();
-                if (x < 0.0f || v.getWidth() < x || y < 0.0f || v.getHeight() < y) {
-                    // Stop generating key events once the finger moves away from the view area.
-                    onTouchCanceled(v);
-                }
-                return true;
-            case MotionEvent.ACTION_CANCEL:
-            case MotionEvent.ACTION_UP:
-                onTouchUp(v);
-                return true;
+                case MotionEvent.ACTION_DOWN:
+                    onTouchDown(v);
+                    return true;
+                case MotionEvent.ACTION_MOVE:
+                    final float x = event.getX();
+                    final float y = event.getY();
+                    if (x < 0.0f || v.getWidth() < x || y < 0.0f || v.getHeight() < y) {
+                        // Stop generating key events once the finger moves away from the view area.
+                        onTouchCanceled(v);
+                    }
+                    return true;
+                case MotionEvent.ACTION_CANCEL:
+                case MotionEvent.ACTION_UP:
+                    onTouchUp(v);
+                    return true;
             }
             return false;
         }
 
-        private void handleKeyDown() {
-            mKeyboardActionListener.onPressKey(
-                    Constants.CODE_DELETE, mRepeatCount, true /* isSinglePointer */);
-        }
-
-        private void handleKeyUp() {
-            mKeyboardActionListener.onCodeInput(Constants.CODE_DELETE,
-                    NOT_A_COORDINATE, NOT_A_COORDINATE, false /* isKeyRepeat */);
-            mKeyboardActionListener.onReleaseKey(
-                    Constants.CODE_DELETE, false /* withSliding */);
-            ++mRepeatCount;
-        }
-
         private void onTouchDown(final View v) {
-            mTimer.cancel();
-            mRepeatCount = 0;
-            handleKeyDown();
+            mKeyboardActionListener.onPressKey(Constants.CODE_DELETE,
+                    0 /* repeatCount */, true /* isSinglePointer */);
             v.setPressed(true /* pressed */);
-            mState = KEY_REPEAT_STATE_KEY_DOWN;
-            mTimer.start();
         }
 
         private void onTouchUp(final View v) {
-            mTimer.cancel();
-            if (mState == KEY_REPEAT_STATE_KEY_DOWN) {
-                handleKeyUp();
-            }
+            mKeyboardActionListener.onCodeInput(Constants.CODE_DELETE,
+                    NOT_A_COORDINATE, NOT_A_COORDINATE, false /* isKeyRepeat */);
+            mKeyboardActionListener.onReleaseKey(Constants.CODE_DELETE, false /* withSliding */);
             v.setPressed(false /* pressed */);
-            mState = KEY_REPEAT_STATE_INITIALIZED;
         }
 
         private void onTouchCanceled(final View v) {
-            mTimer.cancel();
             v.setBackgroundColor(Color.TRANSPARENT);
-            mState = KEY_REPEAT_STATE_INITIALIZED;
-        }
-
-        // Called by {@link #mTimer} in the UI thread as an auto key-repeat signal.
-        void onKeyRepeat() {
-            switch (mState) {
-            case KEY_REPEAT_STATE_INITIALIZED:
-                // Basically this should not happen.
-                break;
-            case KEY_REPEAT_STATE_KEY_DOWN:
-                // Do not call {@link #handleKeyDown} here because it has already been called
-                // in {@link #onTouchDown}.
-                handleKeyUp();
-                mState = KEY_REPEAT_STATE_KEY_REPEAT;
-                break;
-            case KEY_REPEAT_STATE_KEY_REPEAT:
-                handleKeyDown();
-                handleKeyUp();
-                break;
-            }
         }
     }
-}
+}
\ No newline at end of file
diff --git a/java/src/com/android/inputmethod/keyboard/internal/AbstractDrawingPreview.java b/java/src/com/android/inputmethod/keyboard/internal/AbstractDrawingPreview.java
index a194f3d..c76a9ac 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/AbstractDrawingPreview.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/AbstractDrawingPreview.java
@@ -19,8 +19,11 @@
 import android.graphics.Canvas;
 import android.view.View;
 
+import com.android.inputmethod.keyboard.MainKeyboardView;
 import com.android.inputmethod.keyboard.PointerTracker;
 
+import javax.annotation.Nonnull;
+
 /**
  * Abstract base class for previews that are drawn on DrawingPreviewPlacerView, e.g.,
  * GestureFloatingTextDrawingPreview, GestureTrailsDrawingPreview, and
@@ -31,7 +34,7 @@
     private boolean mPreviewEnabled;
     private boolean mHasValidGeometry;
 
-    public void setDrawingView(final DrawingPreviewPlacerView drawingView) {
+    public void setDrawingView(@Nonnull final DrawingPreviewPlacerView drawingView) {
         mDrawingView = drawingView;
         drawingView.addPreview(this);
     }
@@ -51,16 +54,16 @@
     }
 
     /**
-     * Set {@link MainKeyboardView} geometry and position in the {@link SoftInputWindow}.
+     * Set {@link MainKeyboardView} geometry and position in the window of input method.
      * The class that is overriding this method must call this super implementation.
      *
      * @param originCoords the top-left coordinates of the {@link MainKeyboardView} in
-     *        {@link SoftInputWindow} coordinate-system. This is unused but has a point in an
+     *        the input method window coordinate-system. This is unused but has a point in an
      *        extended class, such as {@link GestureTrailsDrawingPreview}.
      * @param width the width of {@link MainKeyboardView}.
      * @param height the height of {@link MainKeyboardView}.
      */
-    public void setKeyboardViewGeometry(final int[] originCoords, final int width,
+    public void setKeyboardViewGeometry(@Nonnull final int[] originCoords, final int width,
             final int height) {
         mHasValidGeometry = (width > 0 && height > 0);
     }
@@ -71,11 +74,11 @@
      * Draws the preview
      * @param canvas The canvas where the preview is drawn.
      */
-    public abstract void drawPreview(final Canvas canvas);
+    public abstract void drawPreview(@Nonnull final Canvas canvas);
 
     /**
      * Set the position of the preview.
      * @param tracker The new location of the preview is based on the points in PointerTracker.
      */
-    public abstract void setPreviewPosition(final PointerTracker tracker);
+    public abstract void setPreviewPosition(@Nonnull final PointerTracker tracker);
 }
diff --git a/java/src/com/android/inputmethod/keyboard/internal/BatchInputArbiter.java b/java/src/com/android/inputmethod/keyboard/internal/BatchInputArbiter.java
index cd98759..77d0e7a 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/BatchInputArbiter.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/BatchInputArbiter.java
@@ -16,8 +16,8 @@
 
 package com.android.inputmethod.keyboard.internal;
 
-import com.android.inputmethod.latin.Constants;
-import com.android.inputmethod.latin.InputPointers;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.InputPointers;
 
 /**
  * This class arbitrates batch input.
diff --git a/java/src/com/android/inputmethod/keyboard/internal/BogusMoveEventDetector.java b/java/src/com/android/inputmethod/keyboard/internal/BogusMoveEventDetector.java
index 6420edd..4b355a4 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/BogusMoveEventDetector.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/BogusMoveEventDetector.java
@@ -20,8 +20,8 @@
 import android.util.DisplayMetrics;
 import android.util.Log;
 
-import com.android.inputmethod.latin.Constants;
 import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.common.Constants;
 import com.android.inputmethod.latin.define.DebugFlags;
 
 // This hack is applied to certain classes of tablets.
diff --git a/java/src/com/android/inputmethod/keyboard/internal/CodesArrayParser.java b/java/src/com/android/inputmethod/keyboard/internal/CodesArrayParser.java
index dce7fc5..2e2ed52 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/CodesArrayParser.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/CodesArrayParser.java
@@ -16,8 +16,8 @@
 
 package com.android.inputmethod.keyboard.internal;
 
-import com.android.inputmethod.latin.Constants;
-import com.android.inputmethod.latin.utils.StringUtils;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.StringUtils;
 
 import android.text.TextUtils;
 
diff --git a/java/src/com/android/inputmethod/keyboard/internal/DrawingHandler.java b/java/src/com/android/inputmethod/keyboard/internal/DrawingHandler.java
deleted file mode 100644
index df82bec..0000000
--- a/java/src/com/android/inputmethod/keyboard/internal/DrawingHandler.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.keyboard.internal;
-
-import android.os.Message;
-
-import com.android.inputmethod.keyboard.Key;
-import com.android.inputmethod.keyboard.internal.DrawingHandler.Callbacks;
-import com.android.inputmethod.latin.SuggestedWords;
-import com.android.inputmethod.latin.utils.LeakGuardHandlerWrapper;
-
-// TODO: Separate this class into KeyPreviewHandler and BatchInputPreviewHandler or so.
-public class DrawingHandler extends LeakGuardHandlerWrapper<Callbacks> {
-    public interface Callbacks {
-        public void dismissKeyPreviewWithoutDelay(Key key);
-        public void dismissAllKeyPreviews();
-        public void showGestureFloatingPreviewText(SuggestedWords suggestedWords);
-    }
-
-    private static final int MSG_DISMISS_KEY_PREVIEW = 0;
-    private static final int MSG_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT = 1;
-
-    public DrawingHandler(final Callbacks ownerInstance) {
-        super(ownerInstance);
-    }
-
-    @Override
-    public void handleMessage(final Message msg) {
-        final Callbacks callbacks = getOwnerInstance();
-        if (callbacks == null) {
-            return;
-        }
-        switch (msg.what) {
-        case MSG_DISMISS_KEY_PREVIEW:
-            callbacks.dismissKeyPreviewWithoutDelay((Key)msg.obj);
-            break;
-        case MSG_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT:
-            callbacks.showGestureFloatingPreviewText(SuggestedWords.EMPTY);
-            break;
-        }
-    }
-
-    public void dismissKeyPreview(final long delay, final Key key) {
-        sendMessageDelayed(obtainMessage(MSG_DISMISS_KEY_PREVIEW, key), delay);
-    }
-
-    private void cancelAllDismissKeyPreviews() {
-        removeMessages(MSG_DISMISS_KEY_PREVIEW);
-        final Callbacks callbacks = getOwnerInstance();
-        if (callbacks == null) {
-            return;
-        }
-        callbacks.dismissAllKeyPreviews();
-    }
-
-    public void dismissGestureFloatingPreviewText(final long delay) {
-        sendMessageDelayed(obtainMessage(MSG_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT), delay);
-    }
-
-    public void cancelAllMessages() {
-        cancelAllDismissKeyPreviews();
-    }
-}
diff --git a/java/src/com/android/inputmethod/keyboard/internal/DrawingPreviewPlacerView.java b/java/src/com/android/inputmethod/keyboard/internal/DrawingPreviewPlacerView.java
index a5d47ad..9c0d743 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/DrawingPreviewPlacerView.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/DrawingPreviewPlacerView.java
@@ -24,7 +24,7 @@
 import android.util.AttributeSet;
 import android.widget.RelativeLayout;
 
-import com.android.inputmethod.latin.utils.CoordinateUtils;
+import com.android.inputmethod.latin.common.CoordinateUtils;
 
 import java.util.ArrayList;
 
diff --git a/java/src/com/android/inputmethod/keyboard/internal/DrawingProxy.java b/java/src/com/android/inputmethod/keyboard/internal/DrawingProxy.java
new file mode 100644
index 0000000..06bdfc4
--- /dev/null
+++ b/java/src/com/android/inputmethod/keyboard/internal/DrawingProxy.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.internal;
+
+import com.android.inputmethod.keyboard.Key;
+import com.android.inputmethod.keyboard.MoreKeysPanel;
+import com.android.inputmethod.keyboard.PointerTracker;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+public interface DrawingProxy {
+    /**
+     * Called when a key is being pressed.
+     * @param key the {@link Key} that is being pressed.
+     * @param withPreview true if key popup preview should be displayed.
+     */
+    public void onKeyPressed(@Nonnull Key key, boolean withPreview);
+
+    /**
+     * Called when a key is being released.
+     * @param key the {@link Key} that is being released.
+     * @param withAnimation when true, key popup preview should be dismissed with animation.
+     */
+    public void onKeyReleased(@Nonnull Key key, boolean withAnimation);
+
+    /**
+     * Start showing more keys keyboard of a key that is being long pressed.
+     * @param key the {@link Key} that is being long pressed and showing more keys keyboard.
+     * @param tracker the {@link PointerTracker} that detects this long pressing.
+     * @return {@link MoreKeysPanel} that is being shown. null if there is no need to show more keys
+     *     keyboard.
+     */
+    @Nullable
+    public MoreKeysPanel showMoreKeysKeyboard(@Nonnull Key key, @Nonnull PointerTracker tracker);
+
+    /**
+     * Start a while-typing-animation.
+     * @param fadeInOrOut {@link #FADE_IN} starts while-typing-fade-in animation.
+     * {@link #FADE_OUT} starts while-typing-fade-out animation.
+     */
+    public void startWhileTypingAnimation(int fadeInOrOut);
+    public static final int FADE_IN = 0;
+    public static final int FADE_OUT = 1;
+
+    /**
+     * Show sliding-key input preview.
+     * @param tracker the {@link PointerTracker} that is currently doing the sliding-key input.
+     * null to dismiss the sliding-key input preview.
+     */
+    public void showSlidingKeyInputPreview(@Nullable PointerTracker tracker);
+
+    /**
+     * Show gesture trails.
+     * @param tracker the {@link PointerTracker} whose gesture trail will be shown.
+     * @param showsFloatingPreviewText when true, a gesture floating preview text will be shown
+     * with this <code>tracker</code>'s trail.
+     */
+    public void showGestureTrail(@Nonnull PointerTracker tracker, boolean showsFloatingPreviewText);
+
+    /**
+     * Dismiss a gesture floating preview text without delay.
+     */
+    public void dismissGestureFloatingPreviewTextWithoutDelay();
+}
diff --git a/java/src/com/android/inputmethod/keyboard/internal/GestureFloatingTextDrawingPreview.java b/java/src/com/android/inputmethod/keyboard/internal/GestureFloatingTextDrawingPreview.java
index fd84856..5443c2a 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/GestureFloatingTextDrawingPreview.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/GestureFloatingTextDrawingPreview.java
@@ -27,7 +27,9 @@
 import com.android.inputmethod.keyboard.PointerTracker;
 import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.SuggestedWords;
-import com.android.inputmethod.latin.utils.CoordinateUtils;
+import com.android.inputmethod.latin.common.CoordinateUtils;
+
+import javax.annotation.Nonnull;
 
 /**
  * The class for single gesture preview text. The class for multiple gesture preview text will be
@@ -98,7 +100,7 @@
     private final RectF mGesturePreviewRectangle = new RectF();
     private int mPreviewTextX;
     private int mPreviewTextY;
-    private SuggestedWords mSuggestedWords = SuggestedWords.EMPTY;
+    private SuggestedWords mSuggestedWords = SuggestedWords.getEmptyInstance();
     private final int[] mLastPointerCoords = CoordinateUtils.newInstance();
 
     public GestureFloatingTextDrawingPreview(final TypedArray mainKeyboardViewAttr) {
@@ -110,7 +112,11 @@
         // Nothing to do here.
     }
 
-    public void setSuggetedWords(final SuggestedWords suggestedWords) {
+    public void dismissGestureFloatingPreviewText() {
+        setSuggetedWords(SuggestedWords.getEmptyInstance());
+    }
+
+    public void setSuggetedWords(@Nonnull final SuggestedWords suggestedWords) {
         if (!isPreviewEnabled()) {
             return;
         }
diff --git a/java/src/com/android/inputmethod/keyboard/internal/GestureStrokeDrawingPoints.java b/java/src/com/android/inputmethod/keyboard/internal/GestureStrokeDrawingPoints.java
index 7d09e9d..07ef009 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/GestureStrokeDrawingPoints.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/GestureStrokeDrawingPoints.java
@@ -16,7 +16,7 @@
 
 package com.android.inputmethod.keyboard.internal;
 
-import com.android.inputmethod.latin.utils.ResizableIntArray;
+import com.android.inputmethod.latin.common.ResizableIntArray;
 
 /**
  * This class holds drawing points to represent a gesture stroke on the screen.
diff --git a/java/src/com/android/inputmethod/keyboard/internal/GestureStrokeRecognitionPoints.java b/java/src/com/android/inputmethod/keyboard/internal/GestureStrokeRecognitionPoints.java
index e49e538..3e90111 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/GestureStrokeRecognitionPoints.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/GestureStrokeRecognitionPoints.java
@@ -18,9 +18,9 @@
 
 import android.util.Log;
 
-import com.android.inputmethod.latin.Constants;
-import com.android.inputmethod.latin.InputPointers;
-import com.android.inputmethod.latin.utils.ResizableIntArray;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.InputPointers;
+import com.android.inputmethod.latin.common.ResizableIntArray;
 
 /**
  * This class holds event points to recognize a gesture stroke.
diff --git a/java/src/com/android/inputmethod/keyboard/internal/GestureTrailDrawingPoints.java b/java/src/com/android/inputmethod/keyboard/internal/GestureTrailDrawingPoints.java
index bf4c4da..4d998e4 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/GestureTrailDrawingPoints.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/GestureTrailDrawingPoints.java
@@ -23,8 +23,8 @@
 import android.graphics.Rect;
 import android.os.SystemClock;
 
-import com.android.inputmethod.latin.Constants;
-import com.android.inputmethod.latin.utils.ResizableIntArray;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.ResizableIntArray;
 
 /**
  * This class holds drawing points to represent a gesture trail. The gesture trail may contain
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyDrawParams.java b/java/src/com/android/inputmethod/keyboard/internal/KeyDrawParams.java
index df50efd..3ef9ea1 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyDrawParams.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyDrawParams.java
@@ -20,8 +20,12 @@
 
 import com.android.inputmethod.latin.utils.ResourceUtils;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 public final class KeyDrawParams {
-    public Typeface mTypeface;
+    @Nonnull
+    public Typeface mTypeface = Typeface.DEFAULT;
 
     public int mLetterSize;
     public int mLabelSize;
@@ -49,7 +53,7 @@
 
     public KeyDrawParams() {}
 
-    private KeyDrawParams(final KeyDrawParams copyFrom) {
+    private KeyDrawParams(@Nonnull final KeyDrawParams copyFrom) {
         mTypeface = copyFrom.mTypeface;
 
         mLetterSize = copyFrom.mLetterSize;
@@ -77,7 +81,7 @@
         mAnimAlpha = copyFrom.mAnimAlpha;
     }
 
-    public void updateParams(final int keyHeight, final KeyVisualAttributes attr) {
+    public void updateParams(final int keyHeight, @Nullable final KeyVisualAttributes attr) {
         if (attr == null) {
             return;
         }
@@ -117,8 +121,9 @@
                 attr.mHintLabelOffCenterRatio, mHintLabelOffCenterRatio);
     }
 
+    @Nonnull
     public KeyDrawParams mayCloneAndUpdateParams(final int keyHeight,
-            final KeyVisualAttributes attr) {
+            @Nullable final KeyVisualAttributes attr) {
         if (attr == null) {
             return this;
         }
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyPreviewChoreographer.java b/java/src/com/android/inputmethod/keyboard/internal/KeyPreviewChoreographer.java
index 5005b7d..448f1b4 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyPreviewChoreographer.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyPreviewChoreographer.java
@@ -23,12 +23,11 @@
 import android.view.ViewGroup;
 
 import com.android.inputmethod.keyboard.Key;
-import com.android.inputmethod.latin.utils.CoordinateUtils;
+import com.android.inputmethod.latin.common.CoordinateUtils;
 import com.android.inputmethod.latin.utils.ViewLayoutUtils;
 
 import java.util.ArrayDeque;
 import java.util.HashMap;
-import java.util.HashSet;
 
 /**
  * This class controls pop up key previews. This class decides:
@@ -69,12 +68,6 @@
         return mShowingKeyPreviewViews.containsKey(key);
     }
 
-    public void dismissAllKeyPreviews() {
-        for (final Key key : new HashSet<>(mShowingKeyPreviewViews.keySet())) {
-            dismissKeyPreview(key, false /* withAnimation */);
-        }
-    }
-
     public void dismissKeyPreview(final Key key, final boolean withAnimation) {
         if (key == null) {
             return;
@@ -148,7 +141,7 @@
         keyPreviewView.setPivotY(previewHeight);
     }
 
-    private void showKeyPreview(final Key key, final KeyPreviewView keyPreviewView,
+    void showKeyPreview(final Key key, final KeyPreviewView keyPreviewView,
             final boolean withAnimation) {
         if (!withAnimation) {
             keyPreviewView.setVisibility(View.VISIBLE);
@@ -166,25 +159,25 @@
     }
 
     public Animator createShowUpAnimator(final Key key, final KeyPreviewView keyPreviewView) {
-        final Animator animator = mParams.createShowUpAnimator(keyPreviewView);
-        animator.addListener(new AnimatorListenerAdapter() {
+        final Animator showUpAnimator = mParams.createShowUpAnimator(keyPreviewView);
+        showUpAnimator.addListener(new AnimatorListenerAdapter() {
             @Override
             public void onAnimationStart(final Animator animator) {
                 showKeyPreview(key, keyPreviewView, false /* withAnimation */);
             }
         });
-        return animator;
+        return showUpAnimator;
     }
 
     private Animator createDismissAnimator(final Key key, final KeyPreviewView keyPreviewView) {
-        final Animator animator = mParams.createDismissAnimator(keyPreviewView);
-        animator.addListener(new AnimatorListenerAdapter() {
+        final Animator dismissAnimator = mParams.createDismissAnimator(keyPreviewView);
+        dismissAnimator.addListener(new AnimatorListenerAdapter() {
             @Override
             public void onAnimationEnd(final Animator animator) {
                 dismissKeyPreview(key, false /* withAnimation */);
             }
         });
-        return animator;
+        return dismissAnimator;
     }
 
     private static class KeyPreviewAnimators extends AnimatorListenerAdapter {
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java b/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java
index 48ba8e0..3eb62e7 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java
@@ -16,11 +16,14 @@
 
 package com.android.inputmethod.keyboard.internal;
 
-import static com.android.inputmethod.latin.Constants.CODE_OUTPUT_TEXT;
-import static com.android.inputmethod.latin.Constants.CODE_UNSPECIFIED;
+import static com.android.inputmethod.latin.common.Constants.CODE_OUTPUT_TEXT;
+import static com.android.inputmethod.latin.common.Constants.CODE_UNSPECIFIED;
 
-import com.android.inputmethod.latin.Constants;
-import com.android.inputmethod.latin.utils.StringUtils;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.StringUtils;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 
 /**
  * The string parser of the key specification.
@@ -53,11 +56,11 @@
         // Intentional empty constructor for utility class.
     }
 
-    private static boolean hasIcon(final String keySpec) {
+    private static boolean hasIcon(@Nonnull final String keySpec) {
         return keySpec.startsWith(KeyboardIconsSet.PREFIX_ICON);
     }
 
-    private static boolean hasCode(final String keySpec, final int labelEnd) {
+    private static boolean hasCode(@Nonnull final String keySpec, final int labelEnd) {
         if (labelEnd <= 0 || labelEnd + 1 >= keySpec.length()) {
             return false;
         }
@@ -72,7 +75,8 @@
         return false;
     }
 
-    private static String parseEscape(final String text) {
+    @Nonnull
+    private static String parseEscape(@Nonnull final String text) {
         if (text.indexOf(BACKSLASH) < 0) {
             return text;
         }
@@ -91,7 +95,7 @@
         return sb.toString();
     }
 
-    private static int indexOfLabelEnd(final String keySpec) {
+    private static int indexOfLabelEnd(@Nonnull final String keySpec) {
         final int length = keySpec.length();
         if (keySpec.indexOf(BACKSLASH) < 0) {
             final int labelEnd = keySpec.indexOf(VERTICAL_BAR);
@@ -116,22 +120,25 @@
         return -1;
     }
 
-    private static String getBeforeLabelEnd(final String keySpec, final int labelEnd) {
+    @Nonnull
+    private static String getBeforeLabelEnd(@Nonnull final String keySpec, final int labelEnd) {
         return (labelEnd < 0) ? keySpec : keySpec.substring(0, labelEnd);
     }
 
-    private static String getAfterLabelEnd(final String keySpec, final int labelEnd) {
+    @Nonnull
+    private static String getAfterLabelEnd(@Nonnull final String keySpec, final int labelEnd) {
         return keySpec.substring(labelEnd + /* VERTICAL_BAR */1);
     }
 
-    private static void checkDoubleLabelEnd(final String keySpec, final int labelEnd) {
+    private static void checkDoubleLabelEnd(@Nonnull final String keySpec, final int labelEnd) {
         if (indexOfLabelEnd(getAfterLabelEnd(keySpec, labelEnd)) < 0) {
             return;
         }
         throw new KeySpecParserError("Multiple " + VERTICAL_BAR + ": " + keySpec);
     }
 
-    public static String getLabel(final String keySpec) {
+    @Nullable
+    public static String getLabel(@Nullable final String keySpec) {
         if (keySpec == null) {
             // TODO: Throw {@link KeySpecParserError} once Key.keyLabel attribute becomes mandatory.
             return null;
@@ -147,7 +154,8 @@
         return label;
     }
 
-    private static String getOutputTextInternal(final String keySpec, final int labelEnd) {
+    @Nullable
+    private static String getOutputTextInternal(@Nonnull final String keySpec, final int labelEnd) {
         if (labelEnd <= 0) {
             return null;
         }
@@ -155,7 +163,8 @@
         return parseEscape(getAfterLabelEnd(keySpec, labelEnd));
     }
 
-    public static String getOutputText(final String keySpec) {
+    @Nullable
+    public static String getOutputText(@Nullable final String keySpec) {
         if (keySpec == null) {
             // TODO: Throw {@link KeySpecParserError} once Key.keyLabel attribute becomes mandatory.
             return null;
@@ -184,7 +193,7 @@
         return (StringUtils.codePointCount(label) == 1) ? null : label;
     }
 
-    public static int getCode(final String keySpec) {
+    public static int getCode(@Nullable final String keySpec) {
         if (keySpec == null) {
             // TODO: Throw {@link KeySpecParserError} once Key.keyLabel attribute becomes mandatory.
             return CODE_UNSPECIFIED;
@@ -211,7 +220,7 @@
         return (StringUtils.codePointCount(label) == 1) ? label.codePointAt(0) : CODE_OUTPUT_TEXT;
     }
 
-    public static int parseCode(final String text, final int defaultCode) {
+    public static int parseCode(@Nullable final String text, final int defaultCode) {
         if (text == null) {
             return defaultCode;
         }
@@ -226,7 +235,7 @@
         return defaultCode;
     }
 
-    public static int getIconId(final String keySpec) {
+    public static int getIconId(@Nullable final String keySpec) {
         if (keySpec == null) {
             // TODO: Throw {@link KeySpecParserError} once Key.keyLabel attribute becomes mandatory.
             return KeyboardIconsSet.ICON_UNDEFINED;
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyStyle.java b/java/src/com/android/inputmethod/keyboard/internal/KeyStyle.java
index 7941ddd..28aa22c 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyStyle.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyStyle.java
@@ -18,18 +18,22 @@
 
 import android.content.res.TypedArray;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 public abstract class KeyStyle {
     private final KeyboardTextsSet mTextsSet;
 
-    public abstract String[] getStringArray(TypedArray a, int index);
-    public abstract String getString(TypedArray a, int index);
+    public abstract @Nullable String[] getStringArray(TypedArray a, int index);
+    public abstract @Nullable String getString(TypedArray a, int index);
     public abstract int getInt(TypedArray a, int index, int defaultValue);
     public abstract int getFlags(TypedArray a, int index);
 
-    protected KeyStyle(final KeyboardTextsSet textsSet) {
+    protected KeyStyle(@Nonnull final KeyboardTextsSet textsSet) {
         mTextsSet = textsSet;
     }
 
+    @Nullable
     protected String parseString(final TypedArray a, final int index) {
         if (a.hasValue(index)) {
             return mTextsSet.resolveTextReference(a.getString(index));
@@ -37,6 +41,7 @@
         return null;
     }
 
+    @Nullable
     protected String[] parseStringArray(final TypedArray a, final int index) {
         if (a.hasValue(index)) {
             final String text = mTextsSet.resolveTextReference(a.getString(index));
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java
index 5cbb341..61f98c8 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyStylesSet.java
@@ -29,33 +29,42 @@
 import java.util.Arrays;
 import java.util.HashMap;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 public final class KeyStylesSet {
     private static final String TAG = KeyStylesSet.class.getSimpleName();
     private static final boolean DEBUG = false;
 
+    @Nonnull
     private final HashMap<String, KeyStyle> mStyles = new HashMap<>();
 
+    @Nonnull
     private final KeyboardTextsSet mTextsSet;
+    @Nonnull
     private final KeyStyle mEmptyKeyStyle;
+    @Nonnull
     private static final String EMPTY_STYLE_NAME = "<empty>";
 
-    public KeyStylesSet(final KeyboardTextsSet textsSet) {
+    public KeyStylesSet(@Nonnull final KeyboardTextsSet textsSet) {
         mTextsSet = textsSet;
         mEmptyKeyStyle = new EmptyKeyStyle(textsSet);
         mStyles.put(EMPTY_STYLE_NAME, mEmptyKeyStyle);
     }
 
     private static final class EmptyKeyStyle extends KeyStyle {
-        EmptyKeyStyle(final KeyboardTextsSet textsSet) {
+        EmptyKeyStyle(@Nonnull final KeyboardTextsSet textsSet) {
             super(textsSet);
         }
 
         @Override
+        @Nullable
         public String[] getStringArray(final TypedArray a, final int index) {
             return parseStringArray(a, index);
         }
 
         @Override
+        @Nullable
         public String getString(final TypedArray a, final int index) {
             return parseString(a, index);
         }
@@ -76,14 +85,16 @@
         private final String mParentStyleName;
         private final SparseArray<Object> mStyleAttributes = new SparseArray<>();
 
-        public DeclaredKeyStyle(final String parentStyleName, final KeyboardTextsSet textsSet,
-                final HashMap<String, KeyStyle> styles) {
+        public DeclaredKeyStyle(@Nonnull final String parentStyleName,
+                @Nonnull final KeyboardTextsSet textsSet,
+                @Nonnull final HashMap<String, KeyStyle> styles) {
             super(textsSet);
             mParentStyleName = parentStyleName;
             mStyles = styles;
         }
 
         @Override
+        @Nullable
         public String[] getStringArray(final TypedArray a, final int index) {
             if (a.hasValue(index)) {
                 return parseStringArray(a, index);
@@ -98,6 +109,7 @@
         }
 
         @Override
+        @Nullable
         public String getString(final TypedArray a, final int index) {
             if (a.hasValue(index)) {
                 return parseString(a, index);
@@ -176,37 +188,43 @@
     public void parseKeyStyleAttributes(final TypedArray keyStyleAttr, final TypedArray keyAttrs,
             final XmlPullParser parser) throws XmlPullParserException {
         final String styleName = keyStyleAttr.getString(R.styleable.Keyboard_KeyStyle_styleName);
+        if (styleName == null) {
+            throw new XmlParseUtils.ParseException(
+                    KeyboardBuilder.TAG_KEY_STYLE + " has no styleName attribute", parser);
+        }
         if (DEBUG) {
             Log.d(TAG, String.format("<%s styleName=%s />",
                     KeyboardBuilder.TAG_KEY_STYLE, styleName));
             if (mStyles.containsKey(styleName)) {
-                Log.d(TAG, "key-style " + styleName + " is overridden at "
+                Log.d(TAG, KeyboardBuilder.TAG_KEY_STYLE + " " + styleName + " is overridden at "
                         + parser.getPositionDescription());
             }
         }
 
-        String parentStyleName = EMPTY_STYLE_NAME;
-        if (keyStyleAttr.hasValue(R.styleable.Keyboard_KeyStyle_parentStyle)) {
-            parentStyleName = keyStyleAttr.getString(R.styleable.Keyboard_KeyStyle_parentStyle);
-            if (!mStyles.containsKey(parentStyleName)) {
-                throw new XmlParseUtils.ParseException(
-                        "Unknown parentStyle " + parentStyleName, parser);
-            }
+        final String parentStyleInAttr = keyStyleAttr.getString(
+                R.styleable.Keyboard_KeyStyle_parentStyle);
+        if (parentStyleInAttr != null && !mStyles.containsKey(parentStyleInAttr)) {
+            throw new XmlParseUtils.ParseException(
+                    "Unknown parentStyle " + parentStyleInAttr, parser);
         }
+        final String parentStyleName = (parentStyleInAttr == null) ? EMPTY_STYLE_NAME
+                : parentStyleInAttr;
         final DeclaredKeyStyle style = new DeclaredKeyStyle(parentStyleName, mTextsSet, mStyles);
         style.readKeyAttributes(keyAttrs);
         mStyles.put(styleName, style);
     }
 
+    @Nonnull
     public KeyStyle getKeyStyle(final TypedArray keyAttr, final XmlPullParser parser)
             throws XmlParseUtils.ParseException {
-        if (!keyAttr.hasValue(R.styleable.Keyboard_Key_keyStyle)) {
+        final String styleName = keyAttr.getString(R.styleable.Keyboard_Key_keyStyle);
+        if (styleName == null) {
             return mEmptyKeyStyle;
         }
-        final String styleName = keyAttr.getString(R.styleable.Keyboard_Key_keyStyle);
-        if (!mStyles.containsKey(styleName)) {
+        final KeyStyle style = mStyles.get(styleName);
+        if (style == null) {
             throw new XmlParseUtils.ParseException("Unknown key style: " + styleName, parser);
         }
-        return mStyles.get(styleName);
+        return style;
     }
 }
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyVisualAttributes.java b/java/src/com/android/inputmethod/keyboard/internal/KeyVisualAttributes.java
index c60d587..6f000d2 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyVisualAttributes.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyVisualAttributes.java
@@ -23,7 +23,11 @@
 import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.utils.ResourceUtils;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 public final class KeyVisualAttributes {
+    @Nullable
     public final Typeface mTypeface;
 
     public final float mLetterRatio;
@@ -81,7 +85,8 @@
         }
     }
 
-    public static KeyVisualAttributes newInstance(final TypedArray keyAttr) {
+    @Nullable
+    public static KeyVisualAttributes newInstance(@Nonnull final TypedArray keyAttr) {
         final int indexCount = keyAttr.getIndexCount();
         for (int i = 0; i < indexCount; i++) {
             final int attrId = keyAttr.getIndex(i);
@@ -93,7 +98,7 @@
         return null;
     }
 
-    private KeyVisualAttributes(final TypedArray keyAttr) {
+    private KeyVisualAttributes(@Nonnull final TypedArray keyAttr) {
         if (keyAttr.hasValue(R.styleable.Keyboard_Key_keyTypeface)) {
             mTypeface = Typeface.defaultFromStyle(
                     keyAttr.getInt(R.styleable.Keyboard_Key_keyTypeface, Typeface.NORMAL));
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java
index fa41927..0eabf6c 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java
@@ -32,11 +32,10 @@
 import com.android.inputmethod.keyboard.Keyboard;
 import com.android.inputmethod.keyboard.KeyboardId;
 import com.android.inputmethod.keyboard.KeyboardTheme;
-import com.android.inputmethod.latin.Constants;
 import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.StringUtils;
 import com.android.inputmethod.latin.utils.ResourceUtils;
-import com.android.inputmethod.latin.utils.StringUtils;
-import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 import com.android.inputmethod.latin.utils.XmlParseUtils;
 import com.android.inputmethod.latin.utils.XmlParseUtils.ParseException;
 
@@ -45,6 +44,9 @@
 
 import java.io.IOException;
 import java.util.Arrays;
+import java.util.Locale;
+
+import javax.annotation.Nonnull;
 
 /**
  * Keyboard Building helper.
@@ -137,6 +139,7 @@
     private static final int DEFAULT_KEYBOARD_COLUMNS = 10;
     private static final int DEFAULT_KEYBOARD_ROWS = 4;
 
+    @Nonnull
     protected final KP mParams;
     protected final Context mContext;
     protected final Resources mResources;
@@ -147,7 +150,7 @@
     private boolean mTopEdge;
     private Key mRightEdgeKey = null;
 
-    public KeyboardBuilder(final Context context, final KP params) {
+    public KeyboardBuilder(final Context context, @Nonnull final KP params) {
         mContext = context;
         final Resources res = context.getResources();
         mResources = res;
@@ -158,8 +161,8 @@
         params.GRID_HEIGHT = res.getInteger(R.integer.config_keyboard_grid_height);
     }
 
-    public void setAutoGenerate(final KeysCache keysCache) {
-        mParams.mKeysCache = keysCache;
+    public void setAllowRedundantMoreKes(final boolean enabled) {
+        mParams.mAllowRedundantMoreKeys = enabled;
     }
 
     public KeyboardBuilder<KP> load(final int xmlId, final KeyboardId id) {
@@ -188,6 +191,7 @@
         mParams.mProximityCharsCorrectionEnabled = enabled;
     }
 
+    @Nonnull
     public Keyboard build() {
         return new Keyboard(mParams);
     }
@@ -277,7 +281,7 @@
 
             params.mThemeId = keyboardAttr.getInt(R.styleable.Keyboard_themeId, 0);
             params.mIconsSet.loadIcons(keyboardAttr);
-            params.mTextsSet.setLocale(params.mId.mLocale, mContext);
+            params.mTextsSet.setLocale(params.mId.getLocale(), mContext);
 
             final int resourceId = keyboardAttr.getResourceId(
                     R.styleable.Keyboard_touchPositionCorrectionData, 0);
@@ -640,7 +644,7 @@
         try {
             final boolean keyboardLayoutSetMatched = matchString(caseAttr,
                     R.styleable.Keyboard_Case_keyboardLayoutSet,
-                    SubtypeLocaleUtils.getKeyboardLayoutSetName(id.mSubtype));
+                    id.mSubtype.getKeyboardLayoutSetName());
             final boolean keyboardLayoutSetElementMatched = matchTypedValue(caseAttr,
                     R.styleable.Keyboard_Case_keyboardLayoutSetElement, id.mElementId,
                     KeyboardId.elementIdToName(id.mElementId));
@@ -668,21 +672,22 @@
                     R.styleable.Keyboard_Case_imeAction, id.imeAction());
             final boolean isIconDefinedMatched = isIconDefined(caseAttr,
                     R.styleable.Keyboard_Case_isIconDefined, mParams.mIconsSet);
-            final boolean localeCodeMatched = matchString(caseAttr,
-                    R.styleable.Keyboard_Case_localeCode, id.mLocale.toString());
-            final boolean languageCodeMatched = matchString(caseAttr,
-                    R.styleable.Keyboard_Case_languageCode, id.mLocale.getLanguage());
-            final boolean countryCodeMatched = matchString(caseAttr,
-                    R.styleable.Keyboard_Case_countryCode, id.mLocale.getCountry());
+            final Locale locale = id.getLocale();
+            final boolean localeCodeMatched = matchLocaleCodes(caseAttr, locale);
+            final boolean languageCodeMatched = matchLanguageCodes(caseAttr, locale);
+            final boolean countryCodeMatched = matchCountryCodes(caseAttr, locale);
+            final boolean splitLayoutMatched = matchBoolean(caseAttr,
+                    R.styleable.Keyboard_Case_isSplitLayout, id.mIsSplitLayout);
             final boolean selected = keyboardLayoutSetMatched && keyboardLayoutSetElementMatched
                     && keyboardThemeMacthed && modeMatched && navigateNextMatched
                     && navigatePreviousMatched && passwordInputMatched && clobberSettingsKeyMatched
                     && hasShortcutKeyMatched  && languageSwitchKeyEnabledMatched
                     && isMultiLineMatched && imeActionMatched && isIconDefinedMatched
-                    && localeCodeMatched && languageCodeMatched && countryCodeMatched;
+                    && localeCodeMatched && languageCodeMatched && countryCodeMatched
+                    && splitLayoutMatched;
 
             if (DEBUG) {
-                startTag("<%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s>%s", TAG_CASE,
+                startTag("<%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s>%s", TAG_CASE,
                         textAttr(caseAttr.getString(
                                 R.styleable.Keyboard_Case_keyboardLayoutSet), "keyboardLayoutSet"),
                         textAttr(caseAttr.getString(
@@ -707,6 +712,8 @@
                                 "languageSwitchKeyEnabled"),
                         booleanAttr(caseAttr, R.styleable.Keyboard_Case_isMultiLine,
                                 "isMultiLine"),
+                        booleanAttr(caseAttr, R.styleable.Keyboard_Case_isSplitLayout,
+                                "splitLayout"),
                         textAttr(caseAttr.getString(R.styleable.Keyboard_Case_isIconDefined),
                                 "isIconDefined"),
                         textAttr(caseAttr.getString(R.styleable.Keyboard_Case_localeCode),
@@ -724,6 +731,18 @@
         }
     }
 
+    private static boolean matchLocaleCodes(TypedArray caseAttr, final Locale locale) {
+        return matchString(caseAttr, R.styleable.Keyboard_Case_localeCode, locale.toString());
+    }
+
+    private static boolean matchLanguageCodes(TypedArray caseAttr, Locale locale) {
+        return matchString(caseAttr, R.styleable.Keyboard_Case_languageCode, locale.getLanguage());
+    }
+
+    private static boolean matchCountryCodes(TypedArray caseAttr, Locale locale) {
+        return matchString(caseAttr, R.styleable.Keyboard_Case_countryCode, locale.getCountry());
+    }
+
     private static boolean matchInteger(final TypedArray a, final int index, final int value) {
         // If <case> does not have "index" attribute, that means this <case> is wild-card for
         // the attribute.
@@ -833,7 +852,7 @@
         mTopEdge = false;
     }
 
-    private void endKey(final Key key) {
+    private void endKey(@Nonnull final Key key) {
         mParams.onAddKey(key);
         if (mLeftEdge) {
             key.markAsLeftEdge(mParams);
@@ -846,6 +865,7 @@
     }
 
     private void endKeyboard() {
+        mParams.removeRedundantMoreKeys();
         // {@link #parseGridRows(XmlPullParser,boolean)} may populate keyboard rows higher than
         // previously expected.
         final int actualHeight = mCurrentY - mParams.mVerticalGap + mParams.mBottomPadding;
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardCodesSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardCodesSet.java
index 62b69dc..05b4c74 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardCodesSet.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardCodesSet.java
@@ -16,7 +16,7 @@
 
 package com.android.inputmethod.keyboard.internal;
 
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.common.Constants;
 
 import java.util.HashMap;
 
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java
index e1f302c..15a5bd4 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java
@@ -26,6 +26,9 @@
 
 import java.util.HashMap;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 public final class KeyboardIconsSet {
     private static final String TAG = KeyboardIconsSet.class.getSimpleName();
 
@@ -127,6 +130,7 @@
         return iconId >= 0 && iconId < ICON_NAMES.length;
     }
 
+    @Nonnull
     public static String getIconName(final int iconId) {
         return isValidIconId(iconId) ? ICON_NAMES[iconId] : "unknown<" + iconId + ">";
     }
@@ -147,6 +151,7 @@
         throw new RuntimeException("unknown icon name: " + name);
     }
 
+    @Nullable
     public Drawable getIconDrawable(final int iconId) {
         if (isValidIconId(iconId)) {
             return mIcons[iconId];
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java
index 5df9d3e..738d6a4 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java
@@ -20,13 +20,16 @@
 
 import com.android.inputmethod.keyboard.Key;
 import com.android.inputmethod.keyboard.KeyboardId;
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.common.Constants;
 
 import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.SortedSet;
 import java.util.TreeSet;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 public class KeyboardParams {
     public KeyboardId mId;
     public int mThemeId;
@@ -46,6 +49,7 @@
     public int mLeftPadding;
     public int mRightPadding;
 
+    @Nullable
     public KeyVisualAttributes mKeyVisualAttributes;
 
     public int mDefaultRowHeight;
@@ -60,20 +64,29 @@
     public int GRID_HEIGHT;
 
     // Keys are sorted from top-left to bottom-right order.
+    @Nonnull
     public final SortedSet<Key> mSortedKeys = new TreeSet<>(ROW_COLUMN_COMPARATOR);
+    @Nonnull
     public final ArrayList<Key> mShiftKeys = new ArrayList<>();
+    @Nonnull
     public final ArrayList<Key> mAltCodeKeysWhileTyping = new ArrayList<>();
+    @Nonnull
     public final KeyboardIconsSet mIconsSet = new KeyboardIconsSet();
+    @Nonnull
     public final KeyboardTextsSet mTextsSet = new KeyboardTextsSet();
+    @Nonnull
     public final KeyStylesSet mKeyStyles = new KeyStylesSet(mTextsSet);
 
-    public KeysCache mKeysCache;
+    @Nonnull
+    private final UniqueKeysCache mUniqueKeysCache;
+    public boolean mAllowRedundantMoreKeys;
 
     public int mMostCommonKeyHeight = 0;
     public int mMostCommonKeyWidth = 0;
 
     public boolean mProximityCharsCorrectionEnabled;
 
+    @Nonnull
     public final TouchPositionCorrection mTouchPositionCorrection =
             new TouchPositionCorrection();
 
@@ -89,14 +102,22 @@
         }
     };
 
+    public KeyboardParams() {
+        this(UniqueKeysCache.NO_CACHE);
+    }
+
+    public KeyboardParams(@Nonnull final UniqueKeysCache keysCache) {
+        mUniqueKeysCache = keysCache;
+    }
+
     protected void clearKeys() {
         mSortedKeys.clear();
         mShiftKeys.clear();
         clearHistogram();
     }
 
-    public void onAddKey(final Key newKey) {
-        final Key key = (mKeysCache != null) ? mKeysCache.get(newKey) : newKey;
+    public void onAddKey(@Nonnull final Key newKey) {
+        final Key key = mUniqueKeysCache.getUniqueKey(newKey);
         final boolean isSpacer = key.isSpacer();
         if (isSpacer && key.getWidth() == 0) {
             // Ignore zero width {@link Spacer}.
@@ -115,6 +136,23 @@
         }
     }
 
+    public void removeRedundantMoreKeys() {
+        if (mAllowRedundantMoreKeys) {
+            return;
+        }
+        final MoreKeySpec.LettersOnBaseLayout lettersOnBaseLayout =
+                new MoreKeySpec.LettersOnBaseLayout();
+        for (final Key key : mSortedKeys) {
+            lettersOnBaseLayout.addLetter(key);
+        }
+        final ArrayList<Key> allKeys = new ArrayList<>(mSortedKeys);
+        mSortedKeys.clear();
+        for (final Key key : allKeys) {
+            final Key filteredKey = Key.removeRedundantMoreKeys(key, lettersOnBaseLayout);
+            mSortedKeys.add(mUniqueKeysCache.getUniqueKey(filteredKey));
+        }
+    }
+
     private int mMaxHeightCount = 0;
     private int mMaxWidthCount = 0;
     private final SparseIntArray mHeightHistogram = new SparseIntArray();
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java
index b98ced9..973e956 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java
@@ -19,7 +19,9 @@
 import android.text.TextUtils;
 import android.util.Log;
 
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.event.Event;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.utils.CapsModeUtils;
 import com.android.inputmethod.latin.utils.RecapitalizeStatus;
 
 /**
@@ -29,7 +31,7 @@
  *
  * The input events are {@link #onLoadKeyboard(int, int)}, {@link #onSaveKeyboardState()},
  * {@link #onPressKey(int,boolean,int,int)}, {@link #onReleaseKey(int,boolean,int,int)},
- * {@link #onCodeInput(int,int,int)}, {@link #onFinishSlidingInput(int,int)},
+ * {@link #onEvent(Event,int,int)}, {@link #onFinishSlidingInput(int,int)},
  * {@link #onUpdateShiftState(int,int)}, {@link #onResetKeyboardStateToAlphabet(int,int)}.
  *
  * The actions are {@link SwitchActions}'s methods.
@@ -37,9 +39,11 @@
 public final class KeyboardState {
     private static final String TAG = KeyboardState.class.getSimpleName();
     private static final boolean DEBUG_EVENT = false;
-    private static final boolean DEBUG_ACTION = false;
+    private static final boolean DEBUG_INTERNAL_ACTION = false;
 
     public interface SwitchActions {
+        public static final boolean DEBUG_ACTION = false;
+
         public void setAlphabetKeyboard();
         public void setAlphabetManualShiftedKeyboard();
         public void setAlphabetAutomaticShiftedKeyboard();
@@ -52,8 +56,9 @@
         /**
          * Request to call back {@link KeyboardState#onUpdateShiftState(int, int)}.
          */
-        public void requestUpdatingShiftState(final int currentAutoCapsState,
-                final int currentRecapitalizeState);
+        public void requestUpdatingShiftState(final int autoCapsFlags, final int recapitalizeMode);
+
+        public static final boolean DEBUG_TIMER_ACTION = false;
 
         public void startDoubleTapShiftKeyTimer();
         public boolean isInDoubleTapShiftKeyTimeout();
@@ -101,15 +106,17 @@
 
         @Override
         public String toString() {
-            if (!mIsValid) return "INVALID";
-            if (mIsAlphabetMode) {
-                if (mIsAlphabetShiftLocked) return "ALPHABET_SHIFT_LOCKED";
-                return "ALPHABET_" + shiftModeToString(mShiftMode);
-            } else if (mIsEmojiMode) {
-                return "EMOJI";
-            } else {
-                return "SYMBOLS_" + shiftModeToString(mShiftMode);
+            if (!mIsValid) {
+                return "INVALID";
             }
+            if (mIsAlphabetMode) {
+                return mIsAlphabetShiftLocked ? "ALPHABET_SHIFT_LOCKED"
+                        : "ALPHABET_" + shiftModeToString(mShiftMode);
+            }
+            if (mIsEmojiMode) {
+                return "EMOJI";
+            }
+            return "SYMBOLS_" + shiftModeToString(mShiftMode);
         }
     }
 
@@ -118,10 +125,9 @@
         mRecapitalizeMode = RecapitalizeStatus.NOT_A_RECAPITALIZE_MODE;
     }
 
-    public void onLoadKeyboard(final int currentAutoCapsState,
-            final int currentRecapitalizeState) {
+    public void onLoadKeyboard(final int autoCapsFlags, final int recapitalizeMode) {
         if (DEBUG_EVENT) {
-            Log.d(TAG, "onLoadKeyboard: " + this);
+            Log.d(TAG, "onLoadKeyboard: " + stateToString(autoCapsFlags, recapitalizeMode));
         }
         // Reset alphabet shift state.
         mAlphabetShiftState.setShiftLocked(false);
@@ -129,9 +135,16 @@
         mPrevSymbolsKeyboardWasShifted = false;
         mShiftKeyState.onRelease();
         mSymbolKeyState.onRelease();
-        onRestoreKeyboardState(currentAutoCapsState, currentRecapitalizeState);
+        if (mSavedKeyboardState.mIsValid) {
+            onRestoreKeyboardState(autoCapsFlags, recapitalizeMode);
+            mSavedKeyboardState.mIsValid = false;
+        } else {
+            // Reset keyboard to alphabet mode.
+            setAlphabetKeyboard(autoCapsFlags, recapitalizeMode);
+        }
     }
 
+    // Constants for {@link SavedKeyboardState#mShiftMode} and {@link #setShifted(int)}.
     private static final int UNSHIFT = 0;
     private static final int MANUAL_SHIFT = 1;
     private static final int AUTOMATIC_SHIFT = 2;
@@ -155,39 +168,35 @@
         }
     }
 
-    private void onRestoreKeyboardState(final int currentAutoCapsState,
-            final int currentRecapitalizeState) {
+    private void onRestoreKeyboardState(final int autoCapsFlags, final int recapitalizeMode) {
         final SavedKeyboardState state = mSavedKeyboardState;
         if (DEBUG_EVENT) {
-            Log.d(TAG, "onRestoreKeyboardState: saved=" + state + " " + this);
+            Log.d(TAG, "onRestoreKeyboardState: saved=" + state
+                    + " " + stateToString(autoCapsFlags, recapitalizeMode));
         }
-        if (!state.mIsValid || state.mIsAlphabetMode) {
-            setAlphabetKeyboard(currentAutoCapsState, currentRecapitalizeState);
-        } else if (state.mIsEmojiMode) {
-            setEmojiKeyboard();
-        } else {
-            if (state.mShiftMode == MANUAL_SHIFT) {
-                setSymbolsShiftedKeyboard();
-            } else {
-                setSymbolsKeyboard();
-            }
-        }
-
-        if (!state.mIsValid) return;
-        state.mIsValid = false;
-
+        mPrevMainKeyboardWasShiftLocked = state.mIsAlphabetShiftLocked;
         if (state.mIsAlphabetMode) {
+            setAlphabetKeyboard(autoCapsFlags, recapitalizeMode);
             setShiftLocked(state.mIsAlphabetShiftLocked);
             if (!state.mIsAlphabetShiftLocked) {
                 setShifted(state.mShiftMode);
             }
+            return;
+        }
+        if (state.mIsEmojiMode) {
+            setEmojiKeyboard();
+            return;
+        }
+        // Symbol mode
+        if (state.mShiftMode == MANUAL_SHIFT) {
+            setSymbolsShiftedKeyboard();
         } else {
-            mPrevMainKeyboardWasShiftLocked = state.mIsAlphabetShiftLocked;
+            setSymbolsKeyboard();
         }
     }
 
     private void setShifted(final int shiftMode) {
-        if (DEBUG_ACTION) {
+        if (DEBUG_INTERNAL_ACTION) {
             Log.d(TAG, "setShifted: shiftMode=" + shiftModeToString(shiftMode) + " " + this);
         }
         if (!mIsAlphabetMode) return;
@@ -226,7 +235,7 @@
     }
 
     private void setShiftLocked(final boolean shiftLocked) {
-        if (DEBUG_ACTION) {
+        if (DEBUG_INTERNAL_ACTION) {
             Log.d(TAG, "setShiftLocked: shiftLocked=" + shiftLocked + " " + this);
         }
         if (!mIsAlphabetMode) return;
@@ -240,10 +249,10 @@
         mAlphabetShiftState.setShiftLocked(shiftLocked);
     }
 
-    private void toggleAlphabetAndSymbols(final int currentAutoCapsState,
-            final int currentRecapitalizeState) {
-        if (DEBUG_ACTION) {
-            Log.d(TAG, "toggleAlphabetAndSymbols: " + this);
+    private void toggleAlphabetAndSymbols(final int autoCapsFlags, final int recapitalizeMode) {
+        if (DEBUG_INTERNAL_ACTION) {
+            Log.d(TAG, "toggleAlphabetAndSymbols: "
+                    + stateToString(autoCapsFlags, recapitalizeMode));
         }
         if (mIsAlphabetMode) {
             mPrevMainKeyboardWasShiftLocked = mAlphabetShiftState.isShiftLocked();
@@ -255,7 +264,7 @@
             mPrevSymbolsKeyboardWasShifted = false;
         } else {
             mPrevSymbolsKeyboardWasShifted = mIsSymbolShifted;
-            setAlphabetKeyboard(currentAutoCapsState, currentRecapitalizeState);
+            setAlphabetKeyboard(autoCapsFlags, recapitalizeMode);
             if (mPrevMainKeyboardWasShiftLocked) {
                 setShiftLocked(true);
             }
@@ -265,15 +274,15 @@
 
     // TODO: Remove this method. Come up with a more comprehensive way to reset the keyboard layout
     // when a keyboard layout set doesn't get reloaded in LatinIME.onStartInputViewInternal().
-    private void resetKeyboardStateToAlphabet(final int currentAutoCapsState,
-            final int currentRecapitalizeState) {
-        if (DEBUG_ACTION) {
-            Log.d(TAG, "resetKeyboardStateToAlphabet: " + this);
+    private void resetKeyboardStateToAlphabet(final int autoCapsFlags, final int recapitalizeMode) {
+        if (DEBUG_INTERNAL_ACTION) {
+            Log.d(TAG, "resetKeyboardStateToAlphabet: "
+                    + stateToString(autoCapsFlags, recapitalizeMode));
         }
         if (mIsAlphabetMode) return;
 
         mPrevSymbolsKeyboardWasShifted = mIsSymbolShifted;
-        setAlphabetKeyboard(currentAutoCapsState, currentRecapitalizeState);
+        setAlphabetKeyboard(autoCapsFlags, recapitalizeMode);
         if (mPrevMainKeyboardWasShiftLocked) {
             setShiftLocked(true);
         }
@@ -288,10 +297,9 @@
         }
     }
 
-    private void setAlphabetKeyboard(final int currentAutoCapsState,
-            final int currentRecapitalizeState) {
-        if (DEBUG_ACTION) {
-            Log.d(TAG, "setAlphabetKeyboard");
+    private void setAlphabetKeyboard(final int autoCapsFlags, final int recapitalizeMode) {
+        if (DEBUG_INTERNAL_ACTION) {
+            Log.d(TAG, "setAlphabetKeyboard: " + stateToString(autoCapsFlags, recapitalizeMode));
         }
 
         mSwitchActions.setAlphabetKeyboard();
@@ -300,11 +308,11 @@
         mIsSymbolShifted = false;
         mRecapitalizeMode = RecapitalizeStatus.NOT_A_RECAPITALIZE_MODE;
         mSwitchState = SWITCH_STATE_ALPHA;
-        mSwitchActions.requestUpdatingShiftState(currentAutoCapsState, currentRecapitalizeState);
+        mSwitchActions.requestUpdatingShiftState(autoCapsFlags, recapitalizeMode);
     }
 
     private void setSymbolsKeyboard() {
-        if (DEBUG_ACTION) {
+        if (DEBUG_INTERNAL_ACTION) {
             Log.d(TAG, "setSymbolsKeyboard");
         }
         mSwitchActions.setSymbolsKeyboard();
@@ -317,7 +325,7 @@
     }
 
     private void setSymbolsShiftedKeyboard() {
-        if (DEBUG_ACTION) {
+        if (DEBUG_INTERNAL_ACTION) {
             Log.d(TAG, "setSymbolsShiftedKeyboard");
         }
         mSwitchActions.setSymbolsShiftedKeyboard();
@@ -330,7 +338,7 @@
     }
 
     private void setEmojiKeyboard() {
-        if (DEBUG_ACTION) {
+        if (DEBUG_INTERNAL_ACTION) {
             Log.d(TAG, "setEmojiKeyboard");
         }
         mIsAlphabetMode = false;
@@ -342,11 +350,12 @@
         mSwitchActions.setEmojiKeyboard();
     }
 
-    public void onPressKey(final int code, final boolean isSinglePointer,
-            final int currentAutoCapsState, final int currentRecapitalizeState) {
+    public void onPressKey(final int code, final boolean isSinglePointer, final int autoCapsFlags,
+            final int recapitalizeMode) {
         if (DEBUG_EVENT) {
-            Log.d(TAG, "onPressKey: code=" + Constants.printableCode(code) + " single="
-                    + isSinglePointer + " autoCaps=" + currentAutoCapsState + " " + this);
+            Log.d(TAG, "onPressKey: code=" + Constants.printableCode(code)
+                    + " single=" + isSinglePointer
+                    + " " + stateToString(autoCapsFlags, recapitalizeMode));
         }
         if (code != Constants.CODE_SHIFT) {
             // Because the double tap shift key timer is to detect two consecutive shift key press,
@@ -358,7 +367,7 @@
         } else if (code == Constants.CODE_CAPSLOCK) {
             // Nothing to do here. See {@link #onReleaseKey(int,boolean)}.
         } else if (code == Constants.CODE_SWITCH_ALPHA_SYMBOL) {
-            onPressSymbol(currentAutoCapsState, currentRecapitalizeState);
+            onPressSymbol(autoCapsFlags, recapitalizeMode);
         } else {
             mShiftKeyState.onOtherKeyPressed();
             mSymbolKeyState.onOtherKeyPressed();
@@ -371,7 +380,7 @@
             // off because, for example, we may be in the #1 state within the manual temporary
             // shifted mode.
             if (!isSinglePointer && mIsAlphabetMode
-                    && currentAutoCapsState != TextUtils.CAP_MODE_CHARACTERS) {
+                    && autoCapsFlags != TextUtils.CAP_MODE_CHARACTERS) {
                 final boolean needsToResetAutoCaps = mAlphabetShiftState.isAutomaticShifted()
                         || (mAlphabetShiftState.isManualShifted() && mShiftKeyState.isReleasing());
                 if (needsToResetAutoCaps) {
@@ -381,34 +390,35 @@
         }
     }
 
-    public void onReleaseKey(final int code, final boolean withSliding,
-            final int currentAutoCapsState, final int currentRecapitalizeState) {
+    public void onReleaseKey(final int code, final boolean withSliding, final int autoCapsFlags,
+            final int recapitalizeMode) {
         if (DEBUG_EVENT) {
             Log.d(TAG, "onReleaseKey: code=" + Constants.printableCode(code)
-                    + " sliding=" + withSliding + " " + this);
+                    + " sliding=" + withSliding
+                    + " " + stateToString(autoCapsFlags, recapitalizeMode));
         }
         if (code == Constants.CODE_SHIFT) {
-            onReleaseShift(withSliding, currentAutoCapsState, currentRecapitalizeState);
+            onReleaseShift(withSliding, autoCapsFlags, recapitalizeMode);
         } else if (code == Constants.CODE_CAPSLOCK) {
             setShiftLocked(!mAlphabetShiftState.isShiftLocked());
         } else if (code == Constants.CODE_SWITCH_ALPHA_SYMBOL) {
-            onReleaseSymbol(withSliding, currentAutoCapsState, currentRecapitalizeState);
+            onReleaseSymbol(withSliding, autoCapsFlags, recapitalizeMode);
         }
     }
 
-    private void onPressSymbol(final int currentAutoCapsState,
-            final int currentRecapitalizeState) {
-        toggleAlphabetAndSymbols(currentAutoCapsState, currentRecapitalizeState);
+    private void onPressSymbol(final int autoCapsFlags,
+            final int recapitalizeMode) {
+        toggleAlphabetAndSymbols(autoCapsFlags, recapitalizeMode);
         mSymbolKeyState.onPress();
         mSwitchState = SWITCH_STATE_MOMENTARY_ALPHA_AND_SYMBOL;
     }
 
-    private void onReleaseSymbol(final boolean withSliding, final int currentAutoCapsState,
-            final int currentRecapitalizeState) {
+    private void onReleaseSymbol(final boolean withSliding, final int autoCapsFlags,
+            final int recapitalizeMode) {
         if (mSymbolKeyState.isChording()) {
             // Switch back to the previous keyboard mode if the user chords the mode change key and
             // another key, then releases the mode change key.
-            toggleAlphabetAndSymbols(currentAutoCapsState, currentRecapitalizeState);
+            toggleAlphabetAndSymbols(autoCapsFlags, recapitalizeMode);
         } else if (!withSliding) {
             // If the mode change key is being released without sliding, we should forget the
             // previous symbols keyboard shift state and simply switch back to symbols layout
@@ -418,23 +428,23 @@
         mSymbolKeyState.onRelease();
     }
 
-    public void onUpdateShiftState(final int autoCaps, final int recapitalizeMode) {
+    public void onUpdateShiftState(final int autoCapsFlags, final int recapitalizeMode) {
         if (DEBUG_EVENT) {
-            Log.d(TAG, "onUpdateShiftState: autoCaps=" + autoCaps + ", recapitalizeMode="
-                    + recapitalizeMode + " " + this);
+            Log.d(TAG, "onUpdateShiftState: " + stateToString(autoCapsFlags, recapitalizeMode));
         }
         mRecapitalizeMode = recapitalizeMode;
-        updateAlphabetShiftState(autoCaps, recapitalizeMode);
+        updateAlphabetShiftState(autoCapsFlags, recapitalizeMode);
     }
 
     // TODO: Remove this method. Come up with a more comprehensive way to reset the keyboard layout
     // when a keyboard layout set doesn't get reloaded in LatinIME.onStartInputViewInternal().
-    public void onResetKeyboardStateToAlphabet(final int currentAutoCapsState,
-            final int currentRecapitalizeState) {
+    public void onResetKeyboardStateToAlphabet(final int autoCapsFlags,
+            final int recapitalizeMode) {
         if (DEBUG_EVENT) {
-            Log.d(TAG, "onResetKeyboardStateToAlphabet: " + this);
+            Log.d(TAG, "onResetKeyboardStateToAlphabet: "
+                    + stateToString(autoCapsFlags, recapitalizeMode));
         }
-        resetKeyboardStateToAlphabet(currentAutoCapsState, currentRecapitalizeState);
+        resetKeyboardStateToAlphabet(autoCapsFlags, recapitalizeMode);
     }
 
     private void updateShiftStateForRecapitalize(final int recapitalizeMode) {
@@ -452,7 +462,7 @@
         }
     }
 
-    private void updateAlphabetShiftState(final int autoCaps, final int recapitalizeMode) {
+    private void updateAlphabetShiftState(final int autoCapsFlags, final int recapitalizeMode) {
         if (!mIsAlphabetMode) return;
         if (RecapitalizeStatus.NOT_A_RECAPITALIZE_MODE != recapitalizeMode) {
             // We are recapitalizing. Match the keyboard to the current recapitalize state.
@@ -465,7 +475,7 @@
             return;
         }
         if (!mAlphabetShiftState.isShiftLocked() && !mShiftKeyState.isIgnoring()) {
-            if (mShiftKeyState.isReleasing() && autoCaps != Constants.TextUtils.CAP_MODE_OFF) {
+            if (mShiftKeyState.isReleasing() && autoCapsFlags != Constants.TextUtils.CAP_MODE_OFF) {
                 // Only when shift key is releasing, automatic temporary upper case will be set.
                 setShifted(AUTOMATIC_SHIFT);
             } else {
@@ -525,8 +535,8 @@
         }
     }
 
-    private void onReleaseShift(final boolean withSliding, final int currentAutoCapsState,
-            final int currentRecapitalizeState) {
+    private void onReleaseShift(final boolean withSliding, final int autoCapsFlags,
+            final int recapitalizeMode) {
         if (RecapitalizeStatus.NOT_A_RECAPITALIZE_MODE != mRecapitalizeMode) {
             // We are recapitalizing. We should match the keyboard state to the recapitalize
             // state in priority.
@@ -549,8 +559,7 @@
                 // After chording input, automatic shift state may have been changed depending on
                 // what characters were input.
                 mShiftKeyState.onRelease();
-                mSwitchActions.requestUpdatingShiftState(currentAutoCapsState,
-                        currentRecapitalizeState);
+                mSwitchActions.requestUpdatingShiftState(autoCapsFlags, recapitalizeMode);
                 return;
             } else if (mAlphabetShiftState.isShiftLockShifted() && withSliding) {
                 // In shift locked state, shift has been pressed and slid out to other key.
@@ -587,21 +596,20 @@
         mShiftKeyState.onRelease();
     }
 
-    public void onFinishSlidingInput(final int currentAutoCapsState,
-            final int currentRecapitalizeState) {
+    public void onFinishSlidingInput(final int autoCapsFlags, final int recapitalizeMode) {
         if (DEBUG_EVENT) {
-            Log.d(TAG, "onFinishSlidingInput: " + this);
+            Log.d(TAG, "onFinishSlidingInput: " + stateToString(autoCapsFlags, recapitalizeMode));
         }
         // Switch back to the previous keyboard mode if the user cancels sliding input.
         switch (mSwitchState) {
         case SWITCH_STATE_MOMENTARY_ALPHA_AND_SYMBOL:
-            toggleAlphabetAndSymbols(currentAutoCapsState, currentRecapitalizeState);
+            toggleAlphabetAndSymbols(autoCapsFlags, recapitalizeMode);
             break;
         case SWITCH_STATE_MOMENTARY_SYMBOL_AND_MORE:
             toggleShiftInSymbols();
             break;
         case SWITCH_STATE_MOMENTARY_ALPHA_SHIFT:
-            setAlphabetKeyboard(currentAutoCapsState, currentRecapitalizeState);
+            setAlphabetKeyboard(autoCapsFlags, recapitalizeMode);
             break;
         }
     }
@@ -610,11 +618,11 @@
         return c == Constants.CODE_SPACE || c == Constants.CODE_ENTER;
     }
 
-    public void onCodeInput(final int code, final int currentAutoCapsState,
-            final int currentRecapitalizeState) {
+    public void onEvent(final Event event, final int autoCapsFlags, final int recapitalizeMode) {
+        final int code = event.isFunctionalKeyEvent() ? event.mKeyCode : event.mCodePoint;
         if (DEBUG_EVENT) {
-            Log.d(TAG, "onCodeInput: code=" + Constants.printableCode(code)
-                    + " autoCaps=" + currentAutoCapsState + " " + this);
+            Log.d(TAG, "onEvent: code=" + Constants.printableCode(code)
+                    + " " + stateToString(autoCapsFlags, recapitalizeMode));
         }
 
         switch (mSwitchState) {
@@ -650,7 +658,7 @@
             // Switch back to alpha keyboard mode if user types one or more non-space/enter
             // characters followed by a space/enter.
             if (isSpaceOrEnter(code)) {
-                toggleAlphabetAndSymbols(currentAutoCapsState, currentRecapitalizeState);
+                toggleAlphabetAndSymbols(autoCapsFlags, recapitalizeMode);
                 mPrevSymbolsKeyboardWasShifted = false;
             }
             break;
@@ -658,11 +666,11 @@
 
         // If the code is a letter, update keyboard shift state.
         if (Constants.isLetterCode(code)) {
-            updateAlphabetShiftState(currentAutoCapsState, currentRecapitalizeState);
+            updateAlphabetShiftState(autoCapsFlags, recapitalizeMode);
         } else if (code == Constants.CODE_EMOJI) {
             setEmojiKeyboard();
         } else if (code == Constants.CODE_ALPHA_FROM_EMOJI) {
-            setAlphabetKeyboard(currentAutoCapsState, currentRecapitalizeState);
+            setAlphabetKeyboard(autoCapsFlags, recapitalizeMode);
         }
     }
 
@@ -695,4 +703,9 @@
                 + " symbol=" + mSymbolKeyState
                 + " switch=" + switchStateToString(mSwitchState) + "]";
     }
+
+    private String stateToString(final int autoCapsFlags, final int recapitalizeMode) {
+        return this + " autoCapsFlags=" + CapsModeUtils.flagsToString(autoCapsFlags)
+                + " recapitalizeMode=" + RecapitalizeStatus.modeToString(recapitalizeMode);
+    }
 }
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java
index cd6abee..0aaf6b4 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java
@@ -21,53 +21,46 @@
 import android.text.TextUtils;
 
 import com.android.inputmethod.annotations.UsedForTesting;
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.common.Constants;
 import com.android.inputmethod.latin.utils.RunInLocale;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
-import java.util.HashMap;
 import java.util.Locale;
 
+// TODO: Make this an immutable class.
 public final class KeyboardTextsSet {
     public static final String PREFIX_TEXT = "!text/";
+    private static final String PREFIX_RESOURCE = "!string/";
     public static final String SWITCH_TO_ALPHA_KEY_LABEL = "keylabel_to_alpha";
 
     private static final char BACKSLASH = Constants.CODE_BACKSLASH;
-    private static final int MAX_STRING_REFERENCE_INDIRECTION = 10;
+    private static final int MAX_REFERENCE_INDIRECTION = 10;
 
+    private Resources mResources;
+    private Locale mResourceLocale;
+    private String mResourcePackageName;
     private String[] mTextsTable;
-    // Resource name to text map.
-    private HashMap<String, String> mResourceNameToTextsMap = new HashMap<>();
 
     public void setLocale(final Locale locale, final Context context) {
-        mTextsTable = KeyboardTextsTable.getTextsTable(locale);
         final Resources res = context.getResources();
-        final int referenceId = context.getApplicationInfo().labelRes;
-        final String resourcePackageName = res.getResourcePackageName(referenceId);
-        final RunInLocale<Void> job = new RunInLocale<Void>() {
-            @Override
-            protected Void job(final Resources resource) {
-                loadStringResourcesInternal(res, RESOURCE_NAMES, resourcePackageName);
-                return null;
-            }
-        };
         // Null means the current system locale.
-        job.runInLocale(res,
-                SubtypeLocaleUtils.NO_LANGUAGE.equals(locale.toString()) ? null : locale);
+        final String resourcePackageName = res.getResourcePackageName(
+                context.getApplicationInfo().labelRes);
+        setLocale(locale, res, resourcePackageName);
     }
 
     @UsedForTesting
-    void loadStringResourcesInternal(final Resources res, final String[] resourceNames,
+    public void setLocale(final Locale locale, final Resources res,
             final String resourcePackageName) {
-        for (final String resName : resourceNames) {
-            final int resId = res.getIdentifier(resName, "string", resourcePackageName);
-            mResourceNameToTextsMap.put(resName, res.getString(resId));
-        }
+        mResources = res;
+        // Null means the current system locale.
+        mResourceLocale = SubtypeLocaleUtils.NO_LANGUAGE.equals(locale.toString()) ? null : locale;
+        mResourcePackageName = resourcePackageName;
+        mTextsTable = KeyboardTextsTable.getTextsTable(locale);
     }
 
     public String getText(final String name) {
-        final String text = mResourceNameToTextsMap.get(name);
-        return (text != null) ? text : KeyboardTextsTable.getText(name, mTextsTable);
+        return KeyboardTextsTable.getText(name, mTextsTable);
     }
 
     private static int searchTextNameEnd(final String text, final int start) {
@@ -93,13 +86,14 @@
         StringBuilder sb;
         do {
             level++;
-            if (level >= MAX_STRING_REFERENCE_INDIRECTION) {
-                throw new RuntimeException("Too many " + PREFIX_TEXT + "name indirection: " + text);
+            if (level >= MAX_REFERENCE_INDIRECTION) {
+                throw new RuntimeException("Too many " + PREFIX_TEXT + " or " + PREFIX_RESOURCE +
+                        " reference indirection: " + text);
             }
 
-            final int prefixLen = PREFIX_TEXT.length();
+            final int prefixLength = PREFIX_TEXT.length();
             final int size = text.length();
-            if (size < prefixLen) {
+            if (size < prefixLength) {
                 break;
             }
 
@@ -110,10 +104,12 @@
                     if (sb == null) {
                         sb = new StringBuilder(text.substring(0, pos));
                     }
-                    final int end = searchTextNameEnd(text, pos + prefixLen);
-                    final String name = text.substring(pos + prefixLen, end);
-                    sb.append(getText(name));
-                    pos = end - 1;
+                    pos = expandReference(text, pos, PREFIX_TEXT, sb);
+                } else if (text.startsWith(PREFIX_RESOURCE, pos)) {
+                    if (sb == null) {
+                        sb = new StringBuilder(text.substring(0, pos));
+                    }
+                    pos = expandReference(text, pos, PREFIX_RESOURCE, sb);
                 } else if (c == BACKSLASH) {
                     if (sb != null) {
                         // Append both escape character and escaped character.
@@ -132,18 +128,24 @@
         return TextUtils.isEmpty(text) ? null : text;
     }
 
-    // These texts' name should be aligned with the @string/<name> in
-    // values*/strings-action-keys.xml.
-    static final String[] RESOURCE_NAMES = {
-        // Labels for action.
-        "label_go_key",
-        "label_send_key",
-        "label_next_key",
-        "label_done_key",
-        "label_search_key",
-        "label_previous_key",
-        // Other labels.
-        "label_pause_key",
-        "label_wait_key",
-    };
+    private int expandReference(final String text, final int pos, final String prefix,
+            final StringBuilder sb) {
+        final int prefixLength = prefix.length();
+        final int end = searchTextNameEnd(text, pos + prefixLength);
+        final String name = text.substring(pos + prefixLength, end);
+        if (prefix.equals(PREFIX_TEXT)) {
+            sb.append(getText(name));
+        } else { // PREFIX_RESOURCE
+            final String resourcePackageName = mResourcePackageName;
+            final RunInLocale<String> getTextJob = new RunInLocale<String>() {
+                @Override
+                protected String job(final Resources res) {
+                    final int resId = res.getIdentifier(name, "string", resourcePackageName);
+                    return res.getString(resId);
+                }
+            };
+            sb.append(getTextJob.runInLocale(mResources, mResourceLocale));
+        }
+        return end - 1;
+    }
 }
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java
index 31bc549..b50c0a8 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.java
@@ -83,24 +83,24 @@
 
     private static final String[] NAMES = {
     //  /* index:histogram */ "name",
-        /*   0:32 */ "morekeys_a",
-        /*   1:32 */ "morekeys_o",
-        /*   2:30 */ "morekeys_u",
-        /*   3:30 */ "keylabel_to_alpha",
-        /*   4:29 */ "morekeys_e",
-        /*   5:28 */ "morekeys_i",
-        /*   6:23 */ "morekeys_c",
-        /*   7:23 */ "double_quotes",
-        /*   8:22 */ "morekeys_n",
-        /*   9:22 */ "single_quotes",
-        /*  10:20 */ "morekeys_s",
-        /*  11:17 */ "keyspec_currency",
-        /*  12:14 */ "morekeys_y",
-        /*  13:13 */ "morekeys_d",
-        /*  14:12 */ "morekeys_z",
+        /*   0:33 */ "morekeys_a",
+        /*   1:33 */ "morekeys_o",
+        /*   2:32 */ "morekeys_e",
+        /*   3:31 */ "morekeys_u",
+        /*   4:31 */ "keylabel_to_alpha",
+        /*   5:30 */ "morekeys_i",
+        /*   6:25 */ "morekeys_n",
+        /*   7:25 */ "morekeys_c",
+        /*   8:23 */ "double_quotes",
+        /*   9:22 */ "morekeys_s",
+        /*  10:22 */ "single_quotes",
+        /*  11:19 */ "keyspec_currency",
+        /*  12:17 */ "morekeys_y",
+        /*  13:16 */ "morekeys_z",
+        /*  14:14 */ "morekeys_d",
         /*  15:10 */ "morekeys_t",
         /*  16:10 */ "morekeys_l",
-        /*  17: 9 */ "morekeys_g",
+        /*  17:10 */ "morekeys_g",
         /*  18: 9 */ "single_angle_quotes",
         /*  19: 9 */ "double_angle_quotes",
         /*  20: 8 */ "morekeys_r",
@@ -136,121 +136,129 @@
         /*  50: 5 */ "additional_morekeys_symbols_8",
         /*  51: 5 */ "additional_morekeys_symbols_9",
         /*  52: 5 */ "additional_morekeys_symbols_0",
-        /*  53: 4 */ "morekeys_nordic_row2_11",
-        /*  54: 4 */ "morekeys_punctuation",
-        /*  55: 4 */ "keyspec_tablet_comma",
-        /*  56: 3 */ "keyspec_swiss_row1_11",
-        /*  57: 3 */ "keyspec_swiss_row2_10",
-        /*  58: 3 */ "keyspec_swiss_row2_11",
-        /*  59: 3 */ "morekeys_swiss_row1_11",
-        /*  60: 3 */ "morekeys_swiss_row2_10",
-        /*  61: 3 */ "morekeys_swiss_row2_11",
-        /*  62: 3 */ "morekeys_star",
-        /*  63: 3 */ "keyspec_left_parenthesis",
-        /*  64: 3 */ "keyspec_right_parenthesis",
-        /*  65: 3 */ "keyspec_left_square_bracket",
-        /*  66: 3 */ "keyspec_right_square_bracket",
-        /*  67: 3 */ "keyspec_left_curly_bracket",
-        /*  68: 3 */ "keyspec_right_curly_bracket",
-        /*  69: 3 */ "keyspec_less_than",
-        /*  70: 3 */ "keyspec_greater_than",
-        /*  71: 3 */ "keyspec_less_than_equal",
-        /*  72: 3 */ "keyspec_greater_than_equal",
-        /*  73: 3 */ "keyspec_left_double_angle_quote",
-        /*  74: 3 */ "keyspec_right_double_angle_quote",
-        /*  75: 3 */ "keyspec_left_single_angle_quote",
-        /*  76: 3 */ "keyspec_right_single_angle_quote",
-        /*  77: 3 */ "keyspec_comma",
-        /*  78: 3 */ "morekeys_tablet_comma",
-        /*  79: 3 */ "keyhintlabel_period",
-        /*  80: 3 */ "morekeys_tablet_period",
-        /*  81: 3 */ "morekeys_question",
-        /*  82: 2 */ "morekeys_h",
-        /*  83: 2 */ "morekeys_w",
-        /*  84: 2 */ "morekeys_east_slavic_row2_2",
-        /*  85: 2 */ "morekeys_cyrillic_u",
-        /*  86: 2 */ "morekeys_cyrillic_en",
-        /*  87: 2 */ "morekeys_cyrillic_ghe",
-        /*  88: 2 */ "morekeys_cyrillic_o",
-        /*  89: 2 */ "morekeys_cyrillic_i",
-        /*  90: 2 */ "keyspec_south_slavic_row1_6",
-        /*  91: 2 */ "keyspec_south_slavic_row2_11",
-        /*  92: 2 */ "keyspec_south_slavic_row3_1",
-        /*  93: 2 */ "keyspec_south_slavic_row3_8",
-        /*  94: 2 */ "morekeys_tablet_punctuation",
-        /*  95: 2 */ "keyspec_spanish_row2_10",
-        /*  96: 2 */ "morekeys_bullet",
-        /*  97: 2 */ "morekeys_left_parenthesis",
-        /*  98: 2 */ "morekeys_right_parenthesis",
-        /*  99: 2 */ "morekeys_arabic_diacritics",
-        /* 100: 2 */ "keyhintlabel_tablet_comma",
-        /* 101: 2 */ "keyspec_period",
-        /* 102: 2 */ "morekeys_period",
-        /* 103: 2 */ "keyspec_tablet_period",
+        /*  53: 5 */ "morekeys_tablet_period",
+        /*  54: 4 */ "morekeys_nordic_row2_11",
+        /*  55: 4 */ "morekeys_punctuation",
+        /*  56: 4 */ "keyspec_tablet_comma",
+        /*  57: 4 */ "keyspec_period",
+        /*  58: 4 */ "morekeys_period",
+        /*  59: 4 */ "keyspec_tablet_period",
+        /*  60: 3 */ "keyspec_swiss_row1_11",
+        /*  61: 3 */ "keyspec_swiss_row2_10",
+        /*  62: 3 */ "keyspec_swiss_row2_11",
+        /*  63: 3 */ "morekeys_swiss_row1_11",
+        /*  64: 3 */ "morekeys_swiss_row2_10",
+        /*  65: 3 */ "morekeys_swiss_row2_11",
+        /*  66: 3 */ "morekeys_star",
+        /*  67: 3 */ "keyspec_left_parenthesis",
+        /*  68: 3 */ "keyspec_right_parenthesis",
+        /*  69: 3 */ "keyspec_left_square_bracket",
+        /*  70: 3 */ "keyspec_right_square_bracket",
+        /*  71: 3 */ "keyspec_left_curly_bracket",
+        /*  72: 3 */ "keyspec_right_curly_bracket",
+        /*  73: 3 */ "keyspec_less_than",
+        /*  74: 3 */ "keyspec_greater_than",
+        /*  75: 3 */ "keyspec_less_than_equal",
+        /*  76: 3 */ "keyspec_greater_than_equal",
+        /*  77: 3 */ "keyspec_left_double_angle_quote",
+        /*  78: 3 */ "keyspec_right_double_angle_quote",
+        /*  79: 3 */ "keyspec_left_single_angle_quote",
+        /*  80: 3 */ "keyspec_right_single_angle_quote",
+        /*  81: 3 */ "keyspec_comma",
+        /*  82: 3 */ "morekeys_tablet_comma",
+        /*  83: 3 */ "keyhintlabel_period",
+        /*  84: 3 */ "morekeys_question",
+        /*  85: 2 */ "morekeys_h",
+        /*  86: 2 */ "morekeys_w",
+        /*  87: 2 */ "morekeys_east_slavic_row2_2",
+        /*  88: 2 */ "morekeys_cyrillic_u",
+        /*  89: 2 */ "morekeys_cyrillic_en",
+        /*  90: 2 */ "morekeys_cyrillic_ghe",
+        /*  91: 2 */ "morekeys_cyrillic_o",
+        /*  92: 2 */ "morekeys_cyrillic_i",
+        /*  93: 2 */ "keyspec_south_slavic_row1_6",
+        /*  94: 2 */ "keyspec_south_slavic_row2_11",
+        /*  95: 2 */ "keyspec_south_slavic_row3_1",
+        /*  96: 2 */ "keyspec_south_slavic_row3_8",
+        /*  97: 2 */ "morekeys_tablet_punctuation",
+        /*  98: 2 */ "keyspec_spanish_row2_10",
+        /*  99: 2 */ "morekeys_bullet",
+        /* 100: 2 */ "morekeys_left_parenthesis",
+        /* 101: 2 */ "morekeys_right_parenthesis",
+        /* 102: 2 */ "morekeys_arabic_diacritics",
+        /* 103: 2 */ "keyhintlabel_tablet_comma",
         /* 104: 2 */ "keyhintlabel_tablet_period",
         /* 105: 2 */ "keyspec_symbols_question",
         /* 106: 2 */ "keyspec_symbols_semicolon",
         /* 107: 2 */ "keyspec_symbols_percent",
         /* 108: 2 */ "morekeys_symbols_semicolon",
         /* 109: 2 */ "morekeys_symbols_percent",
-        /* 110: 1 */ "morekeys_v",
-        /* 111: 1 */ "morekeys_j",
-        /* 112: 1 */ "morekeys_q",
-        /* 113: 1 */ "morekeys_x",
-        /* 114: 1 */ "keyspec_q",
-        /* 115: 1 */ "keyspec_w",
-        /* 116: 1 */ "keyspec_y",
-        /* 117: 1 */ "keyspec_x",
-        /* 118: 1 */ "morekeys_east_slavic_row2_11",
-        /* 119: 1 */ "morekeys_cyrillic_ka",
-        /* 120: 1 */ "morekeys_cyrillic_a",
-        /* 121: 1 */ "morekeys_currency_dollar",
-        /* 122: 1 */ "morekeys_plus",
-        /* 123: 1 */ "morekeys_less_than",
-        /* 124: 1 */ "morekeys_greater_than",
-        /* 125: 1 */ "morekeys_exclamation",
-        /* 126: 0 */ "morekeys_currency_generic",
-        /* 127: 0 */ "morekeys_symbols_1",
-        /* 128: 0 */ "morekeys_symbols_2",
-        /* 129: 0 */ "morekeys_symbols_3",
-        /* 130: 0 */ "morekeys_symbols_4",
-        /* 131: 0 */ "morekeys_symbols_5",
-        /* 132: 0 */ "morekeys_symbols_6",
-        /* 133: 0 */ "morekeys_symbols_7",
-        /* 134: 0 */ "morekeys_symbols_8",
-        /* 135: 0 */ "morekeys_symbols_9",
-        /* 136: 0 */ "morekeys_symbols_0",
-        /* 137: 0 */ "morekeys_am_pm",
-        /* 138: 0 */ "keyspec_settings",
-        /* 139: 0 */ "keyspec_shortcut",
-        /* 140: 0 */ "keyspec_action_next",
-        /* 141: 0 */ "keyspec_action_previous",
-        /* 142: 0 */ "keylabel_to_more_symbol",
-        /* 143: 0 */ "keylabel_tablet_to_more_symbol",
-        /* 144: 0 */ "keylabel_to_phone_numeric",
-        /* 145: 0 */ "keylabel_to_phone_symbols",
-        /* 146: 0 */ "keylabel_time_am",
-        /* 147: 0 */ "keylabel_time_pm",
-        /* 148: 0 */ "keyspec_popular_domain",
-        /* 149: 0 */ "morekeys_popular_domain",
-        /* 150: 0 */ "keyspecs_left_parenthesis_more_keys",
-        /* 151: 0 */ "keyspecs_right_parenthesis_more_keys",
-        /* 152: 0 */ "single_laqm_raqm",
-        /* 153: 0 */ "single_raqm_laqm",
-        /* 154: 0 */ "double_laqm_raqm",
-        /* 155: 0 */ "double_raqm_laqm",
-        /* 156: 0 */ "single_lqm_rqm",
-        /* 157: 0 */ "single_9qm_lqm",
-        /* 158: 0 */ "single_9qm_rqm",
-        /* 159: 0 */ "single_rqm_9qm",
-        /* 160: 0 */ "double_lqm_rqm",
-        /* 161: 0 */ "double_9qm_lqm",
-        /* 162: 0 */ "double_9qm_rqm",
-        /* 163: 0 */ "double_rqm_9qm",
-        /* 164: 0 */ "morekeys_single_quote",
-        /* 165: 0 */ "morekeys_double_quote",
-        /* 166: 0 */ "morekeys_tablet_double_quote",
-        /* 167: 0 */ "keyspec_emoji_action_key",
+        /* 110: 2 */ "label_go_key",
+        /* 111: 2 */ "label_send_key",
+        /* 112: 2 */ "label_next_key",
+        /* 113: 2 */ "label_done_key",
+        /* 114: 2 */ "label_search_key",
+        /* 115: 2 */ "label_previous_key",
+        /* 116: 2 */ "label_pause_key",
+        /* 117: 2 */ "label_wait_key",
+        /* 118: 1 */ "morekeys_v",
+        /* 119: 1 */ "morekeys_j",
+        /* 120: 1 */ "morekeys_q",
+        /* 121: 1 */ "morekeys_x",
+        /* 122: 1 */ "keyspec_q",
+        /* 123: 1 */ "keyspec_w",
+        /* 124: 1 */ "keyspec_y",
+        /* 125: 1 */ "keyspec_x",
+        /* 126: 1 */ "morekeys_east_slavic_row2_11",
+        /* 127: 1 */ "morekeys_cyrillic_ka",
+        /* 128: 1 */ "morekeys_cyrillic_a",
+        /* 129: 1 */ "morekeys_currency_dollar",
+        /* 130: 1 */ "morekeys_plus",
+        /* 131: 1 */ "morekeys_less_than",
+        /* 132: 1 */ "morekeys_greater_than",
+        /* 133: 1 */ "morekeys_exclamation",
+        /* 134: 0 */ "morekeys_currency_generic",
+        /* 135: 0 */ "morekeys_symbols_1",
+        /* 136: 0 */ "morekeys_symbols_2",
+        /* 137: 0 */ "morekeys_symbols_3",
+        /* 138: 0 */ "morekeys_symbols_4",
+        /* 139: 0 */ "morekeys_symbols_5",
+        /* 140: 0 */ "morekeys_symbols_6",
+        /* 141: 0 */ "morekeys_symbols_7",
+        /* 142: 0 */ "morekeys_symbols_8",
+        /* 143: 0 */ "morekeys_symbols_9",
+        /* 144: 0 */ "morekeys_symbols_0",
+        /* 145: 0 */ "morekeys_am_pm",
+        /* 146: 0 */ "keyspec_settings",
+        /* 147: 0 */ "keyspec_shortcut",
+        /* 148: 0 */ "keyspec_action_next",
+        /* 149: 0 */ "keyspec_action_previous",
+        /* 150: 0 */ "keylabel_to_more_symbol",
+        /* 151: 0 */ "keylabel_tablet_to_more_symbol",
+        /* 152: 0 */ "keylabel_to_phone_numeric",
+        /* 153: 0 */ "keylabel_to_phone_symbols",
+        /* 154: 0 */ "keylabel_time_am",
+        /* 155: 0 */ "keylabel_time_pm",
+        /* 156: 0 */ "keyspec_popular_domain",
+        /* 157: 0 */ "morekeys_popular_domain",
+        /* 158: 0 */ "keyspecs_left_parenthesis_more_keys",
+        /* 159: 0 */ "keyspecs_right_parenthesis_more_keys",
+        /* 160: 0 */ "single_laqm_raqm",
+        /* 161: 0 */ "single_raqm_laqm",
+        /* 162: 0 */ "double_laqm_raqm",
+        /* 163: 0 */ "double_raqm_laqm",
+        /* 164: 0 */ "single_lqm_rqm",
+        /* 165: 0 */ "single_9qm_lqm",
+        /* 166: 0 */ "single_9qm_rqm",
+        /* 167: 0 */ "single_rqm_9qm",
+        /* 168: 0 */ "double_lqm_rqm",
+        /* 169: 0 */ "double_9qm_lqm",
+        /* 170: 0 */ "double_9qm_rqm",
+        /* 171: 0 */ "double_rqm_9qm",
+        /* 172: 0 */ "morekeys_single_quote",
+        /* 173: 0 */ "morekeys_double_quote",
+        /* 174: 0 */ "morekeys_tablet_double_quote",
+        /* 175: 0 */ "keyspec_emoji_action_key",
     };
 
     private static final String EMPTY = "";
@@ -258,17 +266,16 @@
     /* Default texts */
     private static final String[] TEXTS_DEFAULT = {
         /* morekeys_a ~ */
-        EMPTY, EMPTY, EMPTY,
+        EMPTY, EMPTY, EMPTY, EMPTY,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         /* keylabel_to_alpha */ "ABC",
-        /* morekeys_e ~ */
+        /* morekeys_i ~ */
         EMPTY, EMPTY, EMPTY,
         /* ~ morekeys_c */
         /* double_quotes */ "!text/double_lqm_rqm",
-        /* morekeys_n */ EMPTY,
-        /* single_quotes */ "!text/single_lqm_rqm",
         /* morekeys_s */ EMPTY,
+        /* single_quotes */ "!text/single_lqm_rqm",
         /* keyspec_currency */ "$",
         /* morekeys_y ~ */
         EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
@@ -291,10 +298,16 @@
         // Label for "switch to symbols" key.
         /* keylabel_to_symbol */ "?123",
         /* additional_morekeys_symbols_1 ~ */
-        EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
-        /* ~ morekeys_nordic_row2_11 */
+        EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
+        /* ~ additional_morekeys_symbols_0 */
+        /* morekeys_tablet_period */ "!text/morekeys_tablet_punctuation",
+        /* morekeys_nordic_row2_11 */ EMPTY,
         /* morekeys_punctuation */ "!autoColumnOrder!8,\\,,?,!,#,!text/keyspec_right_parenthesis,!text/keyspec_left_parenthesis,/,;,',@,:,-,\",+,\\%,&",
         /* keyspec_tablet_comma */ ",",
+        // Period key
+        /* keyspec_period */ ".",
+        /* morekeys_period */ "!text/morekeys_punctuation",
+        /* keyspec_tablet_period */ ".",
         /* keyspec_swiss_row1_11 ~ */
         EMPTY, EMPTY, EMPTY, EMPTY, EMPTY, EMPTY,
         /* ~ morekeys_swiss_row2_11 */
@@ -328,7 +341,6 @@
         /* keyspec_comma */ ",",
         /* morekeys_tablet_comma */ EMPTY,
         /* keyhintlabel_period */ EMPTY,
-        /* morekeys_tablet_period */ "!text/morekeys_tablet_punctuation",
         // U+00BF: "¿" INVERTED QUESTION MARK
         /* morekeys_question */ "\u00BF",
         /* morekeys_h ~ */
@@ -345,19 +357,23 @@
         /* morekeys_bullet */ "\u266A,\u2665,\u2660,\u2666,\u2663",
         /* morekeys_left_parenthesis */ "!fixedColumnOrder!3,!text/keyspecs_left_parenthesis_more_keys",
         /* morekeys_right_parenthesis */ "!fixedColumnOrder!3,!text/keyspecs_right_parenthesis_more_keys",
-        /* morekeys_arabic_diacritics */ EMPTY,
-        /* keyhintlabel_tablet_comma */ EMPTY,
-        // Period key
-        /* keyspec_period */ ".",
-        /* morekeys_period */ "!text/morekeys_punctuation",
-        /* keyspec_tablet_period */ ".",
-        /* keyhintlabel_tablet_period */ EMPTY,
+        /* morekeys_arabic_diacritics ~ */
+        EMPTY, EMPTY, EMPTY,
+        /* ~ keyhintlabel_tablet_period */
         /* keyspec_symbols_question */ "?",
         /* keyspec_symbols_semicolon */ ";",
         /* keyspec_symbols_percent */ "%",
         /* morekeys_symbols_semicolon */ EMPTY,
         // U+2030: "‰" PER MILLE SIGN
         /* morekeys_symbols_percent */ "\u2030",
+        /* label_go_key */ "!string/label_go_key",
+        /* label_send_key */ "!string/label_send_key",
+        /* label_next_key */ "!string/label_next_key",
+        /* label_done_key */ "!string/label_done_key",
+        /* label_search_key */ "!string/label_search_key",
+        /* label_previous_key */ "!string/label_previous_key",
+        /* label_pause_key */ "!string/label_pause_key",
+        /* label_wait_key */ "!string/label_wait_key",
         /* morekeys_v ~ */
         EMPTY, EMPTY, EMPTY, EMPTY,
         /* ~ morekeys_x */
@@ -488,13 +504,6 @@
         // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
         // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
         /* morekeys_o */ "\u00F3,\u00F4,\u00F6,\u00F2,\u00F5,\u0153,\u00F8,\u014D",
-        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-        /* morekeys_u */ "\u00FA,\u00FB,\u00FC,\u00F9,\u016B",
-        /* keylabel_to_alpha */ null,
         // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
         // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
         // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
@@ -503,6 +512,13 @@
         // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
         // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
         /* morekeys_e */ "\u00E9,\u00E8,\u00EA,\u00EB,\u0119,\u0117,\u0113",
+        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+        /* morekeys_u */ "\u00FA,\u00FB,\u00FC,\u00F9,\u016B",
+        /* keylabel_to_alpha */ null,
         // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
         // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
         // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
@@ -511,13 +527,11 @@
         // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
         // U+0133: "ĳ" LATIN SMALL LIGATURE IJ
         /* morekeys_i */ "\u00ED,\u00EC,\u00EF,\u00EE,\u012F,\u012B,\u0133",
-        /* morekeys_c */ null,
-        /* double_quotes */ null,
         // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
         // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
         /* morekeys_n */ "\u00F1,\u0144",
-        /* single_quotes ~ */
-        null, null, null,
+        /* morekeys_c ~ */
+        null, null, null, null, null,
         /* ~ keyspec_currency */
         // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
         // U+0133: "ĳ" LATIN SMALL LIGATURE IJ
@@ -527,7 +541,7 @@
     /* Locale ar: Arabic */
     private static final String[] TEXTS_ar = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+0623: "أ" ARABIC LETTER ALEF WITH HAMZA ABOVE
@@ -535,9 +549,9 @@
         // U+0628: "ب" ARABIC LETTER BEH
         // U+062C: "ج" ARABIC LETTER JEEM
         /* keylabel_to_alpha */ "\u0623\u200C\u0628\u200C\u062C",
-        /* morekeys_e ~ */
+        /* morekeys_i ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null, null,
         /* ~ morekeys_cyrillic_soft_sign */
         // U+0661: "١" ARABIC-INDIC DIGIT ONE
         /* keyspec_symbols_1 */ "\u0661",
@@ -574,14 +588,17 @@
         // U+066B: "٫" ARABIC DECIMAL SEPARATOR
         // U+066C: "٬" ARABIC THOUSANDS SEPARATOR
         /* additional_morekeys_symbols_0 */ "0,\u066B,\u066C",
+        /* morekeys_tablet_period */ "!text/morekeys_arabic_diacritics",
         /* morekeys_nordic_row2_11 */ null,
         /* morekeys_punctuation */ null,
         // U+061F: "؟" ARABIC QUESTION MARK
         // U+060C: "،" ARABIC COMMA
         // U+061B: "؛" ARABIC SEMICOLON
         /* keyspec_tablet_comma */ "\u060C",
-        /* keyspec_swiss_row1_11 ~ */
-        null, null, null, null, null, null,
+        /* keyspec_period */ null,
+        /* morekeys_period */ "!text/morekeys_arabic_diacritics",
+        /* keyspec_tablet_period ~ */
+        null, null, null, null, null, null, null,
         /* ~ morekeys_swiss_row2_11 */
         // U+2605: "★" BLACK STAR
         // U+066D: "٭" ARABIC FIVE POINTED STAR
@@ -611,7 +628,6 @@
         /* morekeys_tablet_comma */ "!fixedColumnOrder!4,:,!,\u061F,\u061B,-,\",\'",
         // U+0651: "ّ" ARABIC SHADDA
         /* keyhintlabel_period */ "\u0651",
-        /* morekeys_tablet_period */ "!text/morekeys_arabic_diacritics",
         // U+00BF: "¿" INVERTED QUESTION MARK
         /* morekeys_question */ "?,\u00BF",
         /* morekeys_h ~ */
@@ -643,9 +659,6 @@
         // Note: The space character is needed as a preceding letter to draw Arabic diacritics characters correctly.
         /* morekeys_arabic_diacritics */ "!fixedColumnOrder!7, \u0655|\u0655, \u0654|\u0654, \u0652|\u0652, \u064D|\u064D, \u064C|\u064C, \u064B|\u064B, \u0651|\u0651, \u0656|\u0656, \u0670|\u0670, \u0653|\u0653, \u0650|\u0650, \u064F|\u064F, \u064E|\u064E,\u0640\u0640\u0640|\u0640",
         /* keyhintlabel_tablet_comma */ "\u061F",
-        /* keyspec_period */ null,
-        /* morekeys_period */ "!text/morekeys_arabic_diacritics",
-        /* keyspec_tablet_period */ null,
         /* keyhintlabel_tablet_period */ "\u0651",
         /* keyspec_symbols_question */ "\u061F",
         /* keyspec_symbols_semicolon */ "\u061B",
@@ -658,8 +671,11 @@
 
     /* Locale az_AZ: Azerbaijani (Azerbaijan) */
     private static final String[] TEXTS_az_AZ = {
+        // This is the same as Turkish
         // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
-        /* morekeys_a */ "\u00E2",
+        // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+        // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+        /* morekeys_a */ "\u00E2,\u00E4,\u00E1",
         // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
         // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
         // U+0153: "œ" LATIN SMALL LIGATURE OE
@@ -669,6 +685,9 @@
         // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
         // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
         /* morekeys_o */ "\u00F6,\u00F4,\u0153,\u00F2,\u00F3,\u00F5,\u00F8,\u014D",
+        // U+0259: "ə" LATIN SMALL LETTER SCHWA
+        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+        /* morekeys_e */ "\u0259,\u00E9",
         // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
         // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
         // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
@@ -676,8 +695,6 @@
         // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
         /* morekeys_u */ "\u00FC,\u00FB,\u00F9,\u00FA,\u016B",
         /* keylabel_to_alpha */ null,
-        // U+0259: "ə" LATIN SMALL LETTER SCHWA
-        /* morekeys_e */ "\u0259",
         // U+0131: "ı" LATIN SMALL LETTER DOTLESS I
         // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
         // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
@@ -686,20 +703,27 @@
         // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
         // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
         /* morekeys_i */ "\u0131,\u00EE,\u00EF,\u00EC,\u00ED,\u012F,\u012B",
+        // U+0148: "ň" LATIN SMALL LETTER N WITH CARON
+        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+        /* morekeys_n */ "\u0148,\u00F1",
         // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
         // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
         // U+010D: "č" LATIN SMALL LETTER C WITH CARON
         /* morekeys_c */ "\u00E7,\u0107,\u010D",
-        /* double_quotes ~ */
-        null, null, null,
-        /* ~ single_quotes */
+        /* double_quotes */ null,
         // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         /* morekeys_s */ "\u015F,\u00DF,\u015B,\u0161",
-        /* keyspec_currency ~ */
-        null, null, null, null, null, null,
+        /* single_quotes */ null,
+        /* keyspec_currency */ null,
+        // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
+        /* morekeys_y */ "\u00FD",
+        // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
+        /* morekeys_z */ "\u017E",
+        /* morekeys_d ~ */
+        null, null, null,
         /* ~ morekeys_l */
         // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
         /* morekeys_g */ "\u011F",
@@ -708,21 +732,21 @@
     /* Locale be_BY: Belarusian (Belarus) */
     private static final String[] TEXTS_be_BY = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+0410: "А" CYRILLIC CAPITAL LETTER A
         // U+0411: "Б" CYRILLIC CAPITAL LETTER BE
         // U+0412: "В" CYRILLIC CAPITAL LETTER VE
         /* keylabel_to_alpha */ "\u0410\u0411\u0412",
-        /* morekeys_e ~ */
+        /* morekeys_i ~ */
         null, null, null,
         /* ~ morekeys_c */
         /* double_quotes */ "!text/double_9qm_lqm",
-        /* morekeys_n */ null,
+        /* morekeys_s */ null,
         /* single_quotes */ "!text/single_9qm_lqm",
-        /* morekeys_s ~ */
-        null, null, null, null, null, null, null, null, null, null, null, null,
+        /* keyspec_currency ~ */
+        null, null, null, null, null, null, null, null, null, null, null,
         /* ~ morekeys_k */
         // U+0451: "ё" CYRILLIC SMALL LETTER IO
         /* morekeys_cyrillic_ie */ "\u0451",
@@ -744,33 +768,50 @@
     /* Locale bg: Bulgarian */
     private static final String[] TEXTS_bg = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+0410: "А" CYRILLIC CAPITAL LETTER A
         // U+0411: "Б" CYRILLIC CAPITAL LETTER BE
         // U+0412: "В" CYRILLIC CAPITAL LETTER VE
         /* keylabel_to_alpha */ "\u0410\u0411\u0412",
-        /* morekeys_e ~ */
+        /* morekeys_i ~ */
         null, null, null,
         /* ~ morekeys_c */
         // single_quotes of Bulgarian is default single_quotes_right_left.
         /* double_quotes */ "!text/double_9qm_lqm",
     };
 
-    /* Locale bn_IN: Bengali (India) */
-    private static final String[] TEXTS_bn_IN = {
+    /* Locale bn_BD: Bengali (Bangladesh) */
+    private static final String[] TEXTS_bn_BD = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+0995: "क" BENGALI LETTER KA
         // U+0996: "ख" BENGALI LETTER KHA
         // U+0997: "ग" BENGALI LETTER GA
         /* keylabel_to_alpha */ "\u0995\u0996\u0997",
-        /* morekeys_e ~ */
-        null, null, null, null, null, null, null,
-        /* ~ morekeys_s */
+        /* morekeys_i ~ */
+        null, null, null, null, null, null,
+        /* ~ single_quotes */
+        // U+09F3: "৳" BENGALI RUPEE SIGN
+        /* keyspec_currency */ "\u09F3",
+    };
+
+    /* Locale bn_IN: Bengali (India) */
+    private static final String[] TEXTS_bn_IN = {
+        /* morekeys_a ~ */
+        null, null, null, null,
+        /* ~ morekeys_u */
+        // Label for "switch to alphabetic" key.
+        // U+0995: "क" BENGALI LETTER KA
+        // U+0996: "ख" BENGALI LETTER KHA
+        // U+0997: "ग" BENGALI LETTER GA
+        /* keylabel_to_alpha */ "\u0995\u0996\u0997",
+        /* morekeys_i ~ */
+        null, null, null, null, null, null,
+        /* ~ single_quotes */
         // U+20B9: "₹" INDIAN RUPEE SIGN
         /* keyspec_currency */ "\u20B9",
     };
@@ -798,13 +839,6 @@
         // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
         // U+00BA: "º" MASCULINE ORDINAL INDICATOR
         /* morekeys_o */ "\u00F2,\u00F3,\u00F6,\u00F4,\u00F5,\u00F8,\u0153,\u014D,\u00BA",
-        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-        /* morekeys_u */ "\u00FA,\u00FC,\u00F9,\u00FB,\u016B",
-        /* keylabel_to_alpha */ null,
         // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
         // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
         // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
@@ -813,6 +847,13 @@
         // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
         // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
         /* morekeys_e */ "\u00E8,\u00E9,\u00EB,\u00EA,\u0119,\u0117,\u0113",
+        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+        /* morekeys_u */ "\u00FA,\u00FC,\u00F9,\u00FB,\u016B",
+        /* keylabel_to_alpha */ null,
         // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
         // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
         // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
@@ -820,16 +861,15 @@
         // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
         // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
         /* morekeys_i */ "\u00ED,\u00EF,\u00EC,\u00EE,\u012F,\u012B",
+        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+        // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+        /* morekeys_n */ "\u00F1,\u0144",
         // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
         // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
         // U+010D: "č" LATIN SMALL LETTER C WITH CARON
         /* morekeys_c */ "\u00E7,\u0107,\u010D",
-        /* double_quotes */ null,
-        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
-        // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
-        /* morekeys_n */ "\u00F1,\u0144",
-        /* single_quotes ~ */
-        null, null, null, null, null, null, null,
+        /* double_quotes ~ */
+        null, null, null, null, null, null, null, null,
         /* ~ morekeys_t */
         // U+00B7: "·" MIDDLE DOT
         // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
@@ -837,14 +877,14 @@
         /* morekeys_g ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null,
         /* ~ morekeys_nordic_row2_11 */
         // U+00B7: "·" MIDDLE DOT
         /* morekeys_punctuation */ "!autoColumnOrder!9,\\,,?,!,\u00B7,#,),(,/,;,',@,:,-,\",+,\\%,&",
         /* keyspec_tablet_comma ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null,
         /* ~ keyspec_south_slavic_row3_8 */
         /* morekeys_tablet_punctuation */ "!autoColumnOrder!8,\\,,',\u00B7,#,),(,/,;,@,:,-,\",+,\\%,&",
         // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
@@ -871,14 +911,6 @@
         // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
         // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
         /* morekeys_o */ "\u00F3,\u00F6,\u00F4,\u00F2,\u00F5,\u0153,\u00F8,\u014D",
-        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-        // U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
-        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-        /* morekeys_u */ "\u00FA,\u016F,\u00FB,\u00FC,\u00F9,\u016B",
-        /* keylabel_to_alpha */ null,
         // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
         // U+011B: "ě" LATIN SMALL LETTER E WITH CARON
         // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
@@ -888,6 +920,14 @@
         // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
         // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
         /* morekeys_e */ "\u00E9,\u011B,\u00E8,\u00EA,\u00EB,\u0119,\u0117,\u0113",
+        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+        // U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
+        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+        /* morekeys_u */ "\u00FA,\u016F,\u00FB,\u00FC,\u00F9,\u016B",
+        /* keylabel_to_alpha */ null,
         // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
         // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
         // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
@@ -895,30 +935,30 @@
         // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
         // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
         /* morekeys_i */ "\u00ED,\u00EE,\u00EF,\u00EC,\u012F,\u012B",
+        // U+0148: "ň" LATIN SMALL LETTER N WITH CARON
+        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+        // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+        /* morekeys_n */ "\u0148,\u00F1,\u0144",
         // U+010D: "č" LATIN SMALL LETTER C WITH CARON
         // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
         // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
         /* morekeys_c */ "\u010D,\u00E7,\u0107",
         /* double_quotes */ "!text/double_9qm_lqm",
-        // U+0148: "ň" LATIN SMALL LETTER N WITH CARON
-        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
-        // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
-        /* morekeys_n */ "\u0148,\u00F1,\u0144",
-        /* single_quotes */ "!text/single_9qm_lqm",
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
         /* morekeys_s */ "\u0161,\u00DF,\u015B",
+        /* single_quotes */ "!text/single_9qm_lqm",
         /* keyspec_currency */ null,
         // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
         // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
         /* morekeys_y */ "\u00FD,\u00FF",
-        // U+010F: "ď" LATIN SMALL LETTER D WITH CARON
-        /* morekeys_d */ "\u010F",
         // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
         // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
         // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
         /* morekeys_z */ "\u017E,\u017A,\u017C",
+        // U+010F: "ď" LATIN SMALL LETTER D WITH CARON
+        /* morekeys_d */ "\u010F",
         // U+0165: "ť" LATIN SMALL LETTER T WITH CARON
         /* morekeys_t */ "\u0165",
         /* morekeys_l */ null,
@@ -931,20 +971,27 @@
 
     /* Locale da: Danish */
     private static final String[] TEXTS_da = {
+        // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+        // U+00E6: "æ" LATIN SMALL LETTER AE
         // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
         // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
         // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
         // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
         // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
         // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
-        /* morekeys_a */ "\u00E1,\u00E4,\u00E0,\u00E2,\u00E3,\u0101",
+        /* morekeys_a */ "\u00E5,\u00E6,\u00E1,\u00E4,\u00E0,\u00E2,\u00E3,\u0101",
+        // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+        // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
         // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
         // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
         // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
         // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
         // U+0153: "œ" LATIN SMALL LIGATURE OE
         // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
-        /* morekeys_o */ "\u00F3,\u00F4,\u00F2,\u00F5,\u0153,\u014D",
+        /* morekeys_o */ "\u00F8,\u00F6,\u00F3,\u00F4,\u00F2,\u00F5,\u0153,\u014D",
+        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+        // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+        /* morekeys_e */ "\u00E9,\u00EB",
         // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
         // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
         // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
@@ -952,29 +999,26 @@
         // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
         /* morekeys_u */ "\u00FA,\u00FC,\u00FB,\u00F9,\u016B",
         /* keylabel_to_alpha */ null,
-        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
-        // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
-        /* morekeys_e */ "\u00E9,\u00EB",
         // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
         // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
         /* morekeys_i */ "\u00ED,\u00EF",
-        /* morekeys_c */ null,
-        /* double_quotes */ "!text/double_9qm_lqm",
         // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
         // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
         /* morekeys_n */ "\u00F1,\u0144",
-        /* single_quotes */ "!text/single_9qm_lqm",
+        /* morekeys_c */ null,
+        /* double_quotes */ "!text/double_9qm_lqm",
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         /* morekeys_s */ "\u00DF,\u015B,\u0161",
+        /* single_quotes */ "!text/single_9qm_lqm",
         /* keyspec_currency */ null,
         // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
         // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
         /* morekeys_y */ "\u00FD,\u00FF",
+        /* morekeys_z */ null,
         // U+00F0: "ð" LATIN SMALL LETTER ETH
         /* morekeys_d */ "\u00F0",
-        /* morekeys_z */ null,
         /* morekeys_t */ null,
         // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
         /* morekeys_l */ "\u0142",
@@ -994,8 +1038,8 @@
         /* morekeys_nordic_row2_10 */ "\u00E4",
         /* keyspec_east_slavic_row1_9 ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null, null, null, null, null, null,
-        /* ~ additional_morekeys_symbols_0 */
+        null, null, null, null, null, null, null, null, null, null, null, null,
+        /* ~ morekeys_tablet_period */
         // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
         /* morekeys_nordic_row2_11 */ "\u00F6",
     };
@@ -1020,6 +1064,12 @@
         // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
         // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
         /* morekeys_o */ "\u00F6,%,\u00F4,\u00F2,\u00F3,\u00F5,\u0153,\u00F8,\u014D",
+        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+        // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+        // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+        // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+        /* morekeys_e */ "\u00E9,\u00E8,\u00EA,\u00EB,\u0117",
         // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
         // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
         // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
@@ -1027,23 +1077,17 @@
         // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
         /* morekeys_u */ "\u00FC,%,\u00FB,\u00F9,\u00FA,\u016B",
         /* keylabel_to_alpha */ null,
-        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
-        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
-        // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
-        // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
-        // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
-        /* morekeys_e */ "\u00E9,\u00E8,\u00EA,\u00EB,\u0117",
         /* morekeys_i */ null,
-        /* morekeys_c */ null,
-        /* double_quotes */ "!text/double_9qm_lqm",
         // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
         // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
         /* morekeys_n */ "\u00F1,\u0144",
-        /* single_quotes */ "!text/single_9qm_lqm",
+        /* morekeys_c */ null,
+        /* double_quotes */ "!text/double_9qm_lqm",
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         /* morekeys_s */ "\u00DF,\u015B,\u0161",
+        /* single_quotes */ "!text/single_9qm_lqm",
         /* keyspec_currency ~ */
         null, null, null, null, null, null, null,
         /* ~ morekeys_g */
@@ -1052,8 +1096,8 @@
         /* morekeys_r ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null,
-        /* ~ keyspec_tablet_comma */
+        null, null, null, null, null, null, null, null, null, null,
+        /* ~ keyspec_tablet_period */
         // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
         /* keyspec_swiss_row1_11 */ "\u00FC",
         // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
@@ -1071,7 +1115,7 @@
     /* Locale el: Greek */
     private static final String[] TEXTS_el = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+0391: "Α" GREEK CAPITAL LETTER ALPHA
@@ -1100,6 +1144,12 @@
         // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
         // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
         /* morekeys_o */ "\u00F3,\u00F4,\u00F6,\u00F2,\u0153,\u00F8,\u014D,\u00F5",
+        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+        // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+        // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+        // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+        /* morekeys_e */ "\u00E9,\u00E8,\u00EA,\u00EB,\u0113",
         // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
         // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
         // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
@@ -1107,24 +1157,17 @@
         // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
         /* morekeys_u */ "\u00FA,\u00FB,\u00FC,\u00F9,\u016B",
         /* keylabel_to_alpha */ null,
-        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
-        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
-        // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
-        // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
-        // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
-        /* morekeys_e */ "\u00E9,\u00E8,\u00EA,\u00EB,\u0113",
         // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
         // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
         // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
         // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
         // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
         /* morekeys_i */ "\u00ED,\u00EE,\u00EF,\u012B,\u00EC",
+        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+        /* morekeys_n */ "\u00F1",
         // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
         /* morekeys_c */ "\u00E7",
         /* double_quotes */ null,
-        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
-        /* morekeys_n */ "\u00F1",
-        /* single_quotes */ null,
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         /* morekeys_s */ "\u00DF",
     };
@@ -1154,6 +1197,15 @@
         // U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE
         // U+00BA: "º" MASCULINE ORDINAL INDICATOR
         /* morekeys_o */ "\u00F3,\u00F6,\u00F4,\u00F2,\u00F5,\u0153,\u00F8,\u014D,\u0151,\u00BA",
+        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+        // U+011B: "ě" LATIN SMALL LETTER E WITH CARON
+        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+        // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+        // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+        // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+        // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+        // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+        /* morekeys_e */ "\u00E9,\u011B,\u00E8,\u00EA,\u00EB,\u0119,\u0117,\u0113",
         // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
         // U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
         // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
@@ -1166,15 +1218,6 @@
         // U+00B5: "µ" MICRO SIGN
         /* morekeys_u */ "\u00FA,\u016F,\u00FB,\u00FC,\u00F9,\u016B,\u0169,\u0171,\u0173,\u00B5",
         /* keylabel_to_alpha */ null,
-        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
-        // U+011B: "ě" LATIN SMALL LETTER E WITH CARON
-        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
-        // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
-        // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
-        // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
-        // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
-        // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
-        /* morekeys_e */ "\u00E9,\u011B,\u00E8,\u00EA,\u00EB,\u0119,\u0117,\u0113",
         // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
         // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
         // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
@@ -1185,12 +1228,6 @@
         // U+0131: "ı" LATIN SMALL LETTER DOTLESS I
         // U+0133: "ĳ" LATIN SMALL LIGATURE IJ
         /* morekeys_i */ "\u00ED,\u00EE,\u00EF,\u0129,\u00EC,\u012F,\u012B,\u0131,\u0133",
-        // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
-        // U+010D: "č" LATIN SMALL LETTER C WITH CARON
-        // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
-        // U+010B: "ċ" LATIN SMALL LETTER C WITH DOT ABOVE
-        /* morekeys_c */ "\u0107,\u010D,\u00E7,\u010B",
-        /* double_quotes */ null,
         // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
         // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
         // U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
@@ -1198,27 +1235,33 @@
         // U+0149: "ŉ" LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
         // U+014B: "ŋ" LATIN SMALL LETTER ENG
         /* morekeys_n */ "\u00F1,\u0144,\u0146,\u0148,\u0149,\u014B",
-        /* single_quotes */ null,
+        // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
+        // U+010D: "č" LATIN SMALL LETTER C WITH CARON
+        // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
+        // U+010B: "ċ" LATIN SMALL LETTER C WITH DOT ABOVE
+        /* morekeys_c */ "\u0107,\u010D,\u00E7,\u010B",
+        /* double_quotes */ null,
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
         // U+0219: "ș" LATIN SMALL LETTER S WITH COMMA BELOW
         // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
         /* morekeys_s */ "\u00DF,\u0161,\u015B,\u0219,\u015F",
+        /* single_quotes */ null,
         /* keyspec_currency */ null,
         // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
         // U+0177: "ŷ" LATIN SMALL LETTER Y WITH CIRCUMFLEX
         // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
         // U+00FE: "þ" LATIN SMALL LETTER THORN
         /* morekeys_y */ "y,\u00FD,\u0177,\u00FF,\u00FE",
-        // U+00F0: "ð" LATIN SMALL LETTER ETH
-        // U+010F: "ď" LATIN SMALL LETTER D WITH CARON
-        // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
-        /* morekeys_d */ "\u00F0,\u010F,\u0111",
         // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
         // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
         // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
         /* morekeys_z */ "\u017A,\u017C,\u017E",
+        // U+00F0: "ð" LATIN SMALL LETTER ETH
+        // U+010F: "ď" LATIN SMALL LETTER D WITH CARON
+        // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
+        /* morekeys_d */ "\u00F0,\u010F,\u0111",
         // U+0165: "ť" LATIN SMALL LETTER T WITH CARON
         // U+021B: "ț" LATIN SMALL LETTER T WITH COMMA BELOW
         // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
@@ -1248,6 +1291,7 @@
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null,
         /* ~ morekeys_question */
         // U+0125: "ĥ" LATIN SMALL LETTER H WITH CIRCUMFLEX
         // U+0127: "ħ" LATIN SMALL LETTER H WITH STROKE
@@ -1260,8 +1304,9 @@
         // U+0135: "ĵ" LATIN SMALL LETTER J WITH CIRCUMFLEX
         /* keyspec_spanish_row2_10 */ "\u0135",
         /* morekeys_bullet ~ */
-        null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        /* ~ morekeys_symbols_percent */
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null,
+        /* ~ label_wait_key */
         // U+0175: "ŵ" LATIN SMALL LETTER W WITH CIRCUMFLEX
         /* morekeys_v */ "w,\u0175",
         /* morekeys_j */ null,
@@ -1300,13 +1345,6 @@
         // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
         // U+00BA: "º" MASCULINE ORDINAL INDICATOR
         /* morekeys_o */ "\u00F3,\u00F2,\u00F6,\u00F4,\u00F5,\u00F8,\u0153,\u014D,\u00BA",
-        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-        /* morekeys_u */ "\u00FA,\u00FC,\u00F9,\u00FB,\u016B",
-        /* keylabel_to_alpha */ null,
         // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
         // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
         // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
@@ -1315,6 +1353,13 @@
         // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
         // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
         /* morekeys_e */ "\u00E9,\u00E8,\u00EB,\u00EA,\u0119,\u0117,\u0113",
+        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+        /* morekeys_u */ "\u00FA,\u00FC,\u00F9,\u00FB,\u016B",
+        /* keylabel_to_alpha */ null,
         // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
         // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
         // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
@@ -1322,18 +1367,18 @@
         // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
         // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
         /* morekeys_i */ "\u00ED,\u00EF,\u00EC,\u00EE,\u012F,\u012B",
+        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+        // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+        /* morekeys_n */ "\u00F1,\u0144",
         // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
         // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
         // U+010D: "č" LATIN SMALL LETTER C WITH CARON
         /* morekeys_c */ "\u00E7,\u0107,\u010D",
-        /* double_quotes */ null,
-        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
-        // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
-        /* morekeys_n */ "\u00F1,\u0144",
-        /* single_quotes ~ */
+        /* double_quotes ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null,
         /* ~ morekeys_nordic_row2_11 */
         // U+00A1: "¡" INVERTED EXCLAMATION MARK
         // U+00BF: "¿" INVERTED QUESTION MARK
@@ -1361,6 +1406,15 @@
         // U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE
         // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
         /* morekeys_o */ "\u00F6,\u00F5,\u00F2,\u00F3,\u00F4,\u0153,\u0151,\u00F8",
+        // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+        // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+        // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+        // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+        // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+        // U+011B: "ě" LATIN SMALL LETTER E WITH CARON
+        /* morekeys_e */ "\u0113,\u00E8,\u0117,\u00E9,\u00EA,\u00EB,\u0119,\u011B",
         // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
         // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
         // U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK
@@ -1371,15 +1425,6 @@
         // U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
         /* morekeys_u */ "\u00FC,\u016B,\u0173,\u00F9,\u00FA,\u00FB,\u016F,\u0171",
         /* keylabel_to_alpha */ null,
-        // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
-        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
-        // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
-        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
-        // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
-        // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
-        // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
-        // U+011B: "ě" LATIN SMALL LETTER E WITH CARON
-        /* morekeys_e */ "\u0113,\u00E8,\u0117,\u00E9,\u00EA,\u00EB,\u0119,\u011B",
         // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
         // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
         // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
@@ -1388,31 +1433,31 @@
         // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
         // U+0131: "ı" LATIN SMALL LETTER DOTLESS I
         /* morekeys_i */ "\u012B,\u00EC,\u012F,\u00ED,\u00EE,\u00EF,\u0131",
+        // U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
+        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+        // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+        /* morekeys_n */ "\u0146,\u00F1,\u0144",
         // U+010D: "č" LATIN SMALL LETTER C WITH CARON
         // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
         // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
         /* morekeys_c */ "\u010D,\u00E7,\u0107",
         /* double_quotes */ "!text/double_9qm_lqm",
-        // U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
-        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
-        // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
-        /* morekeys_n */ "\u0146,\u00F1,\u0144",
-        /* single_quotes */ "!text/single_9qm_lqm",
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
         // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
         /* morekeys_s */ "\u0161,\u00DF,\u015B,\u015F",
+        /* single_quotes */ "!text/single_9qm_lqm",
         /* keyspec_currency */ null,
         // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
         // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
         /* morekeys_y */ "\u00FD,\u00FF",
-        // U+010F: "ď" LATIN SMALL LETTER D WITH CARON
-        /* morekeys_d */ "\u010F",
         // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
         // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
         // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
         /* morekeys_z */ "\u017E,\u017C,\u017A",
+        // U+010F: "ď" LATIN SMALL LETTER D WITH CARON
+        /* morekeys_d */ "\u010F",
         // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
         // U+0165: "ť" LATIN SMALL LETTER T WITH CARON
         /* morekeys_t */ "\u0163,\u0165",
@@ -1466,13 +1511,6 @@
         // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
         // U+00BA: "º" MASCULINE ORDINAL INDICATOR
         /* morekeys_o */ "\u00F3,\u00F2,\u00F6,\u00F4,\u00F5,\u00F8,\u0153,\u014D,\u00BA",
-        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-        /* morekeys_u */ "\u00FA,\u00FC,\u00F9,\u00FB,\u016B",
-        /* keylabel_to_alpha */ null,
         // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
         // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
         // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
@@ -1481,6 +1519,13 @@
         // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
         // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
         /* morekeys_e */ "\u00E9,\u00E8,\u00EB,\u00EA,\u0119,\u0117,\u0113",
+        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+        /* morekeys_u */ "\u00FA,\u00FC,\u00F9,\u00FB,\u016B",
+        /* keylabel_to_alpha */ null,
         // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
         // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
         // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
@@ -1488,20 +1533,19 @@
         // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
         // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
         /* morekeys_i */ "\u00ED,\u00EF,\u00EC,\u00EE,\u012F,\u012B",
+        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+        // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+        /* morekeys_n */ "\u00F1,\u0144",
         // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
         // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
         // U+010D: "č" LATIN SMALL LETTER C WITH CARON
         /* morekeys_c */ "\u00E7,\u0107,\u010D",
-        /* double_quotes */ null,
-        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
-        // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
-        /* morekeys_n */ "\u00F1,\u0144",
     };
 
     /* Locale fa: Persian */
     private static final String[] TEXTS_fa = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+0627: "ا" ARABIC LETTER ALEF
@@ -1509,9 +1553,9 @@
         // U+0628: "ب" ARABIC LETTER BEH
         // U+067E: "پ" ARABIC LETTER PEH
         /* keylabel_to_alpha */ "\u0627\u200C\u0628\u200C\u067E",
-        /* morekeys_e ~ */
-        null, null, null, null, null, null, null,
-        /* ~ morekeys_s */
+        /* morekeys_i ~ */
+        null, null, null, null, null, null,
+        /* ~ single_quotes */
         // U+FDFC: "﷼" RIAL SIGN
         /* keyspec_currency */ "\uFDFC",
         /* morekeys_y ~ */
@@ -1553,6 +1597,7 @@
         // U+066B: "٫" ARABIC DECIMAL SEPARATOR
         // U+066C: "٬" ARABIC THOUSANDS SEPARATOR
         /* additional_morekeys_symbols_0 */ "0,\u066B,\u066C",
+        /* morekeys_tablet_period */ "!text/morekeys_arabic_diacritics",
         /* morekeys_nordic_row2_11 */ null,
         /* morekeys_punctuation */ null,
         // U+060C: "،" ARABIC COMMA
@@ -1561,8 +1606,10 @@
         // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
         // U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
         /* keyspec_tablet_comma */ "\u060C",
-        /* keyspec_swiss_row1_11 ~ */
-        null, null, null, null, null, null,
+        /* keyspec_period */ null,
+        /* morekeys_period */ "!text/morekeys_arabic_diacritics",
+        /* keyspec_tablet_period ~ */
+        null, null, null, null, null, null, null,
         /* ~ morekeys_swiss_row2_11 */
         // U+2605: "★" BLACK STAR
         // U+066D: "٭" ARABIC FIVE POINTED STAR
@@ -1586,7 +1633,6 @@
         /* morekeys_tablet_comma */ "!fixedColumnOrder!4,:,!,\u061F,\u061B,-,!text/keyspec_left_double_angle_quote,!text/keyspec_right_double_angle_quote",
         // U+064B: "ً" ARABIC FATHATAN
         /* keyhintlabel_period */ "\u064B",
-        /* morekeys_tablet_period */ "!text/morekeys_arabic_diacritics",
         // U+00BF: "¿" INVERTED QUESTION MARK
         /* morekeys_question */ "?,\u00BF",
         /* morekeys_h ~ */
@@ -1618,9 +1664,6 @@
         // Note: The space character is needed as a preceding letter to draw Arabic diacritics characters correctly.
         /* morekeys_arabic_diacritics */ "!fixedColumnOrder!7, \u0655|\u0655, \u0652|\u0652, \u0651|\u0651, \u064C|\u064C, \u064D|\u064D, \u064B|\u064B, \u0654|\u0654, \u0656|\u0656, \u0670|\u0670, \u0653|\u0653, \u064F|\u064F, \u0650|\u0650, \u064E|\u064E,\u0640\u0640\u0640|\u0640",
         /* keyhintlabel_tablet_comma */ "\u061F",
-        /* keyspec_period */ null,
-        /* morekeys_period */ "!text/morekeys_arabic_diacritics",
-        /* keyspec_tablet_period */ null,
         /* keyhintlabel_tablet_period */ "\u064B",
         /* keyspec_symbols_question */ "\u061F",
         /* keyspec_symbols_semicolon */ "\u061B",
@@ -1629,8 +1672,9 @@
         /* morekeys_symbols_semicolon */ ";",
         // U+2030: "‰" PER MILLE SIGN
         /* morekeys_symbols_percent */ "\\%,\u2030",
-        /* morekeys_v ~ */
-        null, null, null, null, null, null, null, null, null, null, null, null, null,
+        /* label_go_key ~ */
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null,
         /* ~ morekeys_plus */
         // U+2264: "≤" LESS-THAN OR EQUAL TO
         // U+2265: "≥" GREATER-THAN EQUAL TO
@@ -1644,13 +1688,16 @@
 
     /* Locale fi: Finnish */
     private static final String[] TEXTS_fi = {
+        // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+        // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
         // U+00E6: "æ" LATIN SMALL LETTER AE
         // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
         // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
         // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
         // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
         // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
-        /* morekeys_a */ "\u00E6,\u00E0,\u00E1,\u00E2,\u00E3,\u0101",
+        /* morekeys_a */ "\u00E4,\u00E5,\u00E6,\u00E0,\u00E1,\u00E2,\u00E3,\u0101",
+        // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
         // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
         // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
         // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
@@ -1658,25 +1705,26 @@
         // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
         // U+0153: "œ" LATIN SMALL LIGATURE OE
         // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
-        /* morekeys_o */ "\u00F8,\u00F4,\u00F2,\u00F3,\u00F5,\u0153,\u014D",
+        /* morekeys_o */ "\u00F6,\u00F8,\u00F4,\u00F2,\u00F3,\u00F5,\u0153,\u014D",
+        /* morekeys_e */ null,
         // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
         /* morekeys_u */ "\u00FC",
         /* keylabel_to_alpha ~ */
-        null, null, null, null, null, null, null,
-        /* ~ single_quotes */
+        null, null, null, null, null,
+        /* ~ double_quotes */
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
         /* morekeys_s */ "\u0161,\u00DF,\u015B",
-        /* keyspec_currency ~ */
+        /* single_quotes ~ */
         null, null, null,
-        /* ~ morekeys_d */
+        /* ~ morekeys_y */
         // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
         // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
         // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
         /* morekeys_z */ "\u017E,\u017A,\u017C",
-        /* morekeys_t ~ */
-        null, null, null, null, null, null, null, null,
+        /* morekeys_d ~ */
+        null, null, null, null, null, null, null, null, null,
         /* ~ morekeys_cyrillic_ie */
         // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
         /* keyspec_nordic_row1_11 */ "\u00E5",
@@ -1688,8 +1736,8 @@
         /* morekeys_nordic_row2_10 */ "\u00F8",
         /* keyspec_east_slavic_row1_9 ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null, null, null, null, null, null,
-        /* ~ additional_morekeys_symbols_0 */
+        null, null, null, null, null, null, null, null, null, null, null, null,
+        /* ~ morekeys_tablet_period */
         // U+00E6: "æ" LATIN SMALL LETTER AE
         /* morekeys_nordic_row2_11 */ "\u00E6",
     };
@@ -1716,13 +1764,6 @@
         // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
         // U+00BA: "º" MASCULINE ORDINAL INDICATOR
         /* morekeys_o */ "\u00F4,\u0153,%,\u00F6,\u00F2,\u00F3,\u00F5,\u00F8,\u014D,\u00BA",
-        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-        /* morekeys_u */ "\u00F9,\u00FB,%,\u00FC,\u00FA,\u016B",
-        /* keylabel_to_alpha */ null,
         // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
         // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
         // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
@@ -1731,6 +1772,13 @@
         // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
         // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
         /* morekeys_e */ "\u00E9,\u00E8,\u00EA,\u00EB,%,\u0119,\u0117,\u0113",
+        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+        /* morekeys_u */ "\u00F9,\u00FB,%,\u00FC,\u00FA,\u016B",
+        /* keylabel_to_alpha */ null,
         // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
         // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
         // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
@@ -1738,20 +1786,22 @@
         // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
         // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
         /* morekeys_i */ "\u00EE,%,\u00EF,\u00EC,\u00ED,\u012F,\u012B",
+        /* morekeys_n */ null,
         // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
         // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
         // U+010D: "č" LATIN SMALL LETTER C WITH CARON
         /* morekeys_c */ "\u00E7,%,\u0107,\u010D",
         /* double_quotes ~ */
-        null, null, null, null, null,
+        null, null, null, null,
         /* ~ keyspec_currency */
         // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
         /* morekeys_y */ "%,\u00FF",
-        /* morekeys_d ~ */
+        /* morekeys_z ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null, null, null, null, null, null, null, null,
-        /* ~ keyspec_tablet_comma */
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null,
+        /* ~ keyspec_tablet_period */
         // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
         /* keyspec_swiss_row1_11 */ "\u00E8",
         // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
@@ -1789,13 +1839,6 @@
         // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
         // U+00BA: "º" MASCULINE ORDINAL INDICATOR
         /* morekeys_o */ "\u00F3,\u00F2,\u00F6,\u00F4,\u00F5,\u00F8,\u0153,\u014D,\u00BA",
-        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-        /* morekeys_u */ "\u00FA,\u00FC,\u00F9,\u00FB,\u016B",
-        /* keylabel_to_alpha */ null,
         // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
         // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
         // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
@@ -1804,6 +1847,13 @@
         // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
         // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
         /* morekeys_e */ "\u00E9,\u00E8,\u00EB,\u00EA,\u0119,\u0117,\u0113",
+        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+        /* morekeys_u */ "\u00FA,\u00FC,\u00F9,\u00FB,\u016B",
+        /* keylabel_to_alpha */ null,
         // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
         // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
         // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
@@ -1811,29 +1861,28 @@
         // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
         // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
         /* morekeys_i */ "\u00ED,\u00EF,\u00EC,\u00EE,\u012F,\u012B",
+        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+        // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+        /* morekeys_n */ "\u00F1,\u0144",
         // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
         // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
         // U+010D: "č" LATIN SMALL LETTER C WITH CARON
         /* morekeys_c */ "\u00E7,\u0107,\u010D",
-        /* double_quotes */ null,
-        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
-        // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
-        /* morekeys_n */ "\u00F1,\u0144",
     };
 
     /* Locale hi: Hindi */
     private static final String[] TEXTS_hi = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+0915: "क" DEVANAGARI LETTER KA
         // U+0916: "ख" DEVANAGARI LETTER KHA
         // U+0917: "ग" DEVANAGARI LETTER GA
         /* keylabel_to_alpha */ "\u0915\u0916\u0917",
-        /* morekeys_e ~ */
-        null, null, null, null, null, null, null,
-        /* ~ morekeys_s */
+        /* morekeys_i ~ */
+        null, null, null, null, null, null,
+        /* ~ single_quotes */
         // U+20B9: "₹" INDIAN RUPEE SIGN
         /* keyspec_currency */ "\u20B9",
         /* morekeys_y ~ */
@@ -1872,6 +1921,40 @@
         /* additional_morekeys_symbols_8 */ "8",
         /* additional_morekeys_symbols_9 */ "9",
         /* additional_morekeys_symbols_0 */ "0",
+        /* morekeys_tablet_period */ "!autoColumnOrder!8,\\,,.,',#,),(,/,;,@,:,-,\",+,\\%,&",
+        /* morekeys_nordic_row2_11 ~ */
+        null, null, null,
+        /* ~ keyspec_tablet_comma */
+        // U+0964: "।" DEVANAGARI DANDA
+        /* keyspec_period */ "\u0964",
+        /* morekeys_period */ "!autoColumnOrder!9,\\,,.,?,!,#,),(,/,;,',@,:,-,\",+,\\%,&",
+        /* keyspec_tablet_period */ "\u0964",
+    };
+
+    /* Locale hi_ZZ: Hindi (ZZ) */
+    private static final String[] TEXTS_hi_ZZ = {
+        /* morekeys_a ~ */
+        null, null, null, null, null, null, null, null, null, null, null,
+        /* ~ single_quotes */
+        // U+20B9: "₹" INDIAN RUPEE SIGN
+        /* keyspec_currency */ "\u20B9",
+        /* morekeys_y ~ */
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null,
+        /* ~ morekeys_symbols_percent */
+        /* label_go_key */ "Go",
+        /* label_send_key */ "Send",
+        /* label_next_key */ "Next",
+        /* label_done_key */ "Done",
+        /* label_search_key */ "Search",
+        /* label_previous_key */ "Prev",
+        /* label_pause_key */ "Pause",
+        /* label_wait_key */ "Wait",
     };
 
     /* Locale hr: Croatian */
@@ -1879,27 +1962,27 @@
         /* morekeys_a ~ */
         null, null, null, null, null, null,
         /* ~ morekeys_i */
+        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+        // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+        /* morekeys_n */ "\u00F1,\u0144",
         // U+010D: "č" LATIN SMALL LETTER C WITH CARON
         // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
         // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
         /* morekeys_c */ "\u010D,\u0107,\u00E7",
         /* double_quotes */ "!text/double_9qm_rqm",
-        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
-        // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
-        /* morekeys_n */ "\u00F1,\u0144",
-        /* single_quotes */ "!text/single_9qm_rqm",
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         /* morekeys_s */ "\u0161,\u015B,\u00DF",
+        /* single_quotes */ "!text/single_9qm_rqm",
         /* keyspec_currency */ null,
         /* morekeys_y */ null,
-        // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
-        /* morekeys_d */ "\u0111",
         // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
         // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
         // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
         /* morekeys_z */ "\u017E,\u017A,\u017C",
+        // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
+        /* morekeys_d */ "\u0111",
         /* morekeys_t ~ */
         null, null, null,
         /* ~ morekeys_g */
@@ -1928,14 +2011,6 @@
         // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
         // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
         /* morekeys_o */ "\u00F3,\u00F6,\u0151,\u00F4,\u00F2,\u00F5,\u0153,\u00F8,\u014D",
-        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-        // U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
-        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-        /* morekeys_u */ "\u00FA,\u00FC,\u0171,\u00FB,\u00F9,\u016B",
-        /* keylabel_to_alpha */ null,
         // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
         // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
         // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
@@ -1944,6 +2019,14 @@
         // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
         // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
         /* morekeys_e */ "\u00E9,\u00E8,\u00EA,\u00EB,\u0119,\u0117,\u0113",
+        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+        // U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
+        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+        /* morekeys_u */ "\u00FA,\u00FC,\u0171,\u00FB,\u00F9,\u016B",
+        /* keylabel_to_alpha */ null,
         // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
         // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
         // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
@@ -1951,12 +2034,13 @@
         // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
         // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
         /* morekeys_i */ "\u00ED,\u00EE,\u00EF,\u00EC,\u012F,\u012B",
+        /* morekeys_n */ null,
         /* morekeys_c */ null,
         /* double_quotes */ "!text/double_9qm_rqm",
-        /* morekeys_n */ null,
+        /* morekeys_s */ null,
         /* single_quotes */ "!text/single_9qm_rqm",
-        /* morekeys_s ~ */
-        null, null, null, null, null, null, null, null,
+        /* keyspec_currency ~ */
+        null, null, null, null, null, null, null,
         /* ~ morekeys_g */
         /* single_angle_quotes */ "!text/single_raqm_laqm",
         /* double_angle_quotes */ "!text/double_raqm_laqm",
@@ -1965,19 +2049,21 @@
     /* Locale hy_AM: Armenian (Armenia) */
     private static final String[] TEXTS_hy_AM = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+0531: "Ա" ARMENIAN CAPITAL LETTER AYB
         // U+0532: "Բ" ARMENIAN CAPITAL LETTER BEN
         // U+0533: "Գ" ARMENIAN CAPITAL LETTER GIM
         /* keylabel_to_alpha */ "\u0531\u0532\u0533",
-        /* morekeys_e ~ */
+        /* morekeys_i ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null,
-        /* ~ morekeys_nordic_row2_11 */
+        null, null, null,
+        /* ~ additional_morekeys_symbols_0 */
+        /* morekeys_tablet_period */ "!text/morekeys_punctuation",
+        /* morekeys_nordic_row2_11 */ null,
         // U+055E: "՞" ARMENIAN QUESTION MARK
         // U+055C: "՜" ARMENIAN EXCLAMATION MARK
         // U+055A: "՚" ARMENIAN APOSTROPHE
@@ -1990,6 +2076,10 @@
         // U+055F: "՟" ARMENIAN ABBREVIATION MARK
         /* morekeys_punctuation */ "!autoColumnOrder!8,\\,,\u055E,\u055C,.,\u055A,\u0559,?,!,\u055D,\u055B,\u058A,\u00BB,\u00AB,\u055F,;,:",
         /* keyspec_tablet_comma */ "\u055D",
+        // U+0589: "։" ARMENIAN FULL STOP
+        /* keyspec_period */ "\u0589",
+        /* morekeys_period */ null,
+        /* keyspec_tablet_period */ "\u0589",
         /* keyspec_swiss_row1_11 ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null,
@@ -2002,21 +2092,14 @@
         /* keyspec_comma */ "\u055D",
         /* morekeys_tablet_comma */ null,
         /* keyhintlabel_period */ null,
-        /* morekeys_tablet_period */ "!text/morekeys_punctuation",
         // U+055E: "՞" ARMENIAN QUESTION MARK
         // U+00BF: "¿" INVERTED QUESTION MARK
         /* morekeys_question */ "\u055E,\u00BF",
         /* morekeys_h ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null,
-        /* ~ keyhintlabel_tablet_comma */
-        // U+0589: "։" ARMENIAN FULL STOP
-        /* keyspec_period */ "\u0589",
-        /* morekeys_period */ null,
-        /* keyspec_tablet_period */ "\u0589",
-        /* keyhintlabel_tablet_period ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null,
         /* ~ morekeys_greater_than */
         // U+055C: "՜" ARMENIAN EXCLAMATION MARK
         // U+00A1: "¡" INVERTED EXCLAMATION MARK
@@ -2043,13 +2126,6 @@
         // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
         // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
         /* morekeys_o */ "\u00F3,\u00F6,\u00F4,\u00F2,\u00F5,\u0153,\u00F8,\u014D",
-        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-        /* morekeys_u */ "\u00FA,\u00FC,\u00FB,\u00F9,\u016B",
-        /* keylabel_to_alpha */ null,
         // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
         // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
         // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
@@ -2058,6 +2134,13 @@
         // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
         // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
         /* morekeys_e */ "\u00E9,\u00EB,\u00E8,\u00EA,\u0119,\u0117,\u0113",
+        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+        /* morekeys_u */ "\u00FA,\u00FC,\u00FB,\u00F9,\u016B",
+        /* keylabel_to_alpha */ null,
         // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
         // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
         // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
@@ -2065,18 +2148,18 @@
         // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
         // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
         /* morekeys_i */ "\u00ED,\u00EF,\u00EE,\u00EC,\u012F,\u012B",
+        /* morekeys_n */ null,
         /* morekeys_c */ null,
         /* double_quotes */ "!text/double_9qm_lqm",
-        /* morekeys_n */ null,
-        /* single_quotes */ "!text/single_9qm_lqm",
         /* morekeys_s */ null,
+        /* single_quotes */ "!text/single_9qm_lqm",
         /* keyspec_currency */ null,
         // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
         // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
         /* morekeys_y */ "\u00FD,\u00FF",
+        /* morekeys_z */ null,
         // U+00F0: "ð" LATIN SMALL LETTER ETH
         /* morekeys_d */ "\u00F0",
-        /* morekeys_z */ null,
         // U+00FE: "þ" LATIN SMALL LETTER THORN
         /* morekeys_t */ "\u00FE",
     };
@@ -2103,13 +2186,6 @@
         // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
         // U+00BA: "º" MASCULINE ORDINAL INDICATOR
         /* morekeys_o */ "\u00F2,\u00F3,\u00F4,\u00F6,\u00F5,\u0153,\u00F8,\u014D,\u00BA",
-        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-        /* morekeys_u */ "\u00F9,\u00FA,\u00FB,\u00FC,\u016B",
-        /* keylabel_to_alpha */ null,
         // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
         // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
         // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
@@ -2118,6 +2194,13 @@
         // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
         // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
         /* morekeys_e */ "\u00E8,\u00E9,\u00EA,\u00EB,\u0119,\u0117,\u0113",
+        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+        /* morekeys_u */ "\u00F9,\u00FA,\u00FB,\u00FC,\u016B",
+        /* keylabel_to_alpha */ null,
         // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
         // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
         // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
@@ -2125,12 +2208,12 @@
         // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
         // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
         /* morekeys_i */ "\u00EC,\u00ED,\u00EE,\u00EF,\u012F,\u012B",
-        /* morekeys_c ~ */
+        /* morekeys_n ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null,
-        /* ~ keyspec_tablet_comma */
+        null, null, null, null, null, null, null, null, null,
+        /* ~ keyspec_tablet_period */
         // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
         /* keyspec_swiss_row1_11 */ "\u00FC",
         // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
@@ -2148,27 +2231,26 @@
     /* Locale iw: Hebrew */
     private static final String[] TEXTS_iw = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+05D0: "א" HEBREW LETTER ALEF
         // U+05D1: "ב" HEBREW LETTER BET
         // U+05D2: "ג" HEBREW LETTER GIMEL
         /* keylabel_to_alpha */ "\u05D0\u05D1\u05D2",
-        /* morekeys_e ~ */
+        /* morekeys_i ~ */
         null, null, null,
         /* ~ morekeys_c */
         /* double_quotes */ "!text/double_rqm_9qm",
-        /* morekeys_n */ null,
-        /* single_quotes */ "!text/single_rqm_9qm",
         /* morekeys_s */ null,
+        /* single_quotes */ "!text/single_rqm_9qm",
         // U+20AA: "₪" NEW SHEQEL SIGN
         /* keyspec_currency */ "\u20AA",
         /* morekeys_y ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null,
         /* ~ morekeys_swiss_row2_11 */
         // U+2605: "★" BLACK STAR
         /* morekeys_star */ "\u2605",
@@ -2198,6 +2280,7 @@
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null,
         /* ~ morekeys_currency_dollar */
         // U+00B1: "±" PLUS-MINUS SIGN
         // U+FB29: "﬩" HEBREW LETTER ALTERNATIVE PLUS SIGN
@@ -2207,34 +2290,34 @@
     /* Locale ka_GE: Georgian (Georgia) */
     private static final String[] TEXTS_ka_GE = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+10D0: "ა" GEORGIAN LETTER AN
         // U+10D1: "ბ" GEORGIAN LETTER BAN
         // U+10D2: "გ" GEORGIAN LETTER GAN
         /* keylabel_to_alpha */ "\u10D0\u10D1\u10D2",
-        /* morekeys_e ~ */
+        /* morekeys_i ~ */
         null, null, null,
         /* ~ morekeys_c */
         /* double_quotes */ "!text/double_9qm_lqm",
-        /* morekeys_n */ null,
+        /* morekeys_s */ null,
         /* single_quotes */ "!text/single_9qm_lqm",
     };
 
     /* Locale kk: Kazakh */
     private static final String[] TEXTS_kk = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+0410: "А" CYRILLIC CAPITAL LETTER A
         // U+0411: "Б" CYRILLIC CAPITAL LETTER BE
         // U+0412: "В" CYRILLIC CAPITAL LETTER VE
         /* keylabel_to_alpha */ "\u0410\u0411\u0412",
-        /* morekeys_e ~ */
+        /* morekeys_i ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null,
+        null, null,
         /* ~ morekeys_k */
         // U+0451: "ё" CYRILLIC SMALL LETTER IO
         /* morekeys_cyrillic_ie */ "\u0451",
@@ -2255,7 +2338,7 @@
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null,
         /* ~ morekeys_w */
         // U+0456: "і" CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
         /* morekeys_east_slavic_row2_2 */ "\u0456",
@@ -2270,7 +2353,8 @@
         /* morekeys_cyrillic_o */ "\u04E9",
         /* morekeys_cyrillic_i ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null,
         /* ~ keyspec_x */
         // U+04BB: "һ" CYRILLIC SMALL LETTER SHHA
         /* morekeys_east_slavic_row2_11 */ "\u04BB",
@@ -2283,14 +2367,14 @@
     /* Locale km_KH: Khmer (Cambodia) */
     private static final String[] TEXTS_km_KH = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+1780: "ក" KHMER LETTER KA
         // U+1781: "ខ" KHMER LETTER KHA
         // U+1782: "គ" KHMER LETTER KO
         /* keylabel_to_alpha */ "\u1780\u1781\u1782",
-        /* morekeys_e ~ */
+        /* morekeys_i ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
@@ -2298,7 +2382,8 @@
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null,
         /* ~ morekeys_cyrillic_a */
         // U+17DB: "៛" KHMER CURRENCY SYMBOL RIEL
         /* morekeys_currency_dollar */ "\u17DB,\u00A2,\u00A3,\u20AC,\u00A5,\u20B1",
@@ -2307,16 +2392,16 @@
     /* Locale kn_IN: Kannada (India) */
     private static final String[] TEXTS_kn_IN = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+0C85: "ಅ" KANNADA LETTER A
         // U+0C86: "ಆ" KANNADA LETTER AA
         // U+0C87: "ಇ" KANNADA LETTER I
         /* keylabel_to_alpha */ "\u0C85\u0C86\u0C87",
-        /* morekeys_e ~ */
-        null, null, null, null, null, null, null,
-        /* ~ morekeys_s */
+        /* morekeys_i ~ */
+        null, null, null, null, null, null,
+        /* ~ single_quotes */
         // U+20B9: "₹" INDIAN RUPEE SIGN
         /* keyspec_currency */ "\u20B9",
     };
@@ -2324,16 +2409,16 @@
     /* Locale ky: Kirghiz */
     private static final String[] TEXTS_ky = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+0410: "А" CYRILLIC CAPITAL LETTER A
         // U+0411: "Б" CYRILLIC CAPITAL LETTER BE
         // U+0412: "В" CYRILLIC CAPITAL LETTER VE
         /* keylabel_to_alpha */ "\u0410\u0411\u0412",
-        /* morekeys_e ~ */
+        /* morekeys_i ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null,
+        null, null,
         /* ~ morekeys_k */
         // U+0451: "ё" CYRILLIC SMALL LETTER IO
         /* morekeys_cyrillic_ie */ "\u0451",
@@ -2354,7 +2439,7 @@
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null,
         /* ~ morekeys_east_slavic_row2_2 */
         // U+04AF: "ү" CYRILLIC SMALL LETTER STRAIGHT U
         /* morekeys_cyrillic_u */ "\u04AF",
@@ -2368,16 +2453,16 @@
     /* Locale lo_LA: Lao (Laos) */
     private static final String[] TEXTS_lo_LA = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+0E81: "ກ" LAO LETTER KO
         // U+0E82: "ຂ" LAO LETTER KHO SUNG
         // U+0E84: "ຄ" LAO LETTER KHO TAM
         /* keylabel_to_alpha */ "\u0E81\u0E82\u0E84",
-        /* morekeys_e ~ */
-        null, null, null, null, null, null, null,
-        /* ~ morekeys_s */
+        /* morekeys_i ~ */
+        null, null, null, null, null, null,
+        /* ~ single_quotes */
         // U+20AD: "₭" KIP SIGN
         /* keyspec_currency */ "\u20AD",
     };
@@ -2403,6 +2488,15 @@
         // U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE
         // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
         /* morekeys_o */ "\u00F6,\u00F5,\u00F2,\u00F3,\u00F4,\u0153,\u0151,\u00F8",
+        // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+        // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+        // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+        // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+        // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+        // U+011B: "ě" LATIN SMALL LETTER E WITH CARON
+        /* morekeys_e */ "\u0117,\u0119,\u0113,\u00E8,\u00E9,\u00EA,\u00EB,\u011B",
         // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
         // U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK
         // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
@@ -2414,15 +2508,6 @@
         // U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
         /* morekeys_u */ "\u016B,\u0173,\u00FC,\u016B,\u00F9,\u00FA,\u00FB,\u016F,\u0171",
         /* keylabel_to_alpha */ null,
-        // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
-        // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
-        // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
-        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
-        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
-        // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
-        // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
-        // U+011B: "ě" LATIN SMALL LETTER E WITH CARON
-        /* morekeys_e */ "\u0117,\u0119,\u0113,\u00E8,\u00E9,\u00EA,\u00EB,\u011B",
         // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
         // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
         // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
@@ -2431,31 +2516,31 @@
         // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
         // U+0131: "ı" LATIN SMALL LETTER DOTLESS I
         /* morekeys_i */ "\u012F,\u012B,\u00EC,\u00ED,\u00EE,\u00EF,\u0131",
+        // U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
+        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+        // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+        /* morekeys_n */ "\u0146,\u00F1,\u0144",
         // U+010D: "č" LATIN SMALL LETTER C WITH CARON
         // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
         // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
         /* morekeys_c */ "\u010D,\u00E7,\u0107",
         /* double_quotes */ "!text/double_9qm_lqm",
-        // U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
-        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
-        // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
-        /* morekeys_n */ "\u0146,\u00F1,\u0144",
-        /* single_quotes */ "!text/single_9qm_lqm",
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
         // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
         /* morekeys_s */ "\u0161,\u00DF,\u015B,\u015F",
+        /* single_quotes */ "!text/single_9qm_lqm",
         /* keyspec_currency */ null,
         // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
         // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
         /* morekeys_y */ "\u00FD,\u00FF",
-        // U+010F: "ď" LATIN SMALL LETTER D WITH CARON
-        /* morekeys_d */ "\u010F",
         // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
         // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
         // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
         /* morekeys_z */ "\u017E,\u017C,\u017A",
+        // U+010F: "ď" LATIN SMALL LETTER D WITH CARON
+        /* morekeys_d */ "\u010F",
         // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
         // U+0165: "ť" LATIN SMALL LETTER T WITH CARON
         /* morekeys_t */ "\u0163,\u0165",
@@ -2498,6 +2583,15 @@
         // U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE
         // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
         /* morekeys_o */ "\u00F2,\u00F3,\u00F4,\u00F5,\u00F6,\u0153,\u0151,\u00F8",
+        // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+        // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+        // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+        // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+        // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+        // U+011B: "ě" LATIN SMALL LETTER E WITH CARON
+        /* morekeys_e */ "\u0113,\u0117,\u00E8,\u00E9,\u00EA,\u00EB,\u0119,\u011B",
         // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
         // U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK
         // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
@@ -2508,15 +2602,6 @@
         // U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
         /* morekeys_u */ "\u016B,\u0173,\u00F9,\u00FA,\u00FB,\u00FC,\u016F,\u0171",
         /* keylabel_to_alpha */ null,
-        // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
-        // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
-        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
-        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
-        // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
-        // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
-        // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
-        // U+011B: "ě" LATIN SMALL LETTER E WITH CARON
-        /* morekeys_e */ "\u0113,\u0117,\u00E8,\u00E9,\u00EA,\u00EB,\u0119,\u011B",
         // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
         // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
         // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
@@ -2525,31 +2610,31 @@
         // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
         // U+0131: "ı" LATIN SMALL LETTER DOTLESS I
         /* morekeys_i */ "\u012B,\u012F,\u00EC,\u00ED,\u00EE,\u00EF,\u0131",
+        // U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
+        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+        // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+        /* morekeys_n */ "\u0146,\u00F1,\u0144",
         // U+010D: "č" LATIN SMALL LETTER C WITH CARON
         // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
         // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
         /* morekeys_c */ "\u010D,\u00E7,\u0107",
         /* double_quotes */ "!text/double_9qm_lqm",
-        // U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
-        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
-        // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
-        /* morekeys_n */ "\u0146,\u00F1,\u0144",
-        /* single_quotes */ "!text/single_9qm_lqm",
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
         // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
         /* morekeys_s */ "\u0161,\u00DF,\u015B,\u015F",
+        /* single_quotes */ "!text/single_9qm_lqm",
         /* keyspec_currency */ null,
         // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
         // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
         /* morekeys_y */ "\u00FD,\u00FF",
-        // U+010F: "ď" LATIN SMALL LETTER D WITH CARON
-        /* morekeys_d */ "\u010F",
         // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
         // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
         // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
         /* morekeys_z */ "\u017E,\u017C,\u017A",
+        // U+010F: "ď" LATIN SMALL LETTER D WITH CARON
+        /* morekeys_d */ "\u010F",
         // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
         // U+0165: "ť" LATIN SMALL LETTER T WITH CARON
         /* morekeys_t */ "\u0163,\u0165",
@@ -2574,21 +2659,21 @@
     /* Locale mk: Macedonian */
     private static final String[] TEXTS_mk = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+0410: "А" CYRILLIC CAPITAL LETTER A
         // U+0411: "Б" CYRILLIC CAPITAL LETTER BE
         // U+0412: "В" CYRILLIC CAPITAL LETTER VE
         /* keylabel_to_alpha */ "\u0410\u0411\u0412",
-        /* morekeys_e ~ */
+        /* morekeys_i ~ */
         null, null, null,
         /* ~ morekeys_c */
         /* double_quotes */ "!text/double_9qm_lqm",
-        /* morekeys_n */ null,
+        /* morekeys_s */ null,
         /* single_quotes */ "!text/single_9qm_lqm",
-        /* morekeys_s ~ */
-        null, null, null, null, null, null, null, null, null, null, null, null,
+        /* keyspec_currency ~ */
+        null, null, null, null, null, null, null, null, null, null, null,
         /* ~ morekeys_k */
         // U+0450: "ѐ" CYRILLIC SMALL LETTER IE WITH GRAVE
         /* morekeys_cyrillic_ie */ "\u0450",
@@ -2597,7 +2682,7 @@
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null,
         /* ~ morekeys_cyrillic_o */
         // U+045D: "ѝ" CYRILLIC SMALL LETTER I WITH GRAVE
         /* morekeys_cyrillic_i */ "\u045D",
@@ -2614,14 +2699,14 @@
     /* Locale ml_IN: Malayalam (India) */
     private static final String[] TEXTS_ml_IN = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+0D05: "അ" MALAYALAM LETTER A
         /* keylabel_to_alpha */ "\u0D05",
-        /* morekeys_e ~ */
-        null, null, null, null, null, null, null,
-        /* ~ morekeys_s */
+        /* morekeys_i ~ */
+        null, null, null, null, null, null,
+        /* ~ single_quotes */
         // U+20B9: "₹" INDIAN RUPEE SIGN
         /* keyspec_currency */ "\u20B9",
     };
@@ -2629,16 +2714,16 @@
     /* Locale mn_MN: Mongolian (Mongolia) */
     private static final String[] TEXTS_mn_MN = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+0410: "А" CYRILLIC CAPITAL LETTER A
         // U+0411: "Б" CYRILLIC CAPITAL LETTER BE
         // U+0412: "В" CYRILLIC CAPITAL LETTER VE
         /* keylabel_to_alpha */ "\u0410\u0411\u0412",
-        /* morekeys_e ~ */
-        null, null, null, null, null, null, null,
-        /* ~ morekeys_s */
+        /* morekeys_i ~ */
+        null, null, null, null, null, null,
+        /* ~ single_quotes */
         // U+20AE: "₮" TUGRIK SIGN
         /* keyspec_currency */ "\u20AE",
     };
@@ -2646,16 +2731,16 @@
     /* Locale mr_IN: Marathi (India) */
     private static final String[] TEXTS_mr_IN = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+0915: "क" DEVANAGARI LETTER KA
         // U+0916: "ख" DEVANAGARI LETTER KHA
         // U+0917: "ग" DEVANAGARI LETTER GA
         /* keylabel_to_alpha */ "\u0915\u0916\u0917",
-        /* morekeys_e ~ */
-        null, null, null, null, null, null, null,
-        /* ~ morekeys_s */
+        /* morekeys_i ~ */
+        null, null, null, null, null, null,
+        /* ~ single_quotes */
         // U+20B9: "₹" INDIAN RUPEE SIGN
         /* keyspec_currency */ "\u20B9",
         /* morekeys_y ~ */
@@ -2696,68 +2781,26 @@
         /* additional_morekeys_symbols_0 */ "0",
     };
 
-    /* Locale my_MM: Burmese (Myanmar) */
-    private static final String[] TEXTS_my_MM = {
-        /* morekeys_a ~ */
-        null, null, null,
-        /* ~ morekeys_u */
-        // Label for "switch to alphabetic" key.
-        // U+1000: "က" MYANMAR LETTER KA
-        // U+1001: "ခ" MYANMAR LETTER KHA
-        // U+1002: "ဂ" MYANMAR LETTER GA
-        /* keylabel_to_alpha */ "\u1000\u1001\u1002",
-        /* morekeys_e ~ */
-        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null,
-        /* ~ morekeys_nordic_row2_11 */
-        /* morekeys_punctuation */ "!autoColumnOrder!9,\u104A,.,?,!,#,),(,/,;,...,',@,:,-,\",+,\\%,&",
-        // U+104A: "၊" MYANMAR SIGN LITTLE SECTION
-        // U+104B: "။" MYANMAR SIGN SECTION
-        /* keyspec_tablet_comma */ "\u104A",
-        /* keyspec_swiss_row1_11 ~ */
-        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null, null,
-        /* ~ keyspec_comma */
-        /* morekeys_tablet_comma */ "\\,",
-        /* keyhintlabel_period */ "\u104A",
-        /* morekeys_tablet_period ~ */
-        null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        /* ~ keyspec_south_slavic_row3_8 */
-        /* morekeys_tablet_punctuation */ "!autoColumnOrder!8,.,',#,),(,/,;,@,...,:,-,\",+,\\%,&",
-        /* keyspec_spanish_row2_10 ~ */
-        null, null, null, null, null, null,
-        /* ~ keyhintlabel_tablet_comma */
-        /* keyspec_period */ "\u104B",
-        /* morekeys_period */ null,
-        /* keyspec_tablet_period */ "\u104B",
-    };
-
     /* Locale nb: Norwegian Bokmål */
     private static final String[] TEXTS_nb = {
-        // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+        // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+        // U+00E6: "æ" LATIN SMALL LETTER AE
         // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+        // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
         // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
         // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
         // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
         // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
-        /* morekeys_a */ "\u00E0,\u00E4,\u00E1,\u00E2,\u00E3,\u0101",
+        /* morekeys_a */ "\u00E5,\u00E6,\u00E4,\u00E0,\u00E1,\u00E2,\u00E3,\u0101",
+        // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+        // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
         // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
         // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
         // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
-        // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
         // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
         // U+0153: "œ" LATIN SMALL LIGATURE OE
         // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
-        /* morekeys_o */ "\u00F4,\u00F2,\u00F3,\u00F6,\u00F5,\u0153,\u014D",
-        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-        /* morekeys_u */ "\u00FC,\u00FB,\u00F9,\u00FA,\u016B",
-        /* keylabel_to_alpha */ null,
+        /* morekeys_o */ "\u00F8,\u00F6,\u00F4,\u00F2,\u00F3,\u00F5,\u0153,\u014D",
         // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
         // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
         // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
@@ -2766,13 +2809,20 @@
         // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
         // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
         /* morekeys_e */ "\u00E9,\u00E8,\u00EA,\u00EB,\u0119,\u0117,\u0113",
-        /* morekeys_i */ null,
-        /* morekeys_c */ null,
+        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+        /* morekeys_u */ "\u00FC,\u00FB,\u00F9,\u00FA,\u016B",
+        /* keylabel_to_alpha ~ */
+        null, null, null, null,
+        /* ~ morekeys_c */
         /* double_quotes */ "!text/double_9qm_rqm",
-        /* morekeys_n */ null,
+        /* morekeys_s */ null,
         /* single_quotes */ "!text/single_9qm_rqm",
-        /* morekeys_s ~ */
-        null, null, null, null, null, null, null, null, null, null, null, null, null,
+        /* keyspec_currency ~ */
+        null, null, null, null, null, null, null, null, null, null, null, null,
         /* ~ morekeys_cyrillic_ie */
         // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
         /* keyspec_nordic_row1_11 */ "\u00E5",
@@ -2784,8 +2834,8 @@
         /* morekeys_nordic_row2_10 */ "\u00F6",
         /* keyspec_east_slavic_row1_9 ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null, null, null, null, null, null,
-        /* ~ additional_morekeys_symbols_0 */
+        null, null, null, null, null, null, null, null, null, null, null, null,
+        /* ~ morekeys_tablet_period */
         // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
         /* morekeys_nordic_row2_11 */ "\u00E4",
     };
@@ -2793,16 +2843,16 @@
     /* Locale ne_NP: Nepali (Nepal) */
     private static final String[] TEXTS_ne_NP = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+0915: "क" DEVANAGARI LETTER KA
         // U+0916: "ख" DEVANAGARI LETTER KHA
         // U+0917: "ग" DEVANAGARI LETTER GA
         /* keylabel_to_alpha */ "\u0915\u0916\u0917",
-        /* morekeys_e ~ */
-        null, null, null, null, null, null, null,
-        /* ~ morekeys_s */
+        /* morekeys_i ~ */
+        null, null, null, null, null, null,
+        /* ~ single_quotes */
         // U+0930/U+0941/U+002E "रु." NEPALESE RUPEE SIGN
         /* keyspec_currency */ "\u0930\u0941.",
         /* morekeys_y ~ */
@@ -2841,6 +2891,14 @@
         /* additional_morekeys_symbols_8 */ "8",
         /* additional_morekeys_symbols_9 */ "9",
         /* additional_morekeys_symbols_0 */ "0",
+        /* morekeys_tablet_period */ "!autoColumnOrder!8,.,\\,,',#,),(,/,;,@,:,-,\",+,\\%,&",
+        /* morekeys_nordic_row2_11 ~ */
+        null, null, null,
+        /* ~ keyspec_tablet_comma */
+        // U+0964: "।" DEVANAGARI DANDA
+        /* keyspec_period */ "\u0964",
+        /* morekeys_period */ "!autoColumnOrder!9,.,\\,,?,!,#,),(,/,;,',@,:,-,\",+,\\%,&",
+        /* keyspec_tablet_period */ "\u0964",
     };
 
     /* Locale nl: Dutch */
@@ -2863,13 +2921,6 @@
         // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
         // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
         /* morekeys_o */ "\u00F3,\u00F6,\u00F4,\u00F2,\u00F5,\u0153,\u00F8,\u014D",
-        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-        /* morekeys_u */ "\u00FA,\u00FC,\u00FB,\u00F9,\u016B",
-        /* keylabel_to_alpha */ null,
         // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
         // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
         // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
@@ -2878,6 +2929,13 @@
         // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
         // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
         /* morekeys_e */ "\u00E9,\u00EB,\u00EA,\u00E8,\u0119,\u0117,\u0113",
+        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+        /* morekeys_u */ "\u00FA,\u00FC,\u00FB,\u00F9,\u016B",
+        /* keylabel_to_alpha */ null,
         // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
         // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
         // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
@@ -2886,13 +2944,13 @@
         // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
         // U+0133: "ĳ" LATIN SMALL LIGATURE IJ
         /* morekeys_i */ "\u00ED,\u00EF,\u00EC,\u00EE,\u012F,\u012B,\u0133",
-        /* morekeys_c */ null,
-        /* double_quotes */ "!text/double_9qm_rqm",
         // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
         // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
         /* morekeys_n */ "\u00F1,\u0144",
-        /* single_quotes */ "!text/single_9qm_rqm",
+        /* morekeys_c */ null,
+        /* double_quotes */ "!text/double_9qm_rqm",
         /* morekeys_s */ null,
+        /* single_quotes */ "!text/single_9qm_rqm",
         /* keyspec_currency */ null,
         // U+0133: "ĳ" LATIN SMALL LIGATURE IJ
         /* morekeys_y */ "\u0133",
@@ -2919,8 +2977,6 @@
         // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
         // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
         /* morekeys_o */ "\u00F3,\u00F6,\u00F4,\u00F2,\u00F5,\u0153,\u00F8,\u014D",
-        /* morekeys_u */ null,
-        /* keylabel_to_alpha */ null,
         // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
         // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
         // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
@@ -2929,27 +2985,29 @@
         // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
         // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
         /* morekeys_e */ "\u0119,\u00E8,\u00E9,\u00EA,\u00EB,\u0117,\u0113",
-        /* morekeys_i */ null,
+        /* morekeys_u ~ */
+        null, null, null,
+        /* ~ morekeys_i */
+        // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+        /* morekeys_n */ "\u0144,\u00F1",
         // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
         // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
         // U+010D: "č" LATIN SMALL LETTER C WITH CARON
         /* morekeys_c */ "\u0107,\u00E7,\u010D",
         /* double_quotes */ "!text/double_9qm_rqm",
-        // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
-        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
-        /* morekeys_n */ "\u0144,\u00F1",
-        /* single_quotes */ "!text/single_9qm_rqm",
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         /* morekeys_s */ "\u015B,\u00DF,\u0161",
-        /* keyspec_currency ~ */
-        null, null, null,
-        /* ~ morekeys_d */
+        /* single_quotes */ "!text/single_9qm_rqm",
+        /* keyspec_currency */ null,
+        /* morekeys_y */ null,
         // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
         // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
         // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
         /* morekeys_z */ "\u017C,\u017A,\u017E",
+        /* morekeys_d */ null,
         /* morekeys_t */ null,
         // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
         /* morekeys_l */ "\u0142",
@@ -2976,13 +3034,6 @@
         // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
         // U+00BA: "º" MASCULINE ORDINAL INDICATOR
         /* morekeys_o */ "\u00F3,\u00F5,\u00F4,\u00F2,\u00F6,\u0153,\u00F8,\u014D,\u00BA",
-        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-        /* morekeys_u */ "\u00FA,\u00FC,\u00F9,\u00FB,\u016B",
-        /* keylabel_to_alpha */ null,
         // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
         // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
         // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
@@ -2991,6 +3042,13 @@
         // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
         // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
         /* morekeys_e */ "\u00E9,\u00EA,\u00E8,\u0119,\u0117,\u0113,\u00EB",
+        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+        /* morekeys_u */ "\u00FA,\u00FC,\u00F9,\u00FB,\u016B",
+        /* keylabel_to_alpha */ null,
         // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
         // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
         // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
@@ -2998,6 +3056,7 @@
         // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
         // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
         /* morekeys_i */ "\u00ED,\u00EE,\u00EC,\u00EF,\u012F,\u012B",
+        /* morekeys_n */ null,
         // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
         // U+010D: "č" LATIN SMALL LETTER C WITH CARON
         // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
@@ -3019,19 +3078,19 @@
 
     /* Locale ro: Romanian */
     private static final String[] TEXTS_ro = {
+        // U+0103: "ă" LATIN SMALL LETTER A WITH BREVE
         // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
         // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
-        // U+0103: "ă" LATIN SMALL LETTER A WITH BREVE
         // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
         // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
         // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
         // U+00E6: "æ" LATIN SMALL LETTER AE
         // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
         // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
-        /* morekeys_a */ "\u00E2,\u00E3,\u0103,\u00E0,\u00E1,\u00E4,\u00E6,\u00E5,\u0101",
+        /* morekeys_a */ "\u0103,\u00E2,\u00E3,\u00E0,\u00E1,\u00E4,\u00E6,\u00E5,\u0101",
         /* morekeys_o ~ */
         null, null, null, null,
-        /* ~ morekeys_e */
+        /* ~ keylabel_to_alpha */
         // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
         // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
         // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
@@ -3039,18 +3098,18 @@
         // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
         // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
         /* morekeys_i */ "\u00EE,\u00EF,\u00EC,\u00ED,\u012F,\u012B",
+        /* morekeys_n */ null,
         /* morekeys_c */ null,
         /* double_quotes */ "!text/double_9qm_rqm",
-        /* morekeys_n */ null,
-        /* single_quotes */ "!text/single_9qm_rqm",
         // U+0219: "ș" LATIN SMALL LETTER S WITH COMMA BELOW
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         /* morekeys_s */ "\u0219,\u00DF,\u015B,\u0161",
+        /* single_quotes */ "!text/single_9qm_rqm",
         /* keyspec_currency ~ */
         null, null, null, null,
-        /* ~ morekeys_z */
+        /* ~ morekeys_d */
         // U+021B: "ț" LATIN SMALL LETTER T WITH COMMA BELOW
         /* morekeys_t */ "\u021B",
     };
@@ -3058,21 +3117,21 @@
     /* Locale ru: Russian */
     private static final String[] TEXTS_ru = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+0410: "А" CYRILLIC CAPITAL LETTER A
         // U+0411: "Б" CYRILLIC CAPITAL LETTER BE
         // U+0412: "В" CYRILLIC CAPITAL LETTER VE
         /* keylabel_to_alpha */ "\u0410\u0411\u0412",
-        /* morekeys_e ~ */
+        /* morekeys_i ~ */
         null, null, null,
         /* ~ morekeys_c */
         /* double_quotes */ "!text/double_9qm_lqm",
-        /* morekeys_n */ null,
+        /* morekeys_s */ null,
         /* single_quotes */ "!text/single_9qm_lqm",
-        /* morekeys_s ~ */
-        null, null, null, null, null, null, null, null, null, null, null, null,
+        /* keyspec_currency ~ */
+        null, null, null, null, null, null, null, null, null, null, null,
         /* ~ morekeys_k */
         // U+0451: "ё" CYRILLIC SMALL LETTER IO
         /* morekeys_cyrillic_ie */ "\u0451",
@@ -3094,15 +3153,15 @@
     /* Locale si_LK: Sinhalese (Sri Lanka) */
     private static final String[] TEXTS_si_LK = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+0D85: "අ" SINHALA LETTER AYANNA
         // U+0D86: "ආ" SINHALA LETTER AAYANNA
         /* keylabel_to_alpha */ "\u0D85,\u0D86",
-        /* morekeys_e ~ */
-        null, null, null, null, null, null, null,
-        /* ~ morekeys_s */
+        /* morekeys_i ~ */
+        null, null, null, null, null, null,
+        /* ~ single_quotes */
         // U+0DBB/U+0DD4: "රු" SINHALA LETTER RAYANNA/SINHALA VOWEL SIGN KETTI PAA-PILLA
         /* keyspec_currency */ "\u0DBB\u0DD4",
     };
@@ -3128,6 +3187,15 @@
         // U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE
         // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
         /* morekeys_o */ "\u00F4,\u00F3,\u00F6,\u00F2,\u00F5,\u0153,\u0151,\u00F8",
+        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+        // U+011B: "ě" LATIN SMALL LETTER E WITH CARON
+        // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+        // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+        // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+        // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+        // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+        /* morekeys_e */ "\u00E9,\u011B,\u0113,\u0117,\u00E8,\u00EA,\u00EB,\u0119",
         // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
         // U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
         // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
@@ -3138,15 +3206,6 @@
         // U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
         /* morekeys_u */ "\u00FA,\u016F,\u00FC,\u016B,\u0173,\u00F9,\u00FB,\u0171",
         /* keylabel_to_alpha */ null,
-        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
-        // U+011B: "ě" LATIN SMALL LETTER E WITH CARON
-        // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
-        // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
-        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
-        // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
-        // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
-        // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
-        /* morekeys_e */ "\u00E9,\u011B,\u0113,\u0117,\u00E8,\u00EA,\u00EB,\u0119",
         // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
         // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
         // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
@@ -3155,32 +3214,32 @@
         // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
         // U+0131: "ı" LATIN SMALL LETTER DOTLESS I
         /* morekeys_i */ "\u00ED,\u012B,\u012F,\u00EC,\u00EE,\u00EF,\u0131",
-        // U+010D: "č" LATIN SMALL LETTER C WITH CARON
-        // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
-        // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
-        /* morekeys_c */ "\u010D,\u00E7,\u0107",
-        /* double_quotes */ "!text/double_9qm_lqm",
         // U+0148: "ň" LATIN SMALL LETTER N WITH CARON
         // U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
         // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
         // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
         /* morekeys_n */ "\u0148,\u0146,\u00F1,\u0144",
-        /* single_quotes */ "!text/single_9qm_lqm",
+        // U+010D: "č" LATIN SMALL LETTER C WITH CARON
+        // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
+        // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
+        /* morekeys_c */ "\u010D,\u00E7,\u0107",
+        /* double_quotes */ "!text/double_9qm_lqm",
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
         // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
         /* morekeys_s */ "\u0161,\u00DF,\u015B,\u015F",
+        /* single_quotes */ "!text/single_9qm_lqm",
         /* keyspec_currency */ null,
         // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
         // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
         /* morekeys_y */ "\u00FD,\u00FF",
-        // U+010F: "ď" LATIN SMALL LETTER D WITH CARON
-        /* morekeys_d */ "\u010F",
         // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
         // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
         // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
         /* morekeys_z */ "\u017E,\u017C,\u017A",
+        // U+010F: "ď" LATIN SMALL LETTER D WITH CARON
+        /* morekeys_d */ "\u010F",
         // U+0165: "ť" LATIN SMALL LETTER T WITH CARON
         // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
         /* morekeys_t */ "\u0165,\u0163",
@@ -3205,22 +3264,21 @@
     /* Locale sl: Slovenian */
     private static final String[] TEXTS_sl = {
         /* morekeys_a ~ */
-        null, null, null, null, null, null,
-        /* ~ morekeys_i */
+        null, null, null, null, null, null, null,
+        /* ~ morekeys_n */
         // U+010D: "č" LATIN SMALL LETTER C WITH CARON
         // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
         /* morekeys_c */ "\u010D,\u0107",
         /* double_quotes */ "!text/double_9qm_lqm",
-        /* morekeys_n */ null,
-        /* single_quotes */ "!text/single_9qm_lqm",
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         /* morekeys_s */ "\u0161",
+        /* single_quotes */ "!text/single_9qm_lqm",
         /* keyspec_currency */ null,
         /* morekeys_y */ null,
-        // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
-        /* morekeys_d */ "\u0111",
         // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
         /* morekeys_z */ "\u017E",
+        // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
+        /* morekeys_d */ "\u0111",
         /* morekeys_t ~ */
         null, null, null,
         /* ~ morekeys_g */
@@ -3231,7 +3289,7 @@
     /* Locale sr: Serbian */
     private static final String[] TEXTS_sr = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // END: More keys definitions for Serbian (Cyrillic)
         // Label for "switch to alphabetic" key.
@@ -3239,14 +3297,14 @@
         // U+0411: "Б" CYRILLIC CAPITAL LETTER BE
         // U+0412: "В" CYRILLIC CAPITAL LETTER VE
         /* keylabel_to_alpha */ "\u0410\u0411\u0412",
-        /* morekeys_e ~ */
+        /* morekeys_i ~ */
         null, null, null,
         /* ~ morekeys_c */
         /* double_quotes */ "!text/double_9qm_lqm",
-        /* morekeys_n */ null,
+        /* morekeys_s */ null,
         /* single_quotes */ "!text/single_9qm_lqm",
-        /* morekeys_s ~ */
-        null, null, null, null, null, null, null, null,
+        /* keyspec_currency ~ */
+        null, null, null, null, null, null, null,
         /* ~ morekeys_g */
         /* single_angle_quotes */ "!text/single_raqm_laqm",
         /* double_angle_quotes */ "!text/double_raqm_laqm",
@@ -3259,7 +3317,7 @@
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null,
         /* ~ morekeys_cyrillic_o */
         // U+045D: "ѝ" CYRILLIC SMALL LETTER I WITH GRAVE
         /* morekeys_cyrillic_i */ "\u045D",
@@ -3291,20 +3349,75 @@
         /* keyspec_south_slavic_row3_8 */ "\u0452",
     };
 
+    /* Locale sr_ZZ: Serbian (ZZ) */
+    private static final String[] TEXTS_sr_ZZ = {
+        /* morekeys_a */ null,
+        /* morekeys_o */ null,
+        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+        /* morekeys_e */ "\u00E8",
+        /* morekeys_u */ null,
+        /* keylabel_to_alpha */ null,
+        // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+        /* morekeys_i */ "\u00EC",
+        /* morekeys_n */ null,
+        // U+010D: "č" LATIN SMALL LETTER C WITH CARON
+        // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
+        /* morekeys_c */ "\u010D,\u0107,%",
+        /* double_quotes */ null,
+        // U+0161: "š" LATIN SMALL LETTER S WITH CARON
+        /* morekeys_s */ "\u0161,%",
+        /* single_quotes ~ */
+        null, null, null,
+        /* ~ morekeys_y */
+        // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
+        /* morekeys_z */ "\u017E,%",
+        // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
+        /* morekeys_d */ "\u0111,%",
+        /* morekeys_t ~ */
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null,
+        /* ~ morekeys_symbols_percent */
+        /* label_go_key */ "Idi",
+        /* label_send_key */ "\u0160alji",
+        /* label_next_key */ "Sled",
+        /* label_done_key */ "Gotov",
+        /* label_search_key */ "Tra\u017Ei",
+        /* label_previous_key */ "Preth",
+        /* label_pause_key */ "Pauza",
+        /* label_wait_key */ "\u010Cekaj",
+    };
+
     /* Locale sv: Swedish */
     private static final String[] TEXTS_sv = {
+        // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+        // U+00E5: "å" LATIN SMALL LETTER A WITH RING
+        // U+00E6: "æ" LATIN SMALL LETTER AE
         // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
         // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
         // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
         // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
         // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
-        /* morekeys_a */ "\u00E1,\u00E0,\u00E2,\u0105,\u00E3",
+        /* morekeys_a */ "\u00E4,\u00E5,\u00E6,\u00E1,\u00E0,\u00E2,\u0105,\u00E3",
+        // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+        // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+        // U+0153: "œ" LATIN SMALL LIGATURE OE
         // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
         // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
         // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
         // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
         // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
-        /* morekeys_o */ "\u00F3,\u00F2,\u00F4,\u00F5,\u014D",
+        /* morekeys_o */ "\u00F6,\u00F8,\u0153,\u00F3,\u00F2,\u00F4,\u00F5,\u014D",
+        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+        // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+        // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+        // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+        /* morekeys_e */ "\u00E9,\u00E8,\u00EA,\u00EB,\u0119",
         // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
         // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
         // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
@@ -3312,43 +3425,37 @@
         // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
         /* morekeys_u */ "\u00FC,\u00FA,\u00F9,\u00FB,\u016B",
         /* keylabel_to_alpha */ null,
-        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
-        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
-        // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
-        // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
-        // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
-        /* morekeys_e */ "\u00E9,\u00E8,\u00EA,\u00EB,\u0119",
         // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
         // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
         // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
         // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
         /* morekeys_i */ "\u00ED,\u00EC,\u00EE,\u00EF",
+        // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+        // U+0148: "ň" LATIN SMALL LETTER N WITH CARON
+        /* morekeys_n */ "\u0144,\u00F1,\u0148",
         // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
         // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
         // U+010D: "č" LATIN SMALL LETTER C WITH CARON
         /* morekeys_c */ "\u00E7,\u0107,\u010D",
         /* double_quotes */ null,
-        // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
-        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
-        // U+0148: "ň" LATIN SMALL LETTER N WITH CARON
-        /* morekeys_n */ "\u0144,\u00F1,\u0148",
-        /* single_quotes */ null,
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         /* morekeys_s */ "\u015B,\u0161,\u015F,\u00DF",
+        /* single_quotes */ null,
         /* keyspec_currency */ null,
         // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
         // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
         /* morekeys_y */ "\u00FD,\u00FF",
-        // U+00F0: "ð" LATIN SMALL LETTER ETH
-        // U+010F: "ď" LATIN SMALL LETTER D WITH CARON
-        /* morekeys_d */ "\u00F0,\u010F",
         // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
         // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
         // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
         /* morekeys_z */ "\u017A,\u017E,\u017C",
+        // U+00F0: "ð" LATIN SMALL LETTER ETH
+        // U+010F: "ď" LATIN SMALL LETTER D WITH CARON
+        /* morekeys_d */ "\u00F0,\u010F",
         // U+0165: "ť" LATIN SMALL LETTER T WITH CARON
         // U+00FE: "þ" LATIN SMALL LETTER THORN
         /* morekeys_t */ "\u0165,\u00FE",
@@ -3372,8 +3479,8 @@
         /* morekeys_nordic_row2_10 */ "\u00F8,\u0153",
         /* keyspec_east_slavic_row1_9 ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null, null, null, null, null, null,
-        /* ~ additional_morekeys_symbols_0 */
+        null, null, null, null, null, null, null, null, null, null, null, null,
+        /* ~ morekeys_tablet_period */
         // U+00E6: "æ" LATIN SMALL LETTER AE
         /* morekeys_nordic_row2_11 */ "\u00E6",
     };
@@ -3399,6 +3506,12 @@
         // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
         // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
         /* morekeys_o */ "\u00F4,\u00F6,\u00F2,\u00F3,\u0153,\u00F8,\u014D,\u00F5",
+        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+        // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+        // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+        // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+        /* morekeys_e */ "\u00E8,\u00E9,\u00EA,\u00EB,\u0113",
         // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
         // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
         // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
@@ -3406,28 +3519,21 @@
         // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
         /* morekeys_u */ "\u00FB,\u00FC,\u00F9,\u00FA,\u016B",
         /* keylabel_to_alpha */ null,
-        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
-        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
-        // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
-        // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
-        // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
-        /* morekeys_e */ "\u00E8,\u00E9,\u00EA,\u00EB,\u0113",
         // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
         // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
         // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
         // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
         // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
         /* morekeys_i */ "\u00EE,\u00EF,\u00ED,\u012B,\u00EC",
+        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+        /* morekeys_n */ "\u00F1",
         // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
         /* morekeys_c */ "\u00E7",
         /* double_quotes */ null,
-        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
-        /* morekeys_n */ "\u00F1",
-        /* single_quotes */ null,
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         /* morekeys_s */ "\u00DF",
-        /* keyspec_currency ~ */
-        null, null, null, null, null, null,
+        /* single_quotes ~ */
+        null, null, null, null, null, null, null,
         /* ~ morekeys_l */
         /* morekeys_g */ "g\'",
     };
@@ -3435,16 +3541,16 @@
     /* Locale ta_IN: Tamil (India) */
     private static final String[] TEXTS_ta_IN = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+0BA4: "த" TAMIL LETTER TA
         // U+0BAE/U+0BBF: "மி" TAMIL LETTER MA/TAMIL VOWEL SIGN I
         // U+0BB4/U+0BCD: "ழ்" TAMIL LETTER LLLA/TAMIL SIGN VIRAMA
         /* keylabel_to_alpha */ "\u0BA4\u0BAE\u0BBF\u0BB4\u0BCD",
-        /* morekeys_e ~ */
-        null, null, null, null, null, null, null,
-        /* ~ morekeys_s */
+        /* morekeys_i ~ */
+        null, null, null, null, null, null,
+        /* ~ single_quotes */
         // U+0BF9: "௹" TAMIL RUPEE SIGN
         /* keyspec_currency */ "\u0BF9",
     };
@@ -3452,16 +3558,16 @@
     /* Locale ta_LK: Tamil (Sri Lanka) */
     private static final String[] TEXTS_ta_LK = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+0BA4: "த" TAMIL LETTER TA
         // U+0BAE/U+0BBF: "மி" TAMIL LETTER MA/TAMIL VOWEL SIGN I
         // U+0BB4/U+0BCD: "ழ்" TAMIL LETTER LLLA/TAMIL SIGN VIRAMA
         /* keylabel_to_alpha */ "\u0BA4\u0BAE\u0BBF\u0BB4\u0BCD",
-        /* morekeys_e ~ */
-        null, null, null, null, null, null, null,
-        /* ~ morekeys_s */
+        /* morekeys_i ~ */
+        null, null, null, null, null, null,
+        /* ~ single_quotes */
         // U+0DBB/U+0DD4: "රු" SINHALA LETTER RAYANNA/SINHALA VOWEL SIGN KETTI PAA-PILLA
         /* keyspec_currency */ "\u0DBB\u0DD4",
     };
@@ -3469,7 +3575,7 @@
     /* Locale ta_SG: Tamil (Singapore) */
     private static final String[] TEXTS_ta_SG = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+0BA4: "த" TAMIL LETTER TA
@@ -3481,16 +3587,16 @@
     /* Locale te_IN: Telugu (India) */
     private static final String[] TEXTS_te_IN = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+0C05: "అ" TELUGU LETTER A
         // U+0C06: "ఆ" TELUGU LETTER AA
         // U+0C07: "ఇ" TELUGU LETTER I
         /* keylabel_to_alpha */ "\u0C05\u0C06\u0C07",
-        /* morekeys_e ~ */
-        null, null, null, null, null, null, null,
-        /* ~ morekeys_s */
+        /* morekeys_i ~ */
+        null, null, null, null, null, null,
+        /* ~ single_quotes */
         // U+20B9: "₹" INDIAN RUPEE SIGN
         /* keyspec_currency */ "\u20B9",
     };
@@ -3498,16 +3604,16 @@
     /* Locale th: Thai */
     private static final String[] TEXTS_th = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+0E01: "ก" THAI CHARACTER KO KAI
         // U+0E02: "ข" THAI CHARACTER KHO KHAI
         // U+0E04: "ค" THAI CHARACTER KHO KHWAI
         /* keylabel_to_alpha */ "\u0E01\u0E02\u0E04",
-        /* morekeys_e ~ */
-        null, null, null, null, null, null, null,
-        /* ~ morekeys_s */
+        /* morekeys_i ~ */
+        null, null, null, null, null, null,
+        /* ~ single_quotes */
         // U+0E3F: "฿" THAI CURRENCY SYMBOL BAHT
         /* keyspec_currency */ "\u0E3F",
     };
@@ -3535,13 +3641,6 @@
         // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
         // U+00BA: "º" MASCULINE ORDINAL INDICATOR
         /* morekeys_o */ "\u00F3,\u00F2,\u00F6,\u00F4,\u00F5,\u00F8,\u0153,\u014D,\u00BA",
-        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-        /* morekeys_u */ "\u00FA,\u00FC,\u00F9,\u00FB,\u016B",
-        /* keylabel_to_alpha */ null,
         // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
         // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
         // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
@@ -3550,6 +3649,13 @@
         // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
         // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
         /* morekeys_e */ "\u00E9,\u00E8,\u00EB,\u00EA,\u0119,\u0117,\u0113",
+        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+        /* morekeys_u */ "\u00FA,\u00FC,\u00F9,\u00FB,\u016B",
+        /* keylabel_to_alpha */ null,
         // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
         // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
         // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
@@ -3557,20 +3663,21 @@
         // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
         // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
         /* morekeys_i */ "\u00ED,\u00EF,\u00EC,\u00EE,\u012F,\u012B",
+        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+        // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+        /* morekeys_n */ "\u00F1,\u0144",
         // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
         // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
         // U+010D: "č" LATIN SMALL LETTER C WITH CARON
         /* morekeys_c */ "\u00E7,\u0107,\u010D",
-        /* double_quotes */ null,
-        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
-        // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
-        /* morekeys_n */ "\u00F1,\u0144",
     };
 
     /* Locale tr: Turkish */
     private static final String[] TEXTS_tr = {
         // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
-        /* morekeys_a */ "\u00E2",
+        // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+        // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+        /* morekeys_a */ "\u00E2,\u00E4,\u00E1",
         // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
         // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
         // U+0153: "œ" LATIN SMALL LIGATURE OE
@@ -3580,6 +3687,9 @@
         // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
         // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
         /* morekeys_o */ "\u00F6,\u00F4,\u0153,\u00F2,\u00F3,\u00F5,\u00F8,\u014D",
+        // U+0259: "ə" LATIN SMALL LETTER SCHWA
+        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+        /* morekeys_e */ "\u0259,\u00E9",
         // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
         // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
         // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
@@ -3587,7 +3697,6 @@
         // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
         /* morekeys_u */ "\u00FC,\u00FB,\u00F9,\u00FA,\u016B",
         /* keylabel_to_alpha */ null,
-        /* morekeys_e */ null,
         // U+0131: "ı" LATIN SMALL LETTER DOTLESS I
         // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
         // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
@@ -3596,20 +3705,27 @@
         // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
         // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
         /* morekeys_i */ "\u0131,\u00EE,\u00EF,\u00EC,\u00ED,\u012F,\u012B",
+        // U+0148: "ň" LATIN SMALL LETTER N WITH CARON
+        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+        /* morekeys_n */ "\u0148,\u00F1",
         // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
         // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
         // U+010D: "č" LATIN SMALL LETTER C WITH CARON
         /* morekeys_c */ "\u00E7,\u0107,\u010D",
-        /* double_quotes ~ */
-        null, null, null,
-        /* ~ single_quotes */
+        /* double_quotes */ null,
         // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         /* morekeys_s */ "\u015F,\u00DF,\u015B,\u0161",
-        /* keyspec_currency ~ */
-        null, null, null, null, null, null,
+        /* single_quotes */ null,
+        /* keyspec_currency */ null,
+        // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
+        /* morekeys_y */ "\u00FD",
+        // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
+        /* morekeys_z */ "\u017E",
+        /* morekeys_d ~ */
+        null, null, null,
         /* ~ morekeys_l */
         // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
         /* morekeys_g */ "\u011F",
@@ -3618,20 +3734,19 @@
     /* Locale uk: Ukrainian */
     private static final String[] TEXTS_uk = {
         /* morekeys_a ~ */
-        null, null, null,
+        null, null, null, null,
         /* ~ morekeys_u */
         // Label for "switch to alphabetic" key.
         // U+0410: "А" CYRILLIC CAPITAL LETTER A
         // U+0411: "Б" CYRILLIC CAPITAL LETTER BE
         // U+0412: "В" CYRILLIC CAPITAL LETTER VE
         /* keylabel_to_alpha */ "\u0410\u0411\u0412",
-        /* morekeys_e ~ */
+        /* morekeys_i ~ */
         null, null, null,
         /* ~ morekeys_c */
         /* double_quotes */ "!text/double_9qm_lqm",
-        /* morekeys_n */ null,
-        /* single_quotes */ "!text/single_9qm_lqm",
         /* morekeys_s */ null,
+        /* single_quotes */ "!text/single_9qm_lqm",
         // U+20B4: "₴" HRYVNIA SIGN
         /* keyspec_currency */ "\u20B4",
         /* morekeys_y ~ */
@@ -3651,7 +3766,7 @@
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null,
         /* ~ morekeys_w */
         // U+0457: "ї" CYRILLIC SMALL LETTER YI
         /* morekeys_east_slavic_row2_2 */ "\u0457",
@@ -3661,6 +3776,66 @@
         /* morekeys_cyrillic_ghe */ "\u0491",
     };
 
+    /* Locale uz_UZ: Uzbek (Uzbekistan) */
+    private static final String[] TEXTS_uz_UZ = {
+        // This is the same as Turkish
+        // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+        // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+        // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+        /* morekeys_a */ "\u00E2,\u00E4,\u00E1",
+        // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+        // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+        // U+0153: "œ" LATIN SMALL LIGATURE OE
+        // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+        // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+        // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+        // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+        // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+        /* morekeys_o */ "\u00F6,\u00F4,\u0153,\u00F2,\u00F3,\u00F5,\u00F8,\u014D",
+        // U+0259: "ə" LATIN SMALL LETTER SCHWA
+        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+        /* morekeys_e */ "\u0259,\u00E9",
+        // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+        // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+        // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+        // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+        /* morekeys_u */ "\u00FC,\u00FB,\u00F9,\u00FA,\u016B",
+        /* keylabel_to_alpha */ null,
+        // U+0131: "ı" LATIN SMALL LETTER DOTLESS I
+        // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+        // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+        // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+        // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+        // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+        // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
+        /* morekeys_i */ "\u0131,\u00EE,\u00EF,\u00EC,\u00ED,\u012F,\u012B",
+        // U+0148: "ň" LATIN SMALL LETTER N WITH CARON
+        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+        /* morekeys_n */ "\u0148,\u00F1",
+        // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
+        // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
+        // U+010D: "č" LATIN SMALL LETTER C WITH CARON
+        /* morekeys_c */ "\u00E7,\u0107,\u010D",
+        /* double_quotes */ null,
+        // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
+        // U+00DF: "ß" LATIN SMALL LETTER SHARP S
+        // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
+        // U+0161: "š" LATIN SMALL LETTER S WITH CARON
+        /* morekeys_s */ "\u015F,\u00DF,\u015B,\u0161",
+        /* single_quotes */ null,
+        /* keyspec_currency */ null,
+        // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
+        /* morekeys_y */ "\u00FD",
+        // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
+        /* morekeys_z */ "\u017E",
+        /* morekeys_d ~ */
+        null, null, null,
+        /* ~ morekeys_l */
+        // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
+        /* morekeys_g */ "\u011F",
+    };
+
     /* Locale vi: Vietnamese */
     private static final String[] TEXTS_vi = {
         // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
@@ -3699,6 +3874,18 @@
         // U+1EE1: "ỡ" LATIN SMALL LETTER O WITH HORN AND TILDE
         // U+1EE3: "ợ" LATIN SMALL LETTER O WITH HORN AND DOT BELOW
         /* morekeys_o */ "\u00F2,\u00F3,\u1ECF,\u00F5,\u1ECD,\u00F4,\u1ED3,\u1ED1,\u1ED5,\u1ED7,\u1ED9,\u01A1,\u1EDD,\u1EDB,\u1EDF,\u1EE1,\u1EE3",
+        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+        // U+1EBB: "ẻ" LATIN SMALL LETTER E WITH HOOK ABOVE
+        // U+1EBD: "ẽ" LATIN SMALL LETTER E WITH TILDE
+        // U+1EB9: "ẹ" LATIN SMALL LETTER E WITH DOT BELOW
+        // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+        // U+1EC1: "ề" LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+        // U+1EBF: "ế" LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+        // U+1EC3: "ể" LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+        // U+1EC5: "ễ" LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+        // U+1EC7: "ệ" LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+        /* morekeys_e */ "\u00E8,\u00E9,\u1EBB,\u1EBD,\u1EB9,\u00EA,\u1EC1,\u1EBF,\u1EC3,\u1EC5,\u1EC7",
         // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
         // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
         // U+1EE7: "ủ" LATIN SMALL LETTER U WITH HOOK ABOVE
@@ -3712,27 +3899,15 @@
         // U+1EF1: "ự" LATIN SMALL LETTER U WITH HORN AND DOT BELOW
         /* morekeys_u */ "\u00F9,\u00FA,\u1EE7,\u0169,\u1EE5,\u01B0,\u1EEB,\u1EE9,\u1EED,\u1EEF,\u1EF1",
         /* keylabel_to_alpha */ null,
-        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
-        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
-        // U+1EBB: "ẻ" LATIN SMALL LETTER E WITH HOOK ABOVE
-        // U+1EBD: "ẽ" LATIN SMALL LETTER E WITH TILDE
-        // U+1EB9: "ẹ" LATIN SMALL LETTER E WITH DOT BELOW
-        // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
-        // U+1EC1: "ề" LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
-        // U+1EBF: "ế" LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
-        // U+1EC3: "ể" LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
-        // U+1EC5: "ễ" LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
-        // U+1EC7: "ệ" LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
-        /* morekeys_e */ "\u00E8,\u00E9,\u1EBB,\u1EBD,\u1EB9,\u00EA,\u1EC1,\u1EBF,\u1EC3,\u1EC5,\u1EC7",
         // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
         // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
         // U+1EC9: "ỉ" LATIN SMALL LETTER I WITH HOOK ABOVE
         // U+0129: "ĩ" LATIN SMALL LETTER I WITH TILDE
         // U+1ECB: "ị" LATIN SMALL LETTER I WITH DOT BELOW
         /* morekeys_i */ "\u00EC,\u00ED,\u1EC9,\u0129,\u1ECB",
-        /* morekeys_c ~ */
+        /* morekeys_n ~ */
         null, null, null, null, null,
-        /* ~ morekeys_s */
+        /* ~ single_quotes */
         // U+20AB: "₫" DONG SIGN
         /* keyspec_currency */ "\u20AB",
         // U+1EF3: "ỳ" LATIN SMALL LETTER Y WITH GRAVE
@@ -3741,6 +3916,7 @@
         // U+1EF9: "ỹ" LATIN SMALL LETTER Y WITH TILDE
         // U+1EF5: "ỵ" LATIN SMALL LETTER Y WITH DOT BELOW
         /* morekeys_y */ "\u1EF3,\u00FD,\u1EF7,\u1EF9,\u1EF5",
+        /* morekeys_z */ null,
         // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
         /* morekeys_d */ "\u0111",
     };
@@ -3766,6 +3942,12 @@
         // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
         // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
         /* morekeys_o */ "\u00F3,\u00F4,\u00F6,\u00F2,\u0153,\u00F8,\u014D,\u00F5",
+        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+        // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+        // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+        // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+        /* morekeys_e */ "\u00E9,\u00E8,\u00EA,\u00EB,\u0113",
         // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
         // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
         // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
@@ -3773,24 +3955,17 @@
         // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
         /* morekeys_u */ "\u00FA,\u00FB,\u00FC,\u00F9,\u016B",
         /* keylabel_to_alpha */ null,
-        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
-        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
-        // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
-        // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
-        // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
-        /* morekeys_e */ "\u00E9,\u00E8,\u00EA,\u00EB,\u0113",
         // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
         // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
         // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
         // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
         // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
         /* morekeys_i */ "\u00ED,\u00EE,\u00EF,\u012B,\u00EC",
+        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+        /* morekeys_n */ "\u00F1",
         // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
         /* morekeys_c */ "\u00E7",
         /* double_quotes */ null,
-        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
-        /* morekeys_n */ "\u00F1",
-        /* single_quotes */ null,
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         /* morekeys_s */ "\u00DF",
     };
@@ -3821,6 +3996,16 @@
         // U+0153: "œ" LATIN SMALL LIGATURE OE
         // U+00BA: "º" MASCULINE ORDINAL INDICATOR
         /* morekeys_o */ "\u00F2,\u00F3,\u00F4,\u00F5,\u00F6,\u00F8,\u014D,\u014F,\u0151,\u0153,\u00BA",
+        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+        // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+        // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+        // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+        // U+0115: "ĕ" LATIN SMALL LETTER E WITH BREVE
+        // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+        // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+        // U+011B: "ě" LATIN SMALL LETTER E WITH CARON
+        /* morekeys_e */ "\u00E8,\u00E9,\u00EA,\u00EB,\u0113,\u0115,\u0117,\u0119,\u011B",
         // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
         // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
         // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
@@ -3833,16 +4018,6 @@
         // U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK
         /* morekeys_u */ "\u00F9,\u00FA,\u00FB,\u00FC,\u0169,\u016B,\u016D,\u016F,\u0171,\u0173",
         /* keylabel_to_alpha */ null,
-        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
-        // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
-        // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
-        // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
-        // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
-        // U+0115: "ĕ" LATIN SMALL LETTER E WITH BREVE
-        // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
-        // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
-        // U+011B: "ě" LATIN SMALL LETTER E WITH CARON
-        /* morekeys_e */ "\u00E8,\u00E9,\u00EA,\u00EB,\u0113,\u0115,\u0117,\u0119,\u011B",
         // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
         // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
         // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
@@ -3854,13 +4029,6 @@
         // U+0131: "ı" LATIN SMALL LETTER DOTLESS I
         // U+0133: "ĳ" LATIN SMALL LIGATURE IJ
         /* morekeys_i */ "\u00EC,\u00ED,\u00EE,\u00EF,\u0129,\u012B,\u012D,\u012F,\u0131,\u0133",
-        // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
-        // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
-        // U+0109: "ĉ" LATIN SMALL LETTER C WITH CIRCUMFLEX
-        // U+010B: "ċ" LATIN SMALL LETTER C WITH DOT ABOVE
-        // U+010D: "č" LATIN SMALL LETTER C WITH CARON
-        /* morekeys_c */ "\u00E7,\u0107,\u0109,\u010B,\u010D",
-        /* double_quotes */ null,
         // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
         // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
         // U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
@@ -3868,7 +4036,13 @@
         // U+0149: "ŉ" LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
         // U+014B: "ŋ" LATIN SMALL LETTER ENG
         /* morekeys_n */ "\u00F1,\u0144,\u0146,\u0148,\u0149,\u014B",
-        /* single_quotes */ null,
+        // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
+        // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
+        // U+0109: "ĉ" LATIN SMALL LETTER C WITH CIRCUMFLEX
+        // U+010B: "ċ" LATIN SMALL LETTER C WITH DOT ABOVE
+        // U+010D: "č" LATIN SMALL LETTER C WITH CARON
+        /* morekeys_c */ "\u00E7,\u0107,\u0109,\u010B,\u010D",
+        /* double_quotes */ null,
         // U+00DF: "ß" LATIN SMALL LETTER SHARP S
         // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
         // U+015D: "ŝ" LATIN SMALL LETTER S WITH CIRCUMFLEX
@@ -3876,20 +4050,21 @@
         // U+0161: "š" LATIN SMALL LETTER S WITH CARON
         // U+017F: "ſ" LATIN SMALL LETTER LONG S
         /* morekeys_s */ "\u00DF,\u015B,\u015D,\u015F,\u0161,\u017F",
+        /* single_quotes */ null,
         /* keyspec_currency */ null,
         // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
         // U+0177: "ŷ" LATIN SMALL LETTER Y WITH CIRCUMFLEX
         // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
         // U+0133: "ĳ" LATIN SMALL LIGATURE IJ
         /* morekeys_y */ "\u00FD,\u0177,\u00FF,\u0133",
-        // U+010F: "ď" LATIN SMALL LETTER D WITH CARON
-        // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
-        // U+00F0: "ð" LATIN SMALL LETTER ETH
-        /* morekeys_d */ "\u010F,\u0111,\u00F0",
         // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
         // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
         // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
         /* morekeys_z */ "\u017A,\u017C,\u017E",
+        // U+010F: "ď" LATIN SMALL LETTER D WITH CARON
+        // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
+        // U+00F0: "ð" LATIN SMALL LETTER ETH
+        /* morekeys_d */ "\u010F,\u0111,\u00F0",
         // U+00FE: "þ" LATIN SMALL LETTER THORN
         // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
         // U+0165: "ť" LATIN SMALL LETTER T WITH CARON
@@ -3920,6 +4095,7 @@
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null,
         /* ~ morekeys_question */
         // U+0125: "ĥ" LATIN SMALL LETTER H WITH CIRCUMFLEX
         /* morekeys_h */ "\u0125",
@@ -3927,7 +4103,8 @@
         /* morekeys_w */ "\u0175",
         /* morekeys_east_slavic_row2_2 ~ */
         null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-        null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null, null, null, null, null, null, null, null, null, null, null, null, null, null,
+        null, null,
         /* ~ morekeys_v */
         // U+0135: "ĵ" LATIN SMALL LETTER J WITH CIRCUMFLEX
         /* morekeys_j */ "\u0135",
@@ -3935,72 +4112,75 @@
 
     private static final Object[] LOCALES_AND_TEXTS = {
     // "locale", TEXT_ARRAY,  /* numberOfNonNullText/lengthOf_TEXT_ARRAY localeName */
-        "DEFAULT", TEXTS_DEFAULT, /* 168/168 DEFAULT */
+        "DEFAULT", TEXTS_DEFAULT, /* 176/176 DEFAULT */
         "af"     , TEXTS_af,    /*   7/ 13 Afrikaans */
         "ar"     , TEXTS_ar,    /*  55/110 Arabic */
-        "az_AZ"  , TEXTS_az_AZ, /*   8/ 18 Azerbaijani (Azerbaijan) */
+        "az_AZ"  , TEXTS_az_AZ, /*  11/ 18 Azerbaijani (Azerbaijan) */
         "be_BY"  , TEXTS_be_BY, /*   9/ 32 Belarusian (Belarus) */
-        "bg"     , TEXTS_bg,    /*   2/  8 Bulgarian */
+        "bg"     , TEXTS_bg,    /*   2/  9 Bulgarian */
+        "bn_BD"  , TEXTS_bn_BD, /*   2/ 12 Bengali (Bangladesh) */
         "bn_IN"  , TEXTS_bn_IN, /*   2/ 12 Bengali (India) */
-        "ca"     , TEXTS_ca,    /*  11/ 96 Catalan */
+        "ca"     , TEXTS_ca,    /*  11/ 99 Catalan */
         "cs"     , TEXTS_cs,    /*  17/ 21 Czech */
-        "da"     , TEXTS_da,    /*  19/ 54 Danish */
-        "de"     , TEXTS_de,    /*  16/ 62 German */
-        "el"     , TEXTS_el,    /*   1/  4 Greek */
-        "en"     , TEXTS_en,    /*   8/ 11 English */
-        "eo"     , TEXTS_eo,    /*  26/118 Esperanto */
-        "es"     , TEXTS_es,    /*   8/ 55 Spanish */
+        "da"     , TEXTS_da,    /*  19/ 55 Danish */
+        "de"     , TEXTS_de,    /*  16/ 66 German */
+        "el"     , TEXTS_el,    /*   1/  5 Greek */
+        "en"     , TEXTS_en,    /*   8/ 10 English */
+        "eo"     , TEXTS_eo,    /*  26/126 Esperanto */
+        "es"     , TEXTS_es,    /*   8/ 56 Spanish */
         "et_EE"  , TEXTS_et_EE, /*  22/ 27 Estonian (Estonia) */
-        "eu_ES"  , TEXTS_eu_ES, /*   7/  9 Basque (Spain) */
-        "fa"     , TEXTS_fa,    /*  58/125 Persian */
-        "fi"     , TEXTS_fi,    /*  10/ 54 Finnish */
-        "fr"     , TEXTS_fr,    /*  13/ 62 French */
-        "gl_ES"  , TEXTS_gl_ES, /*   7/  9 Gallegan (Spain) */
-        "hi"     , TEXTS_hi,    /*  23/ 53 Hindi */
+        "eu_ES"  , TEXTS_eu_ES, /*   7/  8 Basque (Spain) */
+        "fa"     , TEXTS_fa,    /*  58/133 Persian */
+        "fi"     , TEXTS_fi,    /*  10/ 55 Finnish */
+        "fr"     , TEXTS_fr,    /*  13/ 66 French */
+        "gl_ES"  , TEXTS_gl_ES, /*   7/  8 Gallegan (Spain) */
+        "hi"     , TEXTS_hi,    /*  27/ 60 Hindi */
+        "hi_ZZ"  , TEXTS_hi_ZZ, /*   9/118 Hindi (ZZ) */
         "hr"     , TEXTS_hr,    /*   9/ 20 Croatian */
         "hu"     , TEXTS_hu,    /*   9/ 20 Hungarian */
-        "hy_AM"  , TEXTS_hy_AM, /*   9/126 Armenian (Armenia) */
+        "hy_AM"  , TEXTS_hy_AM, /*   9/134 Armenian (Armenia) */
         "is"     , TEXTS_is,    /*  10/ 16 Icelandic */
-        "it"     , TEXTS_it,    /*  11/ 62 Italian */
-        "iw"     , TEXTS_iw,    /*  20/123 Hebrew */
-        "ka_GE"  , TEXTS_ka_GE, /*   3/ 10 Georgian (Georgia) */
-        "kk"     , TEXTS_kk,    /*  15/121 Kazakh */
-        "km_KH"  , TEXTS_km_KH, /*   2/122 Khmer (Cambodia) */
+        "it"     , TEXTS_it,    /*  11/ 66 Italian */
+        "iw"     , TEXTS_iw,    /*  20/131 Hebrew */
+        "ka_GE"  , TEXTS_ka_GE, /*   3/ 11 Georgian (Georgia) */
+        "kk"     , TEXTS_kk,    /*  15/129 Kazakh */
+        "km_KH"  , TEXTS_km_KH, /*   2/130 Khmer (Cambodia) */
         "kn_IN"  , TEXTS_kn_IN, /*   2/ 12 Kannada (India) */
-        "ky"     , TEXTS_ky,    /*  10/ 89 Kirghiz */
+        "ky"     , TEXTS_ky,    /*  10/ 92 Kirghiz */
         "lo_LA"  , TEXTS_lo_LA, /*   2/ 12 Lao (Laos) */
         "lt"     , TEXTS_lt,    /*  18/ 22 Lithuanian */
         "lv"     , TEXTS_lv,    /*  18/ 22 Latvian */
-        "mk"     , TEXTS_mk,    /*   9/ 94 Macedonian */
+        "mk"     , TEXTS_mk,    /*   9/ 97 Macedonian */
         "ml_IN"  , TEXTS_ml_IN, /*   2/ 12 Malayalam (India) */
         "mn_MN"  , TEXTS_mn_MN, /*   2/ 12 Mongolian (Mongolia) */
         "mr_IN"  , TEXTS_mr_IN, /*  23/ 53 Marathi (India) */
-        "my_MM"  , TEXTS_my_MM, /*   8/104 Burmese (Myanmar) */
-        "nb"     , TEXTS_nb,    /*  11/ 54 Norwegian Bokmål */
-        "ne_NP"  , TEXTS_ne_NP, /*  23/ 53 Nepali (Nepal) */
+        "nb"     , TEXTS_nb,    /*  11/ 55 Norwegian Bokmål */
+        "ne_NP"  , TEXTS_ne_NP, /*  27/ 60 Nepali (Nepal) */
         "nl"     , TEXTS_nl,    /*   9/ 13 Dutch */
         "pl"     , TEXTS_pl,    /*  10/ 17 Polish */
-        "pt"     , TEXTS_pt,    /*   6/  7 Portuguese */
+        "pt"     , TEXTS_pt,    /*   6/  8 Portuguese */
         "rm"     , TEXTS_rm,    /*   1/  2 Raeto-Romance */
         "ro"     , TEXTS_ro,    /*   6/ 16 Romanian */
         "ru"     , TEXTS_ru,    /*   9/ 32 Russian */
         "si_LK"  , TEXTS_si_LK, /*   2/ 12 Sinhalese (Sri Lanka) */
         "sk"     , TEXTS_sk,    /*  20/ 22 Slovak */
         "sl"     , TEXTS_sl,    /*   8/ 20 Slovenian */
-        "sr"     , TEXTS_sr,    /*  11/ 94 Serbian */
-        "sv"     , TEXTS_sv,    /*  21/ 54 Swedish */
+        "sr"     , TEXTS_sr,    /*  11/ 97 Serbian */
+        "sr_ZZ"  , TEXTS_sr_ZZ, /*  14/118 Serbian (ZZ) */
+        "sv"     , TEXTS_sv,    /*  21/ 55 Swedish */
         "sw"     , TEXTS_sw,    /*   9/ 18 Swahili */
         "ta_IN"  , TEXTS_ta_IN, /*   2/ 12 Tamil (India) */
         "ta_LK"  , TEXTS_ta_LK, /*   2/ 12 Tamil (Sri Lanka) */
-        "ta_SG"  , TEXTS_ta_SG, /*   1/  4 Tamil (Singapore) */
+        "ta_SG"  , TEXTS_ta_SG, /*   1/  5 Tamil (Singapore) */
         "te_IN"  , TEXTS_te_IN, /*   2/ 12 Telugu (India) */
         "th"     , TEXTS_th,    /*   2/ 12 Thai */
-        "tl"     , TEXTS_tl,    /*   7/  9 Tagalog */
-        "tr"     , TEXTS_tr,    /*   7/ 18 Turkish */
-        "uk"     , TEXTS_uk,    /*  11/ 88 Ukrainian */
-        "vi"     , TEXTS_vi,    /*   8/ 14 Vietnamese */
-        "zu"     , TEXTS_zu,    /*   8/ 11 Zulu */
-        "zz"     , TEXTS_zz,    /*  19/112 Alphabet */
+        "tl"     , TEXTS_tl,    /*   7/  8 Tagalog */
+        "tr"     , TEXTS_tr,    /*  11/ 18 Turkish */
+        "uk"     , TEXTS_uk,    /*  11/ 91 Ukrainian */
+        "uz_UZ"  , TEXTS_uz_UZ, /*  11/ 18 Uzbek (Uzbekistan) */
+        "vi"     , TEXTS_vi,    /*   8/ 15 Vietnamese */
+        "zu"     , TEXTS_zu,    /*   8/ 10 Zulu */
+        "zz"     , TEXTS_zz,    /*  19/120 Alphabet */
     };
 
     static {
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeysCache.java b/java/src/com/android/inputmethod/keyboard/internal/KeysCache.java
deleted file mode 100644
index 7743d47..0000000
--- a/java/src/com/android/inputmethod/keyboard/internal/KeysCache.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.keyboard.internal;
-
-import com.android.inputmethod.keyboard.Key;
-
-import java.util.HashMap;
-
-public final class KeysCache {
-    private final HashMap<Key, Key> mMap = new HashMap<>();
-
-    public void clear() {
-        mMap.clear();
-    }
-
-    public Key get(final Key key) {
-        final Key existingKey = mMap.get(key);
-        if (existingKey != null) {
-            // Reuse the existing element that equals to "key" without adding "key" to the map.
-            return existingKey;
-        }
-        mMap.put(key, key);
-        return key;
-    }
-}
diff --git a/java/src/com/android/inputmethod/keyboard/internal/LanguageOnSpacebarHelper.java b/java/src/com/android/inputmethod/keyboard/internal/LanguageOnSpacebarHelper.java
deleted file mode 100644
index 6400a24..0000000
--- a/java/src/com/android/inputmethod/keyboard/internal/LanguageOnSpacebarHelper.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.keyboard.internal;
-
-import android.view.inputmethod.InputMethodSubtype;
-
-import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
-
-import java.util.Collections;
-import java.util.List;
-
-/**
- * This class determines that the language name on the spacebar should be displayed in what format.
- */
-public final class LanguageOnSpacebarHelper {
-    public static final int FORMAT_TYPE_NONE = 0;
-    public static final int FORMAT_TYPE_LANGUAGE_ONLY = 1;
-    public static final int FORMAT_TYPE_FULL_LOCALE = 2;
-
-    private List<InputMethodSubtype> mEnabledSubtypes = Collections.emptyList();
-    private boolean mIsSystemLanguageSameAsInputLanguage;
-
-    public int getLanguageOnSpacebarFormatType(final InputMethodSubtype subtype) {
-        if (SubtypeLocaleUtils.isNoLanguage(subtype)) {
-            return FORMAT_TYPE_FULL_LOCALE;
-        }
-        // Only this subtype is enabled and equals to the system locale.
-        if (mEnabledSubtypes.size() < 2 && mIsSystemLanguageSameAsInputLanguage) {
-            return FORMAT_TYPE_NONE;
-        }
-        final String keyboardLanguage = SubtypeLocaleUtils.getSubtypeLocale(subtype).getLanguage();
-        final String keyboardLayout = SubtypeLocaleUtils.getKeyboardLayoutSetName(subtype);
-        int sameLanguageAndLayoutCount = 0;
-        for (final InputMethodSubtype ims : mEnabledSubtypes) {
-            final String language = SubtypeLocaleUtils.getSubtypeLocale(ims).getLanguage();
-            if (keyboardLanguage.equals(language) && keyboardLayout.equals(
-                    SubtypeLocaleUtils.getKeyboardLayoutSetName(ims))) {
-                sameLanguageAndLayoutCount++;
-            }
-        }
-        // Display full locale name only when there are multiple subtypes that have the same
-        // locale and keyboard layout. Otherwise displaying language name is enough.
-        return sameLanguageAndLayoutCount > 1 ? FORMAT_TYPE_FULL_LOCALE
-                : FORMAT_TYPE_LANGUAGE_ONLY;
-    }
-
-    public void updateEnabledSubtypes(final List<InputMethodSubtype> enabledSubtypes) {
-        mEnabledSubtypes = enabledSubtypes;
-    }
-
-    public void updateIsSystemLanguageSameAsInputLanguage(final boolean isSame) {
-        mIsSystemLanguageSameAsInputLanguage = isSame;
-    }
-}
diff --git a/java/src/com/android/inputmethod/keyboard/internal/MatrixUtils.java b/java/src/com/android/inputmethod/keyboard/internal/MatrixUtils.java
index c1f3749..d927cc3 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/MatrixUtils.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/MatrixUtils.java
@@ -28,7 +28,8 @@
  */
 @UsedForTesting
 public class MatrixUtils {
-    private static final String TAG = MatrixUtils.class.getSimpleName();
+    static final String TAG = MatrixUtils.class.getSimpleName();
+
     public static class MatrixOperationFailedException extends Exception {
         private static final long serialVersionUID = 4384485606788583829L;
 
diff --git a/java/src/com/android/inputmethod/keyboard/internal/MoreKeySpec.java b/java/src/com/android/inputmethod/keyboard/internal/MoreKeySpec.java
index 625a0c2..0bd42fc 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/MoreKeySpec.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/MoreKeySpec.java
@@ -17,17 +17,21 @@
 package com.android.inputmethod.keyboard.internal;
 
 import android.text.TextUtils;
+import android.util.SparseIntArray;
 
+import com.android.inputmethod.compat.CharacterCompat;
 import com.android.inputmethod.keyboard.Key;
-import com.android.inputmethod.latin.Constants;
-import com.android.inputmethod.latin.define.DebugFlags;
-import com.android.inputmethod.latin.utils.CollectionUtils;
-import com.android.inputmethod.latin.utils.StringUtils;
+import com.android.inputmethod.latin.common.CollectionUtils;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.StringUtils;
 
 import java.util.ArrayList;
-import java.util.Arrays;
+import java.util.HashSet;
 import java.util.Locale;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 /**
  * The more key specification object. The more keys are an array of {@link MoreKeySpec}.
  *
@@ -42,18 +46,22 @@
 // TODO: Should extend the key specification object.
 public final class MoreKeySpec {
     public final int mCode;
+    @Nullable
     public final String mLabel;
+    @Nullable
     public final String mOutputText;
     public final int mIconId;
 
-    public MoreKeySpec(final String moreKeySpec, boolean needsToUpperCase, final Locale locale) {
-        if (TextUtils.isEmpty(moreKeySpec)) {
+    public MoreKeySpec(@Nonnull final String moreKeySpec, boolean needsToUpperCase,
+            @Nonnull final Locale locale) {
+        if (moreKeySpec.isEmpty()) {
             throw new KeySpecParser.KeySpecParserError("Empty more key spec");
         }
-        mLabel = StringUtils.toUpperCaseOfStringForLocale(
-                KeySpecParser.getLabel(moreKeySpec), needsToUpperCase, locale);
-        final int code = StringUtils.toUpperCaseOfCodeForLocale(
-                KeySpecParser.getCode(moreKeySpec), needsToUpperCase, locale);
+        final String label = KeySpecParser.getLabel(moreKeySpec);
+        mLabel = needsToUpperCase ? StringUtils.toTitleCaseOfKeyLabel(label, locale) : label;
+        final int codeInSpec = KeySpecParser.getCode(moreKeySpec);
+        final int code = needsToUpperCase ? StringUtils.toTitleCaseOfKeyCode(codeInSpec, locale)
+                : codeInSpec;
         if (code == Constants.CODE_UNSPECIFIED) {
             // Some letter, for example German Eszett (U+00DF: "ß"), has multiple characters
             // upper case representation ("SS").
@@ -61,14 +69,16 @@
             mOutputText = mLabel;
         } else {
             mCode = code;
-            mOutputText = StringUtils.toUpperCaseOfStringForLocale(
-                    KeySpecParser.getOutputText(moreKeySpec), needsToUpperCase, locale);
+            final String outputText = KeySpecParser.getOutputText(moreKeySpec);
+            mOutputText = needsToUpperCase
+                    ? StringUtils.toTitleCaseOfKeyLabel(outputText, locale) : outputText;
         }
         mIconId = KeySpecParser.getIconId(moreKeySpec);
     }
 
+    @Nonnull
     public Key buildKey(final int x, final int y, final int labelFlags,
-            final KeyboardParams params) {
+            @Nonnull final KeyboardParams params) {
         return new Key(mLabel, mIconId, mCode, mOutputText, null /* hintLabel */, labelFlags,
                 Key.BACKGROUND_TYPE_NORMAL, x, y, params.mDefaultKeyWidth, params.mDefaultRowHeight,
                 params.mHorizontalGap, params.mVerticalGap);
@@ -79,14 +89,18 @@
         int hashCode = 1;
         hashCode = 31 + mCode;
         hashCode = hashCode * 31 + mIconId;
-        hashCode = hashCode * 31 + (mLabel == null ? 0 : mLabel.hashCode());
-        hashCode = hashCode * 31 + (mOutputText == null ? 0 : mOutputText.hashCode());
+        final String label = mLabel;
+        hashCode = hashCode * 31 + (label == null ? 0 : label.hashCode());
+        final String outputText = mOutputText;
+        hashCode = hashCode * 31 + (outputText == null ? 0 : outputText.hashCode());
         return hashCode;
     }
 
     @Override
     public boolean equals(final Object o) {
-        if (this == o) return true;
+        if (this == o) {
+            return true;
+        }
         if (o instanceof MoreKeySpec) {
             final MoreKeySpec other = (MoreKeySpec)o;
             return mCode == other.mCode
@@ -105,12 +119,56 @@
                 : Constants.printableCode(mCode));
         if (StringUtils.codePointCount(label) == 1 && label.codePointAt(0) == mCode) {
             return output;
-        } else {
-            return label + "|" + output;
+        }
+        return label + "|" + output;
+    }
+
+    public static class LettersOnBaseLayout {
+        private final SparseIntArray mCodes = new SparseIntArray();
+        private final HashSet<String> mTexts = new HashSet<>();
+
+        public void addLetter(@Nonnull final Key key) {
+            final int code = key.getCode();
+            if (CharacterCompat.isAlphabetic(code)) {
+                mCodes.put(code, 0);
+            } else if (code == Constants.CODE_OUTPUT_TEXT) {
+                mTexts.add(key.getOutputText());
+            }
+        }
+
+        public boolean contains(@Nonnull final MoreKeySpec moreKey) {
+            final int code = moreKey.mCode;
+            if (CharacterCompat.isAlphabetic(code) && mCodes.indexOfKey(code) >= 0) {
+                return true;
+            } else if (code == Constants.CODE_OUTPUT_TEXT && mTexts.contains(moreKey.mOutputText)) {
+                return true;
+            }
+            return false;
         }
     }
 
-    private static final boolean DEBUG = DebugFlags.DEBUG_ENABLED;
+    @Nullable
+    public static MoreKeySpec[] removeRedundantMoreKeys(@Nullable final MoreKeySpec[] moreKeys,
+            @Nonnull final LettersOnBaseLayout lettersOnBaseLayout) {
+        if (moreKeys == null) {
+            return null;
+        }
+        final ArrayList<MoreKeySpec> filteredMoreKeys = new ArrayList<>();
+        for (final MoreKeySpec moreKey : moreKeys) {
+            if (!lettersOnBaseLayout.contains(moreKey)) {
+                filteredMoreKeys.add(moreKey);
+            }
+        }
+        final int size = filteredMoreKeys.size();
+        if (size == moreKeys.length) {
+            return moreKeys;
+        }
+        if (size == 0) {
+            return null;
+        }
+        return filteredMoreKeys.toArray(new MoreKeySpec[size]);
+    }
+
     // Constants for parsing.
     private static final char COMMA = Constants.CODE_COMMA;
     private static final char BACKSLASH = Constants.CODE_BACKSLASH;
@@ -128,7 +186,8 @@
      * @return an array of key specification text. Null if the specified <code>text</code> is empty
      * or has no key specifications.
      */
-    public static String[] splitKeySpecs(final String text) {
+    @Nullable
+    public static String[] splitKeySpecs(@Nullable final String text) {
         if (TextUtils.isEmpty(text)) {
             return null;
         }
@@ -170,9 +229,11 @@
         return list.toArray(new String[list.size()]);
     }
 
+    @Nonnull
     private static final String[] EMPTY_STRING_ARRAY = new String[0];
 
-    private static String[] filterOutEmptyString(final String[] array) {
+    @Nonnull
+    private static String[] filterOutEmptyString(@Nullable final String[] array) {
         if (array == null) {
             return EMPTY_STRING_ARRAY;
         }
@@ -193,8 +254,8 @@
         return out.toArray(new String[out.size()]);
     }
 
-    public static String[] insertAdditionalMoreKeys(final String[] moreKeySpecs,
-            final String[] additionalMoreKeySpecs) {
+    public static String[] insertAdditionalMoreKeys(@Nullable final String[] moreKeySpecs,
+            @Nullable final String[] additionalMoreKeySpecs) {
         final String[] moreKeys = filterOutEmptyString(moreKeySpecs);
         final String[] additionalMoreKeys = filterOutEmptyString(additionalMoreKeySpecs);
         final int moreKeysCount = moreKeys.length;
@@ -228,11 +289,6 @@
         if (additionalCount > 0 && additionalIndex == 0) {
             // No '%' marker is found in more keys.
             // Insert all additional more keys to the head of more keys.
-            if (DEBUG && out != null) {
-                throw new RuntimeException("Internal logic error:"
-                        + " moreKeys=" + Arrays.toString(moreKeys)
-                        + " additionalMoreKeys=" + Arrays.toString(additionalMoreKeys));
-            }
             out = CollectionUtils.arrayAsList(additionalMoreKeys, additionalIndex, additionalCount);
             for (int i = 0; i < moreKeysCount; i++) {
                 out.add(moreKeys[i]);
@@ -240,11 +296,6 @@
         } else if (additionalIndex < additionalCount) {
             // The number of '%' markers are less than additional more keys.
             // Append remained additional more keys to the tail of more keys.
-            if (DEBUG && out != null) {
-                throw new RuntimeException("Internal logic error:"
-                        + " moreKeys=" + Arrays.toString(moreKeys)
-                        + " additionalMoreKeys=" + Arrays.toString(additionalMoreKeys));
-            }
             out = CollectionUtils.arrayAsList(moreKeys, 0, moreKeysCount);
             for (int i = additionalIndex; i < additionalCount; i++) {
                 out.add(additionalMoreKeys[additionalIndex]);
@@ -259,7 +310,7 @@
         }
     }
 
-    public static int getIntValue(final String[] moreKeys, final String key,
+    public static int getIntValue(@Nullable final String[] moreKeys, final String key,
             final int defaultValue) {
         if (moreKeys == null) {
             return defaultValue;
@@ -286,7 +337,7 @@
         return value;
     }
 
-    public static boolean getBooleanValue(final String[] moreKeys, final String key) {
+    public static boolean getBooleanValue(@Nullable final String[] moreKeys, final String key) {
         if (moreKeys == null) {
             return false;
         }
diff --git a/java/src/com/android/inputmethod/keyboard/internal/NonDistinctMultitouchHelper.java b/java/src/com/android/inputmethod/keyboard/internal/NonDistinctMultitouchHelper.java
index 3a9aa81..8a375c6 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/NonDistinctMultitouchHelper.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/NonDistinctMultitouchHelper.java
@@ -22,7 +22,7 @@
 import com.android.inputmethod.keyboard.Key;
 import com.android.inputmethod.keyboard.KeyDetector;
 import com.android.inputmethod.keyboard.PointerTracker;
-import com.android.inputmethod.latin.utils.CoordinateUtils;
+import com.android.inputmethod.latin.common.CoordinateUtils;
 
 public final class NonDistinctMultitouchHelper {
     private static final String TAG = NonDistinctMultitouchHelper.class.getSimpleName();
diff --git a/java/src/com/android/inputmethod/keyboard/internal/PointerTrackerQueue.java b/java/src/com/android/inputmethod/keyboard/internal/PointerTrackerQueue.java
index 8e89e61e..556d74f 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/PointerTrackerQueue.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/PointerTrackerQueue.java
@@ -95,7 +95,7 @@
     public void releaseAllPointersOlderThan(final Element pointer, final long eventTime) {
         synchronized (mExpandableArrayOfActivePointers) {
             if (DEBUG) {
-                Log.d(TAG, "releaseAllPoniterOlderThan: " + pointer + " " + this);
+                Log.d(TAG, "releaseAllPointerOlderThan: " + pointer + " " + this);
             }
             final ArrayList<Element> expandableArray = mExpandableArrayOfActivePointers;
             final int arraySize = mArraySize;
@@ -144,9 +144,9 @@
         synchronized (mExpandableArrayOfActivePointers) {
             if (DEBUG) {
                 if (pointer == null) {
-                    Log.d(TAG, "releaseAllPoniters: " + this);
+                    Log.d(TAG, "releaseAllPointers: " + this);
                 } else {
-                    Log.d(TAG, "releaseAllPoniterExcept: " + pointer + " " + this);
+                    Log.d(TAG, "releaseAllPointerExcept: " + pointer + " " + this);
                 }
             }
             final ArrayList<Element> expandableArray = mExpandableArrayOfActivePointers;
diff --git a/java/src/com/android/inputmethod/keyboard/internal/SlidingKeyInputDrawingPreview.java b/java/src/com/android/inputmethod/keyboard/internal/SlidingKeyInputDrawingPreview.java
index ef4c74d..73a6f95 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/SlidingKeyInputDrawingPreview.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/SlidingKeyInputDrawingPreview.java
@@ -23,7 +23,7 @@
 
 import com.android.inputmethod.keyboard.PointerTracker;
 import com.android.inputmethod.latin.R;
-import com.android.inputmethod.latin.utils.CoordinateUtils;
+import com.android.inputmethod.latin.common.CoordinateUtils;
 
 /**
  * Draw rubber band preview graphics during sliding key input.
diff --git a/java/src/com/android/inputmethod/keyboard/internal/TimerHandler.java b/java/src/com/android/inputmethod/keyboard/internal/TimerHandler.java
index ec7b9b0..91f3558 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/TimerHandler.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/TimerHandler.java
@@ -22,31 +22,27 @@
 
 import com.android.inputmethod.keyboard.Key;
 import com.android.inputmethod.keyboard.PointerTracker;
-import com.android.inputmethod.keyboard.PointerTracker.TimerProxy;
-import com.android.inputmethod.keyboard.internal.TimerHandler.Callbacks;
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.common.Constants;
 import com.android.inputmethod.latin.utils.LeakGuardHandlerWrapper;
 
-// TODO: Separate this class into KeyTimerHandler and BatchInputTimerHandler or so.
-public final class TimerHandler extends LeakGuardHandlerWrapper<Callbacks> implements TimerProxy {
-    public interface Callbacks {
-        public void startWhileTypingFadeinAnimation();
-        public void startWhileTypingFadeoutAnimation();
-        public void onLongPress(PointerTracker tracker);
-    }
+import javax.annotation.Nonnull;
 
+public final class TimerHandler extends LeakGuardHandlerWrapper<DrawingProxy>
+        implements TimerProxy {
     private static final int MSG_TYPING_STATE_EXPIRED = 0;
     private static final int MSG_REPEAT_KEY = 1;
     private static final int MSG_LONGPRESS_KEY = 2;
     private static final int MSG_LONGPRESS_SHIFT_KEY = 3;
     private static final int MSG_DOUBLE_TAP_SHIFT_KEY = 4;
     private static final int MSG_UPDATE_BATCH_INPUT = 5;
+    private static final int MSG_DISMISS_KEY_PREVIEW = 6;
+    private static final int MSG_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT = 7;
 
     private final int mIgnoreAltCodeKeyTimeout;
     private final int mGestureRecognitionUpdateTime;
 
-    public TimerHandler(final Callbacks ownerInstance, final int ignoreAltCodeKeyTimeout,
-            final int gestureRecognitionUpdateTime) {
+    public TimerHandler(@Nonnull final DrawingProxy ownerInstance,
+            final int ignoreAltCodeKeyTimeout, final int gestureRecognitionUpdateTime) {
         super(ownerInstance);
         mIgnoreAltCodeKeyTimeout = ignoreAltCodeKeyTimeout;
         mGestureRecognitionUpdateTime = gestureRecognitionUpdateTime;
@@ -54,32 +50,40 @@
 
     @Override
     public void handleMessage(final Message msg) {
-        final Callbacks callbacks = getOwnerInstance();
-        if (callbacks == null) {
+        final DrawingProxy drawingProxy = getOwnerInstance();
+        if (drawingProxy == null) {
             return;
         }
-        final PointerTracker tracker = (PointerTracker) msg.obj;
         switch (msg.what) {
         case MSG_TYPING_STATE_EXPIRED:
-            callbacks.startWhileTypingFadeinAnimation();
+            drawingProxy.startWhileTypingAnimation(DrawingProxy.FADE_IN);
             break;
         case MSG_REPEAT_KEY:
-            tracker.onKeyRepeat(msg.arg1 /* code */, msg.arg2 /* repeatCount */);
+            final PointerTracker tracker1 = (PointerTracker) msg.obj;
+            tracker1.onKeyRepeat(msg.arg1 /* code */, msg.arg2 /* repeatCount */);
             break;
         case MSG_LONGPRESS_KEY:
         case MSG_LONGPRESS_SHIFT_KEY:
             cancelLongPressTimers();
-            callbacks.onLongPress(tracker);
+            final PointerTracker tracker2 = (PointerTracker) msg.obj;
+            tracker2.onLongPressed();
             break;
         case MSG_UPDATE_BATCH_INPUT:
-            tracker.updateBatchInputByTimer(SystemClock.uptimeMillis());
-            startUpdateBatchInputTimer(tracker);
+            final PointerTracker tracker3 = (PointerTracker) msg.obj;
+            tracker3.updateBatchInputByTimer(SystemClock.uptimeMillis());
+            startUpdateBatchInputTimer(tracker3);
+            break;
+        case MSG_DISMISS_KEY_PREVIEW:
+            drawingProxy.onKeyReleased((Key) msg.obj, false /* withAnimation */);
+            break;
+        case MSG_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT:
+            drawingProxy.dismissGestureFloatingPreviewTextWithoutDelay();
             break;
         }
     }
 
     @Override
-    public void startKeyRepeatTimerOf(final PointerTracker tracker, final int repeatCount,
+    public void startKeyRepeatTimerOf(@Nonnull final PointerTracker tracker, final int repeatCount,
             final int delay) {
         final Key key = tracker.getKey();
         if (key == null || delay == 0) {
@@ -103,7 +107,7 @@
     }
 
     @Override
-    public void startLongPressTimerOf(final PointerTracker tracker, final int delay) {
+    public void startLongPressTimerOf(@Nonnull final PointerTracker tracker, final int delay) {
         final Key key = tracker.getKey();
         if (key == null) {
             return;
@@ -116,13 +120,13 @@
     }
 
     @Override
-    public void cancelLongPressTimerOf(final PointerTracker tracker) {
+    public void cancelLongPressTimersOf(@Nonnull final PointerTracker tracker) {
         removeMessages(MSG_LONGPRESS_KEY, tracker);
         removeMessages(MSG_LONGPRESS_SHIFT_KEY, tracker);
     }
 
     @Override
-    public void cancelLongPressShiftKeyTimers() {
+    public void cancelLongPressShiftKeyTimer() {
         removeMessages(MSG_LONGPRESS_SHIFT_KEY);
     }
 
@@ -132,15 +136,15 @@
     }
 
     @Override
-    public void startTypingStateTimer(final Key typedKey) {
+    public void startTypingStateTimer(@Nonnull final Key typedKey) {
         if (typedKey.isModifier() || typedKey.altCodeWhileTyping()) {
             return;
         }
 
         final boolean isTyping = isTypingState();
         removeMessages(MSG_TYPING_STATE_EXPIRED);
-        final Callbacks callbacks = getOwnerInstance();
-        if (callbacks == null) {
+        final DrawingProxy drawingProxy = getOwnerInstance();
+        if (drawingProxy == null) {
             return;
         }
 
@@ -148,7 +152,7 @@
         final int typedCode = typedKey.getCode();
         if (typedCode == Constants.CODE_SPACE || typedCode == Constants.CODE_ENTER) {
             if (isTyping) {
-                callbacks.startWhileTypingFadeinAnimation();
+                drawingProxy.startWhileTypingAnimation(DrawingProxy.FADE_IN);
             }
             return;
         }
@@ -158,7 +162,7 @@
         if (isTyping) {
             return;
         }
-        callbacks.startWhileTypingFadeoutAnimation();
+        drawingProxy.startWhileTypingAnimation(DrawingProxy.FADE_OUT);
     }
 
     @Override
@@ -183,9 +187,9 @@
     }
 
     @Override
-    public void cancelKeyTimersOf(final PointerTracker tracker) {
+    public void cancelKeyTimersOf(@Nonnull final PointerTracker tracker) {
         cancelKeyRepeatTimerOf(tracker);
-        cancelLongPressTimerOf(tracker);
+        cancelLongPressTimersOf(tracker);
     }
 
     public void cancelAllKeyTimers() {
@@ -194,7 +198,7 @@
     }
 
     @Override
-    public void startUpdateBatchInputTimer(final PointerTracker tracker) {
+    public void startUpdateBatchInputTimer(@Nonnull final PointerTracker tracker) {
         if (mGestureRecognitionUpdateTime <= 0) {
             return;
         }
@@ -204,7 +208,7 @@
     }
 
     @Override
-    public void cancelUpdateBatchInputTimer(final PointerTracker tracker) {
+    public void cancelUpdateBatchInputTimer(@Nonnull final PointerTracker tracker) {
         removeMessages(MSG_UPDATE_BATCH_INPUT, tracker);
     }
 
@@ -213,8 +217,18 @@
         removeMessages(MSG_UPDATE_BATCH_INPUT);
     }
 
+    public void postDismissKeyPreview(@Nonnull final Key key, final long delay) {
+        sendMessageDelayed(obtainMessage(MSG_DISMISS_KEY_PREVIEW, key), delay);
+    }
+
+    public void postDismissGestureFloatingPreviewText(final long delay) {
+        sendMessageDelayed(obtainMessage(MSG_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT), delay);
+    }
+
     public void cancelAllMessages() {
         cancelAllKeyTimers();
         cancelAllUpdateBatchInputTimers();
+        removeMessages(MSG_DISMISS_KEY_PREVIEW);
+        removeMessages(MSG_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT);
     }
 }
diff --git a/java/src/com/android/inputmethod/keyboard/internal/TimerProxy.java b/java/src/com/android/inputmethod/keyboard/internal/TimerProxy.java
new file mode 100644
index 0000000..0ce3de8
--- /dev/null
+++ b/java/src/com/android/inputmethod/keyboard/internal/TimerProxy.java
@@ -0,0 +1,133 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.internal;
+
+import com.android.inputmethod.keyboard.Key;
+import com.android.inputmethod.keyboard.PointerTracker;
+
+import javax.annotation.Nonnull;
+
+public interface TimerProxy {
+    /**
+     * Start a timer to detect if a user is typing keys.
+     * @param typedKey the key that is typed.
+     */
+    public void startTypingStateTimer(@Nonnull Key typedKey);
+
+    /**
+     * Check if a user is key typing.
+     * @return true if a user is in typing.
+     */
+    public boolean isTypingState();
+
+    /**
+     * Start a timer to simulate repeated key presses while a user keep pressing a key.
+     * @param tracker the {@link PointerTracker} that points the key to be repeated.
+     * @param repeatCount the number of times that the key is repeating. Starting from 1.
+     * @param delay the interval delay to the next key repeat, in millisecond.
+     */
+    public void startKeyRepeatTimerOf(@Nonnull PointerTracker tracker, int repeatCount, int delay);
+
+    /**
+     * Start a timer to detect a long pressed key.
+     * If a key pointed by <code>tracker</code> is a shift key, start another timer to detect
+     * long pressed shift key.
+     * @param tracker the {@link PointerTracker} that starts long pressing.
+     * @param delay the delay to fire the long press timer, in millisecond.
+     */
+    public void startLongPressTimerOf(@Nonnull PointerTracker tracker, int delay);
+
+    /**
+     * Cancel timers for detecting a long pressed key and a long press shift key.
+     * @param tracker cancel long press timers of this {@link PointerTracker}.
+     */
+    public void cancelLongPressTimersOf(@Nonnull PointerTracker tracker);
+
+    /**
+     * Cancel a timer for detecting a long pressed shift key.
+     */
+    public void cancelLongPressShiftKeyTimer();
+
+    /**
+     * Cancel timers for detecting repeated key press, long pressed key, and long pressed shift key.
+     * @param tracker the {@link PointerTracker} that starts timers to be canceled.
+     */
+    public void cancelKeyTimersOf(@Nonnull PointerTracker tracker);
+
+    /**
+     * Start a timer to detect double tapped shift key.
+     */
+    public void startDoubleTapShiftKeyTimer();
+
+    /**
+     * Cancel a timer of detecting double tapped shift key.
+     */
+    public void cancelDoubleTapShiftKeyTimer();
+
+    /**
+     * Check if a timer of detecting double tapped shift key is running.
+     * @return true if detecting double tapped shift key is on going.
+     */
+    public boolean isInDoubleTapShiftKeyTimeout();
+
+    /**
+     * Start a timer to fire updating batch input while <code>tracker</code> is on hold.
+     * @param tracker the {@link PointerTracker} that stops moving.
+     */
+    public void startUpdateBatchInputTimer(@Nonnull PointerTracker tracker);
+
+    /**
+     * Cancel a timer of firing updating batch input.
+     * @param tracker the {@link PointerTracker} that resumes moving or ends gesture input.
+     */
+    public void cancelUpdateBatchInputTimer(@Nonnull PointerTracker tracker);
+
+    /**
+     * Cancel all timers of firing updating batch input.
+     */
+    public void cancelAllUpdateBatchInputTimers();
+
+    public static class Adapter implements TimerProxy {
+        @Override
+        public void startTypingStateTimer(@Nonnull Key typedKey) {}
+        @Override
+        public boolean isTypingState() { return false; }
+        @Override
+        public void startKeyRepeatTimerOf(@Nonnull PointerTracker tracker, int repeatCount,
+                int delay) {}
+        @Override
+        public void startLongPressTimerOf(@Nonnull PointerTracker tracker, int delay) {}
+        @Override
+        public void cancelLongPressTimersOf(@Nonnull PointerTracker tracker) {}
+        @Override
+        public void cancelLongPressShiftKeyTimer() {}
+        @Override
+        public void cancelKeyTimersOf(@Nonnull PointerTracker tracker) {}
+        @Override
+        public void startDoubleTapShiftKeyTimer() {}
+        @Override
+        public void cancelDoubleTapShiftKeyTimer() {}
+        @Override
+        public boolean isInDoubleTapShiftKeyTimeout() { return false; }
+        @Override
+        public void startUpdateBatchInputTimer(@Nonnull PointerTracker tracker) {}
+        @Override
+        public void cancelUpdateBatchInputTimer(@Nonnull PointerTracker tracker) {}
+        @Override
+        public void cancelAllUpdateBatchInputTimers() {}
+    }
+}
diff --git a/java/src/com/android/inputmethod/keyboard/internal/TouchPositionCorrection.java b/java/src/com/android/inputmethod/keyboard/internal/TouchPositionCorrection.java
index fef97cc..d8f0114 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/TouchPositionCorrection.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/TouchPositionCorrection.java
@@ -80,6 +80,7 @@
         return mRadii.length;
     }
 
+    @SuppressWarnings({ "static-method", "unused" })
     public float getX(final int row) {
         return 0.0f;
         // Touch position correction data for X coordinate is obsolete.
diff --git a/java/src/com/android/inputmethod/keyboard/internal/UniqueKeysCache.java b/java/src/com/android/inputmethod/keyboard/internal/UniqueKeysCache.java
new file mode 100644
index 0000000..5b329dc
--- /dev/null
+++ b/java/src/com/android/inputmethod/keyboard/internal/UniqueKeysCache.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.internal;
+
+import com.android.inputmethod.keyboard.Key;
+
+import java.util.HashMap;
+
+import javax.annotation.Nonnull;
+
+public abstract class UniqueKeysCache {
+    public abstract void setEnabled(boolean enabled);
+    public abstract void clear();
+    public abstract @Nonnull Key getUniqueKey(@Nonnull Key key);
+
+    @Nonnull
+    public static final UniqueKeysCache NO_CACHE = new UniqueKeysCache() {
+        @Override
+        public void setEnabled(boolean enabled) {}
+
+        @Override
+        public void clear() {}
+
+        @Override
+        public Key getUniqueKey(Key key) { return key; }
+    };
+
+    @Nonnull
+    public static UniqueKeysCache newInstance() {
+        return new UniqueKeysCacheImpl();
+    }
+
+    private static final class UniqueKeysCacheImpl extends UniqueKeysCache {
+        private final HashMap<Key, Key> mCache;
+
+        private boolean mEnabled;
+
+        UniqueKeysCacheImpl() {
+            mCache = new HashMap<>();
+        }
+
+        @Override
+        public void setEnabled(final boolean enabled) {
+            mEnabled = enabled;
+        }
+
+        @Override
+        public void clear() {
+            mCache.clear();
+        }
+
+        @Override
+        public Key getUniqueKey(final Key key) {
+            if (!mEnabled) {
+                return key;
+            }
+            final Key existingKey = mCache.get(key);
+            if (existingKey != null) {
+                // Reuse the existing object that equals to "key" without adding "key" to
+                // the cache.
+                return existingKey;
+            }
+            mCache.put(key, key);
+            return key;
+        }
+    }
+}
diff --git a/java/src/com/android/inputmethod/latin/AssetFileAddress.java b/java/src/com/android/inputmethod/latin/AssetFileAddress.java
index fd6c24d..f8d02d6 100644
--- a/java/src/com/android/inputmethod/latin/AssetFileAddress.java
+++ b/java/src/com/android/inputmethod/latin/AssetFileAddress.java
@@ -16,7 +16,7 @@
 
 package com.android.inputmethod.latin;
 
-import com.android.inputmethod.latin.utils.FileUtils;
+import com.android.inputmethod.latin.common.FileUtils;
 
 import java.io.File;
 
@@ -62,4 +62,9 @@
     public void deleteUnderlyingFile() {
         FileUtils.deleteRecursively(new File(mFilename));
     }
+
+    @Override
+    public String toString() {
+        return String.format("%s (offset=%d, length=%d)", mFilename, mOffset, mLength);
+    }
 }
diff --git a/java/src/com/android/inputmethod/latin/AudioAndHapticFeedbackManager.java b/java/src/com/android/inputmethod/latin/AudioAndHapticFeedbackManager.java
index eb8b34c..60d2573 100644
--- a/java/src/com/android/inputmethod/latin/AudioAndHapticFeedbackManager.java
+++ b/java/src/com/android/inputmethod/latin/AudioAndHapticFeedbackManager.java
@@ -22,6 +22,7 @@
 import android.view.HapticFeedbackConstants;
 import android.view.View;
 
+import com.android.inputmethod.latin.common.Constants;
 import com.android.inputmethod.latin.settings.SettingsValues;
 
 /**
diff --git a/java/src/com/android/inputmethod/latin/BackupAgent.java b/java/src/com/android/inputmethod/latin/BackupAgent.java
index 1f04461..b2d92b3 100644
--- a/java/src/com/android/inputmethod/latin/BackupAgent.java
+++ b/java/src/com/android/inputmethod/latin/BackupAgent.java
@@ -17,15 +17,41 @@
 package com.android.inputmethod.latin;
 
 import android.app.backup.BackupAgentHelper;
+import android.app.backup.BackupDataInput;
 import android.app.backup.SharedPreferencesBackupHelper;
+import android.content.SharedPreferences;
+import android.os.ParcelFileDescriptor;
+
+import com.android.inputmethod.latin.settings.LocalSettingsConstants;
+
+import java.io.IOException;
 
 /**
- * Backs up the Latin IME shared preferences.
+ * Backup/restore agent for LatinIME.
+ * Currently it backs up the default shared preferences.
  */
 public final class BackupAgent extends BackupAgentHelper {
+    private static final String PREF_SUFFIX = "_preferences";
+
     @Override
     public void onCreate() {
         addHelper("shared_pref", new SharedPreferencesBackupHelper(this,
-                getPackageName() + "_preferences"));
+                getPackageName() + PREF_SUFFIX));
+    }
+
+    @Override
+    public void onRestore(BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState)
+            throws IOException {
+        // Let the restore operation go through
+        super.onRestore(data, appVersionCode, newState);
+
+        // Remove the preferences that we don't want restored.
+        final SharedPreferences.Editor prefEditor = getSharedPreferences(
+                getPackageName() + PREF_SUFFIX, MODE_PRIVATE).edit();
+        for (final String key : LocalSettingsConstants.PREFS_TO_SKIP_RESTORING) {
+            prefEditor.remove(key);
+        }
+        // Flush the changes to disk.
+        prefEditor.commit();
     }
 }
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionary.java b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
index 693e1cd..9a3ac67 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionary.java
@@ -21,8 +21,12 @@
 import android.util.SparseArray;
 
 import com.android.inputmethod.annotations.UsedForTesting;
-import com.android.inputmethod.keyboard.ProximityInfo;
 import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
+import com.android.inputmethod.latin.common.ComposedData;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.FileUtils;
+import com.android.inputmethod.latin.common.InputPointers;
+import com.android.inputmethod.latin.common.StringUtils;
 import com.android.inputmethod.latin.makedict.DictionaryHeader;
 import com.android.inputmethod.latin.makedict.FormatSpec;
 import com.android.inputmethod.latin.makedict.FormatSpec.DictionaryOptions;
@@ -30,10 +34,8 @@
 import com.android.inputmethod.latin.makedict.WordProperty;
 import com.android.inputmethod.latin.settings.SettingsValuesForSuggestion;
 import com.android.inputmethod.latin.utils.BinaryDictionaryUtils;
-import com.android.inputmethod.latin.utils.FileUtils;
 import com.android.inputmethod.latin.utils.JniUtils;
-import com.android.inputmethod.latin.utils.LanguageModelParam;
-import com.android.inputmethod.latin.utils.StringUtils;
+import com.android.inputmethod.latin.utils.WordInputEventForPersonalization;
 
 import java.io.File;
 import java.util.ArrayList;
@@ -42,6 +44,8 @@
 import java.util.Locale;
 import java.util.Map;
 
+import javax.annotation.Nonnull;
+
 /**
  * Implements a static, compacted, binary dictionary of standard words.
  */
@@ -53,6 +57,9 @@
     // Must be equal to CONFIDENCE_TO_AUTO_COMMIT in native/jni/src/defines.h
     private static final int CONFIDENCE_TO_AUTO_COMMIT = 1000000;
 
+    public static final int DICTIONARY_MAX_WORD_LENGTH = 48;
+    public static final int MAX_PREV_WORD_COUNT_FOR_N_GRAM = 3;
+
     @UsedForTesting
     public static final String UNIGRAM_COUNT_QUERY = "UNIGRAM_COUNT";
     @UsedForTesting
@@ -67,9 +74,9 @@
     // Format to get unigram flags from native side via getWordPropertyNative().
     private static final int FORMAT_WORD_PROPERTY_OUTPUT_FLAG_COUNT = 5;
     private static final int FORMAT_WORD_PROPERTY_IS_NOT_A_WORD_INDEX = 0;
-    private static final int FORMAT_WORD_PROPERTY_IS_BLACKLISTED_INDEX = 1;
-    private static final int FORMAT_WORD_PROPERTY_HAS_BIGRAMS_INDEX = 2;
-    private static final int FORMAT_WORD_PROPERTY_HAS_SHORTCUTS_INDEX = 3;
+    private static final int FORMAT_WORD_PROPERTY_IS_POSSIBLY_OFFENSIVE_INDEX = 1;
+    private static final int FORMAT_WORD_PROPERTY_HAS_NGRAMS_INDEX = 2;
+    private static final int FORMAT_WORD_PROPERTY_HAS_SHORTCUTS_INDEX = 3; // DEPRECATED
     private static final int FORMAT_WORD_PROPERTY_IS_BEGINNING_OF_SENTENCE_INDEX = 4;
 
     // Format to get probability and historical info from native side via getWordPropertyNative().
@@ -83,7 +90,6 @@
     public static final String DIR_NAME_SUFFIX_FOR_RECORD_MIGRATION = ".migrating";
 
     private long mNativeDict;
-    private final Locale mLocale;
     private final long mDictSize;
     private final String mDictFilePath;
     private final boolean mUseFullEditDistance;
@@ -117,8 +123,7 @@
     public BinaryDictionary(final String filename, final long offset, final long length,
             final boolean useFullEditDistance, final Locale locale, final String dictType,
             final boolean isUpdatable) {
-        super(dictType);
-        mLocale = locale;
+        super(dictType, locale);
         mDictSize = length;
         mDictFilePath = filename;
         mIsUpdatable = isUpdatable;
@@ -138,8 +143,7 @@
     public BinaryDictionary(final String filename, final boolean useFullEditDistance,
             final Locale locale, final String dictType, final long formatVersion,
             final Map<String, String> attributeMap) {
-        super(dictType);
-        mLocale = locale;
+        super(dictType, locale);
         mDictSize = 0;
         mDictFilePath = filename;
         // On memory dictionary is always updatable.
@@ -180,36 +184,41 @@
             boolean[] isBeginningOfSentenceArray, int[] word);
     private static native void getWordPropertyNative(long dict, int[] word,
             boolean isBeginningOfSentence, int[] outCodePoints, boolean[] outFlags,
-            int[] outProbabilityInfo, ArrayList<int[]> outBigramTargets,
-            ArrayList<int[]> outBigramProbabilityInfo, ArrayList<int[]> outShortcutTargets,
-            ArrayList<Integer> outShortcutProbabilities);
+            int[] outProbabilityInfo, ArrayList<int[][]> outNgramPrevWordsArray,
+            ArrayList<boolean[]> outNgramPrevWordIsBeginningOfSentenceArray,
+            ArrayList<int[]> outNgramTargets, ArrayList<int[]> outNgramProbabilityInfo,
+            ArrayList<int[]> outShortcutTargets, ArrayList<Integer> outShortcutProbabilities);
     private static native int getNextWordNative(long dict, int token, int[] outCodePoints,
             boolean[] outIsBeginningOfSentence);
     private static native void getSuggestionsNative(long dict, long proximityInfo,
             long traverseSession, int[] xCoordinates, int[] yCoordinates, int[] times,
             int[] pointerIds, int[] inputCodePoints, int inputSize, int[] suggestOptions,
             int[][] prevWordCodePointArrays, boolean[] isBeginningOfSentenceArray,
-            int[] outputSuggestionCount, int[] outputCodePoints, int[] outputScores,
-            int[] outputIndices, int[] outputTypes, int[] outputAutoCommitFirstWordConfidence,
-            float[] inOutLanguageWeight);
+            int prevWordCount, int[] outputSuggestionCount, int[] outputCodePoints,
+            int[] outputScores, int[] outputIndices, int[] outputTypes,
+            int[] outputAutoCommitFirstWordConfidence,
+            float[] inOutWeightOfLangModelVsSpatialModel);
     private static native boolean addUnigramEntryNative(long dict, int[] word, int probability,
             int[] shortcutTarget, int shortcutProbability, boolean isBeginningOfSentence,
-            boolean isNotAWord, boolean isBlacklisted, int timestamp);
+            boolean isNotAWord, boolean isPossiblyOffensive, int timestamp);
     private static native boolean removeUnigramEntryNative(long dict, int[] word);
     private static native boolean addNgramEntryNative(long dict,
             int[][] prevWordCodePointArrays, boolean[] isBeginningOfSentenceArray,
             int[] word, int probability, int timestamp);
     private static native boolean removeNgramEntryNative(long dict,
             int[][] prevWordCodePointArrays, boolean[] isBeginningOfSentenceArray, int[] word);
-    private static native int addMultipleDictionaryEntriesNative(long dict,
-            LanguageModelParam[] languageModelParams, int startIndex);
+    private static native boolean updateEntriesForWordWithNgramContextNative(long dict,
+            int[][] prevWordCodePointArrays, boolean[] isBeginningOfSentenceArray,
+            int[] word, boolean isValidWord, int count, int timestamp);
+    private static native int updateEntriesForInputEventsNative(long dict,
+            WordInputEventForPersonalization[] inputEvents, int startIndex);
     private static native String getPropertyNative(long dict, String query);
     private static native boolean isCorruptedNative(long dict);
     private static native boolean migrateNative(long dict, String dictFilePath,
             long newFormatVersion);
 
     // TODO: Move native dict into session
-    private final void loadDictionary(final String path, final long startOffset,
+    private void loadDictionary(final String path, final long startOffset,
             final long length, final boolean isUpdatable) {
         mHasUpdated = false;
         mNativeDict = openNative(path, startOffset, length, isUpdatable);
@@ -256,23 +265,25 @@
     }
 
     @Override
-    public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
-            final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo,
+    public ArrayList<SuggestedWordInfo> getSuggestions(final ComposedData composedData,
+            final NgramContext ngramContext, final long proximityInfoHandle,
             final SettingsValuesForSuggestion settingsValuesForSuggestion,
-            final int sessionId, final float[] inOutLanguageWeight) {
+            final int sessionId, final float weightForLocale,
+            final float[] inOutWeightOfLangModelVsSpatialModel) {
         if (!isValidDictionary()) {
             return null;
         }
         final DicTraverseSession session = getTraverseSession(sessionId);
         Arrays.fill(session.mInputCodePoints, Constants.NOT_A_CODE);
-        prevWordsInfo.outputToArray(session.mPrevWordCodePointArrays,
+        ngramContext.outputToArray(session.mPrevWordCodePointArrays,
                 session.mIsBeginningOfSentenceArray);
-        final InputPointers inputPointers = composer.getInputPointers();
-        final boolean isGesture = composer.isBatchMode();
+        final InputPointers inputPointers = composedData.mInputPointers;
+        final boolean isGesture = composedData.mIsBatchMode;
         final int inputSize;
         if (!isGesture) {
-            inputSize = composer.copyCodePointsExceptTrailingSingleQuotesAndReturnCodePointCount(
-                    session.mInputCodePoints);
+            inputSize =
+                    composedData.copyCodePointsExceptTrailingSingleQuotesAndReturnCodePointCount(
+                        session.mInputCodePoints);
             if (inputSize < 0) {
                 return null;
             }
@@ -283,41 +294,45 @@
         session.mNativeSuggestOptions.setIsGesture(isGesture);
         session.mNativeSuggestOptions.setBlockOffensiveWords(
                 settingsValuesForSuggestion.mBlockPotentiallyOffensive);
-        session.mNativeSuggestOptions.setSpaceAwareGestureEnabled(
-                settingsValuesForSuggestion.mSpaceAwareGestureEnabled);
-        session.mNativeSuggestOptions.setAdditionalFeaturesOptions(
-                settingsValuesForSuggestion.mAdditionalFeaturesSettingValues);
-        if (inOutLanguageWeight != null) {
-            session.mInputOutputLanguageWeight[0] = inOutLanguageWeight[0];
+        session.mNativeSuggestOptions.setWeightForLocale(weightForLocale);
+        if (inOutWeightOfLangModelVsSpatialModel != null) {
+            session.mInputOutputWeightOfLangModelVsSpatialModel[0] =
+                    inOutWeightOfLangModelVsSpatialModel[0];
         } else {
-            session.mInputOutputLanguageWeight[0] = Dictionary.NOT_A_LANGUAGE_WEIGHT;
+            session.mInputOutputWeightOfLangModelVsSpatialModel[0] =
+                    Dictionary.NOT_A_WEIGHT_OF_LANG_MODEL_VS_SPATIAL_MODEL;
         }
         // TOOD: Pass multiple previous words information for n-gram.
-        getSuggestionsNative(mNativeDict, proximityInfo.getNativeProximityInfo(),
+        getSuggestionsNative(mNativeDict, proximityInfoHandle,
                 getTraverseSession(sessionId).getSession(), inputPointers.getXCoordinates(),
                 inputPointers.getYCoordinates(), inputPointers.getTimes(),
                 inputPointers.getPointerIds(), session.mInputCodePoints, inputSize,
                 session.mNativeSuggestOptions.getOptions(), session.mPrevWordCodePointArrays,
-                session.mIsBeginningOfSentenceArray, session.mOutputSuggestionCount,
-                session.mOutputCodePoints, session.mOutputScores, session.mSpaceIndices,
-                session.mOutputTypes, session.mOutputAutoCommitFirstWordConfidence,
-                session.mInputOutputLanguageWeight);
-        if (inOutLanguageWeight != null) {
-            inOutLanguageWeight[0] = session.mInputOutputLanguageWeight[0];
+                session.mIsBeginningOfSentenceArray, ngramContext.getPrevWordCount(),
+                session.mOutputSuggestionCount, session.mOutputCodePoints, session.mOutputScores,
+                session.mSpaceIndices, session.mOutputTypes,
+                session.mOutputAutoCommitFirstWordConfidence,
+                session.mInputOutputWeightOfLangModelVsSpatialModel);
+        if (inOutWeightOfLangModelVsSpatialModel != null) {
+            inOutWeightOfLangModelVsSpatialModel[0] =
+                    session.mInputOutputWeightOfLangModelVsSpatialModel[0];
         }
         final int count = session.mOutputSuggestionCount[0];
         final ArrayList<SuggestedWordInfo> suggestions = new ArrayList<>();
         for (int j = 0; j < count; ++j) {
-            final int start = j * Constants.DICTIONARY_MAX_WORD_LENGTH;
+            final int start = j * DICTIONARY_MAX_WORD_LENGTH;
             int len = 0;
-            while (len < Constants.DICTIONARY_MAX_WORD_LENGTH
+            while (len < DICTIONARY_MAX_WORD_LENGTH
                     && session.mOutputCodePoints[start + len] != 0) {
                 ++len;
             }
             if (len > 0) {
                 suggestions.add(new SuggestedWordInfo(
                         new String(session.mOutputCodePoints, start, len),
-                        session.mOutputScores[j], session.mOutputTypes[j], this /* sourceDict */,
+                        "" /* prevWordsContext */,
+                        (int)(session.mOutputScores[j] * weightForLocale),
+                        session.mOutputTypes[j],
+                        this /* sourceDict */,
                         session.mSpaceIndices[j] /* indexOfTouchPointOfSecondWord */,
                         session.mOutputAutoCommitFirstWordConfidence[0]));
             }
@@ -340,31 +355,34 @@
 
     @Override
     public int getFrequency(final String word) {
-        if (TextUtils.isEmpty(word)) return NOT_A_PROBABILITY;
-        int[] codePoints = StringUtils.toCodePointArray(word);
+        if (TextUtils.isEmpty(word)) {
+            return NOT_A_PROBABILITY;
+        }
+        final int[] codePoints = StringUtils.toCodePointArray(word);
         return getProbabilityNative(mNativeDict, codePoints);
     }
 
     @Override
     public int getMaxFrequencyOfExactMatches(final String word) {
-        if (TextUtils.isEmpty(word)) return NOT_A_PROBABILITY;
-        int[] codePoints = StringUtils.toCodePointArray(word);
+        if (TextUtils.isEmpty(word)) {
+            return NOT_A_PROBABILITY;
+        }
+        final int[] codePoints = StringUtils.toCodePointArray(word);
         return getMaxProbabilityOfExactMatchesNative(mNativeDict, codePoints);
     }
 
     @UsedForTesting
-    public boolean isValidNgram(final PrevWordsInfo prevWordsInfo, final String word) {
-        return getNgramProbability(prevWordsInfo, word) != NOT_A_PROBABILITY;
+    public boolean isValidNgram(final NgramContext ngramContext, final String word) {
+        return getNgramProbability(ngramContext, word) != NOT_A_PROBABILITY;
     }
 
-    public int getNgramProbability(final PrevWordsInfo prevWordsInfo, final String word) {
-        if (!prevWordsInfo.isValid() || TextUtils.isEmpty(word)) {
+    public int getNgramProbability(final NgramContext ngramContext, final String word) {
+        if (!ngramContext.isValid() || TextUtils.isEmpty(word)) {
             return NOT_A_PROBABILITY;
         }
-        final int[][] prevWordCodePointArrays = new int[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM][];
-        final boolean[] isBeginningOfSentenceArray =
-                new boolean[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
-        prevWordsInfo.outputToArray(prevWordCodePointArrays, isBeginningOfSentenceArray);
+        final int[][] prevWordCodePointArrays = new int[ngramContext.getPrevWordCount()][];
+        final boolean[] isBeginningOfSentenceArray = new boolean[ngramContext.getPrevWordCount()];
+        ngramContext.outputToArray(prevWordCodePointArrays, isBeginningOfSentenceArray);
         final int[] wordCodePoints = StringUtils.toCodePointArray(word);
         return getNgramProbabilityNative(mNativeDict, prevWordCodePointArrays,
                 isBeginningOfSentenceArray, wordCodePoints);
@@ -375,25 +393,28 @@
             return null;
         }
         final int[] codePoints = StringUtils.toCodePointArray(word);
-        final int[] outCodePoints = new int[Constants.DICTIONARY_MAX_WORD_LENGTH];
+        final int[] outCodePoints = new int[DICTIONARY_MAX_WORD_LENGTH];
         final boolean[] outFlags = new boolean[FORMAT_WORD_PROPERTY_OUTPUT_FLAG_COUNT];
         final int[] outProbabilityInfo =
                 new int[FORMAT_WORD_PROPERTY_OUTPUT_PROBABILITY_INFO_COUNT];
-        final ArrayList<int[]> outBigramTargets = new ArrayList<>();
-        final ArrayList<int[]> outBigramProbabilityInfo = new ArrayList<>();
+        final ArrayList<int[][]> outNgramPrevWordsArray = new ArrayList<>();
+        final ArrayList<boolean[]> outNgramPrevWordIsBeginningOfSentenceArray =
+                new ArrayList<>();
+        final ArrayList<int[]> outNgramTargets = new ArrayList<>();
+        final ArrayList<int[]> outNgramProbabilityInfo = new ArrayList<>();
         final ArrayList<int[]> outShortcutTargets = new ArrayList<>();
         final ArrayList<Integer> outShortcutProbabilities = new ArrayList<>();
         getWordPropertyNative(mNativeDict, codePoints, isBeginningOfSentence, outCodePoints,
-                outFlags, outProbabilityInfo, outBigramTargets, outBigramProbabilityInfo,
-                outShortcutTargets, outShortcutProbabilities);
+                outFlags, outProbabilityInfo, outNgramPrevWordsArray,
+                outNgramPrevWordIsBeginningOfSentenceArray, outNgramTargets,
+                outNgramProbabilityInfo, outShortcutTargets, outShortcutProbabilities);
         return new WordProperty(codePoints,
                 outFlags[FORMAT_WORD_PROPERTY_IS_NOT_A_WORD_INDEX],
-                outFlags[FORMAT_WORD_PROPERTY_IS_BLACKLISTED_INDEX],
-                outFlags[FORMAT_WORD_PROPERTY_HAS_BIGRAMS_INDEX],
-                outFlags[FORMAT_WORD_PROPERTY_HAS_SHORTCUTS_INDEX],
+                outFlags[FORMAT_WORD_PROPERTY_IS_POSSIBLY_OFFENSIVE_INDEX],
+                outFlags[FORMAT_WORD_PROPERTY_HAS_NGRAMS_INDEX],
                 outFlags[FORMAT_WORD_PROPERTY_IS_BEGINNING_OF_SENTENCE_INDEX], outProbabilityInfo,
-                outBigramTargets, outBigramProbabilityInfo, outShortcutTargets,
-                outShortcutProbabilities);
+                outNgramPrevWordsArray, outNgramPrevWordIsBeginningOfSentenceArray,
+                outNgramTargets, outNgramProbabilityInfo);
     }
 
     public static class GetNextWordPropertyResult {
@@ -411,7 +432,7 @@
      * If token is 0, this method newly starts iterating the dictionary.
      */
     public GetNextWordPropertyResult getNextWordProperty(final int token) {
-        final int[] codePoints = new int[Constants.DICTIONARY_MAX_WORD_LENGTH];
+        final int[] codePoints = new int[DICTIONARY_MAX_WORD_LENGTH];
         final boolean[] isBeginningOfSentence = new boolean[1];
         final int nextToken = getNextWordNative(mNativeDict, token, codePoints,
                 isBeginningOfSentence);
@@ -421,18 +442,16 @@
     }
 
     // Add a unigram entry to binary dictionary with unigram attributes in native code.
-    public boolean addUnigramEntry(final String word, final int probability,
-            final String shortcutTarget, final int shortcutProbability,
-            final boolean isBeginningOfSentence, final boolean isNotAWord,
-            final boolean isBlacklisted, final int timestamp) {
+    public boolean addUnigramEntry(
+            final String word, final int probability, final boolean isBeginningOfSentence,
+            final boolean isNotAWord, final boolean isPossiblyOffensive, final int timestamp) {
         if (word == null || (word.isEmpty() && !isBeginningOfSentence)) {
             return false;
         }
         final int[] codePoints = StringUtils.toCodePointArray(word);
-        final int[] shortcutTargetCodePoints = (shortcutTarget != null) ?
-                StringUtils.toCodePointArray(shortcutTarget) : null;
-        if (!addUnigramEntryNative(mNativeDict, codePoints, probability, shortcutTargetCodePoints,
-                shortcutProbability, isBeginningOfSentence, isNotAWord, isBlacklisted, timestamp)) {
+        if (!addUnigramEntryNative(mNativeDict, codePoints, probability,
+                null /* shortcutTargetCodePoints */, 0 /* shortcutProbability */,
+                isBeginningOfSentence, isNotAWord, isPossiblyOffensive, timestamp)) {
             return false;
         }
         mHasUpdated = true;
@@ -453,15 +472,14 @@
     }
 
     // Add an n-gram entry to the binary dictionary with timestamp in native code.
-    public boolean addNgramEntry(final PrevWordsInfo prevWordsInfo, final String word,
+    public boolean addNgramEntry(final NgramContext ngramContext, final String word,
             final int probability, final int timestamp) {
-        if (!prevWordsInfo.isValid() || TextUtils.isEmpty(word)) {
+        if (!ngramContext.isValid() || TextUtils.isEmpty(word)) {
             return false;
         }
-        final int[][] prevWordCodePointArrays = new int[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM][];
-        final boolean[] isBeginningOfSentenceArray =
-                new boolean[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
-        prevWordsInfo.outputToArray(prevWordCodePointArrays, isBeginningOfSentenceArray);
+        final int[][] prevWordCodePointArrays = new int[ngramContext.getPrevWordCount()][];
+        final boolean[] isBeginningOfSentenceArray = new boolean[ngramContext.getPrevWordCount()];
+        ngramContext.outputToArray(prevWordCodePointArrays, isBeginningOfSentenceArray);
         final int[] wordCodePoints = StringUtils.toCodePointArray(word);
         if (!addNgramEntryNative(mNativeDict, prevWordCodePointArrays,
                 isBeginningOfSentenceArray, wordCodePoints, probability, timestamp)) {
@@ -471,35 +489,38 @@
         return true;
     }
 
-    // Remove an n-gram entry from the binary dictionary in native code.
-    public boolean removeNgramEntry(final PrevWordsInfo prevWordsInfo, final String word) {
-        if (!prevWordsInfo.isValid() || TextUtils.isEmpty(word)) {
+    // Update entries for the word occurrence with the ngramContext.
+    public boolean updateEntriesForWordWithNgramContext(@Nonnull final NgramContext ngramContext,
+            final String word, final boolean isValidWord, final int count, final int timestamp) {
+        if (TextUtils.isEmpty(word)) {
             return false;
         }
-        final int[][] prevWordCodePointArrays = new int[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM][];
-        final boolean[] isBeginningOfSentenceArray =
-                new boolean[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
-        prevWordsInfo.outputToArray(prevWordCodePointArrays, isBeginningOfSentenceArray);
+        final int[][] prevWordCodePointArrays = new int[ngramContext.getPrevWordCount()][];
+        final boolean[] isBeginningOfSentenceArray = new boolean[ngramContext.getPrevWordCount()];
+        ngramContext.outputToArray(prevWordCodePointArrays, isBeginningOfSentenceArray);
         final int[] wordCodePoints = StringUtils.toCodePointArray(word);
-        if (!removeNgramEntryNative(mNativeDict, prevWordCodePointArrays,
-                isBeginningOfSentenceArray, wordCodePoints)) {
+        if (!updateEntriesForWordWithNgramContextNative(mNativeDict, prevWordCodePointArrays,
+                isBeginningOfSentenceArray, wordCodePoints, isValidWord, count, timestamp)) {
             return false;
         }
         mHasUpdated = true;
         return true;
     }
 
-    public void addMultipleDictionaryEntries(final LanguageModelParam[] languageModelParams) {
-        if (!isValidDictionary()) return;
-        int processedParamCount = 0;
-        while (processedParamCount < languageModelParams.length) {
+    @UsedForTesting
+    public void updateEntriesForInputEvents(final WordInputEventForPersonalization[] inputEvents) {
+        if (!isValidDictionary()) {
+            return;
+        }
+        int processedEventCount = 0;
+        while (processedEventCount < inputEvents.length) {
             if (needsToRunGC(true /* mindsBlockByGC */)) {
                 flushWithGC();
             }
-            processedParamCount = addMultipleDictionaryEntriesNative(mNativeDict,
-                    languageModelParams, processedParamCount);
+            processedEventCount = updateEntriesForInputEventsNative(mNativeDict, inputEvents,
+                    processedEventCount);
             mHasUpdated = true;
-            if (processedParamCount <= 0) {
+            if (processedEventCount <= 0) {
                 return;
             }
         }
@@ -517,7 +538,9 @@
 
     // Flush to dict file if the dictionary has been updated.
     public boolean flush() {
-        if (!isValidDictionary()) return false;
+        if (!isValidDictionary()) {
+            return false;
+        }
         if (mHasUpdated) {
             if (!flushNative(mNativeDict, mDictFilePath)) {
                 return false;
@@ -537,7 +560,9 @@
 
     // Run GC and flush to dict file.
     public boolean flushWithGC() {
-        if (!isValidDictionary()) return false;
+        if (!isValidDictionary()) {
+            return false;
+        }
         if (!flushWithGCNative(mNativeDict, mDictFilePath)) {
             return false;
         }
@@ -552,7 +577,9 @@
      * @return whether GC is needed to run or not.
      */
     public boolean needsToRunGC(final boolean mindsBlockByGC) {
-        if (!isValidDictionary()) return false;
+        if (!isValidDictionary()) {
+            return false;
+        }
         return needsToRunGCNative(mNativeDict, mindsBlockByGC);
     }
 
@@ -596,8 +623,10 @@
     }
 
     @UsedForTesting
-    public String getPropertyForTest(final String query) {
-        if (!isValidDictionary()) return "";
+    public String getPropertyForGettingStats(final String query) {
+        if (!isValidDictionary()) {
+            return "";
+        }
         return getPropertyNative(mNativeDict, query);
     }
 
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java b/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
index 10b1f1b..bc62f3a 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
@@ -29,6 +29,7 @@
 
 import com.android.inputmethod.dictionarypack.DictionaryPackConstants;
 import com.android.inputmethod.dictionarypack.MD5Calculator;
+import com.android.inputmethod.latin.define.DecoderSpecificConstants;
 import com.android.inputmethod.latin.utils.DictionaryInfoUtils;
 import com.android.inputmethod.latin.utils.DictionaryInfoUtils.DictionaryInfo;
 import com.android.inputmethod.latin.utils.FileTransforms;
@@ -67,6 +68,11 @@
     private static final byte[] MAGIC_NUMBER_VERSION_2 =
             new byte[] { (byte)0x9B, (byte)0xC1, (byte)0x3A, (byte)0xFE };
 
+    private static final boolean SHOULD_VERIFY_MAGIC_NUMBER =
+            DecoderSpecificConstants.SHOULD_VERIFY_MAGIC_NUMBER;
+    private static final boolean SHOULD_VERIFY_CHECKSUM =
+            DecoderSpecificConstants.SHOULD_VERIFY_CHECKSUM;
+
     private static final String DICTIONARY_PROJECTION[] = { "id" };
 
     private static final String QUERY_PARAMETER_MAY_PROMPT_USER = "mayPrompt";
@@ -302,13 +308,18 @@
                 checkMagicAndCopyFileTo(bufferedInputStream, bufferedOutputStream);
                 bufferedOutputStream.flush();
                 bufferedOutputStream.close();
-                final String actualRawChecksum = MD5Calculator.checksum(
-                        new BufferedInputStream(new FileInputStream(outputFile)));
-                Log.i(TAG, "Computed checksum for downloaded dictionary. Expected = " + rawChecksum
-                        + " ; actual = " + actualRawChecksum);
-                if (!TextUtils.isEmpty(rawChecksum) && !rawChecksum.equals(actualRawChecksum)) {
-                    throw new IOException("Could not decode the file correctly : checksum differs");
+
+                if (SHOULD_VERIFY_CHECKSUM) {
+                    final String actualRawChecksum = MD5Calculator.checksum(
+                            new BufferedInputStream(new FileInputStream(outputFile)));
+                    Log.i(TAG, "Computed checksum for downloaded dictionary. Expected = "
+                            + rawChecksum + " ; actual = " + actualRawChecksum);
+                    if (!TextUtils.isEmpty(rawChecksum) && !rawChecksum.equals(actualRawChecksum)) {
+                        throw new IOException(
+                                "Could not decode the file correctly : checksum differs");
+                    }
                 }
+
                 final File finalFile = new File(finalFileName);
                 finalFile.delete();
                 if (!outputFile.renameTo(finalFile)) {
@@ -444,9 +455,11 @@
         if (readMagicNumberSize < length) {
             throw new IOException("Less bytes to read than the magic number length");
         }
-        if (!Arrays.equals(MAGIC_NUMBER_VERSION_2, magicNumberBuffer)) {
-            if (!Arrays.equals(MAGIC_NUMBER_VERSION_1, magicNumberBuffer)) {
-                throw new IOException("Wrong magic number for downloaded file");
+        if (SHOULD_VERIFY_MAGIC_NUMBER) {
+            if (!Arrays.equals(MAGIC_NUMBER_VERSION_2, magicNumberBuffer)) {
+                if (!Arrays.equals(MAGIC_NUMBER_VERSION_1, magicNumberBuffer)) {
+                    throw new IOException("Wrong magic number for downloaded file");
+                }
             }
         }
         output.write(magicNumberBuffer);
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java b/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java
index 867c186..e00532a 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionaryGetter.java
@@ -21,11 +21,12 @@
 import android.content.res.AssetFileDescriptor;
 import android.util.Log;
 
+import com.android.inputmethod.latin.common.LocaleUtils;
+import com.android.inputmethod.latin.define.DecoderSpecificConstants;
 import com.android.inputmethod.latin.makedict.DictionaryHeader;
 import com.android.inputmethod.latin.makedict.UnsupportedFormatException;
 import com.android.inputmethod.latin.utils.BinaryDictionaryUtils;
 import com.android.inputmethod.latin.utils.DictionaryInfoUtils;
-import com.android.inputmethod.latin.utils.LocaleUtils;
 
 import java.io.File;
 import java.io.IOException;
@@ -54,6 +55,9 @@
      */
     private static final String COMMON_PREFERENCES_NAME = "LatinImeDictPrefs";
 
+    private static final boolean SHOULD_USE_DICT_VERSION =
+            DecoderSpecificConstants.SHOULD_USE_DICT_VERSION;
+
     // Name of the category for the main dictionary
     public static final String MAIN_DICTIONARY_CATEGORY = "main";
     public static final String ID_CATEGORY_SEPARATOR = ":";
@@ -121,12 +125,11 @@
                 // reason some dictionaries have been installed BUT the dictionary pack can't be
                 // found anymore it's safer to actually supply installed dictionaries.
                 return true;
-            } else {
-                // The default is true here for the same reasons as above. We got the dictionary
-                // pack but if we don't have any settings for it it means the user has never been
-                // to the settings yet. So by default, the main dictionaries should be on.
-                return mDictPreferences.getBoolean(dictId, true);
             }
+            // The default is true here for the same reasons as above. We got the dictionary
+            // pack but if we don't have any settings for it it means the user has never been
+            // to the settings yet. So by default, the main dictionaries should be on.
+            return mDictPreferences.getBoolean(dictId, true);
         }
     }
 
@@ -224,7 +227,11 @@
     // ## HACK ## we prevent usage of a dictionary before version 18. The reason for this is, since
     // those do not include whitelist entries, the new code with an old version of the dictionary
     // would lose whitelist functionality.
-    private static boolean hackCanUseDictionaryFile(final Locale locale, final File file) {
+    private static boolean hackCanUseDictionaryFile(final File file) {
+        if (!SHOULD_USE_DICT_VERSION) {
+            return true;
+        }
+
         try {
             // Read the version of the file
             final DictionaryHeader header = BinaryDictionaryUtils.getHeader(file);
@@ -264,7 +271,8 @@
     public static ArrayList<AssetFileAddress> getDictionaryFiles(final Locale locale,
             final Context context) {
 
-        final boolean hasDefaultWordList = DictionaryFactory.isDictionaryAvailable(context, locale);
+        final boolean hasDefaultWordList = DictionaryInfoUtils.isDictionaryAvailable(
+                context, locale);
         BinaryDictionaryFileDumper.cacheWordListsFromContentProvider(locale, context,
                 hasDefaultWordList);
         final File[] cachedWordLists = getCachedWordLists(locale.toString(), context);
@@ -276,7 +284,7 @@
         // cachedWordLists may not be null, see doc for getCachedDictionaryList
         for (final File f : cachedWordLists) {
             final String wordListId = DictionaryInfoUtils.getWordListIdFromFileName(f.getName());
-            final boolean canUse = f.canRead() && hackCanUseDictionaryFile(locale, f);
+            final boolean canUse = f.canRead() && hackCanUseDictionaryFile(f);
             if (canUse && DictionaryInfoUtils.isMainWordListId(wordListId)) {
                 foundMainDict = true;
             }
@@ -285,7 +293,8 @@
                 final AssetFileAddress afa = AssetFileAddress.makeFromFileName(f.getPath());
                 if (null != afa) fileList.add(afa);
             } else {
-                Log.e(TAG, "Found a cached dictionary file but cannot read or use it");
+                Log.e(TAG, "Found a cached dictionary file for " + locale.toString()
+                        + " but cannot read or use it");
             }
         }
 
diff --git a/java/src/com/android/inputmethod/latin/Constants.java b/java/src/com/android/inputmethod/latin/Constants.java
deleted file mode 100644
index 43af66e..0000000
--- a/java/src/com/android/inputmethod/latin/Constants.java
+++ /dev/null
@@ -1,311 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin;
-
-public final class Constants {
-    public static final class Color {
-        /**
-         * The alpha value for fully opaque.
-         */
-        public final static int ALPHA_OPAQUE = 255;
-    }
-
-    public static final class ImeOption {
-        /**
-         * The private IME option used to indicate that no microphone should be shown for a given
-         * text field. For instance, this is specified by the search dialog when the dialog is
-         * already showing a voice search button.
-         *
-         * @deprecated Use {@link ImeOption#NO_MICROPHONE} with package name prefixed.
-         */
-        @SuppressWarnings("dep-ann")
-        public static final String NO_MICROPHONE_COMPAT = "nm";
-
-        /**
-         * The private IME option used to indicate that no microphone should be shown for a given
-         * text field. For instance, this is specified by the search dialog when the dialog is
-         * already showing a voice search button.
-         */
-        public static final String NO_MICROPHONE = "noMicrophoneKey";
-
-        /**
-         * The private IME option used to indicate that no settings key should be shown for a given
-         * text field.
-         */
-        public static final String NO_SETTINGS_KEY = "noSettingsKey";
-
-        /**
-         * The private IME option used to indicate that the given text field needs ASCII code points
-         * input.
-         *
-         * @deprecated Use EditorInfo#IME_FLAG_FORCE_ASCII.
-         */
-        @SuppressWarnings("dep-ann")
-        public static final String FORCE_ASCII = "forceAscii";
-
-        private ImeOption() {
-            // This utility class is not publicly instantiable.
-        }
-    }
-
-    public static final class Subtype {
-        /**
-         * The subtype mode used to indicate that the subtype is a keyboard.
-         */
-        public static final String KEYBOARD_MODE = "keyboard";
-
-        public static final class ExtraValue {
-            /**
-             * The subtype extra value used to indicate that this subtype is capable of
-             * entering ASCII characters.
-             */
-            public static final String ASCII_CAPABLE = "AsciiCapable";
-
-            /**
-             * The subtype extra value used to indicate that this subtype is enabled
-             * when the default subtype is not marked as ascii capable.
-             */
-            public static final String ENABLED_WHEN_DEFAULT_IS_NOT_ASCII_CAPABLE =
-                    "EnabledWhenDefaultIsNotAsciiCapable";
-
-            /**
-             * The subtype extra value used to indicate that this subtype is capable of
-             * entering emoji characters.
-             */
-            public static final String EMOJI_CAPABLE = "EmojiCapable";
-
-            /**
-             * The subtype extra value used to indicate that this subtype requires a network
-             * connection to work.
-             */
-            public static final String REQ_NETWORK_CONNECTIVITY = "requireNetworkConnectivity";
-
-            /**
-             * The subtype extra value used to indicate that the display name of this subtype
-             * contains a "%s" for printf-like replacement and it should be replaced by
-             * this extra value.
-             * This extra value is supported on JellyBean and later.
-             */
-            public static final String UNTRANSLATABLE_STRING_IN_SUBTYPE_NAME =
-                    "UntranslatableReplacementStringInSubtypeName";
-
-            /**
-             * The subtype extra value used to indicate this subtype keyboard layout set name.
-             * This extra value is private to LatinIME.
-             */
-            public static final String KEYBOARD_LAYOUT_SET = "KeyboardLayoutSet";
-
-            /**
-             * The subtype extra value used to indicate that this subtype is an additional subtype
-             * that the user defined. This extra value is private to LatinIME.
-             */
-            public static final String IS_ADDITIONAL_SUBTYPE = "isAdditionalSubtype";
-
-            /**
-             * The subtype extra value used to specify the combining rules.
-             */
-            public static final String COMBINING_RULES = "CombiningRules";
-
-            private ExtraValue() {
-                // This utility class is not publicly instantiable.
-            }
-        }
-
-        private Subtype() {
-            // This utility class is not publicly instantiable.
-        }
-    }
-
-    public static final class TextUtils {
-        /**
-         * Capitalization mode for {@link android.text.TextUtils#getCapsMode}: don't capitalize
-         * characters.  This value may be used with
-         * {@link android.text.TextUtils#CAP_MODE_CHARACTERS},
-         * {@link android.text.TextUtils#CAP_MODE_WORDS}, and
-         * {@link android.text.TextUtils#CAP_MODE_SENTENCES}.
-         */
-        // TODO: Straighten this out. It's bizarre to have to use android.text.TextUtils.CAP_MODE_*
-        // except for OFF that is in Constants.TextUtils.
-        public static final int CAP_MODE_OFF = 0;
-
-        private TextUtils() {
-            // This utility class is not publicly instantiable.
-        }
-    }
-
-    public static final int NOT_A_CODE = -1;
-    public static final int NOT_A_CURSOR_POSITION = -1;
-    // TODO: replace the following constants with state in InputTransaction?
-    public static final int NOT_A_COORDINATE = -1;
-    public static final int SUGGESTION_STRIP_COORDINATE = -2;
-    public static final int SPELL_CHECKER_COORDINATE = -3;
-    public static final int EXTERNAL_KEYBOARD_COORDINATE = -4;
-
-    // A hint on how many characters to cache from the TextView. A good value of this is given by
-    // how many characters we need to be able to almost always find the caps mode.
-    public static final int EDITOR_CONTENTS_CACHE_SIZE = 1024;
-    // How many characters we accept for the recapitalization functionality. This needs to be
-    // large enough for all reasonable purposes, but avoid purposeful attacks. 100k sounds about
-    // right for this.
-    public static final int MAX_CHARACTERS_FOR_RECAPITALIZATION = 1024 * 100;
-
-    // Must be equal to MAX_WORD_LENGTH in native/jni/src/defines.h
-    public static final int DICTIONARY_MAX_WORD_LENGTH = 48;
-
-    // (MAX_PREV_WORD_COUNT_FOR_N_GRAM + 1)-gram is supported in Java side. Needs to modify
-    // MAX_PREV_WORD_COUNT_FOR_N_GRAM in native/jni/src/defines.h for suggestions.
-    public static final int MAX_PREV_WORD_COUNT_FOR_N_GRAM = 2;
-
-    // Key events coming any faster than this are long-presses.
-    public static final int LONG_PRESS_MILLISECONDS = 200;
-    // TODO: Set this value appropriately.
-    public static final int GET_SUGGESTED_WORDS_TIMEOUT = 200;
-    // How many continuous deletes at which to start deleting at a higher speed.
-    public static final int DELETE_ACCELERATE_AT = 20;
-
-    public static final String WORD_SEPARATOR = " ";
-
-    public static boolean isValidCoordinate(final int coordinate) {
-        // Detect {@link NOT_A_COORDINATE}, {@link SUGGESTION_STRIP_COORDINATE},
-        // and {@link SPELL_CHECKER_COORDINATE}.
-        return coordinate >= 0;
-    }
-
-    /**
-     * Custom request code used in
-     * {@link com.android.inputmethod.keyboard.KeyboardActionListener#onCustomRequest(int)}.
-     */
-    // The code to show input method picker.
-    public static final int CUSTOM_CODE_SHOW_INPUT_METHOD_PICKER = 1;
-
-    /**
-     * Some common keys code. Must be positive.
-     */
-    public static final int CODE_ENTER = '\n';
-    public static final int CODE_TAB = '\t';
-    public static final int CODE_SPACE = ' ';
-    public static final int CODE_PERIOD = '.';
-    public static final int CODE_COMMA = ',';
-    public static final int CODE_DASH = '-';
-    public static final int CODE_SINGLE_QUOTE = '\'';
-    public static final int CODE_DOUBLE_QUOTE = '"';
-    public static final int CODE_QUESTION_MARK = '?';
-    public static final int CODE_EXCLAMATION_MARK = '!';
-    public static final int CODE_SLASH = '/';
-    public static final int CODE_BACKSLASH = '\\';
-    public static final int CODE_VERTICAL_BAR = '|';
-    public static final int CODE_COMMERCIAL_AT = '@';
-    public static final int CODE_PLUS = '+';
-    public static final int CODE_PERCENT = '%';
-    public static final int CODE_CLOSING_PARENTHESIS = ')';
-    public static final int CODE_CLOSING_SQUARE_BRACKET = ']';
-    public static final int CODE_CLOSING_CURLY_BRACKET = '}';
-    public static final int CODE_CLOSING_ANGLE_BRACKET = '>';
-    public static final int CODE_INVERTED_QUESTION_MARK = 0xBF; // ¿
-    public static final int CODE_INVERTED_EXCLAMATION_MARK = 0xA1; // ¡
-
-    public static final String REGEXP_PERIOD = "\\.";
-    public static final String STRING_SPACE = " ";
-    public static final String STRING_PERIOD_AND_SPACE = ". ";
-
-    /**
-     * Special keys code. Must be negative.
-     * These should be aligned with {@link KeyboardCodesSet#ID_TO_NAME},
-     * {@link KeyboardCodesSet#DEFAULT}, and {@link KeyboardCodesSet#RTL}.
-     */
-    public static final int CODE_SHIFT = -1;
-    public static final int CODE_CAPSLOCK = -2;
-    public static final int CODE_SWITCH_ALPHA_SYMBOL = -3;
-    public static final int CODE_OUTPUT_TEXT = -4;
-    public static final int CODE_DELETE = -5;
-    public static final int CODE_SETTINGS = -6;
-    public static final int CODE_SHORTCUT = -7;
-    public static final int CODE_ACTION_NEXT = -8;
-    public static final int CODE_ACTION_PREVIOUS = -9;
-    public static final int CODE_LANGUAGE_SWITCH = -10;
-    public static final int CODE_EMOJI = -11;
-    public static final int CODE_SHIFT_ENTER = -12;
-    public static final int CODE_SYMBOL_SHIFT = -13;
-    public static final int CODE_ALPHA_FROM_EMOJI = -14;
-    // Code value representing the code is not specified.
-    public static final int CODE_UNSPECIFIED = -15;
-
-    public static boolean isLetterCode(final int code) {
-        return code >= CODE_SPACE;
-    }
-
-    public static String printableCode(final int code) {
-        switch (code) {
-        case CODE_SHIFT: return "shift";
-        case CODE_CAPSLOCK: return "capslock";
-        case CODE_SWITCH_ALPHA_SYMBOL: return "symbol";
-        case CODE_OUTPUT_TEXT: return "text";
-        case CODE_DELETE: return "delete";
-        case CODE_SETTINGS: return "settings";
-        case CODE_SHORTCUT: return "shortcut";
-        case CODE_ACTION_NEXT: return "actionNext";
-        case CODE_ACTION_PREVIOUS: return "actionPrevious";
-        case CODE_LANGUAGE_SWITCH: return "languageSwitch";
-        case CODE_EMOJI: return "emoji";
-        case CODE_SHIFT_ENTER: return "shiftEnter";
-        case CODE_ALPHA_FROM_EMOJI: return "alpha";
-        case CODE_UNSPECIFIED: return "unspec";
-        case CODE_TAB: return "tab";
-        case CODE_ENTER: return "enter";
-        case CODE_SPACE: return "space";
-        default:
-            if (code < CODE_SPACE) return String.format("\\u%02X", code);
-            if (code < 0x100) return String.format("%c", code);
-            if (code < 0x10000) return String.format("\\u%04X", code);
-            return String.format("\\U%05X", code);
-        }
-    }
-
-    public static String printableCodes(final int[] codes) {
-        final StringBuilder sb = new StringBuilder();
-        boolean addDelimiter = false;
-        for (final int code : codes) {
-            if (code == NOT_A_CODE) break;
-            if (addDelimiter) sb.append(", ");
-            sb.append(printableCode(code));
-            addDelimiter = true;
-        }
-        return "[" + sb + "]";
-    }
-
-    public static final int MAX_INT_BIT_COUNT = 32;
-
-    /**
-     * Screen metrics (a.k.a. Device form factor) constants of
-     * {@link R.integer#config_screen_metrics}.
-     */
-    public static final int SCREEN_METRICS_SMALL_PHONE = 0;
-    public static final int SCREEN_METRICS_LARGE_PHONE = 1;
-    public static final int SCREEN_METRICS_LARGE_TABLET = 2;
-    public static final int SCREEN_METRICS_SMALL_TABLET = 3;
-
-    /**
-     * Default capacity of gesture points container.
-     * This constant is used by {@link BatchInputArbiter} and etc. to preallocate regions that
-     * contain gesture event points.
-     */
-    public static final int DEFAULT_GESTURE_POINTS_CAPACITY = 128;
-
-    private Constants() {
-        // This utility class is not publicly instantiable.
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
index 162a209..15a14e5 100644
--- a/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ContactsBinaryDictionary.java
@@ -16,34 +16,26 @@
 
 package com.android.inputmethod.latin;
 
-import android.content.ContentResolver;
 import android.content.Context;
-import android.database.ContentObserver;
-import android.database.Cursor;
-import android.database.sqlite.SQLiteException;
 import android.net.Uri;
-import android.os.SystemClock;
-import android.provider.BaseColumns;
 import android.provider.ContactsContract;
 import android.provider.ContactsContract.Contacts;
-import android.text.TextUtils;
 import android.util.Log;
 
-import com.android.inputmethod.annotations.UsedForTesting;
+import com.android.inputmethod.annotations.ExternallyReferenced;
+import com.android.inputmethod.latin.ContactsManager.ContactsChangedListener;
+import com.android.inputmethod.latin.common.StringUtils;
 import com.android.inputmethod.latin.personalization.AccountUtils;
-import com.android.inputmethod.latin.utils.ExecutorUtils;
-import com.android.inputmethod.latin.utils.StringUtils;
 
 import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
 
-public class ContactsBinaryDictionary extends ExpandableBinaryDictionary {
+import javax.annotation.Nullable;
 
-    private static final String[] PROJECTION = {BaseColumns._ID, Contacts.DISPLAY_NAME};
-    private static final String[] PROJECTION_ID_ONLY = {BaseColumns._ID};
-
+public class ContactsBinaryDictionary extends ExpandableBinaryDictionary
+        implements ContactsChangedListener {
     private static final String TAG = ContactsBinaryDictionary.class.getSimpleName();
     private static final String NAME = "contacts";
 
@@ -51,72 +43,39 @@
     private static final boolean DEBUG_DUMP = false;
 
     /**
-     * Frequency for contacts information into the dictionary
-     */
-    private static final int FREQUENCY_FOR_CONTACTS = 40;
-    private static final int FREQUENCY_FOR_CONTACTS_BIGRAM = 90;
-
-    /** The maximum number of contacts that this dictionary supports. */
-    private static final int MAX_CONTACT_COUNT = 10000;
-
-    private static final int INDEX_NAME = 1;
-
-    /** The number of contacts in the most recent dictionary rebuild. */
-    private int mContactCountAtLastRebuild = 0;
-
-    /** The hash code of ArrayList of contacts names in the most recent dictionary rebuild. */
-    private int mHashCodeAtLastRebuild = 0;
-
-    private ContentObserver mObserver;
-
-    /**
      * Whether to use "firstname lastname" in bigram predictions.
      */
     private final boolean mUseFirstLastBigrams;
+    private final ContactsManager mContactsManager;
 
     protected ContactsBinaryDictionary(final Context context, final Locale locale,
             final File dictFile, final String name) {
         super(context, getDictName(name, locale, dictFile), locale, Dictionary.TYPE_CONTACTS,
                 dictFile);
-        mUseFirstLastBigrams = useFirstLastBigramsForLocale(locale);
-        registerObserver(context);
+        mUseFirstLastBigrams = ContactsDictionaryUtils.useFirstLastBigramsForLocale(locale);
+        mContactsManager = new ContactsManager(context);
+        mContactsManager.registerForUpdates(this /* listener */);
         reloadDictionaryIfRequired();
     }
 
-    @UsedForTesting
+    // Note: This method is called by {@link DictionaryFacilitator} using Java reflection.
+    @ExternallyReferenced
     public static ContactsBinaryDictionary getDictionary(final Context context, final Locale locale,
-            final File dictFile, final String dictNamePrefix) {
+            final File dictFile, final String dictNamePrefix, @Nullable final String account) {
         return new ContactsBinaryDictionary(context, locale, dictFile, dictNamePrefix + NAME);
     }
 
-    private synchronized void registerObserver(final Context context) {
-        if (mObserver != null) return;
-        ContentResolver cres = context.getContentResolver();
-        cres.registerContentObserver(Contacts.CONTENT_URI, true, mObserver =
-                new ContentObserver(null) {
-                    @Override
-                    public void onChange(boolean self) {
-                        ExecutorUtils.getExecutor("Check Contacts").execute(new Runnable() {
-                            @Override
-                            public void run() {
-                                if (haveContentsChanged()) {
-                                    setNeedsToRecreate();
-                                }
-                            }
-                        });
-                    }
-                });
-    }
-
     @Override
     public synchronized void close() {
-        if (mObserver != null) {
-            mContext.getContentResolver().unregisterContentObserver(mObserver);
-            mObserver = null;
-        }
+        mContactsManager.close();
         super.close();
     }
 
+    /**
+     * Typically called whenever the dictionary is created for the first time or
+     * recreated when we think that there are updates to the dictionary.
+     * This is called asynchronously.
+     */
     @Override
     public void loadInitialContentsLocked() {
         loadDeviceAccountsEmailAddressesLocked();
@@ -125,6 +84,9 @@
         loadDictionaryForUriLocked(Contacts.CONTENT_URI);
     }
 
+    /**
+     * Loads device accounts to the dictionary.
+     */
     private void loadDeviceAccountsEmailAddressesLocked() {
         final List<String> accountVocabulary =
                 AccountUtils.getDeviceAccountsEmailAddresses(mContext);
@@ -136,80 +98,25 @@
                 Log.d(TAG, "loadAccountVocabulary: " + word);
             }
             runGCIfRequiredLocked(true /* mindsBlockByGC */);
-            addUnigramLocked(word, FREQUENCY_FOR_CONTACTS, null /* shortcut */,
-                    0 /* shortcutFreq */, false /* isNotAWord */, false /* isBlacklisted */,
+            addUnigramLocked(word, ContactsDictionaryConstants.FREQUENCY_FOR_CONTACTS,
+                    false /* isNotAWord */, false /* isPossiblyOffensive */,
                     BinaryDictionary.NOT_A_VALID_TIMESTAMP);
         }
     }
 
+    /**
+     * Loads data within content providers to the dictionary.
+     */
     private void loadDictionaryForUriLocked(final Uri uri) {
-        Cursor cursor = null;
-        try {
-            cursor = mContext.getContentResolver().query(uri, PROJECTION, null, null, null);
-            if (null == cursor) {
-                return;
-            }
-            if (cursor.moveToFirst()) {
-                mContactCountAtLastRebuild = getContactCount();
-                addWordsLocked(cursor);
-            }
-        } catch (final SQLiteException e) {
-            Log.e(TAG, "SQLiteException in the remote Contacts process.", e);
-        } catch (final IllegalStateException e) {
-            Log.e(TAG, "Contacts DB is having problems", e);
-        } finally {
-            if (null != cursor) {
-                cursor.close();
-            }
+        final ArrayList<String> validNames = mContactsManager.getValidNames(uri);
+        for (final String name : validNames) {
+            addNameLocked(name);
         }
-    }
-
-    private boolean useFirstLastBigramsForLocale(final Locale locale) {
-        // TODO: Add firstname/lastname bigram rules for other languages.
-        if (locale != null && locale.getLanguage().equals(Locale.ENGLISH.getLanguage())) {
-            return true;
+        if (uri.equals(Contacts.CONTENT_URI)) {
+            // Since we were able to add content successfully, update the local
+            // state of the manager.
+            mContactsManager.updateLocalState(validNames);
         }
-        return false;
-    }
-
-    private void addWordsLocked(final Cursor cursor) {
-        int count = 0;
-        final ArrayList<String> names = new ArrayList<>();
-        while (!cursor.isAfterLast() && count < MAX_CONTACT_COUNT) {
-            String name = cursor.getString(INDEX_NAME);
-            if (isValidName(name)) {
-                names.add(name);
-                addNameLocked(name);
-                ++count;
-            } else {
-                if (DEBUG_DUMP) {
-                    Log.d(TAG, "Invalid name: " + name);
-                }
-            }
-            cursor.moveToNext();
-        }
-        mHashCodeAtLastRebuild = names.hashCode();
-    }
-
-    private int getContactCount() {
-        // TODO: consider switching to a rawQuery("select count(*)...") on the database if
-        // performance is a bottleneck.
-        Cursor cursor = null;
-        try {
-            cursor = mContext.getContentResolver().query(Contacts.CONTENT_URI, PROJECTION_ID_ONLY,
-                    null, null, null);
-            if (null == cursor) {
-                return 0;
-            }
-            return cursor.getCount();
-        } catch (final SQLiteException e) {
-            Log.e(TAG, "SQLiteException in the remote Contacts process.", e);
-        } finally {
-            if (null != cursor) {
-                cursor.close();
-            }
-        }
-        return 0;
     }
 
     /**
@@ -218,11 +125,12 @@
      */
     private void addNameLocked(final String name) {
         int len = StringUtils.codePointCount(name);
-        PrevWordsInfo prevWordsInfo = PrevWordsInfo.EMPTY_PREV_WORDS_INFO;
+        NgramContext ngramContext = NgramContext.getEmptyPrevWordsContext(
+                BinaryDictionary.MAX_PREV_WORD_COUNT_FOR_N_GRAM);
         // TODO: Better tokenization for non-Latin writing systems
         for (int i = 0; i < len; i++) {
             if (Character.isLetter(name.codePointAt(i))) {
-                int end = getWordEndPosition(name, len, i);
+                int end = ContactsDictionaryUtils.getWordEndPosition(name, len, i);
                 String word = name.substring(i, end);
                 if (DEBUG_DUMP) {
                     Log.d(TAG, "addName word = " + word);
@@ -233,93 +141,29 @@
                 final int wordLen = StringUtils.codePointCount(word);
                 if (wordLen <= MAX_WORD_LENGTH && wordLen > 1) {
                     if (DEBUG) {
-                        Log.d(TAG, "addName " + name + ", " + word + ", "  + prevWordsInfo);
+                        Log.d(TAG, "addName " + name + ", " + word + ", "  + ngramContext);
                     }
                     runGCIfRequiredLocked(true /* mindsBlockByGC */);
-                    addUnigramLocked(word, FREQUENCY_FOR_CONTACTS,
-                            null /* shortcut */, 0 /* shortcutFreq */, false /* isNotAWord */,
-                            false /* isBlacklisted */, BinaryDictionary.NOT_A_VALID_TIMESTAMP);
-                    if (!prevWordsInfo.isValid() && mUseFirstLastBigrams) {
+                    addUnigramLocked(word,
+                            ContactsDictionaryConstants.FREQUENCY_FOR_CONTACTS, false /* isNotAWord */,
+                            false /* isPossiblyOffensive */,
+                            BinaryDictionary.NOT_A_VALID_TIMESTAMP);
+                    if (ngramContext.isValid() && mUseFirstLastBigrams) {
                         runGCIfRequiredLocked(true /* mindsBlockByGC */);
-                        addNgramEntryLocked(prevWordsInfo, word, FREQUENCY_FOR_CONTACTS_BIGRAM,
+                        addNgramEntryLocked(ngramContext,
+                                word,
+                                ContactsDictionaryConstants.FREQUENCY_FOR_CONTACTS_BIGRAM,
                                 BinaryDictionary.NOT_A_VALID_TIMESTAMP);
                     }
-                    prevWordsInfo = prevWordsInfo.getNextPrevWordsInfo(
-                            new PrevWordsInfo.WordInfo(word));
+                    ngramContext = ngramContext.getNextNgramContext(
+                            new NgramContext.WordInfo(word));
                 }
             }
         }
     }
 
-    /**
-     * Returns the index of the last letter in the word, starting from position startIndex.
-     */
-    private static int getWordEndPosition(final String string, final int len,
-            final int startIndex) {
-        int end;
-        int cp = 0;
-        for (end = startIndex + 1; end < len; end += Character.charCount(cp)) {
-            cp = string.codePointAt(end);
-            if (!(cp == Constants.CODE_DASH || cp == Constants.CODE_SINGLE_QUOTE
-                    || Character.isLetter(cp))) {
-                break;
-            }
-        }
-        return end;
-    }
-
-    private boolean haveContentsChanged() {
-        final long startTime = SystemClock.uptimeMillis();
-        final int contactCount = getContactCount();
-        if (contactCount > MAX_CONTACT_COUNT) {
-            // If there are too many contacts then return false. In this rare case it is impossible
-            // to include all of them anyways and the cost of rebuilding the dictionary is too high.
-            // TODO: Sort and check only the MAX_CONTACT_COUNT most recent contacts?
-            return false;
-        }
-        if (contactCount != mContactCountAtLastRebuild) {
-            if (DEBUG) {
-                Log.d(TAG, "Contact count changed: " + mContactCountAtLastRebuild + " to "
-                        + contactCount);
-            }
-            return true;
-        }
-        // Check all contacts since it's not possible to find out which names have changed.
-        // This is needed because it's possible to receive extraneous onChange events even when no
-        // name has changed.
-        final Cursor cursor = mContext.getContentResolver().query(Contacts.CONTENT_URI, PROJECTION,
-                null, null, null);
-        if (null == cursor) {
-            return false;
-        }
-        final ArrayList<String> names = new ArrayList<>();
-        try {
-            if (cursor.moveToFirst()) {
-                while (!cursor.isAfterLast()) {
-                    String name = cursor.getString(INDEX_NAME);
-                    if (isValidName(name)) {
-                        names.add(name);
-                    }
-                    cursor.moveToNext();
-                }
-            }
-            if (names.hashCode() != mHashCodeAtLastRebuild) {
-                return true;
-            }
-        } finally {
-            cursor.close();
-        }
-        if (DEBUG) {
-            Log.d(TAG, "No contacts changed. (runtime = " + (SystemClock.uptimeMillis() - startTime)
-                    + " ms)");
-        }
-        return false;
-    }
-
-    private static boolean isValidName(final String name) {
-        if (name != null && -1 == name.indexOf(Constants.CODE_COMMERCIAL_AT)) {
-            return true;
-        }
-        return false;
+    @Override
+    public void onContactsChange() {
+        setNeedsToRecreate();
     }
 }
diff --git a/java/src/com/android/inputmethod/latin/ContactsContentObserver.java b/java/src/com/android/inputmethod/latin/ContactsContentObserver.java
new file mode 100644
index 0000000..5eb9b16
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/ContactsContentObserver.java
@@ -0,0 +1,114 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.database.ContentObserver;
+import android.os.SystemClock;
+import android.provider.ContactsContract.Contacts;
+import android.util.Log;
+
+import com.android.inputmethod.latin.ContactsManager.ContactsChangedListener;
+import com.android.inputmethod.latin.utils.ExecutorUtils;
+
+import java.util.ArrayList;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+/**
+ * A content observer that listens to updates to content provider {@link Contacts#CONTENT_URI}.
+ */
+public class ContactsContentObserver implements Runnable {
+    private static final String TAG = ContactsContentObserver.class.getSimpleName();
+    private static final boolean DEBUG = false;
+    private static AtomicBoolean sRunning = new AtomicBoolean(false);
+
+    private final Context mContext;
+    private final ContactsManager mManager;
+
+    private ContentObserver mContentObserver;
+    private ContactsChangedListener mContactsChangedListener;
+
+    public ContactsContentObserver(final ContactsManager manager, final Context context) {
+        mManager = manager;
+        mContext = context;
+    }
+
+    public void registerObserver(final ContactsChangedListener listener) {
+        if (DEBUG) {
+            Log.d(TAG, "Registered Contacts Content Observer");
+        }
+        mContactsChangedListener = listener;
+        mContentObserver = new ContentObserver(null /* handler */) {
+            @Override
+            public void onChange(boolean self) {
+                ExecutorUtils.getBackgroundExecutor(ExecutorUtils.KEYBOARD)
+                        .execute(ContactsContentObserver.this);
+            }
+        };
+        final ContentResolver contentResolver = mContext.getContentResolver();
+        contentResolver.registerContentObserver(Contacts.CONTENT_URI, true, mContentObserver);
+    }
+
+    @Override
+    public void run() {
+        if (!sRunning.compareAndSet(false /* expect */, true /* update */)) {
+            if (DEBUG) {
+                Log.d(TAG, "run() : Already running. Don't waste time checking again.");
+            }
+            return;
+        }
+        if (haveContentsChanged()) {
+            if (DEBUG) {
+                Log.d(TAG, "run() : Contacts have changed. Notifying listeners.");
+            }
+            mContactsChangedListener.onContactsChange();
+        }
+        sRunning.set(false);
+    }
+
+    boolean haveContentsChanged() {
+        final long startTime = SystemClock.uptimeMillis();
+        final int contactCount = mManager.getContactCount();
+        if (contactCount > ContactsDictionaryConstants.MAX_CONTACT_COUNT) {
+            // If there are too many contacts then return false. In this rare case it is impossible
+            // to include all of them anyways and the cost of rebuilding the dictionary is too high.
+            // TODO: Sort and check only the MAX_CONTACT_COUNT most recent contacts?
+            return false;
+        }
+        if (contactCount != mManager.getContactCountAtLastRebuild()) {
+            if (DEBUG) {
+                Log.d(TAG, "Contact count changed: " + mManager.getContactCountAtLastRebuild()
+                        + " to " + contactCount);
+            }
+            return true;
+        }
+        final ArrayList<String> names = mManager.getValidNames(Contacts.CONTENT_URI);
+        if (names.hashCode() != mManager.getHashCodeAtLastRebuild()) {
+            return true;
+        }
+        if (DEBUG) {
+            Log.d(TAG, "No contacts changed. (runtime = " + (SystemClock.uptimeMillis() - startTime)
+                    + " ms)");
+        }
+        return false;
+    }
+
+    public void unregister() {
+        mContext.getContentResolver().unregisterContentObserver(mContentObserver);
+    }
+}
diff --git a/java/src/com/android/inputmethod/latin/ContactsDictionaryConstants.java b/java/src/com/android/inputmethod/latin/ContactsDictionaryConstants.java
new file mode 100644
index 0000000..8d8faca
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/ContactsDictionaryConstants.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.inputmethod.latin;
+
+import android.provider.BaseColumns;
+import android.provider.ContactsContract.Contacts;
+
+/**
+ * Constants related to Contacts Content Provider.
+ */
+public class ContactsDictionaryConstants {
+    /**
+     * Projections for {@link Contacts.CONTENT_URI}
+     */
+    public static final String[] PROJECTION = { BaseColumns._ID, Contacts.DISPLAY_NAME };
+    public static final String[] PROJECTION_ID_ONLY = { BaseColumns._ID };
+
+    /**
+     * Frequency for contacts information into the dictionary
+     */
+    public static final int FREQUENCY_FOR_CONTACTS = 40;
+    public static final int FREQUENCY_FOR_CONTACTS_BIGRAM = 90;
+
+    /**
+     *  The maximum number of contacts that this dictionary supports.
+     */
+    public static final int MAX_CONTACT_COUNT = 10000;
+
+    /**
+     * Index of the column for 'name' in content providers:
+     * Contacts & ContactsContract.Profile.
+     */
+    public static final int NAME_INDEX = 1;
+}
diff --git a/java/src/com/android/inputmethod/latin/ContactsDictionaryUtils.java b/java/src/com/android/inputmethod/latin/ContactsDictionaryUtils.java
new file mode 100644
index 0000000..b773884
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/ContactsDictionaryUtils.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin;
+
+import com.android.inputmethod.latin.common.Constants;
+
+import java.util.Locale;
+
+/**
+ * Utility methods related contacts dictionary.
+ */
+public class ContactsDictionaryUtils {
+
+    /**
+     * Returns the index of the last letter in the word, starting from position startIndex.
+     */
+    public static int getWordEndPosition(final String string, final int len,
+            final int startIndex) {
+        int end;
+        int cp = 0;
+        for (end = startIndex + 1; end < len; end += Character.charCount(cp)) {
+            cp = string.codePointAt(end);
+            if (cp != Constants.CODE_DASH && cp != Constants.CODE_SINGLE_QUOTE
+                   && !Character.isLetter(cp)) {
+                break;
+            }
+        }
+        return end;
+    }
+
+    /**
+     * Returns true if the locale supports using first name and last name as bigrams.
+     */
+    public static boolean useFirstLastBigramsForLocale(final Locale locale) {
+        // TODO: Add firstname/lastname bigram rules for other languages.
+        if (locale != null && locale.getLanguage().equals(Locale.ENGLISH.getLanguage())) {
+            return true;
+        }
+        return false;
+    }
+}
diff --git a/java/src/com/android/inputmethod/latin/ContactsManager.java b/java/src/com/android/inputmethod/latin/ContactsManager.java
new file mode 100644
index 0000000..1fadc6f
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/ContactsManager.java
@@ -0,0 +1,159 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin;
+
+import android.content.Context;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteException;
+import android.net.Uri;
+import android.provider.ContactsContract.Contacts;
+import android.util.Log;
+
+import com.android.inputmethod.latin.common.Constants;
+
+import java.util.ArrayList;
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * Manages all interactions with Contacts DB.
+ *
+ * The manager provides an API for listening to meaning full updates by keeping a
+ * measure of the current state of the content provider.
+ */
+public class ContactsManager {
+    private static final String TAG = ContactsManager.class.getSimpleName();
+    private static final boolean DEBUG = false;
+
+    /**
+     * Interface to implement for classes interested in getting notified for updates
+     * to Contacts content provider.
+     */
+    public static interface ContactsChangedListener {
+        public void onContactsChange();
+    }
+
+    /**
+     * The number of contacts observed in the most recent instance of
+     * contacts content provider.
+     */
+    private AtomicInteger mContactCountAtLastRebuild = new AtomicInteger(0);
+
+    /**
+     * The hash code of list of valid contacts names in the most recent dictionary
+     * rebuild.
+     */
+    private AtomicInteger mHashCodeAtLastRebuild = new AtomicInteger(0);
+
+    private final Context mContext;
+    private final ContactsContentObserver mObserver;
+
+    public ContactsManager(final Context context) {
+        mContext = context;
+        mObserver = new ContactsContentObserver(this /* ContactsManager */, context);
+    }
+
+    // TODO: This was synchronized in previous version. Why?
+    public void registerForUpdates(final ContactsChangedListener listener) {
+        mObserver.registerObserver(listener);
+    }
+
+    public int getContactCountAtLastRebuild() {
+        return mContactCountAtLastRebuild.get();
+    }
+
+    public int getHashCodeAtLastRebuild() {
+        return mHashCodeAtLastRebuild.get();
+    }
+
+    /**
+     * Returns all the valid names in the Contacts DB. Callers should also
+     * call {@link #updateLocalState(ArrayList)} after they are done with result
+     * so that the manager can cache local state for determining updates.
+     */
+    public ArrayList<String> getValidNames(final Uri uri) {
+        final ArrayList<String> names = new ArrayList<>();
+        // Check all contacts since it's not possible to find out which names have changed.
+        // This is needed because it's possible to receive extraneous onChange events even when no
+        // name has changed.
+        final Cursor cursor = mContext.getContentResolver().query(uri,
+                ContactsDictionaryConstants.PROJECTION, null, null, null);
+        if (cursor != null) {
+            try {
+                if (cursor.moveToFirst()) {
+                    while (!cursor.isAfterLast()) {
+                        final String name = cursor.getString(
+                                ContactsDictionaryConstants.NAME_INDEX);
+                        if (isValidName(name)) {
+                            names.add(name);
+                        }
+                        cursor.moveToNext();
+                    }
+                }
+            } finally {
+                cursor.close();
+            }
+        }
+        return names;
+    }
+
+    /**
+     * Returns the number of contacts in contacts content provider.
+     */
+    public int getContactCount() {
+        // TODO: consider switching to a rawQuery("select count(*)...") on the database if
+        // performance is a bottleneck.
+        Cursor cursor = null;
+        try {
+            cursor = mContext.getContentResolver().query(Contacts.CONTENT_URI,
+                    ContactsDictionaryConstants.PROJECTION_ID_ONLY, null, null, null);
+            if (null == cursor) {
+                return 0;
+            }
+            return cursor.getCount();
+        } catch (final SQLiteException e) {
+            Log.e(TAG, "SQLiteException in the remote Contacts process.", e);
+        } finally {
+            if (null != cursor) {
+                cursor.close();
+            }
+        }
+        return 0;
+    }
+
+    private static boolean isValidName(final String name) {
+        if (name != null && -1 == name.indexOf(Constants.CODE_COMMERCIAL_AT)) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * Updates the local state of the manager. This should be called when the callers
+     * are done with all the updates of the content provider successfully.
+     */
+    public void updateLocalState(final ArrayList<String> names) {
+        mContactCountAtLastRebuild.set(getContactCount());
+        mHashCodeAtLastRebuild.set(names.hashCode());
+    }
+
+    /**
+     * Performs any necessary cleanup.
+     */
+    public void close() {
+        mObserver.unregister();
+    }
+}
diff --git a/java/src/com/android/inputmethod/latin/DicTraverseSession.java b/java/src/com/android/inputmethod/latin/DicTraverseSession.java
index b341f62..6816f12 100644
--- a/java/src/com/android/inputmethod/latin/DicTraverseSession.java
+++ b/java/src/com/android/inputmethod/latin/DicTraverseSession.java
@@ -16,7 +16,8 @@
 
 package com.android.inputmethod.latin;
 
-import com.android.inputmethod.latin.settings.NativeSuggestOptions;
+import com.android.inputmethod.latin.common.NativeSuggestOptions;
+import com.android.inputmethod.latin.define.DecoderSpecificConstants;
 import com.android.inputmethod.latin.utils.JniUtils;
 
 import java.util.Locale;
@@ -27,20 +28,21 @@
     }
     // Must be equal to MAX_RESULTS in native/jni/src/defines.h
     private static final int MAX_RESULTS = 18;
-    public final int[] mInputCodePoints = new int[Constants.DICTIONARY_MAX_WORD_LENGTH];
+    public final int[] mInputCodePoints =
+            new int[DecoderSpecificConstants.DICTIONARY_MAX_WORD_LENGTH];
     public final int[][] mPrevWordCodePointArrays =
-            new int[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM][];
+            new int[DecoderSpecificConstants.MAX_PREV_WORD_COUNT_FOR_N_GRAM][];
     public final boolean[] mIsBeginningOfSentenceArray =
-            new boolean[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
+            new boolean[DecoderSpecificConstants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
     public final int[] mOutputSuggestionCount = new int[1];
     public final int[] mOutputCodePoints =
-            new int[Constants.DICTIONARY_MAX_WORD_LENGTH * MAX_RESULTS];
+            new int[DecoderSpecificConstants.DICTIONARY_MAX_WORD_LENGTH * MAX_RESULTS];
     public final int[] mSpaceIndices = new int[MAX_RESULTS];
     public final int[] mOutputScores = new int[MAX_RESULTS];
     public final int[] mOutputTypes = new int[MAX_RESULTS];
     // Only one result is ever used
     public final int[] mOutputAutoCommitFirstWordConfidence = new int[1];
-    public final float[] mInputOutputLanguageWeight = new float[1];
+    public final float[] mInputOutputWeightOfLangModelVsSpatialModel = new float[1];
 
     public final NativeSuggestOptions mNativeSuggestOptions = new NativeSuggestOptions();
 
@@ -70,7 +72,7 @@
                 mNativeDicTraverseSession, dictionary, previousWord, previousWordLength);
     }
 
-    private final long createNativeDicTraverseSession(String locale, long dictSize) {
+    private static long createNativeDicTraverseSession(String locale, long dictSize) {
         return setDicTraverseSessionNative(locale, dictSize);
     }
 
diff --git a/java/src/com/android/inputmethod/latin/Dictionary.java b/java/src/com/android/inputmethod/latin/Dictionary.java
index 560ced9..16dcb32 100644
--- a/java/src/com/android/inputmethod/latin/Dictionary.java
+++ b/java/src/com/android/inputmethod/latin/Dictionary.java
@@ -17,11 +17,14 @@
 package com.android.inputmethod.latin;
 
 import com.android.inputmethod.annotations.UsedForTesting;
-import com.android.inputmethod.keyboard.ProximityInfo;
 import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
+import com.android.inputmethod.latin.common.ComposedData;
 import com.android.inputmethod.latin.settings.SettingsValuesForSuggestion;
 
 import java.util.ArrayList;
+import java.util.Locale;
+import java.util.Arrays;
+import java.util.HashSet;
 
 /**
  * Abstract base class for a dictionary that can do a fuzzy search for words based on a set of key
@@ -29,25 +32,24 @@
  */
 public abstract class Dictionary {
     public static final int NOT_A_PROBABILITY = -1;
-    public static final float NOT_A_LANGUAGE_WEIGHT = -1.0f;
+    public static final float NOT_A_WEIGHT_OF_LANG_MODEL_VS_SPATIAL_MODEL = -1.0f;
 
     // The following types do not actually come from real dictionary instances, so we create
     // corresponding instances.
     public static final String TYPE_USER_TYPED = "user_typed";
-    public static final Dictionary DICTIONARY_USER_TYPED = new PhonyDictionary(TYPE_USER_TYPED);
+    public static final PhonyDictionary DICTIONARY_USER_TYPED = new PhonyDictionary(TYPE_USER_TYPED);
 
     public static final String TYPE_APPLICATION_DEFINED = "application_defined";
-    public static final Dictionary DICTIONARY_APPLICATION_DEFINED =
+    public static final PhonyDictionary DICTIONARY_APPLICATION_DEFINED =
             new PhonyDictionary(TYPE_APPLICATION_DEFINED);
 
     public static final String TYPE_HARDCODED = "hardcoded"; // punctuation signs and such
-    public static final Dictionary DICTIONARY_HARDCODED =
+    public static final PhonyDictionary DICTIONARY_HARDCODED =
             new PhonyDictionary(TYPE_HARDCODED);
 
     // Spawned by resuming suggestions. Comes from a span that was in the TextView.
     public static final String TYPE_RESUMED = "resumed";
-    public static final Dictionary DICTIONARY_RESUMED =
-            new PhonyDictionary(TYPE_RESUMED);
+    public static final PhonyDictionary DICTIONARY_RESUMED = new PhonyDictionary(TYPE_RESUMED);
 
     // The following types of dictionary have actual functional instances. We don't need final
     // phony dictionary instances for them.
@@ -57,33 +59,44 @@
     public static final String TYPE_USER = "user";
     // User history dictionary internal to LatinIME.
     public static final String TYPE_USER_HISTORY = "history";
-    // Personalization dictionary.
-    public static final String TYPE_PERSONALIZATION = "personalization";
-    // Contextual dictionary.
-    public static final String TYPE_CONTEXTUAL = "contextual";
     public final String mDictType;
+    // The locale for this dictionary. May be null if unknown (phony dictionary for example).
+    public final Locale mLocale;
 
-    public Dictionary(final String dictType) {
+    /**
+     * Set out of the dictionary types listed above that are based on data specific to the user,
+     * e.g., the user's contacts.
+     */
+    private static final HashSet<String> sUserSpecificDictionaryTypes = new HashSet<>(Arrays.asList(
+            TYPE_USER_TYPED,
+            TYPE_USER,
+            TYPE_CONTACTS,
+            TYPE_USER_HISTORY));
+
+    public Dictionary(final String dictType, final Locale locale) {
         mDictType = dictType;
+        mLocale = locale;
     }
 
     /**
-     * Searches for suggestions for a given context. For the moment the context is only the
-     * previous word.
-     * @param composer the key sequence to match with coordinate info, as a WordComposer
-     * @param prevWordsInfo the information of previous words.
-     * @param proximityInfo the object for key proximity. May be ignored by some implementations.
+     * Searches for suggestions for a given context.
+     * @param composedData the key sequence to match with coordinate info
+     * @param ngramContext the context for n-gram.
+     * @param proximityInfoHandle the handle for key proximity. Is ignored by some implementations.
      * @param settingsValuesForSuggestion the settings values used for the suggestion.
      * @param sessionId the session id.
-     * @param inOutLanguageWeight the language weight used for generating suggestions.
-     * inOutLanguageWeight is a float array that has only one element. This can be updated when the
-     * different language weight is used.
+     * @param weightForLocale the weight given to this locale, to multiply the output scores for
+     * multilingual input.
+     * @param inOutWeightOfLangModelVsSpatialModel the weight of the language model as a ratio of
+     * the spatial model, used for generating suggestions. inOutWeightOfLangModelVsSpatialModel is
+     * a float array that has only one element. This can be updated when a different value is used.
      * @return the list of suggestions (possibly null if none)
      */
-    abstract public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
-            final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo,
+    abstract public ArrayList<SuggestedWordInfo> getSuggestions(final ComposedData composedData,
+            final NgramContext ngramContext, final long proximityInfoHandle,
             final SettingsValuesForSuggestion settingsValuesForSuggestion,
-            final int sessionId, final float[] inOutLanguageWeight);
+            final int sessionId, final float weightForLocale,
+            final float[] inOutWeightOfLangModelVsSpatialModel);
 
     /**
      * Checks if the given word has to be treated as a valid word. Please note that some
@@ -100,10 +113,18 @@
      */
     abstract public boolean isInDictionary(final String word);
 
+    /**
+     * Get the frequency of the word.
+     * @param word the word to get the frequency of.
+     */
     public int getFrequency(final String word) {
         return NOT_A_PROBABILITY;
     }
 
+    /**
+     * Get the maximum frequency of the word.
+     * @param word the word to get the maximum frequency of.
+     */
     public int getMaxFrequencyOfExactMatches(final String word) {
         return NOT_A_PROBABILITY;
     }
@@ -156,20 +177,30 @@
     }
 
     /**
+     * Whether this dictionary is based on data specific to the user, e.g., the user's contacts.
+     * @return Whether this dictionary is specific to the user.
+     */
+    public boolean isUserSpecific() {
+        return sUserSpecificDictionaryTypes.contains(mDictType);
+    }
+
+    /**
      * Not a true dictionary. A placeholder used to indicate suggestions that don't come from any
      * real dictionary.
      */
-    private static class PhonyDictionary extends Dictionary {
-        // This class is not publicly instantiable.
-        private PhonyDictionary(final String type) {
-            super(type);
+    @UsedForTesting
+    static class PhonyDictionary extends Dictionary {
+        @UsedForTesting
+        PhonyDictionary(final String type) {
+            super(type, null);
         }
 
         @Override
-        public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
-                final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo,
+        public ArrayList<SuggestedWordInfo> getSuggestions(final ComposedData composedData,
+                final NgramContext ngramContext, final long proximityInfoHandle,
                 final SettingsValuesForSuggestion settingsValuesForSuggestion,
-                final int sessionId, final float[] inOutLanguageWeight) {
+                final int sessionId, final float weightForLocale,
+                final float[] inOutWeightOfLangModelVsSpatialModel) {
             return null;
         }
 
diff --git a/java/src/com/android/inputmethod/latin/DictionaryCollection.java b/java/src/com/android/inputmethod/latin/DictionaryCollection.java
index 2b4c54d..96575f6 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryCollection.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryCollection.java
@@ -18,13 +18,14 @@
 
 import android.util.Log;
 
-import com.android.inputmethod.keyboard.ProximityInfo;
 import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
+import com.android.inputmethod.latin.common.ComposedData;
 import com.android.inputmethod.latin.settings.SettingsValuesForSuggestion;
 
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Locale;
 import java.util.concurrent.CopyOnWriteArrayList;
 
 /**
@@ -34,13 +35,14 @@
     private final String TAG = DictionaryCollection.class.getSimpleName();
     protected final CopyOnWriteArrayList<Dictionary> mDictionaries;
 
-    public DictionaryCollection(final String dictType) {
-        super(dictType);
+    public DictionaryCollection(final String dictType, final Locale locale) {
+        super(dictType, locale);
         mDictionaries = new CopyOnWriteArrayList<>();
     }
 
-    public DictionaryCollection(final String dictType, final Dictionary... dictionaries) {
-        super(dictType);
+    public DictionaryCollection(final String dictType, final Locale locale,
+            final Dictionary... dictionaries) {
+        super(dictType, locale);
         if (null == dictionaries) {
             mDictionaries = new CopyOnWriteArrayList<>();
         } else {
@@ -49,30 +51,32 @@
         }
     }
 
-    public DictionaryCollection(final String dictType, final Collection<Dictionary> dictionaries) {
-        super(dictType);
+    public DictionaryCollection(final String dictType, final Locale locale,
+            final Collection<Dictionary> dictionaries) {
+        super(dictType, locale);
         mDictionaries = new CopyOnWriteArrayList<>(dictionaries);
         mDictionaries.removeAll(Collections.singleton(null));
     }
 
     @Override
-    public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
-            final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo,
+    public ArrayList<SuggestedWordInfo> getSuggestions(final ComposedData composedData,
+            final NgramContext ngramContext, final long proximityInfoHandle,
             final SettingsValuesForSuggestion settingsValuesForSuggestion,
-            final int sessionId, final float[] inOutLanguageWeight) {
+            final int sessionId, final float weightForLocale,
+            final float[] inOutWeightOfLangModelVsSpatialModel) {
         final CopyOnWriteArrayList<Dictionary> dictionaries = mDictionaries;
         if (dictionaries.isEmpty()) return null;
         // To avoid creating unnecessary objects, we get the list out of the first
         // dictionary and add the rest to it if not null, hence the get(0)
-        ArrayList<SuggestedWordInfo> suggestions = dictionaries.get(0).getSuggestions(composer,
-                prevWordsInfo, proximityInfo, settingsValuesForSuggestion, sessionId,
-                inOutLanguageWeight);
+        ArrayList<SuggestedWordInfo> suggestions = dictionaries.get(0).getSuggestions(composedData,
+                ngramContext, proximityInfoHandle, settingsValuesForSuggestion, sessionId,
+                weightForLocale, inOutWeightOfLangModelVsSpatialModel);
         if (null == suggestions) suggestions = new ArrayList<>();
         final int length = dictionaries.size();
         for (int i = 1; i < length; ++ i) {
-            final ArrayList<SuggestedWordInfo> sugg = dictionaries.get(i).getSuggestions(composer,
-                    prevWordsInfo, proximityInfo, settingsValuesForSuggestion, sessionId,
-                    inOutLanguageWeight);
+            final ArrayList<SuggestedWordInfo> sugg = dictionaries.get(i).getSuggestions(
+                    composedData, ngramContext, proximityInfoHandle, settingsValuesForSuggestion,
+                    sessionId, weightForLocale, inOutWeightOfLangModelVsSpatialModel);
             if (null != sugg) suggestions.addAll(sugg);
         }
         return suggestions;
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
index fd1f51d..d5dff10 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitator.java
@@ -17,644 +17,160 @@
 package com.android.inputmethod.latin;
 
 import android.content.Context;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.annotations.UsedForTesting;
-import com.android.inputmethod.keyboard.ProximityInfo;
-import com.android.inputmethod.latin.PrevWordsInfo.WordInfo;
-import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
-import com.android.inputmethod.latin.personalization.ContextualDictionary;
-import com.android.inputmethod.latin.personalization.PersonalizationDataChunk;
-import com.android.inputmethod.latin.personalization.PersonalizationDictionary;
-import com.android.inputmethod.latin.personalization.UserHistoryDictionary;
+import com.android.inputmethod.keyboard.Keyboard;
+import com.android.inputmethod.latin.common.ComposedData;
 import com.android.inputmethod.latin.settings.SettingsValuesForSuggestion;
-import com.android.inputmethod.latin.settings.SpacingAndPunctuations;
-import com.android.inputmethod.latin.utils.DistracterFilter;
-import com.android.inputmethod.latin.utils.DistracterFilterCheckingIsInDictionary;
-import com.android.inputmethod.latin.utils.ExecutorUtils;
-import com.android.inputmethod.latin.utils.LanguageModelParam;
 import com.android.inputmethod.latin.utils.SuggestionResults;
 
 import java.io.File;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
-// TODO: Consolidate dictionaries in native code.
-public class DictionaryFacilitator {
-    public static final String TAG = DictionaryFacilitator.class.getSimpleName();
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 
-    // HACK: This threshold is being used when adding a capitalized entry in the User History
-    // dictionary.
-    private static final int CAPITALIZED_FORM_MAX_PROBABILITY_FOR_INSERT = 140;
+/**
+ * Interface that facilitates interaction with different kinds of dictionaries. Provides APIs to
+ * instantiate and select the correct dictionaries (based on language or account), update entries
+ * and fetch suggestions. Currently AndroidSpellCheckerService and LatinIME both use
+ * DictionaryFacilitator as a client for interacting with dictionaries.
+ */
+public interface DictionaryFacilitator {
 
-    private Dictionaries mDictionaries = new Dictionaries();
-    private boolean mIsUserDictEnabled = false;
-    private volatile CountDownLatch mLatchForWaitingLoadingMainDictionary = new CountDownLatch(0);
-    // To synchronize assigning mDictionaries to ensure closing dictionaries.
-    private final Object mLock = new Object();
-    private final DistracterFilter mDistracterFilter;
+    public static final String[] ALL_DICTIONARY_TYPES = new String[] {
+            Dictionary.TYPE_MAIN,
+            Dictionary.TYPE_USER_HISTORY,
+            Dictionary.TYPE_USER,
+            Dictionary.TYPE_CONTACTS};
 
-    private static final String[] DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS =
-            new String[] {
-                Dictionary.TYPE_MAIN,
-                Dictionary.TYPE_USER_HISTORY,
-                Dictionary.TYPE_PERSONALIZATION,
-                Dictionary.TYPE_USER,
-                Dictionary.TYPE_CONTACTS,
-                Dictionary.TYPE_CONTEXTUAL
-            };
-
-    public static final Map<String, Class<? extends ExpandableBinaryDictionary>>
-            DICT_TYPE_TO_CLASS = new HashMap<>();
-
-    static {
-        DICT_TYPE_TO_CLASS.put(Dictionary.TYPE_USER_HISTORY, UserHistoryDictionary.class);
-        DICT_TYPE_TO_CLASS.put(Dictionary.TYPE_PERSONALIZATION, PersonalizationDictionary.class);
-        DICT_TYPE_TO_CLASS.put(Dictionary.TYPE_USER, UserBinaryDictionary.class);
-        DICT_TYPE_TO_CLASS.put(Dictionary.TYPE_CONTACTS, ContactsBinaryDictionary.class);
-        DICT_TYPE_TO_CLASS.put(Dictionary.TYPE_CONTEXTUAL, ContextualDictionary.class);
-    }
-
-    private static final String DICT_FACTORY_METHOD_NAME = "getDictionary";
-    private static final Class<?>[] DICT_FACTORY_METHOD_ARG_TYPES =
-            new Class[] { Context.class, Locale.class, File.class, String.class };
-
-    private static final String[] SUB_DICT_TYPES =
-            Arrays.copyOfRange(DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS, 1 /* start */,
-                    DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS.length);
+    public static final String[] DYNAMIC_DICTIONARY_TYPES = new String[] {
+            Dictionary.TYPE_USER_HISTORY,
+            Dictionary.TYPE_USER,
+            Dictionary.TYPE_CONTACTS};
 
     /**
-     * Class contains dictionaries for a locale.
+     * {@link Dictionary#TYPE_USER} is deprecated, except for the spelling service.
      */
-    private static class Dictionaries {
-        public final Locale mLocale;
-        private Dictionary mMainDict;
-        public final ConcurrentHashMap<String, ExpandableBinaryDictionary> mSubDictMap =
-                new ConcurrentHashMap<>();
+    public static final String[] DICTIONARY_TYPES_FOR_SPELLING = new String[] {
+            Dictionary.TYPE_MAIN,
+            Dictionary.TYPE_USER_HISTORY,
+            Dictionary.TYPE_USER,
+            Dictionary.TYPE_CONTACTS};
 
-        public Dictionaries() {
-            mLocale = null;
-        }
+    /**
+     * {@link Dictionary#TYPE_USER} is deprecated, except for the spelling service.
+     */
+    public static final String[] DICTIONARY_TYPES_FOR_SUGGESTIONS = new String[] {
+            Dictionary.TYPE_MAIN,
+            Dictionary.TYPE_USER_HISTORY,
+            Dictionary.TYPE_CONTACTS};
 
-        public Dictionaries(final Locale locale, final Dictionary mainDict,
-                final Map<String, ExpandableBinaryDictionary> subDicts) {
-            mLocale = locale;
-            // Main dictionary can be asynchronously loaded.
-            setMainDict(mainDict);
-            for (final Map.Entry<String, ExpandableBinaryDictionary> entry : subDicts.entrySet()) {
-                setSubDict(entry.getKey(), entry.getValue());
-            }
-        }
+    /**
+     * Returns whether this facilitator is exactly for this locale.
+     *
+     * @param locale the locale to test against
+     */
+    boolean isForLocale(final Locale locale);
 
-        private void setSubDict(final String dictType, final ExpandableBinaryDictionary dict) {
-            if (dict != null) {
-                mSubDictMap.put(dictType, dict);
-            }
-        }
+    /**
+     * Returns whether this facilitator is exactly for this account.
+     *
+     * @param account the account to test against.
+     */
+    boolean isForAccount(@Nullable final String account);
 
-        public void setMainDict(final Dictionary mainDict) {
-            // Close old dictionary if exists. Main dictionary can be assigned multiple times.
-            final Dictionary oldDict = mMainDict;
-            mMainDict = mainDict;
-            if (oldDict != null && mainDict != oldDict) {
-                oldDict.close();
-            }
-        }
-
-        public Dictionary getDict(final String dictType) {
-            if (Dictionary.TYPE_MAIN.equals(dictType)) {
-                return mMainDict;
-            } else {
-                return getSubDict(dictType);
-            }
-        }
-
-        public ExpandableBinaryDictionary getSubDict(final String dictType) {
-            return mSubDictMap.get(dictType);
-        }
-
-        public boolean hasDict(final String dictType) {
-            if (Dictionary.TYPE_MAIN.equals(dictType)) {
-                return mMainDict != null;
-            } else {
-                return mSubDictMap.containsKey(dictType);
-            }
-        }
-
-        public void closeDict(final String dictType) {
-            final Dictionary dict;
-            if (Dictionary.TYPE_MAIN.equals(dictType)) {
-                dict = mMainDict;
-            } else {
-                dict = mSubDictMap.remove(dictType);
-            }
-            if (dict != null) {
-                dict.close();
-            }
-        }
+    interface DictionaryInitializationListener {
+        void onUpdateMainDictionaryAvailability(boolean isMainDictionaryAvailable);
     }
 
-    public interface DictionaryInitializationListener {
-        public void onUpdateMainDictionaryAvailability(boolean isMainDictionaryAvailable);
-    }
+    /**
+     * Called every time {@link LatinIME} starts on a new text field.
+     * Dot not affect {@link AndroidSpellCheckerService}.
+     *
+     * WARNING: The service methods that call start/finish are very spammy.
+     */
+    void onStartInput();
 
-    public DictionaryFacilitator() {
-        mDistracterFilter = DistracterFilter.EMPTY_DISTRACTER_FILTER;
-    }
+    /**
+     * Called every time the {@link LatinIME} finishes with the current text field.
+     * May be followed by {@link #onStartInput} again in another text field,
+     * or it may be done for a while.
+     * Dot not affect {@link AndroidSpellCheckerService}.
+     *
+     * WARNING: The service methods that call start/finish are very spammy.
+     */
+    void onFinishInput();
 
-    public DictionaryFacilitator(final DistracterFilter distracterFilter) {
-        mDistracterFilter = distracterFilter;
-    }
+    boolean isActive();
 
-    public void updateEnabledSubtypes(final List<InputMethodSubtype> enabledSubtypes) {
-        mDistracterFilter.updateEnabledSubtypes(enabledSubtypes);
-    }
+    Locale getLocale();
 
-    public Locale getLocale() {
-        return mDictionaries.mLocale;
-    }
-
-    private static ExpandableBinaryDictionary getSubDict(final String dictType,
-            final Context context, final Locale locale, final File dictFile,
-            final String dictNamePrefix) {
-        final Class<? extends ExpandableBinaryDictionary> dictClass =
-                DICT_TYPE_TO_CLASS.get(dictType);
-        if (dictClass == null) {
-            return null;
-        }
-        try {
-            final Method factoryMethod = dictClass.getMethod(DICT_FACTORY_METHOD_NAME,
-                    DICT_FACTORY_METHOD_ARG_TYPES);
-            final Object dict = factoryMethod.invoke(null /* obj */,
-                    new Object[] { context, locale, dictFile, dictNamePrefix });
-            return (ExpandableBinaryDictionary) dict;
-        } catch (final NoSuchMethodException | SecurityException | IllegalAccessException
-                | IllegalArgumentException | InvocationTargetException e) {
-            Log.e(TAG, "Cannot create dictionary: " + dictType, e);
-            return null;
-        }
-    }
-
-    public void resetDictionaries(final Context context, final Locale newLocale,
-            final boolean useContactsDict, final boolean usePersonalizedDicts,
+    void resetDictionaries(
+            final Context context,
+            final Locale newLocale,
+            final boolean useContactsDict,
+            final boolean usePersonalizedDicts,
             final boolean forceReloadMainDictionary,
-            final DictionaryInitializationListener listener) {
-        resetDictionariesWithDictNamePrefix(context, newLocale, useContactsDict,
-                usePersonalizedDicts, forceReloadMainDictionary, listener, "" /* dictNamePrefix */);
-    }
-
-    public void resetDictionariesWithDictNamePrefix(final Context context, final Locale newLocale,
-            final boolean useContactsDict, final boolean usePersonalizedDicts,
-            final boolean forceReloadMainDictionary,
-            final DictionaryInitializationListener listener,
-            final String dictNamePrefix) {
-        final boolean localeHasBeenChanged = !newLocale.equals(mDictionaries.mLocale);
-        // We always try to have the main dictionary. Other dictionaries can be unused.
-        final boolean reloadMainDictionary = localeHasBeenChanged || forceReloadMainDictionary;
-        // TODO: Make subDictTypesToUse configurable by resource or a static final list.
-        final HashSet<String> subDictTypesToUse = new HashSet<>();
-        if (useContactsDict) {
-            subDictTypesToUse.add(Dictionary.TYPE_CONTACTS);
-        }
-        subDictTypesToUse.add(Dictionary.TYPE_USER);
-        if (usePersonalizedDicts) {
-            subDictTypesToUse.add(Dictionary.TYPE_USER_HISTORY);
-            subDictTypesToUse.add(Dictionary.TYPE_PERSONALIZATION);
-            subDictTypesToUse.add(Dictionary.TYPE_CONTEXTUAL);
-        }
-
-        final Dictionary newMainDict;
-        if (reloadMainDictionary) {
-            // The main dictionary will be asynchronously loaded.
-            newMainDict = null;
-        } else {
-            newMainDict = mDictionaries.getDict(Dictionary.TYPE_MAIN);
-        }
-
-        final Map<String, ExpandableBinaryDictionary> subDicts = new HashMap<>();
-        for (final String dictType : SUB_DICT_TYPES) {
-            if (!subDictTypesToUse.contains(dictType)) {
-                // This dictionary will not be used.
-                continue;
-            }
-            final ExpandableBinaryDictionary dict;
-            if (!localeHasBeenChanged && mDictionaries.hasDict(dictType)) {
-                // Continue to use current dictionary.
-                dict = mDictionaries.getSubDict(dictType);
-            } else {
-                // Start to use new dictionary.
-                dict = getSubDict(dictType, context, newLocale, null /* dictFile */,
-                        dictNamePrefix);
-            }
-            subDicts.put(dictType, dict);
-        }
-
-        // Replace Dictionaries.
-        final Dictionaries newDictionaries = new Dictionaries(newLocale, newMainDict, subDicts);
-        final Dictionaries oldDictionaries;
-        synchronized (mLock) {
-            oldDictionaries = mDictionaries;
-            mDictionaries = newDictionaries;
-            mIsUserDictEnabled = UserBinaryDictionary.isEnabled(context);
-            if (reloadMainDictionary) {
-                asyncReloadMainDictionary(context, newLocale, listener);
-            }
-        }
-        if (listener != null) {
-            listener.onUpdateMainDictionaryAvailability(hasInitializedMainDictionary());
-        }
-        // Clean up old dictionaries.
-        if (reloadMainDictionary) {
-            oldDictionaries.closeDict(Dictionary.TYPE_MAIN);
-        }
-        for (final String dictType : SUB_DICT_TYPES) {
-            if (localeHasBeenChanged || !subDictTypesToUse.contains(dictType)) {
-                oldDictionaries.closeDict(dictType);
-            }
-        }
-        oldDictionaries.mSubDictMap.clear();
-    }
-
-    private void asyncReloadMainDictionary(final Context context, final Locale locale,
-            final DictionaryInitializationListener listener) {
-        final CountDownLatch latchForWaitingLoadingMainDictionary = new CountDownLatch(1);
-        mLatchForWaitingLoadingMainDictionary = latchForWaitingLoadingMainDictionary;
-        ExecutorUtils.getExecutor("InitializeBinaryDictionary").execute(new Runnable() {
-            @Override
-            public void run() {
-                final Dictionary mainDict =
-                        DictionaryFactory.createMainDictionaryFromManager(context, locale);
-                synchronized (mLock) {
-                    if (locale.equals(mDictionaries.mLocale)) {
-                        mDictionaries.setMainDict(mainDict);
-                    } else {
-                        // Dictionary facilitator has been reset for another locale.
-                        mainDict.close();
-                    }
-                }
-                if (listener != null) {
-                    listener.onUpdateMainDictionaryAvailability(hasInitializedMainDictionary());
-                }
-                latchForWaitingLoadingMainDictionary.countDown();
-            }
-        });
-    }
+            @Nullable final String account,
+            final String dictNamePrefix,
+            @Nullable final DictionaryInitializationListener listener);
 
     @UsedForTesting
-    public void resetDictionariesForTesting(final Context context, final Locale locale,
-            final ArrayList<String> dictionaryTypes, final HashMap<String, File> dictionaryFiles,
-            final Map<String, Map<String, String>> additionalDictAttributes) {
-        Dictionary mainDictionary = null;
-        final Map<String, ExpandableBinaryDictionary> subDicts = new HashMap<>();
+    void resetDictionariesForTesting(
+            final Context context,
+            final Locale locale,
+            final ArrayList<String> dictionaryTypes,
+            final HashMap<String, File> dictionaryFiles,
+            final Map<String, Map<String, String>> additionalDictAttributes,
+            @Nullable final String account);
 
-        for (final String dictType : dictionaryTypes) {
-            if (dictType.equals(Dictionary.TYPE_MAIN)) {
-                mainDictionary = DictionaryFactory.createMainDictionaryFromManager(context, locale);
-            } else {
-                final File dictFile = dictionaryFiles.get(dictType);
-                final ExpandableBinaryDictionary dict = getSubDict(
-                        dictType, context, locale, dictFile, "" /* dictNamePrefix */);
-                if (additionalDictAttributes.containsKey(dictType)) {
-                    dict.clearAndFlushDictionaryWithAdditionalAttributes(
-                            additionalDictAttributes.get(dictType));
-                }
-                if (dict == null) {
-                    throw new RuntimeException("Unknown dictionary type: " + dictType);
-                }
-                dict.reloadDictionaryIfRequired();
-                dict.waitAllTasksForTests();
-                subDicts.put(dictType, dict);
-            }
-        }
-        mDictionaries = new Dictionaries(locale, mainDictionary, subDicts);
-    }
-
-    public void closeDictionaries() {
-        final Dictionaries dictionaries;
-        synchronized (mLock) {
-            dictionaries = mDictionaries;
-            mDictionaries = new Dictionaries();
-        }
-        for (final String dictType : DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS) {
-            dictionaries.closeDict(dictType);
-        }
-        mDistracterFilter.close();
-    }
+    void closeDictionaries();
 
     @UsedForTesting
-    public ExpandableBinaryDictionary getSubDictForTesting(final String dictName) {
-        return mDictionaries.getSubDict(dictName);
-    }
+    ExpandableBinaryDictionary getSubDictForTesting(final String dictName);
 
-    // The main dictionary could have been loaded asynchronously.  Don't cache the return value
-    // of this method.
-    public boolean hasInitializedMainDictionary() {
-        final Dictionary mainDict = mDictionaries.getDict(Dictionary.TYPE_MAIN);
-        return mainDict != null && mainDict.isInitialized();
-    }
+    // The main dictionaries are loaded asynchronously. Don't cache the return value
+    // of these methods.
+    boolean hasAtLeastOneInitializedMainDictionary();
 
-    public boolean hasPersonalizationDictionary() {
-        return mDictionaries.hasDict(Dictionary.TYPE_PERSONALIZATION);
-    }
+    boolean hasAtLeastOneUninitializedMainDictionary();
 
-    public void flushPersonalizationDictionary() {
-        final ExpandableBinaryDictionary personalizationDict =
-                mDictionaries.getSubDict(Dictionary.TYPE_PERSONALIZATION);
-        if (personalizationDict != null) {
-            personalizationDict.asyncFlushBinaryDictionary();
-        }
-    }
-
-    public void waitForLoadingMainDictionary(final long timeout, final TimeUnit unit)
-            throws InterruptedException {
-        mLatchForWaitingLoadingMainDictionary.await(timeout, unit);
-    }
+    void waitForLoadingMainDictionaries(final long timeout, final TimeUnit unit)
+            throws InterruptedException;
 
     @UsedForTesting
-    public void waitForLoadingDictionariesForTesting(final long timeout, final TimeUnit unit)
-            throws InterruptedException {
-        waitForLoadingMainDictionary(timeout, unit);
-        final Map<String, ExpandableBinaryDictionary> dictMap = mDictionaries.mSubDictMap;
-        for (final ExpandableBinaryDictionary dict : dictMap.values()) {
-            dict.waitAllTasksForTests();
-        }
-    }
+    void waitForLoadingDictionariesForTesting(final long timeout, final TimeUnit unit)
+            throws InterruptedException;
 
-    public boolean isUserDictionaryEnabled() {
-        return mIsUserDictEnabled;
-    }
+    void addToUserHistory(final String suggestion, final boolean wasAutoCapitalized,
+            @Nonnull final NgramContext ngramContext, final long timeStampInSeconds,
+            final boolean blockPotentiallyOffensive);
 
-    public void addWordToUserDictionary(final Context context, final String word) {
-        final Locale locale = getLocale();
-        if (locale == null) {
-            return;
-        }
-        UserBinaryDictionary.addWordToUserDictionary(context, locale, word);
-    }
-
-    public void addToUserHistory(final String suggestion, final boolean wasAutoCapitalized,
-            final PrevWordsInfo prevWordsInfo, final int timeStampInSeconds,
-            final boolean blockPotentiallyOffensive) {
-        final Dictionaries dictionaries = mDictionaries;
-        final String[] words = suggestion.split(Constants.WORD_SEPARATOR);
-        PrevWordsInfo prevWordsInfoForCurrentWord = prevWordsInfo;
-        for (int i = 0; i < words.length; i++) {
-            final String currentWord = words[i];
-            final boolean wasCurrentWordAutoCapitalized = (i == 0) ? wasAutoCapitalized : false;
-            addWordToUserHistory(dictionaries, prevWordsInfoForCurrentWord, currentWord,
-                    wasCurrentWordAutoCapitalized, timeStampInSeconds, blockPotentiallyOffensive);
-            prevWordsInfoForCurrentWord =
-                    prevWordsInfoForCurrentWord.getNextPrevWordsInfo(new WordInfo(currentWord));
-        }
-    }
-
-    private void addWordToUserHistory(final Dictionaries dictionaries,
-            final PrevWordsInfo prevWordsInfo, final String word, final boolean wasAutoCapitalized,
-            final int timeStampInSeconds, final boolean blockPotentiallyOffensive) {
-        final ExpandableBinaryDictionary userHistoryDictionary =
-                dictionaries.getSubDict(Dictionary.TYPE_USER_HISTORY);
-        if (userHistoryDictionary == null) {
-            return;
-        }
-        final int maxFreq = getFrequency(word);
-        if (maxFreq == 0 && blockPotentiallyOffensive) {
-            return;
-        }
-        final String lowerCasedWord = word.toLowerCase(dictionaries.mLocale);
-        final String secondWord;
-        if (wasAutoCapitalized) {
-            if (isValidWord(word, false /* ignoreCase */)
-                    && !isValidWord(lowerCasedWord, false /* ignoreCase */)) {
-                // If the word was auto-capitalized and exists only as a capitalized word in the
-                // dictionary, then we must not downcase it before registering it. For example,
-                // the name of the contacts in start-of-sentence position would come here with the
-                // wasAutoCapitalized flag: if we downcase it, we'd register a lower-case version
-                // of that contact's name which would end up popping in suggestions.
-                secondWord = word;
-            } else {
-                // If however the word is not in the dictionary, or exists as a lower-case word
-                // only, then we consider that was a lower-case word that had been auto-capitalized.
-                secondWord = lowerCasedWord;
-            }
-        } else {
-            // HACK: We'd like to avoid adding the capitalized form of common words to the User
-            // History dictionary in order to avoid suggesting them until the dictionary
-            // consolidation is done.
-            // TODO: Remove this hack when ready.
-            final int lowerCaseFreqInMainDict = dictionaries.hasDict(Dictionary.TYPE_MAIN) ?
-                    dictionaries.getDict(Dictionary.TYPE_MAIN).getFrequency(lowerCasedWord) :
-                            Dictionary.NOT_A_PROBABILITY;
-            if (maxFreq < lowerCaseFreqInMainDict
-                    && lowerCaseFreqInMainDict >= CAPITALIZED_FORM_MAX_PROBABILITY_FOR_INSERT) {
-                // Use lower cased word as the word can be a distracter of the popular word.
-                secondWord = lowerCasedWord;
-            } else {
-                secondWord = word;
-            }
-        }
-        // We demote unrecognized words (frequency < 0, below) by specifying them as "invalid".
-        // We don't add words with 0-frequency (assuming they would be profanity etc.).
-        final boolean isValid = maxFreq > 0;
-        UserHistoryDictionary.addToDictionary(userHistoryDictionary, prevWordsInfo, secondWord,
-                isValid, timeStampInSeconds,
-                new DistracterFilterCheckingIsInDictionary(
-                        mDistracterFilter, userHistoryDictionary));
-    }
-
-    private void removeWord(final String dictName, final String word) {
-        final ExpandableBinaryDictionary dictionary = mDictionaries.getSubDict(dictName);
-        if (dictionary != null) {
-            dictionary.removeUnigramEntryDynamically(word);
-        }
-    }
-
-    public void removeWordFromPersonalizedDicts(final String word) {
-        removeWord(Dictionary.TYPE_USER_HISTORY, word);
-        removeWord(Dictionary.TYPE_PERSONALIZATION, word);
-        removeWord(Dictionary.TYPE_CONTEXTUAL, word);
-    }
+    void unlearnFromUserHistory(final String word,
+            @Nonnull final NgramContext ngramContext, final long timeStampInSeconds,
+            final int eventType);
 
     // TODO: Revise the way to fusion suggestion results.
-    public SuggestionResults getSuggestionResults(final WordComposer composer,
-            final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo,
-            final SettingsValuesForSuggestion settingsValuesForSuggestion, final int sessionId) {
-        final Dictionaries dictionaries = mDictionaries;
-        final SuggestionResults suggestionResults = new SuggestionResults(
-                dictionaries.mLocale, SuggestedWords.MAX_SUGGESTIONS,
-                prevWordsInfo.mPrevWordsInfo[0].mIsBeginningOfSentence);
-        final float[] languageWeight = new float[] { Dictionary.NOT_A_LANGUAGE_WEIGHT };
-        for (final String dictType : DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS) {
-            final Dictionary dictionary = dictionaries.getDict(dictType);
-            if (null == dictionary) continue;
-            final ArrayList<SuggestedWordInfo> dictionarySuggestions =
-                    dictionary.getSuggestions(composer, prevWordsInfo, proximityInfo,
-                            settingsValuesForSuggestion, sessionId, languageWeight);
-            if (null == dictionarySuggestions) continue;
-            suggestionResults.addAll(dictionarySuggestions);
-            if (null != suggestionResults.mRawSuggestions) {
-                suggestionResults.mRawSuggestions.addAll(dictionarySuggestions);
-            }
-        }
-        return suggestionResults;
-    }
+    @Nonnull SuggestionResults getSuggestionResults(final ComposedData composedData,
+            final NgramContext ngramContext, @Nonnull final Keyboard keyboard,
+            final SettingsValuesForSuggestion settingsValuesForSuggestion, final int sessionId,
+            final int inputStyle);
 
-    public boolean isValidWord(final String word, final boolean ignoreCase) {
-        if (TextUtils.isEmpty(word)) {
-            return false;
-        }
-        final Dictionaries dictionaries = mDictionaries;
-        if (dictionaries.mLocale == null) {
-            return false;
-        }
-        final String lowerCasedWord = word.toLowerCase(dictionaries.mLocale);
-        for (final String dictType : DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS) {
-            final Dictionary dictionary = dictionaries.getDict(dictType);
-            // Ideally the passed map would come out of a {@link java.util.concurrent.Future} and
-            // would be immutable once it's finished initializing, but concretely a null test is
-            // probably good enough for the time being.
-            if (null == dictionary) continue;
-            if (dictionary.isValidWord(word)
-                    || (ignoreCase && dictionary.isValidWord(lowerCasedWord))) {
-                return true;
-            }
-        }
-        return false;
-    }
+    boolean isValidSpellingWord(final String word);
 
-    private int getFrequencyInternal(final String word,
-            final boolean isGettingMaxFrequencyOfExactMatches) {
-        if (TextUtils.isEmpty(word)) {
-            return Dictionary.NOT_A_PROBABILITY;
-        }
-        int maxFreq = Dictionary.NOT_A_PROBABILITY;
-        final Dictionaries dictionaries = mDictionaries;
-        for (final String dictType : DICT_TYPES_ORDERED_TO_GET_SUGGESTIONS) {
-            final Dictionary dictionary = dictionaries.getDict(dictType);
-            if (dictionary == null) continue;
-            final int tempFreq;
-            if (isGettingMaxFrequencyOfExactMatches) {
-                tempFreq = dictionary.getMaxFrequencyOfExactMatches(word);
-            } else {
-                tempFreq = dictionary.getFrequency(word);
-            }
-            if (tempFreq >= maxFreq) {
-                maxFreq = tempFreq;
-            }
-        }
-        return maxFreq;
-    }
+    boolean isValidSuggestionWord(final String word);
 
-    public int getFrequency(final String word) {
-        return getFrequencyInternal(word, false /* isGettingMaxFrequencyOfExactMatches */);
-    }
+    void clearUserHistoryDictionary(final Context context);
 
-    public int getMaxFrequencyOfExactMatches(final String word) {
-        return getFrequencyInternal(word, true /* isGettingMaxFrequencyOfExactMatches */);
-    }
+    String dump(final Context context);
 
-    private void clearSubDictionary(final String dictName) {
-        final ExpandableBinaryDictionary dictionary = mDictionaries.getSubDict(dictName);
-        if (dictionary != null) {
-            dictionary.clear();
-        }
-    }
+    void dumpDictionaryForDebug(final String dictName);
 
-    public void clearUserHistoryDictionary() {
-        clearSubDictionary(Dictionary.TYPE_USER_HISTORY);
-    }
-
-    // This method gets called only when the IME receives a notification to remove the
-    // personalization dictionary.
-    public void clearPersonalizationDictionary() {
-        clearSubDictionary(Dictionary.TYPE_PERSONALIZATION);
-    }
-
-    public void clearContextualDictionary() {
-        clearSubDictionary(Dictionary.TYPE_CONTEXTUAL);
-    }
-
-    public void addEntriesToPersonalizationDictionary(
-            final PersonalizationDataChunk personalizationDataChunk,
-            final SpacingAndPunctuations spacingAndPunctuations,
-            final ExpandableBinaryDictionary.AddMultipleDictionaryEntriesCallback callback) {
-        final ExpandableBinaryDictionary personalizationDict =
-                mDictionaries.getSubDict(Dictionary.TYPE_PERSONALIZATION);
-        if (personalizationDict == null) {
-            if (callback != null) {
-                callback.onFinished();
-            }
-            return;
-        }
-        final ArrayList<LanguageModelParam> languageModelParams =
-                LanguageModelParam.createLanguageModelParamsFrom(
-                        personalizationDataChunk.mTokens,
-                        personalizationDataChunk.mTimestampInSeconds,
-                        this /* dictionaryFacilitator */, spacingAndPunctuations,
-                        new DistracterFilterCheckingIsInDictionary(
-                                mDistracterFilter, personalizationDict));
-        if (languageModelParams == null || languageModelParams.isEmpty()) {
-            if (callback != null) {
-                callback.onFinished();
-            }
-            return;
-        }
-        personalizationDict.addMultipleDictionaryEntriesDynamically(languageModelParams, callback);
-    }
-
-    public void addPhraseToContextualDictionary(final String[] phrase, final int probability,
-            final int bigramProbabilityForWords, final int bigramProbabilityForPhrases) {
-        final ExpandableBinaryDictionary contextualDict =
-                mDictionaries.getSubDict(Dictionary.TYPE_CONTEXTUAL);
-        if (contextualDict == null) {
-            return;
-        }
-        PrevWordsInfo prevWordsInfo = PrevWordsInfo.BEGINNING_OF_SENTENCE;
-        for (int i = 0; i < phrase.length; i++) {
-            final String[] subPhrase = Arrays.copyOfRange(phrase, i /* start */, phrase.length);
-            final String subPhraseStr = TextUtils.join(Constants.WORD_SEPARATOR, subPhrase);
-            contextualDict.addUnigramEntryWithCheckingDistracter(
-                    subPhraseStr, probability, null /* shortcutTarget */,
-                    Dictionary.NOT_A_PROBABILITY /* shortcutFreq */,
-                    false /* isNotAWord */, false /* isBlacklisted */,
-                    BinaryDictionary.NOT_A_VALID_TIMESTAMP,
-                    DistracterFilter.EMPTY_DISTRACTER_FILTER);
-            contextualDict.addNgramEntry(prevWordsInfo, subPhraseStr,
-                    bigramProbabilityForPhrases, BinaryDictionary.NOT_A_VALID_TIMESTAMP);
-
-            if (i < phrase.length - 1) {
-                contextualDict.addUnigramEntryWithCheckingDistracter(
-                        phrase[i], probability, null /* shortcutTarget */,
-                        Dictionary.NOT_A_PROBABILITY /* shortcutFreq */,
-                        false /* isNotAWord */, false /* isBlacklisted */,
-                        BinaryDictionary.NOT_A_VALID_TIMESTAMP,
-                        DistracterFilter.EMPTY_DISTRACTER_FILTER);
-                contextualDict.addNgramEntry(prevWordsInfo, phrase[i],
-                        bigramProbabilityForWords, BinaryDictionary.NOT_A_VALID_TIMESTAMP);
-            }
-            prevWordsInfo =
-                    prevWordsInfo.getNextPrevWordsInfo(new PrevWordsInfo.WordInfo(phrase[i]));
-        }
-    }
-
-    public void dumpDictionaryForDebug(final String dictName) {
-        final ExpandableBinaryDictionary dictToDump = mDictionaries.getSubDict(dictName);
-        if (dictToDump == null) {
-            Log.e(TAG, "Cannot dump " + dictName + ". "
-                    + "The dictionary is not being used for suggestion or cannot be dumped.");
-            return;
-        }
-        dictToDump.dumpAllWordsForDebug();
-    }
+    @Nonnull List<DictionaryStats> getDictionaryStats(final Context context);
 }
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java
new file mode 100644
index 0000000..9ce92da
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorImpl.java
@@ -0,0 +1,661 @@
+/*
+7 * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin;
+
+import android.content.Context;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.android.inputmethod.annotations.UsedForTesting;
+import com.android.inputmethod.keyboard.Keyboard;
+import com.android.inputmethod.latin.NgramContext.WordInfo;
+import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
+import com.android.inputmethod.latin.common.ComposedData;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.personalization.UserHistoryDictionary;
+import com.android.inputmethod.latin.settings.SettingsValuesForSuggestion;
+import com.android.inputmethod.latin.utils.ExecutorUtils;
+import com.android.inputmethod.latin.utils.SuggestionResults;
+
+import java.io.File;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+/**
+ * Facilitates interaction with different kinds of dictionaries. Provides APIs
+ * to instantiate and select the correct dictionaries (based on language or account),
+ * update entries and fetch suggestions.
+ *
+ * Currently AndroidSpellCheckerService and LatinIME both use DictionaryFacilitator as
+ * a client for interacting with dictionaries.
+ */
+public class DictionaryFacilitatorImpl implements DictionaryFacilitator {
+    // TODO: Consolidate dictionaries in native code.
+    public static final String TAG = DictionaryFacilitatorImpl.class.getSimpleName();
+
+    // HACK: This threshold is being used when adding a capitalized entry in the User History
+    // dictionary.
+    private static final int CAPITALIZED_FORM_MAX_PROBABILITY_FOR_INSERT = 140;
+
+    private DictionaryGroup mDictionaryGroup = new DictionaryGroup();
+    private volatile CountDownLatch mLatchForWaitingLoadingMainDictionaries = new CountDownLatch(0);
+    // To synchronize assigning mDictionaryGroup to ensure closing dictionaries.
+    private final Object mLock = new Object();
+
+    public static final Map<String, Class<? extends ExpandableBinaryDictionary>>
+            DICT_TYPE_TO_CLASS = new HashMap<>();
+
+    static {
+        DICT_TYPE_TO_CLASS.put(Dictionary.TYPE_USER_HISTORY, UserHistoryDictionary.class);
+        DICT_TYPE_TO_CLASS.put(Dictionary.TYPE_USER, UserBinaryDictionary.class);
+        DICT_TYPE_TO_CLASS.put(Dictionary.TYPE_CONTACTS, ContactsBinaryDictionary.class);
+    }
+
+    private static final String DICT_FACTORY_METHOD_NAME = "getDictionary";
+    private static final Class<?>[] DICT_FACTORY_METHOD_ARG_TYPES =
+            new Class[] { Context.class, Locale.class, File.class, String.class, String.class };
+
+    @Override
+    public boolean isForLocale(final Locale locale) {
+        return locale != null && locale.equals(mDictionaryGroup.mLocale);
+    }
+
+    /**
+     * Returns whether this facilitator is exactly for this account.
+     *
+     * @param account the account to test against.
+     */
+    public boolean isForAccount(@Nullable final String account) {
+        return TextUtils.equals(mDictionaryGroup.mAccount, account);
+    }
+
+    /**
+     * A group of dictionaries that work together for a single language.
+     */
+    private static class DictionaryGroup {
+        // TODO: Add null analysis annotations.
+        // TODO: Run evaluation to determine a reasonable value for these constants. The current
+        // values are ad-hoc and chosen without any particular care or methodology.
+        public static final float WEIGHT_FOR_MOST_PROBABLE_LANGUAGE = 1.0f;
+        public static final float WEIGHT_FOR_GESTURING_IN_NOT_MOST_PROBABLE_LANGUAGE = 0.95f;
+        public static final float WEIGHT_FOR_TYPING_IN_NOT_MOST_PROBABLE_LANGUAGE = 0.6f;
+
+        /**
+         * The locale associated with the dictionary group.
+         */
+        @Nullable public final Locale mLocale;
+
+        /**
+         * The user account associated with the dictionary group.
+         */
+        @Nullable public final String mAccount;
+
+        @Nullable private Dictionary mMainDict;
+        // Confidence that the most probable language is actually the language the user is
+        // typing in. For now, this is simply the number of times a word from this language
+        // has been committed in a row.
+        private int mConfidence = 0;
+
+        public float mWeightForTypingInLocale = WEIGHT_FOR_MOST_PROBABLE_LANGUAGE;
+        public float mWeightForGesturingInLocale = WEIGHT_FOR_MOST_PROBABLE_LANGUAGE;
+        public final ConcurrentHashMap<String, ExpandableBinaryDictionary> mSubDictMap =
+                new ConcurrentHashMap<>();
+
+        public DictionaryGroup() {
+            this(null /* locale */, null /* mainDict */, null /* account */,
+                    Collections.<String, ExpandableBinaryDictionary>emptyMap() /* subDicts */);
+        }
+
+        public DictionaryGroup(@Nullable final Locale locale,
+                @Nullable final Dictionary mainDict,
+                @Nullable final String account,
+                final Map<String, ExpandableBinaryDictionary> subDicts) {
+            mLocale = locale;
+            mAccount = account;
+            // The main dictionary can be asynchronously loaded.
+            setMainDict(mainDict);
+            for (final Map.Entry<String, ExpandableBinaryDictionary> entry : subDicts.entrySet()) {
+                setSubDict(entry.getKey(), entry.getValue());
+            }
+        }
+
+        private void setSubDict(final String dictType, final ExpandableBinaryDictionary dict) {
+            if (dict != null) {
+                mSubDictMap.put(dictType, dict);
+            }
+        }
+
+        public void setMainDict(final Dictionary mainDict) {
+            // Close old dictionary if exists. Main dictionary can be assigned multiple times.
+            final Dictionary oldDict = mMainDict;
+            mMainDict = mainDict;
+            if (oldDict != null && mainDict != oldDict) {
+                oldDict.close();
+            }
+        }
+
+        public Dictionary getDict(final String dictType) {
+            if (Dictionary.TYPE_MAIN.equals(dictType)) {
+                return mMainDict;
+            }
+            return getSubDict(dictType);
+        }
+
+        public ExpandableBinaryDictionary getSubDict(final String dictType) {
+            return mSubDictMap.get(dictType);
+        }
+
+        public boolean hasDict(final String dictType, @Nullable final String account) {
+            if (Dictionary.TYPE_MAIN.equals(dictType)) {
+                return mMainDict != null;
+            }
+            if (Dictionary.TYPE_USER_HISTORY.equals(dictType) &&
+                    !TextUtils.equals(account, mAccount)) {
+                // If the dictionary type is user history, & if the account doesn't match,
+                // return immediately. If the account matches, continue looking it up in the
+                // sub dictionary map.
+                return false;
+            }
+            return mSubDictMap.containsKey(dictType);
+        }
+
+        public void closeDict(final String dictType) {
+            final Dictionary dict;
+            if (Dictionary.TYPE_MAIN.equals(dictType)) {
+                dict = mMainDict;
+            } else {
+                dict = mSubDictMap.remove(dictType);
+            }
+            if (dict != null) {
+                dict.close();
+            }
+        }
+    }
+
+    public DictionaryFacilitatorImpl() {
+    }
+
+    @Override
+    public void onStartInput() {
+    }
+
+    @Override
+    public void onFinishInput() {
+    }
+
+    @Override
+    public boolean isActive() {
+        return mDictionaryGroup.mLocale != null;
+    }
+
+    @Override
+    public Locale getLocale() {
+        return mDictionaryGroup.mLocale;
+    }
+
+    @Nullable
+    private static ExpandableBinaryDictionary getSubDict(final String dictType,
+            final Context context, final Locale locale, final File dictFile,
+            final String dictNamePrefix, @Nullable final String account) {
+        final Class<? extends ExpandableBinaryDictionary> dictClass =
+                DICT_TYPE_TO_CLASS.get(dictType);
+        if (dictClass == null) {
+            return null;
+        }
+        try {
+            final Method factoryMethod = dictClass.getMethod(DICT_FACTORY_METHOD_NAME,
+                    DICT_FACTORY_METHOD_ARG_TYPES);
+            final Object dict = factoryMethod.invoke(null /* obj */,
+                    new Object[] { context, locale, dictFile, dictNamePrefix, account });
+            return (ExpandableBinaryDictionary) dict;
+        } catch (final NoSuchMethodException | SecurityException | IllegalAccessException
+                | IllegalArgumentException | InvocationTargetException e) {
+            Log.e(TAG, "Cannot create dictionary: " + dictType, e);
+            return null;
+        }
+    }
+
+    @Nullable
+    static DictionaryGroup findDictionaryGroupWithLocale(final DictionaryGroup dictionaryGroup,
+            final Locale locale) {
+        return locale.equals(dictionaryGroup.mLocale) ? dictionaryGroup : null;
+    }
+
+    @Override
+    public void resetDictionaries(
+            final Context context,
+            final Locale newLocale,
+            final boolean useContactsDict,
+            final boolean usePersonalizedDicts,
+            final boolean forceReloadMainDictionary,
+            @Nullable final String account,
+            final String dictNamePrefix,
+            @Nullable final DictionaryInitializationListener listener) {
+        final HashMap<Locale, ArrayList<String>> existingDictionariesToCleanup = new HashMap<>();
+        // TODO: Make subDictTypesToUse configurable by resource or a static final list.
+        final HashSet<String> subDictTypesToUse = new HashSet<>();
+        subDictTypesToUse.add(Dictionary.TYPE_USER);
+        if (useContactsDict) {
+            subDictTypesToUse.add(Dictionary.TYPE_CONTACTS);
+        }
+        if (usePersonalizedDicts) {
+            subDictTypesToUse.add(Dictionary.TYPE_USER_HISTORY);
+        }
+
+        // Gather all dictionaries. We'll remove them from the list to clean up later.
+        final ArrayList<String> dictTypeForLocale = new ArrayList<>();
+        existingDictionariesToCleanup.put(newLocale, dictTypeForLocale);
+        final DictionaryGroup currentDictionaryGroupForLocale =
+                findDictionaryGroupWithLocale(mDictionaryGroup, newLocale);
+        if (currentDictionaryGroupForLocale != null) {
+            for (final String dictType : DYNAMIC_DICTIONARY_TYPES) {
+                if (currentDictionaryGroupForLocale.hasDict(dictType, account)) {
+                    dictTypeForLocale.add(dictType);
+                }
+            }
+            if (currentDictionaryGroupForLocale.hasDict(Dictionary.TYPE_MAIN, account)) {
+                dictTypeForLocale.add(Dictionary.TYPE_MAIN);
+            }
+        }
+
+        final DictionaryGroup dictionaryGroupForLocale =
+                findDictionaryGroupWithLocale(mDictionaryGroup, newLocale);
+        final ArrayList<String> dictTypesToCleanupForLocale =
+                existingDictionariesToCleanup.get(newLocale);
+        final boolean noExistingDictsForThisLocale = (null == dictionaryGroupForLocale);
+
+        final Dictionary mainDict;
+        if (forceReloadMainDictionary || noExistingDictsForThisLocale
+                || !dictionaryGroupForLocale.hasDict(Dictionary.TYPE_MAIN, account)) {
+            mainDict = null;
+        } else {
+            mainDict = dictionaryGroupForLocale.getDict(Dictionary.TYPE_MAIN);
+            dictTypesToCleanupForLocale.remove(Dictionary.TYPE_MAIN);
+        }
+
+        final Map<String, ExpandableBinaryDictionary> subDicts = new HashMap<>();
+        for (final String subDictType : subDictTypesToUse) {
+            final ExpandableBinaryDictionary subDict;
+            if (noExistingDictsForThisLocale
+                    || !dictionaryGroupForLocale.hasDict(subDictType, account)) {
+                // Create a new dictionary.
+                subDict = getSubDict(subDictType, context, newLocale, null /* dictFile */,
+                        dictNamePrefix, account);
+            } else {
+                // Reuse the existing dictionary, and don't close it at the end
+                subDict = dictionaryGroupForLocale.getSubDict(subDictType);
+                dictTypesToCleanupForLocale.remove(subDictType);
+            }
+            subDicts.put(subDictType, subDict);
+        }
+        DictionaryGroup newDictionaryGroup =
+                new DictionaryGroup(newLocale, mainDict, account, subDicts);
+
+        // Replace Dictionaries.
+        final DictionaryGroup oldDictionaryGroup;
+        synchronized (mLock) {
+            oldDictionaryGroup = mDictionaryGroup;
+            mDictionaryGroup = newDictionaryGroup;
+            if (hasAtLeastOneUninitializedMainDictionary()) {
+                asyncReloadUninitializedMainDictionaries(context, newLocale, listener);
+            }
+        }
+        if (listener != null) {
+            listener.onUpdateMainDictionaryAvailability(hasAtLeastOneInitializedMainDictionary());
+        }
+
+        // Clean up old dictionaries.
+        for (final Locale localeToCleanUp : existingDictionariesToCleanup.keySet()) {
+            final ArrayList<String> dictTypesToCleanUp =
+                    existingDictionariesToCleanup.get(localeToCleanUp);
+            final DictionaryGroup dictionarySetToCleanup =
+                    findDictionaryGroupWithLocale(oldDictionaryGroup, localeToCleanUp);
+            for (final String dictType : dictTypesToCleanUp) {
+                dictionarySetToCleanup.closeDict(dictType);
+            }
+        }
+    }
+
+    private void asyncReloadUninitializedMainDictionaries(final Context context,
+            final Locale locale, final DictionaryInitializationListener listener) {
+        final CountDownLatch latchForWaitingLoadingMainDictionary = new CountDownLatch(1);
+        mLatchForWaitingLoadingMainDictionaries = latchForWaitingLoadingMainDictionary;
+        ExecutorUtils.getBackgroundExecutor(ExecutorUtils.KEYBOARD).execute(new Runnable() {
+            @Override
+            public void run() {
+                doReloadUninitializedMainDictionaries(
+                        context, locale, listener, latchForWaitingLoadingMainDictionary);
+            }
+        });
+    }
+
+    void doReloadUninitializedMainDictionaries(final Context context, final Locale locale,
+            final DictionaryInitializationListener listener,
+            final CountDownLatch latchForWaitingLoadingMainDictionary) {
+        final DictionaryGroup dictionaryGroup =
+                findDictionaryGroupWithLocale(mDictionaryGroup, locale);
+        if (null == dictionaryGroup) {
+            // This should never happen, but better safe than crashy
+            Log.w(TAG, "Expected a dictionary group for " + locale + " but none found");
+            return;
+        }
+        final Dictionary mainDict =
+                DictionaryFactory.createMainDictionaryFromManager(context, locale);
+        synchronized (mLock) {
+            if (locale.equals(dictionaryGroup.mLocale)) {
+                dictionaryGroup.setMainDict(mainDict);
+            } else {
+                // Dictionary facilitator has been reset for another locale.
+                mainDict.close();
+            }
+        }
+        if (listener != null) {
+            listener.onUpdateMainDictionaryAvailability(hasAtLeastOneInitializedMainDictionary());
+        }
+        latchForWaitingLoadingMainDictionary.countDown();
+    }
+
+    @UsedForTesting
+    public void resetDictionariesForTesting(final Context context, final Locale locale,
+            final ArrayList<String> dictionaryTypes, final HashMap<String, File> dictionaryFiles,
+            final Map<String, Map<String, String>> additionalDictAttributes,
+            @Nullable final String account) {
+        Dictionary mainDictionary = null;
+        final Map<String, ExpandableBinaryDictionary> subDicts = new HashMap<>();
+
+        for (final String dictType : dictionaryTypes) {
+            if (dictType.equals(Dictionary.TYPE_MAIN)) {
+                mainDictionary = DictionaryFactory.createMainDictionaryFromManager(context,
+                        locale);
+            } else {
+                final File dictFile = dictionaryFiles.get(dictType);
+                final ExpandableBinaryDictionary dict = getSubDict(
+                        dictType, context, locale, dictFile, "" /* dictNamePrefix */, account);
+                if (additionalDictAttributes.containsKey(dictType)) {
+                    dict.clearAndFlushDictionaryWithAdditionalAttributes(
+                            additionalDictAttributes.get(dictType));
+                }
+                if (dict == null) {
+                    throw new RuntimeException("Unknown dictionary type: " + dictType);
+                }
+                dict.reloadDictionaryIfRequired();
+                dict.waitAllTasksForTests();
+                subDicts.put(dictType, dict);
+            }
+        }
+        mDictionaryGroup = new DictionaryGroup(locale, mainDictionary, account, subDicts);
+    }
+
+    public void closeDictionaries() {
+        final DictionaryGroup dictionaryGroupToClose;
+        synchronized (mLock) {
+            dictionaryGroupToClose = mDictionaryGroup;
+            mDictionaryGroup = new DictionaryGroup();
+        }
+        for (final String dictType : ALL_DICTIONARY_TYPES) {
+            dictionaryGroupToClose.closeDict(dictType);
+        }
+    }
+
+    @UsedForTesting
+    public ExpandableBinaryDictionary getSubDictForTesting(final String dictName) {
+        return mDictionaryGroup.getSubDict(dictName);
+    }
+
+    // The main dictionaries are loaded asynchronously.  Don't cache the return value
+    // of these methods.
+    public boolean hasAtLeastOneInitializedMainDictionary() {
+        final Dictionary mainDict = mDictionaryGroup.getDict(Dictionary.TYPE_MAIN);
+        if (mainDict != null && mainDict.isInitialized()) {
+            return true;
+        }
+        return false;
+    }
+
+    public boolean hasAtLeastOneUninitializedMainDictionary() {
+        final Dictionary mainDict = mDictionaryGroup.getDict(Dictionary.TYPE_MAIN);
+        if (mainDict == null || !mainDict.isInitialized()) {
+            return true;
+        }
+        return false;
+    }
+
+    public void waitForLoadingMainDictionaries(final long timeout, final TimeUnit unit)
+            throws InterruptedException {
+        mLatchForWaitingLoadingMainDictionaries.await(timeout, unit);
+    }
+
+    @UsedForTesting
+    public void waitForLoadingDictionariesForTesting(final long timeout, final TimeUnit unit)
+            throws InterruptedException {
+        waitForLoadingMainDictionaries(timeout, unit);
+        for (final ExpandableBinaryDictionary dict : mDictionaryGroup.mSubDictMap.values()) {
+            dict.waitAllTasksForTests();
+        }
+    }
+
+    public void addToUserHistory(final String suggestion, final boolean wasAutoCapitalized,
+            @Nonnull final NgramContext ngramContext, final long timeStampInSeconds,
+            final boolean blockPotentiallyOffensive) {
+        final String[] words = suggestion.split(Constants.WORD_SEPARATOR);
+        NgramContext ngramContextForCurrentWord = ngramContext;
+        for (int i = 0; i < words.length; i++) {
+            final String currentWord = words[i];
+            final boolean wasCurrentWordAutoCapitalized = (i == 0) ? wasAutoCapitalized : false;
+            addWordToUserHistory(mDictionaryGroup, ngramContextForCurrentWord, currentWord,
+                    wasCurrentWordAutoCapitalized, (int) timeStampInSeconds,
+                    blockPotentiallyOffensive);
+            ngramContextForCurrentWord =
+                    ngramContextForCurrentWord.getNextNgramContext(new WordInfo(currentWord));
+        }
+    }
+
+    private void addWordToUserHistory(final DictionaryGroup dictionaryGroup,
+            final NgramContext ngramContext, final String word, final boolean wasAutoCapitalized,
+            final int timeStampInSeconds, final boolean blockPotentiallyOffensive) {
+        final ExpandableBinaryDictionary userHistoryDictionary =
+                dictionaryGroup.getSubDict(Dictionary.TYPE_USER_HISTORY);
+        if (userHistoryDictionary == null || !isForLocale(userHistoryDictionary.mLocale)) {
+            return;
+        }
+        final int maxFreq = getFrequency(word);
+        if (maxFreq == 0 && blockPotentiallyOffensive) {
+            return;
+        }
+        final String lowerCasedWord = word.toLowerCase(dictionaryGroup.mLocale);
+        final String secondWord;
+        if (wasAutoCapitalized) {
+            if (isValidSuggestionWord(word) && !isValidSuggestionWord(lowerCasedWord)) {
+                // If the word was auto-capitalized and exists only as a capitalized word in the
+                // dictionary, then we must not downcase it before registering it. For example,
+                // the name of the contacts in start-of-sentence position would come here with the
+                // wasAutoCapitalized flag: if we downcase it, we'd register a lower-case version
+                // of that contact's name which would end up popping in suggestions.
+                secondWord = word;
+            } else {
+                // If however the word is not in the dictionary, or exists as a lower-case word
+                // only, then we consider that was a lower-case word that had been auto-capitalized.
+                secondWord = lowerCasedWord;
+            }
+        } else {
+            // HACK: We'd like to avoid adding the capitalized form of common words to the User
+            // History dictionary in order to avoid suggesting them until the dictionary
+            // consolidation is done.
+            // TODO: Remove this hack when ready.
+            final int lowerCaseFreqInMainDict = dictionaryGroup.hasDict(Dictionary.TYPE_MAIN,
+                    null /* account */) ?
+                    dictionaryGroup.getDict(Dictionary.TYPE_MAIN).getFrequency(lowerCasedWord) :
+                    Dictionary.NOT_A_PROBABILITY;
+            if (maxFreq < lowerCaseFreqInMainDict
+                    && lowerCaseFreqInMainDict >= CAPITALIZED_FORM_MAX_PROBABILITY_FOR_INSERT) {
+                // Use lower cased word as the word can be a distracter of the popular word.
+                secondWord = lowerCasedWord;
+            } else {
+                secondWord = word;
+            }
+        }
+        // We demote unrecognized words (frequency < 0, below) by specifying them as "invalid".
+        // We don't add words with 0-frequency (assuming they would be profanity etc.).
+        final boolean isValid = maxFreq > 0;
+        UserHistoryDictionary.addToDictionary(userHistoryDictionary, ngramContext, secondWord,
+                isValid, timeStampInSeconds);
+    }
+
+    private void removeWord(final String dictName, final String word) {
+        final ExpandableBinaryDictionary dictionary = mDictionaryGroup.getSubDict(dictName);
+        if (dictionary != null) {
+            dictionary.removeUnigramEntryDynamically(word);
+        }
+    }
+
+    @Override
+    public void unlearnFromUserHistory(final String word,
+            @Nonnull final NgramContext ngramContext, final long timeStampInSeconds,
+            final int eventType) {
+        // TODO: Decide whether or not to remove the word on EVENT_BACKSPACE.
+        if (eventType != Constants.EVENT_BACKSPACE) {
+            removeWord(Dictionary.TYPE_USER_HISTORY, word);
+        }
+    }
+
+    // TODO: Revise the way to fusion suggestion results.
+    @Override
+    @Nonnull public SuggestionResults getSuggestionResults(ComposedData composedData,
+            NgramContext ngramContext, @Nonnull final Keyboard keyboard,
+            SettingsValuesForSuggestion settingsValuesForSuggestion, int sessionId,
+            int inputStyle) {
+        long proximityInfoHandle = keyboard.getProximityInfo().getNativeProximityInfo();
+        final SuggestionResults suggestionResults = new SuggestionResults(
+                SuggestedWords.MAX_SUGGESTIONS, ngramContext.isBeginningOfSentenceContext(),
+                false /* firstSuggestionExceedsConfidenceThreshold */);
+        final float[] weightOfLangModelVsSpatialModel =
+                new float[] { Dictionary.NOT_A_WEIGHT_OF_LANG_MODEL_VS_SPATIAL_MODEL };
+        for (final String dictType : DICTIONARY_TYPES_FOR_SUGGESTIONS) {
+            final Dictionary dictionary = mDictionaryGroup.getDict(dictType);
+            if (null == dictionary) continue;
+            final float weightForLocale = composedData.mIsBatchMode
+                    ? mDictionaryGroup.mWeightForGesturingInLocale
+                    : mDictionaryGroup.mWeightForTypingInLocale;
+            final ArrayList<SuggestedWordInfo> dictionarySuggestions =
+                    dictionary.getSuggestions(composedData, ngramContext,
+                            proximityInfoHandle, settingsValuesForSuggestion, sessionId,
+                            weightForLocale, weightOfLangModelVsSpatialModel);
+            if (null == dictionarySuggestions) continue;
+            suggestionResults.addAll(dictionarySuggestions);
+            if (null != suggestionResults.mRawSuggestions) {
+                suggestionResults.mRawSuggestions.addAll(dictionarySuggestions);
+            }
+        }
+        return suggestionResults;
+    }
+
+    public boolean isValidSpellingWord(final String word) {
+        return isValidWord(word, DICTIONARY_TYPES_FOR_SPELLING);
+    }
+
+    public boolean isValidSuggestionWord(final String word) {
+        return isValidWord(word, DICTIONARY_TYPES_FOR_SUGGESTIONS);
+    }
+
+    private boolean isValidWord(final String word, final String[] dictionariesToCheck) {
+        if (TextUtils.isEmpty(word)) {
+            return false;
+        }
+        if (mDictionaryGroup.mLocale == null) {
+            return false;
+        }
+        for (final String dictType : dictionariesToCheck) {
+            final Dictionary dictionary = mDictionaryGroup.getDict(dictType);
+            // Ideally the passed map would come out of a {@link java.util.concurrent.Future} and
+            // would be immutable once it's finished initializing, but concretely a null test is
+            // probably good enough for the time being.
+            if (null == dictionary) continue;
+            if (dictionary.isValidWord(word)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private int getFrequency(final String word) {
+        if (TextUtils.isEmpty(word)) {
+            return Dictionary.NOT_A_PROBABILITY;
+        }
+        int maxFreq = Dictionary.NOT_A_PROBABILITY;
+        for (final String dictType : ALL_DICTIONARY_TYPES) {
+            final Dictionary dictionary = mDictionaryGroup.getDict(dictType);
+            if (dictionary == null) continue;
+            final int tempFreq = dictionary.getFrequency(word);
+            if (tempFreq >= maxFreq) {
+                maxFreq = tempFreq;
+            }
+        }
+        return maxFreq;
+    }
+
+    private void clearSubDictionary(final String dictName) {
+        final ExpandableBinaryDictionary dictionary = mDictionaryGroup.getSubDict(dictName);
+        if (dictionary != null) {
+            dictionary.clear();
+        }
+    }
+
+    @Override
+    public void clearUserHistoryDictionary(final Context context) {
+        clearSubDictionary(Dictionary.TYPE_USER_HISTORY);
+    }
+
+    @Override
+    public void dumpDictionaryForDebug(final String dictName) {
+        final ExpandableBinaryDictionary dictToDump = mDictionaryGroup.getSubDict(dictName);
+        if (dictToDump == null) {
+            Log.e(TAG, "Cannot dump " + dictName + ". "
+                    + "The dictionary is not being used for suggestion or cannot be dumped.");
+            return;
+        }
+        dictToDump.dumpAllWordsForDebug();
+    }
+
+    @Override
+    @Nonnull public List<DictionaryStats> getDictionaryStats(final Context context) {
+        final ArrayList<DictionaryStats> statsOfEnabledSubDicts = new ArrayList<>();
+        for (final String dictType : DYNAMIC_DICTIONARY_TYPES) {
+            final ExpandableBinaryDictionary dictionary = mDictionaryGroup.getSubDict(dictType);
+            if (dictionary == null) continue;
+            statsOfEnabledSubDicts.add(dictionary.getDictionaryStats());
+        }
+        return statsOfEnabledSubDicts;
+    }
+
+    @Override
+    public String dump(final Context context) {
+        return "";
+    }
+}
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCache.java b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCache.java
new file mode 100644
index 0000000..cbaf6ea
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCache.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin;
+
+import java.util.Locale;
+import java.util.concurrent.TimeUnit;
+
+import android.content.Context;
+import android.util.Log;
+
+/**
+ * Cache for dictionary facilitators of multiple locales.
+ * This class automatically creates and releases up to 3 facilitator instances using LRU policy.
+ */
+public class DictionaryFacilitatorLruCache {
+    private static final String TAG = "DictionaryFacilitatorLruCache";
+    private static final int WAIT_FOR_LOADING_MAIN_DICT_IN_MILLISECONDS = 1000;
+    private static final int MAX_RETRY_COUNT_FOR_WAITING_FOR_LOADING_DICT = 5;
+
+    private final Context mContext;
+    private final String mDictionaryNamePrefix;
+    private final Object mLock = new Object();
+    private final DictionaryFacilitator mDictionaryFacilitator;
+    private boolean mUseContactsDictionary;
+    private Locale mLocale;
+
+    public DictionaryFacilitatorLruCache(final Context context, final String dictionaryNamePrefix) {
+        mContext = context;
+        mDictionaryNamePrefix = dictionaryNamePrefix;
+        mDictionaryFacilitator = DictionaryFacilitatorProvider.getDictionaryFacilitator(
+                true /* isNeededForSpellChecking */);
+    }
+
+    private static void waitForLoadingMainDictionary(
+            final DictionaryFacilitator dictionaryFacilitator) {
+        for (int i = 0; i < MAX_RETRY_COUNT_FOR_WAITING_FOR_LOADING_DICT; i++) {
+            try {
+                dictionaryFacilitator.waitForLoadingMainDictionaries(
+                        WAIT_FOR_LOADING_MAIN_DICT_IN_MILLISECONDS, TimeUnit.MILLISECONDS);
+                return;
+            } catch (final InterruptedException e) {
+                Log.i(TAG, "Interrupted during waiting for loading main dictionary.", e);
+                if (i < MAX_RETRY_COUNT_FOR_WAITING_FOR_LOADING_DICT - 1) {
+                    Log.i(TAG, "Retry", e);
+                } else {
+                    Log.w(TAG, "Give up retrying. Retried "
+                            + MAX_RETRY_COUNT_FOR_WAITING_FOR_LOADING_DICT + " times.", e);
+                }
+            }
+        }
+    }
+
+    private void resetDictionariesForLocaleLocked() {
+        // Nothing to do if the locale is null.  This would be the case before any get() calls.
+        if (mLocale != null) {
+          // Note: Given that personalized dictionaries are not used here; we can pass null account.
+          mDictionaryFacilitator.resetDictionaries(mContext, mLocale,
+              mUseContactsDictionary, false /* usePersonalizedDicts */,
+              false /* forceReloadMainDictionary */, null /* account */,
+              mDictionaryNamePrefix, null /* listener */);
+        }
+    }
+
+    public void setUseContactsDictionary(final boolean useContactsDictionary) {
+        synchronized (mLock) {
+            if (mUseContactsDictionary == useContactsDictionary) {
+                // The value has not been changed.
+                return;
+            }
+            mUseContactsDictionary = useContactsDictionary;
+            resetDictionariesForLocaleLocked();
+            waitForLoadingMainDictionary(mDictionaryFacilitator);
+        }
+    }
+
+    public DictionaryFacilitator get(final Locale locale) {
+        synchronized (mLock) {
+            if (!mDictionaryFacilitator.isForLocale(locale)) {
+                mLocale = locale;
+                resetDictionariesForLocaleLocked();
+            }
+            waitForLoadingMainDictionary(mDictionaryFacilitator);
+            return mDictionaryFacilitator;
+        }
+    }
+
+    public void closeDictionaries() {
+        synchronized (mLock) {
+            mDictionaryFacilitator.closeDictionaries();
+        }
+    }
+}
diff --git a/java/src/com/android/inputmethod/latin/DictionaryFactory.java b/java/src/com/android/inputmethod/latin/DictionaryFactory.java
index 59de4f8..49608d8 100644
--- a/java/src/com/android/inputmethod/latin/DictionaryFactory.java
+++ b/java/src/com/android/inputmethod/latin/DictionaryFactory.java
@@ -19,10 +19,8 @@
 import android.content.ContentProviderClient;
 import android.content.Context;
 import android.content.res.AssetFileDescriptor;
-import android.content.res.Resources;
 import android.util.Log;
 
-import com.android.inputmethod.annotations.UsedForTesting;
 import com.android.inputmethod.latin.utils.DictionaryInfoUtils;
 
 import java.io.File;
@@ -43,14 +41,13 @@
      * locale. If none is found, it falls back to the built-in dictionary - if any.
      * @param context application context for reading resources
      * @param locale the locale for which to create the dictionary
-     * @param useFullEditDistance whether to use the full edit distance in suggestions
      * @return an initialized instance of DictionaryCollection
      */
     public static DictionaryCollection createMainDictionaryFromManager(final Context context,
-            final Locale locale, final boolean useFullEditDistance) {
+            final Locale locale) {
         if (null == locale) {
             Log.e(TAG, "No locale defined for dictionary");
-            return new DictionaryCollection(Dictionary.TYPE_MAIN,
+            return new DictionaryCollection(Dictionary.TYPE_MAIN, locale,
                     createReadOnlyBinaryDictionary(context, locale));
         }
 
@@ -61,7 +58,7 @@
             for (final AssetFileAddress f : assetFileList) {
                 final ReadOnlyBinaryDictionary readOnlyBinaryDictionary =
                         new ReadOnlyBinaryDictionary(f.mFilename, f.mOffset, f.mLength,
-                                useFullEditDistance, locale, Dictionary.TYPE_MAIN);
+                                false /* useFullEditDistance */, locale, Dictionary.TYPE_MAIN);
                 if (readOnlyBinaryDictionary.isValidDictionary()) {
                     dictList.add(readOnlyBinaryDictionary);
                 } else {
@@ -75,7 +72,7 @@
         // If the list is empty, that means we should not use any dictionary (for example, the user
         // explicitly disabled the main dictionary), so the following is okay. dictList is never
         // null, but if for some reason it is, DictionaryCollection handles it gracefully.
-        return new DictionaryCollection(Dictionary.TYPE_MAIN, dictList);
+        return new DictionaryCollection(Dictionary.TYPE_MAIN, locale, dictList);
     }
 
     /**
@@ -83,7 +80,7 @@
      * @param context The context to contact the dictionary provider, if possible.
      * @param f A file address to the dictionary to kill.
      */
-    private static void killDictionary(final Context context, final AssetFileAddress f) {
+    public static void killDictionary(final Context context, final AssetFileAddress f) {
         if (f.pointsToPhysicalFile()) {
             f.deleteUnderlyingFile();
             // Warn the dictionary provider if the dictionary came from there.
@@ -101,49 +98,33 @@
             }
             final String wordlistId =
                     DictionaryInfoUtils.getWordListIdFromFileName(new File(f.mFilename).getName());
-            if (null != wordlistId) {
-                // TODO: this is a reasonable last resort, but it is suboptimal.
-                // The following will remove the entry for this dictionary with the dictionary
-                // provider. When the metadata is downloaded again, we will try downloading it
-                // again.
-                // However, in the practice that will mean the user will find themselves without
-                // the new dictionary. That's fine for languages where it's included in the APK,
-                // but for other languages it will leave the user without a dictionary at all until
-                // the next update, which may be a few days away.
-                // Ideally, we would trigger a new download right away, and use increasing retry
-                // delays for this particular id/version combination.
-                // Then again, this is expected to only ever happen in case of human mistake. If
-                // the wrong file is on the server, the following is still doing the right thing.
-                // If it's a file left over from the last version however, it's not great.
-                BinaryDictionaryFileDumper.reportBrokenFileToDictionaryProvider(
-                        providerClient,
-                        context.getString(R.string.dictionary_pack_client_id),
-                        wordlistId);
-            }
+            // TODO: this is a reasonable last resort, but it is suboptimal.
+            // The following will remove the entry for this dictionary with the dictionary
+            // provider. When the metadata is downloaded again, we will try downloading it
+            // again.
+            // However, in the practice that will mean the user will find themselves without
+            // the new dictionary. That's fine for languages where it's included in the APK,
+            // but for other languages it will leave the user without a dictionary at all until
+            // the next update, which may be a few days away.
+            // Ideally, we would trigger a new download right away, and use increasing retry
+            // delays for this particular id/version combination.
+            // Then again, this is expected to only ever happen in case of human mistake. If
+            // the wrong file is on the server, the following is still doing the right thing.
+            // If it's a file left over from the last version however, it's not great.
+            BinaryDictionaryFileDumper.reportBrokenFileToDictionaryProvider(
+                    providerClient,
+                    context.getString(R.string.dictionary_pack_client_id),
+                    wordlistId);
         }
     }
 
     /**
-     * Initializes a main dictionary collection from a dictionary pack, with default flags.
-     *
-     * This searches for a content provider providing a dictionary pack for the specified
-     * locale. If none is found, it falls back to the built-in dictionary, if any.
-     * @param context application context for reading resources
-     * @param locale the locale for which to create the dictionary
-     * @return an initialized instance of DictionaryCollection
-     */
-    public static DictionaryCollection createMainDictionaryFromManager(final Context context,
-            final Locale locale) {
-        return createMainDictionaryFromManager(context, locale, false /* useFullEditDistance */);
-    }
-
-    /**
      * Initializes a read-only binary dictionary from a raw resource file
      * @param context application context for reading resources
      * @param locale the locale to use for the resource
      * @return an initialized instance of ReadOnlyBinaryDictionary
      */
-    protected static ReadOnlyBinaryDictionary createReadOnlyBinaryDictionary(final Context context,
+    private static ReadOnlyBinaryDictionary createReadOnlyBinaryDictionary(final Context context,
             final Locale locale) {
         AssetFileDescriptor afd = null;
         try {
@@ -177,36 +158,4 @@
             }
         }
     }
-
-    /**
-     * Create a dictionary from passed data. This is intended for unit tests only.
-     * @param dictionaryList the list of files to read, with their offsets and lengths
-     * @param useFullEditDistance whether to use the full edit distance in suggestions
-     * @return the created dictionary, or null.
-     */
-    @UsedForTesting
-    public static Dictionary createDictionaryForTest(final AssetFileAddress[] dictionaryList,
-            final boolean useFullEditDistance, Locale locale) {
-        final DictionaryCollection dictionaryCollection =
-                new DictionaryCollection(Dictionary.TYPE_MAIN);
-        for (final AssetFileAddress address : dictionaryList) {
-            final ReadOnlyBinaryDictionary readOnlyBinaryDictionary = new ReadOnlyBinaryDictionary(
-                    address.mFilename, address.mOffset, address.mLength, useFullEditDistance,
-                    locale, Dictionary.TYPE_MAIN);
-            dictionaryCollection.addDictionary(readOnlyBinaryDictionary);
-        }
-        return dictionaryCollection;
-    }
-
-    /**
-     * Find out whether a dictionary is available for this locale.
-     * @param context the context on which to check resources.
-     * @param locale the locale to check for.
-     * @return whether a (non-placeholder) dictionary is available or not.
-     */
-    public static boolean isDictionaryAvailable(Context context, Locale locale) {
-        final Resources res = context.getResources();
-        return 0 != DictionaryInfoUtils.getMainDictionaryResourceIdIfAvailableForLocale(
-                res, locale);
-    }
 }
diff --git a/java/src/com/android/inputmethod/latin/DictionaryStats.java b/java/src/com/android/inputmethod/latin/DictionaryStats.java
new file mode 100644
index 0000000..a6b37aa
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/DictionaryStats.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin;
+
+import java.io.File;
+import java.math.BigDecimal;
+import java.util.Locale;
+
+public class DictionaryStats {
+    public static final int NOT_AN_ENTRY_COUNT = -1;
+
+    public final Locale mLocale;
+    public final String mDictName;
+    public final String mDictFilePath;
+    public final long mDictFileSize;
+    public final int mContentVersion;
+
+    public DictionaryStats(final Locale locale, final String dictName, final File dictFile,
+            final int contentVersion) {
+        mLocale = locale;
+        mDictName = dictName;
+        mDictFilePath = (dictFile == null) ? null : dictFile.getName();
+        mDictFileSize = (dictFile == null || !dictFile.exists()) ? 0 : dictFile.length();
+        mContentVersion = contentVersion;
+    }
+
+    public String getFileSizeString() {
+        if (mDictFileSize == 0) {
+            return "0";
+        }
+        BigDecimal bytes = new BigDecimal(mDictFileSize);
+        BigDecimal kb = bytes.divide(new BigDecimal(1024), 2, BigDecimal.ROUND_HALF_UP);
+        if (kb.longValue() == 0) {
+            return bytes.toString() + " bytes";
+        }
+        BigDecimal mb = kb.divide(new BigDecimal(1024), 2, BigDecimal.ROUND_HALF_UP);
+        if (mb.longValue() == 0) {
+            return kb.toString() + " kb";
+        }
+        return mb.toString() + " Mb";
+    }
+
+    @Override
+    public String toString() {
+        final StringBuilder builder = new StringBuilder(mDictName);
+        if (mDictName.equals(Dictionary.TYPE_MAIN)) {
+            builder.append(" (");
+            builder.append(mContentVersion);
+            builder.append(")");
+        }
+        builder.append(": ");
+        builder.append(mDictFilePath);
+        builder.append(" / ");
+        builder.append(getFileSizeString());
+        return builder.toString();
+    }
+
+    public static String toString(final Iterable<DictionaryStats> stats) {
+        final StringBuilder builder = new StringBuilder("LM Stats");
+        for (DictionaryStats stat : stats) {
+            builder.append("\n    ");
+            builder.append(stat.toString());
+        }
+        return builder.toString();
+    }
+}
diff --git a/java/src/com/android/inputmethod/latin/EmojiAltPhysicalKeyDetector.java b/java/src/com/android/inputmethod/latin/EmojiAltPhysicalKeyDetector.java
new file mode 100644
index 0000000..9b27111
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/EmojiAltPhysicalKeyDetector.java
@@ -0,0 +1,107 @@
+/*
+ * Copyright (C) 2014, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin;
+
+import android.util.Log;
+import android.view.KeyEvent;
+
+import com.android.inputmethod.keyboard.KeyboardSwitcher;
+import com.android.inputmethod.latin.settings.Settings;
+
+/**
+ * A class for detecting Emoji-Alt physical key.
+ */
+final class EmojiAltPhysicalKeyDetector {
+    private static final String TAG = "EmojiAltPhysicalKeyDetector";
+
+    private final RichInputConnection mRichInputConnection;
+
+    // True if the Alt key has been used as a modifier. In this case the Alt key up isn't
+    // recognized as an emoji key.
+    private boolean mAltHasBeenUsedAsAModifier;
+
+    public EmojiAltPhysicalKeyDetector(final RichInputConnection richInputConnection) {
+        mRichInputConnection = richInputConnection;
+    }
+
+    /**
+     * Record a down key event.
+     * @param keyEvent a down key event.
+     */
+    public void onKeyDown(final KeyEvent keyEvent) {
+        if (isAltKey(keyEvent)) {
+            mAltHasBeenUsedAsAModifier = false;
+        }
+        if (containsAltModifier(keyEvent)) {
+            mAltHasBeenUsedAsAModifier = true;
+        }
+    }
+
+    /**
+     * Determine whether an up key event is a special key up or not.
+     * @param keyEvent an up key event.
+     */
+    public void onKeyUp(final KeyEvent keyEvent) {
+        if (keyEvent.isCanceled()) {
+            // This key up event was a part of key combinations and should be ignored.
+            return;
+        }
+        if (!isAltKey(keyEvent)) {
+            mAltHasBeenUsedAsAModifier |= containsAltModifier(keyEvent);
+            return;
+        }
+        if (containsAltModifier(keyEvent)) {
+            mAltHasBeenUsedAsAModifier = true;
+            return;
+        }
+        if (!Settings.getInstance().getCurrent().mEnableEmojiAltPhysicalKey) {
+            return;
+        }
+        if (mAltHasBeenUsedAsAModifier) {
+            return;
+        }
+        if (!mRichInputConnection.isConnected()) {
+            Log.w(TAG, "onKeyUp() : No connection to text view");
+            return;
+        }
+        onEmojiAltKeyDetected();
+    }
+
+    private static void onEmojiAltKeyDetected() {
+        KeyboardSwitcher.getInstance().onToggleEmojiKeyboard();
+    }
+
+    private static boolean isAltKey(final KeyEvent keyEvent) {
+        final int keyCode = keyEvent.getKeyCode();
+        return keyCode == KeyEvent.KEYCODE_ALT_LEFT || keyCode == KeyEvent.KEYCODE_ALT_RIGHT;
+    }
+
+    private static boolean containsAltModifier(final KeyEvent keyEvent) {
+        final int metaState = keyEvent.getMetaState();
+        // TODO: Support multiple keyboards. Take device id into account.
+        switch (keyEvent.getKeyCode()) {
+        case KeyEvent.KEYCODE_ALT_LEFT:
+            // Return true if Left-Alt is pressed with Right-Alt pressed.
+            return (metaState & KeyEvent.META_ALT_RIGHT_ON) != 0;
+        case KeyEvent.KEYCODE_ALT_RIGHT:
+            // Return true if Right-Alt is pressed with Left-Alt pressed.
+            return (metaState & KeyEvent.META_ALT_LEFT_ON) != 0;
+        default:
+            return (metaState & (KeyEvent.META_ALT_LEFT_ON | KeyEvent.META_ALT_RIGHT_ON)) != 0;
+        }
+    }
+}
diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
index c11a220..1ef7061 100644
--- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
@@ -20,35 +20,41 @@
 import android.util.Log;
 
 import com.android.inputmethod.annotations.UsedForTesting;
-import com.android.inputmethod.keyboard.ProximityInfo;
+import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
+import com.android.inputmethod.latin.common.ComposedData;
+import com.android.inputmethod.latin.common.FileUtils;
+import com.android.inputmethod.latin.define.DecoderSpecificConstants;
 import com.android.inputmethod.latin.makedict.DictionaryHeader;
 import com.android.inputmethod.latin.makedict.FormatSpec;
 import com.android.inputmethod.latin.makedict.UnsupportedFormatException;
 import com.android.inputmethod.latin.makedict.WordProperty;
-import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
 import com.android.inputmethod.latin.settings.SettingsValuesForSuggestion;
+import com.android.inputmethod.latin.utils.AsyncResultHolder;
 import com.android.inputmethod.latin.utils.CombinedFormatUtils;
-import com.android.inputmethod.latin.utils.DistracterFilter;
 import com.android.inputmethod.latin.utils.ExecutorUtils;
-import com.android.inputmethod.latin.utils.FileUtils;
-import com.android.inputmethod.latin.utils.LanguageModelParam;
+import com.android.inputmethod.latin.utils.WordInputEventForPersonalization;
 
 import java.io.File;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Locale;
 import java.util.Map;
-import java.util.concurrent.Callable;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 /**
  * Abstract base class for an expandable dictionary that can be created and updated dynamically
  * during runtime. When updated it automatically generates a new binary dictionary to handle future
  * queries in native code. This binary dictionary is written to internal storage.
+ *
+ * A class that extends this abstract class must have a static factory method named
+ *   getDictionary(Context context, Locale locale, File dictFile, String dictNamePrefix)
  */
 abstract public class ExpandableBinaryDictionary extends Dictionary {
     private static final boolean DEBUG = false;
@@ -61,16 +67,17 @@
 
     private static final int TIMEOUT_FOR_READ_OPS_IN_MILLISECONDS = 100;
 
-    private static final int DEFAULT_MAX_UNIGRAM_COUNT = 10000;
-    private static final int DEFAULT_MAX_BIGRAM_COUNT = 10000;
-
     /**
      * The maximum length of a word in this dictionary.
      */
-    protected static final int MAX_WORD_LENGTH = Constants.DICTIONARY_MAX_WORD_LENGTH;
+    protected static final int MAX_WORD_LENGTH =
+            DecoderSpecificConstants.DICTIONARY_MAX_WORD_LENGTH;
 
     private static final int DICTIONARY_FORMAT_VERSION = FormatSpec.VERSION4;
 
+    private static final WordProperty[] DEFAULT_WORD_PROPERTIES_FOR_SYNC =
+            new WordProperty[0] /* default */;
+
     /** The application context. */
     protected final Context mContext;
 
@@ -86,9 +93,6 @@
      */
     private final String mDictName;
 
-    /** Dictionary locale */
-    private final Locale mLocale;
-
     /** Dictionary file */
     private final File mDictFile;
 
@@ -110,14 +114,14 @@
      */
     protected abstract void loadInitialContentsLocked();
 
-    private boolean matchesExpectedBinaryDictFormatVersionForThisType(final int formatVersion) {
+    static boolean matchesExpectedBinaryDictFormatVersionForThisType(final int formatVersion) {
         return formatVersion == FormatSpec.VERSION4;
     }
 
-    private boolean needsToMigrateDictionary(final int formatVersion) {
+    private static boolean needsToMigrateDictionary(final int formatVersion) {
         // When we bump up the dictionary format version, the old version should be added to here
         // for supporting migration. Note that native code has to support reading such formats.
-        return formatVersion == FormatSpec.VERSION4_ONLY_FOR_TESTING;
+        return formatVersion == FormatSpec.VERSION402;
     }
 
     public boolean isValidDictionaryLocked() {
@@ -137,10 +141,9 @@
      */
     public ExpandableBinaryDictionary(final Context context, final String dictName,
             final Locale locale, final String dictType, final File dictFile) {
-        super(dictType);
+        super(dictType, locale);
         mDictName = dictName;
         mContext = context;
-        mLocale = locale;
         mDictFile = getDictFile(context, dictName, dictFile);
         mBinaryDictionary = null;
         mIsReloading = new AtomicBoolean();
@@ -163,32 +166,10 @@
         asyncExecuteTaskWithLock(mLock.writeLock(), task);
     }
 
-    private void asyncExecuteTaskWithLock(final Lock lock, final Runnable task) {
-        asyncPreCheckAndExecuteTaskWithLock(lock, null /* preCheckTask */, task);
-    }
-
-    private void asyncPreCheckAndExecuteTaskWithWriteLock(
-            final Callable<Boolean> preCheckTask, final Runnable task) {
-        asyncPreCheckAndExecuteTaskWithLock(mLock.writeLock(), preCheckTask, task);
-
-    }
-
-    // Execute task with lock when the result of preCheckTask is true or preCheckTask is null.
-    private void asyncPreCheckAndExecuteTaskWithLock(final Lock lock,
-            final Callable<Boolean> preCheckTask, final Runnable task) {
-        ExecutorUtils.getExecutor(mDictName).execute(new Runnable() {
+    private static void asyncExecuteTaskWithLock(final Lock lock, final Runnable task) {
+        ExecutorUtils.getBackgroundExecutor(ExecutorUtils.KEYBOARD).execute(new Runnable() {
             @Override
             public void run() {
-                if (preCheckTask != null) {
-                    try {
-                        if (!preCheckTask.call().booleanValue()) {
-                            return;
-                        }
-                    } catch (final Exception e) {
-                        Log.e(TAG, "The pre check task throws an exception.", e);
-                        return;
-                    }
-                }
                 lock.lock();
                 try {
                     task.run();
@@ -199,6 +180,18 @@
         });
     }
 
+    @Nullable
+    BinaryDictionary getBinaryDictionary() {
+        return mBinaryDictionary;
+    }
+
+    void closeBinaryDictionary() {
+        if (mBinaryDictionary != null) {
+            mBinaryDictionary.close();
+            mBinaryDictionary = null;
+        }
+    }
+
     /**
      * Closes and cleans up the binary dictionary.
      */
@@ -207,10 +200,7 @@
         asyncExecuteTaskWithWriteLock(new Runnable() {
             @Override
             public void run() {
-                if (mBinaryDictionary != null) {
-                    mBinaryDictionary.close();
-                    mBinaryDictionary = null;
-                }
+                closeBinaryDictionary();
             }
         });
     }
@@ -224,10 +214,6 @@
         attributeMap.put(DictionaryHeader.DICTIONARY_LOCALE_KEY, mLocale.toString());
         attributeMap.put(DictionaryHeader.DICTIONARY_VERSION_KEY,
                 String.valueOf(TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis())));
-        attributeMap.put(DictionaryHeader.MAX_UNIGRAM_COUNT_KEY,
-                String.valueOf(DEFAULT_MAX_UNIGRAM_COUNT));
-        attributeMap.put(DictionaryHeader.MAX_BIGRAM_COUNT_KEY,
-                String.valueOf(DEFAULT_MAX_BIGRAM_COUNT));
         return attributeMap;
     }
 
@@ -240,14 +226,11 @@
         });
     }
 
-    private void removeBinaryDictionaryLocked() {
-        if (mBinaryDictionary != null) {
-            mBinaryDictionary.close();
-        }
+    void removeBinaryDictionaryLocked() {
+        closeBinaryDictionary();
         if (mDictFile.exists() && !FileUtils.deleteRecursively(mDictFile)) {
             Log.e(TAG, "Can't remove a file: " + mDictFile.getName());
         }
-        mBinaryDictionary = null;
     }
 
     private void openBinaryDictionaryLocked() {
@@ -256,7 +239,7 @@
                 true /* useFullEditDistance */, mLocale, mDictType, true /* isUpdatable */);
     }
 
-    private void createOnMemoryBinaryDictionaryLocked() {
+    void createOnMemoryBinaryDictionaryLocked() {
         mBinaryDictionary = new BinaryDictionary(
                 mDictFile.getAbsolutePath(), true /* useFullEditDistance */, mLocale, mDictType,
                 DICTIONARY_FORMAT_VERSION, getHeaderAttributeMap());
@@ -275,11 +258,11 @@
     /**
      * Check whether GC is needed and run GC if required.
      */
-    protected void runGCIfRequired(final boolean mindsBlockByGC) {
+    public void runGCIfRequired(final boolean mindsBlockByGC) {
         asyncExecuteTaskWithWriteLock(new Runnable() {
             @Override
             public void run() {
-                if (mBinaryDictionary == null) {
+                if (getBinaryDictionary() == null) {
                     return;
                 }
                 runGCIfRequiredLocked(mindsBlockByGC);
@@ -293,40 +276,38 @@
         }
     }
 
+    private void updateDictionaryWithWriteLock(@Nonnull final Runnable updateTask) {
+        reloadDictionaryIfRequired();
+        final Runnable task = new Runnable() {
+            @Override
+            public void run() {
+                if (getBinaryDictionary() == null) {
+                    return;
+                }
+                runGCIfRequiredLocked(true /* mindsBlockByGC */);
+                updateTask.run();
+            }
+        };
+        asyncExecuteTaskWithWriteLock(task);
+    }
+
     /**
      * Adds unigram information of a word to the dictionary. May overwrite an existing entry.
      */
-    public void addUnigramEntryWithCheckingDistracter(final String word, final int frequency,
-            final String shortcutTarget, final int shortcutFreq, final boolean isNotAWord,
-            final boolean isBlacklisted, final int timestamp,
-            final DistracterFilter distracterFilter) {
-        reloadDictionaryIfRequired();
-        asyncPreCheckAndExecuteTaskWithWriteLock(
-                new Callable<Boolean>() {
-                    @Override
-                    public Boolean call() throws Exception {
-                        return !distracterFilter.isDistracterToWordsInDictionaries(
-                                PrevWordsInfo.EMPTY_PREV_WORDS_INFO, word, mLocale);
-                    }
-                },
-                new Runnable() {
-                    @Override
-                    public void run() {
-                        if (mBinaryDictionary == null) {
-                            return;
-                        }
-                        runGCIfRequiredLocked(true /* mindsBlockByGC */);
-                        addUnigramLocked(word, frequency, shortcutTarget, shortcutFreq,
-                                isNotAWord, isBlacklisted, timestamp);
-                    }
-                });
+    public void addUnigramEntry(final String word, final int frequency,
+            final boolean isNotAWord, final boolean isPossiblyOffensive, final int timestamp) {
+        updateDictionaryWithWriteLock(new Runnable() {
+            @Override
+            public void run() {
+                addUnigramLocked(word, frequency, isNotAWord, isPossiblyOffensive, timestamp);
+            }
+        });
     }
 
     protected void addUnigramLocked(final String word, final int frequency,
-            final String shortcutTarget, final int shortcutFreq, final boolean isNotAWord,
-            final boolean isBlacklisted, final int timestamp) {
-        if (!mBinaryDictionary.addUnigramEntry(word, frequency, shortcutTarget, shortcutFreq,
-                false /* isBeginningOfSentence */, isNotAWord, isBlacklisted, timestamp)) {
+            final boolean isNotAWord, final boolean isPossiblyOffensive, final int timestamp) {
+        if (!mBinaryDictionary.addUnigramEntry(word, frequency,
+                false /* isBeginningOfSentence */, isNotAWord, isPossiblyOffensive, timestamp)) {
             Log.e(TAG, "Cannot add unigram entry. word: " + word);
         }
     }
@@ -339,11 +320,12 @@
         asyncExecuteTaskWithWriteLock(new Runnable() {
             @Override
             public void run() {
-                if (mBinaryDictionary == null) {
+                final BinaryDictionary binaryDictionary = getBinaryDictionary();
+                if (binaryDictionary == null) {
                     return;
                 }
                 runGCIfRequiredLocked(true /* mindsBlockByGC */);
-                if (!mBinaryDictionary.removeUnigramEntry(word)) {
+                if (!binaryDictionary.removeUnigramEntry(word)) {
                     if (DEBUG) {
                         Log.i(TAG, "Cannot remove unigram entry: " + word);
                     }
@@ -355,75 +337,85 @@
     /**
      * Adds n-gram information of a word to the dictionary. May overwrite an existing entry.
      */
-    public void addNgramEntry(final PrevWordsInfo prevWordsInfo, final String word,
+    public void addNgramEntry(@Nonnull final NgramContext ngramContext, final String word,
             final int frequency, final int timestamp) {
         reloadDictionaryIfRequired();
         asyncExecuteTaskWithWriteLock(new Runnable() {
             @Override
             public void run() {
-                if (mBinaryDictionary == null) {
+                if (getBinaryDictionary() == null) {
                     return;
                 }
                 runGCIfRequiredLocked(true /* mindsBlockByGC */);
-                addNgramEntryLocked(prevWordsInfo, word, frequency, timestamp);
+                addNgramEntryLocked(ngramContext, word, frequency, timestamp);
             }
         });
     }
 
-    protected void addNgramEntryLocked(final PrevWordsInfo prevWordsInfo, final String word,
+    protected void addNgramEntryLocked(@Nonnull final NgramContext ngramContext, final String word,
             final int frequency, final int timestamp) {
-        if (!mBinaryDictionary.addNgramEntry(prevWordsInfo, word, frequency, timestamp)) {
+        if (!mBinaryDictionary.addNgramEntry(ngramContext, word, frequency, timestamp)) {
             if (DEBUG) {
                 Log.i(TAG, "Cannot add n-gram entry.");
-                Log.i(TAG, "  PrevWordsInfo: " + prevWordsInfo + ", word: " + word);
+                Log.i(TAG, "  NgramContext: " + ngramContext + ", word: " + word);
             }
         }
     }
 
     /**
-     * Dynamically remove the n-gram entry in the dictionary.
+     * Update dictionary for the word with the ngramContext.
      */
-    @UsedForTesting
-    public void removeNgramDynamically(final PrevWordsInfo prevWordsInfo, final String word) {
-        reloadDictionaryIfRequired();
-        asyncExecuteTaskWithWriteLock(new Runnable() {
+    public void updateEntriesForWord(@Nonnull final NgramContext ngramContext,
+            final String word, final boolean isValidWord, final int count, final int timestamp) {
+        updateDictionaryWithWriteLock(new Runnable() {
             @Override
             public void run() {
-                if (mBinaryDictionary == null) {
+                final BinaryDictionary binaryDictionary = getBinaryDictionary();
+                if (binaryDictionary == null) {
                     return;
                 }
-                runGCIfRequiredLocked(true /* mindsBlockByGC */);
-                if (!mBinaryDictionary.removeNgramEntry(prevWordsInfo, word)) {
+                if (!binaryDictionary.updateEntriesForWordWithNgramContext(ngramContext, word,
+                        isValidWord, count, timestamp)) {
                     if (DEBUG) {
-                        Log.i(TAG, "Cannot remove n-gram entry.");
-                        Log.i(TAG, "  PrevWordsInfo: " + prevWordsInfo + ", word: " + word);
+                        Log.e(TAG, "Cannot update counter. word: " + word
+                                + " context: " + ngramContext.toString());
                     }
                 }
             }
         });
     }
 
-    public interface AddMultipleDictionaryEntriesCallback {
+    /**
+     * Used by Sketch.
+     * {@see https://cs.corp.google.com/#android/vendor/unbundled_google/packages/LatinIMEGoogle/tools/sketch/ime-simulator/src/com/android/inputmethod/sketch/imesimulator/ImeSimulator.java&q=updateEntriesForInputEventsCallback&l=286}
+     */
+    @UsedForTesting
+    public interface UpdateEntriesForInputEventsCallback {
         public void onFinished();
     }
 
     /**
-     * Dynamically add multiple entries to the dictionary.
+     * Dynamically update entries according to input events.
+     *
+     * Used by Sketch.
+     * {@see https://cs.corp.google.com/#android/vendor/unbundled_google/packages/LatinIMEGoogle/tools/sketch/ime-simulator/src/com/android/inputmethod/sketch/imesimulator/ImeSimulator.java&q=updateEntriesForInputEventsCallback&l=286}
      */
-    public void addMultipleDictionaryEntriesDynamically(
-            final ArrayList<LanguageModelParam> languageModelParams,
-            final AddMultipleDictionaryEntriesCallback callback) {
+    @UsedForTesting
+    public void updateEntriesForInputEvents(
+            @Nonnull final ArrayList<WordInputEventForPersonalization> inputEvents,
+            final UpdateEntriesForInputEventsCallback callback) {
         reloadDictionaryIfRequired();
         asyncExecuteTaskWithWriteLock(new Runnable() {
             @Override
             public void run() {
                 try {
-                    if (mBinaryDictionary == null) {
+                    final BinaryDictionary binaryDictionary = getBinaryDictionary();
+                    if (binaryDictionary == null) {
                         return;
                     }
-                    mBinaryDictionary.addMultipleDictionaryEntries(
-                            languageModelParams.toArray(
-                                    new LanguageModelParam[languageModelParams.size()]));
+                    binaryDictionary.updateEntriesForInputEvents(
+                            inputEvents.toArray(
+                                    new WordInputEventForPersonalization[inputEvents.size()]));
                 } finally {
                     if (callback != null) {
                         callback.onFinished();
@@ -434,10 +426,10 @@
     }
 
     @Override
-    public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
-            final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo,
+    public ArrayList<SuggestedWordInfo> getSuggestions(final ComposedData composedData,
+            final NgramContext ngramContext, final long proximityInfoHandle,
             final SettingsValuesForSuggestion settingsValuesForSuggestion, final int sessionId,
-            final float[] inOutLanguageWeight) {
+            final float weightForLocale, final float[] inOutWeightOfLangModelVsSpatialModel) {
         reloadDictionaryIfRequired();
         boolean lockAcquired = false;
         try {
@@ -448,8 +440,9 @@
                     return null;
                 }
                 final ArrayList<SuggestedWordInfo> suggestions =
-                        mBinaryDictionary.getSuggestions(composer, prevWordsInfo, proximityInfo,
-                                settingsValuesForSuggestion, sessionId, inOutLanguageWeight);
+                        mBinaryDictionary.getSuggestions(composedData, ngramContext,
+                                proximityInfoHandle, settingsValuesForSuggestion, sessionId,
+                                weightForLocale, inOutWeightOfLangModelVsSpatialModel);
                 if (mBinaryDictionary.isCorrupted()) {
                     Log.i(TAG, "Dictionary (" + mDictName +") is corrupted. "
                             + "Remove and regenerate it.");
@@ -519,16 +512,11 @@
     }
 
 
-    protected boolean isValidNgramLocked(final PrevWordsInfo prevWordsInfo, final String word) {
-        if (mBinaryDictionary == null) return false;
-        return mBinaryDictionary.isValidNgram(prevWordsInfo, word);
-    }
-
     /**
      * Loads the current binary dictionary from internal storage. Assumes the dictionary file
      * exists.
      */
-    private void loadBinaryDictionaryLocked() {
+    void loadBinaryDictionaryLocked() {
         if (DBG_STRESS_TEST) {
             // Test if this class does not cause problems when it takes long time to load binary
             // dictionary.
@@ -537,6 +525,7 @@
                 Thread.sleep(15000);
                 Log.w(TAG, "End stress in loading");
             } catch (InterruptedException e) {
+                Log.w("Interrupted while loading: " + mDictName, e);
             }
         }
         final BinaryDictionary oldBinaryDictionary = mBinaryDictionary;
@@ -556,7 +545,7 @@
     /**
      * Create a new binary dictionary and load initial contents.
      */
-    private void createNewDictionaryLocked() {
+    void createNewDictionaryLocked() {
         removeBinaryDictionaryLocked();
         createOnMemoryBinaryDictionaryLocked();
         loadInitialContentsLocked();
@@ -572,6 +561,14 @@
         mNeedsToRecreate = true;
     }
 
+    void clearNeedsToRecreate() {
+        mNeedsToRecreate = false;
+    }
+
+    boolean isNeededToRecreate() {
+        return mNeedsToRecreate;
+    }
+
     /**
      * Load the current binary dictionary from internal storage. If the dictionary file doesn't
      * exists or needs to be regenerated, the new dictionary file will be asynchronously generated.
@@ -593,36 +590,40 @@
     /**
      * Reloads the dictionary. Access is controlled on a per dictionary file basis.
      */
-    private final void asyncReloadDictionary() {
-        if (mIsReloading.compareAndSet(false, true)) {
-            asyncExecuteTaskWithWriteLock(new Runnable() {
-                @Override
-                public void run() {
-                    try {
-                        if (!mDictFile.exists() || mNeedsToRecreate) {
-                            // If the dictionary file does not exist or contents have been updated,
-                            // generate a new one.
-                            createNewDictionaryLocked();
-                        } else if (mBinaryDictionary == null) {
-                            // Otherwise, load the existing dictionary.
-                            loadBinaryDictionaryLocked();
-                            if (mBinaryDictionary != null && !(isValidDictionaryLocked()
-                                    // TODO: remove the check below
-                                    && matchesExpectedBinaryDictFormatVersionForThisType(
-                                            mBinaryDictionary.getFormatVersion()))) {
-                                // Binary dictionary or its format version is not valid. Regenerate
-                                // the dictionary file. createNewDictionaryLocked will remove the
-                                // existing files if appropriate.
-                                createNewDictionaryLocked();
-                            }
-                        }
-                        mNeedsToRecreate = false;
-                    } finally {
-                        mIsReloading.set(false);
-                    }
-                }
-            });
+    private void asyncReloadDictionary() {
+        final AtomicBoolean isReloading = mIsReloading;
+        if (!isReloading.compareAndSet(false, true)) {
+            return;
         }
+        final File dictFile = mDictFile;
+        asyncExecuteTaskWithWriteLock(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    if (!dictFile.exists() || isNeededToRecreate()) {
+                        // If the dictionary file does not exist or contents have been updated,
+                        // generate a new one.
+                        createNewDictionaryLocked();
+                    } else if (getBinaryDictionary() == null) {
+                        // Otherwise, load the existing dictionary.
+                        loadBinaryDictionaryLocked();
+                        final BinaryDictionary binaryDictionary = getBinaryDictionary();
+                        if (binaryDictionary != null && !(isValidDictionaryLocked()
+                                // TODO: remove the check below
+                                && matchesExpectedBinaryDictFormatVersionForThisType(
+                                        binaryDictionary.getFormatVersion()))) {
+                            // Binary dictionary or its format version is not valid. Regenerate
+                            // the dictionary file. createNewDictionaryLocked will remove the
+                            // existing files if appropriate.
+                            createNewDictionaryLocked();
+                        }
+                    }
+                    clearNeedsToRecreate();
+                } finally {
+                    isReloading.set(false);
+                }
+            }
+        });
     }
 
     /**
@@ -632,22 +633,37 @@
         asyncExecuteTaskWithWriteLock(new Runnable() {
             @Override
             public void run() {
-                if (mBinaryDictionary == null) {
+                final BinaryDictionary binaryDictionary = getBinaryDictionary();
+                if (binaryDictionary == null) {
                     return;
                 }
-                if (mBinaryDictionary.needsToRunGC(false /* mindsBlockByGC */)) {
-                    mBinaryDictionary.flushWithGC();
+                if (binaryDictionary.needsToRunGC(false /* mindsBlockByGC */)) {
+                    binaryDictionary.flushWithGC();
                 } else {
-                    mBinaryDictionary.flush();
+                    binaryDictionary.flush();
                 }
             }
         });
     }
 
+    public DictionaryStats getDictionaryStats() {
+        reloadDictionaryIfRequired();
+        final String dictName = mDictName;
+        final File dictFile = mDictFile;
+        final AsyncResultHolder<DictionaryStats> result = new AsyncResultHolder<>();
+        asyncExecuteTaskWithLock(mLock.readLock(), new Runnable() {
+            @Override
+            public void run() {
+                result.set(new DictionaryStats(mLocale, dictName, dictFile, 0));
+            }
+        });
+        return result.get(null /* defaultValue */, TIMEOUT_FOR_READ_OPS_IN_MILLISECONDS);
+    }
+
     @UsedForTesting
     public void waitAllTasksForTests() {
         final CountDownLatch countDownLatch = new CountDownLatch(1);
-        ExecutorUtils.getExecutor(mDictName).execute(new Runnable() {
+        asyncExecuteTaskWithWriteLock(new Runnable() {
             @Override
             public void run() {
                 countDownLatch.countDown();
@@ -669,31 +685,71 @@
 
     public void dumpAllWordsForDebug() {
         reloadDictionaryIfRequired();
+        final String tag = TAG;
+        final String dictName = mDictName;
         asyncExecuteTaskWithLock(mLock.readLock(), new Runnable() {
             @Override
             public void run() {
-                Log.d(TAG, "Dump dictionary: " + mDictName);
+                Log.d(tag, "Dump dictionary: " + dictName + " for " + mLocale);
+                final BinaryDictionary binaryDictionary = getBinaryDictionary();
+                if (binaryDictionary == null) {
+                    return;
+                }
                 try {
-                    final DictionaryHeader header = mBinaryDictionary.getHeader();
-                    Log.d(TAG, "Format version: " + mBinaryDictionary.getFormatVersion());
-                    Log.d(TAG, CombinedFormatUtils.formatAttributeMap(
+                    final DictionaryHeader header = binaryDictionary.getHeader();
+                    Log.d(tag, "Format version: " + binaryDictionary.getFormatVersion());
+                    Log.d(tag, CombinedFormatUtils.formatAttributeMap(
                             header.mDictionaryOptions.mAttributes));
                 } catch (final UnsupportedFormatException e) {
-                    Log.d(TAG, "Cannot fetch header information.", e);
+                    Log.d(tag, "Cannot fetch header information.", e);
                 }
                 int token = 0;
                 do {
                     final BinaryDictionary.GetNextWordPropertyResult result =
-                            mBinaryDictionary.getNextWordProperty(token);
+                            binaryDictionary.getNextWordProperty(token);
                     final WordProperty wordProperty = result.mWordProperty;
                     if (wordProperty == null) {
-                        Log.d(TAG, " dictionary is empty.");
+                        Log.d(tag, " dictionary is empty.");
                         break;
                     }
-                    Log.d(TAG, wordProperty.toString());
+                    Log.d(tag, wordProperty.toString());
                     token = result.mNextToken;
                 } while (token != 0);
             }
         });
     }
+
+    /**
+     * Returns dictionary content required for syncing.
+     */
+    public WordProperty[] getWordPropertiesForSyncing() {
+        reloadDictionaryIfRequired();
+        final AsyncResultHolder<WordProperty[]> result = new AsyncResultHolder<>();
+        asyncExecuteTaskWithLock(mLock.readLock(), new Runnable() {
+            @Override
+            public void run() {
+                final ArrayList<WordProperty> wordPropertyList = new ArrayList<>();
+                final BinaryDictionary binaryDictionary = getBinaryDictionary();
+                if (binaryDictionary == null) {
+                    return;
+                }
+                int token = 0;
+                do {
+                    // TODO: We need a new API that returns *new* un-synced data.
+                    final BinaryDictionary.GetNextWordPropertyResult nextWordPropertyResult =
+                            binaryDictionary.getNextWordProperty(token);
+                    final WordProperty wordProperty = nextWordPropertyResult.mWordProperty;
+                    if (wordProperty == null) {
+                        break;
+                    }
+                    wordPropertyList.add(wordProperty);
+                    token = nextWordPropertyResult.mNextToken;
+                } while (token != 0);
+                result.set(wordPropertyList.toArray(new WordProperty[wordPropertyList.size()]));
+            }
+        });
+        // TODO: Figure out the best timeout duration for this API.
+        return result.get(DEFAULT_WORD_PROPERTIES_FOR_SYNC,
+                TIMEOUT_FOR_READ_OPS_IN_MILLISECONDS);
+    }
 }
diff --git a/java/src/com/android/inputmethod/latin/InputAttributes.java b/java/src/com/android/inputmethod/latin/InputAttributes.java
index fecb0ef..37effee 100644
--- a/java/src/com/android/inputmethod/latin/InputAttributes.java
+++ b/java/src/com/android/inputmethod/latin/InputAttributes.java
@@ -16,15 +16,16 @@
 
 package com.android.inputmethod.latin;
 
-import static com.android.inputmethod.latin.Constants.ImeOption.NO_MICROPHONE;
-import static com.android.inputmethod.latin.Constants.ImeOption.NO_MICROPHONE_COMPAT;
+import static com.android.inputmethod.latin.common.Constants.ImeOption.NO_FLOATING_GESTURE_PREVIEW;
+import static com.android.inputmethod.latin.common.Constants.ImeOption.NO_MICROPHONE;
+import static com.android.inputmethod.latin.common.Constants.ImeOption.NO_MICROPHONE_COMPAT;
 
 import android.text.InputType;
 import android.util.Log;
 import android.view.inputmethod.EditorInfo;
 
+import com.android.inputmethod.latin.common.StringUtils;
 import com.android.inputmethod.latin.utils.InputTypeUtils;
-import com.android.inputmethod.latin.utils.StringUtils;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -42,6 +43,12 @@
     final public boolean mApplicationSpecifiedCompletionOn;
     final public boolean mShouldInsertSpacesAutomatically;
     final public boolean mShouldShowVoiceInputKey;
+    /**
+     * Whether the floating gesture preview should be disabled. If true, this should override the
+     * corresponding keyboard settings preference, always suppressing the floating preview text.
+     * {@link com.android.inputmethod.latin.settings.SettingsValues#mGestureFloatingPreviewTextEnabled}
+     */
+    final public boolean mDisableGestureFloatingPreviewText;
     final public boolean mIsGeneralTextInput;
     final private int mInputType;
     final private EditorInfo mEditorInfo;
@@ -77,6 +84,7 @@
             mApplicationSpecifiedCompletionOn = false;
             mShouldInsertSpacesAutomatically = false;
             mShouldShowVoiceInputKey = false;
+            mDisableGestureFloatingPreviewText = false;
             mIsGeneralTextInput = false;
             return;
         }
@@ -109,6 +117,9 @@
                 || hasNoMicrophoneKeyOption();
         mShouldShowVoiceInputKey = !noMicrophone;
 
+        mDisableGestureFloatingPreviewText = InputAttributes.inPrivateImeOptions(
+                mPackageNameForPrivateImeOptions, NO_FLOATING_GESTURE_PREVIEW, editorInfo);
+
         // If it's a browser edit field and auto correct is not ON explicitly, then
         // disable auto correction, but keep suggestions on.
         // If NO_SUGGESTIONS is set, don't do prediction.
diff --git a/java/src/com/android/inputmethod/latin/InputPointers.java b/java/src/com/android/inputmethod/latin/InputPointers.java
deleted file mode 100644
index 790e0d8..0000000
--- a/java/src/com/android/inputmethod/latin/InputPointers.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin;
-
-import android.util.Log;
-import android.util.SparseIntArray;
-
-import com.android.inputmethod.annotations.UsedForTesting;
-import com.android.inputmethod.latin.define.DebugFlags;
-import com.android.inputmethod.latin.utils.ResizableIntArray;
-
-// TODO: This class is not thread-safe.
-public final class InputPointers {
-    private static final String TAG = InputPointers.class.getSimpleName();
-    private static final boolean DEBUG_TIME = false;
-
-    private final int mDefaultCapacity;
-    private final ResizableIntArray mXCoordinates;
-    private final ResizableIntArray mYCoordinates;
-    private final ResizableIntArray mPointerIds;
-    private final ResizableIntArray mTimes;
-
-    public InputPointers(int defaultCapacity) {
-        mDefaultCapacity = defaultCapacity;
-        mXCoordinates = new ResizableIntArray(defaultCapacity);
-        mYCoordinates = new ResizableIntArray(defaultCapacity);
-        mPointerIds = new ResizableIntArray(defaultCapacity);
-        mTimes = new ResizableIntArray(defaultCapacity);
-    }
-
-    private void fillWithLastTimeUntil(final int index) {
-        final int fromIndex = mTimes.getLength();
-        // Fill the gap with the latest time.
-        // See {@link #getTime(int)} and {@link #isValidTimeStamps()}.
-        if (fromIndex <= 0) {
-            return;
-        }
-        final int fillLength = index - fromIndex + 1;
-        if (fillLength <= 0) {
-            return;
-        }
-        final int lastTime = mTimes.get(fromIndex - 1);
-        mTimes.fill(lastTime, fromIndex, fillLength);
-    }
-
-    public void addPointerAt(int index, int x, int y, int pointerId, int time) {
-        mXCoordinates.addAt(index, x);
-        mYCoordinates.addAt(index, y);
-        mPointerIds.addAt(index, pointerId);
-        if (DebugFlags.DEBUG_ENABLED || DEBUG_TIME) {
-            fillWithLastTimeUntil(index);
-        }
-        mTimes.addAt(index, time);
-    }
-
-    @UsedForTesting
-    void addPointer(int x, int y, int pointerId, int time) {
-        mXCoordinates.add(x);
-        mYCoordinates.add(y);
-        mPointerIds.add(pointerId);
-        mTimes.add(time);
-    }
-
-    public void set(InputPointers ip) {
-        mXCoordinates.set(ip.mXCoordinates);
-        mYCoordinates.set(ip.mYCoordinates);
-        mPointerIds.set(ip.mPointerIds);
-        mTimes.set(ip.mTimes);
-    }
-
-    public void copy(InputPointers ip) {
-        mXCoordinates.copy(ip.mXCoordinates);
-        mYCoordinates.copy(ip.mYCoordinates);
-        mPointerIds.copy(ip.mPointerIds);
-        mTimes.copy(ip.mTimes);
-    }
-
-    /**
-     * Append the times, x-coordinates and y-coordinates in the specified {@link ResizableIntArray}
-     * to the end of this.
-     * @param pointerId the pointer id of the source.
-     * @param times the source {@link ResizableIntArray} to read the event times from.
-     * @param xCoordinates the source {@link ResizableIntArray} to read the x-coordinates from.
-     * @param yCoordinates the source {@link ResizableIntArray} to read the y-coordinates from.
-     * @param startPos the starting index of the data in {@code times} and etc.
-     * @param length the number of data to be appended.
-     */
-    public void append(int pointerId, ResizableIntArray times, ResizableIntArray xCoordinates,
-            ResizableIntArray yCoordinates, int startPos, int length) {
-        if (length == 0) {
-            return;
-        }
-        mXCoordinates.append(xCoordinates, startPos, length);
-        mYCoordinates.append(yCoordinates, startPos, length);
-        mPointerIds.fill(pointerId, mPointerIds.getLength(), length);
-        mTimes.append(times, startPos, length);
-    }
-
-    /**
-     * Shift to the left by elementCount, discarding elementCount pointers at the start.
-     * @param elementCount how many elements to shift.
-     */
-    public void shift(final int elementCount) {
-        mXCoordinates.shift(elementCount);
-        mYCoordinates.shift(elementCount);
-        mPointerIds.shift(elementCount);
-        mTimes.shift(elementCount);
-    }
-
-    public void reset() {
-        final int defaultCapacity = mDefaultCapacity;
-        mXCoordinates.reset(defaultCapacity);
-        mYCoordinates.reset(defaultCapacity);
-        mPointerIds.reset(defaultCapacity);
-        mTimes.reset(defaultCapacity);
-    }
-
-    public int getPointerSize() {
-        return mXCoordinates.getLength();
-    }
-
-    public int[] getXCoordinates() {
-        return mXCoordinates.getPrimitiveArray();
-    }
-
-    public int[] getYCoordinates() {
-        return mYCoordinates.getPrimitiveArray();
-    }
-
-    public int[] getPointerIds() {
-        return mPointerIds.getPrimitiveArray();
-    }
-
-    public int[] getTimes() {
-        if (DebugFlags.DEBUG_ENABLED || DEBUG_TIME) {
-            if (!isValidTimeStamps()) {
-                throw new RuntimeException("Time stamps are invalid.");
-            }
-        }
-        return mTimes.getPrimitiveArray();
-    }
-
-    @Override
-    public String toString() {
-        return "size=" + getPointerSize() + " id=" + mPointerIds + " time=" + mTimes
-                + " x=" + mXCoordinates + " y=" + mYCoordinates;
-    }
-
-    private boolean isValidTimeStamps() {
-        final int[] times = mTimes.getPrimitiveArray();
-        final int[] pointerIds = mPointerIds.getPrimitiveArray();
-        final SparseIntArray lastTimeOfPointers = new SparseIntArray();
-        final int size = getPointerSize();
-        for (int i = 0; i < size; ++i) {
-            final int pointerId = pointerIds[i];
-            final int time = times[i];
-            final int lastTime = lastTimeOfPointers.get(pointerId, time);
-            if (time < lastTime) {
-                // dump
-                for (int j = 0; j < size; ++j) {
-                    Log.d(TAG, "--- (" + j + ") " + times[j]);
-                }
-                return false;
-            }
-            lastTimeOfPointers.put(pointerId, time);
-        }
-        return true;
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/InputView.java b/java/src/com/android/inputmethod/latin/InputView.java
index 7fa9354..f3a8ca1 100644
--- a/java/src/com/android/inputmethod/latin/InputView.java
+++ b/java/src/com/android/inputmethod/latin/InputView.java
@@ -139,7 +139,10 @@
             return y - mEventReceivingRect.top;
         }
 
-        // Callback when a {@link MotionEvent} is forwarded.
+        /**
+         * Callback when a {@link MotionEvent} is forwarded.
+         * @param me the motion event to be forwarded.
+         */
         protected void onForwardingEvent(final MotionEvent me) {}
 
         // Returns true if a {@link MotionEvent} is needed to be forwarded to
diff --git a/java/src/com/android/inputmethod/latin/LastComposedWord.java b/java/src/com/android/inputmethod/latin/LastComposedWord.java
index 8cbf837..426d33e 100644
--- a/java/src/com/android/inputmethod/latin/LastComposedWord.java
+++ b/java/src/com/android/inputmethod/latin/LastComposedWord.java
@@ -19,6 +19,8 @@
 import android.text.TextUtils;
 
 import com.android.inputmethod.event.Event;
+import com.android.inputmethod.latin.common.InputPointers;
+import com.android.inputmethod.latin.define.DecoderSpecificConstants;
 
 import java.util.ArrayList;
 
@@ -48,10 +50,10 @@
     public final String mTypedWord;
     public final CharSequence mCommittedWord;
     public final String mSeparatorString;
-    public final PrevWordsInfo mPrevWordsInfo;
+    public final NgramContext mNgramContext;
     public final int mCapitalizedMode;
     public final InputPointers mInputPointers =
-            new InputPointers(Constants.DICTIONARY_MAX_WORD_LENGTH);
+            new InputPointers(DecoderSpecificConstants.DICTIONARY_MAX_WORD_LENGTH);
 
     private boolean mActive;
 
@@ -64,7 +66,7 @@
     public LastComposedWord(final ArrayList<Event> events,
             final InputPointers inputPointers, final String typedWord,
             final CharSequence committedWord, final String separatorString,
-            final PrevWordsInfo prevWordsInfo, final int capitalizedMode) {
+            final NgramContext ngramContext, final int capitalizedMode) {
         if (inputPointers != null) {
             mInputPointers.copy(inputPointers);
         }
@@ -73,7 +75,7 @@
         mCommittedWord = committedWord;
         mSeparatorString = separatorString;
         mActive = true;
-        mPrevWordsInfo = prevWordsInfo;
+        mNgramContext = ngramContext;
         mCapitalizedMode = capitalizedMode;
     }
 
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index d57db8e..330be37 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -16,9 +16,9 @@
 
 package com.android.inputmethod.latin;
 
-import static com.android.inputmethod.latin.Constants.ImeOption.FORCE_ASCII;
-import static com.android.inputmethod.latin.Constants.ImeOption.NO_MICROPHONE;
-import static com.android.inputmethod.latin.Constants.ImeOption.NO_MICROPHONE_COMPAT;
+import static com.android.inputmethod.latin.common.Constants.ImeOption.FORCE_ASCII;
+import static com.android.inputmethod.latin.common.Constants.ImeOption.NO_MICROPHONE;
+import static com.android.inputmethod.latin.common.Constants.ImeOption.NO_MICROPHONE_COMPAT;
 
 import android.app.AlertDialog;
 import android.content.BroadcastReceiver;
@@ -31,13 +31,11 @@
 import android.content.res.Resources;
 import android.inputmethodservice.InputMethodService;
 import android.media.AudioManager;
-import android.net.ConnectivityManager;
 import android.os.Debug;
 import android.os.IBinder;
 import android.os.Message;
 import android.preference.PreferenceManager;
 import android.text.InputType;
-import android.text.TextUtils;
 import android.util.Log;
 import android.util.PrintWriterPrinter;
 import android.util.Printer;
@@ -46,19 +44,17 @@
 import android.view.KeyEvent;
 import android.view.View;
 import android.view.ViewGroup.LayoutParams;
-import android.view.ViewTreeObserver;
 import android.view.Window;
 import android.view.WindowManager;
 import android.view.inputmethod.CompletionInfo;
-import android.view.inputmethod.CursorAnchorInfo;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputMethodSubtype;
-import android.widget.TextView;
 
 import com.android.inputmethod.accessibility.AccessibilityUtils;
 import com.android.inputmethod.annotations.UsedForTesting;
-import com.android.inputmethod.compat.CursorAnchorInfoCompatWrapper;
 import com.android.inputmethod.compat.InputMethodServiceCompatUtils;
+import com.android.inputmethod.compat.ViewOutlineProviderCompatUtils;
+import com.android.inputmethod.compat.ViewOutlineProviderCompatUtils.InsetsUpdater;
 import com.android.inputmethod.dictionarypack.DictionaryPackConstants;
 import com.android.inputmethod.event.Event;
 import com.android.inputmethod.event.HardwareEventDecoder;
@@ -69,32 +65,29 @@
 import com.android.inputmethod.keyboard.KeyboardId;
 import com.android.inputmethod.keyboard.KeyboardSwitcher;
 import com.android.inputmethod.keyboard.MainKeyboardView;
-import com.android.inputmethod.keyboard.TextDecoratorUi;
 import com.android.inputmethod.latin.Suggest.OnGetSuggestedWordsCallback;
 import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.CoordinateUtils;
+import com.android.inputmethod.latin.common.InputPointers;
 import com.android.inputmethod.latin.define.DebugFlags;
 import com.android.inputmethod.latin.define.ProductionFlags;
 import com.android.inputmethod.latin.inputlogic.InputLogic;
-import com.android.inputmethod.latin.personalization.ContextualDictionaryUpdater;
-import com.android.inputmethod.latin.personalization.DictionaryDecayBroadcastReciever;
-import com.android.inputmethod.latin.personalization.PersonalizationDictionaryUpdater;
 import com.android.inputmethod.latin.personalization.PersonalizationHelper;
 import com.android.inputmethod.latin.settings.Settings;
 import com.android.inputmethod.latin.settings.SettingsActivity;
 import com.android.inputmethod.latin.settings.SettingsValues;
 import com.android.inputmethod.latin.suggestions.SuggestionStripView;
 import com.android.inputmethod.latin.suggestions.SuggestionStripViewAccessor;
+import com.android.inputmethod.latin.touchinputconsumer.GestureConsumer;
 import com.android.inputmethod.latin.utils.ApplicationUtils;
-import com.android.inputmethod.latin.utils.CapsModeUtils;
-import com.android.inputmethod.latin.utils.CoordinateUtils;
-import com.android.inputmethod.latin.utils.CursorAnchorInfoUtils;
 import com.android.inputmethod.latin.utils.DialogUtils;
-import com.android.inputmethod.latin.utils.DistracterFilterCheckingExactMatchesAndSuggestions;
 import com.android.inputmethod.latin.utils.ImportantNoticeUtils;
 import com.android.inputmethod.latin.utils.IntentUtils;
 import com.android.inputmethod.latin.utils.JniUtils;
 import com.android.inputmethod.latin.utils.LeakGuardHandlerWrapper;
 import com.android.inputmethod.latin.utils.StatsUtils;
+import com.android.inputmethod.latin.utils.StatsUtilsManager;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 import com.android.inputmethod.latin.utils.ViewLayoutUtils;
 
@@ -105,6 +98,8 @@
 import java.util.Locale;
 import java.util.concurrent.TimeUnit;
 
+import javax.annotation.Nonnull;
+
 /**
  * Input method implementation for Qwerty'ish keyboard.
  */
@@ -112,17 +107,14 @@
         SuggestionStripView.Listener, SuggestionStripViewAccessor,
         DictionaryFacilitator.DictionaryInitializationListener,
         ImportantNoticeDialog.ImportantNoticeDialogListener {
-    private static final String TAG = LatinIME.class.getSimpleName();
+    static final String TAG = LatinIME.class.getSimpleName();
     private static final boolean TRACE = false;
-    private static boolean DEBUG = false;
 
     private static final int EXTENDED_TOUCHABLE_REGION_HEIGHT = 100;
-
-    private static final int PENDING_IMS_CALLBACK_DURATION = 800;
-
-    private static final int DELAY_WAIT_FOR_DICTIONARY_LOAD = 2000; // 2s
-
     private static final int PERIOD_FOR_AUDIO_AND_HAPTIC_FEEDBACK_IN_KEY_REPEAT = 2;
+    private static final int PENDING_IMS_CALLBACK_DURATION_MILLIS = 800;
+    static final long DELAY_WAIT_FOR_DICTIONARY_LOAD_MILLIS = TimeUnit.SECONDS.toMillis(2);
+    static final long DELAY_DEALLOCATE_MEMORY_MILLIS = TimeUnit.SECONDS.toMillis(10);
 
     /**
      * The name of the scheme used by the Package Manager to warn of a new package installation,
@@ -130,22 +122,11 @@
      */
     private static final String SCHEME_PACKAGE = "package";
 
-    private final Settings mSettings;
+    final Settings mSettings;
     private final DictionaryFacilitator mDictionaryFacilitator =
-            new DictionaryFacilitator(
-                    new DistracterFilterCheckingExactMatchesAndSuggestions(this /* context */));
-    // TODO: Move from LatinIME.
-    private final PersonalizationDictionaryUpdater mPersonalizationDictionaryUpdater =
-            new PersonalizationDictionaryUpdater(this /* context */, mDictionaryFacilitator);
-    private final ContextualDictionaryUpdater mContextualDictionaryUpdater =
-            new ContextualDictionaryUpdater(this /* context */, mDictionaryFacilitator,
-                    new Runnable() {
-                        @Override
-                        public void run() {
-                            mHandler.postUpdateSuggestionStrip(SuggestedWords.INPUT_STYLE_NONE);
-                        }
-                    });
-    private final InputLogic mInputLogic = new InputLogic(this /* LatinIME */,
+            DictionaryFacilitatorProvider.getDictionaryFacilitator(
+                    false /* isNeededForSpellChecking */);
+    final InputLogic mInputLogic = new InputLogic(this /* LatinIME */,
             this /* SuggestionStripViewAccessor */, mDictionaryFacilitator);
     // We expect to have only one decoder in almost all cases, hence the default capacity of 1.
     // If it turns out we need several, it will get grown seamlessly.
@@ -153,14 +134,15 @@
 
     // TODO: Move these {@link View}s to {@link KeyboardSwitcher}.
     private View mInputView;
+    private InsetsUpdater mInsetsUpdater;
     private SuggestionStripView mSuggestionStripView;
-    private TextView mExtractEditText;
 
     private RichInputMethodManager mRichImm;
     @UsedForTesting final KeyboardSwitcher mKeyboardSwitcher;
-    private final SubtypeSwitcher mSubtypeSwitcher;
     private final SubtypeState mSubtypeState = new SubtypeState();
-    private final SpecialKeyDetector mSpecialKeyDetector;
+    private final EmojiAltPhysicalKeyDetector mEmojiAltPhysicalKeyDetector =
+            new EmojiAltPhysicalKeyDetector(mInputLogic.mConnection);
+    private StatsUtilsManager mStatsUtilsManager;
     // Working variable for {@link #startShowingInputView()} and
     // {@link #onEvaluateInputViewShown()}.
     private boolean mIsExecutingStartShowingInputView;
@@ -176,6 +158,8 @@
 
     private final boolean mIsHardwareAcceleratedDrawingEnabled;
 
+    private GestureConsumer mGestureConsumer = GestureConsumer.NULL_GESTURE_CONSUMER;
+
     public final UIHandler mHandler = new UIHandler(this);
 
     public static final class UIHandler extends LeakGuardHandlerWrapper<LatinIME> {
@@ -188,20 +172,21 @@
         private static final int MSG_UPDATE_TAIL_BATCH_INPUT_COMPLETED = 6;
         private static final int MSG_RESET_CACHES = 7;
         private static final int MSG_WAIT_FOR_DICTIONARY_LOAD = 8;
+        private static final int MSG_DEALLOCATE_MEMORY = 9;
+        private static final int MSG_RESUME_SUGGESTIONS_FOR_START_INPUT = 10;
         // Update this when adding new messages
-        private static final int MSG_LAST = MSG_WAIT_FOR_DICTIONARY_LOAD;
+        private static final int MSG_LAST = MSG_RESUME_SUGGESTIONS_FOR_START_INPUT;
 
         private static final int ARG1_NOT_GESTURE_INPUT = 0;
         private static final int ARG1_DISMISS_GESTURE_FLOATING_PREVIEW_TEXT = 1;
         private static final int ARG1_SHOW_GESTURE_FLOATING_PREVIEW_TEXT = 2;
         private static final int ARG2_UNUSED = 0;
-        private static final int ARG1_FALSE = 0;
         private static final int ARG1_TRUE = 1;
 
         private int mDelayInMillisecondsToUpdateSuggestions;
         private int mDelayInMillisecondsToUpdateShiftState;
 
-        public UIHandler(final LatinIME ownerInstance) {
+        public UIHandler(@Nonnull final LatinIME ownerInstance) {
             super(ownerInstance);
         }
 
@@ -245,20 +230,26 @@
                 break;
             case MSG_RESUME_SUGGESTIONS:
                 latinIme.mInputLogic.restartSuggestionsOnWordTouchedByCursor(
-                        latinIme.mSettings.getCurrent(),
-                        msg.arg1 == ARG1_TRUE /* shouldIncludeResumedWordInSuggestions */,
+                        latinIme.mSettings.getCurrent(), false /* forStartInput */,
+                        latinIme.mKeyboardSwitcher.getCurrentKeyboardScriptId());
+                break;
+            case MSG_RESUME_SUGGESTIONS_FOR_START_INPUT:
+                latinIme.mInputLogic.restartSuggestionsOnWordTouchedByCursor(
+                        latinIme.mSettings.getCurrent(), true /* forStartInput */,
                         latinIme.mKeyboardSwitcher.getCurrentKeyboardScriptId());
                 break;
             case MSG_REOPEN_DICTIONARIES:
                 // We need to re-evaluate the currently composing word in case the script has
                 // changed.
                 postWaitForDictionaryLoad();
-                latinIme.resetSuggest();
+                latinIme.resetDictionaryFacilitatorIfNecessary();
                 break;
             case MSG_UPDATE_TAIL_BATCH_INPUT_COMPLETED:
+                final SuggestedWords suggestedWords = (SuggestedWords) msg.obj;
                 latinIme.mInputLogic.onUpdateTailBatchInputCompleted(
                         latinIme.mSettings.getCurrent(),
-                        (SuggestedWords) msg.obj, latinIme.mKeyboardSwitcher);
+                        suggestedWords, latinIme.mKeyboardSwitcher);
+                latinIme.onTailBatchInputResultShown(suggestedWords);
                 break;
             case MSG_RESET_CACHES:
                 final SettingsValues settingsValues = latinIme.mSettings.getCurrent();
@@ -275,6 +266,9 @@
             case MSG_WAIT_FOR_DICTIONARY_LOAD:
                 Log.i(TAG, "Timeout waiting for dictionary load");
                 break;
+            case MSG_DEALLOCATE_MEMORY:
+                latinIme.deallocateMemory();
+                break;
             }
         }
 
@@ -287,8 +281,8 @@
             sendMessage(obtainMessage(MSG_REOPEN_DICTIONARIES));
         }
 
-        public void postResumeSuggestions(final boolean shouldIncludeResumedWordInSuggestions,
-                final boolean shouldDelay) {
+        private void postResumeSuggestionsInternal(final boolean shouldDelay,
+                final boolean forStartInput) {
             final LatinIME latinIme = getOwnerInstance();
             if (latinIme == null) {
                 return;
@@ -297,17 +291,25 @@
                 return;
             }
             removeMessages(MSG_RESUME_SUGGESTIONS);
+            removeMessages(MSG_RESUME_SUGGESTIONS_FOR_START_INPUT);
+            final int message = forStartInput ? MSG_RESUME_SUGGESTIONS_FOR_START_INPUT
+                    : MSG_RESUME_SUGGESTIONS;
             if (shouldDelay) {
-                sendMessageDelayed(obtainMessage(MSG_RESUME_SUGGESTIONS,
-                        shouldIncludeResumedWordInSuggestions ? ARG1_TRUE : ARG1_FALSE,
-                        0 /* ignored */), mDelayInMillisecondsToUpdateSuggestions);
+                sendMessageDelayed(obtainMessage(message),
+                        mDelayInMillisecondsToUpdateSuggestions);
             } else {
-                sendMessage(obtainMessage(MSG_RESUME_SUGGESTIONS,
-                        shouldIncludeResumedWordInSuggestions ? ARG1_TRUE : ARG1_FALSE,
-                        0 /* ignored */));
+                sendMessage(obtainMessage(message));
             }
         }
 
+        public void postResumeSuggestions(final boolean shouldDelay) {
+            postResumeSuggestionsInternal(shouldDelay, false /* forStartInput */);
+        }
+
+        public void postResumeSuggestionsForStartInput(final boolean shouldDelay) {
+            postResumeSuggestionsInternal(shouldDelay, true /* forStartInput */);
+        }
+
         public void postResetCaches(final boolean tryResumeSuggestions, final int remainingTries) {
             removeMessages(MSG_RESET_CACHES);
             sendMessage(obtainMessage(MSG_RESET_CACHES, tryResumeSuggestions ? 1 : 0,
@@ -316,7 +318,7 @@
 
         public void postWaitForDictionaryLoad() {
             sendMessageDelayed(obtainMessage(MSG_WAIT_FOR_DICTIONARY_LOAD),
-                    DELAY_WAIT_FOR_DICTIONARY_LOAD);
+                    DELAY_WAIT_FOR_DICTIONARY_LOAD_MILLIS);
         }
 
         public void cancelWaitForDictionaryLoad() {
@@ -345,6 +347,19 @@
                     mDelayInMillisecondsToUpdateShiftState);
         }
 
+        public void postDeallocateMemory() {
+            sendMessageDelayed(obtainMessage(MSG_DEALLOCATE_MEMORY),
+                    DELAY_DEALLOCATE_MEMORY_MILLIS);
+        }
+
+        public void cancelDeallocateMemory() {
+            removeMessages(MSG_DEALLOCATE_MEMORY);
+        }
+
+        public boolean hasPendingDeallocateMemory() {
+            return hasMessages(MSG_DEALLOCATE_MEMORY);
+        }
+
         @UsedForTesting
         public void removeAllMessages() {
             for (int i = 0; i <= MSG_LAST; ++i) {
@@ -442,7 +457,7 @@
                     mPendingSuccessiveImsCallback = false;
                     resetPendingImsCallback();
                     sendMessageDelayed(obtainMessage(MSG_PENDING_IMS_CALLBACK),
-                            PENDING_IMS_CALLBACK_DURATION);
+                            PENDING_IMS_CALLBACK_DURATION_MILLIS);
                 }
                 final LatinIME latinIme = getOwnerInstance();
                 if (latinIme != null) {
@@ -450,6 +465,7 @@
                     latinIme.onStartInputViewInternal(editorInfo, restarting);
                     mAppliedEditorInfo = editorInfo;
                 }
+                cancelDeallocateMemory();
             }
         }
 
@@ -463,6 +479,9 @@
                     latinIme.onFinishInputViewInternal(finishingInput);
                     mAppliedEditorInfo = null;
                 }
+                if (!hasPendingDeallocateMemory()) {
+                    postDeallocateMemory();
+                }
             }
         }
 
@@ -516,9 +535,8 @@
     public LatinIME() {
         super();
         mSettings = Settings.getInstance();
-        mSubtypeSwitcher = SubtypeSwitcher.getInstance();
         mKeyboardSwitcher = KeyboardSwitcher.getInstance();
-        mSpecialKeyDetector = new SpecialKeyDetector(this);
+        mStatsUtilsManager = StatsUtilsManager.getInstance();
         mIsHardwareAcceleratedDrawingEnabled =
                 InputMethodServiceCompatUtils.enableHardwareAcceleration(this);
         Log.i(TAG, "Hardware accelerated drawing: " + mIsHardwareAcceleratedDrawingEnabled);
@@ -530,28 +548,25 @@
         DebugFlags.init(PreferenceManager.getDefaultSharedPreferences(this));
         RichInputMethodManager.init(this);
         mRichImm = RichInputMethodManager.getInstance();
-        SubtypeSwitcher.init(this);
         KeyboardSwitcher.init(this);
         AudioAndHapticFeedbackManager.init(this);
         AccessibilityUtils.init(this);
-        StatsUtils.init(this);
-
+        mStatsUtilsManager.onCreate(this /* context */, mDictionaryFacilitator);
         super.onCreate();
 
         mHandler.onCreate();
-        DEBUG = DebugFlags.DEBUG_ENABLED;
 
-        // TODO: Resolve mutual dependencies of {@link #loadSettings()} and {@link #initSuggest()}.
+        // TODO: Resolve mutual dependencies of {@link #loadSettings()} and
+        // {@link #resetDictionaryFacilitatorIfNecessary()}.
         loadSettings();
-        resetSuggest();
+        resetDictionaryFacilitatorIfNecessary();
 
-        // Register to receive ringer mode change and network state change.
-        // Also receive installation and removal of a dictionary pack.
+        // Register to receive ringer mode change.
         final IntentFilter filter = new IntentFilter();
-        filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
         filter.addAction(AudioManager.RINGER_MODE_CHANGED_ACTION);
-        registerReceiver(mConnectivityAndRingerModeChangeReceiver, filter);
+        registerReceiver(mRingerModeChangeReceiver, filter);
 
+        // Register to receive installation and removal of a dictionary pack.
         final IntentFilter packageFilter = new IntentFilter();
         packageFilter.addAction(Intent.ACTION_PACKAGE_ADDED);
         packageFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);
@@ -566,15 +581,13 @@
         dictDumpFilter.addAction(DictionaryDumpBroadcastReceiver.DICTIONARY_DUMP_INTENT_ACTION);
         registerReceiver(mDictionaryDumpBroadcastReceiver, dictDumpFilter);
 
-        DictionaryDecayBroadcastReciever.setUpIntervalAlarmForDictionaryDecaying(this);
-
-        StatsUtils.onCreate(mSettings.getCurrent());
+        StatsUtils.onCreate(mSettings.getCurrent(), mRichImm);
     }
 
     // Has to be package-visible for unit tests
     @UsedForTesting
     void loadSettings() {
-        final Locale locale = mSubtypeSwitcher.getCurrentSubtypeLocale();
+        final Locale locale = mRichImm.getCurrentSubtypeLocale();
         final EditorInfo editorInfo = getCurrentInputEditorInfo();
         final InputAttributes inputAttributes = new InputAttributes(
                 editorInfo, isFullscreenMode(), getPackageName());
@@ -585,30 +598,19 @@
         // been displayed. Opening dictionaries never affects responsivity as dictionaries are
         // asynchronously loaded.
         if (!mHandler.hasPendingReopenDictionaries()) {
-            resetSuggestForLocale(locale);
+            resetDictionaryFacilitator(locale);
         }
-        mDictionaryFacilitator.updateEnabledSubtypes(mRichImm.getMyEnabledInputMethodSubtypeList(
-                true /* allowsImplicitlySelectedSubtypes */));
         refreshPersonalizationDictionarySession(currentSettingsValues);
-        StatsUtils.onLoadSettings(currentSettingsValues);
+        resetDictionaryFacilitatorIfNecessary();
+        mStatsUtilsManager.onLoadSettings(this /* context */, currentSettingsValues);
     }
 
     private void refreshPersonalizationDictionarySession(
             final SettingsValues currentSettingsValues) {
-        mPersonalizationDictionaryUpdater.onLoadSettings(
-                currentSettingsValues.mUsePersonalizedDicts,
-                mSubtypeSwitcher.isSystemLocaleSameAsLocaleOfAllEnabledSubtypesOfEnabledImes());
-        mContextualDictionaryUpdater.onLoadSettings(currentSettingsValues.mUsePersonalizedDicts);
-        final boolean shouldKeepUserHistoryDictionaries;
-        if (currentSettingsValues.mUsePersonalizedDicts) {
-            shouldKeepUserHistoryDictionaries = true;
-        } else {
-            shouldKeepUserHistoryDictionaries = false;
-        }
-        if (!shouldKeepUserHistoryDictionaries) {
+        if (!currentSettingsValues.mUsePersonalizedDicts) {
             // Remove user history dictionaries.
             PersonalizationHelper.removeAllUserHistoryDictionaries(this);
-            mDictionaryFacilitator.clearUserHistoryDictionary();
+            mDictionaryFacilitator.clearUserHistoryDictionary(this);
         }
     }
 
@@ -621,44 +623,49 @@
         }
         if (mHandler.hasPendingWaitForDictionaryLoad()) {
             mHandler.cancelWaitForDictionaryLoad();
-            mHandler.postResumeSuggestions(true /* shouldIncludeResumedWordInSuggestions */,
-                    false /* shouldDelay */);
+            mHandler.postResumeSuggestions(false /* shouldDelay */);
         }
     }
 
-    private void resetSuggest() {
-        final Locale switcherSubtypeLocale = mSubtypeSwitcher.getCurrentSubtypeLocale();
-        final String switcherLocaleStr = switcherSubtypeLocale.toString();
+    void resetDictionaryFacilitatorIfNecessary() {
+        final Locale subtypeSwitcherLocale = mRichImm.getCurrentSubtypeLocale();
         final Locale subtypeLocale;
-        if (TextUtils.isEmpty(switcherLocaleStr)) {
+        if (subtypeSwitcherLocale == null) {
             // This happens in very rare corner cases - for example, immediately after a switch
             // to LatinIME has been requested, about a frame later another switch happens. In this
             // case, we are about to go down but we still don't know it, however the system tells
-            // us there is no current subtype so the locale is the empty string. Take the best
-            // possible guess instead -- it's bound to have no consequences, and we have no way
-            // of knowing anyway.
+            // us there is no current subtype.
             Log.e(TAG, "System is reporting no current subtype.");
             subtypeLocale = getResources().getConfiguration().locale;
         } else {
-            subtypeLocale = switcherSubtypeLocale;
+            subtypeLocale = subtypeSwitcherLocale;
         }
-        resetSuggestForLocale(subtypeLocale);
+        if (mDictionaryFacilitator.isForLocale(subtypeLocale)
+                && mDictionaryFacilitator.isForAccount(mSettings.getCurrent().mAccount)) {
+            return;
+        }
+        resetDictionaryFacilitator(subtypeLocale);
     }
 
     /**
-     * Reset suggest by loading dictionaries for the locale and the current settings values.
+     * Reset the facilitator by loading dictionaries for the given locale and
+     * the current settings values.
      *
      * @param locale the locale
      */
-    private void resetSuggestForLocale(final Locale locale) {
+    // TODO: make sure the current settings always have the right locales, and read from them.
+    private void resetDictionaryFacilitator(final Locale locale) {
         final SettingsValues settingsValues = mSettings.getCurrent();
         mDictionaryFacilitator.resetDictionaries(this /* context */, locale,
                 settingsValues.mUseContactsDict, settingsValues.mUsePersonalizedDicts,
-                false /* forceReloadMainDictionary */, this);
+                false /* forceReloadMainDictionary */,
+                settingsValues.mAccount, "" /* dictNamePrefix */,
+                this /* DictionaryInitializationListener */);
         if (settingsValues.mAutoCorrectionEnabledPerUserSettings) {
             mInputLogic.mSuggest.setAutoCorrectionThreshold(
                     settingsValues.mAutoCorrectionThreshold);
         }
+        mInputLogic.mSuggest.setPlausibilityThreshold(settingsValues.mPlausibilityThreshold);
     }
 
     /**
@@ -668,19 +675,20 @@
         final SettingsValues settingsValues = mSettings.getCurrent();
         mDictionaryFacilitator.resetDictionaries(this /* context */,
                 mDictionaryFacilitator.getLocale(), settingsValues.mUseContactsDict,
-                settingsValues.mUsePersonalizedDicts, true /* forceReloadMainDictionary */, this);
+                settingsValues.mUsePersonalizedDicts,
+                true /* forceReloadMainDictionary */,
+                settingsValues.mAccount, "" /* dictNamePrefix */,
+                this /* DictionaryInitializationListener */);
     }
 
     @Override
     public void onDestroy() {
         mDictionaryFacilitator.closeDictionaries();
-        mPersonalizationDictionaryUpdater.onDestroy();
-        mContextualDictionaryUpdater.onDestroy();
         mSettings.onDestroy();
-        unregisterReceiver(mConnectivityAndRingerModeChangeReceiver);
+        unregisterReceiver(mRingerModeChangeReceiver);
         unregisterReceiver(mDictionaryPackInstallReceiver);
         unregisterReceiver(mDictionaryDumpBroadcastReceiver);
-        StatsUtils.onDestroy();
+        mStatsUtilsManager.onDestroy(this /* context */);
         super.onDestroy();
     }
 
@@ -688,7 +696,7 @@
     public void recycle() {
         unregisterReceiver(mDictionaryPackInstallReceiver);
         unregisterReceiver(mDictionaryDumpBroadcastReceiver);
-        unregisterReceiver(mConnectivityAndRingerModeChangeReceiver);
+        unregisterReceiver(mRingerModeChangeReceiver);
         mInputLogic.recycle();
     }
 
@@ -715,15 +723,12 @@
                 cleanupInternalStateForFinishInput();
             }
         }
-        // TODO: Remove this test.
-        if (!conf.locale.equals(mPersonalizationDictionaryUpdater.getLocale())) {
-            refreshPersonalizationDictionarySession(settingsValues);
-        }
         super.onConfigurationChanged(conf);
     }
 
     @Override
     public View onCreateInputView() {
+        StatsUtils.onCreateInputView();
         return mKeyboardSwitcher.onCreateInputView(mIsHardwareAcceleratedDrawingEnabled);
     }
 
@@ -731,60 +736,17 @@
     public void setInputView(final View view) {
         super.setInputView(view);
         mInputView = view;
+        mInsetsUpdater = ViewOutlineProviderCompatUtils.setInsetsOutlineProvider(view);
+        updateSoftInputWindowLayoutParameters();
         mSuggestionStripView = (SuggestionStripView)view.findViewById(R.id.suggestion_strip_view);
         if (hasSuggestionStripView()) {
             mSuggestionStripView.setListener(this, view);
         }
-        mInputLogic.setTextDecoratorUi(new TextDecoratorUi(this, view));
-    }
-
-    @Override
-    public void setExtractView(final View view) {
-        final TextView prevExtractEditText = mExtractEditText;
-        super.setExtractView(view);
-        TextView nextExtractEditText = null;
-        if (view != null) {
-            final View extractEditText = view.findViewById(android.R.id.inputExtractEditText);
-            if (extractEditText instanceof TextView) {
-                nextExtractEditText = (TextView)extractEditText;
-            }
-        }
-        if (prevExtractEditText == nextExtractEditText) {
-            return;
-        }
-        if (ProductionFlags.ENABLE_CURSOR_ANCHOR_INFO_CALLBACK && prevExtractEditText != null) {
-            prevExtractEditText.getViewTreeObserver().removeOnPreDrawListener(
-                    mExtractTextViewPreDrawListener);
-        }
-        mExtractEditText = nextExtractEditText;
-        if (ProductionFlags.ENABLE_CURSOR_ANCHOR_INFO_CALLBACK && mExtractEditText != null) {
-            mExtractEditText.getViewTreeObserver().addOnPreDrawListener(
-                    mExtractTextViewPreDrawListener);
-        }
-    }
-
-    private final ViewTreeObserver.OnPreDrawListener mExtractTextViewPreDrawListener =
-            new ViewTreeObserver.OnPreDrawListener() {
-                @Override
-                public boolean onPreDraw() {
-                    onExtractTextViewPreDraw();
-                    return true;
-                }
-            };
-
-    private void onExtractTextViewPreDraw() {
-        if (!ProductionFlags.ENABLE_CURSOR_ANCHOR_INFO_CALLBACK || !isFullscreenMode()
-                || mExtractEditText == null) {
-            return;
-        }
-        final CursorAnchorInfo info = CursorAnchorInfoUtils.getCursorAnchorInfo(mExtractEditText);
-        mInputLogic.onUpdateCursorAnchorInfo(CursorAnchorInfoCompatWrapper.fromObject(info));
     }
 
     @Override
     public void setCandidatesView(final View view) {
         // To ensure that CandidatesView will never be set.
-        return;
     }
 
     @Override
@@ -795,11 +757,15 @@
     @Override
     public void onStartInputView(final EditorInfo editorInfo, final boolean restarting) {
         mHandler.onStartInputView(editorInfo, restarting);
+        mStatsUtilsManager.onStartInputView();
     }
 
     @Override
     public void onFinishInputView(final boolean finishingInput) {
+        StatsUtils.onFinishInputView();
         mHandler.onFinishInputView(finishingInput);
+        mStatsUtilsManager.onFinishInputView();
+        mGestureConsumer = GestureConsumer.NULL_GESTURE_CONSUMER;
     }
 
     @Override
@@ -811,20 +777,27 @@
     public void onCurrentInputMethodSubtypeChanged(final InputMethodSubtype subtype) {
         // Note that the calling sequence of onCreate() and onCurrentInputMethodSubtypeChanged()
         // is not guaranteed. It may even be called at the same time on a different thread.
-        mSubtypeSwitcher.onSubtypeChanged(subtype);
+        InputMethodSubtype oldSubtype = mRichImm.getCurrentSubtype().getRawSubtype();
+        StatsUtils.onSubtypeChanged(oldSubtype, subtype);
+        mRichImm.onSubtypeChanged(subtype);
         mInputLogic.onSubtypeChanged(SubtypeLocaleUtils.getCombiningRulesExtraValue(subtype),
                 mSettings.getCurrent());
         loadKeyboard();
     }
 
-    private void onStartInputInternal(final EditorInfo editorInfo, final boolean restarting) {
+    void onStartInputInternal(final EditorInfo editorInfo, final boolean restarting) {
         super.onStartInput(editorInfo, restarting);
     }
 
     @SuppressWarnings("deprecation")
-    private void onStartInputViewInternal(final EditorInfo editorInfo, final boolean restarting) {
+    void onStartInputViewInternal(final EditorInfo editorInfo, final boolean restarting) {
         super.onStartInputView(editorInfo, restarting);
-        mRichImm.clearSubtypeCaches();
+
+        mDictionaryFacilitator.onStartInput();
+        // Switch to the null consumer to handle cases leading to early exit below, for which we
+        // also wouldn't be consuming gesture data.
+        mGestureConsumer = GestureConsumer.NULL_GESTURE_CONSUMER;
+        mRichImm.refreshSubtypeCaches();
         final KeyboardSwitcher switcher = mKeyboardSwitcher;
         switcher.updateKeyboardTheme();
         final MainKeyboardView mainKeyboardView = switcher.getMainKeyboardView();
@@ -839,7 +812,7 @@
             }
             return;
         }
-        if (DEBUG) {
+        if (DebugFlags.DEBUG_ENABLED) {
             Log.d(TAG, "onStartInputView: editorInfo:"
                     + String.format("inputType=0x%08x imeOptions=0x%08x",
                             editorInfo.inputType, editorInfo.imeOptions));
@@ -867,6 +840,12 @@
             return;
         }
 
+        // Update to a gesture consumer with the current editor and IME state.
+        mGestureConsumer = GestureConsumer.newInstance(editorInfo,
+                mInputLogic.getPrivateCommandPerformer(),
+                mRichImm.getCurrentSubtypeLocale(),
+                switcher.getKeyboard());
+
         // Forward this event to the accessibility utilities, if enabled.
         final AccessibilityUtils accessUtils = AccessibilityUtils.getInstance();
         if (accessUtils.isTouchExplorationEnabled()) {
@@ -875,9 +854,10 @@
 
         final boolean inputTypeChanged = !currentSettingsValues.isSameInputType(editorInfo);
         final boolean isDifferentTextField = !restarting || inputTypeChanged;
-        if (isDifferentTextField) {
-            mSubtypeSwitcher.updateParametersOnStartInputView();
-        }
+
+        StatsUtils.onStartInputView(editorInfo.inputType,
+                Settings.getInstance().getCurrent().mDisplayOrientation,
+                !isDifferentTextField);
 
         // The EditorInfo might have a flag that affects fullscreen mode.
         // Note: This call should be done by InputMethodService?
@@ -897,15 +877,10 @@
             // span, so we should reset our state unconditionally, even if restarting is true.
             // We also tell the input logic about the combining rules for the current subtype, so
             // it can adjust its combiners if needed.
-            mInputLogic.startInput(mSubtypeSwitcher.getCombiningRulesExtraValueOfCurrentSubtype(),
+            mInputLogic.startInput(mRichImm.getCombiningRulesExtraValueOfCurrentSubtype(),
                     currentSettingsValues);
 
-            // Note: the following does a round-trip IPC on the main thread: be careful
-            final Locale currentLocale = mSubtypeSwitcher.getCurrentSubtypeLocale();
-            if (null != currentLocale && !currentLocale.equals(suggest.getLocale())) {
-                // TODO: Do this automatically.
-                resetSuggest();
-            }
+            resetDictionaryFacilitatorIfNecessary();
 
             // TODO[IL]: Can the following be moved to InputLogic#startInput?
             if (!mInputLogic.mConnection.resetCachesUponCursorMoveAndReturnSuccess(
@@ -919,11 +894,12 @@
                 // mLastSelection{Start,End} are reset later in this method, no need to do it here
                 needToCallLoadKeyboardLater = true;
             } else {
-                // When rotating, initialSelStart and initialSelEnd sometimes are lying. Make a best
-                // effort to work around this bug.
+                // When rotating, and when input is starting again in a field from where the focus
+                // didn't move (the keyboard having been closed with the back key),
+                // initialSelStart and initialSelEnd sometimes are lying. Make a best effort to
+                // work around this bug.
                 mInputLogic.mConnection.tryFixLyingCursorPosition();
-                mHandler.postResumeSuggestions(true /* shouldIncludeResumedWordInSuggestions */,
-                        true /* shouldDelay */);
+                mHandler.postResumeSuggestionsForStartInput(true /* shouldDelay */);
                 needToCallLoadKeyboardLater = false;
             }
         } else {
@@ -943,6 +919,7 @@
                 suggest.setAutoCorrectionThreshold(
                         currentSettingsValues.mAutoCorrectionThreshold);
             }
+            suggest.setPlausibilityThreshold(currentSettingsValues.mPlausibilityThreshold);
 
             switcher.loadKeyboard(editorInfo, currentSettingsValues, getCurrentAutoCapsState(),
                     getCurrentRecapitalizeState());
@@ -970,7 +947,7 @@
         mHandler.cancelUpdateSuggestionStrip();
 
         mainKeyboardView.setMainDictionaryAvailability(
-                mDictionaryFacilitator.hasInitializedMainDictionary());
+                mDictionaryFacilitator.hasAtLeastOneInitializedMainDictionary());
         mainKeyboardView.setKeyPreviewPopupEnabled(currentSettingsValues.mKeyPreviewPopupOn,
                 currentSettingsValues.mKeyPreviewPopupDismissDelay);
         mainKeyboardView.setSlidingKeyInputPreviewEnabled(
@@ -980,8 +957,6 @@
                 currentSettingsValues.mGestureTrailEnabled,
                 currentSettingsValues.mGestureFloatingPreviewTextEnabled);
 
-        // Contextual dictionary should be updated for the current application.
-        mContextualDictionaryUpdater.onStartInputView(editorInfo.packageName);
         if (TRACE) Debug.startMethodTracing("/data/trace/latinime");
     }
 
@@ -994,45 +969,50 @@
         }
     }
 
-    private void onFinishInputInternal() {
+    void onFinishInputInternal() {
         super.onFinishInput();
 
+        mDictionaryFacilitator.onFinishInput();
         final MainKeyboardView mainKeyboardView = mKeyboardSwitcher.getMainKeyboardView();
         if (mainKeyboardView != null) {
             mainKeyboardView.closing();
         }
     }
 
-    private void onFinishInputViewInternal(final boolean finishingInput) {
+    void onFinishInputViewInternal(final boolean finishingInput) {
         super.onFinishInputView(finishingInput);
         cleanupInternalStateForFinishInput();
     }
 
     private void cleanupInternalStateForFinishInput() {
-        mKeyboardSwitcher.deallocateMemory();
         // Remove pending messages related to update suggestions
         mHandler.cancelUpdateSuggestionStrip();
         // Should do the following in onFinishInputInternal but until JB MR2 it's not called :(
         mInputLogic.finishInput();
     }
 
+    protected void deallocateMemory() {
+        mKeyboardSwitcher.deallocateMemory();
+    }
+
     @Override
     public void onUpdateSelection(final int oldSelStart, final int oldSelEnd,
             final int newSelStart, final int newSelEnd,
             final int composingSpanStart, final int composingSpanEnd) {
         super.onUpdateSelection(oldSelStart, oldSelEnd, newSelStart, newSelEnd,
                 composingSpanStart, composingSpanEnd);
-        if (DEBUG) {
+        if (DebugFlags.DEBUG_ENABLED) {
             Log.i(TAG, "onUpdateSelection: oss=" + oldSelStart + ", ose=" + oldSelEnd
                     + ", nss=" + newSelStart + ", nse=" + newSelEnd
                     + ", cs=" + composingSpanStart + ", ce=" + composingSpanEnd);
         }
 
-        // This call happens when we have a hardware keyboard as well as when we don't. While we
-        // don't support hardware keyboards yet we should avoid doing the processing associated
-        // with cursor movement when we have a hardware keyboard since we are not in charge.
+        // This call happens whether our view is displayed or not, but if it's not then we should
+        // not attempt recorrection. This is true even with a hardware keyboard connected: if the
+        // view is not displayed we have no means of showing suggestions anyway, and if it is then
+        // we want to show suggestions anyway.
         final SettingsValues settingsValues = mSettings.getCurrent();
-        if ((!settingsValues.mHasHardwareKeyboard || ProductionFlags.IS_HARDWARE_KEYBOARD_SUPPORTED)
+        if (isInputViewShown()
                 && mInputLogic.onUpdateSelection(oldSelStart, oldSelEnd, newSelStart, newSelEnd,
                         settingsValues)) {
             mKeyboardSwitcher.requestUpdatingShiftState(getCurrentAutoCapsState(),
@@ -1040,15 +1020,6 @@
         }
     }
 
-    // We cannot mark this method as @Override until new SDK becomes publicly available.
-    // @Override
-    public void onUpdateCursorAnchorInfo(final CursorAnchorInfo info) {
-        if (!ProductionFlags.ENABLE_CURSOR_ANCHOR_INFO_CALLBACK || isFullscreenMode()) {
-            return;
-        }
-        mInputLogic.onUpdateCursorAnchorInfo(CursorAnchorInfoCompatWrapper.fromObject(info));
-    }
-
     /**
      * This is called when the user has clicked on the extracted text view,
      * when running in fullscreen mode.  The default implementation hides
@@ -1098,7 +1069,7 @@
 
     @Override
     public void onDisplayCompletions(final CompletionInfo[] applicationSpecifiedCompletions) {
-        if (DEBUG) {
+        if (DebugFlags.DEBUG_ENABLED) {
             Log.i(TAG, "Received completions:");
             if (applicationSpecifiedCompletions != null) {
                 for (int i = 0; i < applicationSpecifiedCompletions.length; i++) {
@@ -1121,9 +1092,13 @@
                 SuggestedWords.getFromApplicationSpecifiedCompletions(
                         applicationSpecifiedCompletions);
         final SuggestedWords suggestedWords = new SuggestedWords(applicationSuggestedWords,
-                null /* rawSuggestions */, false /* typedWordValid */, false /* willAutoCorrect */,
+                null /* rawSuggestions */,
+                null /* typedWord */,
+                false /* typedWordValid */,
+                false /* willAutoCorrect */,
                 false /* isObsoleteSuggestions */,
-                SuggestedWords.INPUT_STYLE_APPLICATION_SPECIFIED /* inputStyle */);
+                SuggestedWords.INPUT_STYLE_APPLICATION_SPECIFIED /* inputStyle */,
+                SuggestedWords.NOT_A_SEQUENCE_NUMBER);
         // When in fullscreen mode, show completions generated by the application forcibly
         setSuggestedWords(suggestedWords);
     }
@@ -1131,6 +1106,10 @@
     @Override
     public void onComputeInsets(final InputMethodService.Insets outInsets) {
         super.onComputeInsets(outInsets);
+        // This method may be called before {@link #setInputView(View)}.
+        if (mInputView == null) {
+            return;
+        }
         final SettingsValues settingsValues = mSettings.getCurrent();
         final View visibleKeyboardView = mKeyboardSwitcher.getVisibleKeyboardView();
         if (visibleKeyboardView == null || !hasSuggestionStripView()) {
@@ -1141,8 +1120,9 @@
         if (hasHardwareKeyboard && visibleKeyboardView.getVisibility() == View.GONE) {
             // If there is a hardware keyboard and a visible software keyboard view has been hidden,
             // no visual element will be shown on the screen.
-            outInsets.touchableInsets = inputHeight;
+            outInsets.contentTopInsets = inputHeight;
             outInsets.visibleTopInsets = inputHeight;
+            mInsetsUpdater.setInsets(outInsets);
             return;
         }
         final int suggestionsHeight = (!mKeyboardSwitcher.isShowingEmojiPalettes()
@@ -1150,7 +1130,7 @@
                 ? mSuggestionStripView.getHeight() : 0;
         final int visibleTopY = inputHeight - visibleKeyboardView.getHeight() - suggestionsHeight;
         mSuggestionStripView.setMoreSuggestionsHeight(visibleTopY);
-        // Need to set touchable region only if a keyboard view is being shown.
+        // Need to set expanded touchable region only if a keyboard view is being shown.
         if (visibleKeyboardView.isShown()) {
             final int touchLeft = 0;
             final int touchTop = mKeyboardSwitcher.isShowingMoreKeysPanel() ? 0 : visibleTopY;
@@ -1163,14 +1143,18 @@
         }
         outInsets.contentTopInsets = visibleTopY;
         outInsets.visibleTopInsets = visibleTopY;
+        mInsetsUpdater.setInsets(outInsets);
     }
 
-    public void startShowingInputView() {
+    public void startShowingInputView(final boolean needsToLoadKeyboard) {
         mIsExecutingStartShowingInputView = true;
         // This {@link #showWindow(boolean)} will eventually call back
         // {@link #onEvaluateInputViewShown()}.
         showWindow(true /* showInput */);
         mIsExecutingStartShowingInputView = false;
+        if (needsToLoadKeyboard) {
+            loadKeyboard();
+        }
     }
 
     public void stopShowingInputView() {
@@ -1178,6 +1162,14 @@
     }
 
     @Override
+    public boolean onShowInputRequested(final int flags, final boolean configChange) {
+        if (Settings.getInstance().getCurrent().mHasHardwareKeyboard) {
+            return true;
+        }
+        return super.onShowInputRequested(flags, configChange);
+    }
+
+    @Override
     public boolean onEvaluateInputViewShown() {
         if (mIsExecutingStartShowingInputView) {
             return true;
@@ -1207,8 +1199,13 @@
 
     @Override
     public void updateFullscreenMode() {
+        super.updateFullscreenMode();
+        updateSoftInputWindowLayoutParameters();
+    }
+
+    private void updateSoftInputWindowLayoutParameters() {
         // Override layout parameters to expand {@link SoftInputWindow} to the entire screen.
-        // See {@link InputMethodService#setinputView(View) and
+        // See {@link InputMethodService#setinputView(View)} and
         // {@link SoftInputWindow#updateWidthHeight(WindowManager.LayoutParams)}.
         final Window window = getWindow().getWindow();
         ViewLayoutUtils.updateLayoutHeightOf(window, LayoutParams.MATCH_PARENT);
@@ -1227,22 +1224,16 @@
             ViewLayoutUtils.updateLayoutGravityOf(inputArea, Gravity.BOTTOM);
             ViewLayoutUtils.updateLayoutHeightOf(mInputView, layoutHeight);
         }
-        super.updateFullscreenMode();
-        mInputLogic.onUpdateFullscreenMode(isFullscreenMode());
     }
 
-    private int getCurrentAutoCapsState() {
+    int getCurrentAutoCapsState() {
         return mInputLogic.getCurrentAutoCapsState(mSettings.getCurrent());
     }
 
-    private int getCurrentRecapitalizeState() {
+    int getCurrentRecapitalizeState() {
         return mInputLogic.getCurrentRecapitalizeState();
     }
 
-    public Locale getCurrentSubtypeLocale() {
-        return mSubtypeSwitcher.getCurrentSubtypeLocale();
-    }
-
     /**
      * @param codePoints code points to get coordinates for.
      * @return x,y coordinates for this keyboard, as a flattened array.
@@ -1256,24 +1247,6 @@
         return keyboard.getCoordinates(codePoints);
     }
 
-    // Callback for the {@link SuggestionStripView}, to call when the "add to dictionary" hint is
-    // pressed.
-    @Override
-    public void addWordToUserDictionary(final String word) {
-        if (TextUtils.isEmpty(word)) {
-            // Probably never supposed to happen, but just in case.
-            return;
-        }
-        final String wordToEdit;
-        if (CapsModeUtils.isAutoCapsMode(mInputLogic.mLastComposedWord.mCapitalizedMode)) {
-            wordToEdit = word.toLowerCase(getCurrentSubtypeLocale());
-        } else {
-            wordToEdit = word;
-        }
-        mDictionaryFacilitator.addWordToUserDictionary(this /* context */, wordToEdit);
-        mInputLogic.onAddWordToUserDictionary();
-    }
-
     // Callback for the {@link SuggestionStripView}, to call when the important notice strip is
     // pressed.
     @Override
@@ -1284,7 +1257,7 @@
     // Implement {@link ImportantNoticeDialog.ImportantNoticeDialogListener}
     @Override
     public void onClickSettingsOfImportantNoticeDialog(final int nextVersion) {
-        launchSettings();
+        launchSettings(SettingsActivity.EXTRA_ENTRY_VALUE_NOTICE_DIALOG);
     }
 
     // Implement {@link ImportantNoticeDialog.ImportantNoticeDialogListener}
@@ -1328,48 +1301,56 @@
         mSubtypeState.switchSubtype(token, mRichImm);
     }
 
+    // TODO: Instead of checking for alphabetic keyboard here, separate keycodes for
+    // alphabetic shift and shift while in symbol layout and get rid of this method.
+    private int getCodePointForKeyboard(final int codePoint) {
+        if (Constants.CODE_SHIFT == codePoint) {
+            final Keyboard currentKeyboard = mKeyboardSwitcher.getKeyboard();
+            if (null != currentKeyboard && currentKeyboard.mId.isAlphabetKeyboard()) {
+                return codePoint;
+            }
+            return Constants.CODE_SYMBOL_SHIFT;
+        }
+        return codePoint;
+    }
+
     // Implementation of {@link KeyboardActionListener}.
     @Override
     public void onCodeInput(final int codePoint, final int x, final int y,
             final boolean isKeyRepeat) {
+        // TODO: this processing does not belong inside LatinIME, the caller should be doing this.
         final MainKeyboardView mainKeyboardView = mKeyboardSwitcher.getMainKeyboardView();
         // x and y include some padding, but everything down the line (especially native
         // code) needs the coordinates in the keyboard frame.
         // TODO: We should reconsider which coordinate system should be used to represent
         // keyboard event. Also we should pull this up -- LatinIME has no business doing
-        // this transformation, it should be done already before calling onCodeInput.
+        // this transformation, it should be done already before calling onEvent.
         final int keyX = mainKeyboardView.getKeyX(x);
         final int keyY = mainKeyboardView.getKeyY(y);
-        final int codeToSend;
-        if (Constants.CODE_SHIFT == codePoint) {
-            // TODO: Instead of checking for alphabetic keyboard here, separate keycodes for
-            // alphabetic shift and shift while in symbol layout.
-            final Keyboard currentKeyboard = mKeyboardSwitcher.getKeyboard();
-            if (null != currentKeyboard && currentKeyboard.mId.isAlphabetKeyboard()) {
-                codeToSend = codePoint;
-            } else {
-                codeToSend = Constants.CODE_SYMBOL_SHIFT;
-            }
-        } else {
-            codeToSend = codePoint;
+        final Event event = createSoftwareKeypressEvent(getCodePointForKeyboard(codePoint),
+                keyX, keyY, isKeyRepeat);
+        onEvent(event);
+    }
+
+    // This method is public for testability of LatinIME, but also in the future it should
+    // completely replace #onCodeInput.
+    public void onEvent(@Nonnull final Event event) {
+        if (Constants.CODE_SHORTCUT == event.mKeyCode) {
+            mRichImm.switchToShortcutIme(this);
         }
-        if (Constants.CODE_SHORTCUT == codePoint) {
-            mSubtypeSwitcher.switchToShortcutIME(this);
-            // Still call the *#onCodeInput methods for readability.
-        }
-        final Event event = createSoftwareKeypressEvent(codeToSend, keyX, keyY, isKeyRepeat);
         final InputTransaction completeInputTransaction =
                 mInputLogic.onCodeInput(mSettings.getCurrent(), event,
                         mKeyboardSwitcher.getKeyboardShiftMode(),
                         mKeyboardSwitcher.getCurrentKeyboardScriptId(), mHandler);
         updateStateAfterInputTransaction(completeInputTransaction);
-        mKeyboardSwitcher.onCodeInput(codePoint, getCurrentAutoCapsState(),
-                getCurrentRecapitalizeState());
+        mKeyboardSwitcher.onEvent(event, getCurrentAutoCapsState(), getCurrentRecapitalizeState());
     }
 
     // A helper method to split the code point and the key code. Ultimately, they should not be
     // squashed into the same variable, and this method should be removed.
-    private static Event createSoftwareKeypressEvent(final int keyCodeOrCodePoint, final int keyX,
+    // public for testing, as we don't want to copy the same logic into test code
+    @Nonnull
+    public static Event createSoftwareKeypressEvent(final int keyCodeOrCodePoint, final int keyX,
              final int keyY, final boolean isKeyRepeat) {
         final int keyCode;
         final int codePoint;
@@ -1387,44 +1368,59 @@
     @Override
     public void onTextInput(final String rawText) {
         // TODO: have the keyboard pass the correct key code when we need it.
-        final Event event = Event.createSoftwareTextEvent(rawText, Event.NOT_A_KEY_CODE);
+        final Event event = Event.createSoftwareTextEvent(rawText, Constants.CODE_OUTPUT_TEXT);
         final InputTransaction completeInputTransaction =
                 mInputLogic.onTextInput(mSettings.getCurrent(), event,
                         mKeyboardSwitcher.getKeyboardShiftMode(), mHandler);
         updateStateAfterInputTransaction(completeInputTransaction);
-        mKeyboardSwitcher.onCodeInput(Constants.CODE_OUTPUT_TEXT, getCurrentAutoCapsState(),
-                getCurrentRecapitalizeState());
+        mKeyboardSwitcher.onEvent(event, getCurrentAutoCapsState(), getCurrentRecapitalizeState());
     }
 
     @Override
     public void onStartBatchInput() {
         mInputLogic.onStartBatchInput(mSettings.getCurrent(), mKeyboardSwitcher, mHandler);
+        mGestureConsumer.onGestureStarted(
+                mRichImm.getCurrentSubtypeLocale(),
+                mKeyboardSwitcher.getKeyboard());
     }
 
     @Override
     public void onUpdateBatchInput(final InputPointers batchPointers) {
-        mInputLogic.onUpdateBatchInput(mSettings.getCurrent(), batchPointers, mKeyboardSwitcher);
+        mInputLogic.onUpdateBatchInput(batchPointers);
     }
 
     @Override
     public void onEndBatchInput(final InputPointers batchPointers) {
         mInputLogic.onEndBatchInput(batchPointers);
+        mGestureConsumer.onGestureCompleted(batchPointers);
     }
 
     @Override
     public void onCancelBatchInput() {
         mInputLogic.onCancelBatchInput(mHandler);
+        mGestureConsumer.onGestureCanceled();
+    }
+
+    /**
+     * To be called after the InputLogic has gotten a chance to act on the suggested words by the
+     * IME for the full gesture, possibly updating the TextView to reflect the first suggestion.
+     * <p>
+     * This method must be run on the UI Thread.
+     * @param suggestedWords suggested words by the IME for the full gesture.
+     */
+    public void onTailBatchInputResultShown(final SuggestedWords suggestedWords) {
+        mGestureConsumer.onImeSuggestionsProcessed(suggestedWords,
+                mInputLogic.getComposingStart(), mInputLogic.getComposingLength(),
+                mDictionaryFacilitator);
     }
 
     // This method must run on the UI Thread.
-    private void showGesturePreviewAndSuggestionStrip(final SuggestedWords suggestedWords,
+    void showGesturePreviewAndSuggestionStrip(@Nonnull final SuggestedWords suggestedWords,
             final boolean dismissGestureFloatingPreviewText) {
         showSuggestionStrip(suggestedWords);
         final MainKeyboardView mainKeyboardView = mKeyboardSwitcher.getMainKeyboardView();
-        mainKeyboardView.showGestureFloatingPreviewText(suggestedWords);
-        if (dismissGestureFloatingPreviewText) {
-            mainKeyboardView.dismissGestureFloatingPreviewText();
-        }
+        mainKeyboardView.showGestureFloatingPreviewText(suggestedWords,
+                dismissGestureFloatingPreviewText /* dismissDelayed */);
     }
 
     // Called from PointerTracker through the KeyboardActionListener interface
@@ -1446,22 +1442,9 @@
         return null != mSuggestionStripView;
     }
 
-    @Override
-    public boolean isShowingAddToDictionaryHint() {
-        return hasSuggestionStripView() && mSuggestionStripView.isShowingAddToDictionaryHint();
-    }
-
-    @Override
-    public void dismissAddToDictionaryHint() {
-        if (!hasSuggestionStripView()) {
-            return;
-        }
-        mSuggestionStripView.dismissAddToDictionaryHint();
-    }
-
     private void setSuggestedWords(final SuggestedWords suggestedWords) {
         final SettingsValues currentSettingsValues = mSettings.getCurrent();
-        mInputLogic.setSuggestedWords(suggestedWords, currentSettingsValues, mHandler);
+        mInputLogic.setSuggestedWords(suggestedWords);
         // TODO: Modify this when we support suggestions with hard keyboard
         if (!hasSuggestionStripView()) {
             return;
@@ -1471,7 +1454,7 @@
         }
 
         final boolean shouldShowImportantNotice =
-                ImportantNoticeUtils.shouldShowImportantNotice(this);
+                ImportantNoticeUtils.shouldShowImportantNotice(this, currentSettingsValues);
         final boolean shouldShowSuggestionCandidates =
                 currentSettingsValues.mInputAttributes.mShouldShowSuggestions
                 && currentSettingsValues.isSuggestionsEnabledPerUserSettings();
@@ -1489,7 +1472,7 @@
         final boolean isEmptyApplicationSpecifiedCompletions =
                 currentSettingsValues.isApplicationSpecifiedCompletionsOn()
                 && suggestedWords.isEmpty();
-        final boolean noSuggestionsFromDictionaries = (SuggestedWords.EMPTY == suggestedWords)
+        final boolean noSuggestionsFromDictionaries = suggestedWords.isEmpty()
                 || suggestedWords.isPunctuationSuggestions()
                 || isEmptyApplicationSpecifiedCompletions;
         final boolean isBeginningOfSentencePrediction = (suggestedWords.mInputStyle
@@ -1507,7 +1490,7 @@
                 // We should clear the contextual strip if there is no suggestion from dictionaries.
                 || noSuggestionsFromDictionaries) {
             mSuggestionStripView.setSuggestions(suggestedWords,
-                    SubtypeLocaleUtils.isRtlLanguage(mSubtypeSwitcher.getCurrentSubtype()));
+                    mRichImm.getCurrentSubtype().isRtlSubtype());
         }
     }
 
@@ -1516,26 +1499,23 @@
             final OnGetSuggestedWordsCallback callback) {
         final Keyboard keyboard = mKeyboardSwitcher.getKeyboard();
         if (keyboard == null) {
-            callback.onGetSuggestedWords(SuggestedWords.EMPTY);
+            callback.onGetSuggestedWords(SuggestedWords.getEmptyInstance());
             return;
         }
-        mInputLogic.getSuggestedWords(mSettings.getCurrent(), keyboard.getProximityInfo(),
+        mInputLogic.getSuggestedWords(mSettings.getCurrent(), keyboard,
                 mKeyboardSwitcher.getKeyboardShiftMode(), inputStyle, sequenceNumber, callback);
     }
 
     @Override
-    public void showSuggestionStrip(final SuggestedWords sourceSuggestedWords) {
-        final SuggestedWords suggestedWords =
-                sourceSuggestedWords.isEmpty() ? SuggestedWords.EMPTY : sourceSuggestedWords;
-        if (SuggestedWords.EMPTY == suggestedWords) {
+    public void showSuggestionStrip(final SuggestedWords suggestedWords) {
+        if (suggestedWords.isEmpty()) {
             setNeutralSuggestionStrip();
         } else {
             setSuggestedWords(suggestedWords);
         }
         // Cache the auto-correction in accessibility code so we can speak it if the user
         // touches a key that will insert it.
-        AccessibilityUtils.getInstance().setAutoCorrection(suggestedWords,
-                sourceSuggestedWords.mTypedWord);
+        AccessibilityUtils.getInstance().setAutoCorrection(suggestedWords);
     }
 
     // Called from {@link SuggestionStripView} through the {@link SuggestionStripView#Listener}
@@ -1550,25 +1530,17 @@
         updateStateAfterInputTransaction(completeInputTransaction);
     }
 
-    @Override
-    public void showAddToDictionaryHint(final String word) {
-        if (!hasSuggestionStripView()) {
-            return;
-        }
-        mSuggestionStripView.showAddToDictionaryHint(word);
-    }
-
     // This will show either an empty suggestion strip (if prediction is enabled) or
     // punctuation suggestions (if it's disabled).
     @Override
     public void setNeutralSuggestionStrip() {
         final SettingsValues currentSettings = mSettings.getCurrent();
         final SuggestedWords neutralSuggestions = currentSettings.mBigramPredictionEnabled
-                ? SuggestedWords.EMPTY : currentSettings.mSpacingAndPunctuations.mSuggestPuncList;
+                ? SuggestedWords.getEmptyInstance()
+                : currentSettings.mSpacingAndPunctuations.mSuggestPuncList;
         setSuggestedWords(neutralSuggestions);
     }
 
-    // TODO: Make this private
     // Outside LatinIME, only used by the {@link InputTestsBase} test suite.
     @UsedForTesting
     void loadKeyboard() {
@@ -1676,7 +1648,8 @@
     // Hooks for hardware keyboard
     @Override
     public boolean onKeyDown(final int keyCode, final KeyEvent keyEvent) {
-        mSpecialKeyDetector.onKeyDown(keyEvent);
+        // TODO: This should be processed in {@link InputLogic}.
+        mEmojiAltPhysicalKeyDetector.onKeyDown(keyEvent);
         if (!ProductionFlags.IS_HARDWARE_KEYBOARD_SUPPORTED) {
             return super.onKeyDown(keyCode, keyEvent);
         }
@@ -1697,7 +1670,8 @@
 
     @Override
     public boolean onKeyUp(final int keyCode, final KeyEvent keyEvent) {
-        mSpecialKeyDetector.onKeyUp(keyEvent);
+        // TODO: This should be processed in {@link InputLogic}.
+        mEmojiAltPhysicalKeyDetector.onKeyUp(keyEvent);
         if (!ProductionFlags.IS_HARDWARE_KEYBOARD_SUPPORTED) {
             return super.onKeyUp(keyCode, keyEvent);
         }
@@ -1713,21 +1687,18 @@
     // boolean onKeyLongPress(final int keyCode, final KeyEvent event);
     // boolean onKeyMultiple(final int keyCode, final int count, final KeyEvent event);
 
-    // receive ringer mode change and network state change.
-    private final BroadcastReceiver mConnectivityAndRingerModeChangeReceiver =
-            new BroadcastReceiver() {
+    // receive ringer mode change.
+    private final BroadcastReceiver mRingerModeChangeReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(final Context context, final Intent intent) {
             final String action = intent.getAction();
-            if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
-                mSubtypeSwitcher.onNetworkStateChanged(intent);
-            } else if (action.equals(AudioManager.RINGER_MODE_CHANGED_ACTION)) {
+            if (action.equals(AudioManager.RINGER_MODE_CHANGED_ACTION)) {
                 AudioAndHapticFeedbackManager.getInstance().onRingerModeChanged();
             }
         }
     };
 
-    private void launchSettings() {
+    void launchSettings(final String extraEntryValue) {
         mInputLogic.commitTyped(mSettings.getCurrent(), LastComposedWord.NOT_A_SEPARATOR);
         requestHideSelf(0);
         final MainKeyboardView mainKeyboardView = mKeyboardSwitcher.getMainKeyboardView();
@@ -1740,6 +1711,7 @@
                 | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
                 | Intent.FLAG_ACTIVITY_CLEAR_TOP);
         intent.putExtra(SettingsActivity.EXTRA_SHOW_HOME_AS_UP, false);
+        intent.putExtra(SettingsActivity.EXTRA_ENTRY_KEY, extraEntryValue);
         startActivity(intent);
     }
 
@@ -1751,6 +1723,7 @@
                 languageSelectionTitle,
                 getString(ApplicationUtils.getActivityTitleResId(this, SettingsActivity.class))
         };
+        final String imeId = mRichImm.getInputMethodIdOfThisIme();
         final OnClickListener listener = new OnClickListener() {
             @Override
             public void onClick(DialogInterface di, int position) {
@@ -1758,7 +1731,7 @@
                 switch (position) {
                 case 0:
                     final Intent intent = IntentUtils.getInputLanguageSelectionIntent(
-                            mRichImm.getInputMethodIdOfThisIme(),
+                            imeId,
                             Intent.FLAG_ACTIVITY_NEW_TASK
                                     | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
                                     | Intent.FLAG_ACTIVITY_CLEAR_TOP);
@@ -1766,7 +1739,7 @@
                     startActivity(intent);
                     break;
                 case 1:
-                    launchSettings();
+                    launchSettings(SettingsActivity.EXTRA_ENTRY_VALUE_LONG_PRESS_COMMA);
                     break;
                 }
             }
@@ -1798,45 +1771,45 @@
         dialog.show();
     }
 
-    // TODO: can this be removed somehow without breaking the tests?
     @UsedForTesting
-    /* package for test */ SuggestedWords getSuggestedWordsForTest() {
+    SuggestedWords getSuggestedWordsForTest() {
         // You may not use this method for anything else than debug
-        return DEBUG ? mInputLogic.mSuggestedWords : null;
+        return DebugFlags.DEBUG_ENABLED ? mInputLogic.mSuggestedWords : null;
     }
 
     // DO NOT USE THIS for any other purpose than testing. This is information private to LatinIME.
     @UsedForTesting
-    /* package for test */ void waitForLoadingDictionaries(final long timeout, final TimeUnit unit)
+    void waitForLoadingDictionaries(final long timeout, final TimeUnit unit)
             throws InterruptedException {
         mDictionaryFacilitator.waitForLoadingDictionariesForTesting(timeout, unit);
     }
 
     // DO NOT USE THIS for any other purpose than testing. This can break the keyboard badly.
     @UsedForTesting
-    /* package for test */ void replaceDictionariesForTest(final Locale locale) {
+    void replaceDictionariesForTest(final Locale locale) {
         final SettingsValues settingsValues = mSettings.getCurrent();
         mDictionaryFacilitator.resetDictionaries(this, locale,
             settingsValues.mUseContactsDict, settingsValues.mUsePersonalizedDicts,
-            false /* forceReloadMainDictionary */, this /* listener */);
+            false /* forceReloadMainDictionary */,
+            settingsValues.mAccount, "", /* dictionaryNamePrefix */
+            this /* DictionaryInitializationListener */);
     }
 
     // DO NOT USE THIS for any other purpose than testing.
     @UsedForTesting
-    /* package for test */ void clearPersonalizedDictionariesForTest() {
-        mDictionaryFacilitator.clearUserHistoryDictionary();
-        mDictionaryFacilitator.clearPersonalizationDictionary();
+    void clearPersonalizedDictionariesForTest() {
+        mDictionaryFacilitator.clearUserHistoryDictionary(this);
     }
 
     @UsedForTesting
-    /* package for test */ List<InputMethodSubtype> getEnabledSubtypesForTest() {
+    List<InputMethodSubtype> getEnabledSubtypesForTest() {
         return (mRichImm != null) ? mRichImm.getMyEnabledInputMethodSubtypeList(
                 true /* allowsImplicitlySelectedSubtypes */) : new ArrayList<InputMethodSubtype>();
     }
 
     public void dumpDictionaryForDebug(final String dictName) {
-        if (mDictionaryFacilitator.getLocale() == null) {
-            resetSuggest();
+        if (!mDictionaryFacilitator.isActive()) {
+            resetDictionaryFacilitatorIfNecessary();
         }
         mDictionaryFacilitator.dumpDictionaryForDebug(dictName);
     }
@@ -1862,6 +1835,7 @@
         p.println("  Keyboard mode = " + keyboardMode);
         final SettingsValues settingsValues = mSettings.getCurrent();
         p.println(settingsValues.dump());
+        p.println(mDictionaryFacilitator.dump(this /* context */));
         // TODO: Dump all settings values
     }
 
diff --git a/java/src/com/android/inputmethod/latin/NgramContext.java b/java/src/com/android/inputmethod/latin/NgramContext.java
new file mode 100644
index 0000000..9682fb8
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/NgramContext.java
@@ -0,0 +1,291 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin;
+
+import android.text.TextUtils;
+
+import com.android.inputmethod.annotations.UsedForTesting;
+import com.android.inputmethod.latin.common.StringUtils;
+import com.android.inputmethod.latin.define.DecoderSpecificConstants;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+
+import javax.annotation.Nonnull;
+
+/**
+ * Class to represent information of previous words. This class is used to add n-gram entries
+ * into binary dictionaries, to get predictions, and to get suggestions.
+ */
+public class NgramContext {
+    @Nonnull
+    public static final NgramContext EMPTY_PREV_WORDS_INFO =
+            new NgramContext(WordInfo.EMPTY_WORD_INFO);
+    @Nonnull
+    public static final NgramContext BEGINNING_OF_SENTENCE =
+            new NgramContext(WordInfo.BEGINNING_OF_SENTENCE_WORD_INFO);
+
+    public static final String BEGINNING_OF_SENTENCE_TAG = "<S>";
+
+    public static final String CONTEXT_SEPARATOR = " ";
+
+    public static NgramContext getEmptyPrevWordsContext(int maxPrevWordCount) {
+        return new NgramContext(maxPrevWordCount, WordInfo.EMPTY_WORD_INFO);
+    }
+
+    /**
+     * Word information used to represent previous words information.
+     */
+    public static class WordInfo {
+        @Nonnull
+        public static final WordInfo EMPTY_WORD_INFO = new WordInfo(null);
+        @Nonnull
+        public static final WordInfo BEGINNING_OF_SENTENCE_WORD_INFO = new WordInfo();
+
+        // This is an empty char sequence when mIsBeginningOfSentence is true.
+        public final CharSequence mWord;
+        // TODO: Have sentence separator.
+        // Whether the current context is beginning of sentence or not. This is true when composing
+        // at the beginning of an input field or composing a word after a sentence separator.
+        public final boolean mIsBeginningOfSentence;
+
+        // Beginning of sentence.
+        private WordInfo() {
+            mWord = "";
+            mIsBeginningOfSentence = true;
+        }
+
+        public WordInfo(final CharSequence word) {
+            mWord = word;
+            mIsBeginningOfSentence = false;
+        }
+
+        public boolean isValid() {
+            return mWord != null;
+        }
+
+        @Override
+        public int hashCode() {
+            return Arrays.hashCode(new Object[] { mWord, mIsBeginningOfSentence } );
+        }
+
+        @Override
+        public boolean equals(Object o) {
+            if (this == o) return true;
+            if (!(o instanceof WordInfo)) return false;
+            final WordInfo wordInfo = (WordInfo)o;
+            if (mWord == null || wordInfo.mWord == null) {
+                return mWord == wordInfo.mWord
+                        && mIsBeginningOfSentence == wordInfo.mIsBeginningOfSentence;
+            }
+            return TextUtils.equals(mWord, wordInfo.mWord)
+                    && mIsBeginningOfSentence == wordInfo.mIsBeginningOfSentence;
+        }
+    }
+
+    // The words immediately before the considered word. EMPTY_WORD_INFO element means we don't
+    // have any context for that previous word including the "beginning of sentence context" - we
+    // just don't know what to predict using the information. An example of that is after a comma.
+    // For simplicity of implementation, elements may also be EMPTY_WORD_INFO transiently after the
+    // WordComposer was reset and before starting a new composing word, but we should never be
+    // calling getSuggetions* in this situation.
+    private final WordInfo[] mPrevWordsInfo;
+    private final int mPrevWordsCount;
+
+    private final int mMaxPrevWordCount;
+
+    // Construct from the previous word information.
+    public NgramContext(final WordInfo... prevWordsInfo) {
+        this(DecoderSpecificConstants.MAX_PREV_WORD_COUNT_FOR_N_GRAM, prevWordsInfo);
+    }
+
+    public NgramContext(final int maxPrevWordCount, final WordInfo... prevWordsInfo) {
+        mPrevWordsInfo = prevWordsInfo;
+        mPrevWordsCount = prevWordsInfo.length;
+        mMaxPrevWordCount = maxPrevWordCount;
+    }
+
+    /**
+     * Create next prevWordsInfo using current prevWordsInfo.
+     */
+    @Nonnull
+    public NgramContext getNextNgramContext(final WordInfo wordInfo) {
+        final int nextPrevWordCount = Math.min(mMaxPrevWordCount, mPrevWordsCount + 1);
+        final WordInfo[] prevWordsInfo = new WordInfo[nextPrevWordCount];
+        prevWordsInfo[0] = wordInfo;
+        System.arraycopy(mPrevWordsInfo, 0, prevWordsInfo, 1, nextPrevWordCount - 1);
+        return new NgramContext(mMaxPrevWordCount, prevWordsInfo);
+    }
+
+
+    /**
+     * Extracts the previous words context.
+     *
+     * @return a String with the previous words separated by white space.
+     */
+    public String extractPrevWordsContext() {
+        final ArrayList<String> terms = new ArrayList<>();
+        for (int i = mPrevWordsInfo.length - 1; i >= 0; --i) {
+            if (mPrevWordsInfo[i] != null && mPrevWordsInfo[i].isValid()) {
+                final NgramContext.WordInfo wordInfo = mPrevWordsInfo[i];
+                if (wordInfo.mIsBeginningOfSentence) {
+                    terms.add(BEGINNING_OF_SENTENCE_TAG);
+                } else {
+                    final String term = wordInfo.mWord.toString();
+                    if (!term.isEmpty()) {
+                        terms.add(term);
+                    }
+                }
+            }
+        }
+        return TextUtils.join(CONTEXT_SEPARATOR, terms);
+    }
+
+    /**
+     * Extracts the previous words context.
+     *
+     * @return a String array with the previous words.
+     */
+    public String[] extractPrevWordsContextArray() {
+        final ArrayList<String> prevTermList = new ArrayList<>();
+        for (int i = mPrevWordsInfo.length - 1; i >= 0; --i) {
+            if (mPrevWordsInfo[i] != null && mPrevWordsInfo[i].isValid()) {
+                final NgramContext.WordInfo wordInfo = mPrevWordsInfo[i];
+                if (wordInfo.mIsBeginningOfSentence) {
+                    prevTermList.add(BEGINNING_OF_SENTENCE_TAG);
+                } else {
+                    final String term = wordInfo.mWord.toString();
+                    if (!term.isEmpty()) {
+                        prevTermList.add(term);
+                    }
+                }
+            }
+        }
+        final String[] contextStringArray = prevTermList.toArray(new String[prevTermList.size()]);
+        return contextStringArray;
+    }
+
+    public boolean isValid() {
+        return mPrevWordsCount > 0 && mPrevWordsInfo[0].isValid();
+    }
+
+    public boolean isBeginningOfSentenceContext() {
+        return mPrevWordsCount > 0 && mPrevWordsInfo[0].mIsBeginningOfSentence;
+    }
+
+    // n is 1-indexed.
+    // TODO: Remove
+    public CharSequence getNthPrevWord(final int n) {
+        if (n <= 0 || n > mPrevWordsCount) {
+            return null;
+        }
+        return mPrevWordsInfo[n - 1].mWord;
+    }
+
+    // n is 1-indexed.
+    @UsedForTesting
+    public boolean isNthPrevWordBeginningOfSentence(final int n) {
+        if (n <= 0 || n > mPrevWordsCount) {
+            return false;
+        }
+        return mPrevWordsInfo[n - 1].mIsBeginningOfSentence;
+    }
+
+    public void outputToArray(final int[][] codePointArrays,
+            final boolean[] isBeginningOfSentenceArray) {
+        for (int i = 0; i < mPrevWordsCount; i++) {
+            final WordInfo wordInfo = mPrevWordsInfo[i];
+            if (wordInfo == null || !wordInfo.isValid()) {
+                codePointArrays[i] = new int[0];
+                isBeginningOfSentenceArray[i] = false;
+                continue;
+            }
+            codePointArrays[i] = StringUtils.toCodePointArray(wordInfo.mWord);
+            isBeginningOfSentenceArray[i] = wordInfo.mIsBeginningOfSentence;
+        }
+    }
+
+    public int getPrevWordCount() {
+        return mPrevWordsCount;
+    }
+
+    @Override
+    public int hashCode() {
+        int hashValue = 0;
+        for (final WordInfo wordInfo : mPrevWordsInfo) {
+            if (wordInfo == null || !WordInfo.EMPTY_WORD_INFO.equals(wordInfo)) {
+                break;
+            }
+            hashValue ^= wordInfo.hashCode();
+        }
+        return hashValue;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (!(o instanceof NgramContext)) return false;
+        final NgramContext prevWordsInfo = (NgramContext)o;
+
+        final int minLength = Math.min(mPrevWordsCount, prevWordsInfo.mPrevWordsCount);
+        for (int i = 0; i < minLength; i++) {
+            if (!mPrevWordsInfo[i].equals(prevWordsInfo.mPrevWordsInfo[i])) {
+                return false;
+            }
+        }
+        final WordInfo[] longerWordsInfo;
+        final int longerWordsInfoCount;
+        if (mPrevWordsCount > prevWordsInfo.mPrevWordsCount) {
+            longerWordsInfo = mPrevWordsInfo;
+            longerWordsInfoCount = mPrevWordsCount;
+        } else {
+            longerWordsInfo = prevWordsInfo.mPrevWordsInfo;
+            longerWordsInfoCount = prevWordsInfo.mPrevWordsCount;
+        }
+        for (int i = minLength; i < longerWordsInfoCount; i++) {
+            if (longerWordsInfo[i] != null
+                    && !WordInfo.EMPTY_WORD_INFO.equals(longerWordsInfo[i])) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    @Override
+    public String toString() {
+        final StringBuffer builder = new StringBuffer();
+        for (int i = 0; i < mPrevWordsCount; i++) {
+            final WordInfo wordInfo = mPrevWordsInfo[i];
+            builder.append("PrevWord[");
+            builder.append(i);
+            builder.append("]: ");
+            if (wordInfo == null) {
+                builder.append("null. ");
+                continue;
+            }
+            if (!wordInfo.isValid()) {
+                builder.append("Empty. ");
+                continue;
+            }
+            builder.append(wordInfo.mWord);
+            builder.append(", isBeginningOfSentence: ");
+            builder.append(wordInfo.mIsBeginningOfSentence);
+            builder.append(". ");
+        }
+        return builder.toString();
+    }
+}
diff --git a/java/src/com/android/inputmethod/latin/PrevWordsInfo.java b/java/src/com/android/inputmethod/latin/PrevWordsInfo.java
deleted file mode 100644
index db877ab..0000000
--- a/java/src/com/android/inputmethod/latin/PrevWordsInfo.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin;
-
-import android.text.TextUtils;
-
-import com.android.inputmethod.latin.utils.StringUtils;
-
-import java.util.Arrays;
-
-/**
- * Class to represent information of previous words. This class is used to add n-gram entries
- * into binary dictionaries, to get predictions, and to get suggestions.
- */
-public class PrevWordsInfo {
-    public static final PrevWordsInfo EMPTY_PREV_WORDS_INFO =
-            new PrevWordsInfo(WordInfo.EMPTY_WORD_INFO);
-    public static final PrevWordsInfo BEGINNING_OF_SENTENCE =
-            new PrevWordsInfo(WordInfo.BEGINNING_OF_SENTENCE);
-
-    /**
-     * Word information used to represent previous words information.
-     */
-    public static class WordInfo {
-        public static final WordInfo EMPTY_WORD_INFO = new WordInfo(null);
-        public static final WordInfo BEGINNING_OF_SENTENCE = new WordInfo();
-
-        // This is an empty char sequence when mIsBeginningOfSentence is true.
-        public final CharSequence mWord;
-        // TODO: Have sentence separator.
-        // Whether the current context is beginning of sentence or not. This is true when composing
-        // at the beginning of an input field or composing a word after a sentence separator.
-        public final boolean mIsBeginningOfSentence;
-
-        // Beginning of sentence.
-        public WordInfo() {
-            mWord = "";
-            mIsBeginningOfSentence = true;
-        }
-
-        public WordInfo(final CharSequence word) {
-            mWord = word;
-            mIsBeginningOfSentence = false;
-        }
-
-        public boolean isValid() {
-            return mWord != null;
-        }
-
-        @Override
-        public int hashCode() {
-            return Arrays.hashCode(new Object[] { mWord, mIsBeginningOfSentence } );
-        }
-
-        @Override
-        public boolean equals(Object o) {
-            if (this == o) return true;
-            if (!(o instanceof WordInfo)) return false;
-            final WordInfo wordInfo = (WordInfo)o;
-            if (mWord == null || wordInfo.mWord == null) {
-                return mWord == wordInfo.mWord
-                        && mIsBeginningOfSentence == wordInfo.mIsBeginningOfSentence;
-            }
-            return TextUtils.equals(mWord, wordInfo.mWord)
-                    && mIsBeginningOfSentence == wordInfo.mIsBeginningOfSentence;
-        }
-    }
-
-    // The words immediately before the considered word. EMPTY_WORD_INFO element means we don't
-    // have any context for that previous word including the "beginning of sentence context" - we
-    // just don't know what to predict using the information. An example of that is after a comma.
-    // For simplicity of implementation, elements may also be EMPTY_WORD_INFO transiently after the
-    // WordComposer was reset and before starting a new composing word, but we should never be
-    // calling getSuggetions* in this situation.
-    public WordInfo[] mPrevWordsInfo = new WordInfo[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
-
-    // Construct from the previous word information.
-    public PrevWordsInfo(final WordInfo prevWordInfo) {
-        mPrevWordsInfo[0] = prevWordInfo;
-    }
-
-    // Construct from WordInfo array. n-th element represents (n+1)-th previous word's information.
-    public PrevWordsInfo(final WordInfo[] prevWordsInfo) {
-        for (int i = 0; i < Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM; i++) {
-            mPrevWordsInfo[i] =
-                    (prevWordsInfo.length > i) ? prevWordsInfo[i] : WordInfo.EMPTY_WORD_INFO;
-        }
-    }
-
-    // Create next prevWordsInfo using current prevWordsInfo.
-    public PrevWordsInfo getNextPrevWordsInfo(final WordInfo wordInfo) {
-        final WordInfo[] prevWordsInfo = new WordInfo[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
-        prevWordsInfo[0] = wordInfo;
-        for (int i = 1; i < prevWordsInfo.length; i++) {
-            prevWordsInfo[i] = mPrevWordsInfo[i - 1];
-        }
-        return new PrevWordsInfo(prevWordsInfo);
-    }
-
-    public boolean isValid() {
-        return mPrevWordsInfo[0].isValid();
-    }
-
-    public void outputToArray(final int[][] codePointArrays,
-            final boolean[] isBeginningOfSentenceArray) {
-        for (int i = 0; i < mPrevWordsInfo.length; i++) {
-            final WordInfo wordInfo = mPrevWordsInfo[i];
-            if (wordInfo == null || !wordInfo.isValid()) {
-                codePointArrays[i] = new int[0];
-                isBeginningOfSentenceArray[i] = false;
-                continue;
-            }
-            codePointArrays[i] = StringUtils.toCodePointArray(wordInfo.mWord);
-            isBeginningOfSentenceArray[i] = wordInfo.mIsBeginningOfSentence;
-        }
-    }
-
-    @Override
-    public int hashCode() {
-        return Arrays.hashCode(mPrevWordsInfo);
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) return true;
-        if (!(o instanceof PrevWordsInfo)) return false;
-        final PrevWordsInfo prevWordsInfo = (PrevWordsInfo)o;
-        return Arrays.equals(mPrevWordsInfo, prevWordsInfo.mPrevWordsInfo);
-    }
-
-    @Override
-    public String toString() {
-        final StringBuffer builder = new StringBuffer();
-        for (int i = 0; i < mPrevWordsInfo.length; i++) {
-            final WordInfo wordInfo = mPrevWordsInfo[i];
-            builder.append("PrevWord[");
-            builder.append(i);
-            builder.append("]: ");
-            if (wordInfo == null || !wordInfo.isValid()) {
-                builder.append("Empty. ");
-                continue;
-            }
-            builder.append(wordInfo.mWord);
-            builder.append(", isBeginningOfSentence: ");
-            builder.append(wordInfo.mIsBeginningOfSentence);
-            builder.append(". ");
-        }
-        return builder.toString();
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/PunctuationSuggestions.java b/java/src/com/android/inputmethod/latin/PunctuationSuggestions.java
index 56014cb..e2c5621 100644
--- a/java/src/com/android/inputmethod/latin/PunctuationSuggestions.java
+++ b/java/src/com/android/inputmethod/latin/PunctuationSuggestions.java
@@ -17,11 +17,14 @@
 package com.android.inputmethod.latin;
 
 import com.android.inputmethod.keyboard.internal.KeySpecParser;
-import com.android.inputmethod.latin.utils.StringUtils;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.StringUtils;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 
+import javax.annotation.Nullable;
+
 /**
  * The extended {@link SuggestedWords} class to represent punctuation suggestions.
  *
@@ -32,10 +35,12 @@
     private PunctuationSuggestions(final ArrayList<SuggestedWordInfo> punctuationsList) {
         super(punctuationsList,
                 null /* rawSuggestions */,
+                null /* typedWord */,
                 false /* typedWordValid */,
                 false /* hasAutoCorrectionCandidate */,
                 false /* isObsoleteSuggestions */,
-                INPUT_STYLE_NONE /* inputStyle */);
+                INPUT_STYLE_NONE /* inputStyle */,
+                SuggestedWords.NOT_A_SEQUENCE_NUMBER);
     }
 
     /**
@@ -46,17 +51,21 @@
      * @return The {@link PunctuationSuggestions} object.
      */
     public static PunctuationSuggestions newPunctuationSuggestions(
-            final String[] punctuationSpecs) {
-        final ArrayList<SuggestedWordInfo> puncuationsList = new ArrayList<>();
-        for (final String puncSpec : punctuationSpecs) {
-            puncuationsList.add(newHardCodedWordInfo(puncSpec));
+            @Nullable final String[] punctuationSpecs) {
+        if (punctuationSpecs == null || punctuationSpecs.length == 0) {
+            return new PunctuationSuggestions(new ArrayList<SuggestedWordInfo>(0));
         }
-        return new PunctuationSuggestions(puncuationsList);
+        final ArrayList<SuggestedWordInfo> punctuationList =
+                new ArrayList<>(punctuationSpecs.length);
+        for (String spec : punctuationSpecs) {
+            punctuationList.add(newHardCodedWordInfo(spec));
+        }
+        return new PunctuationSuggestions(punctuationList);
     }
 
     /**
      * {@inheritDoc}
-     * Note that {@link super#getWord(int)} returns a punctuation key specification text.
+     * Note that {@link SuggestedWords#getWord(int)} returns a punctuation key specification text.
      * The suggested punctuation should be gotten by parsing the key specification.
      */
     @Override
@@ -70,7 +79,7 @@
 
     /**
      * {@inheritDoc}
-     * Note that {@link super#getWord(int)} returns a punctuation key specification text.
+     * Note that {@link SuggestedWords#getWord(int)} returns a punctuation key specification text.
      * The displayed text should be gotten by parsing the key specification.
      */
     @Override
@@ -82,7 +91,7 @@
     /**
      * {@inheritDoc}
      * Note that {@link #getWord(int)} returns a suggested punctuation. We should create a
-     * {@link SuggestedWordInfo} object that represents a hard coded word.
+     * {@link SuggestedWords.SuggestedWordInfo} object that represents a hard coded word.
      */
     @Override
     public SuggestedWordInfo getInfo(final int index) {
@@ -105,7 +114,8 @@
     }
 
     private static SuggestedWordInfo newHardCodedWordInfo(final String keySpec) {
-        return new SuggestedWordInfo(keySpec, SuggestedWordInfo.MAX_SCORE,
+        return new SuggestedWordInfo(keySpec, "" /* prevWordsContext */,
+                SuggestedWordInfo.MAX_SCORE,
                 SuggestedWordInfo.KIND_HARDCODED,
                 Dictionary.DICTIONARY_HARDCODED,
                 SuggestedWordInfo.NOT_AN_INDEX /* indexOfTouchPointOfSecondWord */,
diff --git a/java/src/com/android/inputmethod/latin/ReadOnlyBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ReadOnlyBinaryDictionary.java
index 5d4fc58..7b1a53a 100644
--- a/java/src/com/android/inputmethod/latin/ReadOnlyBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ReadOnlyBinaryDictionary.java
@@ -16,8 +16,8 @@
 
 package com.android.inputmethod.latin;
 
-import com.android.inputmethod.keyboard.ProximityInfo;
 import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
+import com.android.inputmethod.latin.common.ComposedData;
 import com.android.inputmethod.latin.settings.SettingsValuesForSuggestion;
 
 import java.util.ArrayList;
@@ -40,7 +40,7 @@
 
     public ReadOnlyBinaryDictionary(final String filename, final long offset, final long length,
             final boolean useFullEditDistance, final Locale locale, final String dictType) {
-        super(dictType);
+        super(dictType, locale);
         mBinaryDictionary = new BinaryDictionary(filename, offset, length, useFullEditDistance,
                 locale, dictType, false /* isUpdatable */);
     }
@@ -50,14 +50,16 @@
     }
 
     @Override
-    public ArrayList<SuggestedWordInfo> getSuggestions(final WordComposer composer,
-            final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo,
+    public ArrayList<SuggestedWordInfo> getSuggestions(final ComposedData composedData,
+            final NgramContext ngramContext, final long proximityInfoHandle,
             final SettingsValuesForSuggestion settingsValuesForSuggestion,
-            final int sessionId, final float[] inOutLanguageWeight) {
+            final int sessionId, final float weightForLocale,
+            final float[] inOutWeightOfLangModelVsSpatialModel) {
         if (mLock.readLock().tryLock()) {
             try {
-                return mBinaryDictionary.getSuggestions(composer, prevWordsInfo, proximityInfo,
-                        settingsValuesForSuggestion, sessionId, inOutLanguageWeight);
+                return mBinaryDictionary.getSuggestions(composedData, ngramContext,
+                        proximityInfoHandle, settingsValuesForSuggestion, sessionId,
+                        weightForLocale, inOutWeightOfLangModelVsSpatialModel);
             } finally {
                 mLock.readLock().unlock();
             }
diff --git a/java/src/com/android/inputmethod/latin/RichInputConnection.java b/java/src/com/android/inputmethod/latin/RichInputConnection.java
index 744b032..08e8fe3 100644
--- a/java/src/com/android/inputmethod/latin/RichInputConnection.java
+++ b/java/src/com/android/inputmethod/latin/RichInputConnection.java
@@ -16,13 +16,14 @@
 
 package com.android.inputmethod.latin;
 
-import android.graphics.Color;
+import static com.android.inputmethod.latin.define.DecoderSpecificConstants.DICTIONARY_MAX_WORD_LENGTH;
+
 import android.inputmethodservice.InputMethodService;
 import android.os.Build;
+import android.os.Bundle;
 import android.text.SpannableStringBuilder;
-import android.text.Spanned;
 import android.text.TextUtils;
-import android.text.style.BackgroundColorSpan;
+import android.text.style.CharacterStyle;
 import android.util.Log;
 import android.view.KeyEvent;
 import android.view.inputmethod.CompletionInfo;
@@ -33,16 +34,20 @@
 import android.view.inputmethod.InputMethodManager;
 
 import com.android.inputmethod.compat.InputConnectionCompatUtils;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.UnicodeSurrogate;
+import com.android.inputmethod.latin.common.StringUtils;
+import com.android.inputmethod.latin.define.DecoderSpecificConstants;
+import com.android.inputmethod.latin.inputlogic.PrivateCommandPerformer;
 import com.android.inputmethod.latin.settings.SpacingAndPunctuations;
 import com.android.inputmethod.latin.utils.CapsModeUtils;
 import com.android.inputmethod.latin.utils.DebugLogUtils;
-import com.android.inputmethod.latin.utils.PrevWordsInfoUtils;
+import com.android.inputmethod.latin.utils.NgramContextUtils;
 import com.android.inputmethod.latin.utils.ScriptUtils;
 import com.android.inputmethod.latin.utils.SpannableStringUtils;
-import com.android.inputmethod.latin.utils.StringUtils;
 import com.android.inputmethod.latin.utils.TextRange;
 
-import java.util.Arrays;
+import javax.annotation.Nonnull;
 
 /**
  * Enrichment class for InputConnection to simplify interaction and add functionality.
@@ -52,15 +57,15 @@
  * all the time to find out what text is in the buffer, when we need it to determine caps mode
  * for example.
  */
-public final class RichInputConnection {
+public final class RichInputConnection implements PrivateCommandPerformer {
     private static final String TAG = RichInputConnection.class.getSimpleName();
     private static final boolean DBG = false;
     private static final boolean DEBUG_PREVIOUS_TEXT = false;
     private static final boolean DEBUG_BATCH_NESTING = false;
     // Provision for long words and separators between the words.
-    private static final int LOOKBACK_CHARACTER_NUM = Constants.DICTIONARY_MAX_WORD_LENGTH
-            * (Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM + 1) /* words */
-            + Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM /* separators */;
+    private static final int LOOKBACK_CHARACTER_NUM = DICTIONARY_MAX_WORD_LENGTH
+            * (DecoderSpecificConstants.MAX_PREV_WORD_COUNT_FOR_N_GRAM + 1) /* words */
+            + DecoderSpecificConstants.MAX_PREV_WORD_COUNT_FOR_N_GRAM /* separators */;
     private static final int INVALID_CURSOR_POSITION = -1;
 
     /**
@@ -88,26 +93,25 @@
     private final StringBuilder mComposingText = new StringBuilder();
 
     /**
-     * This variable is a temporary object used in
-     * {@link #commitTextWithBackgroundColor(CharSequence, int, int)} to avoid object creation.
+     * This variable is a temporary object used in {@link #commitText(CharSequence,int)}
+     * to avoid object creation.
      */
     private SpannableStringBuilder mTempObjectForCommitText = new SpannableStringBuilder();
-    /**
-     * This variable is used to track whether the last committed text had the background color or
-     * not.
-     * TODO: Omit this flag if possible.
-     */
-    private boolean mLastCommittedTextHasBackgroundColor = false;
 
     private final InputMethodService mParent;
     InputConnection mIC;
     int mNestLevel;
+
     public RichInputConnection(final InputMethodService parent) {
         mParent = parent;
         mIC = null;
         mNestLevel = 0;
     }
 
+    public boolean isConnected() {
+        return mIC != null;
+    }
+
     private void checkConsistencyForDebug() {
         final ExtractedTextRequest r = new ExtractedTextRequest();
         r.hintMaxChars = 0;
@@ -143,15 +147,14 @@
     public void beginBatchEdit() {
         if (++mNestLevel == 1) {
             mIC = mParent.getCurrentInputConnection();
-            if (null != mIC) {
+            if (isConnected()) {
                 mIC.beginBatchEdit();
             }
         } else {
             if (DBG) {
                 throw new RuntimeException("Nest level too deep");
-            } else {
-                Log.e(TAG, "Nest level too deep : " + mNestLevel);
             }
+            Log.e(TAG, "Nest level too deep : " + mNestLevel);
         }
         if (DEBUG_BATCH_NESTING) checkBatchEdit();
         if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug();
@@ -159,7 +162,7 @@
 
     public void endBatchEdit() {
         if (mNestLevel <= 0) Log.e(TAG, "Batch edit not in progress!"); // TODO: exception instead
-        if (--mNestLevel == 0 && null != mIC) {
+        if (--mNestLevel == 0 && isConnected()) {
             mIC.endBatchEdit();
         }
         if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug();
@@ -191,7 +194,7 @@
             Log.d(TAG, "Will try to retrieve text later.");
             return false;
         }
-        if (null != mIC && shouldFinishComposition) {
+        if (isConnected() && shouldFinishComposition) {
             mIC.finishComposingText();
         }
         return true;
@@ -207,8 +210,9 @@
         mIC = mParent.getCurrentInputConnection();
         // Call upon the inputconnection directly since our own method is using the cache, and
         // we want to refresh it.
-        final CharSequence textBeforeCursor = null == mIC ? null :
-                mIC.getTextBeforeCursor(Constants.EDITOR_CONTENTS_CACHE_SIZE, 0);
+        final CharSequence textBeforeCursor = isConnected()
+                ? mIC.getTextBeforeCursor(Constants.EDITOR_CONTENTS_CACHE_SIZE, 0)
+                : null;
         if (null == textBeforeCursor) {
             // For some reason the app thinks we are not connected to it. This looks like a
             // framework bug... Fall back to ground state and return false.
@@ -237,39 +241,18 @@
         // it works, but it's wrong and should be fixed.
         mCommittedTextBeforeComposingText.append(mComposingText);
         mComposingText.setLength(0);
-        // TODO: Clear this flag in setComposingRegion() and setComposingText() as well if needed.
-        mLastCommittedTextHasBackgroundColor = false;
-        if (null != mIC) {
+        if (isConnected()) {
             mIC.finishComposingText();
         }
     }
 
     /**
-     * Synonym of {@code commitTextWithBackgroundColor(text, newCursorPosition, Color.TRANSPARENT}.
+     * Calls {@link InputConnection#commitText(CharSequence, int)}.
+     *
      * @param text The text to commit. This may include styles.
-     * See {@link InputConnection#commitText(CharSequence, int)}.
      * @param newCursorPosition The new cursor position around the text.
-     * See {@link InputConnection#commitText(CharSequence, int)}.
      */
     public void commitText(final CharSequence text, final int newCursorPosition) {
-        commitTextWithBackgroundColor(text, newCursorPosition, Color.TRANSPARENT, text.length());
-    }
-
-    /**
-     * Calls {@link InputConnection#commitText(CharSequence, int)} with the given background color.
-     * @param text The text to commit. This may include styles.
-     * See {@link InputConnection#commitText(CharSequence, int)}.
-     * @param newCursorPosition The new cursor position around the text.
-     * See {@link InputConnection#commitText(CharSequence, int)}.
-     * @param color The background color to be attached. Set {@link Color#TRANSPARENT} to disable
-     * the background color. Note that this method specifies {@link BackgroundColorSpan} with
-     * {@link Spanned#SPAN_COMPOSING} flag, meaning that the background color persists until
-     * {@link #finishComposingText()} is called.
-     * @param coloredTextLength the length of text, in Java chars, which should be rendered with
-     * the given background color.
-     */
-    public void commitTextWithBackgroundColor(final CharSequence text, final int newCursorPosition,
-            final int color, final int coloredTextLength) {
         if (DEBUG_BATCH_NESTING) checkBatchEdit();
         if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug();
         mCommittedTextBeforeComposingText.append(text);
@@ -279,46 +262,34 @@
         mExpectedSelStart += text.length() - mComposingText.length();
         mExpectedSelEnd = mExpectedSelStart;
         mComposingText.setLength(0);
-        mLastCommittedTextHasBackgroundColor = false;
-        if (null != mIC) {
-            if (color == Color.TRANSPARENT) {
-                mIC.commitText(text, newCursorPosition);
-            } else {
-                mTempObjectForCommitText.clear();
-                mTempObjectForCommitText.append(text);
-                final BackgroundColorSpan backgroundColorSpan = new BackgroundColorSpan(color);
-                final int spanLength = Math.min(coloredTextLength, text.length());
-                mTempObjectForCommitText.setSpan(backgroundColorSpan, 0, spanLength,
-                        Spanned.SPAN_COMPOSING | Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
-                mIC.commitText(mTempObjectForCommitText, newCursorPosition);
-                mLastCommittedTextHasBackgroundColor = true;
+        if (isConnected()) {
+            mTempObjectForCommitText.clear();
+            mTempObjectForCommitText.append(text);
+            final CharacterStyle[] spans = mTempObjectForCommitText.getSpans(
+                    0, text.length(), CharacterStyle.class);
+            for (final CharacterStyle span : spans) {
+                final int spanStart = mTempObjectForCommitText.getSpanStart(span);
+                final int spanEnd = mTempObjectForCommitText.getSpanEnd(span);
+                final int spanFlags = mTempObjectForCommitText.getSpanFlags(span);
+                // We have to adjust the end of the span to include an additional character.
+                // This is to avoid splitting a unicode surrogate pair.
+                // See com.android.inputmethod.latin.common.Constants.UnicodeSurrogate
+                // See https://b.corp.google.com/issues/19255233
+                if (0 < spanEnd && spanEnd < mTempObjectForCommitText.length()) {
+                    final char spanEndChar = mTempObjectForCommitText.charAt(spanEnd - 1);
+                    final char nextChar = mTempObjectForCommitText.charAt(spanEnd);
+                    if (UnicodeSurrogate.isLowSurrogate(spanEndChar)
+                            && UnicodeSurrogate.isHighSurrogate(nextChar)) {
+                        mTempObjectForCommitText.setSpan(span, spanStart, spanEnd + 1, spanFlags);
+                    }
+                }
             }
+            mIC.commitText(mTempObjectForCommitText, newCursorPosition);
         }
     }
 
-    /**
-     * Removes the background color from the highlighted text if necessary. Should be called while
-     * there is no on-going composing text.
-     *
-     * <p>CAVEAT: This method internally calls {@link InputConnection#finishComposingText()}.
-     * Be careful of any unexpected side effects.</p>
-     */
-    public void removeBackgroundColorFromHighlightedTextIfNecessary() {
-        // TODO: We haven't yet full tested if we really need to check this flag or not. Omit this
-        // flag if everything works fine without this condition.
-        if (!mLastCommittedTextHasBackgroundColor) {
-            return;
-        }
-        if (mComposingText.length() > 0) {
-            Log.e(TAG, "clearSpansWithComposingFlags should be called when composing text is " +
-                    "empty. mComposingText=" + mComposingText);
-            return;
-        }
-        finishComposingText();
-    }
-
     public CharSequence getSelectedText(final int flags) {
-        return (null == mIC) ? null : mIC.getSelectedText(flags);
+        return isConnected() ?  mIC.getSelectedText(flags) : null;
     }
 
     public boolean canDeleteCharacters() {
@@ -343,16 +314,17 @@
     public int getCursorCapsMode(final int inputType,
             final SpacingAndPunctuations spacingAndPunctuations, final boolean hasSpaceBefore) {
         mIC = mParent.getCurrentInputConnection();
-        if (null == mIC) return Constants.TextUtils.CAP_MODE_OFF;
+        if (!isConnected()) {
+            return Constants.TextUtils.CAP_MODE_OFF;
+        }
         if (!TextUtils.isEmpty(mComposingText)) {
             if (hasSpaceBefore) {
                 // If we have some composing text and a space before, then we should have
                 // MODE_CHARACTERS and MODE_WORDS on.
                 return (TextUtils.CAP_MODE_CHARACTERS | TextUtils.CAP_MODE_WORDS) & inputType;
-            } else {
-                // We have some composing text - we should be in MODE_CHARACTERS only.
-                return TextUtils.CAP_MODE_CHARACTERS & inputType;
             }
+            // We have some composing text - we should be in MODE_CHARACTERS only.
+            return TextUtils.CAP_MODE_CHARACTERS & inputType;
         }
         // TODO: this will generally work, but there may be cases where the buffer contains SOME
         // information but not enough to determine the caps mode accurately. This may happen after
@@ -367,7 +339,9 @@
         }
         // This never calls InputConnection#getCapsMode - in fact, it's a static method that
         // never blocks or initiates IPC.
-        return CapsModeUtils.getCapsMode(mCommittedTextBeforeComposingText, inputType,
+        // TODO: don't call #toString() here. Instead, all accesses to
+        // mCommittedTextBeforeComposingText should be done on the main thread.
+        return CapsModeUtils.getCapsMode(mCommittedTextBeforeComposingText.toString(), inputType,
                 spacingAndPunctuations, hasSpaceBefore);
     }
 
@@ -402,12 +376,12 @@
             return s;
         }
         mIC = mParent.getCurrentInputConnection();
-        return (null == mIC) ? null : mIC.getTextBeforeCursor(n, flags);
+        return isConnected() ? mIC.getTextBeforeCursor(n, flags) : null;
     }
 
     public CharSequence getTextAfterCursor(final int n, final int flags) {
         mIC = mParent.getCurrentInputConnection();
-        return (null == mIC) ? null : mIC.getTextAfterCursor(n, flags);
+        return isConnected() ? mIC.getTextAfterCursor(n, flags) : null;
     }
 
     public void deleteSurroundingText(final int beforeLength, final int afterLength) {
@@ -434,7 +408,7 @@
             mExpectedSelEnd -= mExpectedSelStart;
             mExpectedSelStart = 0;
         }
-        if (null != mIC) {
+        if (isConnected()) {
             mIC.deleteSurroundingText(beforeLength, afterLength);
         }
         if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug();
@@ -442,7 +416,7 @@
 
     public void performEditorAction(final int actionId) {
         mIC = mParent.getCurrentInputConnection();
-        if (null != mIC) {
+        if (isConnected()) {
             mIC.performEditorAction(actionId);
         }
     }
@@ -494,7 +468,7 @@
                 break;
             }
         }
-        if (null != mIC) {
+        if (isConnected()) {
             mIC.sendKeyEvent(keyEvent);
         }
     }
@@ -517,7 +491,7 @@
             mCommittedTextBeforeComposingText.append(
                     textBeforeCursor.subSequence(0, indexOfStartOfComposingText));
         }
-        if (null != mIC) {
+        if (isConnected()) {
             mIC.setComposingRegion(start, end);
         }
     }
@@ -531,7 +505,7 @@
         mComposingText.append(text);
         // TODO: support values of newCursorPosition != 1. At this time, this is never called with
         // newCursorPosition != 1.
-        if (null != mIC) {
+        if (isConnected()) {
             mIC.setComposingText(text, newCursorPosition);
         }
         if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug();
@@ -556,7 +530,7 @@
         }
         mExpectedSelStart = start;
         mExpectedSelEnd = end;
-        if (null != mIC) {
+        if (isConnected()) {
             final boolean isIcValid = mIC.setSelection(start, end);
             if (!isIcValid) {
                 return false;
@@ -570,7 +544,7 @@
         if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug();
         // This has no effect on the text field and does not change its content. It only makes
         // TextView flash the text for a second based on indices contained in the argument.
-        if (null != mIC) {
+        if (isConnected()) {
             mIC.commitCorrection(correctionInfo);
         }
         if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug();
@@ -586,18 +560,19 @@
         mExpectedSelStart += text.length() - mComposingText.length();
         mExpectedSelEnd = mExpectedSelStart;
         mComposingText.setLength(0);
-        if (null != mIC) {
+        if (isConnected()) {
             mIC.commitCompletion(completionInfo);
         }
         if (DEBUG_PREVIOUS_TEXT) checkConsistencyForDebug();
     }
 
     @SuppressWarnings("unused")
-    public PrevWordsInfo getPrevWordsInfoFromNthPreviousWord(
+    @Nonnull
+    public NgramContext getNgramContextFromNthPreviousWord(
             final SpacingAndPunctuations spacingAndPunctuations, final int n) {
         mIC = mParent.getCurrentInputConnection();
-        if (null == mIC) {
-            return PrevWordsInfo.EMPTY_PREV_WORDS_INFO;
+        if (!isConnected()) {
+            return NgramContext.EMPTY_PREV_WORDS_INFO;
         }
         final CharSequence prev = getTextBeforeCursor(LOOKBACK_CHARACTER_NUM, 0);
         if (DEBUG_PREVIOUS_TEXT && null != prev) {
@@ -618,14 +593,10 @@
                 }
             }
         }
-        return PrevWordsInfoUtils.getPrevWordsInfoFromNthPreviousWord(
+        return NgramContextUtils.getNgramContextFromNthPreviousWord(
                 prev, spacingAndPunctuations, n);
     }
 
-    private static boolean isSeparator(final int code, final int[] sortedSeparators) {
-        return Arrays.binarySearch(sortedSeparators, code) >= 0;
-    }
-
     private static boolean isPartOfCompositionForScript(final int codePoint,
             final SpacingAndPunctuations spacingAndPunctuations, final int scriptId) {
         // We always consider word connectors part of compositions.
@@ -645,7 +616,7 @@
     public TextRange getWordRangeAtCursor(final SpacingAndPunctuations spacingAndPunctuations,
             final int scriptId) {
         mIC = mParent.getCurrentInputConnection();
-        if (mIC == null) {
+        if (!isConnected()) {
             return null;
         }
         final CharSequence before = mIC.getTextBeforeCursor(Constants.EDITOR_CONTENTS_CACHE_SIZE,
@@ -740,17 +711,19 @@
         return TextUtils.equals(text, beforeText);
     }
 
-    public boolean revertDoubleSpacePeriod() {
+    public boolean revertDoubleSpacePeriod(final SpacingAndPunctuations spacingAndPunctuations) {
         if (DEBUG_BATCH_NESTING) checkBatchEdit();
         // Here we test whether we indeed have a period and a space before us. This should not
         // be needed, but it's there just in case something went wrong.
         final CharSequence textBeforeCursor = getTextBeforeCursor(2, 0);
-        if (!TextUtils.equals(Constants.STRING_PERIOD_AND_SPACE, textBeforeCursor)) {
+        if (!TextUtils.equals(spacingAndPunctuations.mSentenceSeparatorAndSpace,
+                textBeforeCursor)) {
             // Theoretically we should not be coming here if there isn't ". " before the
             // cursor, but the application may be changing the text while we are typing, so
             // anything goes. We should not crash.
-            Log.d(TAG, "Tried to revert double-space combo but we didn't find "
-                    + "\"" + Constants.STRING_PERIOD_AND_SPACE + "\" just before the cursor.");
+            Log.d(TAG, "Tried to revert double-space combo but we didn't find \""
+                    + spacingAndPunctuations.mSentenceSeparatorAndSpace
+                    + "\" just before the cursor.");
             return false;
         }
         // Double-space results in ". ". A backspace to cancel this should result in a single
@@ -847,17 +820,32 @@
 
     /**
      * Try to get the text from the editor to expose lies the framework may have been
-     * telling us. Concretely, when the device rotates, the frameworks tells us about where the
-     * cursor used to be initially in the editor at the time it first received the focus; this
+     * telling us. Concretely, when the device rotates and when the keyboard reopens in the same
+     * text field after having been closed with the back key, the frameworks tells us about where
+     * the cursor used to be initially in the editor at the time it first received the focus; this
      * may be completely different from the place it is upon rotation. Since we don't have any
      * means to get the real value, try at least to ask the text view for some characters and
      * detect the most damaging cases: when the cursor position is declared to be much smaller
      * than it really is.
      */
     public void tryFixLyingCursorPosition() {
+        mIC = mParent.getCurrentInputConnection();
         final CharSequence textBeforeCursor = getTextBeforeCursor(
                 Constants.EDITOR_CONTENTS_CACHE_SIZE, 0);
-        if (null == textBeforeCursor) {
+        final CharSequence selectedText = isConnected() ? mIC.getSelectedText(0 /* flags */) : null;
+        if (null == textBeforeCursor ||
+                (!TextUtils.isEmpty(selectedText) && mExpectedSelEnd == mExpectedSelStart)) {
+            // If textBeforeCursor is null, we have no idea what kind of text field we have or if
+            // thinking about the "cursor position" actually makes any sense. In this case we
+            // remember a meaningless cursor position. Contrast this with an empty string, which is
+            // valid and should mean the cursor is at the start of the text.
+            // Also, if we expect we don't have a selection but we DO have non-empty selected text,
+            // then the framework lied to us about the cursor position. In this case, we should just
+            // revert to the most basic behavior possible for the next action (backspace in
+            // particular comes to mind), so we remember a meaningless cursor position which should
+            // result in degraded behavior from the next input.
+            // Interestingly, in either case, chances are any action the user takes next will result
+            // in a call to onUpdateSelection, which should set things right.
             mExpectedSelStart = mExpectedSelEnd = Constants.NOT_A_CURSOR_POSITION;
         } else {
             final int textLength = textBeforeCursor.length();
@@ -880,6 +868,15 @@
         }
     }
 
+    @Override
+    public boolean performPrivateCommand(final String action, final Bundle data) {
+        mIC = mParent.getCurrentInputConnection();
+        if (!isConnected()) {
+            return false;
+        }
+        return mIC.performPrivateCommand(action, data);
+    }
+
     public int getExpectedSelectionStart() {
         return mExpectedSelStart;
     }
@@ -920,8 +917,6 @@
         }
     }
 
-    private boolean mCursorAnchorInfoMonitorEnabled = false;
-
     /**
      * Requests the editor to call back {@link InputMethodManager#updateCursorAnchorInfo}.
      * @param enableMonitor {@code true} to request the editor to call back the method whenever the
@@ -936,22 +931,10 @@
     public boolean requestCursorUpdates(final boolean enableMonitor,
             final boolean requestImmediateCallback) {
         mIC = mParent.getCurrentInputConnection();
-        final boolean scheduled;
-        if (null != mIC) {
-            scheduled = InputConnectionCompatUtils.requestCursorUpdates(mIC, enableMonitor,
-                    requestImmediateCallback);
-        } else {
-            scheduled = false;
+        if (!isConnected()) {
+            return false;
         }
-        mCursorAnchorInfoMonitorEnabled = (scheduled && enableMonitor);
-        return scheduled;
-    }
-
-    /**
-     * @return {@code true} if the application reported that the monitor mode of
-     * {@link InputMethodService#onUpdateCursorAnchorInfo(CursorAnchorInfo)} is currently enabled.
-     */
-    public boolean isCursorAnchorInfoMonitorEnabled() {
-        return mCursorAnchorInfoMonitorEnabled;
+        return InputConnectionCompatUtils.requestCursorUpdates(
+                mIC, enableMonitor, requestImmediateCallback);
     }
 }
diff --git a/java/src/com/android/inputmethod/latin/RichInputMethodManager.java b/java/src/com/android/inputmethod/latin/RichInputMethodManager.java
index 7cf4eff..ef946c8 100644
--- a/java/src/com/android/inputmethod/latin/RichInputMethodManager.java
+++ b/java/src/com/android/inputmethod/latin/RichInputMethodManager.java
@@ -16,10 +16,12 @@
 
 package com.android.inputmethod.latin;
 
-import static com.android.inputmethod.latin.Constants.Subtype.KEYBOARD_MODE;
+import static com.android.inputmethod.latin.common.Constants.Subtype.KEYBOARD_MODE;
 
 import android.content.Context;
 import android.content.SharedPreferences;
+import android.inputmethodservice.InputMethodService;
+import android.os.AsyncTask;
 import android.os.Build;
 import android.os.IBinder;
 import android.preference.PreferenceManager;
@@ -28,20 +30,31 @@
 import android.view.inputmethod.InputMethodManager;
 import android.view.inputmethod.InputMethodSubtype;
 
+import com.android.inputmethod.annotations.UsedForTesting;
 import com.android.inputmethod.compat.InputMethodManagerCompatWrapper;
 import com.android.inputmethod.latin.settings.Settings;
 import com.android.inputmethod.latin.utils.AdditionalSubtypeUtils;
+import com.android.inputmethod.latin.utils.LanguageOnSpacebarUtils;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 
 /**
  * Enrichment class for InputMethodManager to simplify interaction and add functionality.
  */
-public final class RichInputMethodManager {
+// non final for easy mocking.
+public class RichInputMethodManager {
     private static final String TAG = RichInputMethodManager.class.getSimpleName();
+    private static final boolean DEBUG = false;
 
     private RichInputMethodManager() {
         // This utility class is not publicly instantiable.
@@ -49,12 +62,12 @@
 
     private static final RichInputMethodManager sInstance = new RichInputMethodManager();
 
+    private Context mContext;
     private InputMethodManagerCompatWrapper mImmWrapper;
     private InputMethodInfoCache mInputMethodInfoCache;
-    final HashMap<InputMethodInfo, List<InputMethodSubtype>>
-            mSubtypeListCacheWithImplicitlySelectedSubtypes = new HashMap<>();
-    final HashMap<InputMethodInfo, List<InputMethodSubtype>>
-            mSubtypeListCacheWithoutImplicitlySelectedSubtypes = new HashMap<>();
+    private RichInputMethodSubtype mCurrentRichInputMethodSubtype;
+    private InputMethodInfo mShortcutInputMethodInfo;
+    private InputMethodSubtype mShortcutSubtype;
 
     private static final int INDEX_NOT_FOUND = -1;
 
@@ -82,20 +95,24 @@
             return;
         }
         mImmWrapper = new InputMethodManagerCompatWrapper(context);
+        mContext = context;
         mInputMethodInfoCache = new InputMethodInfoCache(
                 mImmWrapper.mImm, context.getPackageName());
 
         // Initialize additional subtypes.
         SubtypeLocaleUtils.init(context);
-        final InputMethodSubtype[] additionalSubtypes = getAdditionalSubtypes(context);
-        setAdditionalInputMethodSubtypes(additionalSubtypes);
+        final InputMethodSubtype[] additionalSubtypes = getAdditionalSubtypes();
+        mImmWrapper.mImm.setAdditionalInputMethodSubtypes(
+                getInputMethodIdOfThisIme(), additionalSubtypes);
+
+        // Initialize the current input method subtype and the shortcut IME.
+        refreshSubtypeCaches();
     }
 
-    public InputMethodSubtype[] getAdditionalSubtypes(final Context context) {
-        SubtypeLocaleUtils.init(context);
-        final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
+    public InputMethodSubtype[] getAdditionalSubtypes() {
+        final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mContext);
         final String prefAdditionalSubtypes = Settings.readPrefAdditionalSubtypes(
-                prefs, context.getResources());
+                prefs, mContext.getResources());
         return AdditionalSubtypeUtils.createAdditionalSubtypesArray(prefAdditionalSubtypes);
     }
 
@@ -212,33 +229,57 @@
         private final InputMethodManager mImm;
         private final String mImePackageName;
 
-        private InputMethodInfo mCachedValue;
+        private InputMethodInfo mCachedThisImeInfo;
+        private final HashMap<InputMethodInfo, List<InputMethodSubtype>>
+                mCachedSubtypeListWithImplicitlySelected;
+        private final HashMap<InputMethodInfo, List<InputMethodSubtype>>
+                mCachedSubtypeListOnlyExplicitlySelected;
 
         public InputMethodInfoCache(final InputMethodManager imm, final String imePackageName) {
             mImm = imm;
             mImePackageName = imePackageName;
+            mCachedSubtypeListWithImplicitlySelected = new HashMap<>();
+            mCachedSubtypeListOnlyExplicitlySelected = new HashMap<>();
         }
 
-        public synchronized InputMethodInfo get() {
-            if (mCachedValue != null) {
-                return mCachedValue;
+        public synchronized InputMethodInfo getInputMethodOfThisIme() {
+            if (mCachedThisImeInfo != null) {
+                return mCachedThisImeInfo;
             }
             for (final InputMethodInfo imi : mImm.getInputMethodList()) {
                 if (imi.getPackageName().equals(mImePackageName)) {
-                    mCachedValue = imi;
+                    mCachedThisImeInfo = imi;
                     return imi;
                 }
             }
             throw new RuntimeException("Input method id for " + mImePackageName + " not found.");
         }
 
+        public synchronized List<InputMethodSubtype> getEnabledInputMethodSubtypeList(
+                final InputMethodInfo imi, final boolean allowsImplicitlySelectedSubtypes) {
+            final HashMap<InputMethodInfo, List<InputMethodSubtype>> cache =
+                    allowsImplicitlySelectedSubtypes
+                    ? mCachedSubtypeListWithImplicitlySelected
+                    : mCachedSubtypeListOnlyExplicitlySelected;
+            final List<InputMethodSubtype> cachedList = cache.get(imi);
+            if (cachedList != null) {
+                return cachedList;
+            }
+            final List<InputMethodSubtype> result = mImm.getEnabledInputMethodSubtypeList(
+                    imi, allowsImplicitlySelectedSubtypes);
+            cache.put(imi, result);
+            return result;
+        }
+
         public synchronized void clear() {
-            mCachedValue = null;
+            mCachedThisImeInfo = null;
+            mCachedSubtypeListWithImplicitlySelected.clear();
+            mCachedSubtypeListOnlyExplicitlySelected.clear();
         }
     }
 
     public InputMethodInfo getInputMethodInfoOfThisIme() {
-        return mInputMethodInfoCache.get();
+        return mInputMethodInfoCache.getInputMethodOfThisIme();
     }
 
     public String getInputMethodIdOfThisIme() {
@@ -246,24 +287,20 @@
     }
 
     public boolean checkIfSubtypeBelongsToThisImeAndEnabled(final InputMethodSubtype subtype) {
-        return checkIfSubtypeBelongsToImeAndEnabled(getInputMethodInfoOfThisIme(), subtype);
+        return checkIfSubtypeBelongsToList(subtype,
+                getEnabledInputMethodSubtypeList(
+                        getInputMethodInfoOfThisIme(),
+                        true /* allowsImplicitlySelectedSubtypes */));
     }
 
     public boolean checkIfSubtypeBelongsToThisImeAndImplicitlyEnabled(
             final InputMethodSubtype subtype) {
         final boolean subtypeEnabled = checkIfSubtypeBelongsToThisImeAndEnabled(subtype);
-        final boolean subtypeExplicitlyEnabled = checkIfSubtypeBelongsToList(
-                subtype, getMyEnabledInputMethodSubtypeList(
-                        false /* allowsImplicitlySelectedSubtypes */));
+        final boolean subtypeExplicitlyEnabled = checkIfSubtypeBelongsToList(subtype,
+                getMyEnabledInputMethodSubtypeList(false /* allowsImplicitlySelectedSubtypes */));
         return subtypeEnabled && !subtypeExplicitlyEnabled;
     }
 
-    public boolean checkIfSubtypeBelongsToImeAndEnabled(final InputMethodInfo imi,
-            final InputMethodSubtype subtype) {
-        return checkIfSubtypeBelongsToList(subtype, getEnabledInputMethodSubtypeList(imi,
-                true /* allowsImplicitlySelectedSubtypes */));
-    }
-
     private static boolean checkIfSubtypeBelongsToList(final InputMethodSubtype subtype,
             final List<InputMethodSubtype> subtypes) {
         return getSubtypeIndexInList(subtype, subtypes) != INDEX_NOT_FOUND;
@@ -281,26 +318,40 @@
         return INDEX_NOT_FOUND;
     }
 
-    public boolean checkIfSubtypeBelongsToThisIme(final InputMethodSubtype subtype) {
-        return getSubtypeIndexInIme(subtype, getInputMethodInfoOfThisIme()) != INDEX_NOT_FOUND;
-    }
-
-    private static int getSubtypeIndexInIme(final InputMethodSubtype subtype,
-            final InputMethodInfo imi) {
-        final int count = imi.getSubtypeCount();
-        for (int index = 0; index < count; index++) {
-            final InputMethodSubtype ims = imi.getSubtypeAt(index);
-            if (ims.equals(subtype)) {
-                return index;
-            }
+    public void onSubtypeChanged(@Nonnull final InputMethodSubtype newSubtype) {
+        updateCurrentSubtype(newSubtype);
+        updateShortcutIme();
+        if (DEBUG) {
+            Log.w(TAG, "onSubtypeChanged: " + mCurrentRichInputMethodSubtype.getNameForLogging());
         }
-        return INDEX_NOT_FOUND;
     }
 
-    public InputMethodSubtype getCurrentInputMethodSubtype(
-            final InputMethodSubtype defaultSubtype) {
-        final InputMethodSubtype currentSubtype = mImmWrapper.mImm.getCurrentInputMethodSubtype();
-        return (currentSubtype != null) ? currentSubtype : defaultSubtype;
+    private static RichInputMethodSubtype sForcedSubtypeForTesting = null;
+
+    @UsedForTesting
+    static void forceSubtype(@Nonnull final InputMethodSubtype subtype) {
+        sForcedSubtypeForTesting = RichInputMethodSubtype.getRichInputMethodSubtype(subtype);
+    }
+
+    @Nonnull
+    public Locale getCurrentSubtypeLocale() {
+        if (null != sForcedSubtypeForTesting) {
+            return sForcedSubtypeForTesting.getLocale();
+        }
+        return getCurrentSubtype().getLocale();
+    }
+
+    @Nonnull
+    public RichInputMethodSubtype getCurrentSubtype() {
+        if (null != sForcedSubtypeForTesting) {
+            return sForcedSubtypeForTesting;
+        }
+        return mCurrentRichInputMethodSubtype;
+    }
+
+
+    public String getCombiningRulesExtraValueOfCurrentSubtype() {
+        return SubtypeLocaleUtils.getCombiningRulesExtraValue(getCurrentSubtype().getRawSubtype());
     }
 
     public boolean hasMultipleEnabledIMEsOrSubtypes(final boolean shouldIncludeAuxiliarySubtypes) {
@@ -343,7 +394,6 @@
             // subtypes should be counted as well.
             if (nonAuxCount > 0 || (shouldIncludeAuxiliarySubtypes && auxCount > 1)) {
                 ++filteredImisCount;
-                continue;
             }
         }
 
@@ -388,27 +438,19 @@
                 getInputMethodIdOfThisIme(), subtypes);
         // Clear the cache so that we go read the {@link InputMethodInfo} of this IME and list of
         // subtypes again next time.
-        clearSubtypeCaches();
+        refreshSubtypeCaches();
     }
 
     private List<InputMethodSubtype> getEnabledInputMethodSubtypeList(final InputMethodInfo imi,
             final boolean allowsImplicitlySelectedSubtypes) {
-        final HashMap<InputMethodInfo, List<InputMethodSubtype>> cache =
-                allowsImplicitlySelectedSubtypes
-                ? mSubtypeListCacheWithImplicitlySelectedSubtypes
-                : mSubtypeListCacheWithoutImplicitlySelectedSubtypes;
-        final List<InputMethodSubtype> cachedList = cache.get(imi);
-        if (null != cachedList) return cachedList;
-        final List<InputMethodSubtype> result = mImmWrapper.mImm.getEnabledInputMethodSubtypeList(
+        return mInputMethodInfoCache.getEnabledInputMethodSubtypeList(
                 imi, allowsImplicitlySelectedSubtypes);
-        cache.put(imi, result);
-        return result;
     }
 
-    public void clearSubtypeCaches() {
-        mSubtypeListCacheWithImplicitlySelectedSubtypes.clear();
-        mSubtypeListCacheWithoutImplicitlySelectedSubtypes.clear();
+    public void refreshSubtypeCaches() {
         mInputMethodInfoCache.clear();
+        updateCurrentSubtype(mImmWrapper.mImm.getCurrentInputMethodSubtype());
+        updateShortcutIme();
     }
 
     public boolean shouldOfferSwitchingToNextInputMethod(final IBinder binder,
@@ -421,4 +463,109 @@
         }
         return mImmWrapper.shouldOfferSwitchingToNextInputMethod(binder);
     }
+
+    public boolean isSystemLocaleSameAsLocaleOfAllEnabledSubtypesOfEnabledImes() {
+        final Locale systemLocale = mContext.getResources().getConfiguration().locale;
+        final Set<InputMethodSubtype> enabledSubtypesOfEnabledImes = new HashSet<>();
+        final InputMethodManager inputMethodManager = getInputMethodManager();
+        final List<InputMethodInfo> enabledInputMethodInfoList =
+                inputMethodManager.getEnabledInputMethodList();
+        for (final InputMethodInfo info : enabledInputMethodInfoList) {
+            final List<InputMethodSubtype> enabledSubtypes =
+                    inputMethodManager.getEnabledInputMethodSubtypeList(
+                            info, true /* allowsImplicitlySelectedSubtypes */);
+            if (enabledSubtypes.isEmpty()) {
+                // An IME with no subtypes is found.
+                return false;
+            }
+            enabledSubtypesOfEnabledImes.addAll(enabledSubtypes);
+        }
+        for (final InputMethodSubtype subtype : enabledSubtypesOfEnabledImes) {
+            if (!subtype.isAuxiliary() && !subtype.getLocale().isEmpty()
+                    && !systemLocale.equals(SubtypeLocaleUtils.getSubtypeLocale(subtype))) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    private void updateCurrentSubtype(@Nullable final InputMethodSubtype subtype) {
+        mCurrentRichInputMethodSubtype = RichInputMethodSubtype.getRichInputMethodSubtype(subtype);
+    }
+
+    private void updateShortcutIme() {
+        if (DEBUG) {
+            Log.d(TAG, "Update shortcut IME from : "
+                    + (mShortcutInputMethodInfo == null
+                            ? "<null>" : mShortcutInputMethodInfo.getId()) + ", "
+                    + (mShortcutSubtype == null ? "<null>" : (
+                            mShortcutSubtype.getLocale() + ", " + mShortcutSubtype.getMode())));
+        }
+        final RichInputMethodSubtype richSubtype = mCurrentRichInputMethodSubtype;
+        final boolean implicitlyEnabledSubtype = checkIfSubtypeBelongsToThisImeAndImplicitlyEnabled(
+                richSubtype.getRawSubtype());
+        final Locale systemLocale = mContext.getResources().getConfiguration().locale;
+        LanguageOnSpacebarUtils.onSubtypeChanged(
+                richSubtype, implicitlyEnabledSubtype, systemLocale);
+        LanguageOnSpacebarUtils.setEnabledSubtypes(getMyEnabledInputMethodSubtypeList(
+                true /* allowsImplicitlySelectedSubtypes */));
+
+        // TODO: Update an icon for shortcut IME
+        final Map<InputMethodInfo, List<InputMethodSubtype>> shortcuts =
+                getInputMethodManager().getShortcutInputMethodsAndSubtypes();
+        mShortcutInputMethodInfo = null;
+        mShortcutSubtype = null;
+        for (final InputMethodInfo imi : shortcuts.keySet()) {
+            final List<InputMethodSubtype> subtypes = shortcuts.get(imi);
+            // TODO: Returns the first found IMI for now. Should handle all shortcuts as
+            // appropriate.
+            mShortcutInputMethodInfo = imi;
+            // TODO: Pick up the first found subtype for now. Should handle all subtypes
+            // as appropriate.
+            mShortcutSubtype = subtypes.size() > 0 ? subtypes.get(0) : null;
+            break;
+        }
+        if (DEBUG) {
+            Log.d(TAG, "Update shortcut IME to : "
+                    + (mShortcutInputMethodInfo == null
+                            ? "<null>" : mShortcutInputMethodInfo.getId()) + ", "
+                    + (mShortcutSubtype == null ? "<null>" : (
+                            mShortcutSubtype.getLocale() + ", " + mShortcutSubtype.getMode())));
+        }
+    }
+
+    public void switchToShortcutIme(final InputMethodService context) {
+        if (mShortcutInputMethodInfo == null) {
+            return;
+        }
+
+        final String imiId = mShortcutInputMethodInfo.getId();
+        switchToTargetIME(imiId, mShortcutSubtype, context);
+    }
+
+    private void switchToTargetIME(final String imiId, final InputMethodSubtype subtype,
+            final InputMethodService context) {
+        final IBinder token = context.getWindow().getWindow().getAttributes().token;
+        if (token == null) {
+            return;
+        }
+        final InputMethodManager imm = getInputMethodManager();
+        new AsyncTask<Void, Void, Void>() {
+            @Override
+            protected Void doInBackground(Void... params) {
+                imm.setInputMethodAndSubtype(token, imiId, subtype);
+                return null;
+            }
+        }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+    }
+
+    public boolean isShortcutImeReady() {
+        if (mShortcutInputMethodInfo == null) {
+            return false;
+        }
+        if (mShortcutSubtype == null) {
+            return true;
+        }
+        return true;
+    }
 }
diff --git a/java/src/com/android/inputmethod/latin/RichInputMethodSubtype.java b/java/src/com/android/inputmethod/latin/RichInputMethodSubtype.java
new file mode 100644
index 0000000..9d7849f
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/RichInputMethodSubtype.java
@@ -0,0 +1,227 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin;
+
+import static com.android.inputmethod.latin.common.Constants.Subtype.KEYBOARD_MODE;
+
+import android.util.Log;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.compat.InputMethodSubtypeCompatUtils;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.LocaleUtils;
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+import java.util.Locale;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+/**
+ * Enrichment class for InputMethodSubtype to enable concurrent multi-lingual input.
+ *
+ * Right now, this returns the extra value of its primary subtype.
+ */
+// non final for easy mocking.
+public class RichInputMethodSubtype {
+    private static final String TAG = RichInputMethodSubtype.class.getSimpleName();
+
+    @Nonnull
+    private final InputMethodSubtype mSubtype;
+    @Nonnull
+    private final Locale mLocale;
+
+    public RichInputMethodSubtype(@Nonnull final InputMethodSubtype subtype) {
+        mSubtype = subtype;
+        mLocale = LocaleUtils.constructLocaleFromString(mSubtype.getLocale());
+    }
+
+    // Extra values are determined by the primary subtype. This is probably right, but
+    // we may have to revisit this later.
+    public String getExtraValueOf(@Nonnull final String key) {
+        return mSubtype.getExtraValueOf(key);
+    }
+
+    // The mode is also determined by the primary subtype.
+    public String getMode() {
+        return mSubtype.getMode();
+    }
+
+    public boolean isNoLanguage() {
+        return SubtypeLocaleUtils.NO_LANGUAGE.equals(mSubtype.getLocale());
+    }
+
+    public String getNameForLogging() {
+        return toString();
+    }
+
+    // InputMethodSubtype's display name for spacebar text in its locale.
+    //        isAdditionalSubtype (T=true, F=false)
+    // locale layout  |  Middle      Full
+    // ------ ------- - --------- ----------------------
+    //  en_US qwerty  F  English   English (US)           exception
+    //  en_GB qwerty  F  English   English (UK)           exception
+    //  es_US spanish F  Español   Español (EE.UU.)       exception
+    //  fr    azerty  F  Français  Français
+    //  fr_CA qwerty  F  Français  Français (Canada)
+    //  fr_CH swiss   F  Français  Français (Suisse)
+    //  de    qwertz  F  Deutsch   Deutsch
+    //  de_CH swiss   T  Deutsch   Deutsch (Schweiz)
+    //  zz    qwerty  F  QWERTY    QWERTY
+    //  fr    qwertz  T  Français  Français
+    //  de    qwerty  T  Deutsch   Deutsch
+    //  en_US azerty  T  English   English (US)
+    //  zz    azerty  T  AZERTY    AZERTY
+    // Get the RichInputMethodSubtype's full display name in its locale.
+    @Nonnull
+    public String getFullDisplayName() {
+        if (isNoLanguage()) {
+            return SubtypeLocaleUtils.getKeyboardLayoutSetDisplayName(mSubtype);
+        }
+        return SubtypeLocaleUtils.getSubtypeLocaleDisplayName(mSubtype.getLocale());
+    }
+
+    // Get the RichInputMethodSubtype's middle display name in its locale.
+    @Nonnull
+    public String getMiddleDisplayName() {
+        if (isNoLanguage()) {
+            return SubtypeLocaleUtils.getKeyboardLayoutSetDisplayName(mSubtype);
+        }
+        return SubtypeLocaleUtils.getSubtypeLanguageDisplayName(mSubtype.getLocale());
+    }
+
+    @Override
+    public boolean equals(final Object o) {
+        if (!(o instanceof RichInputMethodSubtype)) {
+            return false;
+        }
+        final RichInputMethodSubtype other = (RichInputMethodSubtype)o;
+        return mSubtype.equals(other.mSubtype) && mLocale.equals(other.mLocale);
+    }
+
+    @Override
+    public int hashCode() {
+        return mSubtype.hashCode() + mLocale.hashCode();
+    }
+
+    @Override
+    public String toString() {
+        return "Multi-lingual subtype: " + mSubtype + ", " + mLocale;
+    }
+
+    @Nonnull
+    public Locale getLocale() {
+        return mLocale;
+    }
+
+    public boolean isRtlSubtype() {
+        // The subtype is considered RTL if the language of the main subtype is RTL.
+        return LocaleUtils.isRtlLanguage(mLocale);
+    }
+
+    // TODO: remove this method
+    @Nonnull
+    public InputMethodSubtype getRawSubtype() { return mSubtype; }
+
+    @Nonnull
+    public String getKeyboardLayoutSetName() {
+        return SubtypeLocaleUtils.getKeyboardLayoutSetName(mSubtype);
+    }
+
+    public static RichInputMethodSubtype getRichInputMethodSubtype(
+            @Nullable final InputMethodSubtype subtype) {
+        if (subtype == null) {
+            return getNoLanguageSubtype();
+        } else {
+            return new RichInputMethodSubtype(subtype);
+        }
+    }
+
+    // Dummy no language QWERTY subtype. See {@link R.xml.method}.
+    private static final int SUBTYPE_ID_OF_DUMMY_NO_LANGUAGE_SUBTYPE = 0xdde0bfd3;
+    private static final String EXTRA_VALUE_OF_DUMMY_NO_LANGUAGE_SUBTYPE =
+            "KeyboardLayoutSet=" + SubtypeLocaleUtils.QWERTY
+            + "," + Constants.Subtype.ExtraValue.ASCII_CAPABLE
+            + "," + Constants.Subtype.ExtraValue.ENABLED_WHEN_DEFAULT_IS_NOT_ASCII_CAPABLE
+            + "," + Constants.Subtype.ExtraValue.EMOJI_CAPABLE;
+    @Nonnull
+    private static final RichInputMethodSubtype DUMMY_NO_LANGUAGE_SUBTYPE =
+            new RichInputMethodSubtype(InputMethodSubtypeCompatUtils.newInputMethodSubtype(
+                    R.string.subtype_no_language_qwerty, R.drawable.ic_ime_switcher_dark,
+                    SubtypeLocaleUtils.NO_LANGUAGE, KEYBOARD_MODE,
+                    EXTRA_VALUE_OF_DUMMY_NO_LANGUAGE_SUBTYPE,
+                    false /* isAuxiliary */, false /* overridesImplicitlyEnabledSubtype */,
+                    SUBTYPE_ID_OF_DUMMY_NO_LANGUAGE_SUBTYPE));
+    // Caveat: We probably should remove this when we add an Emoji subtype in {@link R.xml.method}.
+    // Dummy Emoji subtype. See {@link R.xml.method}.
+    private static final int SUBTYPE_ID_OF_DUMMY_EMOJI_SUBTYPE = 0xd78b2ed0;
+    private static final String EXTRA_VALUE_OF_DUMMY_EMOJI_SUBTYPE =
+            "KeyboardLayoutSet=" + SubtypeLocaleUtils.EMOJI
+            + "," + Constants.Subtype.ExtraValue.EMOJI_CAPABLE;
+    @Nonnull
+    private static final RichInputMethodSubtype DUMMY_EMOJI_SUBTYPE = new RichInputMethodSubtype(
+            InputMethodSubtypeCompatUtils.newInputMethodSubtype(
+                    R.string.subtype_emoji, R.drawable.ic_ime_switcher_dark,
+                    SubtypeLocaleUtils.NO_LANGUAGE, KEYBOARD_MODE,
+                    EXTRA_VALUE_OF_DUMMY_EMOJI_SUBTYPE,
+                    false /* isAuxiliary */, false /* overridesImplicitlyEnabledSubtype */,
+                    SUBTYPE_ID_OF_DUMMY_EMOJI_SUBTYPE));
+    private static RichInputMethodSubtype sNoLanguageSubtype;
+    private static RichInputMethodSubtype sEmojiSubtype;
+
+    @Nonnull
+    public static RichInputMethodSubtype getNoLanguageSubtype() {
+        RichInputMethodSubtype noLanguageSubtype = sNoLanguageSubtype;
+        if (noLanguageSubtype == null) {
+            final InputMethodSubtype rawNoLanguageSubtype = RichInputMethodManager.getInstance()
+                    .findSubtypeByLocaleAndKeyboardLayoutSet(
+                            SubtypeLocaleUtils.NO_LANGUAGE, SubtypeLocaleUtils.QWERTY);
+            if (rawNoLanguageSubtype != null) {
+                noLanguageSubtype = new RichInputMethodSubtype(rawNoLanguageSubtype);
+            }
+        }
+        if (noLanguageSubtype != null) {
+            sNoLanguageSubtype = noLanguageSubtype;
+            return noLanguageSubtype;
+        }
+        Log.w(TAG, "Can't find any language with QWERTY subtype");
+        Log.w(TAG, "No input method subtype found; returning dummy subtype: "
+                + DUMMY_NO_LANGUAGE_SUBTYPE);
+        return DUMMY_NO_LANGUAGE_SUBTYPE;
+    }
+
+    @Nonnull
+    public static RichInputMethodSubtype getEmojiSubtype() {
+        RichInputMethodSubtype emojiSubtype = sEmojiSubtype;
+        if (emojiSubtype == null) {
+            final InputMethodSubtype rawEmojiSubtype = RichInputMethodManager.getInstance()
+                    .findSubtypeByLocaleAndKeyboardLayoutSet(
+                            SubtypeLocaleUtils.NO_LANGUAGE, SubtypeLocaleUtils.EMOJI);
+            if (rawEmojiSubtype != null) {
+                emojiSubtype = new RichInputMethodSubtype(rawEmojiSubtype);
+            }
+        }
+        if (emojiSubtype != null) {
+            sEmojiSubtype = emojiSubtype;
+            return emojiSubtype;
+        }
+        Log.w(TAG, "Can't find emoji subtype");
+        Log.w(TAG, "No input method subtype found; returning dummy subtype: "
+                + DUMMY_EMOJI_SUBTYPE);
+        return DUMMY_EMOJI_SUBTYPE;
+    }
+}
diff --git a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
deleted file mode 100644
index a725e16..0000000
--- a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
+++ /dev/null
@@ -1,333 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin;
-
-import static com.android.inputmethod.latin.Constants.Subtype.ExtraValue.REQ_NETWORK_CONNECTIVITY;
-
-import android.content.Context;
-import android.content.Intent;
-import android.content.res.Resources;
-import android.inputmethodservice.InputMethodService;
-import android.net.ConnectivityManager;
-import android.net.NetworkInfo;
-import android.os.AsyncTask;
-import android.os.IBinder;
-import android.util.Log;
-import android.view.inputmethod.InputMethodInfo;
-import android.view.inputmethod.InputMethodManager;
-import android.view.inputmethod.InputMethodSubtype;
-
-import com.android.inputmethod.annotations.UsedForTesting;
-import com.android.inputmethod.compat.InputMethodSubtypeCompatUtils;
-import com.android.inputmethod.keyboard.KeyboardSwitcher;
-import com.android.inputmethod.keyboard.internal.LanguageOnSpacebarHelper;
-import com.android.inputmethod.latin.define.DebugFlags;
-import com.android.inputmethod.latin.utils.LocaleUtils;
-import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
-
-import java.util.HashSet;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-
-public final class SubtypeSwitcher {
-    private static boolean DBG = DebugFlags.DEBUG_ENABLED;
-    private static final String TAG = SubtypeSwitcher.class.getSimpleName();
-
-    private static final SubtypeSwitcher sInstance = new SubtypeSwitcher();
-
-    private /* final */ RichInputMethodManager mRichImm;
-    private /* final */ Resources mResources;
-
-    private final LanguageOnSpacebarHelper mLanguageOnSpacebarHelper =
-            new LanguageOnSpacebarHelper();
-    private InputMethodInfo mShortcutInputMethodInfo;
-    private InputMethodSubtype mShortcutSubtype;
-    private InputMethodSubtype mNoLanguageSubtype;
-    private InputMethodSubtype mEmojiSubtype;
-    private boolean mIsNetworkConnected;
-
-    private static final String KEYBOARD_MODE = "keyboard";
-    // Dummy no language QWERTY subtype. See {@link R.xml.method}.
-    private static final int SUBTYPE_ID_OF_DUMMY_NO_LANGUAGE_SUBTYPE = 0xdde0bfd3;
-    private static final String EXTRA_VALUE_OF_DUMMY_NO_LANGUAGE_SUBTYPE =
-            "KeyboardLayoutSet=" + SubtypeLocaleUtils.QWERTY
-            + "," + Constants.Subtype.ExtraValue.ASCII_CAPABLE
-            + "," + Constants.Subtype.ExtraValue.ENABLED_WHEN_DEFAULT_IS_NOT_ASCII_CAPABLE
-            + "," + Constants.Subtype.ExtraValue.EMOJI_CAPABLE;
-    private static final InputMethodSubtype DUMMY_NO_LANGUAGE_SUBTYPE =
-            InputMethodSubtypeCompatUtils.newInputMethodSubtype(
-                    R.string.subtype_no_language_qwerty, R.drawable.ic_ime_switcher_dark,
-                    SubtypeLocaleUtils.NO_LANGUAGE, KEYBOARD_MODE,
-                    EXTRA_VALUE_OF_DUMMY_NO_LANGUAGE_SUBTYPE,
-                    false /* isAuxiliary */, false /* overridesImplicitlyEnabledSubtype */,
-                    SUBTYPE_ID_OF_DUMMY_NO_LANGUAGE_SUBTYPE);
-    // Caveat: We probably should remove this when we add an Emoji subtype in {@link R.xml.method}.
-    // Dummy Emoji subtype. See {@link R.xml.method}.
-    private static final int SUBTYPE_ID_OF_DUMMY_EMOJI_SUBTYPE = 0xd78b2ed0;
-    private static final String EXTRA_VALUE_OF_DUMMY_EMOJI_SUBTYPE =
-            "KeyboardLayoutSet=" + SubtypeLocaleUtils.EMOJI
-            + "," + Constants.Subtype.ExtraValue.EMOJI_CAPABLE;
-    private static final InputMethodSubtype DUMMY_EMOJI_SUBTYPE =
-            InputMethodSubtypeCompatUtils.newInputMethodSubtype(
-                    R.string.subtype_emoji, R.drawable.ic_ime_switcher_dark,
-                    SubtypeLocaleUtils.NO_LANGUAGE, KEYBOARD_MODE,
-                    EXTRA_VALUE_OF_DUMMY_EMOJI_SUBTYPE,
-                    false /* isAuxiliary */, false /* overridesImplicitlyEnabledSubtype */,
-                    SUBTYPE_ID_OF_DUMMY_EMOJI_SUBTYPE);
-
-    public static SubtypeSwitcher getInstance() {
-        return sInstance;
-    }
-
-    public static void init(final Context context) {
-        SubtypeLocaleUtils.init(context);
-        RichInputMethodManager.init(context);
-        sInstance.initialize(context);
-    }
-
-    private SubtypeSwitcher() {
-        // Intentional empty constructor for singleton.
-    }
-
-    private void initialize(final Context context) {
-        if (mResources != null) {
-            return;
-        }
-        mResources = context.getResources();
-        mRichImm = RichInputMethodManager.getInstance();
-        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(
-                Context.CONNECTIVITY_SERVICE);
-
-        final NetworkInfo info = connectivityManager.getActiveNetworkInfo();
-        mIsNetworkConnected = (info != null && info.isConnected());
-
-        onSubtypeChanged(getCurrentSubtype());
-        updateParametersOnStartInputView();
-    }
-
-    /**
-     * Update parameters which are changed outside LatinIME. This parameters affect UI so that they
-     * should be updated every time onStartInputView is called.
-     */
-    public void updateParametersOnStartInputView() {
-        final List<InputMethodSubtype> enabledSubtypesOfThisIme =
-                mRichImm.getMyEnabledInputMethodSubtypeList(true);
-        mLanguageOnSpacebarHelper.updateEnabledSubtypes(enabledSubtypesOfThisIme);
-        updateShortcutIME();
-    }
-
-    private void updateShortcutIME() {
-        if (DBG) {
-            Log.d(TAG, "Update shortcut IME from : "
-                    + (mShortcutInputMethodInfo == null
-                            ? "<null>" : mShortcutInputMethodInfo.getId()) + ", "
-                    + (mShortcutSubtype == null ? "<null>" : (
-                            mShortcutSubtype.getLocale() + ", " + mShortcutSubtype.getMode())));
-        }
-        // TODO: Update an icon for shortcut IME
-        final Map<InputMethodInfo, List<InputMethodSubtype>> shortcuts =
-                mRichImm.getInputMethodManager().getShortcutInputMethodsAndSubtypes();
-        mShortcutInputMethodInfo = null;
-        mShortcutSubtype = null;
-        for (final InputMethodInfo imi : shortcuts.keySet()) {
-            final List<InputMethodSubtype> subtypes = shortcuts.get(imi);
-            // TODO: Returns the first found IMI for now. Should handle all shortcuts as
-            // appropriate.
-            mShortcutInputMethodInfo = imi;
-            // TODO: Pick up the first found subtype for now. Should handle all subtypes
-            // as appropriate.
-            mShortcutSubtype = subtypes.size() > 0 ? subtypes.get(0) : null;
-            break;
-        }
-        if (DBG) {
-            Log.d(TAG, "Update shortcut IME to : "
-                    + (mShortcutInputMethodInfo == null
-                            ? "<null>" : mShortcutInputMethodInfo.getId()) + ", "
-                    + (mShortcutSubtype == null ? "<null>" : (
-                            mShortcutSubtype.getLocale() + ", " + mShortcutSubtype.getMode())));
-        }
-    }
-
-    // Update the current subtype. LatinIME.onCurrentInputMethodSubtypeChanged calls this function.
-    public void onSubtypeChanged(final InputMethodSubtype newSubtype) {
-        if (DBG) {
-            Log.w(TAG, "onSubtypeChanged: "
-                    + SubtypeLocaleUtils.getSubtypeNameForLogging(newSubtype));
-        }
-
-        final Locale newLocale = SubtypeLocaleUtils.getSubtypeLocale(newSubtype);
-        final Locale systemLocale = mResources.getConfiguration().locale;
-        final boolean sameLocale = systemLocale.equals(newLocale);
-        final boolean sameLanguage = systemLocale.getLanguage().equals(newLocale.getLanguage());
-        final boolean implicitlyEnabled =
-                mRichImm.checkIfSubtypeBelongsToThisImeAndImplicitlyEnabled(newSubtype);
-        mLanguageOnSpacebarHelper.updateIsSystemLanguageSameAsInputLanguage(
-                sameLocale || (sameLanguage && implicitlyEnabled));
-
-        updateShortcutIME();
-    }
-
-    ////////////////////////////
-    // Shortcut IME functions //
-    ////////////////////////////
-
-    public void switchToShortcutIME(final InputMethodService context) {
-        if (mShortcutInputMethodInfo == null) {
-            return;
-        }
-
-        final String imiId = mShortcutInputMethodInfo.getId();
-        switchToTargetIME(imiId, mShortcutSubtype, context);
-    }
-
-    private void switchToTargetIME(final String imiId, final InputMethodSubtype subtype,
-            final InputMethodService context) {
-        final IBinder token = context.getWindow().getWindow().getAttributes().token;
-        if (token == null) {
-            return;
-        }
-        final InputMethodManager imm = mRichImm.getInputMethodManager();
-        new AsyncTask<Void, Void, Void>() {
-            @Override
-            protected Void doInBackground(Void... params) {
-                imm.setInputMethodAndSubtype(token, imiId, subtype);
-                return null;
-            }
-        }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
-    }
-
-    public boolean isShortcutImeEnabled() {
-        updateShortcutIME();
-        if (mShortcutInputMethodInfo == null) {
-            return false;
-        }
-        if (mShortcutSubtype == null) {
-            return true;
-        }
-        return mRichImm.checkIfSubtypeBelongsToImeAndEnabled(
-                mShortcutInputMethodInfo, mShortcutSubtype);
-    }
-
-    public boolean isShortcutImeReady() {
-        updateShortcutIME();
-        if (mShortcutInputMethodInfo == null) {
-            return false;
-        }
-        if (mShortcutSubtype == null) {
-            return true;
-        }
-        if (mShortcutSubtype.containsExtraValueKey(REQ_NETWORK_CONNECTIVITY)) {
-            return mIsNetworkConnected;
-        }
-        return true;
-    }
-
-    public void onNetworkStateChanged(final Intent intent) {
-        final boolean noConnection = intent.getBooleanExtra(
-                ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
-        mIsNetworkConnected = !noConnection;
-
-        KeyboardSwitcher.getInstance().onNetworkStateChanged();
-    }
-
-    //////////////////////////////////
-    // Subtype Switching functions //
-    //////////////////////////////////
-
-    public int getLanguageOnSpacebarFormatType(final InputMethodSubtype subtype) {
-        return mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(subtype);
-    }
-
-    public boolean isSystemLocaleSameAsLocaleOfAllEnabledSubtypesOfEnabledImes() {
-        final Locale systemLocale = mResources.getConfiguration().locale;
-        final Set<InputMethodSubtype> enabledSubtypesOfEnabledImes = new HashSet<>();
-        final InputMethodManager inputMethodManager = mRichImm.getInputMethodManager();
-        final List<InputMethodInfo> enabledInputMethodInfoList =
-                inputMethodManager.getEnabledInputMethodList();
-        for (final InputMethodInfo info : enabledInputMethodInfoList) {
-            final List<InputMethodSubtype> enabledSubtypes =
-                    inputMethodManager.getEnabledInputMethodSubtypeList(
-                            info, true /* allowsImplicitlySelectedSubtypes */);
-            if (enabledSubtypes.isEmpty()) {
-                // An IME with no subtypes is found.
-                return false;
-            }
-            enabledSubtypesOfEnabledImes.addAll(enabledSubtypes);
-        }
-        for (final InputMethodSubtype subtype : enabledSubtypesOfEnabledImes) {
-            if (!subtype.isAuxiliary() && !subtype.getLocale().isEmpty()
-                    && !systemLocale.equals(SubtypeLocaleUtils.getSubtypeLocale(subtype))) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    private static InputMethodSubtype sForcedSubtypeForTesting = null;
-    @UsedForTesting
-    void forceSubtype(final InputMethodSubtype subtype) {
-        sForcedSubtypeForTesting = subtype;
-    }
-
-    public Locale getCurrentSubtypeLocale() {
-        if (null != sForcedSubtypeForTesting) {
-            return LocaleUtils.constructLocaleFromString(sForcedSubtypeForTesting.getLocale());
-        }
-        return SubtypeLocaleUtils.getSubtypeLocale(getCurrentSubtype());
-    }
-
-    public InputMethodSubtype getCurrentSubtype() {
-        if (null != sForcedSubtypeForTesting) {
-            return sForcedSubtypeForTesting;
-        }
-        return mRichImm.getCurrentInputMethodSubtype(getNoLanguageSubtype());
-    }
-
-    public InputMethodSubtype getNoLanguageSubtype() {
-        if (mNoLanguageSubtype == null) {
-            mNoLanguageSubtype = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
-                    SubtypeLocaleUtils.NO_LANGUAGE, SubtypeLocaleUtils.QWERTY);
-        }
-        if (mNoLanguageSubtype != null) {
-            return mNoLanguageSubtype;
-        }
-        Log.w(TAG, "Can't find any language with QWERTY subtype");
-        Log.w(TAG, "No input method subtype found; returning dummy subtype: "
-                + DUMMY_NO_LANGUAGE_SUBTYPE);
-        return DUMMY_NO_LANGUAGE_SUBTYPE;
-    }
-
-    public InputMethodSubtype getEmojiSubtype() {
-        if (mEmojiSubtype == null) {
-            mEmojiSubtype = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
-                    SubtypeLocaleUtils.NO_LANGUAGE, SubtypeLocaleUtils.EMOJI);
-        }
-        if (mEmojiSubtype != null) {
-            return mEmojiSubtype;
-        }
-        Log.w(TAG, "Can't find emoji subtype");
-        Log.w(TAG, "No input method subtype found; returning dummy subtype: "
-                + DUMMY_EMOJI_SUBTYPE);
-        return DUMMY_EMOJI_SUBTYPE;
-    }
-
-    public String getCombiningRulesExtraValueOfCurrentSubtype() {
-        return SubtypeLocaleUtils.getCombiningRulesExtraValue(getCurrentSubtype());
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/Suggest.java b/java/src/com/android/inputmethod/latin/Suggest.java
index b03818c..7ccefd2 100644
--- a/java/src/com/android/inputmethod/latin/Suggest.java
+++ b/java/src/com/android/inputmethod/latin/Suggest.java
@@ -18,18 +18,25 @@
 
 import android.text.TextUtils;
 
-import com.android.inputmethod.keyboard.ProximityInfo;
+import static com.android.inputmethod.latin.define.DecoderSpecificConstants.SHOULD_AUTO_CORRECT_USING_NON_WHITE_LISTED_SUGGESTION;
+import static com.android.inputmethod.latin.define.DecoderSpecificConstants.SHOULD_REMOVE_PREVIOUSLY_REJECTED_SUGGESTION;
+
+import com.android.inputmethod.keyboard.Keyboard;
 import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.StringUtils;
 import com.android.inputmethod.latin.define.DebugFlags;
 import com.android.inputmethod.latin.settings.SettingsValuesForSuggestion;
 import com.android.inputmethod.latin.utils.AutoCorrectionUtils;
 import com.android.inputmethod.latin.utils.BinaryDictionaryUtils;
-import com.android.inputmethod.latin.utils.StringUtils;
 import com.android.inputmethod.latin.utils.SuggestionResults;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.Locale;
 
+import javax.annotation.Nonnull;
+
 /**
  * This class loads a dictionary and provides a list of suggestions for a given sequence of
  * characters. This includes corrections and completions.
@@ -49,34 +56,55 @@
     private static final boolean DBG = DebugFlags.DEBUG_ENABLED;
     private final DictionaryFacilitator mDictionaryFacilitator;
 
+    private static final int MAXIMUM_AUTO_CORRECT_LENGTH_FOR_GERMAN = 12;
+    private static final HashMap<String, Integer> sLanguageToMaximumAutoCorrectionWithSpaceLength =
+            new HashMap<>();
+    static {
+        // TODO: should we add Finnish here?
+        // TODO: This should not be hardcoded here but be written in the dictionary header
+        sLanguageToMaximumAutoCorrectionWithSpaceLength.put(Locale.GERMAN.getLanguage(),
+                MAXIMUM_AUTO_CORRECT_LENGTH_FOR_GERMAN);
+    }
+
     private float mAutoCorrectionThreshold;
+    private float mPlausibilityThreshold;
 
     public Suggest(final DictionaryFacilitator dictionaryFacilitator) {
         mDictionaryFacilitator = dictionaryFacilitator;
     }
 
-    public Locale getLocale() {
-        return mDictionaryFacilitator.getLocale();
-    }
-
+    /**
+     * Set the normalized-score threshold for a suggestion to be considered strong enough that we
+     * will auto-correct to this.
+     * @param threshold the threshold
+     */
     public void setAutoCorrectionThreshold(final float threshold) {
         mAutoCorrectionThreshold = threshold;
     }
 
+    /**
+     * Set the normalized-score threshold for what we consider a "plausible" suggestion, in
+     * the same dimension as the auto-correction threshold.
+     * @param threshold the threshold
+     */
+    public void setPlausibilityThreshold(final float threshold) {
+        mPlausibilityThreshold = threshold;
+    }
+
     public interface OnGetSuggestedWordsCallback {
         public void onGetSuggestedWords(final SuggestedWords suggestedWords);
     }
 
     public void getSuggestedWords(final WordComposer wordComposer,
-            final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo,
+            final NgramContext ngramContext, final Keyboard keyboard,
             final SettingsValuesForSuggestion settingsValuesForSuggestion,
             final boolean isCorrectionEnabled, final int inputStyle, final int sequenceNumber,
             final OnGetSuggestedWordsCallback callback) {
         if (wordComposer.isBatchMode()) {
-            getSuggestedWordsForBatchInput(wordComposer, prevWordsInfo, proximityInfo,
+            getSuggestedWordsForBatchInput(wordComposer, ngramContext, keyboard,
                     settingsValuesForSuggestion, inputStyle, sequenceNumber, callback);
         } else {
-            getSuggestedWordsForNonBatchInput(wordComposer, prevWordsInfo, proximityInfo,
+            getSuggestedWordsForNonBatchInput(wordComposer, ngramContext, keyboard,
                     settingsValuesForSuggestion, inputStyle, isCorrectionEnabled,
                     sequenceNumber, callback);
         }
@@ -84,7 +112,7 @@
 
     private static ArrayList<SuggestedWordInfo> getTransformedSuggestedWordInfoList(
             final WordComposer wordComposer, final SuggestionResults results,
-            final int trailingSingleQuotesCount) {
+            final int trailingSingleQuotesCount, final Locale defaultLocale) {
         final boolean shouldMakeSuggestionsAllUpperCase = wordComposer.isAllUpperCase()
                 && !wordComposer.isResumed();
         final boolean isOnlyFirstCharCapitalized =
@@ -96,16 +124,19 @@
                 || 0 != trailingSingleQuotesCount) {
             for (int i = 0; i < suggestionsCount; ++i) {
                 final SuggestedWordInfo wordInfo = suggestionsContainer.get(i);
+                final Locale wordLocale = wordInfo.mSourceDict.mLocale;
                 final SuggestedWordInfo transformedWordInfo = getTransformedSuggestedWordInfo(
-                        wordInfo, results.mLocale, shouldMakeSuggestionsAllUpperCase,
-                        isOnlyFirstCharCapitalized, trailingSingleQuotesCount);
+                        wordInfo, null == wordLocale ? defaultLocale : wordLocale,
+                        shouldMakeSuggestionsAllUpperCase, isOnlyFirstCharCapitalized,
+                        trailingSingleQuotesCount);
                 suggestionsContainer.set(i, transformedWordInfo);
             }
         }
         return suggestionsContainer;
     }
 
-    private static String getWhitelistedWordOrNull(final ArrayList<SuggestedWordInfo> suggestions) {
+    private static SuggestedWordInfo getWhitelistedWordInfoOrNull(
+            @Nonnull final ArrayList<SuggestedWordInfo> suggestions) {
         if (suggestions.isEmpty()) {
             return null;
         }
@@ -113,75 +144,124 @@
         if (!firstSuggestedWordInfo.isKindOf(SuggestedWordInfo.KIND_WHITELIST)) {
             return null;
         }
-        return firstSuggestedWordInfo.mWord;
+        return firstSuggestedWordInfo;
     }
 
     // Retrieves suggestions for non-batch input (typing, recorrection, predictions...)
     // and calls the callback function with the suggestions.
     private void getSuggestedWordsForNonBatchInput(final WordComposer wordComposer,
-            final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo,
+            final NgramContext ngramContext, final Keyboard keyboard,
             final SettingsValuesForSuggestion settingsValuesForSuggestion,
             final int inputStyleIfNotPrediction, final boolean isCorrectionEnabled,
             final int sequenceNumber, final OnGetSuggestedWordsCallback callback) {
-        final String typedWord = wordComposer.getTypedWord();
-        final int trailingSingleQuotesCount = StringUtils.getTrailingSingleQuotesCount(typedWord);
+        final String typedWordString = wordComposer.getTypedWord();
+        final int trailingSingleQuotesCount =
+                StringUtils.getTrailingSingleQuotesCount(typedWordString);
         final String consideredWord = trailingSingleQuotesCount > 0
-                ? typedWord.substring(0, typedWord.length() - trailingSingleQuotesCount)
-                : typedWord;
+                ? typedWordString.substring(0, typedWordString.length() - trailingSingleQuotesCount)
+                : typedWordString;
 
         final SuggestionResults suggestionResults = mDictionaryFacilitator.getSuggestionResults(
-                wordComposer, prevWordsInfo, proximityInfo, settingsValuesForSuggestion,
-                SESSION_ID_TYPING);
+                wordComposer.getComposedDataSnapshot(), ngramContext, keyboard,
+                settingsValuesForSuggestion, SESSION_ID_TYPING, inputStyleIfNotPrediction);
+        final Locale locale = mDictionaryFacilitator.getLocale();
         final ArrayList<SuggestedWordInfo> suggestionsContainer =
                 getTransformedSuggestedWordInfoList(wordComposer, suggestionResults,
-                        trailingSingleQuotesCount);
-        final boolean didRemoveTypedWord =
-                SuggestedWordInfo.removeDups(wordComposer.getTypedWord(), suggestionsContainer);
+                        trailingSingleQuotesCount, locale);
 
-        final String whitelistedWord = getWhitelistedWordOrNull(suggestionsContainer);
-        final boolean resultsArePredictions = !wordComposer.isComposingWord();
-
-        // We allow auto-correction if we have a whitelisted word, or if the word had more than
-        // one char and was not suggested.
-        final boolean allowsToBeAutoCorrected = (null != whitelistedWord)
-                || (consideredWord.length() > 1 && !didRemoveTypedWord);
-
-        final boolean hasAutoCorrection;
-        // TODO: using isCorrectionEnabled here is not very good. It's probably useless, because
-        // any attempt to do auto-correction is already shielded with a test for this flag; at the
-        // same time, it feels wrong that the SuggestedWord object includes information about
-        // the current settings. It may also be useful to know, when the setting is off, whether
-        // the word *would* have been auto-corrected.
-        if (!isCorrectionEnabled || !allowsToBeAutoCorrected || resultsArePredictions
-                || suggestionResults.isEmpty() || wordComposer.hasDigits()
-                || wordComposer.isMostlyCaps() || wordComposer.isResumed()
-                || !mDictionaryFacilitator.hasInitializedMainDictionary()
-                || suggestionResults.first().isKindOf(SuggestedWordInfo.KIND_SHORTCUT)) {
-            // If we don't have a main dictionary, we never want to auto-correct. The reason for
-            // this is, the user may have a contact whose name happens to match a valid word in
-            // their language, and it will unexpectedly auto-correct. For example, if the user
-            // types in English with no dictionary and has a "Will" in their contact list, "will"
-            // would always auto-correct to "Will" which is unwanted. Hence, no main dict => no
-            // auto-correct.
-            // Also, shortcuts should never auto-correct unless they are whitelist entries.
-            // TODO: we may want to have shortcut-only entries auto-correct in the future.
-            hasAutoCorrection = false;
-        } else {
-            hasAutoCorrection = AutoCorrectionUtils.suggestionExceedsAutoCorrectionThreshold(
-                    suggestionResults.first(), consideredWord, mAutoCorrectionThreshold);
+        boolean foundInDictionary = false;
+        Dictionary sourceDictionaryOfRemovedWord = null;
+        for (final SuggestedWordInfo info : suggestionsContainer) {
+            // Search for the best dictionary, defined as the first one with the highest match
+            // quality we can find.
+            if (!foundInDictionary && typedWordString.equals(info.mWord)) {
+                // Use this source if the old match had lower quality than this match
+                sourceDictionaryOfRemovedWord = info.mSourceDict;
+                foundInDictionary = true;
+                break;
+            }
         }
 
-        if (!TextUtils.isEmpty(typedWord)) {
-            suggestionsContainer.add(0, new SuggestedWordInfo(typedWord,
-                    SuggestedWordInfo.MAX_SCORE, SuggestedWordInfo.KIND_TYPED,
-                    Dictionary.DICTIONARY_USER_TYPED,
-                    SuggestedWordInfo.NOT_AN_INDEX /* indexOfTouchPointOfSecondWord */,
-                    SuggestedWordInfo.NOT_A_CONFIDENCE /* autoCommitFirstWordConfidence */));
+        final int firstOcurrenceOfTypedWordInSuggestions =
+                SuggestedWordInfo.removeDups(typedWordString, suggestionsContainer);
+
+        final SuggestedWordInfo whitelistedWordInfo =
+                getWhitelistedWordInfoOrNull(suggestionsContainer);
+        final String whitelistedWord = whitelistedWordInfo == null
+                ? null : whitelistedWordInfo.mWord;
+        final boolean resultsArePredictions = !wordComposer.isComposingWord();
+
+        // We allow auto-correction if whitelisting is not required or the word is whitelisted,
+        // or if the word had more than one char and was not suggested.
+        final boolean allowsToBeAutoCorrected =
+                (SHOULD_AUTO_CORRECT_USING_NON_WHITE_LISTED_SUGGESTION || whitelistedWord != null)
+                || (consideredWord.length() > 1 && (sourceDictionaryOfRemovedWord == null));
+
+        final boolean hasAutoCorrection;
+        // If correction is not enabled, we never auto-correct. This is for example for when
+        // the setting "Auto-correction" is "off": we still suggest, but we don't auto-correct.
+        if (!isCorrectionEnabled
+                // If the word does not allow to be auto-corrected, then we don't auto-correct.
+                || !allowsToBeAutoCorrected
+                // If we are doing prediction, then we never auto-correct of course
+                || resultsArePredictions
+                // If we don't have suggestion results, we can't evaluate the first suggestion
+                // for auto-correction
+                || suggestionResults.isEmpty()
+                // If the word has digits, we never auto-correct because it's likely the word
+                // was type with a lot of care
+                || wordComposer.hasDigits()
+                // If the word is mostly caps, we never auto-correct because this is almost
+                // certainly intentional (and careful input)
+                || wordComposer.isMostlyCaps()
+                // We never auto-correct when suggestions are resumed because it would be unexpected
+                || wordComposer.isResumed()
+                // If we don't have a main dictionary, we never want to auto-correct. The reason
+                // for this is, the user may have a contact whose name happens to match a valid
+                // word in their language, and it will unexpectedly auto-correct. For example, if
+                // the user types in English with no dictionary and has a "Will" in their contact
+                // list, "will" would always auto-correct to "Will" which is unwanted. Hence, no
+                // main dict => no auto-correct. Also, it would probably get obnoxious quickly.
+                // TODO: now that we have personalization, we may want to re-evaluate this decision
+                || !mDictionaryFacilitator.hasAtLeastOneInitializedMainDictionary()
+                // If the first suggestion is a shortcut we never auto-correct to it, regardless
+                // of how strong it is (whitelist entries are not KIND_SHORTCUT but KIND_WHITELIST).
+                // TODO: we may want to have shortcut-only entries auto-correct in the future.
+                || suggestionResults.first().isKindOf(SuggestedWordInfo.KIND_SHORTCUT)) {
+            hasAutoCorrection = false;
+        } else {
+            final SuggestedWordInfo firstSuggestion = suggestionResults.first();
+            if (suggestionResults.mFirstSuggestionExceedsConfidenceThreshold
+                    && firstOcurrenceOfTypedWordInSuggestions != 0) {
+                hasAutoCorrection = true;
+            } else if (!AutoCorrectionUtils.suggestionExceedsThreshold(
+                    firstSuggestion, consideredWord, mAutoCorrectionThreshold)) {
+                // Score is too low for autocorrect
+                hasAutoCorrection = false;
+            } else {
+                // We have a high score, so we need to check if this suggestion is in the correct
+                // form to allow auto-correcting to it in this language. For details of how this
+                // is determined, see #isAllowedByAutoCorrectionWithSpaceFilter.
+                // TODO: this should not have its own logic here but be handled by the dictionary.
+                hasAutoCorrection = isAllowedByAutoCorrectionWithSpaceFilter(firstSuggestion);
+            }
+        }
+
+        final SuggestedWordInfo typedWordInfo = new SuggestedWordInfo(typedWordString,
+                "" /* prevWordsContext */, SuggestedWordInfo.MAX_SCORE,
+                SuggestedWordInfo.KIND_TYPED,
+                null == sourceDictionaryOfRemovedWord ? Dictionary.DICTIONARY_USER_TYPED
+                        : sourceDictionaryOfRemovedWord,
+                SuggestedWordInfo.NOT_AN_INDEX /* indexOfTouchPointOfSecondWord */,
+                SuggestedWordInfo.NOT_A_CONFIDENCE /* autoCommitFirstWordConfidence */);
+        if (!TextUtils.isEmpty(typedWordString)) {
+            suggestionsContainer.add(0, typedWordInfo);
         }
 
         final ArrayList<SuggestedWordInfo> suggestionsList;
         if (DBG && !suggestionsContainer.isEmpty()) {
-            suggestionsList = getSuggestionsInfoListWithDebugInfo(typedWord, suggestionsContainer);
+            suggestionsList = getSuggestionsInfoListWithDebugInfo(typedWordString,
+                    suggestionsContainer);
         } else {
             suggestionsList = suggestionsContainer;
         }
@@ -194,12 +274,12 @@
         } else {
             inputStyle = inputStyleIfNotPrediction;
         }
+
+        final boolean isTypedWordValid = firstOcurrenceOfTypedWordInSuggestions > -1
+                || (!resultsArePredictions && !allowsToBeAutoCorrected);
         callback.onGetSuggestedWords(new SuggestedWords(suggestionsList,
-                suggestionResults.mRawSuggestions,
-                // TODO: this first argument is lying. If this is a whitelisted word which is an
-                // actual word, it says typedWordValid = false, which looks wrong. We should either
-                // rename the attribute or change the value.
-                !resultsArePredictions && !allowsToBeAutoCorrected /* typedWordValid */,
+                suggestionResults.mRawSuggestions, typedWordInfo,
+                isTypedWordValid,
                 hasAutoCorrection /* willAutoCorrect */,
                 false /* isObsoleteSuggestions */, inputStyle, sequenceNumber));
     }
@@ -207,13 +287,15 @@
     // Retrieves suggestions for the batch input
     // and calls the callback function with the suggestions.
     private void getSuggestedWordsForBatchInput(final WordComposer wordComposer,
-            final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo,
+            final NgramContext ngramContext, final Keyboard keyboard,
             final SettingsValuesForSuggestion settingsValuesForSuggestion,
             final int inputStyle, final int sequenceNumber,
             final OnGetSuggestedWordsCallback callback) {
         final SuggestionResults suggestionResults = mDictionaryFacilitator.getSuggestionResults(
-                wordComposer, prevWordsInfo, proximityInfo, settingsValuesForSuggestion,
-                SESSION_ID_GESTURE);
+                wordComposer.getComposedDataSnapshot(), ngramContext, keyboard,
+                settingsValuesForSuggestion, SESSION_ID_GESTURE, inputStyle);
+        // For transforming words that don't come from a dictionary, because it's our best bet
+        final Locale locale = mDictionaryFacilitator.getLocale();
         final ArrayList<SuggestedWordInfo> suggestionsContainer =
                 new ArrayList<>(suggestionResults);
         final int suggestionsCount = suggestionsContainer.size();
@@ -222,22 +304,25 @@
         if (isFirstCharCapitalized || isAllUpperCase) {
             for (int i = 0; i < suggestionsCount; ++i) {
                 final SuggestedWordInfo wordInfo = suggestionsContainer.get(i);
+                final Locale wordlocale = wordInfo.mSourceDict.mLocale;
                 final SuggestedWordInfo transformedWordInfo = getTransformedSuggestedWordInfo(
-                        wordInfo, suggestionResults.mLocale, isAllUpperCase, isFirstCharCapitalized,
-                        0 /* trailingSingleQuotesCount */);
+                        wordInfo, null == wordlocale ? locale : wordlocale, isAllUpperCase,
+                        isFirstCharCapitalized, 0 /* trailingSingleQuotesCount */);
                 suggestionsContainer.set(i, transformedWordInfo);
             }
         }
 
-        if (suggestionsContainer.size() > 1 && TextUtils.equals(suggestionsContainer.get(0).mWord,
-                wordComposer.getRejectedBatchModeSuggestion())) {
+        if (SHOULD_REMOVE_PREVIOUSLY_REJECTED_SUGGESTION
+                && suggestionsContainer.size() > 1
+                && TextUtils.equals(suggestionsContainer.get(0).mWord,
+                   wordComposer.getRejectedBatchModeSuggestion())) {
             final SuggestedWordInfo rejected = suggestionsContainer.remove(0);
             suggestionsContainer.add(1, rejected);
         }
         SuggestedWordInfo.removeDups(null /* typedWord */, suggestionsContainer);
 
         // For some reason some suggestions with MIN_VALUE are making their way here.
-        // TODO: Find a more robust way to detect distractors.
+        // TODO: Find a more robust way to detect distracters.
         for (int i = suggestionsContainer.size() - 1; i >= 0; --i) {
             if (suggestionsContainer.get(i).mScore < SUPPRESS_SUGGEST_THRESHOLD) {
                 suggestionsContainer.remove(i);
@@ -248,8 +333,12 @@
         // (typedWordValid=true), not as an "auto correct word" (willAutoCorrect=false).
         // Note that because this method is never used to get predictions, there is no need to
         // modify inputType such in getSuggestedWordsForNonBatchInput.
+        final SuggestedWordInfo pseudoTypedWordInfo = suggestionsContainer.isEmpty() ? null
+                : suggestionsContainer.get(0);
+
         callback.onGetSuggestedWords(new SuggestedWords(suggestionsContainer,
                 suggestionResults.mRawSuggestions,
+                pseudoTypedWordInfo,
                 true /* typedWordValid */,
                 false /* willAutoCorrect */,
                 false /* isObsoleteSuggestions */,
@@ -283,6 +372,41 @@
         return suggestionsList;
     }
 
+    /**
+     * Computes whether this suggestion should be blocked or not in this language
+     *
+     * This function implements a filter that avoids auto-correcting to suggestions that contain
+     * spaces that are above a certain language-dependent character limit. In languages like German
+     * where it's possible to concatenate many words, it often happens our dictionary does not
+     * have the longer words. In this case, we offer a lot of unhelpful suggestions that contain
+     * one or several spaces. Ideally we should understand what the user wants and display useful
+     * suggestions by improving the dictionary and possibly having some specific logic. Until
+     * that's possible we should avoid displaying unhelpful suggestions. But it's hard to tell
+     * whether a suggestion is useful or not. So at least for the time being we block
+     * auto-correction when the suggestion is long and contains a space, which should avoid the
+     * worst damage.
+     * This function is implementing that filter. If the language enforces no such limit, then it
+     * always returns true. If the suggestion contains no space, it also returns true. Otherwise,
+     * it checks the length against the language-specific limit.
+     *
+     * @param info the suggestion info
+     * @return whether it's fine to auto-correct to this.
+     */
+    private static boolean isAllowedByAutoCorrectionWithSpaceFilter(final SuggestedWordInfo info) {
+        final Locale locale = info.mSourceDict.mLocale;
+        if (null == locale) {
+            return true;
+        }
+        final Integer maximumLengthForThisLanguage =
+                sLanguageToMaximumAutoCorrectionWithSpaceLength.get(locale.getLanguage());
+        if (null == maximumLengthForThisLanguage) {
+            // This language does not enforce a maximum length to auto-correction
+            return true;
+        }
+        return info.mWord.length() <= maximumLengthForThisLanguage
+                || -1 == info.mWord.indexOf(Constants.CODE_SPACE);
+    }
+
     /* package for test */ static SuggestedWordInfo getTransformedSuggestedWordInfo(
             final SuggestedWordInfo wordInfo, final Locale locale, final boolean isAllUpperCase,
             final boolean isOnlyFirstCharCapitalized, final int trailingSingleQuotesCount) {
@@ -302,7 +426,8 @@
         for (int i = quotesToAppend - 1; i >= 0; --i) {
             sb.appendCodePoint(Constants.CODE_SINGLE_QUOTE);
         }
-        return new SuggestedWordInfo(sb.toString(), wordInfo.mScore, wordInfo.mKindAndFlags,
+        return new SuggestedWordInfo(sb.toString(), wordInfo.mPrevWordsContext,
+                wordInfo.mScore, wordInfo.mKindAndFlags,
                 wordInfo.mSourceDict, wordInfo.mIndexOfTouchPointOfSecondWord,
                 wordInfo.mAutoCommitFirstWordConfidence);
     }
diff --git a/java/src/com/android/inputmethod/latin/SuggestedWords.java b/java/src/com/android/inputmethod/latin/SuggestedWords.java
index 1d221b7..bcd4d5f 100644
--- a/java/src/com/android/inputmethod/latin/SuggestedWords.java
+++ b/java/src/com/android/inputmethod/latin/SuggestedWords.java
@@ -20,13 +20,16 @@
 import android.view.inputmethod.CompletionInfo;
 
 import com.android.inputmethod.annotations.UsedForTesting;
+import com.android.inputmethod.latin.common.StringUtils;
 import com.android.inputmethod.latin.define.DebugFlags;
-import com.android.inputmethod.latin.utils.StringUtils;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 public class SuggestedWords {
     public static final int INDEX_OF_TYPED_WORD = 0;
     public static final int INDEX_OF_AUTO_CORRECTION = 1;
@@ -45,11 +48,14 @@
     public static final int MAX_SUGGESTIONS = 18;
 
     private static final ArrayList<SuggestedWordInfo> EMPTY_WORD_INFO_LIST = new ArrayList<>(0);
-    public static final SuggestedWords EMPTY = new SuggestedWords(
-            EMPTY_WORD_INFO_LIST, null /* rawSuggestions */, false /* typedWordValid */,
-            false /* willAutoCorrect */, false /* isObsoleteSuggestions */, INPUT_STYLE_NONE);
+    @Nonnull
+    private static final SuggestedWords EMPTY = new SuggestedWords(
+            EMPTY_WORD_INFO_LIST, null /* rawSuggestions */, null /* typedWord */,
+            false /* typedWordValid */, false /* willAutoCorrect */,
+            false /* isObsoleteSuggestions */, INPUT_STYLE_NONE, NOT_A_SEQUENCE_NUMBER);
 
-    public final String mTypedWord;
+    @Nullable
+    public final SuggestedWordInfo mTypedWordInfo;
     public final boolean mTypedWordValid;
     // Note: this INCLUDES cases where the word will auto-correct to itself. A good definition
     // of what this flag means would be "the top suggestion is strong enough to auto-correct",
@@ -60,35 +66,14 @@
     // INPUT_STYLE_* constants above.
     public final int mInputStyle;
     public final int mSequenceNumber; // Sequence number for auto-commit.
+    @Nonnull
     protected final ArrayList<SuggestedWordInfo> mSuggestedWordInfoList;
+    @Nullable
     public final ArrayList<SuggestedWordInfo> mRawSuggestions;
 
-    public SuggestedWords(final ArrayList<SuggestedWordInfo> suggestedWordInfoList,
-            final ArrayList<SuggestedWordInfo> rawSuggestions,
-            final boolean typedWordValid,
-            final boolean willAutoCorrect,
-            final boolean isObsoleteSuggestions,
-            final int inputStyle) {
-        this(suggestedWordInfoList, rawSuggestions, typedWordValid, willAutoCorrect,
-                isObsoleteSuggestions, inputStyle, NOT_A_SEQUENCE_NUMBER);
-    }
-
-    public SuggestedWords(final ArrayList<SuggestedWordInfo> suggestedWordInfoList,
-            final ArrayList<SuggestedWordInfo> rawSuggestions,
-            final boolean typedWordValid,
-            final boolean willAutoCorrect,
-            final boolean isObsoleteSuggestions,
-            final int inputStyle,
-            final int sequenceNumber) {
-        this(suggestedWordInfoList, rawSuggestions,
-                (suggestedWordInfoList.isEmpty() || isPrediction(inputStyle)) ? null
-                        : suggestedWordInfoList.get(INDEX_OF_TYPED_WORD).mWord,
-                typedWordValid, willAutoCorrect, isObsoleteSuggestions, inputStyle, sequenceNumber);
-    }
-
-    public SuggestedWords(final ArrayList<SuggestedWordInfo> suggestedWordInfoList,
-            final ArrayList<SuggestedWordInfo> rawSuggestions,
-            final String typedWord,
+    public SuggestedWords(@Nonnull final ArrayList<SuggestedWordInfo> suggestedWordInfoList,
+            @Nullable final ArrayList<SuggestedWordInfo> rawSuggestions,
+            @Nullable final SuggestedWordInfo typedWordInfo,
             final boolean typedWordValid,
             final boolean willAutoCorrect,
             final boolean isObsoleteSuggestions,
@@ -101,7 +86,7 @@
         mIsObsoleteSuggestions = isObsoleteSuggestions;
         mInputStyle = inputStyle;
         mSequenceNumber = sequenceNumber;
-        mTypedWord = typedWord;
+        mTypedWordInfo = typedWordInfo;
     }
 
     public boolean isEmpty() {
@@ -113,6 +98,27 @@
     }
 
     /**
+     * Get suggested word to show as suggestions to UI.
+     *
+     * @param shouldShowLxxSuggestionUi true if showing suggestion UI introduced in LXX and later.
+     * @return the count of suggested word to show as suggestions to UI.
+     */
+    public int getWordCountToShow(final boolean shouldShowLxxSuggestionUi) {
+        if (isPrediction() || !shouldShowLxxSuggestionUi) {
+            return size();
+        }
+        return size() - /* typed word */ 1;
+    }
+
+    /**
+     * Get {@link SuggestedWordInfo} object for the typed word.
+     * @return The {@link SuggestedWordInfo} object for the typed word.
+     */
+    public SuggestedWordInfo getTypedWordInfo() {
+        return mTypedWordInfo;
+    }
+
+    /**
      * Get suggested word at <code>index</code>.
      * @param index The index of the suggested word.
      * @return The suggested word.
@@ -142,6 +148,15 @@
         return mSuggestedWordInfoList.get(index);
     }
 
+    /**
+     * Gets the suggestion index from the suggestions list.
+     * @param suggestedWordInfo The {@link SuggestedWordInfo} to find the index.
+     * @return The position of the suggestion in the suggestion list.
+     */
+    public int indexOf(SuggestedWordInfo suggestedWordInfo) {
+        return mSuggestedWordInfoList.indexOf(suggestedWordInfo);
+    }
+
     public String getDebugString(final int pos) {
         if (!DebugFlags.DEBUG_ENABLED) {
             return null;
@@ -187,17 +202,20 @@
         return result;
     }
 
+    @Nonnull
+    public static final SuggestedWords getEmptyInstance() {
+        return SuggestedWords.EMPTY;
+    }
+
     // Should get rid of the first one (what the user typed previously) from suggestions
     // and replace it with what the user currently typed.
     public static ArrayList<SuggestedWordInfo> getTypedWordAndPreviousSuggestions(
-            final String typedWord, final SuggestedWords previousSuggestions) {
+            @Nonnull final SuggestedWordInfo typedWordInfo,
+            @Nonnull final SuggestedWords previousSuggestions) {
         final ArrayList<SuggestedWordInfo> suggestionsList = new ArrayList<>();
         final HashSet<String> alreadySeen = new HashSet<>();
-        suggestionsList.add(new SuggestedWordInfo(typedWord, SuggestedWordInfo.MAX_SCORE,
-                SuggestedWordInfo.KIND_TYPED, Dictionary.DICTIONARY_USER_TYPED,
-                SuggestedWordInfo.NOT_AN_INDEX /* indexOfTouchPointOfSecondWord */,
-                SuggestedWordInfo.NOT_A_CONFIDENCE /* autoCommitFirstWordConfidence */));
-        alreadySeen.add(typedWord.toString());
+        suggestionsList.add(typedWordInfo);
+        alreadySeen.add(typedWordInfo.mWord);
         final int previousSize = previousSuggestions.size();
         for (int index = 1; index < previousSize; index++) {
             final SuggestedWordInfo prevWordInfo = previousSuggestions.getInfo(index);
@@ -217,7 +235,8 @@
         return candidate.isEligibleForAutoCommit() ? candidate : null;
     }
 
-    public static final class SuggestedWordInfo {
+    // non-final for testability.
+    public static class SuggestedWordInfo {
         public static final int NOT_AN_INDEX = -1;
         public static final int NOT_A_CONFIDENCE = -1;
         public static final int MAX_SCORE = Integer.MAX_VALUE;
@@ -240,14 +259,17 @@
         public static final int KIND_FLAG_POSSIBLY_OFFENSIVE = 0x80000000;
         public static final int KIND_FLAG_EXACT_MATCH = 0x40000000;
         public static final int KIND_FLAG_EXACT_MATCH_WITH_INTENTIONAL_OMISSION = 0x20000000;
+        public static final int KIND_FLAG_APPROPRIATE_FOR_AUTO_CORRECTION = 0x10000000;
 
         public final String mWord;
+        public final String mPrevWordsContext;
         // The completion info from the application. Null for suggestions that don't come from
         // the application (including keyboard-computed ones, so this is almost always null)
         public final CompletionInfo mApplicationSpecifiedCompletionInfo;
         public final int mScore;
         public final int mKindAndFlags;
         public final int mCodePointCount;
+        @Deprecated
         public final Dictionary mSourceDict;
         // For auto-commit. This keeps track of the index inside the touch coordinates array
         // passed to native code to get suggestions for a gesture that corresponds to the first
@@ -261,6 +283,7 @@
         /**
          * Create a new suggested word info.
          * @param word The string to suggest.
+         * @param prevWordsContext previous words context.
          * @param score A measure of how likely this suggestion is.
          * @param kindAndFlags The kind of suggestion, as one of the above KIND_* constants with
          * flags.
@@ -268,10 +291,12 @@
          * @param indexOfTouchPointOfSecondWord See mIndexOfTouchPointOfSecondWord.
          * @param autoCommitFirstWordConfidence See mAutoCommitFirstWordConfidence.
          */
-        public SuggestedWordInfo(final String word, final int score, final int kindAndFlags,
+        public SuggestedWordInfo(final String word, final String prevWordsContext,
+                final int score, final int kindAndFlags,
                 final Dictionary sourceDict, final int indexOfTouchPointOfSecondWord,
                 final int autoCommitFirstWordConfidence) {
             mWord = word;
+            mPrevWordsContext = prevWordsContext;
             mApplicationSpecifiedCompletionInfo = null;
             mScore = score;
             mKindAndFlags = kindAndFlags;
@@ -288,6 +313,7 @@
          */
         public SuggestedWordInfo(final CompletionInfo applicationSpecifiedCompletion) {
             mWord = applicationSpecifiedCompletion.getText().toString();
+            mPrevWordsContext = "";
             mApplicationSpecifiedCompletionInfo = applicationSpecifiedCompletion;
             mScore = SuggestedWordInfo.MAX_SCORE;
             mKindAndFlags = SuggestedWordInfo.KIND_APP_DEFINED;
@@ -321,6 +347,10 @@
             return (mKindAndFlags & KIND_FLAG_EXACT_MATCH_WITH_INTENTIONAL_OMISSION) != 0;
         }
 
+        public boolean isAprapreateForAutoCorrection() {
+            return (mKindAndFlags & KIND_FLAG_APPROPRIATE_FOR_AUTO_CORRECTION) != 0;
+        }
+
         public void setDebugString(final String str) {
             if (null == str) throw new NullPointerException("Debug info is null");
             mDebugString = str;
@@ -330,6 +360,15 @@
             return mDebugString;
         }
 
+        public String getWord() {
+            return mWord;
+        }
+
+        @Deprecated
+        public Dictionary getSourceDictionary() {
+            return mSourceDict;
+        }
+
         public int codePointAt(int i) {
             return mWord.codePointAt(i);
         }
@@ -338,43 +377,49 @@
         public String toString() {
             if (TextUtils.isEmpty(mDebugString)) {
                 return mWord;
-            } else {
-                return mWord + " (" + mDebugString + ")";
             }
+            return mWord + " (" + mDebugString + ")";
         }
 
-        // This will always remove the higher index if a duplicate is found.
-        public static boolean removeDups(final String typedWord,
-                ArrayList<SuggestedWordInfo> candidates) {
+        /**
+         * This will always remove the higher index if a duplicate is found.
+         *
+         * @return position of typed word in the candidate list
+         */
+        public static int removeDups(
+                @Nullable final String typedWord,
+                @Nonnull final ArrayList<SuggestedWordInfo> candidates) {
             if (candidates.isEmpty()) {
-                return false;
+                return -1;
             }
-            final boolean didRemoveTypedWord;
+            int firstOccurrenceOfWord = -1;
             if (!TextUtils.isEmpty(typedWord)) {
-                didRemoveTypedWord = removeSuggestedWordInfoFrom(typedWord, candidates,
-                        -1 /* startIndexExclusive */);
-            } else {
-                didRemoveTypedWord = false;
+                firstOccurrenceOfWord = removeSuggestedWordInfoFromList(
+                        typedWord, candidates, -1 /* startIndexExclusive */);
             }
             for (int i = 0; i < candidates.size(); ++i) {
-                removeSuggestedWordInfoFrom(candidates.get(i).mWord, candidates,
-                        i /* startIndexExclusive */);
+                removeSuggestedWordInfoFromList(
+                        candidates.get(i).mWord, candidates, i /* startIndexExclusive */);
             }
-            return didRemoveTypedWord;
+            return firstOccurrenceOfWord;
         }
 
-        private static boolean removeSuggestedWordInfoFrom(final String word,
-                final ArrayList<SuggestedWordInfo> candidates, final int startIndexExclusive) {
-            boolean didRemove = false;
+        private static int removeSuggestedWordInfoFromList(
+                @Nonnull final String word,
+                @Nonnull final ArrayList<SuggestedWordInfo> candidates,
+                final int startIndexExclusive) {
+            int firstOccurrenceOfWord = -1;
             for (int i = startIndexExclusive + 1; i < candidates.size(); ++i) {
                 final SuggestedWordInfo previous = candidates.get(i);
                 if (word.equals(previous.mWord)) {
-                    didRemove = true;
+                    if (firstOccurrenceOfWord == -1) {
+                        firstOccurrenceOfWord = i;
+                    }
                     candidates.remove(i);
                     --i;
                 }
             }
-            return didRemove;
+            return firstOccurrenceOfWord;
         }
     }
 
@@ -387,47 +432,6 @@
         return isPrediction(mInputStyle);
     }
 
-    // SuggestedWords is an immutable object, as much as possible. We must not just remove
-    // words from the member ArrayList as some other parties may expect the object to never change.
-    // This is only ever called by recorrection at the moment, hence the ForRecorrection moniker.
-    public SuggestedWords getSuggestedWordsExcludingTypedWordForRecorrection() {
-        final ArrayList<SuggestedWordInfo> newSuggestions = new ArrayList<>();
-        String typedWord = null;
-        for (int i = 0; i < mSuggestedWordInfoList.size(); ++i) {
-            final SuggestedWordInfo info = mSuggestedWordInfoList.get(i);
-            if (!info.isKindOf(SuggestedWordInfo.KIND_TYPED)) {
-                newSuggestions.add(info);
-            } else {
-                assert(null == typedWord);
-                typedWord = info.mWord;
-            }
-        }
-        // We should never autocorrect, so we say the typed word is valid. Also, in this case,
-        // no auto-correction should take place hence willAutoCorrect = false.
-        return new SuggestedWords(newSuggestions, null /* rawSuggestions */, typedWord,
-                true /* typedWordValid */, false /* willAutoCorrect */, mIsObsoleteSuggestions,
-                SuggestedWords.INPUT_STYLE_RECORRECTION, NOT_A_SEQUENCE_NUMBER);
-    }
-
-    // Creates a new SuggestedWordInfo from the currently suggested words that removes all but the
-    // last word of all suggestions, separated by a space. This is necessary because when we commit
-    // a multiple-word suggestion, the IME only retains the last word as the composing word, and
-    // we should only suggest replacements for this last word.
-    // TODO: make this work with languages without spaces.
-    public SuggestedWords getSuggestedWordsForLastWordOfPhraseGesture() {
-        final ArrayList<SuggestedWordInfo> newSuggestions = new ArrayList<>();
-        for (int i = 0; i < mSuggestedWordInfoList.size(); ++i) {
-            final SuggestedWordInfo info = mSuggestedWordInfoList.get(i);
-            final int indexOfLastSpace = info.mWord.lastIndexOf(Constants.CODE_SPACE) + 1;
-            final String lastWord = info.mWord.substring(indexOfLastSpace);
-            newSuggestions.add(new SuggestedWordInfo(lastWord, info.mScore, info.mKindAndFlags,
-                    info.mSourceDict, SuggestedWordInfo.NOT_AN_INDEX,
-                    SuggestedWordInfo.NOT_A_CONFIDENCE));
-        }
-        return new SuggestedWords(newSuggestions, null /* rawSuggestions */, mTypedWordValid,
-                mWillAutoCorrect, mIsObsoleteSuggestions, INPUT_STYLE_TAIL_BATCH);
-    }
-
     /**
      * @return the {@link SuggestedWordInfo} which corresponds to the word that is originally
      * typed by the user. Otherwise returns {@code null}. Note that gesture input is not
diff --git a/java/src/com/android/inputmethod/latin/SuggestionSpanPickedNotificationReceiver.java b/java/src/com/android/inputmethod/latin/SuggestionSpanPickedNotificationReceiver.java
deleted file mode 100644
index 08785f3..0000000
--- a/java/src/com/android/inputmethod/latin/SuggestionSpanPickedNotificationReceiver.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.text.style.SuggestionSpan;
-import android.util.Log;
-
-import com.android.inputmethod.latin.define.DebugFlags;
-
-public final class SuggestionSpanPickedNotificationReceiver extends BroadcastReceiver {
-    private static final boolean DBG = DebugFlags.DEBUG_ENABLED;
-    private static final String TAG =
-            SuggestionSpanPickedNotificationReceiver.class.getSimpleName();
-
-    @Override
-    public void onReceive(Context context, Intent intent) {
-        if (SuggestionSpan.ACTION_SUGGESTION_PICKED.equals(intent.getAction())) {
-            if (DBG) {
-                final String before = intent.getStringExtra(
-                        SuggestionSpan.SUGGESTION_SPAN_PICKED_BEFORE);
-                final String after = intent.getStringExtra(
-                        SuggestionSpan.SUGGESTION_SPAN_PICKED_AFTER);
-                Log.d(TAG, "Received notification picked: " + before + "," + after);
-            }
-        }
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/SystemBroadcastReceiver.java b/java/src/com/android/inputmethod/latin/SystemBroadcastReceiver.java
index 123ab20..2a69d36 100644
--- a/java/src/com/android/inputmethod/latin/SystemBroadcastReceiver.java
+++ b/java/src/com/android/inputmethod/latin/SystemBroadcastReceiver.java
@@ -17,16 +17,20 @@
 package com.android.inputmethod.latin;
 
 import android.content.BroadcastReceiver;
+import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
 import android.os.Process;
 import android.util.Log;
 import android.view.inputmethod.InputMethodManager;
 import android.view.inputmethod.InputMethodSubtype;
 
-import com.android.inputmethod.compat.IntentCompatUtils;
+import com.android.inputmethod.dictionarypack.CommonPreferences;
+import com.android.inputmethod.dictionarypack.DictionaryPackConstants;
 import com.android.inputmethod.keyboard.KeyboardLayoutSet;
-import com.android.inputmethod.latin.setup.LauncherIconVisibilityManager;
+import com.android.inputmethod.latin.setup.SetupActivity;
 import com.android.inputmethod.latin.utils.UncachedInputMethodManagerUtils;
 
 /**
@@ -50,10 +54,6 @@
  * receiver and it checks whether the setup wizard's icon should be appeared or not on the launcher
  * depending on which partition this IME is installed.
  *
- * When a multiuser account has been created, {@link Intent#ACTION_USER_INITIALIZE} is received
- * by this receiver and it checks the whether the setup wizard's icon should be appeared or not on
- * the launcher depending on which partition this IME is installed.
- *
  * When the system locale has been changed, {@link Intent#ACTION_LOCALE_CHANGED} is received by
  * this receiver and the {@link KeyboardLayoutSet}'s cache is cleared.
  */
@@ -69,26 +69,25 @@
             // subtypes when the package is replaced.
             RichInputMethodManager.init(context);
             final RichInputMethodManager richImm = RichInputMethodManager.getInstance();
-            final InputMethodSubtype[] additionalSubtypes = richImm.getAdditionalSubtypes(context);
+            final InputMethodSubtype[] additionalSubtypes = richImm.getAdditionalSubtypes();
             richImm.setAdditionalInputMethodSubtypes(additionalSubtypes);
-            LauncherIconVisibilityManager.updateSetupWizardIconVisibility(context);
+            toggleAppIcon(context);
+            downloadLatestDictionaries(context);
         } else if (Intent.ACTION_BOOT_COMPLETED.equals(intentAction)) {
             Log.i(TAG, "Boot has been completed");
-            LauncherIconVisibilityManager.updateSetupWizardIconVisibility(context);
-        } else if (IntentCompatUtils.is_ACTION_USER_INITIALIZE(intentAction)) {
-            Log.i(TAG, "User initialize");
-            LauncherIconVisibilityManager.updateSetupWizardIconVisibility(context);
+            toggleAppIcon(context);
         } else if (Intent.ACTION_LOCALE_CHANGED.equals(intentAction)) {
             Log.i(TAG, "System locale changed");
             KeyboardLayoutSet.onSystemLocaleChanged();
         }
 
         // The process that hosts this broadcast receiver is invoked and remains alive even after
-        // 1) the package has been re-installed, 2) the device has just booted,
+        // 1) the package has been re-installed,
+        // 2) the device has just booted,
         // 3) a new user has been created.
         // There is no good reason to keep the process alive if this IME isn't a current IME.
-        final InputMethodManager imm =
-                (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE);
+        final InputMethodManager imm = (InputMethodManager)
+                context.getSystemService(Context.INPUT_METHOD_SERVICE);
         // Called to check whether this IME has been triggered by the current user or not
         final boolean isInputMethodManagerValidForUserOfThisProcess =
                 !imm.getInputMethodList().isEmpty();
@@ -100,4 +99,24 @@
             Process.killProcess(myPid);
         }
     }
+
+    private void downloadLatestDictionaries(Context context) {
+        final Intent updateIntent = new Intent(
+                DictionaryPackConstants.INIT_AND_UPDATE_NOW_INTENT_ACTION);
+        context.sendBroadcast(updateIntent);
+    }
+
+    private static void toggleAppIcon(final Context context) {
+        final int appInfoFlags = context.getApplicationInfo().flags;
+        final boolean isSystemApp = (appInfoFlags & ApplicationInfo.FLAG_SYSTEM) > 0;
+        if (Log.isLoggable(TAG, Log.INFO)) {
+            Log.i(TAG, "toggleAppIcon() : FLAG_SYSTEM = " + isSystemApp);
+        }
+        context.getPackageManager().setComponentEnabledSetting(
+                new ComponentName(context, SetupActivity.class),
+                isSystemApp
+                        ? PackageManager.COMPONENT_ENABLED_STATE_DISABLED
+                        : PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
+                PackageManager.DONT_KILL_APP);
+    }
 }
diff --git a/java/src/com/android/inputmethod/latin/UserBinaryDictionary.java b/java/src/com/android/inputmethod/latin/UserBinaryDictionary.java
index 21014b3..fe24ccf 100644
--- a/java/src/com/android/inputmethod/latin/UserBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/UserBinaryDictionary.java
@@ -16,26 +16,25 @@
 
 package com.android.inputmethod.latin;
 
-import android.content.ContentProviderClient;
 import android.content.ContentResolver;
 import android.content.Context;
 import android.database.ContentObserver;
 import android.database.Cursor;
 import android.database.sqlite.SQLiteException;
 import android.net.Uri;
-import android.os.Build;
 import android.provider.UserDictionary.Words;
 import android.text.TextUtils;
 import android.util.Log;
 
-import com.android.inputmethod.annotations.UsedForTesting;
-import com.android.inputmethod.compat.UserDictionaryCompatUtils;
+import com.android.inputmethod.annotations.ExternallyReferenced;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
 import java.io.File;
 import java.util.Arrays;
 import java.util.Locale;
 
+import javax.annotation.Nullable;
+
 /**
  * An expandable dictionary that stores the words in the user dictionary provider into a binary
  * dictionary file to use it from native code.
@@ -47,36 +46,26 @@
     private static final String USER_DICTIONARY_ALL_LANGUAGES = "";
     private static final int HISTORICAL_DEFAULT_USER_DICTIONARY_FREQUENCY = 250;
     private static final int LATINIME_DEFAULT_USER_DICTIONARY_FREQUENCY = 160;
-    // Shortcut frequency is 0~15, with 15 = whitelist. We don't want user dictionary entries
-    // to auto-correct, so we set this to the highest frequency that won't, i.e. 14.
-    private static final int USER_DICT_SHORTCUT_FREQUENCY = 14;
 
-    private static final String[] PROJECTION_QUERY_WITH_SHORTCUT = new String[] {
-        Words.WORD,
-        Words.SHORTCUT,
-        Words.FREQUENCY,
-    };
-    private static final String[] PROJECTION_QUERY_WITHOUT_SHORTCUT = new String[] {
-        Words.WORD,
-        Words.FREQUENCY,
-    };
+    private static final String[] PROJECTION_QUERY = new String[] {Words.WORD, Words.FREQUENCY};
 
     private static final String NAME = "userunigram";
 
     private ContentObserver mObserver;
-    final private String mLocale;
+    final private String mLocaleString;
     final private boolean mAlsoUseMoreRestrictiveLocales;
 
     protected UserBinaryDictionary(final Context context, final Locale locale,
-            final boolean alsoUseMoreRestrictiveLocales, final File dictFile, final String name) {
+                                   final boolean alsoUseMoreRestrictiveLocales,
+                                   final File dictFile, final String name) {
         super(context, getDictName(name, locale, dictFile), locale, Dictionary.TYPE_USER, dictFile);
         if (null == locale) throw new NullPointerException(); // Catch the error earlier
         final String localeStr = locale.toString();
         if (SubtypeLocaleUtils.NO_LANGUAGE.equals(localeStr)) {
             // If we don't have a locale, insert into the "all locales" user dictionary.
-            mLocale = USER_DICTIONARY_ALL_LANGUAGES;
+            mLocaleString = USER_DICTIONARY_ALL_LANGUAGES;
         } else {
-            mLocale = localeStr;
+            mLocaleString = localeStr;
         }
         mAlsoUseMoreRestrictiveLocales = alsoUseMoreRestrictiveLocales;
         ContentResolver cres = context.getContentResolver();
@@ -101,10 +90,13 @@
         reloadDictionaryIfRequired();
     }
 
-    @UsedForTesting
-    public static UserBinaryDictionary getDictionary(final Context context, final Locale locale,
-            final File dictFile, final String dictNamePrefix) {
-        return new UserBinaryDictionary(context, locale, false /* alsoUseMoreRestrictiveLocales */,
+    // Note: This method is called by {@link DictionaryFacilitator} using Java reflection.
+    @ExternallyReferenced
+    public static UserBinaryDictionary getDictionary(
+            final Context context, final Locale locale, final File dictFile,
+            final String dictNamePrefix, @Nullable final String account) {
+        return new UserBinaryDictionary(
+                context, locale, false /* alsoUseMoreRestrictiveLocales */,
                 dictFile, dictNamePrefix + NAME);
     }
 
@@ -124,7 +116,7 @@
         // This is correct for locale processing.
         // For this example, we'll look at the "en_US_POSIX" case.
         final String[] localeElements =
-                TextUtils.isEmpty(mLocale) ? new String[] {} : mLocale.split("_", 3);
+                TextUtils.isEmpty(mLocaleString) ? new String[] {} : mLocaleString.split("_", 3);
         final int length = localeElements.length;
 
         final StringBuilder request = new StringBuilder("(locale is NULL)");
@@ -167,24 +159,12 @@
             requestArguments = localeElements;
         }
         final String requestString = request.toString();
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
-            try {
-                addWordsFromProjectionLocked(PROJECTION_QUERY_WITH_SHORTCUT, requestString,
-                        requestArguments);
-            } catch (IllegalArgumentException e) {
-                // This may happen on some non-compliant devices where the declared API is JB+ but
-                // the SHORTCUT column is not present for some reason.
-                addWordsFromProjectionLocked(PROJECTION_QUERY_WITHOUT_SHORTCUT, requestString,
-                        requestArguments);
-            }
-        } else {
-            addWordsFromProjectionLocked(PROJECTION_QUERY_WITHOUT_SHORTCUT, requestString,
-                    requestArguments);
-        }
+        addWordsFromProjectionLocked(PROJECTION_QUERY, requestString, requestArguments);
     }
 
     private void addWordsFromProjectionLocked(final String[] query, String request,
-            final String[] requestArguments) throws IllegalArgumentException {
+                                              final String[] requestArguments)
+            throws IllegalArgumentException {
         Cursor cursor = null;
         try {
             cursor = mContext.getContentResolver().query(
@@ -201,69 +181,33 @@
         }
     }
 
-    public static boolean isEnabled(final Context context) {
-        final ContentResolver cr = context.getContentResolver();
-        final ContentProviderClient client = cr.acquireContentProviderClient(Words.CONTENT_URI);
-        if (client != null) {
-            client.release();
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-    /**
-     * Adds a word to the user dictionary and makes it persistent.
-     *
-     * @param context the context
-     * @param locale the locale
-     * @param word the word to add. If the word is capitalized, then the dictionary will
-     * recognize it as a capitalized word when searched.
-     */
-    public static void addWordToUserDictionary(final Context context, final Locale locale,
-            final String word) {
-        // Update the user dictionary provider
-        UserDictionaryCompatUtils.addWord(context, word,
-                HISTORICAL_DEFAULT_USER_DICTIONARY_FREQUENCY, null, locale);
-    }
-
-    private int scaleFrequencyFromDefaultToLatinIme(final int defaultFrequency) {
+    private static int scaleFrequencyFromDefaultToLatinIme(final int defaultFrequency) {
         // The default frequency for the user dictionary is 250 for historical reasons.
         // Latin IME considers a good value for the default user dictionary frequency
         // is about 160 considering the scale we use. So we are scaling down the values.
         if (defaultFrequency > Integer.MAX_VALUE / LATINIME_DEFAULT_USER_DICTIONARY_FREQUENCY) {
             return (defaultFrequency / HISTORICAL_DEFAULT_USER_DICTIONARY_FREQUENCY)
                     * LATINIME_DEFAULT_USER_DICTIONARY_FREQUENCY;
-        } else {
-            return (defaultFrequency * LATINIME_DEFAULT_USER_DICTIONARY_FREQUENCY)
-                    / HISTORICAL_DEFAULT_USER_DICTIONARY_FREQUENCY;
         }
+        return (defaultFrequency * LATINIME_DEFAULT_USER_DICTIONARY_FREQUENCY)
+                / HISTORICAL_DEFAULT_USER_DICTIONARY_FREQUENCY;
     }
 
     private void addWordsLocked(final Cursor cursor) {
-        final boolean hasShortcutColumn = Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN;
         if (cursor == null) return;
         if (cursor.moveToFirst()) {
             final int indexWord = cursor.getColumnIndex(Words.WORD);
-            final int indexShortcut = hasShortcutColumn ? cursor.getColumnIndex(Words.SHORTCUT) : 0;
             final int indexFrequency = cursor.getColumnIndex(Words.FREQUENCY);
             while (!cursor.isAfterLast()) {
                 final String word = cursor.getString(indexWord);
-                final String shortcut = hasShortcutColumn ? cursor.getString(indexShortcut) : null;
                 final int frequency = cursor.getInt(indexFrequency);
                 final int adjustedFrequency = scaleFrequencyFromDefaultToLatinIme(frequency);
                 // Safeguard against adding really long words.
                 if (word.length() <= MAX_WORD_LENGTH) {
                     runGCIfRequiredLocked(true /* mindsBlockByGC */);
-                    addUnigramLocked(word, adjustedFrequency, null /* shortcutTarget */,
-                            0 /* shortcutFreq */, false /* isNotAWord */,
-                            false /* isBlacklisted */, BinaryDictionary.NOT_A_VALID_TIMESTAMP);
-                    if (null != shortcut && shortcut.length() <= MAX_WORD_LENGTH) {
-                        runGCIfRequiredLocked(true /* mindsBlockByGC */);
-                        addUnigramLocked(shortcut, adjustedFrequency, word,
-                                USER_DICT_SHORTCUT_FREQUENCY, true /* isNotAWord */,
-                                false /* isBlacklisted */, BinaryDictionary.NOT_A_VALID_TIMESTAMP);
-                    }
+                    addUnigramLocked(word, adjustedFrequency, false /* isNotAWord */,
+                            false /* isPossiblyOffensive */,
+                            BinaryDictionary.NOT_A_VALID_TIMESTAMP);
                 }
                 cursor.moveToNext();
             }
diff --git a/java/src/com/android/inputmethod/latin/WordComposer.java b/java/src/com/android/inputmethod/latin/WordComposer.java
index 32d1fe3..8803edc 100644
--- a/java/src/com/android/inputmethod/latin/WordComposer.java
+++ b/java/src/com/android/inputmethod/latin/WordComposer.java
@@ -16,11 +16,17 @@
 
 package com.android.inputmethod.latin;
 
+import com.android.inputmethod.annotations.UsedForTesting;
 import com.android.inputmethod.event.CombinerChain;
 import com.android.inputmethod.event.Event;
+import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
+import com.android.inputmethod.latin.common.ComposedData;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.CoordinateUtils;
+import com.android.inputmethod.latin.common.InputPointers;
+import com.android.inputmethod.latin.common.StringUtils;
 import com.android.inputmethod.latin.define.DebugFlags;
-import com.android.inputmethod.latin.utils.CoordinateUtils;
-import com.android.inputmethod.latin.utils.StringUtils;
+import com.android.inputmethod.latin.define.DecoderSpecificConstants;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -31,7 +37,7 @@
  * A place to store the currently composing word with information such as adjacent key codes as well
  */
 public final class WordComposer {
-    private static final int MAX_WORD_LENGTH = Constants.DICTIONARY_MAX_WORD_LENGTH;
+    private static final int MAX_WORD_LENGTH = DecoderSpecificConstants.DICTIONARY_MAX_WORD_LENGTH;
     private static final boolean DBG = DebugFlags.DEBUG_ENABLED;
 
     public static final int CAPS_MODE_OFF = 0;
@@ -48,7 +54,7 @@
     // The list of events that served to compose this string.
     private final ArrayList<Event> mEvents;
     private final InputPointers mInputPointers = new InputPointers(MAX_WORD_LENGTH);
-    private String mAutoCorrection;
+    private SuggestedWordInfo mAutoCorrection;
     private boolean mIsResumed;
     private boolean mIsBatchMode;
     // A memory of the last rejected batch mode suggestion, if any. This goes like this: the user
@@ -87,6 +93,10 @@
         refreshTypedWordCache();
     }
 
+    public ComposedData getComposedDataSnapshot() {
+        return new ComposedData(getInputPointers(), isBatchMode(), mTypedWordCache.toString());
+    }
+
     /**
      * Restart the combiners, possibly with a new spec.
      * @param combiningSpec The spec string for combining. This is found in the extra value.
@@ -95,8 +105,7 @@
         final String nonNullCombiningSpec = null == combiningSpec ? "" : combiningSpec;
         if (!nonNullCombiningSpec.equals(mCombiningSpec)) {
             mCombinerChain = new CombinerChain(
-                    mCombinerChain.getComposingWordWithCombiningFeedback().toString(),
-                    CombinerChain.createCombiners(nonNullCombiningSpec));
+                    mCombinerChain.getComposingWordWithCombiningFeedback().toString());
             mCombiningSpec = nonNullCombiningSpec;
         }
     }
@@ -127,43 +136,10 @@
      * Number of keystrokes in the composing word.
      * @return the number of keystrokes
      */
-    // This may be made public if need be, but right now it's not used anywhere
-    /* package for tests */ int size() {
+    public int size() {
         return mCodePointSize;
     }
 
-    /**
-     * Copy the code points in the typed word to a destination array of ints.
-     *
-     * If the array is too small to hold the code points in the typed word, nothing is copied and
-     * -1 is returned.
-     *
-     * @param destination the array of ints.
-     * @return the number of copied code points.
-     */
-    public int copyCodePointsExceptTrailingSingleQuotesAndReturnCodePointCount(
-            final int[] destination) {
-        // This method can be called on a separate thread and mTypedWordCache can change while we
-        // are executing this method.
-        final String typedWord = mTypedWordCache.toString();
-        // lastIndex is exclusive
-        final int lastIndex = typedWord.length()
-                - StringUtils.getTrailingSingleQuotesCount(typedWord);
-        if (lastIndex <= 0) {
-            // The string is empty or contains only single quotes.
-            return 0;
-        }
-
-        // The following function counts the number of code points in the text range which begins
-        // at index 0 and extends to the character at lastIndex.
-        final int codePointSize = Character.codePointCount(typedWord, 0, lastIndex);
-        if (codePointSize > destination.length) {
-            return -1;
-        }
-        return StringUtils.copyCodePointsAndReturnCodePointCount(destination, typedWord, 0,
-                lastIndex, true /* downCase */);
-    }
-
     public boolean isSingleLetter() {
         return size() == 1;
     }
@@ -182,7 +158,7 @@
      * @return the processed event. Never null, but may be marked as consumed.
      */
     @Nonnull
-    public Event processEvent(final Event event) {
+    public Event processEvent(@Nonnull final Event event) {
         final Event processedEvent = mCombinerChain.processEvent(mEvents, event);
         // The retained state of the combiner chain may have changed while processing the event,
         // so we need to update our cache.
@@ -256,31 +232,33 @@
      * @return true if the cursor is still inside the composing word, false otherwise.
      */
     public boolean moveCursorByAndReturnIfInsideComposingWord(final int expectedMoveAmount) {
-        // TODO: should uncommit the composing feedback
-        mCombinerChain.reset();
-        int actualMoveAmountWithinWord = 0;
+        int actualMoveAmount = 0;
         int cursorPos = mCursorPositionWithinWord;
         // TODO: Don't make that copy. We can do this directly from mTypedWordCache.
         final int[] codePoints = StringUtils.toCodePointArray(mTypedWordCache);
         if (expectedMoveAmount >= 0) {
             // Moving the cursor forward for the expected amount or until the end of the word has
             // been reached, whichever comes first.
-            while (actualMoveAmountWithinWord < expectedMoveAmount && cursorPos < mCodePointSize) {
-                actualMoveAmountWithinWord += Character.charCount(codePoints[cursorPos]);
+            while (actualMoveAmount < expectedMoveAmount && cursorPos < codePoints.length) {
+                actualMoveAmount += Character.charCount(codePoints[cursorPos]);
                 ++cursorPos;
             }
         } else {
             // Moving the cursor backward for the expected amount or until the start of the word
             // has been reached, whichever comes first.
-            while (actualMoveAmountWithinWord > expectedMoveAmount && cursorPos > 0) {
+            while (actualMoveAmount > expectedMoveAmount && cursorPos > 0) {
                 --cursorPos;
-                actualMoveAmountWithinWord -= Character.charCount(codePoints[cursorPos]);
+                actualMoveAmount -= Character.charCount(codePoints[cursorPos]);
             }
         }
         // If the actual and expected amounts differ, we crossed the start or the end of the word
         // so the result would not be inside the composing word.
-        if (actualMoveAmountWithinWord != expectedMoveAmount) return false;
+        if (actualMoveAmount != expectedMoveAmount) {
+            return false;
+        }
         mCursorPositionWithinWord = cursorPos;
+        mCombinerChain.applyProcessedEvent(mCombinerChain.processEvent(
+                mEvents, Event.createCursorMovedEvent(cursorPos)));
         return true;
     }
 
@@ -353,9 +331,8 @@
         if (size() <= 1) {
             return mCapitalizedMode == CAPS_MODE_AUTO_SHIFT_LOCKED
                     || mCapitalizedMode == CAPS_MODE_MANUAL_SHIFT_LOCKED;
-        } else {
-            return mCapsCount == size();
         }
+        return mCapsCount == size();
     }
 
     public boolean wasShiftedNoLock() {
@@ -418,14 +395,14 @@
     /**
      * Sets the auto-correction for this word.
      */
-    public void setAutoCorrection(final String correction) {
-        mAutoCorrection = correction;
+    public void setAutoCorrection(final SuggestedWordInfo autoCorrection) {
+        mAutoCorrection = autoCorrection;
     }
 
     /**
      * @return the auto-correction for this word, or null if none.
      */
-    public String getAutoCorrectionOrNull() {
+    public SuggestedWordInfo getAutoCorrectionOrNull() {
         return mAutoCorrection;
     }
 
@@ -439,13 +416,13 @@
     // `type' should be one of the LastComposedWord.COMMIT_TYPE_* constants above.
     // committedWord should contain suggestion spans if applicable.
     public LastComposedWord commitWord(final int type, final CharSequence committedWord,
-            final String separatorString, final PrevWordsInfo prevWordsInfo) {
+            final String separatorString, final NgramContext ngramContext) {
         // Note: currently, we come here whenever we commit a word. If it's a MANUAL_PICK
         // or a DECIDED_WORD we may cancel the commit later; otherwise, we should deactivate
         // the last composed word to ensure this does not happen.
         final LastComposedWord lastComposedWord = new LastComposedWord(mEvents,
                 mInputPointers, mTypedWordCache.toString(), committedWord, separatorString,
-                prevWordsInfo, mCapitalizedMode);
+                ngramContext, mCapitalizedMode);
         mInputPointers.reset();
         if (type != LastComposedWord.COMMIT_TYPE_DECIDED_WORD
                 && type != LastComposedWord.COMMIT_TYPE_MANUAL_PICK) {
@@ -491,4 +468,14 @@
     public String getRejectedBatchModeSuggestion() {
         return mRejectedBatchModeSuggestion;
     }
+
+    @UsedForTesting
+    void addInputPointerForTest(int index, int keyX, int keyY) {
+        mInputPointers.addPointerAt(index, keyX, keyY, 0, 0);
+    }
+
+    @UsedForTesting
+    void setTypedWordCacheForTests(String typedWordCacheForTests) {
+        mTypedWordCache = typedWordCacheForTests;
+    }
 }
diff --git a/java/src/com/android/inputmethod/latin/accounts/AccountsChangedReceiver.java b/java/src/com/android/inputmethod/latin/accounts/AccountsChangedReceiver.java
new file mode 100644
index 0000000..00bcecf
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/accounts/AccountsChangedReceiver.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.accounts;
+
+import android.accounts.AccountManager;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.android.inputmethod.annotations.UsedForTesting;
+import com.android.inputmethod.latin.settings.LocalSettingsConstants;
+
+/**
+ * {@link BroadcastReceiver} for {@link AccountManager#LOGIN_ACCOUNTS_CHANGED_ACTION}.
+ */
+public class AccountsChangedReceiver extends BroadcastReceiver {
+    static final String TAG = "AccountsChangedReceiver";
+
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        if (!AccountManager.LOGIN_ACCOUNTS_CHANGED_ACTION.equals(intent.getAction())) {
+            Log.w(TAG, "Received unknown broadcast: " + intent);
+            return;
+        }
+
+        // Ideally the account preference could live in a different preferences file
+        // that wasn't being backed up and restored, however the preference fragments
+        // currently only deal with the default shared preferences which is why
+        // separating this out into a different file is not trivial currently.
+        final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
+        final String currentAccount = prefs.getString(
+                LocalSettingsConstants.PREF_ACCOUNT_NAME, null);
+        removeUnknownAccountFromPreference(prefs, getAccountsForLogin(context), currentAccount);
+    }
+
+    /**
+     * Helper method to help test this receiver.
+     */
+    @UsedForTesting
+    protected String[] getAccountsForLogin(Context context) {
+        return LoginAccountUtils.getAccountsForLogin(context);
+    }
+
+    /**
+     * Removes the currentAccount from preferences if it's not found
+     * in the list of current accounts.
+     */
+    private static void removeUnknownAccountFromPreference(final SharedPreferences prefs,
+            final String[] accounts, final String currentAccount) {
+        if (currentAccount == null) {
+            return;
+        }
+        for (final String account : accounts) {
+            if (TextUtils.equals(currentAccount, account)) {
+                return;
+            }
+        }
+        Log.i(TAG, "The current account was removed from the system: " + currentAccount);
+        prefs.edit()
+                .remove(LocalSettingsConstants.PREF_ACCOUNT_NAME)
+                .apply();
+    }
+}
diff --git a/java/src/com/android/inputmethod/latin/accounts/AuthUtils.java b/java/src/com/android/inputmethod/latin/accounts/AuthUtils.java
new file mode 100644
index 0000000..31aba36
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/accounts/AuthUtils.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.accounts;
+
+import android.accounts.Account;
+import android.accounts.AccountManager;
+import android.accounts.AccountManagerCallback;
+import android.accounts.AccountManagerFuture;
+import android.accounts.AuthenticatorException;
+import android.accounts.OperationCanceledException;
+import android.content.Context;
+import android.os.Bundle;
+import android.os.Handler;
+
+import java.io.IOException;
+
+/**
+ * Utility class that handles generation/invalidation of auth tokens in the app.
+ */
+public class AuthUtils {
+    private final AccountManager mAccountManager;
+
+    public AuthUtils(Context context) {
+        mAccountManager = AccountManager.get(context);
+    }
+
+    /**
+     * @see AccountManager#invalidateAuthToken(String, String)
+     */
+    public void invalidateAuthToken(final String accountType, final String authToken) {
+        mAccountManager.invalidateAuthToken(accountType, authToken);
+    }
+
+    /**
+     * @see AccountManager#getAuthToken(
+     *              Account, String, Bundle, boolean, AccountManagerCallback, Handler)
+     */
+    public AccountManagerFuture<Bundle> getAuthToken(final Account account,
+            final String authTokenType, final Bundle options, final boolean notifyAuthFailure,
+            final AccountManagerCallback<Bundle> callback, final Handler handler) {
+        return mAccountManager.getAuthToken(account, authTokenType, options, notifyAuthFailure,
+                callback, handler);
+    }
+
+    /**
+     * @see AccountManager#blockingGetAuthToken(Account, String, boolean)
+     */
+    public String blockingGetAuthToken(final Account account, final String authTokenType,
+            final boolean notifyAuthFailure) throws OperationCanceledException,
+            AuthenticatorException, IOException {
+        return mAccountManager.blockingGetAuthToken(account, authTokenType, notifyAuthFailure);
+    }
+}
diff --git a/java/src/com/android/inputmethod/latin/debug/ExternalDictionaryGetterForDebug.java b/java/src/com/android/inputmethod/latin/debug/ExternalDictionaryGetterForDebug.java
deleted file mode 100644
index a87785b..0000000
--- a/java/src/com/android/inputmethod/latin/debug/ExternalDictionaryGetterForDebug.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.debug;
-
-import android.app.AlertDialog;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.DialogInterface.OnCancelListener;
-import android.content.DialogInterface.OnClickListener;
-import android.os.Environment;
-
-import com.android.inputmethod.latin.BinaryDictionaryFileDumper;
-import com.android.inputmethod.latin.BinaryDictionaryGetter;
-import com.android.inputmethod.latin.R;
-import com.android.inputmethod.latin.makedict.DictionaryHeader;
-import com.android.inputmethod.latin.utils.DialogUtils;
-import com.android.inputmethod.latin.utils.DictionaryInfoUtils;
-import com.android.inputmethod.latin.utils.LocaleUtils;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Locale;
-
-/**
- * A class to read a local file as a dictionary for debugging purposes.
- */
-public class ExternalDictionaryGetterForDebug {
-    private static final String SOURCE_FOLDER = Environment.getExternalStorageDirectory().getPath()
-            + "/Download";
-
-    private static String[] findDictionariesInTheDownloadedFolder() {
-        final File[] files = new File(SOURCE_FOLDER).listFiles();
-        final ArrayList<String> eligibleList = new ArrayList<>();
-        for (File f : files) {
-            final DictionaryHeader header = DictionaryInfoUtils.getDictionaryFileHeaderOrNull(f);
-            if (null == header) continue;
-            eligibleList.add(f.getName());
-        }
-        return eligibleList.toArray(new String[0]);
-    }
-
-    public static void chooseAndInstallDictionary(final Context context) {
-        final String[] fileNames = findDictionariesInTheDownloadedFolder();
-        if (0 == fileNames.length) {
-            showNoFileDialog(context);
-        } else if (1 == fileNames.length) {
-            askInstallFile(context, SOURCE_FOLDER, fileNames[0], null /* completeRunnable */);
-        } else {
-            showChooseFileDialog(context, fileNames);
-        }
-    }
-
-    private static void showNoFileDialog(final Context context) {
-        new AlertDialog.Builder(DialogUtils.getPlatformDialogThemeContext(context))
-                .setMessage(R.string.read_external_dictionary_no_files_message)
-                .setPositiveButton(android.R.string.ok, new OnClickListener() {
-                    @Override
-                    public void onClick(final DialogInterface dialog, final int which) {
-                        dialog.dismiss();
-                    }
-                }).create().show();
-    }
-
-    private static void showChooseFileDialog(final Context context, final String[] fileNames) {
-        new AlertDialog.Builder(DialogUtils.getPlatformDialogThemeContext(context))
-                .setTitle(R.string.read_external_dictionary_multiple_files_title)
-                .setItems(fileNames, new OnClickListener() {
-                    @Override
-                    public void onClick(final DialogInterface dialog, final int which) {
-                        askInstallFile(context, SOURCE_FOLDER, fileNames[which],
-                                null /* completeRunnable */);
-                    }
-                })
-                .create().show();
-    }
-
-    /**
-     * Shows a dialog which offers the user to install the external dictionary.
-     */
-    public static void askInstallFile(final Context context, final String dirPath,
-            final String fileName, final Runnable completeRunnable) {
-        final File file = new File(dirPath, fileName.toString());
-        final DictionaryHeader header = DictionaryInfoUtils.getDictionaryFileHeaderOrNull(file);
-        final StringBuilder message = new StringBuilder();
-        final String locale = header.getLocaleString();
-        for (String key : header.mDictionaryOptions.mAttributes.keySet()) {
-            message.append(key + " = " + header.mDictionaryOptions.mAttributes.get(key));
-            message.append("\n");
-        }
-        final String languageName = LocaleUtils.constructLocaleFromString(locale)
-                .getDisplayName(Locale.getDefault());
-        final String title = String.format(
-                context.getString(R.string.read_external_dictionary_confirm_install_message),
-                languageName);
-        new AlertDialog.Builder(DialogUtils.getPlatformDialogThemeContext(context))
-                .setTitle(title)
-                .setMessage(message)
-                .setNegativeButton(android.R.string.cancel, new OnClickListener() {
-                    @Override
-                    public void onClick(final DialogInterface dialog, final int which) {
-                        dialog.dismiss();
-                        if (completeRunnable != null) {
-                            completeRunnable.run();
-                        }
-                    }
-                }).setPositiveButton(android.R.string.ok, new OnClickListener() {
-                    @Override
-                    public void onClick(final DialogInterface dialog, final int which) {
-                        installFile(context, file, header);
-                        dialog.dismiss();
-                        if (completeRunnable != null) {
-                            completeRunnable.run();
-                        }
-                    }
-                }).setOnCancelListener(new OnCancelListener() {
-                    @Override
-                    public void onCancel(DialogInterface dialog) {
-                        // Canceled by the user by hitting the back key
-                        if (completeRunnable != null) {
-                            completeRunnable.run();
-                        }
-                    }
-                }).create().show();
-    }
-
-    private static void installFile(final Context context, final File file,
-            final DictionaryHeader header) {
-        BufferedOutputStream outputStream = null;
-        File tempFile = null;
-        try {
-            final String locale = header.getLocaleString();
-            // Create the id for a main dictionary for this locale
-            final String id = BinaryDictionaryGetter.MAIN_DICTIONARY_CATEGORY
-                    + BinaryDictionaryGetter.ID_CATEGORY_SEPARATOR + locale;
-            final String finalFileName = DictionaryInfoUtils.getCacheFileName(id, locale, context);
-            final String tempFileName = BinaryDictionaryGetter.getTempFileName(id, context);
-            tempFile = new File(tempFileName);
-            tempFile.delete();
-            outputStream = new BufferedOutputStream(new FileOutputStream(tempFile));
-            final BufferedInputStream bufferedStream = new BufferedInputStream(
-                    new FileInputStream(file));
-            BinaryDictionaryFileDumper.checkMagicAndCopyFileTo(bufferedStream, outputStream);
-            outputStream.flush();
-            final File finalFile = new File(finalFileName);
-            finalFile.delete();
-            if (!tempFile.renameTo(finalFile)) {
-                throw new IOException("Can't move the file to its final name");
-            }
-        } catch (IOException e) {
-            // There was an error: show a dialog
-            new AlertDialog.Builder(DialogUtils.getPlatformDialogThemeContext(context))
-                    .setTitle(R.string.read_external_dictionary_error)
-                    .setMessage(e.toString())
-                    .setPositiveButton(android.R.string.ok, new OnClickListener() {
-                        @Override
-                        public void onClick(final DialogInterface dialog, final int which) {
-                            dialog.dismiss();
-                        }
-                    }).create().show();
-            return;
-        } finally {
-            try {
-                if (null != outputStream) outputStream.close();
-                if (null != tempFile) tempFile.delete();
-            } catch (IOException e) {
-                // Don't do anything
-            }
-        }
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
index fdab7f2..5b3b28d 100644
--- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
+++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java
@@ -17,7 +17,6 @@
 package com.android.inputmethod.latin.inputlogic;
 
 import android.graphics.Color;
-import android.inputmethodservice.InputMethodService;
 import android.os.SystemClock;
 import android.text.SpannableString;
 import android.text.Spanned;
@@ -28,32 +27,28 @@
 import android.view.KeyCharacterMap;
 import android.view.KeyEvent;
 import android.view.inputmethod.CorrectionInfo;
-import android.view.inputmethod.CursorAnchorInfo;
 import android.view.inputmethod.EditorInfo;
 
-import com.android.inputmethod.compat.CursorAnchorInfoCompatWrapper;
 import com.android.inputmethod.compat.SuggestionSpanUtils;
 import com.android.inputmethod.event.Event;
 import com.android.inputmethod.event.InputTransaction;
+import com.android.inputmethod.keyboard.Keyboard;
 import com.android.inputmethod.keyboard.KeyboardSwitcher;
-import com.android.inputmethod.keyboard.ProximityInfo;
-import com.android.inputmethod.keyboard.TextDecorator;
-import com.android.inputmethod.keyboard.TextDecoratorUiOperator;
-import com.android.inputmethod.latin.Constants;
 import com.android.inputmethod.latin.Dictionary;
 import com.android.inputmethod.latin.DictionaryFacilitator;
-import com.android.inputmethod.latin.InputPointers;
 import com.android.inputmethod.latin.LastComposedWord;
 import com.android.inputmethod.latin.LatinIME;
-import com.android.inputmethod.latin.PrevWordsInfo;
+import com.android.inputmethod.latin.NgramContext;
 import com.android.inputmethod.latin.RichInputConnection;
 import com.android.inputmethod.latin.Suggest;
 import com.android.inputmethod.latin.Suggest.OnGetSuggestedWordsCallback;
 import com.android.inputmethod.latin.SuggestedWords;
 import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
 import com.android.inputmethod.latin.WordComposer;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.InputPointers;
+import com.android.inputmethod.latin.common.StringUtils;
 import com.android.inputmethod.latin.define.DebugFlags;
-import com.android.inputmethod.latin.define.ProductionFlags;
 import com.android.inputmethod.latin.settings.SettingsValues;
 import com.android.inputmethod.latin.settings.SettingsValuesForSuggestion;
 import com.android.inputmethod.latin.settings.SpacingAndPunctuations;
@@ -61,13 +56,15 @@
 import com.android.inputmethod.latin.utils.AsyncResultHolder;
 import com.android.inputmethod.latin.utils.InputTypeUtils;
 import com.android.inputmethod.latin.utils.RecapitalizeStatus;
-import com.android.inputmethod.latin.utils.StringUtils;
+import com.android.inputmethod.latin.utils.StatsUtils;
 import com.android.inputmethod.latin.utils.TextRange;
 
 import java.util.ArrayList;
 import java.util.TreeSet;
 import java.util.concurrent.TimeUnit;
 
+import javax.annotation.Nonnull;
+
 /**
  * This class manages the input logic.
  */
@@ -75,7 +72,7 @@
     private static final String TAG = InputLogic.class.getSimpleName();
 
     // TODO : Remove this member when we can.
-    private final LatinIME mLatinIME;
+    final LatinIME mLatinIME;
     private final SuggestionStripViewAccessor mSuggestionStripViewAccessor;
 
     // Never null.
@@ -85,18 +82,10 @@
     // Current space state of the input method. This can be any of the above constants.
     private int mSpaceState;
     // Never null
-    public SuggestedWords mSuggestedWords = SuggestedWords.EMPTY;
+    public SuggestedWords mSuggestedWords = SuggestedWords.getEmptyInstance();
     public final Suggest mSuggest;
     private final DictionaryFacilitator mDictionaryFacilitator;
 
-    private final TextDecorator mTextDecorator = new TextDecorator(new TextDecorator.Listener() {
-        @Override
-        public void onClickComposingTextToAddToDictionary(final String word) {
-            mLatinIME.addWordToUserDictionary(word);
-            mLatinIME.dismissAddToDictionaryHint();
-        }
-    });
-
     public LastComposedWord mLastComposedWord = LastComposedWord.NOT_A_COMPOSED_WORD;
     // This has package visibility so it can be accessed from InputLogicHandler.
     /* package */ final WordComposer mWordComposer;
@@ -144,13 +133,20 @@
      */
     public void startInput(final String combiningSpec, final SettingsValues settingsValues) {
         mEnteredText = null;
+        if (!mWordComposer.getTypedWord().isEmpty()) {
+            // For messaging apps that offer send button, the IME does not get the opportunity
+            // to capture the last word. This block should capture those uncommitted words.
+            // The timestamp at which it is captured is not accurate but close enough.
+            StatsUtils.onWordCommitUserTyped(
+                    mWordComposer.getTypedWord(), mWordComposer.isBatchMode());
+        }
         mWordComposer.restartCombining(combiningSpec);
         resetComposingState(true /* alsoResetLastComposedWord */);
         mDeleteCount = 0;
         mSpaceState = SpaceState.NONE;
         mRecapitalizeStatus.disable(); // Do not perform recapitalize until the cursor is moved once
         mCurrentlyPressedHardwareKeys.clear();
-        mSuggestedWords = SuggestedWords.EMPTY;
+        mSuggestedWords = SuggestedWords.getEmptyInstance();
         // In some cases (namely, after rotation of the device) editorInfo.initialSelStart is lying
         // so we try using some heuristics to find out about these and fix them.
         mConnection.tryFixLyingCursorPosition();
@@ -161,13 +157,9 @@
             mInputLogicHandler.reset();
         }
 
-        if (ProductionFlags.ENABLE_CURSOR_ANCHOR_INFO_CALLBACK) {
-            // AcceptTypedWord feature relies on CursorAnchorInfo.
-            if (settingsValues.mShouldShowUiToAcceptTypedWord) {
-                mConnection.requestCursorUpdates(true /* enableMonitor */,
-                        true /* requestImmediateCallback */);
-            }
-            mTextDecorator.reset();
+        if (settingsValues.mShouldShowLxxSuggestionUi) {
+            mConnection.requestCursorUpdates(true /* enableMonitor */,
+                    true /* requestImmediateCallback */);
         }
     }
 
@@ -204,6 +196,8 @@
     public void finishInput() {
         if (mWordComposer.isComposingWord()) {
             mConnection.finishComposingText();
+            StatsUtils.onWordCommitUserTyped(
+                    mWordComposer.getTypedWord(), mWordComposer.isBatchMode());
         }
         resetComposingState(true /* alsoResetLastComposedWord */);
         mInputLogicHandler.reset();
@@ -231,9 +225,7 @@
      * @return the complete transaction object
      */
     public InputTransaction onTextInput(final SettingsValues settingsValues, final Event event,
-            final int keyboardShiftMode,
-            // TODO: remove this argument
-            final LatinIME.UIHandler handler) {
+            final int keyboardShiftMode, final LatinIME.UIHandler handler) {
         final String rawText = event.getTextToCommit().toString();
         final InputTransaction inputTransaction = new InputTransaction(settingsValues, event,
                 SystemClock.uptimeMillis(), mSpaceState,
@@ -247,9 +239,10 @@
         handler.postUpdateSuggestionStrip(SuggestedWords.INPUT_STYLE_TYPING);
         final String text = performSpecificTldProcessingOnTextInput(rawText);
         if (SpaceState.PHANTOM == mSpaceState) {
-            promotePhantomSpace(settingsValues);
+            insertAutomaticSpaceIfOptionsAndTextAllow(settingsValues);
         }
         mConnection.commitText(text, 1);
+        StatsUtils.onWordCommitUserTyped(mEnteredText, mWordComposer.isBatchMode());
         mConnection.endBatchEdit();
         // Space state must be updated before calling updateShiftState
         mSpaceState = SpaceState.NONE;
@@ -260,20 +253,6 @@
     }
 
     /**
-     * Determines whether "Touch again to save" should be shown or not.
-     * @param suggestionInfo the suggested word chosen by the user.
-     * @return {@code true} if we should show the "Touch again to save" hint.
-     */
-    private boolean shouldShowAddToDictionaryHint(final SuggestedWordInfo suggestionInfo) {
-        // We should show the "Touch again to save" hint if the user pressed the first entry
-        // AND it's in none of our current dictionaries (main, user or otherwise).
-        return (suggestionInfo.isKindOf(SuggestedWordInfo.KIND_TYPED)
-                || suggestionInfo.isKindOf(SuggestedWordInfo.KIND_OOV_CORRECTION))
-                && !mDictionaryFacilitator.isValidWord(suggestionInfo.mWord, true /* ignoreCase */)
-                && mDictionaryFacilitator.isUserDictionaryEnabled();
-    }
-
-    /**
      * A suggestion was picked from the suggestion strip.
      * @param settingsValues the current values of the settings.
      * @param suggestionInfo the suggestion info.
@@ -285,12 +264,14 @@
     // interface
     public InputTransaction onPickSuggestionManually(final SettingsValues settingsValues,
             final SuggestedWordInfo suggestionInfo, final int keyboardShiftState,
-            // TODO: remove these arguments
             final int currentKeyboardScriptId, final LatinIME.UIHandler handler) {
         final SuggestedWords suggestedWords = mSuggestedWords;
         final String suggestion = suggestionInfo.mWord;
         // If this is a punctuation picked from the suggestion strip, pass it to onCodeInput
         if (suggestion.length() == 1 && suggestedWords.isPunctuationSuggestions()) {
+            // We still want to log a suggestion click.
+            StatsUtils.onPickSuggestionManually(
+                    mSuggestedWords, suggestionInfo, mDictionaryFacilitator);
             // Word separators are suggested before the user inputs something.
             // Rely on onCodeInput to do the complicated swapping/stripping logic consistently.
             final Event event = Event.createPunctuationSuggestionPickedEvent(suggestionInfo);
@@ -312,7 +293,7 @@
             final int firstChar = Character.codePointAt(suggestion, 0);
             if (!settingsValues.isWordSeparator(firstChar)
                     || settingsValues.isUsuallyPrecededBySpace(firstChar)) {
-                promotePhantomSpace(settingsValues);
+                insertAutomaticSpaceIfOptionsAndTextAllow(settingsValues);
             }
         }
 
@@ -321,7 +302,7 @@
         // however need to reset the suggestion strip right away, because we know we can't take
         // the risk of calling commitCompletion twice because we don't know how the app will react.
         if (suggestionInfo.isKindOf(SuggestedWordInfo.KIND_APP_DEFINED)) {
-            mSuggestedWords = SuggestedWords.EMPTY;
+            mSuggestedWords = SuggestedWords.getEmptyInstance();
             mSuggestionStripViewAccessor.setNeutralSuggestionStrip();
             inputTransaction.requireShiftUpdate(InputTransaction.SHIFT_UPDATE_NOW);
             resetComposingState(true /* alsoResetLastComposedWord */);
@@ -330,7 +311,6 @@
             return inputTransaction;
         }
 
-        final boolean shouldShowAddToDictionaryHint = shouldShowAddToDictionaryHint(suggestionInfo);
         commitChosenWord(settingsValues, suggestion, LastComposedWord.COMMIT_TYPE_MANUAL_PICK,
                 LastComposedWord.NOT_A_SEPARATOR);
         mConnection.endBatchEdit();
@@ -340,13 +320,14 @@
         mSpaceState = SpaceState.PHANTOM;
         inputTransaction.requireShiftUpdate(InputTransaction.SHIFT_UPDATE_NOW);
 
-        if (shouldShowAddToDictionaryHint) {
-            mSuggestionStripViewAccessor.showAddToDictionaryHint(suggestion);
-        } else {
-            // If we're not showing the "Touch again to save", then update the suggestion strip.
-            // That's going to be predictions (or punctuation suggestions), so INPUT_STYLE_NONE.
-            handler.postUpdateSuggestionStrip(SuggestedWords.INPUT_STYLE_NONE);
-        }
+        // If we're not showing the "Touch again to save", then update the suggestion strip.
+        // That's going to be predictions (or punctuation suggestions), so INPUT_STYLE_NONE.
+        handler.postUpdateSuggestionStrip(SuggestedWords.INPUT_STYLE_NONE);
+
+        StatsUtils.onPickSuggestionManually(
+                mSuggestedWords, suggestionInfo, mDictionaryFacilitator);
+        StatsUtils.onWordCommitSuggestionPickedManually(
+                suggestionInfo.mWord, mWordComposer.isBatchMode());
         return inputTransaction;
     }
 
@@ -416,14 +397,8 @@
 
         // The cursor has been moved : we now accept to perform recapitalization
         mRecapitalizeStatus.enable();
-        // We moved the cursor and need to invalidate the indicator right now.
-        mTextDecorator.reset();
-        // Remaining background color that was used for the add-to-dictionary indicator should be
-        // removed.
-        mConnection.removeBackgroundColorFromHighlightedTextIfNecessary();
         // We moved the cursor. If we are touching a word, we need to resume suggestion.
-        mLatinIME.mHandler.postResumeSuggestions(false /* shouldIncludeResumedWordInSuggestions */,
-                true /* shouldDelay */);
+        mLatinIME.mHandler.postResumeSuggestions(true /* shouldDelay */);
         // Stop the last recapitalization, if started.
         mRecapitalizeStatus.stop();
         return true;
@@ -442,9 +417,8 @@
      *     {@link com.android.inputmethod.keyboard.KeyboardSwitcher#getKeyboardShiftMode()}
      * @return the complete transaction object
      */
-    public InputTransaction onCodeInput(final SettingsValues settingsValues, final Event event,
-            final int keyboardShiftMode,
-            // TODO: remove these arguments
+    public InputTransaction onCodeInput(final SettingsValues settingsValues,
+            @Nonnull final Event event, final int keyboardShiftMode,
             final int currentKeyboardScriptId, final LatinIME.UIHandler handler) {
         final Event processedEvent = mWordComposer.processEvent(event);
         final InputTransaction inputTransaction = new InputTransaction(settingsValues,
@@ -491,17 +465,14 @@
     }
 
     public void onStartBatchInput(final SettingsValues settingsValues,
-            // TODO: remove these arguments
             final KeyboardSwitcher keyboardSwitcher, final LatinIME.UIHandler handler) {
         mInputLogicHandler.onStartBatchInput();
         handler.showGesturePreviewAndSuggestionStrip(
-                SuggestedWords.EMPTY, false /* dismissGestureFloatingPreviewText */);
+                SuggestedWords.getEmptyInstance(), false /* dismissGestureFloatingPreviewText */);
         handler.cancelUpdateSuggestionStrip();
         ++mAutoCommitSequenceNumber;
         mConnection.beginBatchEdit();
-        if (!mWordComposer.isComposingWord()) {
-            mConnection.removeBackgroundColorFromHighlightedTextIfNecessary();
-        } else {
+        if (mWordComposer.isComposingWord()) {
             if (mWordComposer.isCursorFrontOrMiddleOfComposingWord()) {
                 // If we are in the middle of a recorrection, we need to commit the recorrection
                 // first so that we can insert the batch input at the current cursor position.
@@ -557,30 +528,7 @@
      * earlier sequence number.
      */
     private int mAutoCommitSequenceNumber = 1;
-    public void onUpdateBatchInput(final SettingsValues settingsValues,
-            final InputPointers batchPointers,
-            // TODO: remove these arguments
-            final KeyboardSwitcher keyboardSwitcher) {
-        if (settingsValues.mPhraseGestureEnabled) {
-            final SuggestedWordInfo candidate = mSuggestedWords.getAutoCommitCandidate();
-            // If these suggested words have been generated with out of date input pointers, then
-            // we skip auto-commit (see comments above on the mSequenceNumber member).
-            if (null != candidate
-                    && mSuggestedWords.mSequenceNumber >= mAutoCommitSequenceNumber) {
-                if (candidate.mSourceDict.shouldAutoCommit(candidate)) {
-                    final String[] commitParts = candidate.mWord.split(Constants.WORD_SEPARATOR, 2);
-                    batchPointers.shift(candidate.mIndexOfTouchPointOfSecondWord);
-                    promotePhantomSpace(settingsValues);
-                    mConnection.commitText(commitParts[0], 0);
-                    mSpaceState = SpaceState.PHANTOM;
-                    keyboardSwitcher.requestUpdatingShiftState(
-                            getCurrentAutoCapsState(settingsValues), getCurrentRecapitalizeState());
-                    mWordComposer.setCapitalizedModeAtStartComposingTime(getActualCapsMode(
-                            settingsValues, keyboardSwitcher.getKeyboardShiftMode()));
-                    ++mAutoCommitSequenceNumber;
-                }
-            }
-        }
+    public void onUpdateBatchInput(final InputPointers batchPointers) {
         mInputLogicHandler.onUpdateBatchInput(batchPointers, mAutoCommitSequenceNumber);
     }
 
@@ -589,27 +537,25 @@
         ++mAutoCommitSequenceNumber;
     }
 
-    // TODO: remove this argument
     public void onCancelBatchInput(final LatinIME.UIHandler handler) {
         mInputLogicHandler.onCancelBatchInput();
         handler.showGesturePreviewAndSuggestionStrip(
-                SuggestedWords.EMPTY, true /* dismissGestureFloatingPreviewText */);
+                SuggestedWords.getEmptyInstance(), true /* dismissGestureFloatingPreviewText */);
     }
 
     // TODO: on the long term, this method should become private, but it will be difficult.
     // Especially, how do we deal with InputMethodService.onDisplayCompletions?
-    public void setSuggestedWords(final SuggestedWords suggestedWords,
-            final SettingsValues settingsValues, final LatinIME.UIHandler handler) {
-        if (SuggestedWords.EMPTY != suggestedWords) {
-            final String autoCorrection;
+    public void setSuggestedWords(final SuggestedWords suggestedWords) {
+        if (!suggestedWords.isEmpty()) {
+            final SuggestedWordInfo suggestedWordInfo;
             if (suggestedWords.mWillAutoCorrect) {
-                autoCorrection = suggestedWords.getWord(SuggestedWords.INDEX_OF_AUTO_CORRECTION);
+                suggestedWordInfo = suggestedWords.getInfo(SuggestedWords.INDEX_OF_AUTO_CORRECTION);
             } else {
                 // We can't use suggestedWords.getWord(SuggestedWords.INDEX_OF_TYPED_WORD)
                 // because it may differ from mWordComposer.mTypedWord.
-                autoCorrection = suggestedWords.mTypedWord;
+                suggestedWordInfo = suggestedWords.mTypedWordInfo;
             }
-            mWordComposer.setAutoCorrection(autoCorrection);
+            mWordComposer.setAutoCorrection(suggestedWordInfo);
         }
         mSuggestedWords = suggestedWords;
         final boolean newAutoCorrectionIndicator = suggestedWords.mWillAutoCorrect;
@@ -666,7 +612,6 @@
      * @param inputTransaction The transaction in progress.
      */
     private void handleFunctionalEvent(final Event event, final InputTransaction inputTransaction,
-            // TODO: remove these arguments
             final int currentKeyboardScriptId, final LatinIME.UIHandler handler) {
         switch (event.mKeyCode) {
             case Constants.CODE_DELETE:
@@ -683,7 +628,7 @@
                 break;
             case Constants.CODE_CAPSLOCK:
                 // Note: Changing keyboard to shift lock state is handled in
-                // {@link KeyboardSwitcher#onCodeInput(int)}.
+                // {@link KeyboardSwitcher#onEvent(Event)}.
                 break;
             case Constants.CODE_SYMBOL_SHIFT:
                 // Note: Calling back to the keyboard on the symbol Shift key is handled in
@@ -711,14 +656,13 @@
                 break;
             case Constants.CODE_EMOJI:
                 // Note: Switching emoji keyboard is being handled in
-                // {@link KeyboardState#onCodeInput(int,int)}.
+                // {@link KeyboardState#onEvent(Event,int)}.
                 break;
             case Constants.CODE_ALPHA_FROM_EMOJI:
                 // Note: Switching back from Emoji keyboard to the main keyboard is being
-                // handled in {@link KeyboardState#onCodeInput(int,int)}.
+                // handled in {@link KeyboardState#onEvent(Event,int)}.
                 break;
             case Constants.CODE_SHIFT_ENTER:
-                // TODO: remove this object
                 final Event tmpEvent = Event.createSoftwareKeypressEvent(Constants.CODE_ENTER,
                         event.mKeyCode, event.mX, event.mY, event.isKeyRepeat());
                 handleNonSpecialCharacterEvent(tmpEvent, inputTransaction, handler);
@@ -742,7 +686,6 @@
      */
     private void handleNonFunctionalEvent(final Event event,
             final InputTransaction inputTransaction,
-            // TODO: remove this argument
             final LatinIME.UIHandler handler) {
         inputTransaction.setDidAffectContents();
         switch (event.mCodePoint) {
@@ -788,18 +731,7 @@
      */
     private void handleNonSpecialCharacterEvent(final Event event,
             final InputTransaction inputTransaction,
-            // TODO: remove this argument
             final LatinIME.UIHandler handler) {
-        if (!mWordComposer.isComposingWord()) {
-            mConnection.removeBackgroundColorFromHighlightedTextIfNecessary();
-            // In case the "add to dictionary" hint was still displayed.
-            // TODO: Do we really need to check if we have composing text here?
-            if (mSuggestionStripViewAccessor.isShowingAddToDictionaryHint()) {
-                mSuggestionStripViewAccessor.dismissAddToDictionaryHint();
-                mTextDecorator.reset();
-            }
-        }
-
         final int codePoint = event.mCodePoint;
         mSpaceState = SpaceState.NONE;
         if (inputTransaction.mSettingsValues.isWordSeparator(codePoint)
@@ -843,7 +775,7 @@
                 // Sanity check
                 throw new RuntimeException("Should not be composing here");
             }
-            promotePhantomSpace(settingsValues);
+            insertAutomaticSpaceIfOptionsAndTextAllow(settingsValues);
         }
 
         if (mWordComposer.isCursorFrontOrMiddleOfComposingWord()) {
@@ -904,7 +836,6 @@
      * @param inputTransaction The transaction in progress.
      */
     private void handleSeparatorEvent(final Event event, final InputTransaction inputTransaction,
-            // TODO: remove this argument
             final LatinIME.UIHandler handler) {
         final int codePoint = event.mCodePoint;
         final SettingsValues settingsValues = inputTransaction.mSettingsValues;
@@ -954,12 +885,13 @@
         }
 
         if (needsPrecedingSpace) {
-            promotePhantomSpace(settingsValues);
+            insertAutomaticSpaceIfOptionsAndTextAllow(settingsValues);
         }
 
         if (tryPerformDoubleSpacePeriod(event, inputTransaction)) {
             mSpaceState = SpaceState.DOUBLE;
             inputTransaction.setRequiresUpdateSuggestions();
+            StatsUtils.onDoubleSpacePeriod();
         } else if (swapWeakSpace && trySwapSwapperAndSpace(event, inputTransaction)) {
             mSpaceState = SpaceState.SWAP_PUNCTUATION;
             mSuggestionStripViewAccessor.setNeutralSuggestionStrip();
@@ -1011,7 +943,6 @@
      * @param inputTransaction The transaction in progress.
      */
     private void handleBackspaceEvent(final Event event, final InputTransaction inputTransaction,
-            // TODO: remove this argument, put it into settingsValues
             final int currentKeyboardScriptId) {
         mSpaceState = SpaceState.NONE;
         mDeleteCount++;
@@ -1041,10 +972,13 @@
                 mWordComposer.reset();
                 mWordComposer.setRejectedBatchModeSuggestion(rejectedSuggestion);
                 if (!TextUtils.isEmpty(rejectedSuggestion)) {
-                    mDictionaryFacilitator.removeWordFromPersonalizedDicts(rejectedSuggestion);
+                    unlearnWord(rejectedSuggestion, inputTransaction.mSettingsValues,
+                            Constants.EVENT_REJECTION);
                 }
+                StatsUtils.onBackspaceWordDelete(rejectedSuggestion.length());
             } else {
                 mWordComposer.applyProcessedEvent(event);
+                StatsUtils.onBackspacePressed(1);
             }
             if (mWordComposer.isComposingWord()) {
                 setComposingTextInternal(getTextWithUnderline(mWordComposer.getTypedWord()), 1);
@@ -1054,7 +988,24 @@
             inputTransaction.setRequiresUpdateSuggestions();
         } else {
             if (mLastComposedWord.canRevertCommit()) {
+                final String lastComposedWord = mLastComposedWord.mTypedWord;
                 revertCommit(inputTransaction, inputTransaction.mSettingsValues);
+                StatsUtils.onRevertAutoCorrect();
+                StatsUtils.onWordCommitUserTyped(lastComposedWord, mWordComposer.isBatchMode());
+                // Restart suggestions when backspacing into a reverted word. This is required for
+                // the final corrected word to be learned, as learning only occurs when suggestions
+                // are active.
+                //
+                // Note: restartSuggestionsOnWordTouchedByCursor is already called for normal
+                // (non-revert) backspace handling.
+                if (inputTransaction.mSettingsValues.isSuggestionsEnabledPerUserSettings()
+                        && inputTransaction.mSettingsValues.mSpacingAndPunctuations
+                                .mCurrentLanguageHasSpaces
+                        && !mConnection.isCursorFollowedByWordCharacter(
+                                inputTransaction.mSettingsValues.mSpacingAndPunctuations)) {
+                    restartSuggestionsOnWordTouchedByCursor(inputTransaction.mSettingsValues,
+                            false /* forStartInput */, currentKeyboardScriptId);
+                }
                 return;
             }
             if (mEnteredText != null && mConnection.sameAsTextBeforeCursor(mEnteredText)) {
@@ -1062,6 +1013,7 @@
                 // This is triggered on backspace after a key that inputs multiple characters,
                 // like the smiley key or the .com key.
                 mConnection.deleteSurroundingText(mEnteredText.length(), 0);
+                StatsUtils.onDeleteMultiCharInput(mEnteredText.length());
                 mEnteredText = null;
                 // If we have mEnteredText, then we know that mHasUncommittedTypedChars == false.
                 // In addition we know that spaceState is false, and that we should not be
@@ -1070,21 +1022,26 @@
             }
             if (SpaceState.DOUBLE == inputTransaction.mSpaceState) {
                 cancelDoubleSpacePeriodCountdown();
-                if (mConnection.revertDoubleSpacePeriod()) {
+                if (mConnection.revertDoubleSpacePeriod(
+                        inputTransaction.mSettingsValues.mSpacingAndPunctuations)) {
                     // No need to reset mSpaceState, it has already be done (that's why we
                     // receive it as a parameter)
                     inputTransaction.setRequiresUpdateSuggestions();
                     mWordComposer.setCapitalizedModeAtStartComposingTime(
                             WordComposer.CAPS_MODE_OFF);
+                    StatsUtils.onRevertDoubleSpacePeriod();
                     return;
                 }
             } else if (SpaceState.SWAP_PUNCTUATION == inputTransaction.mSpaceState) {
                 if (mConnection.revertSwapPunctuation()) {
+                    StatsUtils.onRevertSwapPunctuation();
                     // Likewise
                     return;
                 }
             }
 
+            boolean hasUnlearnedWordBeingDeleted = false;
+
             // No cancelling of commit/double space/swap: we have a regular backspace.
             // We should backspace one char and restart suggestion if at the end of a word.
             if (mConnection.hasSelection()) {
@@ -1094,25 +1051,36 @@
                 mConnection.setSelection(mConnection.getExpectedSelectionEnd(),
                         mConnection.getExpectedSelectionEnd());
                 mConnection.deleteSurroundingText(numCharsDeleted, 0);
+                StatsUtils.onBackspaceSelectedText(numCharsDeleted);
             } else {
                 // There is no selection, just delete one character.
-                if (Constants.NOT_A_CURSOR_POSITION == mConnection.getExpectedSelectionEnd()) {
-                    // This should never happen.
-                    Log.e(TAG, "Backspace when we don't know the selection position");
-                }
-                if (inputTransaction.mSettingsValues.isBeforeJellyBean() ||
-                        inputTransaction.mSettingsValues.mInputAttributes.isTypeNull()) {
-                    // There are two possible reasons to send a key event: either the field has
+                if (inputTransaction.mSettingsValues.isBeforeJellyBean()
+                        || inputTransaction.mSettingsValues.mInputAttributes.isTypeNull()
+                        || Constants.NOT_A_CURSOR_POSITION
+                                == mConnection.getExpectedSelectionEnd()) {
+                    // There are three possible reasons to send a key event: either the field has
                     // type TYPE_NULL, in which case the keyboard should send events, or we are
-                    // running in backward compatibility mode. Before Jelly bean, the keyboard
-                    // would simulate a hardware keyboard event on pressing enter or delete. This
-                    // is bad for many reasons (there are race conditions with commits) but some
-                    // applications are relying on this behavior so we continue to support it for
-                    // older apps, so we retain this behavior if the app has target SDK < JellyBean.
+                    // running in backward compatibility mode, or we don't know the cursor position.
+                    // Before Jelly bean, the keyboard would simulate a hardware keyboard event on
+                    // pressing enter or delete. This is bad for many reasons (there are race
+                    // conditions with commits) but some applications are relying on this behavior
+                    // so we continue to support it for older apps, so we retain this behavior if
+                    // the app has target SDK < JellyBean.
+                    // As for the case where we don't know the cursor position, it can happen
+                    // because of bugs in the framework. But the framework should know, so the next
+                    // best thing is to leave it to whatever it thinks is best.
                     sendDownUpKeyEvent(KeyEvent.KEYCODE_DEL);
+                    int totalDeletedLength = 1;
                     if (mDeleteCount > Constants.DELETE_ACCELERATE_AT) {
+                        // If this is an accelerated (i.e., double) deletion, then we need to
+                        // consider unlearning here because we may have already reached
+                        // the previous word, and will lose it after next deletion.
+                        hasUnlearnedWordBeingDeleted |= unlearnWordBeingDeleted(
+                                inputTransaction.mSettingsValues, currentKeyboardScriptId);
                         sendDownUpKeyEvent(KeyEvent.KEYCODE_DEL);
+                        totalDeletedLength++;
                     }
+                    StatsUtils.onBackspacePressed(totalDeletedLength);
                 } else {
                     final int codePointBeforeCursor = mConnection.getCodePointBeforeCursor();
                     if (codePointBeforeCursor == Constants.NOT_A_CODE) {
@@ -1123,34 +1091,83 @@
                         // catch it and have their broken interface react. If you need the keyboard
                         // to do this, you're doing it wrong -- please fix your app.
                         mConnection.deleteSurroundingText(1, 0);
+                        // TODO: Add a new StatsUtils method onBackspaceWhenNoText()
                         return;
                     }
                     final int lengthToDelete =
                             Character.isSupplementaryCodePoint(codePointBeforeCursor) ? 2 : 1;
                     mConnection.deleteSurroundingText(lengthToDelete, 0);
+                    int totalDeletedLength = lengthToDelete;
                     if (mDeleteCount > Constants.DELETE_ACCELERATE_AT) {
+                        // If this is an accelerated (i.e., double) deletion, then we need to
+                        // consider unlearning here because we may have already reached
+                        // the previous word, and will lose it after next deletion.
+                        hasUnlearnedWordBeingDeleted |= unlearnWordBeingDeleted(
+                                inputTransaction.mSettingsValues, currentKeyboardScriptId);
                         final int codePointBeforeCursorToDeleteAgain =
                                 mConnection.getCodePointBeforeCursor();
                         if (codePointBeforeCursorToDeleteAgain != Constants.NOT_A_CODE) {
                             final int lengthToDeleteAgain = Character.isSupplementaryCodePoint(
                                     codePointBeforeCursorToDeleteAgain) ? 2 : 1;
                             mConnection.deleteSurroundingText(lengthToDeleteAgain, 0);
+                            totalDeletedLength += lengthToDeleteAgain;
                         }
                     }
+                    StatsUtils.onBackspacePressed(totalDeletedLength);
                 }
             }
-            if (inputTransaction.mSettingsValues
-                    .isSuggestionsEnabledPerUserSettings()
+            if (!hasUnlearnedWordBeingDeleted) {
+                // Consider unlearning the word being deleted (if we have not done so already).
+                unlearnWordBeingDeleted(
+                        inputTransaction.mSettingsValues, currentKeyboardScriptId);
+            }
+            if (inputTransaction.mSettingsValues.isSuggestionsEnabledPerUserSettings()
                     && inputTransaction.mSettingsValues.mSpacingAndPunctuations
                             .mCurrentLanguageHasSpaces
                     && !mConnection.isCursorFollowedByWordCharacter(
                             inputTransaction.mSettingsValues.mSpacingAndPunctuations)) {
                 restartSuggestionsOnWordTouchedByCursor(inputTransaction.mSettingsValues,
-                        true /* shouldIncludeResumedWordInSuggestions */, currentKeyboardScriptId);
+                        false /* forStartInput */, currentKeyboardScriptId);
             }
         }
     }
 
+    boolean unlearnWordBeingDeleted(
+            final SettingsValues settingsValues,final int currentKeyboardScriptId) {
+        // If we just started backspacing to delete a previous word (but have not
+        // entered the composing state yet), unlearn the word.
+        // TODO: Consider tracking whether or not this word was typed by the user.
+        if (!mConnection.hasSelection()
+                && settingsValues.isSuggestionsEnabledPerUserSettings()
+                && settingsValues.mSpacingAndPunctuations.mCurrentLanguageHasSpaces
+                && !mConnection.isCursorFollowedByWordCharacter(
+                        settingsValues.mSpacingAndPunctuations)) {
+            final TextRange range = mConnection.getWordRangeAtCursor(
+                    settingsValues.mSpacingAndPunctuations,
+                    currentKeyboardScriptId);
+            if (range == null) {
+                // Happens if we don't have an input connection at all.
+                return false;
+            }
+            final String wordBeingDeleted = range.mWord.toString();
+            if (!wordBeingDeleted.isEmpty()) {
+                unlearnWord(wordBeingDeleted, settingsValues,
+                        Constants.EVENT_BACKSPACE);
+                return true;
+            }
+        }
+        return false;
+    }
+
+    void unlearnWord(final String word, final SettingsValues settingsValues, final int eventType) {
+        final NgramContext ngramContext = mConnection.getNgramContextFromNthPreviousWord(
+            settingsValues.mSpacingAndPunctuations, 2);
+        final long timeStampInSeconds = TimeUnit.MILLISECONDS.toSeconds(
+            System.currentTimeMillis());
+        mDictionaryFacilitator.unlearnFromUserHistory(
+            word, ngramContext, timeStampInSeconds, eventType);
+    }
+
     /**
      * Handle a press on the language switch key (the "globe key")
      */
@@ -1253,7 +1270,9 @@
         if (null == lastTwo) return false;
         final int length = lastTwo.length();
         if (length < 2) return false;
-        if (lastTwo.charAt(length - 1) != Constants.CODE_SPACE) return false;
+        if (lastTwo.charAt(length - 1) != Constants.CODE_SPACE) {
+            return false;
+        }
         // We know there is a space in pos -1, and we have at least two chars. If we have only two
         // chars, isSurrogatePairs can't return true as charAt(1) is a space, so this is fine.
         final int firstCodePoint =
@@ -1336,7 +1355,7 @@
     }
 
     private void performAdditionToUserHistoryDictionary(final SettingsValues settingsValues,
-            final String suggestion, final PrevWordsInfo prevWordsInfo) {
+            final String suggestion, @Nonnull final NgramContext ngramContext) {
         // If correction is not enabled, we don't add words to the user history dictionary.
         // That's to avoid unintended additions in some sensitive fields, or fields that
         // expect to receive non-words.
@@ -1348,7 +1367,7 @@
         final int timeStampInSeconds = (int)TimeUnit.MILLISECONDS.toSeconds(
                 System.currentTimeMillis());
         mDictionaryFacilitator.addToUserHistory(suggestion, wasAutoCapitalized,
-                prevWordsInfo, timeStampInSeconds, settingsValues.mBlockPotentiallyOffensive);
+                ngramContext, timeStampInSeconds, settingsValues.mBlockPotentiallyOffensive);
     }
 
     public void performUpdateSuggestionStripSync(final SettingsValues settingsValues,
@@ -1360,7 +1379,7 @@
                         + "requested!");
             }
             // Clear the suggestions strip.
-            mSuggestionStripViewAccessor.showSuggestionStrip(SuggestedWords.EMPTY);
+            mSuggestionStripViewAccessor.showSuggestionStrip(SuggestedWords.getEmptyInstance());
             return;
         }
 
@@ -1374,14 +1393,20 @@
                 new OnGetSuggestedWordsCallback() {
                     @Override
                     public void onGetSuggestedWords(final SuggestedWords suggestedWords) {
-                        final String typedWord = mWordComposer.getTypedWord();
+                        final String typedWordString = mWordComposer.getTypedWord();
+                        final SuggestedWordInfo typedWordInfo = new SuggestedWordInfo(
+                                typedWordString, "" /* prevWordsContext */,
+                                SuggestedWordInfo.MAX_SCORE,
+                                SuggestedWordInfo.KIND_TYPED, Dictionary.DICTIONARY_USER_TYPED,
+                                SuggestedWordInfo.NOT_AN_INDEX /* indexOfTouchPointOfSecondWord */,
+                                SuggestedWordInfo.NOT_A_CONFIDENCE);
                         // Show new suggestions if we have at least one. Otherwise keep the old
                         // suggestions with the new typed word. Exception: if the length of the
                         // typed word is <= 1 (after a deletion typically) we clear old suggestions.
-                        if (suggestedWords.size() > 1 || typedWord.length() <= 1) {
+                        if (suggestedWords.size() > 1 || typedWordString.length() <= 1) {
                             holder.set(suggestedWords);
                         } else {
-                            holder.set(retrieveOlderSuggestions(typedWord, mSuggestedWords));
+                            holder.set(retrieveOlderSuggestions(typedWordInfo, mSuggestedWords));
                         }
                     }
                 }
@@ -1400,12 +1425,12 @@
      * do nothing.
      *
      * @param settingsValues the current values of the settings.
-     * @param shouldIncludeResumedWordInSuggestions whether to include the word on which we resume
-     *   suggestions in the suggestion list.
+     * @param forStartInput whether we're doing this in answer to starting the input (as opposed
+     *   to a cursor move, for example). In ICS, there is a platform bug that we need to work
+     *   around only when we come here at input start time.
      */
-    // TODO: make this private.
     public void restartSuggestionsOnWordTouchedByCursor(final SettingsValues settingsValues,
-            final boolean shouldIncludeResumedWordInSuggestions,
+            final boolean forStartInput,
             // TODO: remove this argument, put it into settingsValues
             final int currentKeyboardScriptId) {
         // HACK: We may want to special-case some apps that exhibit bad behavior in case of
@@ -1452,15 +1477,14 @@
         final int numberOfCharsInWordBeforeCursor = range.getNumberOfCharsInWordBeforeCursor();
         if (numberOfCharsInWordBeforeCursor > expectedCursorPosition) return;
         final ArrayList<SuggestedWordInfo> suggestions = new ArrayList<>();
-        final String typedWord = range.mWord.toString();
-        if (shouldIncludeResumedWordInSuggestions) {
-            suggestions.add(new SuggestedWordInfo(typedWord,
-                    SuggestedWords.MAX_SUGGESTIONS + 1,
-                    SuggestedWordInfo.KIND_TYPED, Dictionary.DICTIONARY_USER_TYPED,
-                    SuggestedWordInfo.NOT_AN_INDEX /* indexOfTouchPointOfSecondWord */,
-                    SuggestedWordInfo.NOT_A_CONFIDENCE /* autoCommitFirstWordConfidence */));
-        }
-        if (!isResumableWord(settingsValues, typedWord)) {
+        final String typedWordString = range.mWord.toString();
+        final SuggestedWordInfo typedWordInfo = new SuggestedWordInfo(typedWordString,
+                "" /* prevWordsContext */, SuggestedWords.MAX_SUGGESTIONS + 1,
+                SuggestedWordInfo.KIND_TYPED, Dictionary.DICTIONARY_USER_TYPED,
+                SuggestedWordInfo.NOT_AN_INDEX /* indexOfTouchPointOfSecondWord */,
+                SuggestedWordInfo.NOT_A_CONFIDENCE /* autoCommitFirstWordConfidence */);
+        suggestions.add(typedWordInfo);
+        if (!isResumableWord(settingsValues, typedWordString)) {
             mSuggestionStripViewAccessor.setNeutralSuggestionStrip();
             return;
         }
@@ -1468,9 +1492,9 @@
         for (final SuggestionSpan span : range.getSuggestionSpansAtWord()) {
             for (final String s : span.getSuggestions()) {
                 ++i;
-                if (!TextUtils.equals(s, typedWord)) {
+                if (!TextUtils.equals(s, typedWordString)) {
                     suggestions.add(new SuggestedWordInfo(s,
-                            SuggestedWords.MAX_SUGGESTIONS - i,
+                            "" /* prevWordsContext */, SuggestedWords.MAX_SUGGESTIONS - i,
                             SuggestedWordInfo.KIND_RESUMED, Dictionary.DICTIONARY_RESUMED,
                             SuggestedWordInfo.NOT_AN_INDEX /* indexOfTouchPointOfSecondWord */,
                             SuggestedWordInfo.NOT_A_CONFIDENCE
@@ -1478,47 +1502,25 @@
                 }
             }
         }
-        final int[] codePoints = StringUtils.toCodePointArray(typedWord);
-        // We want the previous word for suggestion. If we have chars in the word
-        // before the cursor, then we want the word before that, hence 2; otherwise,
-        // we want the word immediately before the cursor, hence 1.
-        final PrevWordsInfo prevWordsInfo = getPrevWordsInfoFromNthPreviousWordForSuggestion(
-                settingsValues.mSpacingAndPunctuations,
-                0 == numberOfCharsInWordBeforeCursor ? 1 : 2);
+        final int[] codePoints = StringUtils.toCodePointArray(typedWordString);
         mWordComposer.setComposingWord(codePoints,
                 mLatinIME.getCoordinatesForCurrentKeyboard(codePoints));
         mWordComposer.setCursorPositionWithinWord(
-                typedWord.codePointCount(0, numberOfCharsInWordBeforeCursor));
-        mConnection.maybeMoveTheCursorAroundAndRestoreToWorkaroundABug();
+        typedWordString.codePointCount(0, numberOfCharsInWordBeforeCursor));
+        if (forStartInput) {
+            mConnection.maybeMoveTheCursorAroundAndRestoreToWorkaroundABug();
+        }
         mConnection.setComposingRegion(expectedCursorPosition - numberOfCharsInWordBeforeCursor,
                 expectedCursorPosition + range.getNumberOfCharsInWordAfterCursor());
-        if (suggestions.size() <= (shouldIncludeResumedWordInSuggestions ? 1 : 0)) {
+        if (suggestions.size() <= 1) {
             // If there weren't any suggestion spans on this word, suggestions#size() will be 1
             // if shouldIncludeResumedWordInSuggestions is true, 0 otherwise. In this case, we
             // have no useful suggestions, so we will try to compute some for it instead.
             mInputLogicHandler.getSuggestedWords(Suggest.SESSION_ID_TYPING,
                     SuggestedWords.NOT_A_SEQUENCE_NUMBER, new OnGetSuggestedWordsCallback() {
                         @Override
-                        public void onGetSuggestedWords(
-                                final SuggestedWords suggestedWordsIncludingTypedWord) {
-                            final SuggestedWords suggestedWords;
-                            if (suggestedWordsIncludingTypedWord.size() > 1
-                                    && !shouldIncludeResumedWordInSuggestions) {
-                                // We were able to compute new suggestions for this word.
-                                // Remove the typed word, since we don't want to display it in this
-                                // case. The #getSuggestedWordsExcludingTypedWordForRecorrection()
-                                // method sets willAutoCorrect to false.
-                                suggestedWords = suggestedWordsIncludingTypedWord
-                                        .getSuggestedWordsExcludingTypedWordForRecorrection();
-                            } else {
-                                // No saved suggestions, and we were unable to compute any good one
-                                // either. Rather than displaying an empty suggestion strip, we'll
-                                // display the original word alone in the middle.
-                                // Since there is only one word, willAutoCorrect is false.
-                                suggestedWords = suggestedWordsIncludingTypedWord;
-                            }
-                            mIsAutoCorrectionIndicatorOn = false;
-                            mLatinIME.mHandler.showSuggestionStrip(suggestedWords);
+                        public void onGetSuggestedWords(final SuggestedWords suggestedWords) {
+                            doShowSuggestionsAndClearAutoCorrectionIndicator(suggestedWords);
                         }});
         } else {
             // We found suggestion spans in the word. We'll create the SuggestedWords out of
@@ -1526,14 +1528,18 @@
             // color of the word in the suggestion strip changes according to this parameter,
             // and false gives the correct color.
             final SuggestedWords suggestedWords = new SuggestedWords(suggestions,
-                    null /* rawSuggestions */, typedWord, false /* typedWordValid */,
+                    null /* rawSuggestions */, typedWordInfo, false /* typedWordValid */,
                     false /* willAutoCorrect */, false /* isObsoleteSuggestions */,
                     SuggestedWords.INPUT_STYLE_RECORRECTION, SuggestedWords.NOT_A_SEQUENCE_NUMBER);
-            mIsAutoCorrectionIndicatorOn = false;
-            mLatinIME.mHandler.showSuggestionStrip(suggestedWords);
+            doShowSuggestionsAndClearAutoCorrectionIndicator(suggestedWords);
         }
     }
 
+    void doShowSuggestionsAndClearAutoCorrectionIndicator(final SuggestedWords suggestedWords) {
+        mIsAutoCorrectionIndicatorOn = false;
+        mLatinIME.mHandler.showSuggestionStrip(suggestedWords);
+    }
+
     /**
      * Reverts a previous commit with auto-correction.
      *
@@ -1551,6 +1557,10 @@
         final String committedWordString = committedWord.toString();
         final int cancelLength = committedWord.length();
         final String separatorString = mLastComposedWord.mSeparatorString;
+        // If our separator is a space, we won't actually commit it,
+        // but set the space state to PHANTOM so that a space will be inserted
+        // on the next keypress
+        final boolean usePhantomSpace = separatorString.equals(Constants.STRING_SPACE);
         // We want java chars, not codepoints for the following.
         final int separatorLength = separatorString.length();
         // TODO: should we check our saved separator against the actual contents of the text view?
@@ -1569,9 +1579,11 @@
         }
         mConnection.deleteSurroundingText(deleteLength, 0);
         if (!TextUtils.isEmpty(committedWord)) {
-            mDictionaryFacilitator.removeWordFromPersonalizedDicts(committedWordString);
+            unlearnWord(committedWordString, inputTransaction.mSettingsValues,
+                    Constants.EVENT_REVERT);
         }
-        final String stringToCommit = originallyTypedWord + separatorString;
+        final String stringToCommit = originallyTypedWord +
+                (usePhantomSpace ? "" : separatorString);
         final SpannableString textToCommit = new SpannableString(stringToCommit);
         if (committedWord instanceof SpannableString) {
             final SpannableString committedWordWithSuggestionSpans = (SpannableString)committedWord;
@@ -1583,15 +1595,11 @@
             // First, add the committed word to the list of suggestions.
             suggestions.add(committedWordString);
             for (final Object span : spans) {
-                // If this is a suggestion span, we check that the locale is the right one, and
-                // that the word is not the committed word. That should mostly be the case.
+                // If this is a suggestion span, we check that the word is not the committed word.
+                // That should mostly be the case.
                 // Given this, we add it to the list of suggestions, otherwise we discard it.
                 if (span instanceof SuggestionSpan) {
                     final SuggestionSpan suggestionSpan = (SuggestionSpan)span;
-                    if (!suggestionSpan.getLocale().equals(
-                            inputTransaction.mSettingsValues.mLocale.toString())) {
-                        continue;
-                    }
                     for (final String suggestion : suggestionSpan.getSuggestions()) {
                         if (!suggestion.equals(committedWordString)) {
                             suggestions.add(suggestion);
@@ -1604,24 +1612,17 @@
                 }
             }
             // Add the suggestion list to the list of suggestions.
-            textToCommit.setSpan(new SuggestionSpan(inputTransaction.mSettingsValues.mLocale,
-                    suggestions.toArray(new String[suggestions.size()]), 0 /* flags */),
+            textToCommit.setSpan(new SuggestionSpan(mLatinIME /* context */,
+                    inputTransaction.mSettingsValues.mLocale,
+                    suggestions.toArray(new String[suggestions.size()]), 0 /* flags */,
+                    null /* notificationTargetClass */),
                     0 /* start */, lastCharIndex /* end */, 0 /* flags */);
         }
 
-        final boolean shouldShowAddToDictionaryForTypedWord =
-                shouldShowAddToDictionaryForTypedWord(mLastComposedWord, settingsValues);
-
         if (inputTransaction.mSettingsValues.mSpacingAndPunctuations.mCurrentLanguageHasSpaces) {
-            // For languages with spaces, we revert to the typed string, but the cursor is still
-            // after the separator so we don't resume suggestions. If the user wants to correct
-            // the word, they have to press backspace again.
-            if (shouldShowAddToDictionaryForTypedWord) {
-                mConnection.commitTextWithBackgroundColor(textToCommit, 1,
-                        settingsValues.mTextHighlightColorForAddToDictionaryIndicator,
-                        originallyTypedWordString.length());
-            } else {
-                mConnection.commitText(textToCommit, 1);
+            mConnection.commitText(textToCommit, 1);
+            if (usePhantomSpace) {
+                mSpaceState = SpaceState.PHANTOM;
             }
         } else {
             // For languages without spaces, we revert the typed string but the cursor is flush
@@ -1629,32 +1630,13 @@
             final int[] codePoints = StringUtils.toCodePointArray(stringToCommit);
             mWordComposer.setComposingWord(codePoints,
                     mLatinIME.getCoordinatesForCurrentKeyboard(codePoints));
-            if (shouldShowAddToDictionaryForTypedWord) {
-                setComposingTextInternalWithBackgroundColor(textToCommit, 1,
-                        settingsValues.mTextHighlightColorForAddToDictionaryIndicator,
-                        originallyTypedWordString.length());
-            } else {
-                setComposingTextInternal(textToCommit, 1);
-            }
+            setComposingTextInternal(textToCommit, 1);
         }
         // Don't restart suggestion yet. We'll restart if the user deletes the separator.
         mLastComposedWord = LastComposedWord.NOT_A_COMPOSED_WORD;
 
-        if (shouldShowAddToDictionaryForTypedWord) {
-            // Due to the API limitation as of L, we cannot reliably retrieve the reverted text
-            // when the separator causes line breaking. Until this API limitation is addressed in
-            // the framework, show the indicator only when the separator doesn't contain
-            // line-breaking characters.
-            if (!StringUtils.hasLineBreakCharacter(separatorString)) {
-                mTextDecorator.showAddToDictionaryIndicator(originallyTypedWordString,
-                        mConnection.getExpectedSelectionStart(),
-                        mConnection.getExpectedSelectionEnd());
-            }
-            mSuggestionStripViewAccessor.showAddToDictionaryHint(originallyTypedWordString);
-        } else {
-            // We have a separator between the word and the cursor: we should show predictions.
-            inputTransaction.setRequiresUpdateSuggestions();
-        }
+        // We have a separator between the word and the cursor: we should show predictions.
+        inputTransaction.setRequiresUpdateSuggestions();
     }
 
     /**
@@ -1720,26 +1702,25 @@
     }
 
     /**
-     * Get information fo previous words from the nth previous word before the cursor as context
+     * Get n-gram context from the nth previous word before the cursor as context
      * for the suggestion process.
      * @param spacingAndPunctuations the current spacing and punctuations settings.
      * @param nthPreviousWord reverse index of the word to get (1-indexed)
      * @return the information of previous words
      */
-    // TODO: Make this private
-    public PrevWordsInfo getPrevWordsInfoFromNthPreviousWordForSuggestion(
+    public NgramContext getNgramContextFromNthPreviousWordForSuggestion(
             final SpacingAndPunctuations spacingAndPunctuations, final int nthPreviousWord) {
         if (spacingAndPunctuations.mCurrentLanguageHasSpaces) {
             // If we are typing in a language with spaces we can just look up the previous
             // word information from textview.
-            return mConnection.getPrevWordsInfoFromNthPreviousWord(
+            return mConnection.getNgramContextFromNthPreviousWord(
                     spacingAndPunctuations, nthPreviousWord);
-        } else {
-            return LastComposedWord.NOT_A_COMPOSED_WORD == mLastComposedWord ?
-                    PrevWordsInfo.BEGINNING_OF_SENTENCE :
-                            new PrevWordsInfo(new PrevWordsInfo.WordInfo(
-                                    mLastComposedWord.mCommittedWord.toString()));
         }
+        if (LastComposedWord.NOT_A_COMPOSED_WORD == mLastComposedWord) {
+            return NgramContext.BEGINNING_OF_SENTENCE;
+        }
+        return new NgramContext(new NgramContext.WordInfo(
+                mLastComposedWord.mCommittedWord.toString()));
     }
 
     /**
@@ -1792,9 +1773,8 @@
         // If no code point, #getCodePointBeforeCursor returns NOT_A_CODE_POINT.
         if (Constants.CODE_PERIOD == codePointBeforeCursor) {
             return text.substring(1);
-        } else {
-            return text;
         }
+        return text;
     }
 
     /**
@@ -1845,21 +1825,21 @@
      * Make a {@link com.android.inputmethod.latin.SuggestedWords} object containing a typed word
      * and obsolete suggestions.
      * See {@link com.android.inputmethod.latin.SuggestedWords#getTypedWordAndPreviousSuggestions(
-     *      String, com.android.inputmethod.latin.SuggestedWords)}.
-     * @param typedWord The typed word as a string.
+     *      SuggestedWordInfo, com.android.inputmethod.latin.SuggestedWords)}.
+     * @param typedWordInfo The typed word as a SuggestedWordInfo.
      * @param previousSuggestedWords The previously suggested words.
      * @return Obsolete suggestions with the newly typed word.
      */
-    private SuggestedWords retrieveOlderSuggestions(final String typedWord,
+    static SuggestedWords retrieveOlderSuggestions(final SuggestedWordInfo typedWordInfo,
             final SuggestedWords previousSuggestedWords) {
-        final SuggestedWords oldSuggestedWords =
-                previousSuggestedWords.isPunctuationSuggestions() ? SuggestedWords.EMPTY
-                        : previousSuggestedWords;
+        final SuggestedWords oldSuggestedWords = previousSuggestedWords.isPunctuationSuggestions()
+                ? SuggestedWords.getEmptyInstance() : previousSuggestedWords;
         final ArrayList<SuggestedWords.SuggestedWordInfo> typedWordAndPreviousSuggestions =
-                SuggestedWords.getTypedWordAndPreviousSuggestions(typedWord, oldSuggestedWords);
+                SuggestedWords.getTypedWordAndPreviousSuggestions(typedWordInfo, oldSuggestedWords);
         return new SuggestedWords(typedWordAndPreviousSuggestions, null /* rawSuggestions */,
-                false /* typedWordValid */, false /* hasAutoCorrectionCandidate */,
-                true /* isObsoleteSuggestions */, oldSuggestedWords.mInputStyle);
+                typedWordInfo, false /* typedWordValid */, false /* hasAutoCorrectionCandidate */,
+                true /* isObsoleteSuggestions */, oldSuggestedWords.mInputStyle,
+                SuggestedWords.NOT_A_SEQUENCE_NUMBER);
     }
 
     /**
@@ -1936,14 +1916,14 @@
     }
 
     /**
-     * Promote a phantom space to an actual space.
+     * Insert an automatic space, if the options allow it.
      *
-     * This essentially inserts a space, and that's it. It just checks the options and the text
-     * before the cursor are appropriate before doing it.
+     * This checks the options and the text before the cursor are appropriate before inserting
+     * an automatic space.
      *
      * @param settingsValues the current values of the settings.
      */
-    private void promotePhantomSpace(final SettingsValues settingsValues) {
+    private void insertAutomaticSpaceIfOptionsAndTextAllow(final SettingsValues settingsValues) {
         if (settingsValues.shouldInsertSpacesAutomatically()
                 && settingsValues.mSpacingAndPunctuations.mCurrentLanguageHasSpaces
                 && !mConnection.textBeforeCursorLooksLikeURL()) {
@@ -1957,36 +1937,17 @@
      * @param suggestedWords suggestedWords to use.
      */
     public void onUpdateTailBatchInputCompleted(final SettingsValues settingsValues,
-            final SuggestedWords suggestedWords,
-            // TODO: remove this argument
-            final KeyboardSwitcher keyboardSwitcher) {
+            final SuggestedWords suggestedWords, final KeyboardSwitcher keyboardSwitcher) {
         final String batchInputText = suggestedWords.isEmpty() ? null : suggestedWords.getWord(0);
         if (TextUtils.isEmpty(batchInputText)) {
             return;
         }
         mConnection.beginBatchEdit();
         if (SpaceState.PHANTOM == mSpaceState) {
-            promotePhantomSpace(settingsValues);
+            insertAutomaticSpaceIfOptionsAndTextAllow(settingsValues);
         }
-        final SuggestedWordInfo autoCommitCandidate = mSuggestedWords.getAutoCommitCandidate();
-        // Commit except the last word for phrase gesture if the top suggestion is eligible for auto
-        // commit.
-        if (settingsValues.mPhraseGestureEnabled && null != autoCommitCandidate) {
-            // Find the last space
-            final int indexOfLastSpace = batchInputText.lastIndexOf(Constants.CODE_SPACE) + 1;
-            if (0 != indexOfLastSpace) {
-                mConnection.commitText(batchInputText.substring(0, indexOfLastSpace), 1);
-                final SuggestedWords suggestedWordsForLastWordOfPhraseGesture =
-                        suggestedWords.getSuggestedWordsForLastWordOfPhraseGesture();
-                mLatinIME.showSuggestionStrip(suggestedWordsForLastWordOfPhraseGesture);
-            }
-            final String lastWord = batchInputText.substring(indexOfLastSpace);
-            mWordComposer.setBatchInputWord(lastWord);
-            setComposingTextInternal(lastWord, 1);
-        } else {
-            mWordComposer.setBatchInputWord(batchInputText);
-            setComposingTextInternal(batchInputText, 1);
-        }
+        mWordComposer.setBatchInputWord(batchInputText);
+        setComposingTextInternal(batchInputText, 1);
         mConnection.endBatchEdit();
         // Space state must be updated before calling updateShiftState
         mSpaceState = SpaceState.PHANTOM;
@@ -2009,13 +1970,14 @@
      * @param settingsValues the current values of the settings.
      * @param separatorString the separator that's causing the commit, or NOT_A_SEPARATOR if none.
      */
-    // TODO: Make this private
     public void commitTyped(final SettingsValues settingsValues, final String separatorString) {
         if (!mWordComposer.isComposingWord()) return;
         final String typedWord = mWordComposer.getTypedWord();
         if (typedWord.length() > 0) {
+            final boolean isBatchMode = mWordComposer.isBatchMode();
             commitChosenWord(settingsValues, typedWord,
                     LastComposedWord.COMMIT_TYPE_USER_TYPED_WORD, separatorString);
+            StatsUtils.onWordCommitUserTyped(typedWord, isBatchMode);
         }
     }
 
@@ -2036,9 +1998,7 @@
      * @param separator the separator that's causing the commit to happen.
      */
     private void commitCurrentAutoCorrection(final SettingsValues settingsValues,
-            final String separator,
-            // TODO: Remove this argument.
-            final LatinIME.UIHandler handler) {
+            final String separator, final LatinIME.UIHandler handler) {
         // Complete any pending suggestions query first
         if (handler.hasPendingUpdateSuggestions()) {
             handler.cancelUpdateSuggestionStrip();
@@ -2052,18 +2012,19 @@
             // INPUT_STYLE_TYPING.
             performUpdateSuggestionStripSync(settingsValues, SuggestedWords.INPUT_STYLE_TYPING);
         }
-        final String typedAutoCorrection = mWordComposer.getAutoCorrectionOrNull();
+        final SuggestedWordInfo autoCorrectionOrNull = mWordComposer.getAutoCorrectionOrNull();
         final String typedWord = mWordComposer.getTypedWord();
-        final String autoCorrection = (typedAutoCorrection != null)
-                ? typedAutoCorrection : typedWord;
-        if (autoCorrection != null) {
+        final String stringToCommit = (autoCorrectionOrNull != null)
+                ? autoCorrectionOrNull.mWord : typedWord;
+        if (stringToCommit != null) {
             if (TextUtils.isEmpty(typedWord)) {
                 throw new RuntimeException("We have an auto-correction but the typed word "
                         + "is empty? Impossible! I must commit suicide.");
             }
-            commitChosenWord(settingsValues, autoCorrection,
+            final boolean isBatchMode = mWordComposer.isBatchMode();
+            commitChosenWord(settingsValues, stringToCommit,
                     LastComposedWord.COMMIT_TYPE_DECIDED_WORD, separator);
-            if (!typedWord.equals(autoCorrection)) {
+            if (!typedWord.equals(stringToCommit)) {
                 // This will make the correction flash for a short while as a visual clue
                 // to the user that auto-correction happened. It has no other effect; in particular
                 // note that this won't affect the text inside the text field AT ALL: it only makes
@@ -2071,8 +2032,16 @@
                 // of the auto-correction flash. At this moment, the "typedWord" argument is
                 // ignored by TextView.
                 mConnection.commitCorrection(new CorrectionInfo(
-                        mConnection.getExpectedSelectionEnd() - autoCorrection.length(),
-                        typedWord, autoCorrection));
+                        mConnection.getExpectedSelectionEnd() - stringToCommit.length(),
+                        typedWord, stringToCommit));
+                String prevWordsContext = (autoCorrectionOrNull != null)
+                        ? autoCorrectionOrNull.mPrevWordsContext
+                        : "";
+                StatsUtils.onAutoCorrection(typedWord, stringToCommit, isBatchMode,
+                        mDictionaryFacilitator, prevWordsContext);
+                StatsUtils.onWordCommitAutoCorrect(stringToCommit, isBatchMode);
+            } else {
+                StatsUtils.onWordCommitUserTyped(stringToCommit, isBatchMode);
             }
         }
     }
@@ -2091,20 +2060,20 @@
         final CharSequence chosenWordWithSuggestions =
                 SuggestionSpanUtils.getTextWithSuggestionSpan(mLatinIME, chosenWord,
                         suggestedWords);
-        // When we are composing word, get previous words information from the 2nd previous word
-        // because the 1st previous word is the word to be committed. Otherwise get previous words
-        // information from the 1st previous word.
-        final PrevWordsInfo prevWordsInfo = mConnection.getPrevWordsInfoFromNthPreviousWord(
+        // When we are composing word, get n-gram context from the 2nd previous word because the
+        // 1st previous word is the word to be committed. Otherwise get n-gram context from the 1st
+        // previous word.
+        final NgramContext ngramContext = mConnection.getNgramContextFromNthPreviousWord(
                 settingsValues.mSpacingAndPunctuations, mWordComposer.isComposingWord() ? 2 : 1);
         mConnection.commitText(chosenWordWithSuggestions, 1);
         // Add the word to the user history dictionary
-        performAdditionToUserHistoryDictionary(settingsValues, chosenWord, prevWordsInfo);
+        performAdditionToUserHistoryDictionary(settingsValues, chosenWord, ngramContext);
         // TODO: figure out here if this is an auto-correct or if the best word is actually
         // what user typed. Note: currently this is done much later in
         // LastComposedWord#didCommitTypedWord by string equality of the remembered
         // strings.
         mLastComposedWord = mWordComposer.commitWord(commitType,
-                chosenWordWithSuggestions, separatorString, prevWordsInfo);
+                chosenWordWithSuggestions, separatorString, ngramContext);
     }
 
     /**
@@ -2118,11 +2087,8 @@
      * @param remainingTries How many times we may try again before giving up.
      * @return whether true if the caches were successfully reset, false otherwise.
      */
-    // TODO: make this private
     public boolean retryResetCachesAndReturnSuccess(final boolean tryResumeSuggestions,
-            final int remainingTries,
-            // TODO: remove these arguments
-            final LatinIME.UIHandler handler) {
+            final int remainingTries, final LatinIME.UIHandler handler) {
         final boolean shouldFinishComposition = mConnection.hasSelection()
                 || !mConnection.isCursorPositionKnown();
         if (!mConnection.resetCachesUponCursorMoveAndReturnSuccess(
@@ -2137,30 +2103,25 @@
         }
         mConnection.tryFixLyingCursorPosition();
         if (tryResumeSuggestions) {
-            // This is triggered when starting input anew, so we want to include the resumed
-            // word in suggestions.
-            handler.postResumeSuggestions(true /* shouldIncludeResumedWordInSuggestions */,
-                    true /* shouldDelay */);
+            handler.postResumeSuggestions(true /* shouldDelay */);
         }
         return true;
     }
 
     public void getSuggestedWords(final SettingsValues settingsValues,
-            final ProximityInfo proximityInfo, final int keyboardShiftMode, final int inputStyle,
+            final Keyboard keyboard, final int keyboardShiftMode, final int inputStyle,
             final int sequenceNumber, final OnGetSuggestedWordsCallback callback) {
         mWordComposer.adviseCapitalizedModeBeforeFetchingSuggestions(
                 getActualCapsMode(settingsValues, keyboardShiftMode));
         mSuggest.getSuggestedWords(mWordComposer,
-                getPrevWordsInfoFromNthPreviousWordForSuggestion(
+                getNgramContextFromNthPreviousWordForSuggestion(
                         settingsValues.mSpacingAndPunctuations,
                         // Get the word on which we should search the bigrams. If we are composing
                         // a word, it's whatever is *before* the half-committed word in the buffer,
                         // hence 2; if we aren't, we should just skip whitespace if any, so 1.
                         mWordComposer.isComposingWord() ? 2 : 1),
-                proximityInfo,
-                new SettingsValuesForSuggestion(settingsValues.mBlockPotentiallyOffensive,
-                        settingsValues.mPhraseGestureEnabled,
-                        settingsValues.mAdditionalFeaturesSettingValues),
+                keyboard,
+                new SettingsValuesForSuggestion(settingsValues.mBlockPotentiallyOffensive),
                 settingsValues.mAutoCorrectionEnabledPerUserSettings,
                 inputStyle, sequenceNumber, callback);
     }
@@ -2171,7 +2132,7 @@
      *
      * <p>Currently using this method is optional and you can still directly call
      * {@link RichInputConnection#setComposingText(CharSequence, int)}, but it is recommended to
-     * use this method whenever possible to optimize the behavior of {@link TextDecorator}.<p>
+     * use this method whenever possible.<p>
      * <p>TODO: Should we move this mechanism to {@link RichInputConnection}?</p>
      *
      * @param newComposingText the composing text to be set
@@ -2216,70 +2177,44 @@
         mConnection.setComposingText(composingTextToBeSet, newCursorPosition);
     }
 
-    //////////////////////////////////////////////////////////////////////////////////////////////
-    // Following methods are tentatively placed in this class for the integration with
-    // TextDecorator.
-    // TODO: Decouple things that are not related to the input logic.
-    //////////////////////////////////////////////////////////////////////////////////////////////
-
     /**
-     * Sets the UI operator for {@link TextDecorator}.
-     * @param uiOperator the UI operator which should be associated with {@link TextDecorator}.
+     * Gets an object allowing private IME commands to be sent to the
+     * underlying editor.
+     * @return An object for sending private commands to the underlying editor.
      */
-    public void setTextDecoratorUi(final TextDecoratorUiOperator uiOperator) {
-        mTextDecorator.setUiOperator(uiOperator);
+    public PrivateCommandPerformer getPrivateCommandPerformer() {
+        return mConnection;
     }
 
     /**
-     * Must be called from {@link InputMethodService#onUpdateCursorAnchorInfo(CursorAnchorInfo)} is
-     * called.
-     * @param info The wrapper object with which we can access cursor/anchor info.
+     * Gets the expected index of the first char of the composing span within the editor's text.
+     * Returns a negative value in case there appears to be no valid composing span.
+     *
+     * @see #getComposingLength()
+     * @see RichInputConnection#hasSelection()
+     * @see RichInputConnection#isCursorPositionKnown()
+     * @see RichInputConnection#getExpectedSelectionStart()
+     * @see RichInputConnection#getExpectedSelectionEnd()
+     * @return The expected index in Java chars of the first char of the composing span.
      */
-    public void onUpdateCursorAnchorInfo(final CursorAnchorInfoCompatWrapper info) {
-        mTextDecorator.onUpdateCursorAnchorInfo(info);
+    // TODO: try and see if we can get rid of this method. Ideally the users of this class should
+    // never need to know this.
+    public int getComposingStart() {
+        if (!mConnection.isCursorPositionKnown() || mConnection.hasSelection()) {
+            return -1;
+        }
+        return mConnection.getExpectedSelectionStart() - mWordComposer.size();
     }
 
     /**
-     * Must be called when {@link InputMethodService#updateFullscreenMode} is called.
-     * @param isFullscreen {@code true} if the input method is in full-screen mode.
+     * Gets the expected length in Java chars of the composing span.
+     * May be 0 if there is no valid composing span.
+     * @see #getComposingStart()
+     * @return The expected length of the composing span.
      */
-    public void onUpdateFullscreenMode(final boolean isFullscreen) {
-        mTextDecorator.notifyFullScreenMode(isFullscreen);
-    }
-
-    /**
-     * Must be called from {@link LatinIME#addWordToUserDictionary(String)}.
-     */
-    public void onAddWordToUserDictionary() {
-        mConnection.removeBackgroundColorFromHighlightedTextIfNecessary();
-        mTextDecorator.reset();
-    }
-
-    /**
-     * Returns whether the add to dictionary indicator should be shown or not.
-     * @param lastComposedWord the last composed word information.
-     * @param settingsValues the current settings value.
-     * @return {@code true} if the commit indicator should be shown.
-     */
-    private boolean shouldShowAddToDictionaryForTypedWord(final LastComposedWord lastComposedWord,
-            final SettingsValues settingsValues) {
-        if (!mConnection.isCursorAnchorInfoMonitorEnabled()) {
-            // We cannot help in this case because we are heavily relying on this new API.
-            return false;
-        }
-        if (!settingsValues.mShouldShowUiToAcceptTypedWord) {
-            return false;
-        }
-        if (TextUtils.isEmpty(lastComposedWord.mTypedWord)) {
-            return false;
-        }
-        if (TextUtils.equals(lastComposedWord.mTypedWord, lastComposedWord.mCommittedWord)) {
-            return false;
-        }
-        if (!mDictionaryFacilitator.isUserDictionaryEnabled()) {
-            return false;
-        }
-        return !mDictionaryFacilitator.isValidWord(lastComposedWord.mTypedWord,
-                true /* ignoreCase */);
+    // TODO: try and see if we can get rid of this method. Ideally the users of this class should
+    // never need to know this.
+    public int getComposingLength() {
+        return mWordComposer.size();
     }
 }
diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogicHandler.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogicHandler.java
index c6f83d0..ddc4ad9 100644
--- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogicHandler.java
+++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogicHandler.java
@@ -21,11 +21,10 @@
 import android.os.Message;
 
 import com.android.inputmethod.compat.LooperCompatUtils;
-import com.android.inputmethod.latin.InputPointers;
 import com.android.inputmethod.latin.LatinIME;
-import com.android.inputmethod.latin.Suggest;
 import com.android.inputmethod.latin.SuggestedWords;
 import com.android.inputmethod.latin.Suggest.OnGetSuggestedWordsCallback;
+import com.android.inputmethod.latin.common.InputPointers;
 
 /**
  * A helper to manage deferred tasks for the input logic.
@@ -62,7 +61,7 @@
                 final OnGetSuggestedWordsCallback callback) {}
     };
 
-    private InputLogicHandler() {
+    InputLogicHandler() {
         mNonUIThreadHandler = null;
         mLatinIME = null;
         mInputLogic = null;
@@ -134,30 +133,38 @@
                 return;
             }
             mInputLogic.mWordComposer.setBatchInputPointers(batchPointers);
+            final OnGetSuggestedWordsCallback callback = new OnGetSuggestedWordsCallback() {
+                @Override
+                public void onGetSuggestedWords(final SuggestedWords suggestedWords) {
+                    showGestureSuggestionsWithPreviewVisuals(suggestedWords, isTailBatchInput);
+                }
+            };
             getSuggestedWords(isTailBatchInput ? SuggestedWords.INPUT_STYLE_TAIL_BATCH
-                    : SuggestedWords.INPUT_STYLE_UPDATE_BATCH, sequenceNumber,
-                    new OnGetSuggestedWordsCallback() {
-                        @Override
-                        public void onGetSuggestedWords(SuggestedWords suggestedWords) {
-                            // We're now inside the callback. This always runs on the Non-UI thread,
-                            // no matter what thread updateBatchInput was originally called on.
-                            if (suggestedWords.isEmpty()) {
-                                // Use old suggestions if we don't have any new ones.
-                                // Previous suggestions are found in InputLogic#mSuggestedWords.
-                                // Since these are the most recent ones and we just recomputed
-                                // new ones to update them, then the previous ones are there.
-                                suggestedWords = mInputLogic.mSuggestedWords;
-                            }
-                            mLatinIME.mHandler.showGesturePreviewAndSuggestionStrip(suggestedWords,
-                                    isTailBatchInput /* dismissGestureFloatingPreviewText */);
-                            if (isTailBatchInput) {
-                                mInBatchInput = false;
-                                // The following call schedules onEndBatchInputInternal
-                                // to be called on the UI thread.
-                                mLatinIME.mHandler.showTailBatchInputResult(suggestedWords);
-                            }
-                        }
-                    });
+                    : SuggestedWords.INPUT_STYLE_UPDATE_BATCH, sequenceNumber, callback);
+        }
+    }
+
+    void showGestureSuggestionsWithPreviewVisuals(final SuggestedWords suggestedWordsForBatchInput,
+            final boolean isTailBatchInput) {
+        final SuggestedWords suggestedWordsToShowSuggestions;
+        // We're now inside the callback. This always runs on the Non-UI thread,
+        // no matter what thread updateBatchInput was originally called on.
+        if (suggestedWordsForBatchInput.isEmpty()) {
+            // Use old suggestions if we don't have any new ones.
+            // Previous suggestions are found in InputLogic#mSuggestedWords.
+            // Since these are the most recent ones and we just recomputed
+            // new ones to update them, then the previous ones are there.
+            suggestedWordsToShowSuggestions = mInputLogic.mSuggestedWords;
+        } else {
+            suggestedWordsToShowSuggestions = suggestedWordsForBatchInput;
+        }
+        mLatinIME.mHandler.showGesturePreviewAndSuggestionStrip(suggestedWordsToShowSuggestions,
+                isTailBatchInput /* dismissGestureFloatingPreviewText */);
+        if (isTailBatchInput) {
+            mInBatchInput = false;
+            // The following call schedules onEndBatchInputInternal
+            // to be called on the UI thread.
+            mLatinIME.mHandler.showTailBatchInputResult(suggestedWordsToShowSuggestions);
         }
     }
 
diff --git a/java/src/com/android/inputmethod/latin/inputlogic/PrivateCommandPerformer.java b/java/src/com/android/inputmethod/latin/inputlogic/PrivateCommandPerformer.java
new file mode 100644
index 0000000..42eaa9c
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/inputlogic/PrivateCommandPerformer.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.inputlogic;
+
+import android.os.Bundle;
+
+/**
+ * Provides an interface matching
+ * {@link android.view.inputmethod.InputConnection#performPrivateCommand(String,Bundle)}.
+ */
+public interface PrivateCommandPerformer {
+    /**
+     * API to send private commands from an input method to its connected
+     * editor. This can be used to provide domain-specific features that are
+     * only known between certain input methods and their clients.
+     *
+     * @param action Name of the command to be performed. This must be a scoped
+     *            name, i.e. prefixed with a package name you own, so that
+     *            different developers will not create conflicting commands.
+     * @param data Any data to include with the command.
+     * @return true if the command was sent (regardless of whether the
+     * associated editor understood it), false if the input connection is no
+     * longer valid.
+     */
+    boolean performPrivateCommand(String action, Bundle data);
+}
diff --git a/java/src/com/android/inputmethod/latin/makedict/DictionaryHeader.java b/java/src/com/android/inputmethod/latin/makedict/DictionaryHeader.java
index df447fd..4d253b0 100644
--- a/java/src/com/android/inputmethod/latin/makedict/DictionaryHeader.java
+++ b/java/src/com/android/inputmethod/latin/makedict/DictionaryHeader.java
@@ -19,13 +19,24 @@
 import com.android.inputmethod.latin.makedict.FormatSpec.DictionaryOptions;
 import com.android.inputmethod.latin.makedict.FormatSpec.FormatOptions;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 /**
  * Class representing dictionary header.
  */
 public final class DictionaryHeader {
     public final int mBodyOffset;
+    @Nonnull
     public final DictionaryOptions mDictionaryOptions;
+    @Nonnull
     public final FormatOptions mFormatOptions;
+    @Nonnull
+    public final String mLocaleString;
+    @Nonnull
+    public final String mVersionString;
+    @Nonnull
+    public final String mIdString;
 
     // Note that these are corresponding definitions in native code in latinime::HeaderPolicy
     // and latinime::HeaderReadWriteUtils.
@@ -38,49 +49,40 @@
     public static final String DICTIONARY_DATE_KEY = "date";
     public static final String HAS_HISTORICAL_INFO_KEY = "HAS_HISTORICAL_INFO";
     public static final String USES_FORGETTING_CURVE_KEY = "USES_FORGETTING_CURVE";
-    public static final String FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP_KEY =
-            "FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP";
     public static final String FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID_KEY =
             "FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID";
-    public static final String FORGETTING_CURVE_DURATION_TO_LEVEL_DOWN_IN_SECONDS_KEY =
-            "FORGETTING_CURVE_DURATION_TO_LEVEL_DOWN_IN_SECONDS";
-    public static final String MAX_UNIGRAM_COUNT_KEY = "MAX_UNIGRAM_COUNT";
-    public static final String MAX_BIGRAM_COUNT_KEY = "MAX_BIGRAM_COUNT";
+    public static final String MAX_UNIGRAM_COUNT_KEY = "MAX_UNIGRAM_ENTRY_COUNT";
+    public static final String MAX_BIGRAM_COUNT_KEY = "MAX_BIGRAM_ENTRY_COUNT";
+    public static final String MAX_TRIGRAM_COUNT_KEY = "MAX_TRIGRAM_ENTRY_COUNT";
     public static final String ATTRIBUTE_VALUE_TRUE = "1";
+    public static final String CODE_POINT_TABLE_KEY = "codePointTable";
 
-    public DictionaryHeader(final int headerSize, final DictionaryOptions dictionaryOptions,
-            final FormatOptions formatOptions) throws UnsupportedFormatException {
+    public DictionaryHeader(final int headerSize,
+            @Nonnull final DictionaryOptions dictionaryOptions,
+            @Nonnull final FormatOptions formatOptions) throws UnsupportedFormatException {
         mDictionaryOptions = dictionaryOptions;
         mFormatOptions = formatOptions;
         mBodyOffset = formatOptions.mVersion < FormatSpec.VERSION4 ? headerSize : 0;
-        if (null == getLocaleString()) {
+        final String localeString = dictionaryOptions.mAttributes.get(DICTIONARY_LOCALE_KEY);
+        if (null == localeString) {
             throw new UnsupportedFormatException("Cannot create a FileHeader without a locale");
         }
-        if (null == getVersion()) {
+        final String versionString = dictionaryOptions.mAttributes.get(DICTIONARY_VERSION_KEY);
+        if (null == versionString) {
             throw new UnsupportedFormatException(
                     "Cannot create a FileHeader without a version");
         }
-        if (null == getId()) {
+        final String idString = dictionaryOptions.mAttributes.get(DICTIONARY_ID_KEY);
+        if (null == idString) {
             throw new UnsupportedFormatException("Cannot create a FileHeader without an ID");
         }
-    }
-
-    // Helper method to get the locale as a String
-    public String getLocaleString() {
-        return mDictionaryOptions.mAttributes.get(DICTIONARY_LOCALE_KEY);
-    }
-
-    // Helper method to get the version String
-    public String getVersion() {
-        return mDictionaryOptions.mAttributes.get(DICTIONARY_VERSION_KEY);
-    }
-
-    // Helper method to get the dictionary ID as a String
-    public String getId() {
-        return mDictionaryOptions.mAttributes.get(DICTIONARY_ID_KEY);
+        mLocaleString = localeString;
+        mVersionString = versionString;
+        mIdString = idString;
     }
 
     // Helper method to get the description
+    @Nullable
     public String getDescription() {
         // TODO: Right now each dictionary file comes with a description in its own language.
         // It will display as is no matter the device's locale. It should be internationalized.
diff --git a/java/src/com/android/inputmethod/latin/makedict/FormatSpec.java b/java/src/com/android/inputmethod/latin/makedict/FormatSpec.java
index a2ae74b..e422c4c 100644
--- a/java/src/com/android/inputmethod/latin/makedict/FormatSpec.java
+++ b/java/src/com/android/inputmethod/latin/makedict/FormatSpec.java
@@ -17,7 +17,7 @@
 package com.android.inputmethod.latin.makedict;
 
 import com.android.inputmethod.annotations.UsedForTesting;
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.define.DecoderSpecificConstants;
 
 import java.util.Date;
 import java.util.HashMap;
@@ -36,9 +36,7 @@
      * sion
      *
      * o |
-     * p | not used                                3 bits
-     * t | each unigram and bigram entry has a time stamp?
-     * i |                                         1 bit, 1 = yes, 0 = no : CONTAINS_TIMESTAMP_FLAG
+     * p | not used, 2 bytes.
      * o |
      * nflags
      *
@@ -48,7 +46,7 @@
      * d |
      * ersize
      *
-     *   | attributes list
+     * attributes list
      *
      * attributes list is:
      * <key>   = | string of characters at the char format described below, with the terminator used
@@ -86,27 +84,16 @@
      */
 
     /* Node (FusionDictionary.PtNode) layout is as follows:
-     *   | is moved ?             2 bits, 11 = no          : FLAG_IS_NOT_MOVED
-     *   |                          This must be the same as FLAG_CHILDREN_ADDRESS_TYPE_THREEBYTES
-     *   |                                01 = yes         : FLAG_IS_MOVED
-     * f |                      the new address is stored in the same place as the parent address
-     * l | is deleted?                    10 = yes         : FLAG_IS_DELETED
+     *   | CHILDREN_ADDRESS_TYPE  2 bits, 11          : FLAG_CHILDREN_ADDRESS_TYPE_THREEBYTES
+     *   |                                10          : FLAG_CHILDREN_ADDRESS_TYPE_TWOBYTES
+     * f |                                01          : FLAG_CHILDREN_ADDRESS_TYPE_ONEBYTE
+     * l |                                00          : FLAG_CHILDREN_ADDRESS_TYPE_NOADDRESS
      * a | has several chars ?         1 bit, 1 = yes, 0 = no   : FLAG_HAS_MULTIPLE_CHARS
      * g | has a terminal ?            1 bit, 1 = yes, 0 = no   : FLAG_IS_TERMINAL
      * s | has shortcut targets ?      1 bit, 1 = yes, 0 = no   : FLAG_HAS_SHORTCUT_TARGETS
      *   | has bigrams ?               1 bit, 1 = yes, 0 = no   : FLAG_HAS_BIGRAMS
      *   | is not a word ?             1 bit, 1 = yes, 0 = no   : FLAG_IS_NOT_A_WORD
-     *   | is blacklisted ?            1 bit, 1 = yes, 0 = no   : FLAG_IS_BLACKLISTED
-     *
-     * p |
-     * a | parent address, 3byte
-     * r | 1 byte = bbbbbbbb match
-     * e |   case 1xxxxxxx => -((0xxxxxxx << 16) + (next byte << 8) + next byte)
-     * n |   otherwise => (bbbbbbbb << 16) + (next byte << 8) + next byte
-     * t | This address is relative to the head of the PtNode.
-     * a | If the node doesn't have a parent, this field is set to 0.
-     * d |
-     * dress
+     *   | is possibly offensive ?     1 bit, 1 = yes, 0 = no   : FLAG_IS_POSSIBLY_OFFENSIVE
      *
      * c | IF FLAG_HAS_MULTIPLE_CHARS
      * h |   char, char, char, char    n * (1 or 3 bytes) : use PtNodeInfo for i/o helpers
@@ -121,15 +108,10 @@
      * q |
      *
      * c |
-     * h | children address, 3 bytes
-     * i | 1 byte = bbbbbbbb match
-     * l |   case 1xxxxxxx => -((0xxxxxxx << 16) + (next byte << 8) + next byte)
-     * d |   otherwise => (bbbbbbbb<<16) + (next byte << 8) + next byte
-     * r | if this node doesn't have children, this field is set to 0.
-     * e |   (see BinaryDictEncoderUtils#writeVariableSignedAddress)
-     * n | This address is relative to the position of this field.
-     * a |
-     * ddress
+     * h | children address, CHILDREN_ADDRESS_TYPE bytes
+     * i | This address is relative to the position of this field.
+     * l |
+     * drenaddress
      *
      *   | IF FLAG_IS_TERMINAL && FLAG_HAS_SHORTCUT_TARGETS
      *   | shortcut string list
@@ -179,31 +161,30 @@
 
     public static final int MAGIC_NUMBER = 0x9BC13AFE;
     static final int NOT_A_VERSION_NUMBER = -1;
-    static final int FIRST_VERSION_WITH_DYNAMIC_UPDATE = 3;
-    static final int FIRST_VERSION_WITH_TERMINAL_ID = 4;
 
     // These MUST have the same values as the relevant constants in format_utils.h.
-    // From version 4 on, we use version * 100 + revision as a version number. That allows
+    // From version 2.01 on, we use version * 100 + revision as a version number. That allows
     // us to change the format during development while having testing devices remove
     // older files with each upgrade, while still having a readable versioning scheme.
     // When we bump up the dictionary format version, we should update
     // ExpandableDictionary.needsToMigrateDictionary() and
     // ExpandableDictionary.matchesExpectedBinaryDictFormatVersionForThisType().
     public static final int VERSION2 = 2;
-    // Dictionary version used for testing.
-    public static final int VERSION4_ONLY_FOR_TESTING = 399;
-    public static final int VERSION401 = 401;
-    public static final int VERSION4 = 402;
-    public static final int VERSION4_DEV = 403;
-    static final int MINIMUM_SUPPORTED_VERSION = VERSION2;
-    static final int MAXIMUM_SUPPORTED_VERSION = VERSION4_DEV;
+    public static final int VERSION201 = 201;
+    public static final int VERSION202 = 202;
+    // format version for Fava Dictionaries.
+    public static final int VERSION_DELIGHT3 = 86736212;
+    public static final int VERSION402 = 402;
+    public static final int VERSION403 = 403;
+    public static final int VERSION4 = VERSION403;
+    public static final int MINIMUM_SUPPORTED_STATIC_VERSION = VERSION202;
+    public static final int MAXIMUM_SUPPORTED_STATIC_VERSION = VERSION_DELIGHT3;
+    static final int MINIMUM_SUPPORTED_DYNAMIC_VERSION = VERSION4;
+    static final int MAXIMUM_SUPPORTED_DYNAMIC_VERSION = VERSION403;
 
     // TODO: Make this value adaptative to content data, store it in the header, and
     // use it in the reading code.
-    static final int MAX_WORD_LENGTH = Constants.DICTIONARY_MAX_WORD_LENGTH;
-
-    static final int PARENT_ADDRESS_SIZE = 3;
-    static final int FORWARD_LINK_ADDRESS_SIZE = 3;
+    static final int MAX_WORD_LENGTH = DecoderSpecificConstants.DICTIONARY_MAX_WORD_LENGTH;
 
     // These flags are used only in the static dictionary.
     static final int MASK_CHILDREN_ADDRESS_TYPE = 0xC0;
@@ -218,14 +199,7 @@
     static final int FLAG_HAS_SHORTCUT_TARGETS = 0x08;
     static final int FLAG_HAS_BIGRAMS = 0x04;
     static final int FLAG_IS_NOT_A_WORD = 0x02;
-    static final int FLAG_IS_BLACKLISTED = 0x01;
-
-    // These flags are used only in the dynamic dictionary.
-    static final int MASK_MOVE_AND_DELETE_FLAG = 0xC0;
-    static final int FIXED_BIT_OF_DYNAMIC_UPDATE_MOVE = 0x40;
-    static final int FLAG_IS_MOVED = 0x00 | FIXED_BIT_OF_DYNAMIC_UPDATE_MOVE;
-    static final int FLAG_IS_NOT_MOVED = 0x80 | FIXED_BIT_OF_DYNAMIC_UPDATE_MOVE;
-    static final int FLAG_IS_DELETED = 0x80;
+    static final int FLAG_IS_POSSIBLY_OFFENSIVE = 0x01;
 
     static final int FLAG_BIGRAM_SHORTCUT_ATTR_HAS_NEXT = 0x80;
     static final int FLAG_BIGRAM_ATTR_OFFSET_NEGATIVE = 0x40;
@@ -240,52 +214,12 @@
     static final int PTNODE_TERMINATOR_SIZE = 1;
     static final int PTNODE_FLAGS_SIZE = 1;
     static final int PTNODE_FREQUENCY_SIZE = 1;
-    static final int PTNODE_TERMINAL_ID_SIZE = 4;
     static final int PTNODE_MAX_ADDRESS_SIZE = 3;
     static final int PTNODE_ATTRIBUTE_FLAGS_SIZE = 1;
     static final int PTNODE_ATTRIBUTE_MAX_ADDRESS_SIZE = 3;
     static final int PTNODE_SHORTCUT_LIST_SIZE_SIZE = 2;
 
-    // These values are used only by version 4 or later. They MUST match the definitions in
-    // ver4_dict_constants.cpp.
-    static final String TRIE_FILE_EXTENSION = ".trie";
-    public static final String HEADER_FILE_EXTENSION = ".header";
-    static final String FREQ_FILE_EXTENSION = ".freq";
-    // tat = Terminal Address Table
-    static final String TERMINAL_ADDRESS_TABLE_FILE_EXTENSION = ".tat";
-    static final String BIGRAM_FILE_EXTENSION = ".bigram";
-    static final String SHORTCUT_FILE_EXTENSION = ".shortcut";
-    static final String LOOKUP_TABLE_FILE_SUFFIX = "_lookup";
-    static final String CONTENT_TABLE_FILE_SUFFIX = "_index";
-    static final int FLAGS_IN_FREQ_FILE_SIZE = 1;
-    static final int FREQUENCY_AND_FLAGS_SIZE = 2;
-    static final int TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE = 3;
-    static final int UNIGRAM_TIMESTAMP_SIZE = 4;
-    static final int UNIGRAM_COUNTER_SIZE = 1;
-    static final int UNIGRAM_LEVEL_SIZE = 1;
-
-    // With the English main dictionary as of October 2013, the size of bigram address table is
-    // is 345KB with the block size being 16.
-    // This is 54% of that of full address table.
-    static final int BIGRAM_ADDRESS_TABLE_BLOCK_SIZE = 16;
-    static final int BIGRAM_CONTENT_COUNT = 1;
-    static final int BIGRAM_FREQ_CONTENT_INDEX = 0;
-    static final String BIGRAM_FREQ_CONTENT_ID = "_freq";
-    static final int BIGRAM_TIMESTAMP_SIZE = 4;
-    static final int BIGRAM_COUNTER_SIZE = 1;
-    static final int BIGRAM_LEVEL_SIZE = 1;
-
-    static final int SHORTCUT_CONTENT_COUNT = 1;
-    static final int SHORTCUT_CONTENT_INDEX = 0;
-    // With the English main dictionary as of October 2013, the size of shortcut address table is
-    // 26KB with the block size being 64.
-    // This is only 4.4% of that of full address table.
-    static final int SHORTCUT_ADDRESS_TABLE_BLOCK_SIZE = 64;
-    static final String SHORTCUT_CONTENT_ID = "_shortcut";
-
     static final int NO_CHILDREN_ADDRESS = Integer.MIN_VALUE;
-    static final int NO_PARENT_ADDRESS = 0;
-    static final int NO_FORWARD_LINK_ADDRESS = 0;
     static final int INVALID_CHARACTER = -1;
 
     static final int MAX_PTNODES_FOR_ONE_BYTE_PTNODE_COUNT = 0x7F; // 127
@@ -302,14 +236,13 @@
 
     // This option needs to be the same numeric value as the one in binary_format.h.
     static final int NOT_VALID_WORD = -99;
-    static final int SIGNED_CHILDREN_ADDRESS_SIZE = 3;
 
     static final int UINT8_MAX = 0xFF;
     static final int UINT16_MAX = 0xFFFF;
     static final int UINT24_MAX = 0xFFFFFF;
-    static final int SINT24_MAX = 0x7FFFFF;
     static final int MSB8 = 0x80;
-    static final int MSB24 = 0x800000;
+    static final int MINIMAL_ONE_BYTE_CHARACTER_VALUE = 0x20;
+    static final int MAXIMAL_ONE_BYTE_CHARACTER_VALUE = 0xFF;
 
     /**
      * Options about file format.
diff --git a/java/src/com/android/inputmethod/latin/makedict/NgramProperty.java b/java/src/com/android/inputmethod/latin/makedict/NgramProperty.java
new file mode 100644
index 0000000..b1d19dc
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/makedict/NgramProperty.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.makedict;
+
+import com.android.inputmethod.latin.NgramContext;
+
+public class NgramProperty {
+    public final WeightedString mTargetWord;
+    public final NgramContext mNgramContext;
+
+    public NgramProperty(final WeightedString targetWord, final NgramContext ngramContext) {
+        mTargetWord = targetWord;
+        mNgramContext = ngramContext;
+    }
+
+    @Override
+    public int hashCode() {
+        return mTargetWord.hashCode() ^ mNgramContext.hashCode();
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (o == this) return true;
+        if (!(o instanceof NgramProperty)) return false;
+        final NgramProperty n = (NgramProperty)o;
+        return mTargetWord.equals(n.mTargetWord) && mNgramContext.equals(n.mNgramContext);
+    }
+}
diff --git a/java/src/com/android/inputmethod/latin/makedict/ProbabilityInfo.java b/java/src/com/android/inputmethod/latin/makedict/ProbabilityInfo.java
index 5fcbb63..03c2ece 100644
--- a/java/src/com/android/inputmethod/latin/makedict/ProbabilityInfo.java
+++ b/java/src/com/android/inputmethod/latin/makedict/ProbabilityInfo.java
@@ -40,11 +40,8 @@
         if (probabilityInfo2 == null) {
             return probabilityInfo1;
         }
-        if (probabilityInfo1.mProbability > probabilityInfo2.mProbability) {
-            return probabilityInfo1;
-        } else {
-            return probabilityInfo2;
-        }
+        return (probabilityInfo1.mProbability > probabilityInfo2.mProbability) ? probabilityInfo1
+                : probabilityInfo2;
     }
 
     public ProbabilityInfo(final int probability) {
@@ -67,9 +64,8 @@
     public int hashCode() {
         if (hasHistoricalInfo()) {
             return Arrays.hashCode(new Object[] { mProbability, mTimestamp, mLevel, mCount });
-        } else {
-            return Arrays.hashCode(new Object[] { mProbability });
         }
+        return Arrays.hashCode(new Object[] { mProbability });
     }
 
     @Override
diff --git a/java/src/com/android/inputmethod/latin/makedict/WordProperty.java b/java/src/com/android/inputmethod/latin/makedict/WordProperty.java
index cd78e22..264e757 100644
--- a/java/src/com/android/inputmethod/latin/makedict/WordProperty.java
+++ b/java/src/com/android/inputmethod/latin/makedict/WordProperty.java
@@ -18,12 +18,17 @@
 
 import com.android.inputmethod.annotations.UsedForTesting;
 import com.android.inputmethod.latin.BinaryDictionary;
+import com.android.inputmethod.latin.Dictionary;
+import com.android.inputmethod.latin.NgramContext;
+import com.android.inputmethod.latin.NgramContext.WordInfo;
+import com.android.inputmethod.latin.common.StringUtils;
 import com.android.inputmethod.latin.utils.CombinedFormatUtils;
-import com.android.inputmethod.latin.utils.StringUtils;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 
+import javax.annotation.Nullable;
+
 /**
  * Utility class for a word with a probability.
  *
@@ -32,31 +37,35 @@
 public final class WordProperty implements Comparable<WordProperty> {
     public final String mWord;
     public final ProbabilityInfo mProbabilityInfo;
-    public final ArrayList<WeightedString> mShortcutTargets;
-    public final ArrayList<WeightedString> mBigrams;
+    public final ArrayList<NgramProperty> mNgrams;
     // TODO: Support mIsBeginningOfSentence.
     public final boolean mIsBeginningOfSentence;
     public final boolean mIsNotAWord;
-    public final boolean mIsBlacklistEntry;
-    public final boolean mHasShortcuts;
-    public final boolean mHasBigrams;
+    public final boolean mIsPossiblyOffensive;
+    public final boolean mHasNgrams;
 
     private int mHashCode = 0;
 
+    // TODO: Support n-gram.
     @UsedForTesting
     public WordProperty(final String word, final ProbabilityInfo probabilityInfo,
-            final ArrayList<WeightedString> shortcutTargets,
-            final ArrayList<WeightedString> bigrams,
-            final boolean isNotAWord, final boolean isBlacklistEntry) {
+            @Nullable final ArrayList<WeightedString> bigrams,
+            final boolean isNotAWord, final boolean isPossiblyOffensive) {
         mWord = word;
         mProbabilityInfo = probabilityInfo;
-        mShortcutTargets = shortcutTargets;
-        mBigrams = bigrams;
+        if (null == bigrams) {
+            mNgrams = null;
+        } else {
+            mNgrams = new ArrayList<>();
+            final NgramContext ngramContext = new NgramContext(new WordInfo(mWord));
+            for (final WeightedString bigramTarget : bigrams) {
+                mNgrams.add(new NgramProperty(bigramTarget, ngramContext));
+            }
+        }
         mIsBeginningOfSentence = false;
         mIsNotAWord = isNotAWord;
-        mIsBlacklistEntry = isBlacklistEntry;
-        mHasBigrams = bigrams != null && !bigrams.isEmpty();
-        mHasShortcuts = shortcutTargets != null && !shortcutTargets.isEmpty();
+        mIsPossiblyOffensive = isPossiblyOffensive;
+        mHasNgrams = bigrams != null && !bigrams.isEmpty();
     }
 
     private static ProbabilityInfo createProbabilityInfoFromArray(final int[] probabilityInfo) {
@@ -70,36 +79,54 @@
     // Construct word property using information from native code.
     // This represents invalid word when the probability is BinaryDictionary.NOT_A_PROBABILITY.
     public WordProperty(final int[] codePoints, final boolean isNotAWord,
-            final boolean isBlacklisted, final boolean hasBigram, final boolean hasShortcuts,
+            final boolean isPossiblyOffensive, final boolean hasBigram,
             final boolean isBeginningOfSentence, final int[] probabilityInfo,
-            final ArrayList<int[]> bigramTargets, final ArrayList<int[]> bigramProbabilityInfo,
-            final ArrayList<int[]> shortcutTargets,
-            final ArrayList<Integer> shortcutProbabilities) {
+            final ArrayList<int[][]> ngramPrevWordsArray,
+            final ArrayList<boolean[]> ngramPrevWordIsBeginningOfSentenceArray,
+            final ArrayList<int[]> ngramTargets, final ArrayList<int[]> ngramProbabilityInfo) {
         mWord = StringUtils.getStringFromNullTerminatedCodePointArray(codePoints);
         mProbabilityInfo = createProbabilityInfoFromArray(probabilityInfo);
-        mShortcutTargets = new ArrayList<>();
-        mBigrams = new ArrayList<>();
+        final ArrayList<NgramProperty> ngrams = new ArrayList<>();
         mIsBeginningOfSentence = isBeginningOfSentence;
         mIsNotAWord = isNotAWord;
-        mIsBlacklistEntry = isBlacklisted;
-        mHasShortcuts = hasShortcuts;
-        mHasBigrams = hasBigram;
+        mIsPossiblyOffensive = isPossiblyOffensive;
+        mHasNgrams = hasBigram;
 
-        final int bigramTargetCount = bigramTargets.size();
-        for (int i = 0; i < bigramTargetCount; i++) {
-            final String bigramTargetString =
-                    StringUtils.getStringFromNullTerminatedCodePointArray(bigramTargets.get(i));
-            mBigrams.add(new WeightedString(bigramTargetString,
-                    createProbabilityInfoFromArray(bigramProbabilityInfo.get(i))));
+        final int relatedNgramCount = ngramTargets.size();
+        for (int i = 0; i < relatedNgramCount; i++) {
+            final String ngramTargetString =
+                    StringUtils.getStringFromNullTerminatedCodePointArray(ngramTargets.get(i));
+            final WeightedString ngramTarget = new WeightedString(ngramTargetString,
+                    createProbabilityInfoFromArray(ngramProbabilityInfo.get(i)));
+            final int[][] prevWords = ngramPrevWordsArray.get(i);
+            final boolean[] isBeginningOfSentenceArray =
+                    ngramPrevWordIsBeginningOfSentenceArray.get(i);
+            final WordInfo[] wordInfoArray = new WordInfo[prevWords.length];
+            for (int j = 0; j < prevWords.length; j++) {
+                wordInfoArray[j] = isBeginningOfSentenceArray[j]
+                        ? WordInfo.BEGINNING_OF_SENTENCE_WORD_INFO
+                        : new WordInfo(StringUtils.getStringFromNullTerminatedCodePointArray(
+                                prevWords[j]));
+            }
+            final NgramContext ngramContext = new NgramContext(wordInfoArray);
+            ngrams.add(new NgramProperty(ngramTarget, ngramContext));
         }
+        mNgrams = ngrams.isEmpty() ? null : ngrams;
+    }
 
-        final int shortcutTargetCount = shortcutTargets.size();
-        for (int i = 0; i < shortcutTargetCount; i++) {
-            final String shortcutTargetString =
-                    StringUtils.getStringFromNullTerminatedCodePointArray(shortcutTargets.get(i));
-            mShortcutTargets.add(
-                    new WeightedString(shortcutTargetString, shortcutProbabilities.get(i)));
+    // TODO: Remove
+    @UsedForTesting
+    public ArrayList<WeightedString> getBigrams() {
+        if (null == mNgrams) {
+            return null;
         }
+        final ArrayList<WeightedString> bigrams = new ArrayList<>();
+        for (final NgramProperty ngram : mNgrams) {
+            if (ngram.mNgramContext.getPrevWordCount() == 1) {
+                bigrams.add(ngram.mTargetWord);
+            }
+        }
+        return bigrams;
     }
 
     public int getProbability() {
@@ -110,10 +137,9 @@
         return Arrays.hashCode(new Object[] {
                 word.mWord,
                 word.mProbabilityInfo,
-                word.mShortcutTargets.hashCode(),
-                word.mBigrams.hashCode(),
+                word.mNgrams,
                 word.mIsNotAWord,
-                word.mIsBlacklistEntry
+                word.mIsPossiblyOffensive
         });
     }
 
@@ -141,10 +167,18 @@
         if (o == this) return true;
         if (!(o instanceof WordProperty)) return false;
         WordProperty w = (WordProperty)o;
-        return mProbabilityInfo.equals(w.mProbabilityInfo) && mWord.equals(w.mWord)
-                && mShortcutTargets.equals(w.mShortcutTargets) && mBigrams.equals(w.mBigrams)
-                && mIsNotAWord == w.mIsNotAWord && mIsBlacklistEntry == w.mIsBlacklistEntry
-                && mHasBigrams == w.mHasBigrams && mHasShortcuts && w.mHasBigrams;
+        return mProbabilityInfo.equals(w.mProbabilityInfo)
+                && mWord.equals(w.mWord) && equals(mNgrams, w.mNgrams)
+                && mIsNotAWord == w.mIsNotAWord && mIsPossiblyOffensive == w.mIsPossiblyOffensive
+                && mHasNgrams == w.mHasNgrams;
+    }
+
+    // TDOO: Have a utility method like java.util.Objects.equals.
+    private static <T> boolean equals(final ArrayList<T> a, final ArrayList<T> b) {
+        if (null == a) {
+            return null == b;
+        }
+        return a.equals(b);
     }
 
     @Override
@@ -157,7 +191,7 @@
 
     @UsedForTesting
     public boolean isValid() {
-        return getProbability() != BinaryDictionary.NOT_A_PROBABILITY;
+        return getProbability() != Dictionary.NOT_A_PROBABILITY;
     }
 
     @Override
diff --git a/java/src/com/android/inputmethod/latin/network/AuthException.java b/java/src/com/android/inputmethod/latin/network/AuthException.java
new file mode 100644
index 0000000..1bce4c1
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/network/AuthException.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.network;
+
+/**
+ * Authentication exception. When this exception is thrown, the client may
+ * try to refresh the authentication token and try again.
+ */
+public class AuthException extends Exception {
+    public AuthException() {
+        super();
+    }
+
+    public AuthException(Throwable throwable) {
+        super(throwable);
+    }
+
+    public AuthException(String detailMessage) {
+        super(detailMessage);
+    }
+}
\ No newline at end of file
diff --git a/java/src/com/android/inputmethod/latin/network/BlockingHttpClient.java b/java/src/com/android/inputmethod/latin/network/BlockingHttpClient.java
new file mode 100644
index 0000000..079d07e
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/network/BlockingHttpClient.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.network;
+
+import android.util.Log;
+
+import java.io.BufferedOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+/**
+ * A client for executing HTTP requests synchronously.
+ * This must never be called from the main thread.
+ */
+public class BlockingHttpClient {
+    private static final boolean DEBUG = false;
+    private static final String TAG = BlockingHttpClient.class.getSimpleName();
+
+    private final HttpURLConnection mConnection;
+
+    /**
+     * Interface that handles processing the response for a request.
+     */
+    public interface ResponseProcessor<T> {
+        /**
+         * Called when the HTTP request finishes successfully.
+         * The {@link InputStream} is closed by the client after the method finishes,
+         * so any processing must be done in this method itself.
+         *
+         * @param response An input stream that can be used to read the HTTP response.
+         */
+         T onSuccess(InputStream response) throws IOException;
+    }
+
+    public BlockingHttpClient(HttpURLConnection connection) {
+        mConnection = connection;
+    }
+
+    /**
+     * Executes the request on the underlying {@link HttpURLConnection}.
+     *
+     * @param request The request payload, if any, or null.
+     * @param responseProcessor A processor for the HTTP response.
+     */
+    public <T> T execute(@Nullable byte[] request, @Nonnull ResponseProcessor<T> responseProcessor)
+            throws IOException, AuthException, HttpException {
+        if (DEBUG) {
+            Log.d(TAG, "execute: " + mConnection.getURL());
+        }
+        try {
+            if (request != null) {
+                if (DEBUG) {
+                    Log.d(TAG, "request size: " + request.length);
+                }
+                OutputStream out = new BufferedOutputStream(mConnection.getOutputStream());
+                out.write(request);
+                out.flush();
+                out.close();
+            }
+
+            final int responseCode = mConnection.getResponseCode();
+            if (responseCode != HttpURLConnection.HTTP_OK) {
+                Log.w(TAG, "Response error: " +  responseCode + ", Message: "
+                        + mConnection.getResponseMessage());
+                if (responseCode == HttpURLConnection.HTTP_UNAUTHORIZED) {
+                    throw new AuthException(mConnection.getResponseMessage());
+                }
+                throw new HttpException(responseCode);
+            }
+            if (DEBUG) {
+                Log.d(TAG, "request executed successfully");
+            }
+            return responseProcessor.onSuccess(mConnection.getInputStream());
+        } finally {
+            mConnection.disconnect();
+        }
+    }
+}
diff --git a/java/src/com/android/inputmethod/latin/network/HttpException.java b/java/src/com/android/inputmethod/latin/network/HttpException.java
new file mode 100644
index 0000000..b9d8b63
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/network/HttpException.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.network;
+
+import com.android.inputmethod.annotations.UsedForTesting;
+
+/**
+ * The HttpException exception represents a XML/HTTP fault with a HTTP status code.
+ */
+public class HttpException extends Exception {
+
+    /**
+     * The HTTP status code.
+     */
+    private final int mStatusCode;
+
+    /**
+     * @param statusCode int HTTP status code.
+     */
+    public HttpException(int statusCode) {
+        super("Response Code: " + statusCode);
+        mStatusCode = statusCode;
+    }
+
+    /**
+     * @return the HTTP status code related to this exception.
+     */
+    @UsedForTesting
+    public int getHttpStatusCode() {
+        return mStatusCode;
+    }
+}
\ No newline at end of file
diff --git a/java/src/com/android/inputmethod/latin/network/HttpUrlConnectionBuilder.java b/java/src/com/android/inputmethod/latin/network/HttpUrlConnectionBuilder.java
new file mode 100644
index 0000000..df54bf4
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/network/HttpUrlConnectionBuilder.java
@@ -0,0 +1,229 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.network;
+
+import android.text.TextUtils;
+
+import com.android.inputmethod.annotations.UsedForTesting;
+
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map.Entry;
+
+/**
+ * Builder for {@link HttpURLConnection}s.
+ *
+ * TODO: Remove @UsedForTesting after this is actually used.
+ */
+@UsedForTesting
+public class HttpUrlConnectionBuilder {
+    private static final int DEFAULT_TIMEOUT_MILLIS = 5 * 1000;
+
+    /**
+     * Request header key for authentication.
+     */
+    public static final String HTTP_HEADER_AUTHORIZATION = "Authorization";
+
+    /**
+     * Request header key for cache control.
+     */
+    public static final String KEY_CACHE_CONTROL = "Cache-Control";
+    /**
+     * Request header value for cache control indicating no caching.
+     * @see #KEY_CACHE_CONTROL
+     */
+    public static final String VALUE_NO_CACHE = "no-cache";
+
+    /**
+     * Indicates that the request is unidirectional - upload-only.
+     * TODO: Remove @UsedForTesting after this is actually used.
+     */
+    @UsedForTesting
+    public static final int MODE_UPLOAD_ONLY = 1;
+    /**
+     * Indicates that the request is unidirectional - download only.
+     * TODO: Remove @UsedForTesting after this is actually used.
+     */
+    @UsedForTesting
+    public static final int MODE_DOWNLOAD_ONLY = 2;
+    /**
+     * Indicates that the request is bi-directional.
+     * TODO: Remove @UsedForTesting after this is actually used.
+     */
+    @UsedForTesting
+    public static final int MODE_BI_DIRECTIONAL = 3;
+
+    private final HashMap<String, String> mHeaderMap = new HashMap<>();
+
+    private URL mUrl;
+    private int mConnectTimeoutMillis = DEFAULT_TIMEOUT_MILLIS;
+    private int mReadTimeoutMillis = DEFAULT_TIMEOUT_MILLIS;
+    private int mContentLength = -1;
+    private boolean mUseCache;
+    private int mMode;
+
+    /**
+     * Sets the URL that'll be used for the request.
+     * This *must* be set before calling {@link #build()}
+     *
+     * TODO: Remove @UsedForTesting after this method is actually used.
+     */
+    @UsedForTesting
+    public HttpUrlConnectionBuilder setUrl(String url) throws MalformedURLException {
+        if (TextUtils.isEmpty(url)) {
+            throw new IllegalArgumentException("URL must not be empty");
+        }
+        mUrl = new URL(url);
+        return this;
+    }
+
+    /**
+     * Sets the connect timeout. Defaults to {@value #DEFAULT_TIMEOUT_MILLIS} milliseconds.
+     *
+     * TODO: Remove @UsedForTesting after this method is actually used.
+     */
+    @UsedForTesting
+    public HttpUrlConnectionBuilder setConnectTimeout(int timeoutMillis) {
+        if (timeoutMillis < 0) {
+            throw new IllegalArgumentException("connect-timeout must be >= 0, but was "
+                    + timeoutMillis);
+        }
+        mConnectTimeoutMillis = timeoutMillis;
+        return this;
+    }
+
+    /**
+     * Sets the read timeout. Defaults to {@value #DEFAULT_TIMEOUT_MILLIS} milliseconds.
+     *
+     * TODO: Remove @UsedForTesting after this method is actually used.
+     */
+    @UsedForTesting
+    public HttpUrlConnectionBuilder setReadTimeout(int timeoutMillis) {
+        if (timeoutMillis < 0) {
+            throw new IllegalArgumentException("read-timeout must be >= 0, but was "
+                    + timeoutMillis);
+        }
+        mReadTimeoutMillis = timeoutMillis;
+        return this;
+    }
+
+    /**
+     * Adds an entry to the request header.
+     *
+     * TODO: Remove @UsedForTesting after this method is actually used.
+     */
+    @UsedForTesting
+    public HttpUrlConnectionBuilder addHeader(String key, String value) {
+        mHeaderMap.put(key, value);
+        return this;
+    }
+
+    /**
+     * Sets an authentication token.
+     *
+     * TODO: Remove @UsedForTesting after this method is actually used.
+     */
+    @UsedForTesting
+    public HttpUrlConnectionBuilder setAuthToken(String value) {
+        mHeaderMap.put(HTTP_HEADER_AUTHORIZATION, value);
+        return this;
+    }
+
+    /**
+     * Sets the request to be executed such that the input is not buffered.
+     * This may be set when the request size is known beforehand.
+     *
+     * TODO: Remove @UsedForTesting after this method is actually used.
+     */
+    @UsedForTesting
+    public HttpUrlConnectionBuilder setFixedLengthForStreaming(int length) {
+        mContentLength = length;
+        return this;
+    }
+
+    /**
+     * Indicates if the request can use cached responses or not.
+     *
+     * TODO: Remove @UsedForTesting after this method is actually used.
+     */
+    @UsedForTesting
+    public HttpUrlConnectionBuilder setUseCache(boolean useCache) {
+        mUseCache = useCache;
+        return this;
+    }
+
+    /**
+     * The request mode.
+     * Sets the request mode to be one of: upload-only, download-only or bidirectional.
+     *
+     * @see #MODE_UPLOAD_ONLY
+     * @see #MODE_DOWNLOAD_ONLY
+     * @see #MODE_BI_DIRECTIONAL
+     *
+     * TODO: Remove @UsedForTesting after this method is actually used
+     */
+    @UsedForTesting
+    public HttpUrlConnectionBuilder setMode(int mode) {
+        if (mode != MODE_UPLOAD_ONLY
+                && mode != MODE_DOWNLOAD_ONLY
+                && mode != MODE_BI_DIRECTIONAL) {
+            throw new IllegalArgumentException("Invalid mode specified:" + mode);
+        }
+        mMode = mode;
+        return this;
+    }
+
+    /**
+     * Builds the {@link HttpURLConnection} instance that can be used to execute the request.
+     *
+     * TODO: Remove @UsedForTesting after this method is actually used.
+     */
+    @UsedForTesting
+    public HttpURLConnection build() throws IOException {
+        if (mUrl == null) {
+            throw new IllegalArgumentException("A URL must be specified!");
+        }
+        final HttpURLConnection connection = (HttpURLConnection) mUrl.openConnection();
+        connection.setConnectTimeout(mConnectTimeoutMillis);
+        connection.setReadTimeout(mReadTimeoutMillis);
+        connection.setUseCaches(mUseCache);
+        switch (mMode) {
+            case MODE_UPLOAD_ONLY:
+                connection.setDoInput(true);
+                connection.setDoOutput(false);
+                break;
+            case MODE_DOWNLOAD_ONLY:
+                connection.setDoInput(false);
+                connection.setDoOutput(true);
+                break;
+            case MODE_BI_DIRECTIONAL:
+                connection.setDoInput(true);
+                connection.setDoOutput(true);
+                break;
+        }
+        for (final Entry<String, String> entry : mHeaderMap.entrySet()) {
+            connection.addRequestProperty(entry.getKey(), entry.getValue());
+        }
+        if (mContentLength >= 0) {
+            connection.setFixedLengthStreamingMode(mContentLength);
+        }
+        return connection;
+    }
+}
\ No newline at end of file
diff --git a/java/src/com/android/inputmethod/latin/personalization/ContextualDictionary.java b/java/src/com/android/inputmethod/latin/personalization/ContextualDictionary.java
deleted file mode 100644
index ac55b93..0000000
--- a/java/src/com/android/inputmethod/latin/personalization/ContextualDictionary.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.personalization;
-
-import android.content.Context;
-
-import com.android.inputmethod.annotations.UsedForTesting;
-import com.android.inputmethod.latin.Dictionary;
-import com.android.inputmethod.latin.ExpandableBinaryDictionary;
-
-import java.io.File;
-import java.util.Locale;
-
-public class ContextualDictionary extends ExpandableBinaryDictionary {
-    /* package */ static final String NAME = ContextualDictionary.class.getSimpleName();
-
-    private ContextualDictionary(final Context context, final Locale locale,
-            final File dictFile) {
-        super(context, getDictName(NAME, locale, dictFile), locale, Dictionary.TYPE_CONTEXTUAL,
-                dictFile);
-        // Always reset the contents.
-        clear();
-    }
-
-    @UsedForTesting
-    public static ContextualDictionary getDictionary(final Context context, final Locale locale,
-            final File dictFile, final String dictNamePrefix) {
-        return new ContextualDictionary(context, locale, dictFile);
-    }
-
-    @Override
-    public boolean isValidWord(final String word) {
-        // Strings out of this dictionary should not be considered existing words.
-        return false;
-    }
-
-    @Override
-    protected void loadInitialContentsLocked() {
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java b/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java
deleted file mode 100644
index 1ba7b36..0000000
--- a/java/src/com/android/inputmethod/latin/personalization/DecayingExpandableBinaryDictionaryBase.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.personalization;
-
-import android.content.Context;
-
-import com.android.inputmethod.latin.Dictionary;
-import com.android.inputmethod.latin.ExpandableBinaryDictionary;
-import com.android.inputmethod.latin.makedict.DictionaryHeader;
-
-import java.io.File;
-import java.util.Locale;
-import java.util.Map;
-
-/**
- * This class is a base class of a dictionary that supports decaying for the personalized language
- * model.
- */
-public abstract class DecayingExpandableBinaryDictionaryBase extends ExpandableBinaryDictionary {
-    private static final boolean DBG_DUMP_ON_CLOSE = false;
-
-    /** Any pair being typed or picked */
-    public static final int FREQUENCY_FOR_TYPED = 2;
-
-    public static final int FREQUENCY_FOR_WORDS_IN_DICTS = FREQUENCY_FOR_TYPED;
-    public static final int FREQUENCY_FOR_WORDS_NOT_IN_DICTS = Dictionary.NOT_A_PROBABILITY;
-
-    /** The locale for this dictionary. */
-    public final Locale mLocale;
-
-    protected DecayingExpandableBinaryDictionaryBase(final Context context,
-            final String dictName, final Locale locale, final String dictionaryType,
-            final File dictFile) {
-        super(context, dictName, locale, dictionaryType, dictFile);
-        mLocale = locale;
-        if (mLocale != null && mLocale.toString().length() > 1) {
-            reloadDictionaryIfRequired();
-        }
-    }
-
-    @Override
-    public void close() {
-        if (DBG_DUMP_ON_CLOSE) {
-            dumpAllWordsForDebug();
-        }
-        // Flush pending writes.
-        asyncFlushBinaryDictionary();
-        super.close();
-    }
-
-    @Override
-    protected Map<String, String> getHeaderAttributeMap() {
-        final Map<String, String> attributeMap = super.getHeaderAttributeMap();
-        attributeMap.put(DictionaryHeader.USES_FORGETTING_CURVE_KEY,
-                DictionaryHeader.ATTRIBUTE_VALUE_TRUE);
-        attributeMap.put(DictionaryHeader.HAS_HISTORICAL_INFO_KEY,
-                DictionaryHeader.ATTRIBUTE_VALUE_TRUE);
-        return attributeMap;
-    }
-
-    @Override
-    protected void loadInitialContentsLocked() {
-        // No initial contents.
-    }
-
-    /* package */ void runGCIfRequired() {
-        runGCIfRequired(false /* mindsBlockByGC */);
-    }
-
-    @Override
-    public boolean isValidWord(final String word) {
-        // Strings out of this dictionary should not be considered existing words.
-        return false;
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/personalization/DictionaryDecayBroadcastReciever.java b/java/src/com/android/inputmethod/latin/personalization/DictionaryDecayBroadcastReciever.java
deleted file mode 100644
index 221bb9a..0000000
--- a/java/src/com/android/inputmethod/latin/personalization/DictionaryDecayBroadcastReciever.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.personalization;
-
-import android.app.AlarmManager;
-import android.app.PendingIntent;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-
-import java.util.concurrent.TimeUnit;
-
-/**
- * Broadcast receiver for periodically updating decaying dictionaries.
- */
-public class DictionaryDecayBroadcastReciever extends BroadcastReceiver {
-    /**
-     * The root domain for the personalization.
-     */
-    private static final String PERSONALIZATION_DOMAIN =
-            "com.android.inputmethod.latin.personalization";
-
-    /**
-     * The action of the intent to tell the time to decay dictionaries.
-     */
-    private static final String DICTIONARY_DECAY_INTENT_ACTION =
-            PERSONALIZATION_DOMAIN + ".DICT_DECAY";
-
-    /**
-     * Interval to update for decaying dictionaries.
-     */
-    /* package */ static final long DICTIONARY_DECAY_INTERVAL = TimeUnit.MINUTES.toMillis(60);
-
-    public static void setUpIntervalAlarmForDictionaryDecaying(Context context) {
-        AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
-        final Intent updateIntent = new Intent(DICTIONARY_DECAY_INTENT_ACTION);
-        updateIntent.setClass(context, DictionaryDecayBroadcastReciever.class);
-        final long alarmTime =  System.currentTimeMillis() + DICTIONARY_DECAY_INTERVAL;
-        final PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0 /* requestCode */,
-                updateIntent, PendingIntent.FLAG_CANCEL_CURRENT);
-        if (null != alarmManager) alarmManager.setInexactRepeating(AlarmManager.RTC,
-                alarmTime, DICTIONARY_DECAY_INTERVAL, pendingIntent);
-    }
-
-    @Override
-    public void onReceive(final Context context, final Intent intent) {
-        final String action = intent.getAction();
-        if (action.equals(DICTIONARY_DECAY_INTENT_ACTION)) {
-            PersonalizationHelper.runGCOnAllOpenedUserHistoryDictionaries();
-            PersonalizationHelper.runGCOnAllOpenedPersonalizationDictionaries();
-        }
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDataChunk.java b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDataChunk.java
deleted file mode 100644
index 9d72de8..0000000
--- a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDataChunk.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.personalization;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.Locale;
-
-public class PersonalizationDataChunk {
-    public final boolean mInputByUser;
-    public final List<String> mTokens;
-    public final int mTimestampInSeconds;
-    public final String mPackageName;
-    public final Locale mlocale = null;
-
-    public PersonalizationDataChunk(boolean inputByUser, final List<String> tokens,
-            final int timestampInSeconds, final String packageName) {
-        mInputByUser = inputByUser;
-        mTokens = Collections.unmodifiableList(tokens);
-        mTimestampInSeconds = timestampInSeconds;
-        mPackageName = packageName;
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionary.java b/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionary.java
deleted file mode 100644
index f2ad22a..0000000
--- a/java/src/com/android/inputmethod/latin/personalization/PersonalizationDictionary.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.personalization;
-
-import android.content.Context;
-
-import com.android.inputmethod.annotations.UsedForTesting;
-import com.android.inputmethod.latin.Dictionary;
-
-import java.io.File;
-import java.util.Locale;
-
-public class PersonalizationDictionary extends DecayingExpandableBinaryDictionaryBase {
-    /* package */ static final String NAME = PersonalizationDictionary.class.getSimpleName();
-
-    // TODO: Make this constructor private
-    /* package */ PersonalizationDictionary(final Context context, final Locale locale) {
-        super(context, getDictName(NAME, locale, null /* dictFile */), locale,
-                Dictionary.TYPE_PERSONALIZATION, null /* dictFile */);
-    }
-
-    @UsedForTesting
-    public static PersonalizationDictionary getDictionary(final Context context,
-            final Locale locale, final File dictFile, final String dictNamePrefix) {
-        return PersonalizationHelper.getPersonalizationDictionary(context, locale);
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java b/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
index 331f85e..298e46c 100644
--- a/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
+++ b/java/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
@@ -19,130 +19,76 @@
 import android.content.Context;
 import android.util.Log;
 
-import com.android.inputmethod.latin.utils.FileUtils;
+import com.android.inputmethod.latin.common.FileUtils;
 
 import java.io.File;
 import java.io.FilenameFilter;
 import java.lang.ref.SoftReference;
 import java.util.Locale;
 import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.TimeUnit;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+/**
+ * Helps handle and manage personalized dictionaries such as {@link UserHistoryDictionary}.
+ */
 public class PersonalizationHelper {
     private static final String TAG = PersonalizationHelper.class.getSimpleName();
     private static final boolean DEBUG = false;
+
     private static final ConcurrentHashMap<String, SoftReference<UserHistoryDictionary>>
             sLangUserHistoryDictCache = new ConcurrentHashMap<>();
-    private static final ConcurrentHashMap<String, SoftReference<PersonalizationDictionary>>
-            sLangPersonalizationDictCache = new ConcurrentHashMap<>();
 
+    @Nonnull
     public static UserHistoryDictionary getUserHistoryDictionary(
-            final Context context, final Locale locale) {
-        final String localeStr = locale.toString();
+            final Context context, final Locale locale, @Nullable final String accountName) {
+        String lookupStr = locale.toString();
+        if (accountName != null) {
+            lookupStr += "." + accountName;
+        }
         synchronized (sLangUserHistoryDictCache) {
-            if (sLangUserHistoryDictCache.containsKey(localeStr)) {
+            if (sLangUserHistoryDictCache.containsKey(lookupStr)) {
                 final SoftReference<UserHistoryDictionary> ref =
-                        sLangUserHistoryDictCache.get(localeStr);
+                        sLangUserHistoryDictCache.get(lookupStr);
                 final UserHistoryDictionary dict = ref == null ? null : ref.get();
                 if (dict != null) {
                     if (DEBUG) {
-                        Log.w(TAG, "Use cached UserHistoryDictionary for " + locale);
+                        Log.d(TAG, "Use cached UserHistoryDictionary with lookup: " + lookupStr);
                     }
                     dict.reloadDictionaryIfRequired();
                     return dict;
                 }
             }
-            final UserHistoryDictionary dict = new UserHistoryDictionary(context, locale);
-            sLangUserHistoryDictCache.put(localeStr, new SoftReference<>(dict));
+            final UserHistoryDictionary dict = new UserHistoryDictionary(
+                    context, locale, accountName);
+            sLangUserHistoryDictCache.put(lookupStr, new SoftReference<>(dict));
             return dict;
         }
     }
 
-    private static int sCurrentTimestampForTesting = 0;
-    public static void currentTimeChangedForTesting(final int currentTimestamp) {
-        if (TimeUnit.MILLISECONDS.toSeconds(
-                DictionaryDecayBroadcastReciever.DICTIONARY_DECAY_INTERVAL)
-                        < currentTimestamp - sCurrentTimestampForTesting) {
-            runGCOnAllOpenedUserHistoryDictionaries();
-            runGCOnAllOpenedPersonalizationDictionaries();
-        }
-    }
-
-    public static void runGCOnAllOpenedUserHistoryDictionaries() {
-        runGCOnAllDictionariesIfRequired(sLangUserHistoryDictCache);
-    }
-
-    public static void runGCOnAllOpenedPersonalizationDictionaries() {
-        runGCOnAllDictionariesIfRequired(sLangPersonalizationDictCache);
-    }
-
-    private static <T extends DecayingExpandableBinaryDictionaryBase>
-            void runGCOnAllDictionariesIfRequired(
-                    final ConcurrentHashMap<String, SoftReference<T>> dictionaryMap) {
-        for (final ConcurrentHashMap.Entry<String, SoftReference<T>> entry
-                : dictionaryMap.entrySet()) {
-            final DecayingExpandableBinaryDictionaryBase dict = entry.getValue().get();
-            if (dict != null) {
-                dict.runGCIfRequired();
-            } else {
-                dictionaryMap.remove(entry.getKey());
-            }
-        }
-    }
-
-    public static PersonalizationDictionary getPersonalizationDictionary(
-            final Context context, final Locale locale) {
-        final String localeStr = locale.toString();
-        synchronized (sLangPersonalizationDictCache) {
-            if (sLangPersonalizationDictCache.containsKey(localeStr)) {
-                final SoftReference<PersonalizationDictionary> ref =
-                        sLangPersonalizationDictCache.get(localeStr);
-                final PersonalizationDictionary dict = ref == null ? null : ref.get();
-                if (dict != null) {
-                    if (DEBUG) {
-                        Log.w(TAG, "Use cached PersonalizationDictionary for " + locale);
-                    }
-                    return dict;
-                }
-            }
-            final PersonalizationDictionary dict = new PersonalizationDictionary(context, locale);
-            sLangPersonalizationDictCache.put(localeStr, new SoftReference<>(dict));
-            return dict;
-        }
-    }
-
-    public static void removeAllPersonalizationDictionaries(final Context context) {
-        removeAllDictionaries(context, sLangPersonalizationDictCache,
-                PersonalizationDictionary.NAME);
-    }
-
     public static void removeAllUserHistoryDictionaries(final Context context) {
-        removeAllDictionaries(context, sLangUserHistoryDictCache,
-                UserHistoryDictionary.NAME);
-    }
-
-    private static <T extends DecayingExpandableBinaryDictionaryBase> void removeAllDictionaries(
-            final Context context, final ConcurrentHashMap<String, SoftReference<T>> dictionaryMap,
-            final String dictNamePrefix) {
-        synchronized (dictionaryMap) {
-            for (final ConcurrentHashMap.Entry<String, SoftReference<T>> entry
-                    : dictionaryMap.entrySet()) {
+        synchronized (sLangUserHistoryDictCache) {
+            for (final ConcurrentHashMap.Entry<String, SoftReference<UserHistoryDictionary>> entry
+                    : sLangUserHistoryDictCache.entrySet()) {
                 if (entry.getValue() != null) {
-                    final DecayingExpandableBinaryDictionaryBase dict = entry.getValue().get();
+                    final UserHistoryDictionary dict = entry.getValue().get();
                     if (dict != null) {
                         dict.clear();
                     }
                 }
             }
-            dictionaryMap.clear();
+            sLangUserHistoryDictCache.clear();
             final File filesDir = context.getFilesDir();
             if (filesDir == null) {
                 Log.e(TAG, "context.getFilesDir() returned null.");
                 return;
             }
-            if (!FileUtils.deleteFilteredFiles(filesDir, new DictFilter(dictNamePrefix))) {
-                Log.e(TAG, "Cannot remove all existing dictionary files. filesDir: "
-                        + filesDir.getAbsolutePath() + ", dictNamePrefix: " + dictNamePrefix);
+            final boolean filesDeleted = FileUtils.deleteFilteredFiles(
+                    filesDir, new DictFilter(UserHistoryDictionary.NAME));
+            if (!filesDeleted) {
+                Log.e(TAG, "Cannot remove dictionary files. filesDir: " + filesDir.getAbsolutePath()
+                        + ", dictNamePrefix: " + UserHistoryDictionary.NAME);
             }
         }
     }
diff --git a/java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java b/java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java
index 34d4d4e..cbf0829 100644
--- a/java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/personalization/UserHistoryDictionary.java
@@ -17,72 +17,120 @@
 package com.android.inputmethod.latin.personalization;
 
 import android.content.Context;
-import android.text.TextUtils;
 
+import com.android.inputmethod.annotations.ExternallyReferenced;
 import com.android.inputmethod.annotations.UsedForTesting;
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.BinaryDictionary;
 import com.android.inputmethod.latin.Dictionary;
 import com.android.inputmethod.latin.ExpandableBinaryDictionary;
-import com.android.inputmethod.latin.PrevWordsInfo;
-import com.android.inputmethod.latin.utils.DistracterFilter;
+import com.android.inputmethod.latin.NgramContext;
+import com.android.inputmethod.latin.define.DecoderSpecificConstants;
+import com.android.inputmethod.latin.define.ProductionFlags;
+import com.android.inputmethod.latin.makedict.DictionaryHeader;
 
 import java.io.File;
 import java.util.Locale;
+import java.util.Map;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 
 /**
- * Locally gathers stats about the words user types and various other signals like auto-correction
- * cancellation or manual picks. This allows the keyboard to adapt to the typist over time.
+ * Locally gathers statistics about the words user types and various other signals like
+ * auto-correction cancellation or manual picks. This allows the keyboard to adapt to the
+ * typist over time.
  */
-public class UserHistoryDictionary extends DecayingExpandableBinaryDictionaryBase {
-    /* package */ static final String NAME = UserHistoryDictionary.class.getSimpleName();
+public class UserHistoryDictionary extends ExpandableBinaryDictionary {
+    static final String NAME = UserHistoryDictionary.class.getSimpleName();
 
     // TODO: Make this constructor private
-    /* package */ UserHistoryDictionary(final Context context, final Locale locale) {
-        super(context, getDictName(NAME, locale, null /* dictFile */), locale,
-                Dictionary.TYPE_USER_HISTORY, null /* dictFile */);
+    UserHistoryDictionary(final Context context, final Locale locale,
+            @Nullable final String account) {
+        super(context, getUserHistoryDictName(NAME, locale, null /* dictFile */, account), locale, Dictionary.TYPE_USER_HISTORY, null);
+        if (mLocale != null && mLocale.toString().length() > 1) {
+            reloadDictionaryIfRequired();
+        }
     }
 
+    /**
+     * @returns the name of the {@link UserHistoryDictionary}.
+     */
     @UsedForTesting
+    static String getUserHistoryDictName(final String name, final Locale locale,
+            @Nullable final File dictFile, @Nullable final String account) {
+        if (!ProductionFlags.ENABLE_PER_ACCOUNT_USER_HISTORY_DICTIONARY) {
+            return getDictName(name, locale, dictFile);
+        }
+        return getUserHistoryDictNamePerAccount(name, locale, dictFile, account);
+    }
+
+    /**
+     * Uses the currently signed in account to determine the dictionary name.
+     */
+    private static String getUserHistoryDictNamePerAccount(final String name, final Locale locale,
+            @Nullable final File dictFile, @Nullable final String account) {
+        if (dictFile != null) {
+            return dictFile.getName();
+        }
+        String dictName = name + "." + locale.toString();
+        if (account != null) {
+            dictName += "." + account;
+        }
+        return dictName;
+    }
+
+    // Note: This method is called by {@link DictionaryFacilitator} using Java reflection.
+    @SuppressWarnings("unused")
+    @ExternallyReferenced
     public static UserHistoryDictionary getDictionary(final Context context, final Locale locale,
-            final File dictFile, final String dictNamePrefix) {
-        return PersonalizationHelper.getUserHistoryDictionary(context, locale);
+            final File dictFile, final String dictNamePrefix, @Nullable final String account) {
+        return PersonalizationHelper.getUserHistoryDictionary(context, locale, account);
     }
 
     /**
      * Add a word to the user history dictionary.
      *
      * @param userHistoryDictionary the user history dictionary
-     * @param prevWordsInfo the information of previous words
+     * @param ngramContext the n-gram context
      * @param word the word the user inputted
      * @param isValid whether the word is valid or not
      * @param timestamp the timestamp when the word has been inputted
-     * @param distracterFilter the filter to check whether the word is a distracter
      */
     public static void addToDictionary(final ExpandableBinaryDictionary userHistoryDictionary,
-            final PrevWordsInfo prevWordsInfo, final String word, final boolean isValid,
-            final int timestamp, final DistracterFilter distracterFilter) {
-        final CharSequence prevWord = prevWordsInfo.mPrevWordsInfo[0].mWord;
-        if (word.length() > Constants.DICTIONARY_MAX_WORD_LENGTH ||
-                (prevWord != null && prevWord.length() > Constants.DICTIONARY_MAX_WORD_LENGTH)) {
+            @Nonnull final NgramContext ngramContext, final String word, final boolean isValid,
+            final int timestamp) {
+        if (word.length() > BinaryDictionary.DICTIONARY_MAX_WORD_LENGTH) {
             return;
         }
-        final int frequency = isValid ?
-                FREQUENCY_FOR_WORDS_IN_DICTS : FREQUENCY_FOR_WORDS_NOT_IN_DICTS;
-        userHistoryDictionary.addUnigramEntryWithCheckingDistracter(word, frequency,
-                null /* shortcutTarget */, 0 /* shortcutFreq */, false /* isNotAWord */,
-                false /* isBlacklisted */, timestamp, distracterFilter);
-        // Do not insert a word as a bigram of itself
-        if (TextUtils.equals(word, prevWord)) {
-            return;
-        }
-        if (null != prevWord) {
-            if (prevWordsInfo.mPrevWordsInfo[0].mIsBeginningOfSentence) {
-                // Beginning-of-Sentence n-gram entry is treated as a n-gram entry of invalid word.
-                userHistoryDictionary.addNgramEntry(prevWordsInfo, word,
-                        FREQUENCY_FOR_WORDS_NOT_IN_DICTS, timestamp);
-            } else {
-                userHistoryDictionary.addNgramEntry(prevWordsInfo, word, frequency, timestamp);
-            }
-        }
+        userHistoryDictionary.updateEntriesForWord(ngramContext, word,
+                isValid, 1 /* count */, timestamp);
+    }
+
+    @Override
+    public void close() {
+        // Flush pending writes.
+        asyncFlushBinaryDictionary();
+        super.close();
+    }
+
+    @Override
+    protected Map<String, String> getHeaderAttributeMap() {
+        final Map<String, String> attributeMap = super.getHeaderAttributeMap();
+        attributeMap.put(DictionaryHeader.USES_FORGETTING_CURVE_KEY,
+                DictionaryHeader.ATTRIBUTE_VALUE_TRUE);
+        attributeMap.put(DictionaryHeader.HAS_HISTORICAL_INFO_KEY,
+                DictionaryHeader.ATTRIBUTE_VALUE_TRUE);
+        return attributeMap;
+    }
+
+    @Override
+    protected void loadInitialContentsLocked() {
+        // No initial contents.
+    }
+
+    @Override
+    public boolean isValidWord(final String word) {
+        // Strings out of this dictionary should not be considered existing words.
+        return false;
     }
 }
diff --git a/java/src/com/android/inputmethod/latin/settings/AccountsSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/AccountsSettingsFragment.java
new file mode 100644
index 0000000..a2ae0ef
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/settings/AccountsSettingsFragment.java
@@ -0,0 +1,445 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.settings;
+
+import static com.android.inputmethod.latin.settings.LocalSettingsConstants.PREF_ACCOUNT_NAME;
+import static com.android.inputmethod.latin.settings.LocalSettingsConstants.PREF_ENABLE_CLOUD_SYNC;
+
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnShowListener;
+import android.content.SharedPreferences;
+import android.content.res.Resources;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.preference.Preference;
+import android.preference.Preference.OnPreferenceClickListener;
+import android.preference.TwoStatePreference;
+import android.text.TextUtils;
+import android.text.method.LinkMovementMethod;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import com.android.inputmethod.annotations.UsedForTesting;
+import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.accounts.AccountStateChangedListener;
+import com.android.inputmethod.latin.accounts.LoginAccountUtils;
+import com.android.inputmethod.latin.define.ProductionFlags;
+import com.android.inputmethod.latin.utils.ManagedProfileUtils;
+
+import javax.annotation.Nullable;
+
+/**
+ * "Accounts & Privacy" settings sub screen.
+ *
+ * This settings sub screen handles the following preferences:
+ * <li> Account selection/management for IME </li>
+ * <li> Sync preferences </li>
+ * <li> Privacy preferences </li>
+ */
+public final class AccountsSettingsFragment extends SubScreenFragment {
+    private static final String PREF_ENABLE_SYNC_NOW = "pref_enable_cloud_sync";
+    private static final String PREF_SYNC_NOW = "pref_sync_now";
+    private static final String PREF_CLEAR_SYNC_DATA = "pref_clear_sync_data";
+
+    static final String PREF_ACCCOUNT_SWITCHER = "account_switcher";
+
+    /**
+     * Onclick listener for sync now pref.
+     */
+    private final Preference.OnPreferenceClickListener mSyncNowListener =
+            new SyncNowListener();
+    /**
+     * Onclick listener for delete sync pref.
+     */
+    private final Preference.OnPreferenceClickListener mDeleteSyncDataListener =
+            new DeleteSyncDataListener();
+
+    /**
+     * Onclick listener for enable sync pref.
+     */
+    private final Preference.OnPreferenceClickListener mEnableSyncClickListener =
+            new EnableSyncClickListener();
+
+    /**
+     * Enable sync checkbox pref.
+     */
+    private TwoStatePreference mEnableSyncPreference;
+
+    /**
+     * Enable sync checkbox pref.
+     */
+    private Preference mSyncNowPreference;
+
+    /**
+     * Clear sync data pref.
+     */
+    private Preference mClearSyncDataPreference;
+
+    /**
+     * Account switcher preference.
+     */
+    private Preference mAccountSwitcher;
+
+
+    @Override
+    public void onCreate(final Bundle icicle) {
+        super.onCreate(icicle);
+        addPreferencesFromResource(R.xml.prefs_screen_accounts);
+
+        if (ProductionFlags.IS_METRICS_LOGGING_SUPPORTED) {
+            final Preference enableMetricsLogging =
+                    findPreference(Settings.PREF_ENABLE_METRICS_LOGGING);
+            final Resources res = getResources();
+            if (enableMetricsLogging != null) {
+                final String enableMetricsLoggingTitle = res.getString(
+                        R.string.enable_metrics_logging, getApplicationName());
+                enableMetricsLogging.setTitle(enableMetricsLoggingTitle);
+            }
+        } else {
+            removePreference(Settings.PREF_ENABLE_METRICS_LOGGING);
+        }
+
+        if (!ProductionFlags.ENABLE_USER_HISTORY_DICTIONARY_SYNC) {
+            removeSyncPreferences();
+        } else {
+            // Temporarily disable the preferences till we can
+            // check that we don't have a work profile.
+            disableSyncPreferences();
+            new ManagedProfileCheckerTask(this).execute();
+        }
+    }
+
+    /**
+     * Task to check work profile. If found, it removes the sync prefs. If not,
+     * it enables them.
+     */
+    private static class ManagedProfileCheckerTask extends AsyncTask<Void, Void, Void> {
+        private final AccountsSettingsFragment mFragment;
+
+        private ManagedProfileCheckerTask(final AccountsSettingsFragment fragment) {
+            mFragment = fragment;
+        }
+
+        @Override
+        protected Void doInBackground(Void... params) {
+            if (ManagedProfileUtils.getInstance().hasWorkProfile(mFragment.getActivity())) {
+                mFragment.removeSyncPreferences();
+            } else {
+                mFragment.refreshAccountAndDependentPreferences(
+                        mFragment.getSignedInAccountName());
+            }
+            return null;
+        }
+    }
+
+    private void enableSyncPreferences() {
+        mAccountSwitcher = findPreference(PREF_ACCCOUNT_SWITCHER);
+        if (mAccountSwitcher == null) {
+            // Preference has been removed because the device has a managed profile.
+            return;
+        }
+        mAccountSwitcher.setEnabled(true);
+
+        mEnableSyncPreference = (TwoStatePreference) findPreference(PREF_ENABLE_SYNC_NOW);
+        mEnableSyncPreference.setEnabled(true);
+        mEnableSyncPreference.setOnPreferenceClickListener(mEnableSyncClickListener);
+
+        mSyncNowPreference = findPreference(PREF_SYNC_NOW);
+        mSyncNowPreference.setEnabled(true);
+        mSyncNowPreference.setOnPreferenceClickListener(mSyncNowListener);
+
+        mClearSyncDataPreference = findPreference(PREF_CLEAR_SYNC_DATA);
+        mSyncNowPreference.setEnabled(true);
+        mClearSyncDataPreference.setOnPreferenceClickListener(mDeleteSyncDataListener);
+    }
+
+    private void disableSyncPreferences() {
+        mAccountSwitcher = findPreference(PREF_ACCCOUNT_SWITCHER);
+        if (mAccountSwitcher == null) {
+            // Preference has been removed because the device has a managed profile.
+            return;
+        }
+        mAccountSwitcher.setEnabled(false);
+
+        mEnableSyncPreference = (TwoStatePreference) findPreference(PREF_ENABLE_SYNC_NOW);
+        mEnableSyncPreference.setEnabled(false);
+
+        mSyncNowPreference = findPreference(PREF_SYNC_NOW);
+        mSyncNowPreference.setEnabled(false);
+
+        mClearSyncDataPreference = findPreference(PREF_CLEAR_SYNC_DATA);
+        mSyncNowPreference.setEnabled(false);
+    }
+
+    private void removeSyncPreferences() {
+        removePreference(PREF_ACCCOUNT_SWITCHER);
+        removePreference(PREF_ENABLE_CLOUD_SYNC);
+        removePreference(PREF_SYNC_NOW);
+        removePreference(PREF_CLEAR_SYNC_DATA);
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        refreshAccountAndDependentPreferences(getSignedInAccountName());
+    }
+
+    @Override
+    public void onSharedPreferenceChanged(final SharedPreferences prefs, final String key) {
+        if (TextUtils.equals(key, PREF_ACCOUNT_NAME)) {
+            refreshAccountAndDependentPreferences(prefs.getString(PREF_ACCOUNT_NAME, null));
+        } else if (TextUtils.equals(key, PREF_ENABLE_CLOUD_SYNC)) {
+            final boolean syncEnabled = prefs.getBoolean(PREF_ENABLE_CLOUD_SYNC, false);
+            mEnableSyncPreference = (TwoStatePreference) findPreference(PREF_ENABLE_SYNC_NOW);
+            if (syncEnabled) {
+                mEnableSyncPreference.setSummary(R.string.cloud_sync_summary);
+            } else {
+                mEnableSyncPreference.setSummary(R.string.cloud_sync_summary_disabled);
+            }
+            AccountStateChangedListener.onSyncPreferenceChanged(getSignedInAccountName(),
+                    syncEnabled);
+        }
+    }
+
+    /**
+     * Summarizes what account is being used and turns off dependent preferences if no account
+     * is currently selected.
+     */
+    private void refreshAccountAndDependentPreferences(@Nullable final String currentAccount) {
+        // TODO(cvnguyen): Write tests.
+        if (!ProductionFlags.ENABLE_ACCOUNT_SIGN_IN) {
+            return;
+        }
+
+        final String[] accountsForLogin =
+                LoginAccountUtils.getAccountsForLogin(getActivity());
+
+        if (accountsForLogin.length > 0) {
+            enableSyncPreferences();
+            if (mAccountSwitcher == null) {
+                return;
+            }
+            mAccountSwitcher.setOnPreferenceClickListener(new OnPreferenceClickListener() {
+                @Override
+                public boolean onPreferenceClick(final Preference preference) {
+                    if (accountsForLogin.length > 0) {
+                        // TODO: Add addition of account.
+                        createAccountPicker(accountsForLogin, currentAccount,
+                                new AccountChangedListener(null)).show();
+                    }
+                    return true;
+                }
+            });
+        } else {
+            mAccountSwitcher.setEnabled(false);
+            disableSyncPreferences();
+            mEnableSyncPreference.setSummary(getString(R.string.add_account_to_enable_sync));
+        }
+
+        if (currentAccount == null) {
+            // No account is currently selected; switch enable sync preference off.
+            mAccountSwitcher.setSummary(getString(R.string.no_accounts_selected));
+            mEnableSyncPreference.setChecked(false);
+        } else {
+            // Set the currently selected account as the summary text.
+            mAccountSwitcher.setSummary(getString(R.string.account_selected, currentAccount));
+        }
+    }
+
+    @Nullable
+    String getSignedInAccountName() {
+        return getSharedPreferences().getString(LocalSettingsConstants.PREF_ACCOUNT_NAME, null);
+    }
+
+    boolean isSyncEnabled() {
+        return getSharedPreferences().getBoolean(PREF_ENABLE_CLOUD_SYNC, false);
+    }
+
+    /**
+     * Creates an account picker dialog showing the given accounts in a list and selecting
+     * the selected account by default.  The list of accounts must not be null/empty.
+     *
+     * Package-private for testing.
+     *
+     * @param accounts list of accounts on the device.
+     * @param selectedAccount currently selected account
+     * @param positiveButtonClickListener listener that gets called when positive button is
+     * clicked
+     */
+    @UsedForTesting
+    AlertDialog createAccountPicker(final String[] accounts,
+            final String selectedAccount,
+            final DialogInterface.OnClickListener positiveButtonClickListener) {
+        if (accounts == null || accounts.length == 0) {
+            throw new IllegalArgumentException("List of accounts must not be empty");
+        }
+
+        // See if the currently selected account is in the list.
+        // If it is, the entry is selected, and a sign-out button is provided.
+        // If it isn't, select the 0th account by default which will get picked up
+        // if the user presses OK.
+        int index = 0;
+        boolean isSignedIn = false;
+        for (int i = 0;  i < accounts.length; i++) {
+            if (TextUtils.equals(accounts[i], selectedAccount)) {
+                index = i;
+                isSignedIn = true;
+                break;
+            }
+        }
+        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
+                .setTitle(R.string.account_select_title)
+                .setSingleChoiceItems(accounts, index, null)
+                .setPositiveButton(R.string.account_select_ok, positiveButtonClickListener)
+                .setNegativeButton(R.string.account_select_cancel, null);
+        if (isSignedIn) {
+            builder.setNeutralButton(R.string.account_select_sign_out, positiveButtonClickListener);
+        }
+        return builder.create();
+    }
+
+    /**
+     * Listener for a account selection changes from the picker.
+     * Persists/removes the account to/from shared preferences and sets up sync if required.
+     */
+    class AccountChangedListener implements DialogInterface.OnClickListener {
+        /**
+         * Represents preference that should be changed based on account chosen.
+         */
+        private TwoStatePreference mDependentPreference;
+
+        AccountChangedListener(final TwoStatePreference dependentPreference) {
+            mDependentPreference = dependentPreference;
+        }
+
+        @Override
+        public void onClick(final DialogInterface dialog, final int which) {
+            final String oldAccount = getSignedInAccountName();
+            switch (which) {
+                case DialogInterface.BUTTON_POSITIVE: // Signed in
+                    final ListView lv = ((AlertDialog)dialog).getListView();
+                    final String newAccount =
+                            (String) lv.getItemAtPosition(lv.getCheckedItemPosition());
+                    getSharedPreferences()
+                            .edit()
+                            .putString(PREF_ACCOUNT_NAME, newAccount)
+                            .apply();
+                    AccountStateChangedListener.onAccountSignedIn(oldAccount, newAccount);
+                    if (mDependentPreference != null) {
+                        mDependentPreference.setChecked(true);
+                    }
+                    break;
+                case DialogInterface.BUTTON_NEUTRAL: // Signed out
+                    AccountStateChangedListener.onAccountSignedOut(oldAccount);
+                    getSharedPreferences()
+                            .edit()
+                            .remove(PREF_ACCOUNT_NAME)
+                            .apply();
+                    break;
+            }
+        }
+    }
+
+    /**
+     * Listener that initiates the process of sync in the background.
+     */
+    class SyncNowListener implements Preference.OnPreferenceClickListener {
+        @Override
+        public boolean onPreferenceClick(final Preference preference) {
+            AccountStateChangedListener.forceSync(getSignedInAccountName());
+            return true;
+        }
+    }
+
+    /**
+     * Listener that initiates the process of deleting user's data from the cloud.
+     */
+    class DeleteSyncDataListener implements Preference.OnPreferenceClickListener {
+        @Override
+        public boolean onPreferenceClick(final Preference preference) {
+            final AlertDialog confirmationDialog = new AlertDialog.Builder(getActivity())
+                    .setTitle(R.string.clear_sync_data_title)
+                    .setMessage(R.string.clear_sync_data_confirmation)
+                    .setPositiveButton(R.string.clear_sync_data_ok,
+                            new DialogInterface.OnClickListener() {
+                                @Override
+                                public void onClick(final DialogInterface dialog, final int which) {
+                                    if (which == DialogInterface.BUTTON_POSITIVE) {
+                                        AccountStateChangedListener.forceDelete(
+                                                getSignedInAccountName());
+                                    }
+                                }
+                             })
+                    .setNegativeButton(R.string.cloud_sync_cancel, null /* OnClickListener */)
+                    .create();
+            confirmationDialog.show();
+            return true;
+        }
+    }
+
+    /**
+     * Listens to events when user clicks on "Enable sync" feature.
+     */
+    class EnableSyncClickListener implements OnShowListener, Preference.OnPreferenceClickListener {
+        // TODO(cvnguyen): Write tests.
+        @Override
+        public boolean onPreferenceClick(final Preference preference) {
+            final TwoStatePreference syncPreference = (TwoStatePreference) preference;
+            if (syncPreference.isChecked()) {
+                // Uncheck for now.
+                syncPreference.setChecked(false);
+
+                // Show opt-in.
+                final AlertDialog optInDialog = new AlertDialog.Builder(getActivity())
+                        .setTitle(R.string.cloud_sync_title)
+                        .setMessage(R.string.cloud_sync_opt_in_text)
+                        .setPositiveButton(R.string.account_select_ok,
+                                new DialogInterface.OnClickListener() {
+                                    @Override
+                                    public void onClick(final DialogInterface dialog,
+                                            final int which) {
+                                        if (which == DialogInterface.BUTTON_POSITIVE) {
+                                            final Context context = getActivity();
+                                            final String[] accountsForLogin =
+                                                    LoginAccountUtils.getAccountsForLogin(context);
+                                            createAccountPicker(accountsForLogin,
+                                                    getSignedInAccountName(),
+                                                    new AccountChangedListener(syncPreference))
+                                                    .show();
+                                        }
+                                    }
+                         })
+                         .setNegativeButton(R.string.cloud_sync_cancel, null)
+                         .create();
+                optInDialog.setOnShowListener(this);
+                optInDialog.show();
+            }
+            return true;
+        }
+
+        @Override
+        public void onShow(DialogInterface dialog) {
+            TextView messageView = (TextView) ((AlertDialog) dialog).findViewById(
+                    android.R.id.message);
+            if (messageView != null) {
+                messageView.setMovementMethod(LinkMovementMethod.getInstance());
+            }
+        }
+    }
+}
diff --git a/java/src/com/android/inputmethod/latin/settings/AdvancedSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/AdvancedSettingsFragment.java
index 00f2c73..f2e1aed 100644
--- a/java/src/com/android/inputmethod/latin/settings/AdvancedSettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/AdvancedSettingsFragment.java
@@ -23,12 +23,10 @@
 import android.os.Bundle;
 import android.preference.ListPreference;
 import android.preference.Preference;
-import android.preference.TwoStatePreference;
 
 import com.android.inputmethod.latin.AudioAndHapticFeedbackManager;
 import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.define.ProductionFlags;
-import com.android.inputmethod.latin.setup.LauncherIconVisibilityManager;
 
 /**
  * "Advanced" settings sub screen.
@@ -89,26 +87,9 @@
                     Settings.readKeyPreviewPopupEnabled(prefs, res));
         }
 
-        if (!res.getBoolean(R.bool.config_setup_wizard_available)) {
-            removePreference(Settings.PREF_SHOW_SETUP_WIZARD_ICON);
-        }
-
-        if (ProductionFlags.IS_METRICS_LOGGING_SUPPORTED) {
-            final Preference enableMetricsLogging =
-                    findPreference(Settings.PREF_ENABLE_METRICS_LOGGING);
-            if (enableMetricsLogging != null) {
-                final int applicationLabelRes = context.getApplicationInfo().labelRes;
-                final String applicationName = res.getString(applicationLabelRes);
-                final String enableMetricsLoggingTitle = res.getString(
-                        R.string.enable_metrics_logging, applicationName);
-                enableMetricsLogging.setTitle(enableMetricsLoggingTitle);
-            }
-        } else {
-            removePreference(Settings.PREF_ENABLE_METRICS_LOGGING);
-        }
-
         setupKeypressVibrationDurationSettings();
         setupKeypressSoundVolumeSettings();
+        setupKeyLongpressTimeoutSettings();
         refreshEnablingsOfKeypressSoundAndVibrationSettings();
     }
 
@@ -116,11 +97,6 @@
     public void onResume() {
         super.onResume();
         final SharedPreferences prefs = getPreferenceManager().getSharedPreferences();
-        final TwoStatePreference showSetupWizardIcon =
-                (TwoStatePreference)findPreference(Settings.PREF_SHOW_SETUP_WIZARD_ICON);
-        if (showSetupWizardIcon != null) {
-            showSetupWizardIcon.setChecked(Settings.readShowSetupWizardIcon(prefs, getActivity()));
-        }
         updateListPreferenceSummaryToCurrentValue(Settings.PREF_KEY_PREVIEW_POPUP_DISMISS_DELAY);
     }
 
@@ -130,8 +106,6 @@
         if (key.equals(Settings.PREF_POPUP_ON)) {
             setPreferenceEnabled(Settings.PREF_KEY_PREVIEW_POPUP_DISMISS_DELAY,
                     Settings.readKeyPreviewPopupEnabled(prefs, res));
-        } else if (key.equals(Settings.PREF_SHOW_SETUP_WIZARD_ICON)) {
-            LauncherIconVisibilityManager.updateSetupWizardIconVisibility(getActivity());
         }
         updateListPreferenceSummaryToCurrentValue(Settings.PREF_KEY_PREVIEW_POPUP_DISMISS_DELAY);
         refreshEnablingsOfKeypressSoundAndVibrationSettings();
@@ -245,4 +219,43 @@
             }
         });
     }
+
+    private void setupKeyLongpressTimeoutSettings() {
+        final SharedPreferences prefs = getSharedPreferences();
+        final Resources res = getResources();
+        final SeekBarDialogPreference pref = (SeekBarDialogPreference)findPreference(
+                Settings.PREF_KEY_LONGPRESS_TIMEOUT);
+        if (pref == null) {
+            return;
+        }
+        pref.setInterface(new SeekBarDialogPreference.ValueProxy() {
+            @Override
+            public void writeValue(final int value, final String key) {
+                prefs.edit().putInt(key, value).apply();
+            }
+
+            @Override
+            public void writeDefaultValue(final String key) {
+                prefs.edit().remove(key).apply();
+            }
+
+            @Override
+            public int readValue(final String key) {
+                return Settings.readKeyLongpressTimeout(prefs, res);
+            }
+
+            @Override
+            public int readDefaultValue(final String key) {
+                return Settings.readDefaultKeyLongpressTimeout(res);
+            }
+
+            @Override
+            public String getValueText(final int value) {
+                return res.getString(R.string.abbreviation_unit_milliseconds, value);
+            }
+
+            @Override
+            public void feedbackValue(final int value) {}
+        });
+    }
 }
diff --git a/java/src/com/android/inputmethod/latin/settings/AppearanceSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/AppearanceSettingsFragment.java
index f5e4d33..554edc8 100644
--- a/java/src/com/android/inputmethod/latin/settings/AppearanceSettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/AppearanceSettingsFragment.java
@@ -19,7 +19,8 @@
 import android.os.Bundle;
 
 import com.android.inputmethod.latin.R;
-
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.define.ProductionFlags;
 
 /**
  * "Appearance" settings sub screen.
@@ -29,6 +30,10 @@
     public void onCreate(final Bundle icicle) {
         super.onCreate(icicle);
         addPreferencesFromResource(R.xml.prefs_screen_appearance);
+        if (!ProductionFlags.IS_SPLIT_KEYBOARD_SUPPORTED ||
+                Constants.isPhone(Settings.readScreenMetrics(getResources()))) {
+            removePreference(Settings.PREF_ENABLE_SPLIT_KEYBOARD);
+        }
     }
 
     @Override
diff --git a/java/src/com/android/inputmethod/latin/settings/CorrectionSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/CorrectionSettingsFragment.java
index ec29a7e..62834cd 100644
--- a/java/src/com/android/inputmethod/latin/settings/CorrectionSettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/CorrectionSettingsFragment.java
@@ -24,8 +24,8 @@
 import android.content.pm.ResolveInfo;
 import android.os.Build;
 import android.os.Bundle;
-import android.preference.ListPreference;
 import android.preference.Preference;
+import android.preference.TwoStatePreference;
 
 import com.android.inputmethod.dictionarypack.DictionarySettingsActivity;
 import com.android.inputmethod.latin.R;
@@ -49,7 +49,7 @@
  */
 public final class CorrectionSettingsFragment extends SubScreenFragment {
     private static final boolean DBG_USE_INTERNAL_PERSONAL_DICTIONARY_SETTINGS = false;
-    private static final boolean USE_INTERNAL_PERSONAL_DICTIONARY_SETTIGS =
+    private static final boolean USE_INTERNAL_PERSONAL_DICTIONARY_SETTINGS =
             DBG_USE_INTERNAL_PERSONAL_DICTIONARY_SETTINGS
             || Build.VERSION.SDK_INT <= Build.VERSION_CODES.JELLY_BEAN_MR2;
 
@@ -61,8 +61,6 @@
         final Context context = getActivity();
         final PackageManager pm = context.getPackageManager();
 
-        ensureConsistencyOfAutoCorrectionSettings();
-
         final Preference dictionaryLink = findPreference(Settings.PREF_CONFIGURE_DICTIONARIES_KEY);
         final Intent intent = dictionaryLink.getIntent();
         intent.setClassName(context.getPackageName(), DictionarySettingsActivity.class.getName());
@@ -74,7 +72,7 @@
         final Preference editPersonalDictionary =
                 findPreference(Settings.PREF_EDIT_PERSONAL_DICTIONARY);
         final Intent editPersonalDictionaryIntent = editPersonalDictionary.getIntent();
-        final ResolveInfo ri = USE_INTERNAL_PERSONAL_DICTIONARY_SETTIGS ? null
+        final ResolveInfo ri = USE_INTERNAL_PERSONAL_DICTIONARY_SETTINGS ? null
                 : pm.resolveActivity(
                         editPersonalDictionaryIntent, PackageManager.MATCH_DEFAULT_ONLY);
         if (ri == null) {
@@ -82,21 +80,6 @@
         }
     }
 
-    @Override
-    public void onSharedPreferenceChanged(final SharedPreferences prefs, final String key) {
-        ensureConsistencyOfAutoCorrectionSettings();
-    }
-
-    private void ensureConsistencyOfAutoCorrectionSettings() {
-        final String autoCorrectionOff = getString(
-                R.string.auto_correction_threshold_mode_index_off);
-        final ListPreference autoCorrectionThresholdPref = (ListPreference)findPreference(
-                Settings.PREF_AUTO_CORRECTION_THRESHOLD);
-        final String currentSetting = autoCorrectionThresholdPref.getValue();
-        setPreferenceEnabled(
-                Settings.PREF_BIGRAM_PREDICTIONS, !currentSetting.equals(autoCorrectionOff));
-    }
-
     private void overwriteUserDictionaryPreference(final Preference userDictionaryPreference) {
         final Activity activity = getActivity();
         final TreeSet<String> localeList = UserDictionaryList.getUserDictionaryLocalesSet(activity);
diff --git a/java/src/com/android/inputmethod/latin/settings/CustomInputStylePreference.java b/java/src/com/android/inputmethod/latin/settings/CustomInputStylePreference.java
new file mode 100644
index 0000000..21ea8f8
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/settings/CustomInputStylePreference.java
@@ -0,0 +1,341 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.settings;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.preference.DialogPreference;
+import android.preference.Preference;
+import android.util.Log;
+import android.view.View;
+import android.view.inputmethod.InputMethodInfo;
+import android.view.inputmethod.InputMethodSubtype;
+import android.widget.ArrayAdapter;
+import android.widget.Spinner;
+import android.widget.SpinnerAdapter;
+
+import com.android.inputmethod.compat.InputMethodSubtypeCompatUtils;
+import com.android.inputmethod.compat.ViewCompatUtils;
+import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.RichInputMethodManager;
+import com.android.inputmethod.latin.utils.AdditionalSubtypeUtils;
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+import java.util.TreeSet;
+
+final class CustomInputStylePreference extends DialogPreference
+        implements DialogInterface.OnCancelListener {
+    private static final boolean DEBUG_SUBTYPE_ID = false;
+
+    interface Listener {
+        public void onRemoveCustomInputStyle(CustomInputStylePreference stylePref);
+        public void onSaveCustomInputStyle(CustomInputStylePreference stylePref);
+        public void onAddCustomInputStyle(CustomInputStylePreference stylePref);
+        public SubtypeLocaleAdapter getSubtypeLocaleAdapter();
+        public KeyboardLayoutSetAdapter getKeyboardLayoutSetAdapter();
+    }
+
+    private static final String KEY_PREFIX = "subtype_pref_";
+    private static final String KEY_NEW_SUBTYPE = KEY_PREFIX + "new";
+
+    private InputMethodSubtype mSubtype;
+    private InputMethodSubtype mPreviousSubtype;
+
+    private final Listener mProxy;
+    private Spinner mSubtypeLocaleSpinner;
+    private Spinner mKeyboardLayoutSetSpinner;
+
+    public static CustomInputStylePreference newIncompleteSubtypePreference(
+            final Context context, final Listener proxy) {
+        return new CustomInputStylePreference(context, null, proxy);
+    }
+
+    public CustomInputStylePreference(final Context context, final InputMethodSubtype subtype,
+            final Listener proxy) {
+        super(context, null);
+        setDialogLayoutResource(R.layout.additional_subtype_dialog);
+        setPersistent(false);
+        mProxy = proxy;
+        setSubtype(subtype);
+    }
+
+    public void show() {
+        showDialog(null);
+    }
+
+    public final boolean isIncomplete() {
+        return mSubtype == null;
+    }
+
+    public InputMethodSubtype getSubtype() {
+        return mSubtype;
+    }
+
+    public void setSubtype(final InputMethodSubtype subtype) {
+        mPreviousSubtype = mSubtype;
+        mSubtype = subtype;
+        if (isIncomplete()) {
+            setTitle(null);
+            setDialogTitle(R.string.add_style);
+            setKey(KEY_NEW_SUBTYPE);
+        } else {
+            final String displayName =
+                    SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(subtype);
+            setTitle(displayName);
+            setDialogTitle(displayName);
+            setKey(KEY_PREFIX + subtype.getLocale() + "_"
+                    + SubtypeLocaleUtils.getKeyboardLayoutSetName(subtype));
+        }
+    }
+
+    public void revert() {
+        setSubtype(mPreviousSubtype);
+    }
+
+    public boolean hasBeenModified() {
+        return mSubtype != null && !mSubtype.equals(mPreviousSubtype);
+    }
+
+    @Override
+    protected View onCreateDialogView() {
+        final View v = super.onCreateDialogView();
+        mSubtypeLocaleSpinner = (Spinner) v.findViewById(R.id.subtype_locale_spinner);
+        mSubtypeLocaleSpinner.setAdapter(mProxy.getSubtypeLocaleAdapter());
+        mKeyboardLayoutSetSpinner = (Spinner) v.findViewById(R.id.keyboard_layout_set_spinner);
+        mKeyboardLayoutSetSpinner.setAdapter(mProxy.getKeyboardLayoutSetAdapter());
+        // All keyboard layout names are in the Latin script and thus left to right. That means
+        // the view would align them to the left even if the system locale is RTL, but that
+        // would look strange. To fix this, we align them to the view's start, which will be
+        // natural for any direction.
+        ViewCompatUtils.setTextAlignment(
+                mKeyboardLayoutSetSpinner, ViewCompatUtils.TEXT_ALIGNMENT_VIEW_START);
+        return v;
+    }
+
+    @Override
+    protected void onPrepareDialogBuilder(final AlertDialog.Builder builder) {
+        builder.setCancelable(true).setOnCancelListener(this);
+        if (isIncomplete()) {
+            builder.setPositiveButton(R.string.add, this)
+                    .setNegativeButton(android.R.string.cancel, this);
+        } else {
+            builder.setPositiveButton(R.string.save, this)
+                    .setNeutralButton(android.R.string.cancel, this)
+                    .setNegativeButton(R.string.remove, this);
+            final SubtypeLocaleItem localeItem = new SubtypeLocaleItem(mSubtype);
+            final KeyboardLayoutSetItem layoutItem = new KeyboardLayoutSetItem(mSubtype);
+            setSpinnerPosition(mSubtypeLocaleSpinner, localeItem);
+            setSpinnerPosition(mKeyboardLayoutSetSpinner, layoutItem);
+        }
+    }
+
+    private static void setSpinnerPosition(final Spinner spinner, final Object itemToSelect) {
+        final SpinnerAdapter adapter = spinner.getAdapter();
+        final int count = adapter.getCount();
+        for (int i = 0; i < count; i++) {
+            final Object item = spinner.getItemAtPosition(i);
+            if (item.equals(itemToSelect)) {
+                spinner.setSelection(i);
+                return;
+            }
+        }
+    }
+
+    @Override
+    public void onCancel(final DialogInterface dialog) {
+        if (isIncomplete()) {
+            mProxy.onRemoveCustomInputStyle(this);
+        }
+    }
+
+    @Override
+    public void onClick(final DialogInterface dialog, final int which) {
+        super.onClick(dialog, which);
+        switch (which) {
+        case DialogInterface.BUTTON_POSITIVE:
+            final boolean isEditing = !isIncomplete();
+            final SubtypeLocaleItem locale =
+                    (SubtypeLocaleItem) mSubtypeLocaleSpinner.getSelectedItem();
+            final KeyboardLayoutSetItem layout =
+                    (KeyboardLayoutSetItem) mKeyboardLayoutSetSpinner.getSelectedItem();
+            final InputMethodSubtype subtype =
+                    AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
+                            locale.mLocaleString, layout.mLayoutName);
+            setSubtype(subtype);
+            notifyChanged();
+            if (isEditing) {
+                mProxy.onSaveCustomInputStyle(this);
+            } else {
+                mProxy.onAddCustomInputStyle(this);
+            }
+            break;
+        case DialogInterface.BUTTON_NEUTRAL:
+            // Nothing to do
+            break;
+        case DialogInterface.BUTTON_NEGATIVE:
+            mProxy.onRemoveCustomInputStyle(this);
+            break;
+        }
+    }
+
+    @Override
+    protected Parcelable onSaveInstanceState() {
+        final Parcelable superState = super.onSaveInstanceState();
+        final Dialog dialog = getDialog();
+        if (dialog == null || !dialog.isShowing()) {
+            return superState;
+        }
+
+        final SavedState myState = new SavedState(superState);
+        myState.mSubtype = mSubtype;
+        return myState;
+    }
+
+    @Override
+    protected void onRestoreInstanceState(final Parcelable state) {
+        if (!(state instanceof SavedState)) {
+            super.onRestoreInstanceState(state);
+            return;
+        }
+
+        final SavedState myState = (SavedState) state;
+        super.onRestoreInstanceState(myState.getSuperState());
+        setSubtype(myState.mSubtype);
+    }
+
+    static final class SavedState extends Preference.BaseSavedState {
+        InputMethodSubtype mSubtype;
+
+        public SavedState(final Parcelable superState) {
+            super(superState);
+        }
+
+        @Override
+        public void writeToParcel(final Parcel dest, final int flags) {
+            super.writeToParcel(dest, flags);
+            dest.writeParcelable(mSubtype, 0);
+        }
+
+        public SavedState(final Parcel source) {
+            super(source);
+            mSubtype = (InputMethodSubtype)source.readParcelable(null);
+        }
+
+        @SuppressWarnings("hiding")
+        public static final Parcelable.Creator<SavedState> CREATOR =
+                new Parcelable.Creator<SavedState>() {
+                    @Override
+                    public SavedState createFromParcel(final Parcel source) {
+                        return new SavedState(source);
+                    }
+
+                    @Override
+                    public SavedState[] newArray(final int size) {
+                        return new SavedState[size];
+                    }
+                };
+    }
+
+    static final class SubtypeLocaleItem implements Comparable<SubtypeLocaleItem> {
+        public final String mLocaleString;
+        private final String mDisplayName;
+
+        public SubtypeLocaleItem(final InputMethodSubtype subtype) {
+            mLocaleString = subtype.getLocale();
+            mDisplayName = SubtypeLocaleUtils.getSubtypeLocaleDisplayNameInSystemLocale(
+                    mLocaleString);
+        }
+
+        // {@link ArrayAdapter<T>} that hosts the instance of this class needs {@link #toString()}
+        // to get display name.
+        @Override
+        public String toString() {
+            return mDisplayName;
+        }
+
+        @Override
+        public int compareTo(final SubtypeLocaleItem o) {
+            return mLocaleString.compareTo(o.mLocaleString);
+        }
+    }
+
+    static final class SubtypeLocaleAdapter extends ArrayAdapter<SubtypeLocaleItem> {
+        private static final String TAG_SUBTYPE = SubtypeLocaleAdapter.class.getSimpleName();
+
+        public SubtypeLocaleAdapter(final Context context) {
+            super(context, android.R.layout.simple_spinner_item);
+            setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+
+            final TreeSet<SubtypeLocaleItem> items = new TreeSet<>();
+            final InputMethodInfo imi = RichInputMethodManager.getInstance()
+                    .getInputMethodInfoOfThisIme();
+            final int count = imi.getSubtypeCount();
+            for (int i = 0; i < count; i++) {
+                final InputMethodSubtype subtype = imi.getSubtypeAt(i);
+                if (DEBUG_SUBTYPE_ID) {
+                    Log.d(TAG_SUBTYPE, String.format("%-6s 0x%08x %11d %s",
+                            subtype.getLocale(), subtype.hashCode(), subtype.hashCode(),
+                            SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(subtype)));
+                }
+                if (InputMethodSubtypeCompatUtils.isAsciiCapable(subtype)) {
+                    items.add(new SubtypeLocaleItem(subtype));
+                }
+            }
+            // TODO: Should filter out already existing combinations of locale and layout.
+            addAll(items);
+        }
+    }
+
+    static final class KeyboardLayoutSetItem {
+        public final String mLayoutName;
+        private final String mDisplayName;
+
+        public KeyboardLayoutSetItem(final InputMethodSubtype subtype) {
+            mLayoutName = SubtypeLocaleUtils.getKeyboardLayoutSetName(subtype);
+            mDisplayName = SubtypeLocaleUtils.getKeyboardLayoutSetDisplayName(subtype);
+        }
+
+        // {@link ArrayAdapter<T>} that hosts the instance of this class needs {@link #toString()}
+        // to get display name.
+        @Override
+        public String toString() {
+            return mDisplayName;
+        }
+    }
+
+    static final class KeyboardLayoutSetAdapter extends ArrayAdapter<KeyboardLayoutSetItem> {
+        public KeyboardLayoutSetAdapter(final Context context) {
+            super(context, android.R.layout.simple_spinner_item);
+            setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+
+            final String[] predefinedKeyboardLayoutSet = context.getResources().getStringArray(
+                    R.array.predefined_layouts);
+            // TODO: Should filter out already existing combinations of locale and layout.
+            for (final String layout : predefinedKeyboardLayoutSet) {
+                // This is a dummy subtype with NO_LANGUAGE, only for display.
+                final InputMethodSubtype subtype =
+                        AdditionalSubtypeUtils.createDummyAdditionalSubtype(
+                                SubtypeLocaleUtils.NO_LANGUAGE, layout);
+                add(new KeyboardLayoutSetItem(subtype));
+            }
+        }
+    }
+}
diff --git a/java/src/com/android/inputmethod/latin/settings/CustomInputStyleSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/CustomInputStyleSettingsFragment.java
index 9bc3986..46fcc71 100644
--- a/java/src/com/android/inputmethod/latin/settings/CustomInputStyleSettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/CustomInputStyleSettingsFragment.java
@@ -17,37 +17,27 @@
 package com.android.inputmethod.latin.settings;
 
 import android.app.AlertDialog;
-import android.app.Dialog;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.SharedPreferences;
 import android.content.res.Resources;
 import android.os.Bundle;
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.preference.DialogPreference;
 import android.preference.Preference;
 import android.preference.PreferenceFragment;
 import android.preference.PreferenceGroup;
 import android.support.v4.view.ViewCompat;
 import android.text.TextUtils;
-import android.util.Pair;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
-import android.view.inputmethod.InputMethodInfo;
 import android.view.inputmethod.InputMethodSubtype;
-import android.widget.ArrayAdapter;
-import android.widget.Spinner;
-import android.widget.SpinnerAdapter;
 import android.widget.Toast;
 
-import com.android.inputmethod.compat.InputMethodSubtypeCompatUtils;
-import com.android.inputmethod.compat.ViewCompatUtils;
 import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.RichInputMethodManager;
 import com.android.inputmethod.latin.utils.AdditionalSubtypeUtils;
@@ -56,13 +46,18 @@
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
 import java.util.ArrayList;
-import java.util.TreeSet;
 
-public final class CustomInputStyleSettingsFragment extends PreferenceFragment {
+public final class CustomInputStyleSettingsFragment extends PreferenceFragment
+        implements CustomInputStylePreference.Listener {
+    private static final String TAG = CustomInputStyleSettingsFragment.class.getSimpleName();
+    // Note: We would like to turn this debug flag true in order to see what input styles are
+    // defined in a bug-report.
+    private static final boolean DEBUG_CUSTOM_INPUT_STYLES = true;
+
     private RichInputMethodManager mRichImm;
     private SharedPreferences mPrefs;
-    private SubtypeLocaleAdapter mSubtypeLocaleAdapter;
-    private KeyboardLayoutSetAdapter mKeyboardLayoutSetAdapter;
+    private CustomInputStylePreference.SubtypeLocaleAdapter mSubtypeLocaleAdapter;
+    private CustomInputStylePreference.KeyboardLayoutSetAdapter mKeyboardLayoutSetAdapter;
 
     private boolean mIsAddingNewSubtype;
     private AlertDialog mSubtypeEnablerNotificationDialog;
@@ -73,326 +68,6 @@
             "is_subtype_enabler_notification_dialog_open";
     private static final String KEY_SUBTYPE_FOR_SUBTYPE_ENABLER = "subtype_for_subtype_enabler";
 
-    static final class SubtypeLocaleItem extends Pair<String, String>
-            implements Comparable<SubtypeLocaleItem> {
-        public SubtypeLocaleItem(final String localeString, final String displayName) {
-            super(localeString, displayName);
-        }
-
-        public SubtypeLocaleItem(final String localeString) {
-            this(localeString,
-                    SubtypeLocaleUtils.getSubtypeLocaleDisplayNameInSystemLocale(localeString));
-        }
-
-        @Override
-        public String toString() {
-            return second;
-        }
-
-        @Override
-        public int compareTo(final SubtypeLocaleItem o) {
-            return first.compareTo(o.first);
-        }
-    }
-
-    static final class SubtypeLocaleAdapter extends ArrayAdapter<SubtypeLocaleItem> {
-        private static final String TAG = SubtypeLocaleAdapter.class.getSimpleName();
-        private static final boolean DEBUG_SUBTYPE_ID = false;
-
-        public SubtypeLocaleAdapter(final Context context) {
-            super(context, android.R.layout.simple_spinner_item);
-            setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
-
-            final TreeSet<SubtypeLocaleItem> items = new TreeSet<>();
-            final InputMethodInfo imi = RichInputMethodManager.getInstance()
-                    .getInputMethodInfoOfThisIme();
-            final int count = imi.getSubtypeCount();
-            for (int i = 0; i < count; i++) {
-                final InputMethodSubtype subtype = imi.getSubtypeAt(i);
-                if (DEBUG_SUBTYPE_ID) {
-                    android.util.Log.d(TAG, String.format("%-6s 0x%08x %11d %s",
-                            subtype.getLocale(), subtype.hashCode(), subtype.hashCode(),
-                            SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(subtype)));
-                }
-                if (InputMethodSubtypeCompatUtils.isAsciiCapable(subtype)) {
-                    items.add(createItem(context, subtype.getLocale()));
-                }
-            }
-            // TODO: Should filter out already existing combinations of locale and layout.
-            addAll(items);
-        }
-
-        public static SubtypeLocaleItem createItem(final Context context,
-                final String localeString) {
-            if (localeString.equals(SubtypeLocaleUtils.NO_LANGUAGE)) {
-                final String displayName = context.getString(R.string.subtype_no_language);
-                return new SubtypeLocaleItem(localeString, displayName);
-            }
-            return new SubtypeLocaleItem(localeString);
-        }
-    }
-
-    static final class KeyboardLayoutSetItem extends Pair<String, String> {
-        public KeyboardLayoutSetItem(final InputMethodSubtype subtype) {
-            super(SubtypeLocaleUtils.getKeyboardLayoutSetName(subtype),
-                    SubtypeLocaleUtils.getKeyboardLayoutSetDisplayName(subtype));
-        }
-
-        @Override
-        public String toString() {
-            return second;
-        }
-    }
-
-    static final class KeyboardLayoutSetAdapter extends ArrayAdapter<KeyboardLayoutSetItem> {
-        public KeyboardLayoutSetAdapter(final Context context) {
-            super(context, android.R.layout.simple_spinner_item);
-            setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
-
-            // TODO: Should filter out already existing combinations of locale and layout.
-            for (final String layout : SubtypeLocaleUtils.getPredefinedKeyboardLayoutSet()) {
-                // This is a dummy subtype with NO_LANGUAGE, only for display.
-                final InputMethodSubtype subtype =
-                        AdditionalSubtypeUtils.createDummyAdditionalSubtype(
-                                SubtypeLocaleUtils.NO_LANGUAGE, layout);
-                add(new KeyboardLayoutSetItem(subtype));
-            }
-        }
-    }
-
-    private interface SubtypeDialogProxy {
-        public void onRemovePressed(SubtypePreference subtypePref);
-        public void onSavePressed(SubtypePreference subtypePref);
-        public void onAddPressed(SubtypePreference subtypePref);
-        public SubtypeLocaleAdapter getSubtypeLocaleAdapter();
-        public KeyboardLayoutSetAdapter getKeyboardLayoutSetAdapter();
-    }
-
-    static final class SubtypePreference extends DialogPreference
-            implements DialogInterface.OnCancelListener {
-        private static final String KEY_PREFIX = "subtype_pref_";
-        private static final String KEY_NEW_SUBTYPE = KEY_PREFIX + "new";
-
-        private InputMethodSubtype mSubtype;
-        private InputMethodSubtype mPreviousSubtype;
-
-        private final SubtypeDialogProxy mProxy;
-        private Spinner mSubtypeLocaleSpinner;
-        private Spinner mKeyboardLayoutSetSpinner;
-
-        public static SubtypePreference newIncompleteSubtypePreference(final Context context,
-                final SubtypeDialogProxy proxy) {
-            return new SubtypePreference(context, null, proxy);
-        }
-
-        public SubtypePreference(final Context context, final InputMethodSubtype subtype,
-                final SubtypeDialogProxy proxy) {
-            super(context, null);
-            setDialogLayoutResource(R.layout.additional_subtype_dialog);
-            setPersistent(false);
-            mProxy = proxy;
-            setSubtype(subtype);
-        }
-
-        public void show() {
-            showDialog(null);
-        }
-
-        public final boolean isIncomplete() {
-            return mSubtype == null;
-        }
-
-        public InputMethodSubtype getSubtype() {
-            return mSubtype;
-        }
-
-        public void setSubtype(final InputMethodSubtype subtype) {
-            mPreviousSubtype = mSubtype;
-            mSubtype = subtype;
-            if (isIncomplete()) {
-                setTitle(null);
-                setDialogTitle(R.string.add_style);
-                setKey(KEY_NEW_SUBTYPE);
-            } else {
-                final String displayName =
-                        SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(subtype);
-                setTitle(displayName);
-                setDialogTitle(displayName);
-                setKey(KEY_PREFIX + subtype.getLocale() + "_"
-                        + SubtypeLocaleUtils.getKeyboardLayoutSetName(subtype));
-            }
-        }
-
-        public void revert() {
-            setSubtype(mPreviousSubtype);
-        }
-
-        public boolean hasBeenModified() {
-            return mSubtype != null && !mSubtype.equals(mPreviousSubtype);
-        }
-
-        @Override
-        protected View onCreateDialogView() {
-            final View v = super.onCreateDialogView();
-            mSubtypeLocaleSpinner = (Spinner) v.findViewById(R.id.subtype_locale_spinner);
-            mSubtypeLocaleSpinner.setAdapter(mProxy.getSubtypeLocaleAdapter());
-            mKeyboardLayoutSetSpinner = (Spinner) v.findViewById(R.id.keyboard_layout_set_spinner);
-            mKeyboardLayoutSetSpinner.setAdapter(mProxy.getKeyboardLayoutSetAdapter());
-            // All keyboard layout names are in the Latin script and thus left to right. That means
-            // the view would align them to the left even if the system locale is RTL, but that
-            // would look strange. To fix this, we align them to the view's start, which will be
-            // natural for any direction.
-            ViewCompatUtils.setTextAlignment(
-                    mKeyboardLayoutSetSpinner, ViewCompatUtils.TEXT_ALIGNMENT_VIEW_START);
-            return v;
-        }
-
-        @Override
-        protected void onPrepareDialogBuilder(final AlertDialog.Builder builder) {
-            final Context context = builder.getContext();
-            builder.setCancelable(true).setOnCancelListener(this);
-            if (isIncomplete()) {
-                builder.setPositiveButton(R.string.add, this)
-                        .setNegativeButton(android.R.string.cancel, this);
-            } else {
-                builder.setPositiveButton(R.string.save, this)
-                        .setNeutralButton(android.R.string.cancel, this)
-                        .setNegativeButton(R.string.remove, this);
-                final SubtypeLocaleItem localeItem = SubtypeLocaleAdapter.createItem(
-                        context, mSubtype.getLocale());
-                final KeyboardLayoutSetItem layoutItem = new KeyboardLayoutSetItem(mSubtype);
-                setSpinnerPosition(mSubtypeLocaleSpinner, localeItem);
-                setSpinnerPosition(mKeyboardLayoutSetSpinner, layoutItem);
-            }
-        }
-
-        private static void setSpinnerPosition(final Spinner spinner, final Object itemToSelect) {
-            final SpinnerAdapter adapter = spinner.getAdapter();
-            final int count = adapter.getCount();
-            for (int i = 0; i < count; i++) {
-                final Object item = spinner.getItemAtPosition(i);
-                if (item.equals(itemToSelect)) {
-                    spinner.setSelection(i);
-                    return;
-                }
-            }
-        }
-
-        @Override
-        public void onCancel(final DialogInterface dialog) {
-            if (isIncomplete()) {
-                mProxy.onRemovePressed(this);
-            }
-        }
-
-        @Override
-        public void onClick(final DialogInterface dialog, final int which) {
-            super.onClick(dialog, which);
-            switch (which) {
-            case DialogInterface.BUTTON_POSITIVE:
-                final boolean isEditing = !isIncomplete();
-                final SubtypeLocaleItem locale =
-                        (SubtypeLocaleItem) mSubtypeLocaleSpinner.getSelectedItem();
-                final KeyboardLayoutSetItem layout =
-                        (KeyboardLayoutSetItem) mKeyboardLayoutSetSpinner.getSelectedItem();
-                final InputMethodSubtype subtype =
-                        AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
-                                locale.first, layout.first);
-                setSubtype(subtype);
-                notifyChanged();
-                if (isEditing) {
-                    mProxy.onSavePressed(this);
-                } else {
-                    mProxy.onAddPressed(this);
-                }
-                break;
-            case DialogInterface.BUTTON_NEUTRAL:
-                // Nothing to do
-                break;
-            case DialogInterface.BUTTON_NEGATIVE:
-                mProxy.onRemovePressed(this);
-                break;
-            }
-        }
-
-        private static int getSpinnerPosition(final Spinner spinner) {
-            if (spinner == null) return -1;
-            return spinner.getSelectedItemPosition();
-        }
-
-        private static void setSpinnerPosition(final Spinner spinner, final int position) {
-            if (spinner == null || position < 0) return;
-            spinner.setSelection(position);
-        }
-
-        @Override
-        protected Parcelable onSaveInstanceState() {
-            final Parcelable superState = super.onSaveInstanceState();
-            final Dialog dialog = getDialog();
-            if (dialog == null || !dialog.isShowing()) {
-                return superState;
-            }
-
-            final SavedState myState = new SavedState(superState);
-            myState.mSubtype = mSubtype;
-            myState.mSubtypeLocaleSelectedPos = getSpinnerPosition(mSubtypeLocaleSpinner);
-            myState.mKeyboardLayoutSetSelectedPos = getSpinnerPosition(mKeyboardLayoutSetSpinner);
-            return myState;
-        }
-
-        @Override
-        protected void onRestoreInstanceState(final Parcelable state) {
-            if (!(state instanceof SavedState)) {
-                super.onRestoreInstanceState(state);
-                return;
-            }
-
-            final SavedState myState = (SavedState) state;
-            super.onRestoreInstanceState(myState.getSuperState());
-            setSpinnerPosition(mSubtypeLocaleSpinner, myState.mSubtypeLocaleSelectedPos);
-            setSpinnerPosition(mKeyboardLayoutSetSpinner, myState.mKeyboardLayoutSetSelectedPos);
-            setSubtype(myState.mSubtype);
-        }
-
-        static final class SavedState extends Preference.BaseSavedState {
-            InputMethodSubtype mSubtype;
-            int mSubtypeLocaleSelectedPos;
-            int mKeyboardLayoutSetSelectedPos;
-
-            public SavedState(final Parcelable superState) {
-                super(superState);
-            }
-
-            @Override
-            public void writeToParcel(final Parcel dest, final int flags) {
-                super.writeToParcel(dest, flags);
-                dest.writeInt(mSubtypeLocaleSelectedPos);
-                dest.writeInt(mKeyboardLayoutSetSelectedPos);
-                dest.writeParcelable(mSubtype, 0);
-            }
-
-            public SavedState(final Parcel source) {
-                super(source);
-                mSubtypeLocaleSelectedPos = source.readInt();
-                mKeyboardLayoutSetSelectedPos = source.readInt();
-                mSubtype = (InputMethodSubtype)source.readParcelable(null);
-            }
-
-            public static final Parcelable.Creator<SavedState> CREATOR =
-                    new Parcelable.Creator<SavedState>() {
-                        @Override
-                        public SavedState createFromParcel(final Parcel source) {
-                            return new SavedState(source);
-                        }
-
-                        @Override
-                        public SavedState[] newArray(final int size) {
-                            return new SavedState[size];
-                        }
-                    };
-        }
-    }
-
     public CustomInputStyleSettingsFragment() {
         // Empty constructor for fragment generation.
     }
@@ -440,18 +115,22 @@
     @Override
     public void onActivityCreated(final Bundle savedInstanceState) {
         final Context context = getActivity();
-        mSubtypeLocaleAdapter = new SubtypeLocaleAdapter(context);
-        mKeyboardLayoutSetAdapter = new KeyboardLayoutSetAdapter(context);
+        mSubtypeLocaleAdapter = new CustomInputStylePreference.SubtypeLocaleAdapter(context);
+        mKeyboardLayoutSetAdapter =
+                new CustomInputStylePreference.KeyboardLayoutSetAdapter(context);
 
         final String prefSubtypes =
                 Settings.readPrefAdditionalSubtypes(mPrefs, getResources());
+        if (DEBUG_CUSTOM_INPUT_STYLES) {
+            Log.i(TAG, "Load custom input styles: " + prefSubtypes);
+        }
         setPrefSubtypes(prefSubtypes, context);
 
         mIsAddingNewSubtype = (savedInstanceState != null)
                 && savedInstanceState.containsKey(KEY_IS_ADDING_NEW_SUBTYPE);
         if (mIsAddingNewSubtype) {
             getPreferenceScreen().addPreference(
-                    SubtypePreference.newIncompleteSubtypePreference(context, mSubtypeProxy));
+                    CustomInputStylePreference.newIncompleteSubtypePreference(context, this));
         }
 
         super.onActivityCreated(savedInstanceState);
@@ -460,8 +139,6 @@
                 KEY_IS_SUBTYPE_ENABLER_NOTIFICATION_DIALOG_OPEN)) {
             mSubtypePreferenceKeyForSubtypeEnabler = savedInstanceState.getString(
                     KEY_SUBTYPE_FOR_SUBTYPE_ENABLER);
-            final SubtypePreference subtypePref = (SubtypePreference)findPreference(
-                    mSubtypePreferenceKeyForSubtypeEnabler);
             mSubtypeEnablerNotificationDialog = createDialog();
             mSubtypeEnablerNotificationDialog.show();
         }
@@ -481,62 +158,60 @@
         }
     }
 
-    private final SubtypeDialogProxy mSubtypeProxy = new SubtypeDialogProxy() {
-        @Override
-        public void onRemovePressed(final SubtypePreference subtypePref) {
-            mIsAddingNewSubtype = false;
-            final PreferenceGroup group = getPreferenceScreen();
-            group.removePreference(subtypePref);
+    @Override
+    public void onRemoveCustomInputStyle(final CustomInputStylePreference stylePref) {
+        mIsAddingNewSubtype = false;
+        final PreferenceGroup group = getPreferenceScreen();
+        group.removePreference(stylePref);
+        mRichImm.setAdditionalInputMethodSubtypes(getSubtypes());
+    }
+
+    @Override
+    public void onSaveCustomInputStyle(final CustomInputStylePreference stylePref) {
+        final InputMethodSubtype subtype = stylePref.getSubtype();
+        if (!stylePref.hasBeenModified()) {
+            return;
+        }
+        if (findDuplicatedSubtype(subtype) == null) {
             mRichImm.setAdditionalInputMethodSubtypes(getSubtypes());
+            return;
         }
 
-        @Override
-        public void onSavePressed(final SubtypePreference subtypePref) {
-            final InputMethodSubtype subtype = subtypePref.getSubtype();
-            if (!subtypePref.hasBeenModified()) {
-                return;
-            }
-            if (findDuplicatedSubtype(subtype) == null) {
-                mRichImm.setAdditionalInputMethodSubtypes(getSubtypes());
-                return;
-            }
+        // Saved subtype is duplicated.
+        final PreferenceGroup group = getPreferenceScreen();
+        group.removePreference(stylePref);
+        stylePref.revert();
+        group.addPreference(stylePref);
+        showSubtypeAlreadyExistsToast(subtype);
+    }
 
-            // Saved subtype is duplicated.
-            final PreferenceGroup group = getPreferenceScreen();
-            group.removePreference(subtypePref);
-            subtypePref.revert();
-            group.addPreference(subtypePref);
-            showSubtypeAlreadyExistsToast(subtype);
+    @Override
+    public void onAddCustomInputStyle(final CustomInputStylePreference stylePref) {
+        mIsAddingNewSubtype = false;
+        final InputMethodSubtype subtype = stylePref.getSubtype();
+        if (findDuplicatedSubtype(subtype) == null) {
+            mRichImm.setAdditionalInputMethodSubtypes(getSubtypes());
+            mSubtypePreferenceKeyForSubtypeEnabler = stylePref.getKey();
+            mSubtypeEnablerNotificationDialog = createDialog();
+            mSubtypeEnablerNotificationDialog.show();
+            return;
         }
 
-        @Override
-        public void onAddPressed(final SubtypePreference subtypePref) {
-            mIsAddingNewSubtype = false;
-            final InputMethodSubtype subtype = subtypePref.getSubtype();
-            if (findDuplicatedSubtype(subtype) == null) {
-                mRichImm.setAdditionalInputMethodSubtypes(getSubtypes());
-                mSubtypePreferenceKeyForSubtypeEnabler = subtypePref.getKey();
-                mSubtypeEnablerNotificationDialog = createDialog();
-                mSubtypeEnablerNotificationDialog.show();
-                return;
-            }
+        // Newly added subtype is duplicated.
+        final PreferenceGroup group = getPreferenceScreen();
+        group.removePreference(stylePref);
+        showSubtypeAlreadyExistsToast(subtype);
+    }
 
-            // Newly added subtype is duplicated.
-            final PreferenceGroup group = getPreferenceScreen();
-            group.removePreference(subtypePref);
-            showSubtypeAlreadyExistsToast(subtype);
-        }
+    @Override
+    public CustomInputStylePreference.SubtypeLocaleAdapter getSubtypeLocaleAdapter() {
+        return mSubtypeLocaleAdapter;
+    }
 
-        @Override
-        public SubtypeLocaleAdapter getSubtypeLocaleAdapter() {
-            return mSubtypeLocaleAdapter;
-        }
-
-        @Override
-        public KeyboardLayoutSetAdapter getKeyboardLayoutSetAdapter() {
-            return mKeyboardLayoutSetAdapter;
-        }
-    };
+    @Override
+    public CustomInputStylePreference.KeyboardLayoutSetAdapter getKeyboardLayoutSetAdapter() {
+        return mKeyboardLayoutSetAdapter;
+    }
 
     private void showSubtypeAlreadyExistsToast(final InputMethodSubtype subtype) {
         final Context context = getActivity();
@@ -554,6 +229,7 @@
     }
 
     private AlertDialog createDialog() {
+        final String imeId = mRichImm.getInputMethodIdOfThisIme();
         final AlertDialog.Builder builder = new AlertDialog.Builder(
                 DialogUtils.getPlatformDialogThemeContext(getActivity()));
         builder.setTitle(R.string.custom_input_styles_title)
@@ -563,7 +239,7 @@
                     @Override
                     public void onClick(DialogInterface dialog, int which) {
                         final Intent intent = IntentUtils.getInputLanguageSelectionIntent(
-                                mRichImm.getInputMethodIdOfThisIme(),
+                                imeId,
                                 Intent.FLAG_ACTIVITY_NEW_TASK
                                 | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
                                 | Intent.FLAG_ACTIVITY_CLEAR_TOP);
@@ -583,8 +259,8 @@
         final InputMethodSubtype[] subtypesArray =
                 AdditionalSubtypeUtils.createAdditionalSubtypesArray(prefSubtypes);
         for (final InputMethodSubtype subtype : subtypesArray) {
-            final SubtypePreference pref = new SubtypePreference(
-                    context, subtype, mSubtypeProxy);
+            final CustomInputStylePreference pref =
+                    new CustomInputStylePreference(context, subtype, this);
             group.addPreference(pref);
         }
     }
@@ -595,8 +271,8 @@
         final int count = group.getPreferenceCount();
         for (int i = 0; i < count; i++) {
             final Preference pref = group.getPreference(i);
-            if (pref instanceof SubtypePreference) {
-                final SubtypePreference subtypePref = (SubtypePreference)pref;
+            if (pref instanceof CustomInputStylePreference) {
+                final CustomInputStylePreference subtypePref = (CustomInputStylePreference)pref;
                 // We should not save newly adding subtype to preference because it is incomplete.
                 if (subtypePref.isIncomplete()) continue;
                 subtypes.add(subtypePref.getSubtype());
@@ -611,6 +287,9 @@
         final String oldSubtypes = Settings.readPrefAdditionalSubtypes(mPrefs, getResources());
         final InputMethodSubtype[] subtypes = getSubtypes();
         final String prefSubtypes = AdditionalSubtypeUtils.createPrefSubtypes(subtypes);
+        if (DEBUG_CUSTOM_INPUT_STYLES) {
+            Log.i(TAG, "Save custom input styles: " + prefSubtypes);
+        }
         if (prefSubtypes.equals(oldSubtypes)) {
             return;
         }
@@ -627,8 +306,8 @@
     public boolean onOptionsItemSelected(final MenuItem item) {
         final int itemId = item.getItemId();
         if (itemId == R.id.action_add_style) {
-            final SubtypePreference newSubtype =
-                    SubtypePreference.newIncompleteSubtypePreference(getActivity(), mSubtypeProxy);
+            final CustomInputStylePreference newSubtype =
+                    CustomInputStylePreference.newIncompleteSubtypePreference(getActivity(), this);
             getPreferenceScreen().addPreference(newSubtype);
             newSubtype.show();
             mIsAddingNewSubtype = true;
diff --git a/java/src/com/android/inputmethod/latin/settings/DebugSettings.java b/java/src/com/android/inputmethod/latin/settings/DebugSettings.java
index 48f4c75..6fffb8e 100644
--- a/java/src/com/android/inputmethod/latin/settings/DebugSettings.java
+++ b/java/src/com/android/inputmethod/latin/settings/DebugSettings.java
@@ -16,29 +16,36 @@
 
 package com.android.inputmethod.latin.settings;
 
+/**
+ * Debug settings for the application.
+ *
+ * Note: Even though these settings are stored in the default shared preferences file,
+ * they shouldn't be restored across devices.
+ * If a new key is added here, it should also be blacklisted for restore in
+ * {@link LocalSettingsConstants}.
+ */
 public final class DebugSettings {
     public static final String PREF_DEBUG_MODE = "debug_mode";
     public static final String PREF_FORCE_NON_DISTINCT_MULTITOUCH = "force_non_distinct_multitouch";
-    public static final String PREF_FORCE_PHYSICAL_KEYBOARD_SPECIAL_KEY =
-            "force_physical_keyboard_special_key";
-    public static final String PREF_SHOW_UI_TO_ACCEPT_TYPED_WORD =
-            "pref_show_ui_to_accept_typed_word";
     public static final String PREF_HAS_CUSTOM_KEY_PREVIEW_ANIMATION_PARAMS =
             "pref_has_custom_key_preview_animation_params";
-    public static final String PREF_KEY_PREVIEW_SHOW_UP_START_X_SCALE =
-            "pref_key_preview_show_up_start_x_scale";
-    public static final String PREF_KEY_PREVIEW_SHOW_UP_START_Y_SCALE =
-            "pref_key_preview_show_up_start_y_scale";
+    public static final String PREF_RESIZE_KEYBOARD = "pref_resize_keyboard";
+    public static final String PREF_KEYBOARD_HEIGHT_SCALE = "pref_keyboard_height_scale";
+    public static final String PREF_KEY_PREVIEW_DISMISS_DURATION =
+            "pref_key_preview_dismiss_duration";
     public static final String PREF_KEY_PREVIEW_DISMISS_END_X_SCALE =
             "pref_key_preview_dismiss_end_x_scale";
     public static final String PREF_KEY_PREVIEW_DISMISS_END_Y_SCALE =
             "pref_key_preview_dismiss_end_y_scale";
     public static final String PREF_KEY_PREVIEW_SHOW_UP_DURATION =
             "pref_key_preview_show_up_duration";
-    public static final String PREF_KEY_PREVIEW_DISMISS_DURATION =
-            "pref_key_preview_dismiss_duration";
+    public static final String PREF_KEY_PREVIEW_SHOW_UP_START_X_SCALE =
+            "pref_key_preview_show_up_start_x_scale";
+    public static final String PREF_KEY_PREVIEW_SHOW_UP_START_Y_SCALE =
+            "pref_key_preview_show_up_start_y_scale";
+    public static final String PREF_SHOULD_SHOW_LXX_SUGGESTION_UI =
+            "pref_should_show_lxx_suggestion_ui";
     public static final String PREF_SLIDING_KEY_INPUT_PREVIEW = "pref_sliding_key_input_preview";
-    public static final String PREF_KEY_LONGPRESS_TIMEOUT = "pref_key_longpress_timeout";
 
     private DebugSettings() {
         // This class is not publicly instantiable.
diff --git a/java/src/com/android/inputmethod/latin/settings/DebugSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/DebugSettingsFragment.java
index 5640e20..3785537 100644
--- a/java/src/com/android/inputmethod/latin/settings/DebugSettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/DebugSettingsFragment.java
@@ -28,9 +28,8 @@
 import android.preference.TwoStatePreference;
 
 import com.android.inputmethod.latin.DictionaryDumpBroadcastReceiver;
-import com.android.inputmethod.latin.DictionaryFacilitator;
+import com.android.inputmethod.latin.DictionaryFacilitatorImpl;
 import com.android.inputmethod.latin.R;
-import com.android.inputmethod.latin.debug.ExternalDictionaryGetterForDebug;
 import com.android.inputmethod.latin.utils.ApplicationUtils;
 import com.android.inputmethod.latin.utils.ResourceUtils;
 
@@ -43,12 +42,10 @@
  */
 public final class DebugSettingsFragment extends SubScreenFragment
         implements OnPreferenceClickListener {
-    private static final String PREF_READ_EXTERNAL_DICTIONARY = "read_external_dictionary";
     private static final String PREF_KEY_DUMP_DICTS = "pref_key_dump_dictionaries";
     private static final String PREF_KEY_DUMP_DICT_PREFIX = "pref_key_dump_dictionaries";
 
     private boolean mServiceNeedsRestart = false;
-    private Preference mReadExternalDictionaryPref;
     private TwoStatePreference mDebugMode;
 
     @Override
@@ -56,24 +53,18 @@
         super.onCreate(icicle);
         addPreferencesFromResource(R.xml.prefs_screen_debug);
 
-        if (!Settings.HAS_UI_TO_ACCEPT_TYPED_WORD) {
-            removePreference(DebugSettings.PREF_SHOW_UI_TO_ACCEPT_TYPED_WORD);
-        }
-
-        mReadExternalDictionaryPref = findPreference(PREF_READ_EXTERNAL_DICTIONARY);
-        if (mReadExternalDictionaryPref != null) {
-            mReadExternalDictionaryPref.setOnPreferenceClickListener(this);
+        if (!Settings.SHOULD_SHOW_LXX_SUGGESTION_UI) {
+            removePreference(DebugSettings.PREF_SHOULD_SHOW_LXX_SUGGESTION_UI);
         }
 
         final PreferenceGroup dictDumpPreferenceGroup =
                 (PreferenceGroup)findPreference(PREF_KEY_DUMP_DICTS);
-        for (final String dictName : DictionaryFacilitator.DICT_TYPE_TO_CLASS.keySet()) {
+        for (final String dictName : DictionaryFacilitatorImpl.DICT_TYPE_TO_CLASS.keySet()) {
             final Preference pref = new DictDumpPreference(getActivity(), dictName);
             pref.setOnPreferenceClickListener(this);
             dictDumpPreferenceGroup.addPreference(pref);
         }
         final Resources res = getResources();
-        setupKeyLongpressTimeoutSettings();
         setupKeyPreviewAnimationDuration(DebugSettings.PREF_KEY_PREVIEW_SHOW_UP_DURATION,
                 res.getInteger(R.integer.config_key_preview_show_up_duration));
         setupKeyPreviewAnimationDuration(DebugSettings.PREF_KEY_PREVIEW_DISMISS_DURATION,
@@ -90,6 +81,8 @@
                 defaultKeyPreviewDismissEndScale);
         setupKeyPreviewAnimationScale(DebugSettings.PREF_KEY_PREVIEW_DISMISS_END_Y_SCALE,
                 defaultKeyPreviewDismissEndScale);
+        setupKeyboardHeight(
+                DebugSettings.PREF_KEYBOARD_HEIGHT_SCALE, SettingsValues.DEFAULT_SIZE_SCALE);
 
         mServiceNeedsRestart = false;
         mDebugMode = (TwoStatePreference) findPreference(DebugSettings.PREF_DEBUG_MODE);
@@ -110,11 +103,6 @@
     @Override
     public boolean onPreferenceClick(final Preference pref) {
         final Context context = getActivity();
-        if (pref == mReadExternalDictionaryPref) {
-            ExternalDictionaryGetterForDebug.chooseAndInstallDictionary(context);
-            mServiceNeedsRestart = true;
-            return true;
-        }
         if (pref instanceof DictDumpPreference) {
             final DictDumpPreference dictDumpPref = (DictDumpPreference)pref;
             final String dictName = dictDumpPref.mDictName;
@@ -143,8 +131,7 @@
             mServiceNeedsRestart = true;
             return;
         }
-        if (key.equals(DebugSettings.PREF_FORCE_NON_DISTINCT_MULTITOUCH)
-                || key.equals(DebugSettings.PREF_FORCE_PHYSICAL_KEYBOARD_SPECIAL_KEY)) {
+        if (key.equals(DebugSettings.PREF_FORCE_NON_DISTINCT_MULTITOUCH)) {
             mServiceNeedsRestart = true;
             return;
         }
@@ -163,45 +150,6 @@
         }
     }
 
-    private void setupKeyLongpressTimeoutSettings() {
-        final SharedPreferences prefs = getSharedPreferences();
-        final Resources res = getResources();
-        final SeekBarDialogPreference pref = (SeekBarDialogPreference)findPreference(
-                DebugSettings.PREF_KEY_LONGPRESS_TIMEOUT);
-        if (pref == null) {
-            return;
-        }
-        pref.setInterface(new SeekBarDialogPreference.ValueProxy() {
-            @Override
-            public void writeValue(final int value, final String key) {
-                prefs.edit().putInt(key, value).apply();
-            }
-
-            @Override
-            public void writeDefaultValue(final String key) {
-                prefs.edit().remove(key).apply();
-            }
-
-            @Override
-            public int readValue(final String key) {
-                return Settings.readKeyLongpressTimeout(prefs, res);
-            }
-
-            @Override
-            public int readDefaultValue(final String key) {
-                return Settings.readDefaultKeyLongpressTimeout(res);
-            }
-
-            @Override
-            public String getValueText(final int value) {
-                return res.getString(R.string.abbreviation_unit_milliseconds, value);
-            }
-
-            @Override
-            public void feedbackValue(final int value) {}
-        });
-    }
-
     private void setupKeyPreviewAnimationScale(final String prefKey, final float defaultValue) {
         final SharedPreferences prefs = getSharedPreferences();
         final Resources res = getResources();
@@ -291,4 +239,50 @@
             public void feedbackValue(final int value) {}
         });
     }
+
+    private void setupKeyboardHeight(final String prefKey, final float defaultValue) {
+        final SharedPreferences prefs = getSharedPreferences();
+        final SeekBarDialogPreference pref = (SeekBarDialogPreference)findPreference(prefKey);
+        if (pref == null) {
+            return;
+        }
+        pref.setInterface(new SeekBarDialogPreference.ValueProxy() {
+            private static final float PERCENTAGE_FLOAT = 100.0f;
+            private float getValueFromPercentage(final int percentage) {
+                return percentage / PERCENTAGE_FLOAT;
+            }
+
+            private int getPercentageFromValue(final float floatValue) {
+                return (int)(floatValue * PERCENTAGE_FLOAT);
+            }
+
+            @Override
+            public void writeValue(final int value, final String key) {
+                prefs.edit().putFloat(key, getValueFromPercentage(value)).apply();
+            }
+
+            @Override
+            public void writeDefaultValue(final String key) {
+                prefs.edit().remove(key).apply();
+            }
+
+            @Override
+            public int readValue(final String key) {
+                return getPercentageFromValue(Settings.readKeyboardHeight(prefs, defaultValue));
+            }
+
+            @Override
+            public int readDefaultValue(final String key) {
+                return getPercentageFromValue(defaultValue);
+            }
+
+            @Override
+            public String getValueText(final int value) {
+                return String.format(Locale.ROOT, "%d%%", value);
+            }
+
+            @Override
+            public void feedbackValue(final int value) {}
+        });
+    }
 }
diff --git a/java/src/com/android/inputmethod/latin/settings/GestureSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/GestureSettingsFragment.java
index 832fbf6..22b0655 100644
--- a/java/src/com/android/inputmethod/latin/settings/GestureSettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/GestureSettingsFragment.java
@@ -16,7 +16,6 @@
 
 package com.android.inputmethod.latin.settings;
 
-import android.content.SharedPreferences;
 import android.os.Bundle;
 
 import com.android.inputmethod.latin.R;
diff --git a/java/src/com/android/inputmethod/latin/settings/LocalSettingsConstants.java b/java/src/com/android/inputmethod/latin/settings/LocalSettingsConstants.java
new file mode 100644
index 0000000..5c416ab
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/settings/LocalSettingsConstants.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.settings;
+
+/**
+ * Collection of device specific preference constants.
+ */
+public class LocalSettingsConstants {
+    // Preference file for storing preferences that are tied to a device
+    // and are not backed up.
+    public static final String PREFS_FILE = "local_prefs";
+
+    // Preference key for the current account.
+    // Do not restore.
+    public static final String PREF_ACCOUNT_NAME = "pref_account_name";
+    // Preference key for enabling cloud sync feature.
+    // Do not restore.
+    public static final String PREF_ENABLE_CLOUD_SYNC = "pref_enable_cloud_sync";
+
+    // List of preference keys to skip from being restored by backup agent.
+    // These preferences are tied to a device and hence should not be restored.
+    // e.g. account name.
+    // Ideally they could have been kept in a separate file that wasn't backed up
+    // however the preference UI currently only deals with the default
+    // shared preferences which makes it non-trivial to move these out to
+    // a different shared preferences file.
+    public static final String[] PREFS_TO_SKIP_RESTORING = new String[] {
+        PREF_ACCOUNT_NAME,
+        PREF_ENABLE_CLOUD_SYNC,
+        // The debug settings are not restored on a new device.
+        // If a feature relies on these, it should ensure that the defaults are
+        // correctly set for it to work on a new device.
+        DebugSettings.PREF_DEBUG_MODE,
+        DebugSettings.PREF_FORCE_NON_DISTINCT_MULTITOUCH,
+        DebugSettings.PREF_HAS_CUSTOM_KEY_PREVIEW_ANIMATION_PARAMS,
+        DebugSettings.PREF_KEYBOARD_HEIGHT_SCALE,
+        DebugSettings.PREF_KEY_PREVIEW_DISMISS_DURATION,
+        DebugSettings.PREF_KEY_PREVIEW_DISMISS_END_X_SCALE,
+        DebugSettings.PREF_KEY_PREVIEW_DISMISS_END_Y_SCALE,
+        DebugSettings.PREF_KEY_PREVIEW_SHOW_UP_DURATION,
+        DebugSettings.PREF_KEY_PREVIEW_SHOW_UP_START_X_SCALE,
+        DebugSettings.PREF_KEY_PREVIEW_SHOW_UP_START_Y_SCALE,
+        DebugSettings.PREF_RESIZE_KEYBOARD,
+        DebugSettings.PREF_SHOULD_SHOW_LXX_SUGGESTION_UI,
+        DebugSettings.PREF_SLIDING_KEY_INPUT_PREVIEW
+    };
+}
diff --git a/java/src/com/android/inputmethod/latin/settings/MultiLingualSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/MultiLingualSettingsFragment.java
deleted file mode 100644
index b073c50..0000000
--- a/java/src/com/android/inputmethod/latin/settings/MultiLingualSettingsFragment.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.settings;
-
-import android.os.Bundle;
-
-import com.android.inputmethod.latin.R;
-
-import java.util.ArrayList;
-
-/**
- * "Multilingual options" settings sub screen.
- *
- * This settings sub screen handles the following input preferences.
- * - Language switch key
- * - Switch to other input methods
- */
-public final class MultiLingualSettingsFragment extends SubScreenFragment {
-    @Override
-    public void onCreate(final Bundle icicle) {
-        super.onCreate(icicle);
-        addPreferencesFromResource(R.xml.prefs_screen_multilingual);
-        if (!Settings.ENABLE_SHOW_LANGUAGE_SWITCH_KEY_SETTINGS) {
-            removePreference(Settings.PREF_SHOW_LANGUAGE_SWITCH_KEY);
-            removePreference(Settings.PREF_INCLUDE_OTHER_IMES_IN_LANGUAGE_SWITCH_LIST);
-        }
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/settings/NativeSuggestOptions.java b/java/src/com/android/inputmethod/latin/settings/NativeSuggestOptions.java
deleted file mode 100644
index 31a20c4..0000000
--- a/java/src/com/android/inputmethod/latin/settings/NativeSuggestOptions.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.settings;
-
-public class NativeSuggestOptions {
-    // Need to update suggest_options.h when you add, remove or reorder options.
-    private static final int IS_GESTURE = 0;
-    private static final int USE_FULL_EDIT_DISTANCE = 1;
-    private static final int BLOCK_OFFENSIVE_WORDS = 2;
-    private static final int SPACE_AWARE_GESTURE_ENABLED = 3;
-    private static final int OPTIONS_SIZE = 4;
-
-    private final int[] mOptions = new int[OPTIONS_SIZE
-            + AdditionalFeaturesSettingUtils.ADDITIONAL_FEATURES_SETTINGS_SIZE];
-
-    public void setIsGesture(final boolean value) {
-        setBooleanOption(IS_GESTURE, value);
-    }
-
-    public void setUseFullEditDistance(final boolean value) {
-        setBooleanOption(USE_FULL_EDIT_DISTANCE, value);
-    }
-
-    public void setBlockOffensiveWords(final boolean value) {
-        setBooleanOption(BLOCK_OFFENSIVE_WORDS, value);
-    }
-
-    public void setSpaceAwareGestureEnabled(final boolean value) {
-        setBooleanOption(SPACE_AWARE_GESTURE_ENABLED, value);
-    }
-
-    public void setAdditionalFeaturesOptions(final int[] additionalOptions) {
-        if (additionalOptions == null) {
-            return;
-        }
-        for (int i = 0; i < additionalOptions.length; i++) {
-            setIntegerOption(OPTIONS_SIZE + i, additionalOptions[i]);
-        }
-    }
-
-    public int[] getOptions() {
-        return mOptions;
-    }
-
-    private void setBooleanOption(final int key, final boolean value) {
-        mOptions[key] = value ? 1 : 0;
-    }
-
-    private void setIntegerOption(final int key, final int value) {
-        mOptions[key] = value;
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/settings/PreferencesSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/PreferencesSettingsFragment.java
index 49db2bd..d9858e6 100644
--- a/java/src/com/android/inputmethod/latin/settings/PreferencesSettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/PreferencesSettingsFragment.java
@@ -19,12 +19,13 @@
 import android.content.Context;
 import android.content.SharedPreferences;
 import android.content.res.Resources;
+import android.os.Build;
 import android.os.Bundle;
 import android.preference.Preference;
 
 import com.android.inputmethod.latin.AudioAndHapticFeedbackManager;
 import com.android.inputmethod.latin.R;
-import com.android.inputmethod.latin.SubtypeSwitcher;
+import com.android.inputmethod.latin.RichInputMethodManager;
 
 /**
  * "Preferences" settings sub screen.
@@ -38,6 +39,10 @@
  * - Voice input key
  */
 public final class PreferencesSettingsFragment extends SubScreenFragment {
+
+    private static final boolean VOICE_IME_ENABLED =
+            Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN;
+
     @Override
     public void onCreate(final Bundle icicle) {
         super.onCreate(icicle);
@@ -49,7 +54,7 @@
         // When we are called from the Settings application but we are not already running, some
         // singleton and utility classes may not have been initialized.  We have to call
         // initialization method of these classes here. See {@link LatinIME#onCreate()}.
-        SubtypeSwitcher.init(context);
+        RichInputMethodManager.init(context);
 
         final boolean showVoiceKeyOption = res.getBoolean(
                 R.bool.config_enable_show_voice_key_option);
@@ -71,11 +76,10 @@
         super.onResume();
         final Preference voiceInputKeyOption = findPreference(Settings.PREF_VOICE_INPUT_KEY);
         if (voiceInputKeyOption != null) {
-            final boolean isShortcutImeEnabled = SubtypeSwitcher.getInstance()
-                    .isShortcutImeEnabled();
-            voiceInputKeyOption.setEnabled(isShortcutImeEnabled);
-            voiceInputKeyOption.setSummary(
-                    isShortcutImeEnabled ? null : getText(R.string.voice_input_disabled_summary));
+            RichInputMethodManager.getInstance().refreshSubtypeCaches();
+            voiceInputKeyOption.setEnabled(VOICE_IME_ENABLED);
+            voiceInputKeyOption.setSummary(VOICE_IME_ENABLED
+                    ? null : getText(R.string.voice_input_disabled_summary));
         }
     }
 
diff --git a/java/src/com/android/inputmethod/latin/settings/RadioButtonPreference.java b/java/src/com/android/inputmethod/latin/settings/RadioButtonPreference.java
index c173d47..9144460 100644
--- a/java/src/com/android/inputmethod/latin/settings/RadioButtonPreference.java
+++ b/java/src/com/android/inputmethod/latin/settings/RadioButtonPreference.java
@@ -43,9 +43,7 @@
     private final View.OnClickListener mClickListener = new View.OnClickListener() {
         @Override
         public void onClick(final View v) {
-            if (mListener != null) {
-                mListener.onRadioButtonClicked(RadioButtonPreference.this);
-            }
+            callListenerOnRadioButtonClicked();
         }
     };
 
@@ -67,6 +65,12 @@
         mListener = listener;
     }
 
+    void callListenerOnRadioButtonClicked() {
+        if (mListener != null) {
+            mListener.onRadioButtonClicked(this);
+        }
+    }
+
     @Override
     protected void onBindView(final View view) {
         super.onBindView(view);
diff --git a/java/src/com/android/inputmethod/latin/settings/Settings.java b/java/src/com/android/inputmethod/latin/settings/Settings.java
index 0de2d88..715f7bb 100644
--- a/java/src/com/android/inputmethod/latin/settings/Settings.java
+++ b/java/src/com/android/inputmethod/latin/settings/Settings.java
@@ -18,7 +18,6 @@
 
 import android.content.Context;
 import android.content.SharedPreferences;
-import android.content.pm.ApplicationInfo;
 import android.content.res.Configuration;
 import android.content.res.Resources;
 import android.os.Build;
@@ -29,26 +28,24 @@
 import com.android.inputmethod.latin.AudioAndHapticFeedbackManager;
 import com.android.inputmethod.latin.InputAttributes;
 import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.common.StringUtils;
 import com.android.inputmethod.latin.utils.AdditionalSubtypeUtils;
 import com.android.inputmethod.latin.utils.ResourceUtils;
 import com.android.inputmethod.latin.utils.RunInLocale;
-import com.android.inputmethod.latin.utils.StringUtils;
+import com.android.inputmethod.latin.utils.StatsUtils;
 
 import java.util.Collections;
 import java.util.Locale;
 import java.util.Set;
 import java.util.concurrent.locks.ReentrantLock;
 
+import javax.annotation.Nonnull;
+
 public final class Settings implements SharedPreferences.OnSharedPreferenceChangeListener {
     private static final String TAG = Settings.class.getSimpleName();
     // Settings screens
-    public static final String SCREEN_PREFERENCES = "screen_preferences";
-    public static final String SCREEN_APPEARANCE = "screen_appearance";
+    public static final String SCREEN_ACCOUNTS = "screen_accounts";
     public static final String SCREEN_THEME = "screen_theme";
-    public static final String SCREEN_MULTILINGUAL = "screen_multilingual";
-    public static final String SCREEN_GESTURE = "screen_gesture";
-    public static final String SCREEN_CORRECTION = "screen_correction";
-    public static final String SCREEN_ADVANCED = "screen_advanced";
     public static final String SCREEN_DEBUG = "screen_debug";
     // In the same order as xml/prefs.xml
     public static final String PREF_AUTO_CAP = "auto_cap";
@@ -60,7 +57,10 @@
     public static final String PREF_VOICE_INPUT_KEY = "pref_voice_input_key";
     public static final String PREF_EDIT_PERSONAL_DICTIONARY = "edit_personal_dictionary";
     public static final String PREF_CONFIGURE_DICTIONARIES_KEY = "configure_dictionaries_key";
-    public static final String PREF_AUTO_CORRECTION_THRESHOLD = "auto_correction_threshold";
+    // PREF_AUTO_CORRECTION_THRESHOLD_OBSOLETE is obsolete. Use PREF_AUTO_CORRECTION instead.
+    public static final String PREF_AUTO_CORRECTION_THRESHOLD_OBSOLETE =
+            "auto_correction_threshold";
+    public static final String PREF_AUTO_CORRECTION = "pref_key_auto_correction";
     // PREF_SHOW_SUGGESTIONS_SETTING_OBSOLETE is obsolete. Use PREF_SHOW_SUGGESTIONS instead.
     public static final String PREF_SHOW_SUGGESTIONS_SETTING_OBSOLETE = "show_suggestions_setting";
     public static final String PREF_SHOW_SUGGESTIONS = "show_suggestions";
@@ -70,19 +70,16 @@
             "pref_key_use_double_space_period";
     public static final String PREF_BLOCK_POTENTIALLY_OFFENSIVE =
             "pref_key_block_potentially_offensive";
-    // No multilingual options in Android L and above for now.
-    public static final boolean SHOW_MULTILINGUAL_SETTINGS =
-            BuildCompatUtils.EFFECTIVE_SDK_INT <= Build.VERSION_CODES.KITKAT;
     public static final boolean ENABLE_SHOW_LANGUAGE_SWITCH_KEY_SETTINGS =
             BuildCompatUtils.EFFECTIVE_SDK_INT <= Build.VERSION_CODES.KITKAT;
-    public static final boolean HAS_UI_TO_ACCEPT_TYPED_WORD =
-            BuildCompatUtils.EFFECTIVE_SDK_INT >= BuildCompatUtils.VERSION_CODES_LXX;
+    public static final boolean SHOULD_SHOW_LXX_SUGGESTION_UI =
+            BuildCompatUtils.EFFECTIVE_SDK_INT >= Build.VERSION_CODES.LOLLIPOP;
     public static final String PREF_SHOW_LANGUAGE_SWITCH_KEY =
             "pref_show_language_switch_key";
     public static final String PREF_INCLUDE_OTHER_IMES_IN_LANGUAGE_SWITCH_LIST =
             "pref_include_other_imes_in_language_switch_list";
-    public static final String PREF_KEYBOARD_THEME = "pref_keyboard_theme";
     public static final String PREF_CUSTOM_INPUT_STYLES = "custom_input_styles";
+    public static final String PREF_ENABLE_SPLIT_KEYBOARD = "pref_split_keyboard";
     // TODO: consolidate key preview dismiss delay with the key preview animation parameters.
     public static final String PREF_KEY_PREVIEW_POPUP_DISMISS_DELAY =
             "pref_key_preview_popup_dismiss_delay";
@@ -90,20 +87,17 @@
     public static final String PREF_GESTURE_INPUT = "gesture_input";
     public static final String PREF_VIBRATION_DURATION_SETTINGS =
             "pref_vibration_duration_settings";
-    public static final String PREF_KEYPRESS_SOUND_VOLUME =
-            "pref_keypress_sound_volume";
+    public static final String PREF_KEYPRESS_SOUND_VOLUME = "pref_keypress_sound_volume";
+    public static final String PREF_KEY_LONGPRESS_TIMEOUT = "pref_key_longpress_timeout";
+    public static final String PREF_ENABLE_EMOJI_ALT_PHYSICAL_KEY =
+            "pref_enable_emoji_alt_physical_key";
     public static final String PREF_GESTURE_PREVIEW_TRAIL = "pref_gesture_preview_trail";
     public static final String PREF_GESTURE_FLOATING_PREVIEW_TEXT =
             "pref_gesture_floating_preview_text";
-    public static final String PREF_SHOW_SETUP_WIZARD_ICON = "pref_show_setup_wizard_icon";
-    public static final String PREF_PHRASE_GESTURE_ENABLED = "pref_gesture_space_aware";
 
-    public static final String PREF_INPUT_LANGUAGE = "input_language";
-    public static final String PREF_SELECTED_LANGUAGES = "selected_languages";
     public static final String PREF_KEY_IS_INTERNAL = "pref_key_is_internal";
 
     public static final String PREF_ENABLE_METRICS_LOGGING = "pref_enable_metrics_logging";
-
     // This preference key is deprecated. Use {@link #PREF_SHOW_LANGUAGE_SWITCH_KEY} instead.
     // This is being used only for the backward compatibility.
     private static final String PREF_SUPPRESS_LANGUAGE_SWITCH_KEY =
@@ -149,6 +143,7 @@
         mRes = context.getResources();
         mPrefs = PreferenceManager.getDefaultSharedPreferences(context);
         mPrefs.registerOnSharedPreferenceChangeListener(this);
+        upgradeAutocorrectionSettings(mPrefs, mRes);
     }
 
     public void onDestroy() {
@@ -166,13 +161,14 @@
                 return;
             }
             loadSettings(mContext, mSettingsValues.mLocale, mSettingsValues.mInputAttributes);
+            StatsUtils.onLoadSettings(mSettingsValues);
         } finally {
             mSettingsValuesLock.unlock();
         }
     }
 
     public void loadSettings(final Context context, final Locale locale,
-            final InputAttributes inputAttributes) {
+            @Nonnull final InputAttributes inputAttributes) {
         mSettingsValuesLock.lock();
         mContext = context;
         try {
@@ -198,12 +194,8 @@
         return mSettingsValues.mIsInternal;
     }
 
-    public boolean isWordSeparator(final int code) {
-        return mSettingsValues.isWordSeparator(code);
-    }
-
-    public boolean getBlockPotentiallyOffensive() {
-        return mSettingsValues.mBlockPotentiallyOffensive;
+    public static int readScreenMetrics(final Resources res) {
+        return res.getInteger(R.integer.config_screen_metrics);
     }
 
     // Accessed from the settings interface, hence public
@@ -220,11 +212,13 @@
                 res.getBoolean(R.bool.config_default_vibration_enabled));
     }
 
-    public static boolean readAutoCorrectEnabled(final String currentAutoCorrectionSetting,
+    public static boolean readAutoCorrectEnabled(final SharedPreferences prefs,
             final Resources res) {
-        final String autoCorrectionOff = res.getString(
-                R.string.auto_correction_threshold_mode_index_off);
-        return !currentAutoCorrectionSetting.equals(autoCorrectionOff);
+        return prefs.getBoolean(PREF_AUTO_CORRECTION, true);
+    }
+
+    public static float readPlausibilityThreshold(final Resources res) {
+        return Float.parseFloat(res.getString(R.string.plausibility_threshold));
     }
 
     public static boolean readBlockPotentiallyOffensive(final SharedPreferences prefs,
@@ -243,12 +237,6 @@
                 && prefs.getBoolean(PREF_GESTURE_INPUT, true);
     }
 
-    public static boolean readPhraseGestureEnabled(final SharedPreferences prefs,
-            final Resources res) {
-        return prefs.getBoolean(PREF_PHRASE_GESTURE_ENABLED,
-                res.getBoolean(R.bool.config_default_phrase_gesture_enabled));
-    }
-
     public static boolean readFromBuildConfigIfToShowKeyPreviewPopupOption(final Resources res) {
         return res.getBoolean(R.bool.config_enable_show_key_preview_popup_option);
     }
@@ -314,7 +302,7 @@
     public static int readKeyLongpressTimeout(final SharedPreferences prefs,
             final Resources res) {
         final int milliseconds = prefs.getInt(
-                DebugSettings.PREF_KEY_LONGPRESS_TIMEOUT, UNDEFINED_PREFERENCE_VALUE_INT);
+                PREF_KEY_LONGPRESS_TIMEOUT, UNDEFINED_PREFERENCE_VALUE_INT);
         return (milliseconds != UNDEFINED_PREFERENCE_VALUE_INT) ? milliseconds
                 : readDefaultKeyLongpressTimeout(res);
     }
@@ -352,25 +340,15 @@
         return (milliseconds != UNDEFINED_PREFERENCE_VALUE_INT) ? milliseconds : defaultValue;
     }
 
-    public static boolean readUseFullscreenMode(final Resources res) {
-        return res.getBoolean(R.bool.config_use_fullscreen_mode);
+    public static float readKeyboardHeight(final SharedPreferences prefs,
+            final float defaultValue) {
+        final float percentage = prefs.getFloat(
+                DebugSettings.PREF_KEYBOARD_HEIGHT_SCALE, UNDEFINED_PREFERENCE_VALUE_FLOAT);
+        return (percentage != UNDEFINED_PREFERENCE_VALUE_FLOAT) ? percentage : defaultValue;
     }
 
-    public static boolean readShowSetupWizardIcon(final SharedPreferences prefs,
-            final Context context) {
-        final boolean enableSetupWizardByConfig = context.getResources().getBoolean(
-                R.bool.config_setup_wizard_available);
-        if (!enableSetupWizardByConfig) {
-            return false;
-        }
-        if (!prefs.contains(PREF_SHOW_SETUP_WIZARD_ICON)) {
-            final ApplicationInfo appInfo = context.getApplicationInfo();
-            final boolean isApplicationInSystemImage =
-                    (appInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
-            // Default value
-            return !isApplicationInSystemImage;
-        }
-        return prefs.getBoolean(PREF_SHOW_SETUP_WIZARD_ICON, false);
+    public static boolean readUseFullscreenMode(final Resources res) {
+        return res.getBoolean(R.bool.config_use_fullscreen_mode);
     }
 
     public static boolean readHasHardwareKeyboard(final Configuration conf) {
@@ -446,4 +424,21 @@
             final SharedPreferences prefs, final int defValue) {
         return prefs.getInt(PREF_LAST_SHOWN_EMOJI_CATEGORY_ID, defValue);
     }
+
+    private void upgradeAutocorrectionSettings(final SharedPreferences prefs, final Resources res) {
+        final String thresholdSetting =
+                prefs.getString(PREF_AUTO_CORRECTION_THRESHOLD_OBSOLETE, null);
+        if (thresholdSetting != null) {
+            SharedPreferences.Editor editor = prefs.edit();
+            editor.remove(PREF_AUTO_CORRECTION_THRESHOLD_OBSOLETE);
+            final String autoCorrectionOff =
+                    res.getString(R.string.auto_correction_threshold_mode_index_off);
+            if (thresholdSetting.equals(autoCorrectionOff)) {
+                editor.putBoolean(PREF_AUTO_CORRECTION, false);
+            } else {
+                editor.putBoolean(PREF_AUTO_CORRECTION, true);
+            }
+            editor.commit();
+        }
+    }
 }
diff --git a/java/src/com/android/inputmethod/latin/settings/SettingsActivity.java b/java/src/com/android/inputmethod/latin/settings/SettingsActivity.java
index b0c4940..9975277 100644
--- a/java/src/com/android/inputmethod/latin/settings/SettingsActivity.java
+++ b/java/src/com/android/inputmethod/latin/settings/SettingsActivity.java
@@ -17,6 +17,8 @@
 package com.android.inputmethod.latin.settings;
 
 import com.android.inputmethod.latin.utils.FragmentUtils;
+import com.android.inputmethod.latin.utils.StatsUtils;
+import com.android.inputmethod.latin.utils.StatsUtilsManager;
 
 import android.app.ActionBar;
 import android.content.Intent;
@@ -25,19 +27,30 @@
 import android.view.MenuItem;
 
 public final class SettingsActivity extends PreferenceActivity {
-    public static final String EXTRA_SHOW_HOME_AS_UP = "show_home_as_up";
     private static final String DEFAULT_FRAGMENT = SettingsFragment.class.getName();
+
+    public static final String EXTRA_SHOW_HOME_AS_UP = "show_home_as_up";
+    public static final String EXTRA_ENTRY_KEY = "entry";
+    public static final String EXTRA_ENTRY_VALUE_LONG_PRESS_COMMA = "long_press_comma";
+    public static final String EXTRA_ENTRY_VALUE_APP_ICON = "app_icon";
+    public static final String EXTRA_ENTRY_VALUE_NOTICE_DIALOG = "important_notice";
+    public static final String EXTRA_ENTRY_VALUE_SYSTEM_SETTINGS = "system_settings";
+
     private boolean mShowHomeAsUp;
 
     @Override
     protected void onCreate(final Bundle savedState) {
         super.onCreate(savedState);
         final ActionBar actionBar = getActionBar();
+        final Intent intent = getIntent();
         if (actionBar != null) {
-            mShowHomeAsUp = getIntent().getBooleanExtra(EXTRA_SHOW_HOME_AS_UP, true);
+            mShowHomeAsUp = intent.getBooleanExtra(EXTRA_SHOW_HOME_AS_UP, true);
             actionBar.setDisplayHomeAsUpEnabled(mShowHomeAsUp);
             actionBar.setHomeButtonEnabled(mShowHomeAsUp);
         }
+        StatsUtils.onSettingsActivity(
+                intent.hasExtra(EXTRA_ENTRY_KEY) ? intent.getStringExtra(EXTRA_ENTRY_KEY)
+                        : EXTRA_ENTRY_VALUE_SYSTEM_SETTINGS);
     }
 
     @Override
diff --git a/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java
index 6c8ab57..f5455e3 100644
--- a/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/SettingsFragment.java
@@ -27,6 +27,7 @@
 import android.view.MenuItem;
 
 import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.define.ProductionFlags;
 import com.android.inputmethod.latin.utils.ApplicationUtils;
 import com.android.inputmethod.latin.utils.FeedbackUtils;
 import com.android.inputmethodcommon.InputMethodSettingsFragment;
@@ -49,9 +50,9 @@
         final PreferenceScreen preferenceScreen = getPreferenceScreen();
         preferenceScreen.setTitle(
                 ApplicationUtils.getActivityTitleResId(getActivity(), SettingsActivity.class));
-        if (!Settings.SHOW_MULTILINGUAL_SETTINGS) {
-            final Preference multilingualOptions = findPreference(Settings.SCREEN_MULTILINGUAL);
-            preferenceScreen.removePreference(multilingualOptions);
+        if (!ProductionFlags.ENABLE_ACCOUNT_SIGN_IN) {
+            final Preference accountsPreference = findPreference(Settings.SCREEN_ACCOUNTS);
+            preferenceScreen.removePreference(accountsPreference);
         }
     }
 
diff --git a/java/src/com/android/inputmethod/latin/settings/SettingsValues.java b/java/src/com/android/inputmethod/latin/settings/SettingsValues.java
index d8c548d..d112e72 100644
--- a/java/src/com/android/inputmethod/latin/settings/SettingsValues.java
+++ b/java/src/com/android/inputmethod/latin/settings/SettingsValues.java
@@ -21,6 +21,7 @@
 import android.content.pm.PackageInfo;
 import android.content.res.Configuration;
 import android.content.res.Resources;
+import android.os.Build;
 import android.util.Log;
 import android.view.inputmethod.EditorInfo;
 
@@ -28,7 +29,6 @@
 import com.android.inputmethod.latin.InputAttributes;
 import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.RichInputMethodManager;
-import com.android.inputmethod.latin.SubtypeSwitcher;
 import com.android.inputmethod.latin.utils.AsyncResultHolder;
 import com.android.inputmethod.latin.utils.ResourceUtils;
 import com.android.inputmethod.latin.utils.TargetPackageInfoGetterTask;
@@ -36,17 +36,22 @@
 import java.util.Arrays;
 import java.util.Locale;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 /**
  * When you call the constructor of this class, you may want to change the current system locale by
  * using {@link com.android.inputmethod.latin.utils.RunInLocale}.
  */
-public final class SettingsValues {
+// Non-final for testing via mock library.
+public class SettingsValues {
     private static final String TAG = SettingsValues.class.getSimpleName();
     // "floatMaxValue" and "floatNegativeInfinity" are special marker strings for
     // Float.NEGATIVE_INFINITE and Float.MAX_VALUE. Currently used for auto-correction settings.
     private static final String FLOAT_MAX_VALUE_MARKER_STRING = "floatMaxValue";
     private static final String FLOAT_NEGATIVE_INFINITY_MARKER_STRING = "floatNegativeInfinity";
     private static final int TIMEOUT_TO_GET_TARGET_PACKAGE = 5; // seconds
+    public static final float DEFAULT_SIZE_SCALE = 1.0f; // 100%
 
     // From resources:
     public final SpacingAndPunctuations mSpacingAndPunctuations;
@@ -74,12 +79,17 @@
     public final boolean mGestureTrailEnabled;
     public final boolean mGestureFloatingPreviewTextEnabled;
     public final boolean mSlidingKeyInputPreviewEnabled;
-    public final boolean mPhraseGestureEnabled;
     public final int mKeyLongpressTimeout;
+    public final boolean mEnableEmojiAltPhysicalKey;
+    public final boolean mCloudSyncEnabled;
     public final boolean mEnableMetricsLogging;
-    public final boolean mShouldShowUiToAcceptTypedWord;
+    public final boolean mShouldShowLxxSuggestionUi;
+    // Use split layout for keyboard.
+    public final boolean mIsSplitKeyboardEnabled;
+    public final int mScreenMetrics;
 
     // From the input box
+    @Nonnull
     public final InputAttributes mInputAttributes;
 
     // Deduced settings
@@ -88,20 +98,16 @@
     public final int mKeyPreviewPopupDismissDelay;
     private final boolean mAutoCorrectEnabled;
     public final float mAutoCorrectionThreshold;
+    public final float mPlausibilityThreshold;
     public final boolean mAutoCorrectionEnabledPerUserSettings;
     private final boolean mSuggestionsEnabledPerUserSettings;
     private final AsyncResultHolder<AppWorkaroundsUtils> mAppWorkarounds;
 
-    // Setting values for additional features
-    public final int[] mAdditionalFeaturesSettingValues =
-            new int[AdditionalFeaturesSettingUtils.ADDITIONAL_FEATURES_SETTINGS_SIZE];
-
-    // TextDecorator
-    public final int mTextHighlightColorForAddToDictionaryIndicator;
-
     // Debug settings
     public final boolean mIsInternal;
     public final boolean mHasCustomKeyPreviewAnimationParams;
+    public final boolean mHasKeyboardResize;
+    public final float mKeyboardHeightScale;
     public final int mKeyPreviewShowUpDuration;
     public final int mKeyPreviewDismissDuration;
     public final float mKeyPreviewShowUpStartXScale;
@@ -109,8 +115,10 @@
     public final float mKeyPreviewDismissEndXScale;
     public final float mKeyPreviewDismissEndYScale;
 
+    @Nullable public final String mAccount;
+
     public SettingsValues(final Context context, final SharedPreferences prefs, final Resources res,
-            final InputAttributes inputAttributes) {
+            @Nonnull final InputAttributes inputAttributes) {
         mLocale = res.getConfiguration().locale;
         // Get the resources
         mDelayInMillisecondsToUpdateOldSuggestions =
@@ -118,12 +126,7 @@
         mSpacingAndPunctuations = new SpacingAndPunctuations(res);
 
         // Store the input attributes
-        if (null == inputAttributes) {
-            mInputAttributes = new InputAttributes(
-                    null, false /* isFullscreenMode */, context.getPackageName());
-        } else {
-            mInputAttributes = inputAttributes;
-        }
+        mInputAttributes = inputAttributes;
 
         // Get the settings preferences
         mAutoCap = prefs.getBoolean(Settings.PREF_AUTO_CAP, true);
@@ -134,10 +137,7 @@
                 DebugSettings.PREF_SLIDING_KEY_INPUT_PREVIEW, true);
         mShowsVoiceInputKey = needsToShowVoiceInputKey(prefs, res)
                 && mInputAttributes.mShouldShowVoiceInputKey
-                && SubtypeSwitcher.getInstance().isShortcutImeEnabled();
-        final String autoCorrectionThresholdRawValue = prefs.getString(
-                Settings.PREF_AUTO_CORRECTION_THRESHOLD,
-                res.getString(R.string.auto_correction_threshold_mode_index_modest));
+                && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN;
         mIncludesOtherImesInLanguageSwitchList = Settings.ENABLE_SHOW_LANGUAGE_SWITCH_KEY_SETTINGS
                 ? prefs.getBoolean(Settings.PREF_INCLUDE_OTHER_IMES_IN_LANGUAGE_SWITCH_LIST, false)
                 : true /* forcibly */;
@@ -148,35 +148,44 @@
         mUseDoubleSpacePeriod = prefs.getBoolean(Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, true)
                 && inputAttributes.mIsGeneralTextInput;
         mBlockPotentiallyOffensive = Settings.readBlockPotentiallyOffensive(prefs, res);
-        mAutoCorrectEnabled = Settings.readAutoCorrectEnabled(autoCorrectionThresholdRawValue, res);
+        mAutoCorrectEnabled = Settings.readAutoCorrectEnabled(prefs, res);
+        final String autoCorrectionThresholdRawValue = mAutoCorrectEnabled
+                ? res.getString(R.string.auto_correction_threshold_mode_index_modest)
+                : res.getString(R.string.auto_correction_threshold_mode_index_off);
         mBigramPredictionEnabled = readBigramPredictionEnabled(prefs, res);
         mDoubleSpacePeriodTimeout = res.getInteger(R.integer.config_double_space_period_timeout);
         mHasHardwareKeyboard = Settings.readHasHardwareKeyboard(res.getConfiguration());
         mEnableMetricsLogging = prefs.getBoolean(Settings.PREF_ENABLE_METRICS_LOGGING, true);
-        mShouldShowUiToAcceptTypedWord = Settings.HAS_UI_TO_ACCEPT_TYPED_WORD
-                && prefs.getBoolean(DebugSettings.PREF_SHOW_UI_TO_ACCEPT_TYPED_WORD, true);
+        mIsSplitKeyboardEnabled = prefs.getBoolean(Settings.PREF_ENABLE_SPLIT_KEYBOARD, false);
+        mScreenMetrics = Settings.readScreenMetrics(res);
+
+        mShouldShowLxxSuggestionUi = Settings.SHOULD_SHOW_LXX_SUGGESTION_UI
+                && prefs.getBoolean(DebugSettings.PREF_SHOULD_SHOW_LXX_SUGGESTION_UI, true);
         // Compute other readable settings
         mKeyLongpressTimeout = Settings.readKeyLongpressTimeout(prefs, res);
         mKeypressVibrationDuration = Settings.readKeypressVibrationDuration(prefs, res);
         mKeypressSoundVolume = Settings.readKeypressSoundVolume(prefs, res);
         mKeyPreviewPopupDismissDelay = Settings.readKeyPreviewPopupDismissDelay(prefs, res);
+        mEnableEmojiAltPhysicalKey = prefs.getBoolean(
+                Settings.PREF_ENABLE_EMOJI_ALT_PHYSICAL_KEY, true);
         mAutoCorrectionThreshold = readAutoCorrectionThreshold(res,
                 autoCorrectionThresholdRawValue);
+        mPlausibilityThreshold = Settings.readPlausibilityThreshold(res);
         mGestureInputEnabled = Settings.readGestureInputEnabled(prefs, res);
         mGestureTrailEnabled = prefs.getBoolean(Settings.PREF_GESTURE_PREVIEW_TRAIL, true);
-        mGestureFloatingPreviewTextEnabled = prefs.getBoolean(
-                Settings.PREF_GESTURE_FLOATING_PREVIEW_TEXT, true);
-        mPhraseGestureEnabled = Settings.readPhraseGestureEnabled(prefs, res);
+        mCloudSyncEnabled = prefs.getBoolean(LocalSettingsConstants.PREF_ENABLE_CLOUD_SYNC, false);
+        mAccount = prefs.getString(LocalSettingsConstants.PREF_ACCOUNT_NAME,
+                null /* default */);
+        mGestureFloatingPreviewTextEnabled = !mInputAttributes.mDisableGestureFloatingPreviewText
+                && prefs.getBoolean(Settings.PREF_GESTURE_FLOATING_PREVIEW_TEXT, true);
         mAutoCorrectionEnabledPerUserSettings = mAutoCorrectEnabled
                 && !mInputAttributes.mInputTypeNoAutoCorrect;
         mSuggestionsEnabledPerUserSettings = readSuggestionsEnabled(prefs);
-        AdditionalFeaturesSettingUtils.readAdditionalFeaturesPreferencesIntoArray(
-                prefs, mAdditionalFeaturesSettingValues);
-        mTextHighlightColorForAddToDictionaryIndicator = res.getColor(
-                R.color.text_decorator_add_to_dictionary_indicator_text_highlight_color);
         mIsInternal = Settings.isInternal(prefs);
         mHasCustomKeyPreviewAnimationParams = prefs.getBoolean(
                 DebugSettings.PREF_HAS_CUSTOM_KEY_PREVIEW_ANIMATION_PARAMS, false);
+        mHasKeyboardResize = prefs.getBoolean(DebugSettings.PREF_RESIZE_KEYBOARD, false);
+        mKeyboardHeightScale = Settings.readKeyboardHeight(prefs, DEFAULT_SIZE_SCALE);
         mKeyPreviewShowUpDuration = Settings.readKeyPreviewAnimationDuration(
                 prefs, DebugSettings.PREF_KEY_PREVIEW_SHOW_UP_DURATION,
                 res.getInteger(R.integer.config_key_preview_show_up_duration));
@@ -211,6 +220,10 @@
         }
     }
 
+    public boolean isMetricsLoggingEnabled() {
+        return mEnableMetricsLogging;
+    }
+
     public boolean isApplicationSpecifiedCompletionsOn() {
         return mInputAttributes.mApplicationSpecifiedCompletionOn;
     }
@@ -224,6 +237,10 @@
         return mSuggestionsEnabledPerUserSettings;
     }
 
+    public boolean isPersonalizationEnabled() {
+        return mUsePersonalizedDicts;
+    }
+
     public boolean isWordSeparator(final int code) {
         return mSpacingAndPunctuations.isWordSeparator(code);
     }
@@ -256,9 +273,8 @@
         final RichInputMethodManager imm = RichInputMethodManager.getInstance();
         if (mIncludesOtherImesInLanguageSwitchList) {
             return imm.hasMultipleEnabledIMEsOrSubtypes(false /* include aux subtypes */);
-        } else {
-            return imm.hasMultipleEnabledSubtypesInThisIme(false /* include aux subtypes */);
         }
+        return imm.hasMultipleEnabledSubtypesInThisIme(false /* include aux subtypes */);
     }
 
     public boolean isSameInputType(final EditorInfo editorInfo) {
@@ -388,8 +404,6 @@
         sb.append("" + mGestureFloatingPreviewTextEnabled);
         sb.append("\n   mSlidingKeyInputPreviewEnabled = ");
         sb.append("" + mSlidingKeyInputPreviewEnabled);
-        sb.append("\n   mPhraseGestureEnabled = ");
-        sb.append("" + mPhraseGestureEnabled);
         sb.append("\n   mKeyLongpressTimeout = ");
         sb.append("" + mKeyLongpressTimeout);
         sb.append("\n   mLocale = ");
@@ -415,10 +429,6 @@
         sb.append("\n   mAppWorkarounds = ");
         final AppWorkaroundsUtils awu = mAppWorkarounds.get(null, 0);
         sb.append("" + (null == awu ? "null" : awu.toString()));
-        sb.append("\n   mAdditionalFeaturesSettingValues = ");
-        sb.append("" + Arrays.toString(mAdditionalFeaturesSettingValues));
-        sb.append("\n   mTextHighlightColorForAddToDictionaryIndicator = ");
-        sb.append("" + mTextHighlightColorForAddToDictionaryIndicator);
         sb.append("\n   mIsInternal = ");
         sb.append("" + mIsInternal);
         sb.append("\n   mKeyPreviewShowUpDuration = ");
diff --git a/java/src/com/android/inputmethod/latin/settings/SettingsValuesForSuggestion.java b/java/src/com/android/inputmethod/latin/settings/SettingsValuesForSuggestion.java
index d80af4b..5e2e5a5 100644
--- a/java/src/com/android/inputmethod/latin/settings/SettingsValuesForSuggestion.java
+++ b/java/src/com/android/inputmethod/latin/settings/SettingsValuesForSuggestion.java
@@ -18,13 +18,8 @@
 
 public class SettingsValuesForSuggestion {
     public final boolean mBlockPotentiallyOffensive;
-    public final boolean mSpaceAwareGestureEnabled;
-    public final int[] mAdditionalFeaturesSettingValues;
 
-    public SettingsValuesForSuggestion(final boolean blockPotentiallyOffensive,
-            final boolean spaceAwareGestureEnabled, final int[] additionalFeaturesSettingValues) {
+    public SettingsValuesForSuggestion(final boolean blockPotentiallyOffensive) {
         mBlockPotentiallyOffensive = blockPotentiallyOffensive;
-        mSpaceAwareGestureEnabled = spaceAwareGestureEnabled;
-        mAdditionalFeaturesSettingValues = additionalFeaturesSettingValues;
     }
 }
diff --git a/java/src/com/android/inputmethod/latin/settings/SpacingAndPunctuations.java b/java/src/com/android/inputmethod/latin/settings/SpacingAndPunctuations.java
index 49d8110..70d97a5 100644
--- a/java/src/com/android/inputmethod/latin/settings/SpacingAndPunctuations.java
+++ b/java/src/com/android/inputmethod/latin/settings/SpacingAndPunctuations.java
@@ -20,10 +20,10 @@
 
 import com.android.inputmethod.annotations.UsedForTesting;
 import com.android.inputmethod.keyboard.internal.MoreKeySpec;
-import com.android.inputmethod.latin.Constants;
 import com.android.inputmethod.latin.PunctuationSuggestions;
 import com.android.inputmethod.latin.R;
-import com.android.inputmethod.latin.utils.StringUtils;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.StringUtils;
 
 import java.util.Arrays;
 import java.util.Locale;
@@ -36,6 +36,8 @@
     public final int[] mSortedWordSeparators;
     public final PunctuationSuggestions mSuggestPuncList;
     private final int mSentenceSeparator;
+    private final int mAbbreviationMarker;
+    private final int[] mSortedSentenceTerminators;
     public final String mSentenceSeparatorAndSpace;
     public final boolean mCurrentLanguageHasSpaces;
     public final boolean mUsesAmericanTypography;
@@ -55,7 +57,10 @@
                 res.getString(R.string.symbols_word_connectors));
         mSortedWordSeparators = StringUtils.toSortedCodePointArray(
                 res.getString(R.string.symbols_word_separators));
+        mSortedSentenceTerminators = StringUtils.toSortedCodePointArray(
+                res.getString(R.string.symbols_sentence_terminators));
         mSentenceSeparator = res.getInteger(R.integer.sentence_separator);
+        mAbbreviationMarker = res.getInteger(R.integer.abbreviation_marker);
         mSentenceSeparatorAndSpace = new String(new int[] {
                 mSentenceSeparator, Constants.CODE_SPACE }, 0, 2);
         mCurrentLanguageHasSpaces = res.getBoolean(R.bool.current_language_has_spaces);
@@ -77,8 +82,10 @@
         mSortedSymbolsClusteringTogether = model.mSortedSymbolsClusteringTogether;
         mSortedWordConnectors = model.mSortedWordConnectors;
         mSortedWordSeparators = overrideSortedWordSeparators;
+        mSortedSentenceTerminators = model.mSortedSentenceTerminators;
         mSuggestPuncList = model.mSuggestPuncList;
         mSentenceSeparator = model.mSentenceSeparator;
+        mAbbreviationMarker = model.mAbbreviationMarker;
         mSentenceSeparatorAndSpace = model.mSentenceSeparatorAndSpace;
         mCurrentLanguageHasSpaces = model.mCurrentLanguageHasSpaces;
         mUsesAmericanTypography = model.mUsesAmericanTypography;
@@ -109,6 +116,14 @@
         return Arrays.binarySearch(mSortedSymbolsClusteringTogether, code) >= 0;
     }
 
+    public boolean isSentenceTerminator(final int code) {
+        return Arrays.binarySearch(mSortedSentenceTerminators, code) >= 0;
+    }
+
+    public boolean isAbbreviationMarker(final int code) {
+        return code == mAbbreviationMarker;
+    }
+
     public boolean isSentenceSeparator(final int code) {
         return code == mSentenceSeparator;
     }
diff --git a/java/src/com/android/inputmethod/latin/settings/SubScreenFragment.java b/java/src/com/android/inputmethod/latin/settings/SubScreenFragment.java
index ca5b395..240f8f8 100644
--- a/java/src/com/android/inputmethod/latin/settings/SubScreenFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/SubScreenFragment.java
@@ -20,6 +20,7 @@
 import android.content.Context;
 import android.content.SharedPreferences;
 import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
+import android.content.res.Resources;
 import android.os.Bundle;
 import android.preference.ListPreference;
 import android.preference.Preference;
@@ -79,6 +80,16 @@
         return getPreferenceManager().getSharedPreferences();
     }
 
+    /**
+     * Gets the application name to display on the UI.
+     */
+    final String getApplicationName() {
+        final Context context = getActivity();
+        final Resources res = getResources();
+        final int applicationLabelRes = context.getApplicationInfo().labelRes;
+        return res.getString(applicationLabelRes);
+    }
+
     @Override
     public void addPreferencesFromResource(final int preferencesResId) {
         super.addPreferencesFromResource(preferencesResId);
diff --git a/java/src/com/android/inputmethod/latin/settings/TestFragmentActivity.java b/java/src/com/android/inputmethod/latin/settings/TestFragmentActivity.java
new file mode 100644
index 0000000..254bc65
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/settings/TestFragmentActivity.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.settings;
+
+import android.app.Activity;
+import android.app.Fragment;
+import android.app.FragmentManager;
+import android.content.Intent;
+import android.os.Bundle;
+
+/**
+ * Test activity to use when testing preference fragments. <br/>
+ * Usage: <br/>
+ * Create an ActivityInstrumentationTestCase2 for this activity
+ * and call setIntent() with an intent that specifies the fragment to load in the activity.
+ * The fragment can then be obtained from this activity and used for testing/verification.
+ */
+public final class TestFragmentActivity extends Activity {
+    /**
+     * The fragment name that should be loaded when starting this activity.
+     * This must be specified when starting this activity, as this activity is only
+     * meant to test fragments from instrumentation tests.
+     */
+    public static final String EXTRA_SHOW_FRAGMENT = "show_fragment";
+
+    public Fragment mFragment;
+
+    @Override
+    protected void onCreate(final Bundle savedState) {
+        super.onCreate(savedState);
+        final Intent intent = getIntent();
+        final String fragmentName = intent.getStringExtra(EXTRA_SHOW_FRAGMENT);
+        if (fragmentName == null) {
+            throw new IllegalArgumentException("No fragment name specified for testing");
+        }
+
+        mFragment = Fragment.instantiate(this, fragmentName);
+        FragmentManager fragmentManager = getFragmentManager();
+        fragmentManager.beginTransaction().add(mFragment, fragmentName).commit();
+    }
+}
diff --git a/java/src/com/android/inputmethod/latin/settings/ThemeSettingsFragment.java b/java/src/com/android/inputmethod/latin/settings/ThemeSettingsFragment.java
index 5a3fc36..29289ae 100644
--- a/java/src/com/android/inputmethod/latin/settings/ThemeSettingsFragment.java
+++ b/java/src/com/android/inputmethod/latin/settings/ThemeSettingsFragment.java
@@ -17,7 +17,6 @@
 package com.android.inputmethod.latin.settings;
 
 import android.content.Context;
-import android.content.SharedPreferences;
 import android.content.res.Resources;
 import android.os.Bundle;
 import android.preference.Preference;
@@ -32,12 +31,12 @@
  */
 public final class ThemeSettingsFragment extends SubScreenFragment
         implements OnRadioButtonClickedListener {
-    private String mSelectedThemeId;
+    private int mSelectedThemeId;
 
     static class KeyboardThemePreference extends RadioButtonPreference {
-        final String mThemeId;
+        final int mThemeId;
 
-        KeyboardThemePreference(final Context context, final String name, final String id) {
+        KeyboardThemePreference(final Context context, final String name, final int id) {
             super(context);
             setTitle(name);
             mThemeId = id;
@@ -45,14 +44,13 @@
     }
 
     static void updateKeyboardThemeSummary(final Preference pref) {
-        final Resources res = pref.getContext().getResources();
-        final SharedPreferences prefs = pref.getSharedPreferences();
-        final KeyboardTheme keyboardTheme = KeyboardTheme.getKeyboardTheme(prefs);
-        final String keyboardThemeId = String.valueOf(keyboardTheme.mThemeId);
+        final Context context = pref.getContext();
+        final Resources res = context.getResources();
+        final KeyboardTheme keyboardTheme = KeyboardTheme.getKeyboardTheme(context);
         final String[] keyboardThemeNames = res.getStringArray(R.array.keyboard_theme_names);
-        final String[] keyboardThemeIds = res.getStringArray(R.array.keyboard_theme_ids);
+        final int[] keyboardThemeIds = res.getIntArray(R.array.keyboard_theme_ids);
         for (int index = 0; index < keyboardThemeNames.length; index++) {
-            if (keyboardThemeId.equals(keyboardThemeIds[index])) {
+            if (keyboardTheme.mThemeId == keyboardThemeIds[index]) {
                 pref.setSummary(keyboardThemeNames[index]);
                 return;
             }
@@ -64,18 +62,18 @@
         super.onCreate(icicle);
         addPreferencesFromResource(R.xml.prefs_screen_theme);
         final PreferenceScreen screen = getPreferenceScreen();
+        final Context context = getActivity();
         final Resources res = getResources();
         final String[] keyboardThemeNames = res.getStringArray(R.array.keyboard_theme_names);
-        final String[] keyboardThemeIds = res.getStringArray(R.array.keyboard_theme_ids);
+        final int[] keyboardThemeIds = res.getIntArray(R.array.keyboard_theme_ids);
         for (int index = 0; index < keyboardThemeNames.length; index++) {
             final KeyboardThemePreference pref = new KeyboardThemePreference(
-                    getActivity(), keyboardThemeNames[index], keyboardThemeIds[index]);
+                    context, keyboardThemeNames[index], keyboardThemeIds[index]);
             screen.addPreference(pref);
             pref.setOnRadioButtonClickedListener(this);
         }
-        final SharedPreferences prefs = getSharedPreferences();
-        final KeyboardTheme keyboardTheme = KeyboardTheme.getKeyboardTheme(prefs);
-        mSelectedThemeId = String.valueOf(keyboardTheme.mThemeId);
+        final KeyboardTheme keyboardTheme = KeyboardTheme.getKeyboardTheme(context);
+        mSelectedThemeId = keyboardTheme.mThemeId;
     }
 
     @Override
@@ -106,7 +104,7 @@
             final Preference preference = screen.getPreference(index);
             if (preference instanceof KeyboardThemePreference) {
                 final KeyboardThemePreference pref = (KeyboardThemePreference)preference;
-                final boolean selected = mSelectedThemeId.equals(pref.mThemeId);
+                final boolean selected = (mSelectedThemeId == pref.mThemeId);
                 pref.setSelected(selected);
             }
         }
diff --git a/java/src/com/android/inputmethod/latin/setup/LauncherIconVisibilityManager.java b/java/src/com/android/inputmethod/latin/setup/LauncherIconVisibilityManager.java
deleted file mode 100644
index 3f0b102..0000000
--- a/java/src/com/android/inputmethod/latin/setup/LauncherIconVisibilityManager.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.setup;
-
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.content.pm.PackageManager;
-import android.preference.PreferenceManager;
-import android.util.Log;
-
-import com.android.inputmethod.latin.settings.Settings;
-
-/**
- * This class handles the {@link Intent#ACTION_MY_PACKAGE_REPLACED} broadcast intent when this IME
- * package has been replaced by a newer version of the same package. This class also handles
- * {@link Intent#ACTION_BOOT_COMPLETED} and {@link Intent#ACTION_USER_INITIALIZE} broadcast intent.
- *
- * If this IME has already been installed in the system image and a new version of this IME has
- * been installed, {@link Intent#ACTION_MY_PACKAGE_REPLACED} is received to this class to hide the
- * setup wizard's icon.
- *
- * If this IME has already been installed in the data partition and a new version of this IME has
- * been installed, {@link Intent#ACTION_MY_PACKAGE_REPLACED} is forwarded to this class but it
- * will not hide the setup wizard's icon, and the icon will appear on the launcher.
- *
- * If this IME hasn't been installed yet and has been newly installed, no
- * {@link Intent#ACTION_MY_PACKAGE_REPLACED} will be sent and the setup wizard's icon will appear
- * on the launcher.
- *
- * When the device has been booted, {@link Intent#ACTION_BOOT_COMPLETED} is forwarded to this class
- * to check whether the setup wizard's icon should be appeared or not on the launcher
- * depending on which partition this IME is installed.
- *
- * When a multiuser account has been created, {@link Intent#ACTION_USER_INITIALIZE} is forwarded to
- * this class to check whether the setup wizard's icon should be appeared or not on the launcher
- * depending on which partition this IME is installed.
- */
-public final class LauncherIconVisibilityManager {
-    private static final String TAG = LauncherIconVisibilityManager.class.getSimpleName();
-
-    public static void updateSetupWizardIconVisibility(final Context context) {
-        final ComponentName setupWizardActivity = new ComponentName(context, SetupActivity.class);
-        final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
-        final boolean stateHasSet;
-        if (Settings.readShowSetupWizardIcon(prefs, context)) {
-            stateHasSet = setActivityState(context, setupWizardActivity,
-                    PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
-            Log.i(TAG, (stateHasSet ? "Enable activity: " : "Activity has already been enabled: ")
-                    + setupWizardActivity);
-        } else {
-            stateHasSet = setActivityState(context, setupWizardActivity,
-                    PackageManager.COMPONENT_ENABLED_STATE_DISABLED);
-            Log.i(TAG, (stateHasSet ? "Disable activity: " : "Activity has already been disabled: ")
-                    + setupWizardActivity);
-        }
-    }
-
-    private static boolean setActivityState(final Context context,
-            final ComponentName activityComponent, final int activityState) {
-        final PackageManager pm = context.getPackageManager();
-        final int activityComponentState = pm.getComponentEnabledSetting(activityComponent);
-        if (activityComponentState == activityState) {
-            return false;
-        }
-        pm.setComponentEnabledSetting(
-                activityComponent, activityState, PackageManager.DONT_KILL_APP);
-        return true;
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/setup/SetupActivity.java b/java/src/com/android/inputmethod/latin/setup/SetupActivity.java
index b770ea5..7607429 100644
--- a/java/src/com/android/inputmethod/latin/setup/SetupActivity.java
+++ b/java/src/com/android/inputmethod/latin/setup/SetupActivity.java
@@ -17,12 +17,8 @@
 package com.android.inputmethod.latin.setup;
 
 import android.app.Activity;
-import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
-import android.provider.Settings;
-import android.view.inputmethod.InputMethodInfo;
-import android.view.inputmethod.InputMethodManager;
 
 public final class SetupActivity extends Activity {
     @Override
diff --git a/java/src/com/android/inputmethod/latin/setup/SetupWizardActivity.java b/java/src/com/android/inputmethod/latin/setup/SetupWizardActivity.java
index e455e53..bee22af 100644
--- a/java/src/com/android/inputmethod/latin/setup/SetupWizardActivity.java
+++ b/java/src/com/android/inputmethod/latin/setup/SetupWizardActivity.java
@@ -42,10 +42,14 @@
 
 import java.util.ArrayList;
 
+import javax.annotation.Nonnull;
+
 // TODO: Use Fragment to implement welcome screen and setup steps.
 public final class SetupWizardActivity extends Activity implements View.OnClickListener {
     static final String TAG = SetupWizardActivity.class.getSimpleName();
 
+    // For debugging purpose.
+    private static final boolean FORCE_TO_SHOW_WELCOME_SCREEN = false;
     private static final boolean ENABLE_WELCOME_VIDEO = true;
 
     private InputMethodManager mImm;
@@ -80,7 +84,7 @@
 
         private final InputMethodManager mImmInHandler;
 
-        public SettingsPoolingHandler(final SetupWizardActivity ownerInstance,
+        public SettingsPoolingHandler(@Nonnull final SetupWizardActivity ownerInstance,
                 final InputMethodManager imm) {
             super(ownerInstance);
             mImmInHandler = imm;
@@ -261,6 +265,8 @@
         intent.setClass(this, SettingsActivity.class);
         intent.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
                 | Intent.FLAG_ACTIVITY_CLEAR_TOP);
+        intent.putExtra(SettingsActivity.EXTRA_ENTRY_KEY,
+                SettingsActivity.EXTRA_ENTRY_VALUE_APP_ICON);
         startActivity(intent);
     }
 
@@ -304,6 +310,9 @@
 
     private int determineSetupStepNumber() {
         mHandler.cancelPollingImeSettings();
+        if (FORCE_TO_SHOW_WELCOME_SCREEN) {
+            return STEP_1;
+        }
         if (!UncachedInputMethodManagerUtils.isThisImeEnabled(this, mImm)) {
             return STEP_1;
         }
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
index 90398de..00f69f1 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java
@@ -16,55 +16,37 @@
 
 package com.android.inputmethod.latin.spellcheck;
 
-import android.content.Context;
 import android.content.Intent;
 import android.content.SharedPreferences;
 import android.preference.PreferenceManager;
 import android.service.textservice.SpellCheckerService;
 import android.text.InputType;
-import android.util.Log;
-import android.util.LruCache;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputMethodSubtype;
 import android.view.textservice.SuggestionsInfo;
+import android.util.Log;
 
 import com.android.inputmethod.keyboard.Keyboard;
 import com.android.inputmethod.keyboard.KeyboardId;
 import com.android.inputmethod.keyboard.KeyboardLayoutSet;
-import com.android.inputmethod.keyboard.ProximityInfo;
-import com.android.inputmethod.latin.ContactsBinaryDictionary;
-import com.android.inputmethod.latin.Dictionary;
-import com.android.inputmethod.latin.DictionaryCollection;
 import com.android.inputmethod.latin.DictionaryFacilitator;
-import com.android.inputmethod.latin.DictionaryFactory;
-import com.android.inputmethod.latin.PrevWordsInfo;
+import com.android.inputmethod.latin.DictionaryFacilitatorLruCache;
+import com.android.inputmethod.latin.NgramContext;
 import com.android.inputmethod.latin.R;
-import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
+import com.android.inputmethod.latin.RichInputMethodSubtype;
+import com.android.inputmethod.latin.SuggestedWords;
+import com.android.inputmethod.latin.common.ComposedData;
 import com.android.inputmethod.latin.settings.SettingsValuesForSuggestion;
-import com.android.inputmethod.latin.UserBinaryDictionary;
 import com.android.inputmethod.latin.utils.AdditionalSubtypeUtils;
-import com.android.inputmethod.latin.utils.BinaryDictionaryUtils;
-import com.android.inputmethod.latin.utils.CollectionUtils;
-import com.android.inputmethod.latin.utils.LocaleUtils;
 import com.android.inputmethod.latin.utils.ScriptUtils;
-import com.android.inputmethod.latin.utils.StringUtils;
 import com.android.inputmethod.latin.utils.SuggestionResults;
-import com.android.inputmethod.latin.WordComposer;
 
-import java.lang.ref.WeakReference;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
 import java.util.Locale;
-import java.util.Map;
-import java.util.TreeMap;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentLinkedQueue;
 import java.util.concurrent.Semaphore;
-import java.util.concurrent.TimeUnit;
+
+import javax.annotation.Nonnull;
 
 /**
  * Service for spell checking, using LatinIME's dictionaries and mechanisms.
@@ -72,72 +54,36 @@
 public final class AndroidSpellCheckerService extends SpellCheckerService
         implements SharedPreferences.OnSharedPreferenceChangeListener {
     private static final String TAG = AndroidSpellCheckerService.class.getSimpleName();
-    private static final boolean DBG = false;
+    private static final boolean DEBUG = false;
 
     public static final String PREF_USE_CONTACTS_KEY = "pref_spellcheck_use_contacts";
 
     private static final int SPELLCHECKER_DUMMY_KEYBOARD_WIDTH = 480;
-    private static final int SPELLCHECKER_DUMMY_KEYBOARD_HEIGHT = 368;
+    private static final int SPELLCHECKER_DUMMY_KEYBOARD_HEIGHT = 301;
 
     private static final String DICTIONARY_NAME_PREFIX = "spellcheck_";
-    private static final int WAIT_FOR_LOADING_MAIN_DICT_IN_MILLISECONDS = 1000;
-    private static final int MAX_RETRY_COUNT_FOR_WAITING_FOR_LOADING_DICT = 5;
 
     private static final String[] EMPTY_STRING_ARRAY = new String[0];
 
-    private final HashSet<Locale> mCachedLocales = new HashSet<>();
-
     private final int MAX_NUM_OF_THREADS_READ_DICTIONARY = 2;
     private final Semaphore mSemaphore = new Semaphore(MAX_NUM_OF_THREADS_READ_DICTIONARY,
             true /* fair */);
     // TODO: Make each spell checker session has its own session id.
     private final ConcurrentLinkedQueue<Integer> mSessionIdPool = new ConcurrentLinkedQueue<>();
 
-    private static class DictionaryFacilitatorLruCache extends
-            LruCache<Locale, DictionaryFacilitator> {
-        private final HashSet<Locale> mCachedLocales;
-        public DictionaryFacilitatorLruCache(final HashSet<Locale> cachedLocales, int maxSize) {
-            super(maxSize);
-            mCachedLocales = cachedLocales;
-        }
-
-        @Override
-        protected void entryRemoved(boolean evicted, Locale key,
-                DictionaryFacilitator oldValue, DictionaryFacilitator newValue) {
-            if (oldValue != null && oldValue != newValue) {
-                oldValue.closeDictionaries();
-            }
-            if (key != null && newValue == null) {
-                // Remove locale from the cache when the dictionary facilitator for the locale is
-                // evicted and new facilitator is not set for the locale.
-                mCachedLocales.remove(key);
-                if (size() >= maxSize()) {
-                    Log.w(TAG, "DictionaryFacilitator for " + key.toString()
-                            + " has been evicted due to cache size limit."
-                            + " size: " + size() + ", maxSize: " + maxSize());
-                }
-            }
-        }
-    }
-
-    private static final int MAX_DICTIONARY_FACILITATOR_COUNT = 3;
-    private final LruCache<Locale, DictionaryFacilitator> mDictionaryFacilitatorCache =
-            new DictionaryFacilitatorLruCache(mCachedLocales, MAX_DICTIONARY_FACILITATOR_COUNT);
+    private final DictionaryFacilitatorLruCache mDictionaryFacilitatorCache =
+            new DictionaryFacilitatorLruCache(this /* context */, DICTIONARY_NAME_PREFIX);
     private final ConcurrentHashMap<Locale, Keyboard> mKeyboardCache = new ConcurrentHashMap<>();
 
     // The threshold for a suggestion to be considered "recommended".
     private float mRecommendedThreshold;
-    // Whether to use the contacts dictionary
-    private boolean mUseContactsDictionary;
     // TODO: make a spell checker option to block offensive words or not
     private final SettingsValuesForSuggestion mSettingsValuesForSuggestion =
-            new SettingsValuesForSuggestion(true /* blockPotentiallyOffensive */,
-                    true /* spaceAwareGestureEnabled */,
-                    null /* additionalFeaturesSettingValues */);
-    private final Object mDictionaryLock = new Object();
+            new SettingsValuesForSuggestion(true /* blockPotentiallyOffensive */);
 
     public static final String SINGLE_QUOTE = "\u0027";
     public static final String APOSTROPHE = "\u2019";
+    private UserDictionaryLookup mUserDictionaryLookup;
 
     public AndroidSpellCheckerService() {
         super();
@@ -146,13 +92,33 @@
         }
     }
 
-    @Override public void onCreate() {
+    @Override
+    public void onCreate() {
         super.onCreate();
         mRecommendedThreshold =
                 Float.parseFloat(getString(R.string.spellchecker_recommended_threshold_value));
         final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
         prefs.registerOnSharedPreferenceChangeListener(this);
         onSharedPreferenceChanged(prefs, PREF_USE_CONTACTS_KEY);
+        // Create a UserDictionaryLookup.  It needs to be close()d and set to null in onDestroy.
+        if (mUserDictionaryLookup == null) {
+            if (DEBUG) {
+                Log.d(TAG, "Creating mUserDictionaryLookup in onCreate");
+            }
+            mUserDictionaryLookup = new UserDictionaryLookup(this);
+        } else if (DEBUG) {
+            Log.d(TAG, "mUserDictionaryLookup already created before onCreate");
+        }
+    }
+
+    @Override
+    public void onDestroy() {
+        if (DEBUG) {
+            Log.d(TAG, "Closing and dereferencing mUserDictionaryLookup in onDestroy");
+        }
+        mUserDictionaryLookup.close();
+        mUserDictionaryLookup = null;
+        super.onDestroy();
     }
 
     public float getRecommendedThreshold() {
@@ -175,21 +141,8 @@
     @Override
     public void onSharedPreferenceChanged(final SharedPreferences prefs, final String key) {
         if (!PREF_USE_CONTACTS_KEY.equals(key)) return;
-            final boolean useContactsDictionary = prefs.getBoolean(PREF_USE_CONTACTS_KEY, true);
-            if (useContactsDictionary != mUseContactsDictionary) {
-                mSemaphore.acquireUninterruptibly(MAX_NUM_OF_THREADS_READ_DICTIONARY);
-                try {
-                    mUseContactsDictionary = useContactsDictionary;
-                    for (final Locale locale : mCachedLocales) {
-                        final DictionaryFacilitator dictionaryFacilitator =
-                                mDictionaryFacilitatorCache.get(locale);
-                        resetDictionariesForLocale(this /* context  */,
-                                dictionaryFacilitator, locale, mUseContactsDictionary);
-                    }
-                } finally {
-                    mSemaphore.release(MAX_NUM_OF_THREADS_READ_DICTIONARY);
-                }
-            }
+        final boolean useContactsDictionary = prefs.getBoolean(PREF_USE_CONTACTS_KEY, true);
+        mDictionaryFacilitatorCache.setUseContactsDictionary(useContactsDictionary);
     }
 
     @Override
@@ -221,24 +174,36 @@
     public boolean isValidWord(final Locale locale, final String word) {
         mSemaphore.acquireUninterruptibly();
         try {
+            if (mUserDictionaryLookup.isValidWord(word, locale)) {
+                if (DEBUG) {
+                    Log.d(TAG, "mUserDictionaryLookup.isValidWord(" + word + ")=true");
+                }
+                return true;
+            } else {
+                if (DEBUG) {
+                    Log.d(TAG, "mUserDictionaryLookup.isValidWord(" + word + ")=false");
+                }
+            }
             DictionaryFacilitator dictionaryFacilitatorForLocale =
-                    getDictionaryFacilitatorForLocaleLocked(locale);
-            return dictionaryFacilitatorForLocale.isValidWord(word, false /* igroreCase */);
+                    mDictionaryFacilitatorCache.get(locale);
+            return dictionaryFacilitatorForLocale.isValidSpellingWord(word);
         } finally {
             mSemaphore.release();
         }
     }
 
-    public SuggestionResults getSuggestionResults(final Locale locale, final WordComposer composer,
-            final PrevWordsInfo prevWordsInfo, final ProximityInfo proximityInfo) {
+    public SuggestionResults getSuggestionResults(final Locale locale,
+            final ComposedData composedData, final NgramContext ngramContext,
+            @Nonnull final Keyboard keyboard) {
         Integer sessionId = null;
         mSemaphore.acquireUninterruptibly();
         try {
             sessionId = mSessionIdPool.poll();
             DictionaryFacilitator dictionaryFacilitatorForLocale =
-                    getDictionaryFacilitatorForLocaleLocked(locale);
-            return dictionaryFacilitatorForLocale.getSuggestionResults(composer, prevWordsInfo,
-                    proximityInfo, mSettingsValuesForSuggestion, sessionId);
+                    mDictionaryFacilitatorCache.get(locale);
+            return dictionaryFacilitatorForLocale.getSuggestionResults(composedData, ngramContext,
+                    keyboard, mSettingsValuesForSuggestion,
+                    sessionId, SuggestedWords.INPUT_STYLE_TYPING);
         } finally {
             if (sessionId != null) {
                 mSessionIdPool.add(sessionId);
@@ -251,56 +216,18 @@
         mSemaphore.acquireUninterruptibly();
         try {
             final DictionaryFacilitator dictionaryFacilitator =
-                    getDictionaryFacilitatorForLocaleLocked(locale);
-            return dictionaryFacilitator.hasInitializedMainDictionary();
+                    mDictionaryFacilitatorCache.get(locale);
+            return dictionaryFacilitator.hasAtLeastOneInitializedMainDictionary();
         } finally {
             mSemaphore.release();
         }
     }
 
-    private DictionaryFacilitator getDictionaryFacilitatorForLocaleLocked(final Locale locale) {
-        DictionaryFacilitator dictionaryFacilitatorForLocale =
-                mDictionaryFacilitatorCache.get(locale);
-        if (dictionaryFacilitatorForLocale == null) {
-            dictionaryFacilitatorForLocale = new DictionaryFacilitator();
-            mDictionaryFacilitatorCache.put(locale, dictionaryFacilitatorForLocale);
-            mCachedLocales.add(locale);
-            resetDictionariesForLocale(this /* context */, dictionaryFacilitatorForLocale,
-                    locale, mUseContactsDictionary);
-        }
-        return dictionaryFacilitatorForLocale;
-    }
-
-    private static void resetDictionariesForLocale(final Context context,
-            final DictionaryFacilitator dictionaryFacilitator, final Locale locale,
-            final boolean useContactsDictionary) {
-        dictionaryFacilitator.resetDictionariesWithDictNamePrefix(context, locale,
-                useContactsDictionary, false /* usePersonalizedDicts */,
-                false /* forceReloadMainDictionary */, null /* listener */,
-                DICTIONARY_NAME_PREFIX);
-        for (int i = 0; i < MAX_RETRY_COUNT_FOR_WAITING_FOR_LOADING_DICT; i++) {
-            try {
-                dictionaryFacilitator.waitForLoadingMainDictionary(
-                        WAIT_FOR_LOADING_MAIN_DICT_IN_MILLISECONDS, TimeUnit.MILLISECONDS);
-                return;
-            } catch (final InterruptedException e) {
-                Log.i(TAG, "Interrupted during waiting for loading main dictionary.", e);
-                if (i < MAX_RETRY_COUNT_FOR_WAITING_FOR_LOADING_DICT - 1) {
-                    Log.i(TAG, "Retry", e);
-                } else {
-                    Log.w(TAG, "Give up retrying. Retried "
-                            + MAX_RETRY_COUNT_FOR_WAITING_FOR_LOADING_DICT + " times.", e);
-                }
-            }
-        }
-    }
-
     @Override
     public boolean onUnbind(final Intent intent) {
         mSemaphore.acquireUninterruptibly(MAX_NUM_OF_THREADS_READ_DICTIONARY);
         try {
-            mDictionaryFacilitatorCache.evictAll();
-            mCachedLocales.clear();
+            mDictionaryFacilitatorCache.closeDictionaries();
         } finally {
             mSemaphore.release(MAX_NUM_OF_THREADS_READ_DICTIONARY);
         }
@@ -334,7 +261,7 @@
         final KeyboardLayoutSet.Builder builder = new KeyboardLayoutSet.Builder(this, editorInfo);
         builder.setKeyboardGeometry(
                 SPELLCHECKER_DUMMY_KEYBOARD_WIDTH, SPELLCHECKER_DUMMY_KEYBOARD_HEIGHT);
-        builder.setSubtype(subtype);
+        builder.setSubtype(RichInputMethodSubtype.getRichInputMethodSubtype(subtype));
         builder.setIsSpellChecker(true /* isSpellChecker */);
         builder.disableTouchPositionCorrectionData();
         return builder.build();
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerSession.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerSession.java
index 34e0119..2c690ae 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerSession.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerSession.java
@@ -16,8 +16,10 @@
 
 package com.android.inputmethod.latin.spellcheck;
 
+import android.annotation.TargetApi;
 import android.content.res.Resources;
 import android.os.Binder;
+import android.os.Build;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.textservice.SentenceSuggestionsInfo;
@@ -25,8 +27,8 @@
 import android.view.textservice.TextInfo;
 
 import com.android.inputmethod.compat.TextInfoCompatUtils;
-import com.android.inputmethod.latin.PrevWordsInfo;
-import com.android.inputmethod.latin.utils.StringUtils;
+import com.android.inputmethod.latin.NgramContext;
+import com.android.inputmethod.latin.utils.SpannableStringUtils;
 
 import java.util.ArrayList;
 import java.util.Locale;
@@ -42,6 +44,7 @@
         mResources = service.getResources();
     }
 
+    @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
     private SentenceSuggestionsInfo fixWronglyInvalidatedWordWithSingleQuote(TextInfo ti,
             SentenceSuggestionsInfo ssi) {
         final CharSequence typedText = TextInfoCompatUtils.getCharSequenceOrString(ti);
@@ -62,15 +65,16 @@
             final int offset = ssi.getOffsetAt(i);
             final int length = ssi.getLengthAt(i);
             final CharSequence subText = typedText.subSequence(offset, offset + length);
-            final PrevWordsInfo prevWordsInfo =
-                    new PrevWordsInfo(new PrevWordsInfo.WordInfo(currentWord));
+            final NgramContext ngramContext =
+                    new NgramContext(new NgramContext.WordInfo(currentWord));
             currentWord = subText;
             if (!subText.toString().contains(AndroidSpellCheckerService.SINGLE_QUOTE)) {
                 continue;
             }
-            final CharSequence[] splitTexts = StringUtils.split(subText,
+            // Split preserving spans.
+            final CharSequence[] splitTexts = SpannableStringUtils.split(subText,
                     AndroidSpellCheckerService.SINGLE_QUOTE,
-                    true /* preserveTrailingEmptySegments */ );
+                    true /* preserveTrailingEmptySegments */);
             if (splitTexts == null || splitTexts.length <= 1) {
                 continue;
             }
@@ -80,7 +84,7 @@
                 if (TextUtils.isEmpty(splitText)) {
                     continue;
                 }
-                if (mSuggestionsCache.getSuggestionsFromCache(splitText.toString(), prevWordsInfo)
+                if (mSuggestionsCache.getSuggestionsFromCache(splitText.toString(), ngramContext)
                         == null) {
                     continue;
                 }
@@ -149,7 +153,7 @@
      * @param textInfos an array of the text metadata
      * @param suggestionsLimit the maximum number of suggestions to be returned
      * @return an array of {@link SentenceSuggestionsInfo} returned by
-     * {@link SpellCheckerService.Session#onGetSuggestions(TextInfo, int)}
+     * {@link android.service.textservice.SpellCheckerService.Session#onGetSuggestions(TextInfo, int)}
      */
     private SentenceSuggestionsInfo[] splitAndSuggest(TextInfo[] textInfos, int suggestionsLimit) {
         if (textInfos == null || textInfos.length == 0) {
@@ -208,10 +212,10 @@
                 } else {
                     prevWord = null;
                 }
-                final PrevWordsInfo prevWordsInfo =
-                        new PrevWordsInfo(new PrevWordsInfo.WordInfo(prevWord));
+                final NgramContext ngramContext =
+                        new NgramContext(new NgramContext.WordInfo(prevWord));
                 final TextInfo textInfo = textInfos[i];
-                retval[i] = onGetSuggestionsInternal(textInfo, prevWordsInfo, suggestionsLimit);
+                retval[i] = onGetSuggestionsInternal(textInfo, ngramContext, suggestionsLimit);
                 retval[i].setCookieAndSequence(textInfo.getCookie(), textInfo.getSequence());
             }
             return retval;
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java
index d668672..da5c717 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidWordLevelSpellCheckerSession.java
@@ -29,19 +29,19 @@
 
 import com.android.inputmethod.compat.SuggestionsInfoCompatUtils;
 import com.android.inputmethod.keyboard.Keyboard;
-import com.android.inputmethod.keyboard.ProximityInfo;
-import com.android.inputmethod.latin.Constants;
-import com.android.inputmethod.latin.PrevWordsInfo;
+import com.android.inputmethod.latin.NgramContext;
 import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
 import com.android.inputmethod.latin.WordComposer;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.LocaleUtils;
+import com.android.inputmethod.latin.common.StringUtils;
 import com.android.inputmethod.latin.utils.BinaryDictionaryUtils;
-import com.android.inputmethod.latin.utils.CoordinateUtils;
-import com.android.inputmethod.latin.utils.LocaleUtils;
 import com.android.inputmethod.latin.utils.ScriptUtils;
-import com.android.inputmethod.latin.utils.StringUtils;
+import com.android.inputmethod.latin.utils.StatsUtils;
 import com.android.inputmethod.latin.utils.SuggestionResults;
 
 import java.util.ArrayList;
+import java.util.List;
 import java.util.Locale;
 
 public abstract class AndroidWordLevelSpellCheckerSession extends Session {
@@ -73,27 +73,25 @@
         private final LruCache<String, SuggestionsParams> mUnigramSuggestionsInfoCache =
                 new LruCache<>(MAX_CACHE_SIZE);
 
-        // TODO: Support n-gram input
-        private static String generateKey(final String query, final PrevWordsInfo prevWordsInfo) {
-            if (TextUtils.isEmpty(query) || !prevWordsInfo.isValid()) {
+        private static String generateKey(final String query, final NgramContext ngramContext) {
+            if (TextUtils.isEmpty(query) || !ngramContext.isValid()) {
                 return query;
             }
-            return query + CHAR_DELIMITER + prevWordsInfo;
+            return query + CHAR_DELIMITER + ngramContext;
         }
 
         public SuggestionsParams getSuggestionsFromCache(String query,
-                final PrevWordsInfo prevWordsInfo) {
-            return mUnigramSuggestionsInfoCache.get(generateKey(query, prevWordsInfo));
+                final NgramContext ngramContext) {
+            return mUnigramSuggestionsInfoCache.get(generateKey(query, ngramContext));
         }
 
-        public void putSuggestionsToCache(
-                final String query, final PrevWordsInfo prevWordsInfo,
+        public void putSuggestionsToCache(final String query, final NgramContext ngramContext,
                 final String[] suggestions, final int flags) {
             if (suggestions == null || TextUtils.isEmpty(query)) {
                 return;
             }
             mUnigramSuggestionsInfoCache.put(
-                    generateKey(query, prevWordsInfo), new SuggestionsParams(suggestions, flags));
+                    generateKey(query, ngramContext), new SuggestionsParams(suggestions, flags));
         }
 
         public void clearCache() {
@@ -117,7 +115,8 @@
     @Override
     public void onCreate() {
         final String localeString = getLocale();
-        mLocale = LocaleUtils.constructLocaleFromString(localeString);
+        mLocale = (null == localeString) ? null
+                : LocaleUtils.constructLocaleFromString(localeString);
         mScript = ScriptUtils.getScriptFromSpellCheckerLocale(mLocale);
     }
 
@@ -223,12 +222,11 @@
     }
 
     protected SuggestionsInfo onGetSuggestionsInternal(
-            final TextInfo textInfo, final PrevWordsInfo prevWordsInfo,
-            final int suggestionsLimit) {
+            final TextInfo textInfo, final NgramContext ngramContext, final int suggestionsLimit) {
         try {
             final String inText = textInfo.getText();
             final SuggestionsParams cachedSuggestionsParams =
-                    mSuggestionsCache.getSuggestionsFromCache(inText, prevWordsInfo);
+                    mSuggestionsCache.getSuggestionsFromCache(inText, ngramContext);
             if (cachedSuggestionsParams != null) {
                 if (DBG) {
                     Log.d(TAG, "Cache hit: " + inText + ", " + cachedSuggestionsParams.mFlags);
@@ -262,31 +260,28 @@
             final String text = inText.replaceAll(
                     AndroidSpellCheckerService.APOSTROPHE, AndroidSpellCheckerService.SINGLE_QUOTE);
             final int capitalizeType = StringUtils.getCapitalizationType(text);
-            boolean isInDict = true;
             if (!mService.hasMainDictionaryForLocale(mLocale)) {
                 return AndroidSpellCheckerService.getNotInDictEmptySuggestions(
                         false /* reportAsTypo */);
             }
             final Keyboard keyboard = mService.getKeyboardForLocale(mLocale);
+            if (null == keyboard) {
+                Log.d(TAG, "No keyboard for locale: " + mLocale);
+                // If there is no keyboard for this locale, don't do any spell-checking.
+                return AndroidSpellCheckerService.getNotInDictEmptySuggestions(
+                        false /* reportAsTypo */);
+            }
             final WordComposer composer = new WordComposer();
             final int[] codePoints = StringUtils.toCodePointArray(text);
             final int[] coordinates;
-            final ProximityInfo proximityInfo;
-            if (null == keyboard) {
-                coordinates = CoordinateUtils.newCoordinateArray(codePoints.length,
-                        Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE);
-                proximityInfo = null;
-            } else {
-                coordinates = keyboard.getCoordinates(codePoints);
-                proximityInfo = keyboard.getProximityInfo();
-            }
+            coordinates = keyboard.getCoordinates(codePoints);
             composer.setComposingWord(codePoints, coordinates);
             // TODO: Don't gather suggestions if the limit is <= 0 unless necessary
             final SuggestionResults suggestionResults = mService.getSuggestionResults(
-                    mLocale, composer, prevWordsInfo, proximityInfo);
+                    mLocale, composer.getComposedDataSnapshot(), ngramContext, keyboard);
             final Result result = getResult(capitalizeType, mLocale, suggestionsLimit,
                     mService.getRecommendedThreshold(), text, suggestionResults);
-            isInDict = isInDictForAnyCapitalization(text, capitalizeType);
+            final boolean isInDict = isInDictForAnyCapitalization(text, capitalizeType);
             if (DBG) {
                 Log.i(TAG, "Spell checking results for " + text + " with suggestion limit "
                         + suggestionsLimit);
@@ -299,6 +294,15 @@
                     }
                 }
             }
+            // Handle word not in dictionary.
+            // This is called only once per unique word, so entering multiple
+            // instances of the same word does not result in more than one call
+            // to this method.
+            // Also, upon changing the orientation of the device, this is called
+            // again for every unique invalid word in the text box.
+            if (!isInDict) {
+                StatsUtils.onInvalidWordIdentification(text);
+            }
 
             final int flags =
                     (isInDict ? SuggestionsInfo.RESULT_ATTR_IN_THE_DICTIONARY
@@ -308,26 +312,24 @@
                                     .getValueOf_RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS()
                             : 0);
             final SuggestionsInfo retval = new SuggestionsInfo(flags, result.mSuggestions);
-            mSuggestionsCache.putSuggestionsToCache(text, prevWordsInfo, result.mSuggestions,
+            mSuggestionsCache.putSuggestionsToCache(text, ngramContext, result.mSuggestions,
                     flags);
             return retval;
         } catch (RuntimeException e) {
             // Don't kill the keyboard if there is a bug in the spell checker
             if (DBG) {
                 throw e;
-            } else {
-                Log.e(TAG, "Exception while spellcheking", e);
-                return AndroidSpellCheckerService.getNotInDictEmptySuggestions(
-                        false /* reportAsTypo */);
             }
+            Log.e(TAG, "Exception while spellcheking", e);
+            return AndroidSpellCheckerService.getNotInDictEmptySuggestions(
+                    false /* reportAsTypo */);
         }
     }
 
     private static final class Result {
         public final String[] mSuggestions;
         public final boolean mHasRecommendedSuggestions;
-        public Result(final String[] gatheredSuggestions,
-                final boolean hasRecommendedSuggestions) {
+        public Result(final String[] gatheredSuggestions, final boolean hasRecommendedSuggestions) {
             mSuggestions = gatheredSuggestions;
             mHasRecommendedSuggestions = hasRecommendedSuggestions;
         }
@@ -361,14 +363,15 @@
         StringUtils.removeDupes(suggestions);
         // This returns a String[], while toArray() returns an Object[] which cannot be cast
         // into a String[].
+        final List<String> gatheredSuggestionsList =
+                suggestions.subList(0, Math.min(suggestions.size(), suggestionsLimit));
         final String[] gatheredSuggestions =
-                suggestions.subList(0, Math.min(suggestions.size(), suggestionsLimit))
-                        .toArray(EMPTY_STRING_ARRAY);
+                gatheredSuggestionsList.toArray(new String[gatheredSuggestionsList.size()]);
 
         final int bestScore = suggestionResults.first().mScore;
         final String bestSuggestion = suggestions.get(0);
         final float normalizedScore = BinaryDictionaryUtils.calcNormalizedScore(
-                originalText, bestSuggestion.toString(), bestScore);
+                originalText, bestSuggestion, bestScore);
         final boolean hasRecommendedSuggestions = (normalizedScore > recommendedThreshold);
         if (DBG) {
             Log.i(TAG, "Best suggestion : " + bestSuggestion + ", score " + bestScore);
@@ -387,8 +390,7 @@
      * That's what the following method does.
      */
     @Override
-    public SuggestionsInfo onGetSuggestions(final TextInfo textInfo,
-            final int suggestionsLimit) {
+    public SuggestionsInfo onGetSuggestions(final TextInfo textInfo, final int suggestionsLimit) {
         long ident = Binder.clearCallingIdentity();
         try {
             return onGetSuggestionsInternal(textInfo, suggestionsLimit);
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/SentenceLevelAdapter.java b/java/src/com/android/inputmethod/latin/spellcheck/SentenceLevelAdapter.java
index 51c4b1e..10c458c 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/SentenceLevelAdapter.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/SentenceLevelAdapter.java
@@ -16,13 +16,15 @@
 
 package com.android.inputmethod.latin.spellcheck;
 
+import android.annotation.TargetApi;
 import android.content.res.Resources;
+import android.os.Build;
 import android.view.textservice.SentenceSuggestionsInfo;
 import android.view.textservice.SuggestionsInfo;
 import android.view.textservice.TextInfo;
 
 import com.android.inputmethod.compat.TextInfoCompatUtils;
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.common.Constants;
 import com.android.inputmethod.latin.settings.SpacingAndPunctuations;
 import com.android.inputmethod.latin.utils.RunInLocale;
 
@@ -76,19 +78,19 @@
     private static class WordIterator {
         private final SpacingAndPunctuations mSpacingAndPunctuations;
         public WordIterator(final Resources res, final Locale locale) {
-            final RunInLocale<SpacingAndPunctuations> job
-                    = new RunInLocale<SpacingAndPunctuations>() {
+            final RunInLocale<SpacingAndPunctuations> job =
+                    new RunInLocale<SpacingAndPunctuations>() {
                 @Override
-                protected SpacingAndPunctuations job(final Resources res) {
-                    return new SpacingAndPunctuations(res);
+                protected SpacingAndPunctuations job(final Resources r) {
+                    return new SpacingAndPunctuations(r);
                 }
             };
             mSpacingAndPunctuations = job.runInLocale(res, locale);
         }
 
-        public int getEndOfWord(final CharSequence sequence, int index) {
+        public int getEndOfWord(final CharSequence sequence, final int fromIndex) {
             final int length = sequence.length();
-            index = index < 0 ? 0 : Character.offsetByCodePoints(sequence, index, 1);
+            int index = fromIndex < 0 ? 0 : Character.offsetByCodePoints(sequence, fromIndex, 1);
             while (index < length) {
                 final int codePoint = Character.codePointAt(sequence, index);
                 if (mSpacingAndPunctuations.isWordSeparator(codePoint)) {
@@ -111,12 +113,12 @@
             return index;
         }
 
-        public int getBeginningOfNextWord(final CharSequence sequence, int index) {
+        public int getBeginningOfNextWord(final CharSequence sequence, final int fromIndex) {
             final int length = sequence.length();
-            if (index >= length) {
+            if (fromIndex >= length) {
                 return -1;
             }
-            index = index < 0 ? 0 : Character.offsetByCodePoints(sequence, index, 1);
+            int index = fromIndex < 0 ? 0 : Character.offsetByCodePoints(sequence, fromIndex, 1);
             while (index < length) {
                 final int codePoint = Character.codePointAt(sequence, index);
                 if (!mSpacingAndPunctuations.isWordSeparator(codePoint)) {
@@ -140,14 +142,13 @@
         final int cookie = originalTextInfo.getCookie();
         final int start = -1;
         final int end = originalText.length();
-        final ArrayList<SentenceWordItem> wordItems = new ArrayList<SentenceWordItem>();
+        final ArrayList<SentenceWordItem> wordItems = new ArrayList<>();
         int wordStart = wordIterator.getBeginningOfNextWord(originalText, start);
         int wordEnd = wordIterator.getEndOfWord(originalText, wordStart);
         while (wordStart <= end && wordEnd != -1 && wordStart != -1) {
             if (wordEnd >= start && wordEnd > wordStart) {
-                CharSequence subSequence = originalText.subSequence(wordStart, wordEnd).toString();
-                final TextInfo ti = TextInfoCompatUtils.newInstance(subSequence, 0,
-                        subSequence.length(), cookie, subSequence.hashCode());
+                final TextInfo ti = TextInfoCompatUtils.newInstance(originalText, wordStart,
+                        wordEnd, cookie, originalText.subSequence(wordStart, wordEnd).hashCode());
                 wordItems.add(new SentenceWordItem(ti, wordStart, wordEnd));
             }
             wordStart = wordIterator.getBeginningOfNextWord(originalText, wordEnd);
@@ -159,6 +160,7 @@
         return new SentenceTextInfoParams(originalTextInfo, wordItems);
     }
 
+    @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
     public static SentenceSuggestionsInfo reconstructSuggestions(
             SentenceTextInfoParams originalTextInfoParams, SuggestionsInfo[] results) {
         if (results == null || results.length == 0) {
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/SpellCheckerSettingsActivity.java b/java/src/com/android/inputmethod/latin/spellcheck/SpellCheckerSettingsActivity.java
index df9a761..294666b 100644
--- a/java/src/com/android/inputmethod/latin/spellcheck/SpellCheckerSettingsActivity.java
+++ b/java/src/com/android/inputmethod/latin/spellcheck/SpellCheckerSettingsActivity.java
@@ -18,7 +18,9 @@
 
 import com.android.inputmethod.latin.utils.FragmentUtils;
 
+import android.annotation.TargetApi;
 import android.content.Intent;
+import android.os.Build;
 import android.os.Bundle;
 import android.preference.PreferenceActivity;
 
@@ -41,8 +43,8 @@
         return modIntent;
     }
 
-    // TODO: Uncomment the override annotation once we start using SDK version 19.
-    // @Override
+    @TargetApi(Build.VERSION_CODES.KITKAT)
+    @Override
     public boolean isValidFragment(String fragmentName) {
         return FragmentUtils.isValidFragment(fragmentName);
     }
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/UserDictionaryLookup.java b/java/src/com/android/inputmethod/latin/spellcheck/UserDictionaryLookup.java
new file mode 100644
index 0000000..f2491f4
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/spellcheck/UserDictionaryLookup.java
@@ -0,0 +1,420 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.inputmethod.latin.spellcheck;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.database.ContentObserver;
+import android.database.Cursor;
+import android.net.Uri;
+import android.provider.UserDictionary;
+import android.util.Log;
+
+import com.android.inputmethod.annotations.UsedForTesting;
+import com.android.inputmethod.latin.common.LocaleUtils;
+import com.android.inputmethod.latin.utils.ExecutorUtils;
+
+import java.io.Closeable;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.ScheduledFuture;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * UserDictionaryLookup provides the ability to lookup into the system-wide "Personal dictionary".
+ *
+ * Note, that the initial dictionary loading happens asynchronously so it is possible (hopefully
+ * rarely) that isValidWord is called before the initial load has started.
+ *
+ * The caller should explicitly call close() when the object is no longer needed, in order to
+ * release any resources and references to this object.  A service should create this object in
+ * onCreate and close() it in onDestroy.
+ */
+public class UserDictionaryLookup implements Closeable {
+    private static final String TAG = UserDictionaryLookup.class.getSimpleName();
+
+    /**
+     * This guards the execution of any Log.d() logging, so that if false, they are not even
+     */
+    private static final boolean DEBUG = false;
+
+    /**
+     * To avoid loading too many dictionary entries in memory, we cap them at this number.  If
+     * that number is exceeded, the lowest-frequency items will be dropped.  Note, there is no
+     * explicit cap on the number of locales in every entry.
+     */
+    private static final int MAX_NUM_ENTRIES = 1000;
+
+    /**
+     * The delay (in milliseconds) to impose on reloads.  Previously scheduled reloads will be
+     * cancelled if a new reload is scheduled before the delay expires.  Thus, only the last
+     * reload in the series of frequent reloads will execute.
+     *
+     * Note, this value should be low enough to allow the "Add to dictionary" feature in the
+     * TextView correction (red underline) drop-down menu to work properly in the following case:
+     *
+     *   1. User types OOV (out-of-vocabulary) word.
+     *   2. The OOV is red-underlined.
+     *   3. User selects "Add to dictionary".  The red underline disappears while the OOV is
+     *      in a composing span.
+     *   4. The user taps space.  The red underline should NOT reappear.  If this value is very
+     *      high and the user performs the space tap fast enough, the red underline may reappear.
+     */
+    @UsedForTesting
+    static final int RELOAD_DELAY_MS = 200;
+
+    private final ContentResolver mResolver;
+
+    /**
+     * Runnable that calls loadUserDictionary().
+     */
+    private class UserDictionaryLoader implements Runnable {
+        @Override
+        public void run() {
+            if (DEBUG) {
+                Log.d(TAG, "Executing (re)load");
+            }
+            loadUserDictionary();
+        }
+    }
+    private final UserDictionaryLoader mLoader = new UserDictionaryLoader();
+
+    /**
+     *  Content observer for UserDictionary changes.  It has the following properties:
+     *    1. It spawns off a UserDictionary reload in another thread, after some delay.
+     *    2. It cancels previously scheduled reloads, and only executes the latest.
+     *    3. It may be called multiple times quickly in succession (and is in fact called so
+     *       when UserDictionary is edited through its settings UI, when sometimes multiple
+     *       notifications are sent for the edited entry, but also for the entire UserDictionary).
+     */
+    private class UserDictionaryContentObserver extends ContentObserver {
+        public UserDictionaryContentObserver() {
+            super(null);
+        }
+
+        @Override
+        public boolean deliverSelfNotifications() {
+            return true;
+        }
+
+        // Support pre-API16 platforms.
+        @Override
+        public void onChange(boolean selfChange) {
+            onChange(selfChange, null);
+        }
+
+        @Override
+        public void onChange(boolean selfChange, Uri uri) {
+            if (DEBUG) {
+                Log.d(TAG, "Received content observer onChange notification for URI: " + uri);
+            }
+            // Cancel (but don't interrupt) any pending reloads (except the initial load).
+            if (mReloadFuture != null && !mReloadFuture.isCancelled() &&
+                    !mReloadFuture.isDone()) {
+                // Note, that if already cancelled or done, this will do nothing.
+                boolean isCancelled = mReloadFuture.cancel(false);
+                if (DEBUG) {
+                    if (isCancelled) {
+                        Log.d(TAG, "Successfully canceled previous reload request");
+                    } else {
+                        Log.d(TAG, "Unable to cancel previous reload request");
+                    }
+                }
+            }
+
+            if (DEBUG) {
+                Log.d(TAG, "Scheduling reload in " + RELOAD_DELAY_MS + " ms");
+            }
+
+            // Schedule a new reload after RELOAD_DELAY_MS.
+            mReloadFuture = ExecutorUtils.getBackgroundExecutor(ExecutorUtils.SPELLING)
+                    .schedule(mLoader, RELOAD_DELAY_MS, TimeUnit.MILLISECONDS);
+        }
+    }
+    private final ContentObserver mObserver = new UserDictionaryContentObserver();
+
+    /**
+     * Indicates that a load is in progress, so no need for another.
+     */
+    private AtomicBoolean mIsLoading = new AtomicBoolean(false);
+
+    /**
+     * Indicates that this lookup object has been close()d.
+     */
+    private AtomicBoolean mIsClosed = new AtomicBoolean(false);
+
+    /**
+     * We store a map from a dictionary word to the set of locales it belongs
+     * in. We then iterate over the set of locales to find a match using
+     * LocaleUtils.
+     */
+    private volatile HashMap<String, ArrayList<Locale>> mDictWords;
+
+    /**
+     *  The last-scheduled reload future.  Saved in order to cancel a pending reload if a new one
+     * is coming.
+     */
+    private volatile ScheduledFuture<?> mReloadFuture;
+
+    /**
+     * @param context the context from which to obtain content resolver
+     */
+    public UserDictionaryLookup(Context context) {
+        if (DEBUG) {
+            Log.d(TAG, "UserDictionaryLookup constructor with context: " + context);
+        }
+
+        // Obtain a content resolver.
+        mResolver = context.getContentResolver();
+
+        // Schedule the initial load to run immediately.  It's possible that the first call to
+        // isValidWord occurs before the dictionary has actually loaded, so it should not
+        // assume that the dictionary has been loaded.
+        ExecutorUtils.getBackgroundExecutor(ExecutorUtils.SPELLING).execute(mLoader);
+
+        // Register the observer to be notified on changes to the UserDictionary and all individual
+        // items.
+        //
+        // If the user is interacting with the UserDictionary settings UI, or with the
+        // "Add to dictionary" drop-down option, duplicate notifications will be sent for the same
+        // edit: if a new entry is added, there is a notification for the entry itself, and
+        // separately for the entire dictionary. However, when used programmatically,
+        // only notifications for the specific edits are sent. Thus, the observer is registered to
+        // receive every possible notification, and instead has throttling logic to avoid doing too
+        // many reloads.
+        mResolver.registerContentObserver(
+                UserDictionary.Words.CONTENT_URI, true /* notifyForDescendents */, mObserver);
+    }
+
+    /**
+     * To be called by the garbage collector in the off chance that the service did not clean up
+     * properly.  Do not rely on this getting called, and make sure close() is called explicitly.
+     */
+    @Override
+    public void finalize() throws Throwable {
+        try {
+            if (DEBUG) {
+                Log.d(TAG, "Finalize called, calling close()");
+            }
+            close();
+        } finally {
+            super.finalize();
+        }
+    }
+
+    /**
+     * Cleans up UserDictionaryLookup: shuts down any extra threads and unregisters the observer.
+     *
+     * It is safe, but not advised to call this multiple times, and isValidWord would continue to
+     * work, but no data will be reloaded any longer.
+     */
+    @Override
+    public void close() {
+        if (DEBUG) {
+            Log.d(TAG, "Close called (no pun intended), cleaning up executor and observer");
+        }
+        if (mIsClosed.compareAndSet(false, true)) {
+            // Unregister the content observer.
+            mResolver.unregisterContentObserver(mObserver);
+        }
+    }
+
+    /**
+     * Returns true if the initial load has been performed.
+     *
+     * @return true if the initial load is successful
+     */
+    @UsedForTesting
+    boolean isLoaded() {
+        return mDictWords != null;
+    }
+
+    /**
+     * Determines if the given word is a valid word in the given locale based on the UserDictionary.
+     * It tries hard to find a match: for example, casing is ignored and if the word is present in a
+     * more general locale (e.g. en or all locales), and isValidWord is asking for a more specific
+     * locale (e.g. en_US), it will be considered a match.
+     *
+     * @param word the word to match
+     * @param locale the locale in which to match the word
+     * @return true iff the word has been matched for this locale in the UserDictionary.
+     */
+    public boolean isValidWord(
+            final String word, final Locale locale) {
+        if (!isLoaded()) {
+            // This is a corner case in the event the initial load of UserDictionary has not
+            // been loaded. In that case, we assume the word is not a valid word in
+            // UserDictionary.
+            if (DEBUG) {
+                Log.d(TAG, "isValidWord invoked, but initial load not complete");
+            }
+            return false;
+        }
+
+        // Atomically obtain the current copy of mDictWords;
+        final HashMap<String, ArrayList<Locale>> dictWords = mDictWords;
+
+        if (DEBUG) {
+            Log.d(TAG, "isValidWord invoked for word [" + word +
+                    "] in locale " + locale);
+        }
+        // Lowercase the word using the given locale. Note, that dictionary
+        // words are lowercased using their locale, and theoretically the
+        // lowercasing between two matching locales may differ. For simplicity
+        // we ignore that possibility.
+        final String lowercased = word.toLowerCase(locale);
+        final ArrayList<Locale> dictLocales = dictWords.get(lowercased);
+        if (null == dictLocales) {
+            if (DEBUG) {
+                Log.d(TAG, "isValidWord=false, since there is no entry for " +
+                        "lowercased word [" + lowercased + "]");
+            }
+            return false;
+        } else {
+            if (DEBUG) {
+                Log.d(TAG, "isValidWord found an entry for lowercased word [" + lowercased +
+                        "]; examining locales");
+            }
+            // Iterate over the locales this word is in.
+            for (final Locale dictLocale : dictLocales) {
+                final int matchLevel = LocaleUtils.getMatchLevel(dictLocale.toString(),
+                        locale.toString());
+                if (DEBUG) {
+                    Log.d(TAG, "matchLevel for dictLocale=" + dictLocale + ", locale=" +
+                            locale + " is " + matchLevel);
+                }
+                if (LocaleUtils.isMatch(matchLevel)) {
+                    if (DEBUG) {
+                        Log.d(TAG, "isValidWord=true, since matchLevel " + matchLevel +
+                                " is a match");
+                    }
+                    return true;
+                }
+                if (DEBUG) {
+                    Log.d(TAG, "matchLevel " + matchLevel + " is not a match");
+                }
+            }
+            if (DEBUG) {
+                Log.d(TAG, "isValidWord=false, since none of the locales matched");
+            }
+            return false;
+        }
+    }
+
+    /**
+     * Loads the UserDictionary in the current thread.
+     *
+     * Only one reload can happen at a time. If already running, will exit quickly.
+     */
+    private void loadUserDictionary() {
+        // Bail out if already in the process of loading.
+        if (!mIsLoading.compareAndSet(false, true)) {
+            if (DEBUG) {
+                Log.d(TAG, "Already in the process of loading UserDictionary, skipping");
+            }
+            return;
+        }
+        if (DEBUG) {
+            Log.d(TAG, "Loading UserDictionary");
+        }
+        HashMap<String, ArrayList<Locale>> dictWords = new HashMap<>();
+        // Load the UserDictionary.  Request that items be returned in the default sort order
+        // for UserDictionary, which is by frequency.
+        Cursor cursor = mResolver.query(UserDictionary.Words.CONTENT_URI,
+                null, null, null, UserDictionary.Words.DEFAULT_SORT_ORDER);
+        if (null == cursor || cursor.getCount() < 1) {
+            if (DEBUG) {
+                Log.d(TAG, "No entries found in UserDictionary");
+            }
+        } else {
+            // Iterate over the entries in the UserDictionary.  Note, that iteration is in
+            // descending frequency by default.
+            while (dictWords.size() < MAX_NUM_ENTRIES && cursor.moveToNext()) {
+                // If there is no column for locale, skip this entry. An empty
+                // locale on the other hand will not be skipped.
+                final int dictLocaleIndex = cursor.getColumnIndex(
+                        UserDictionary.Words.LOCALE);
+                if (dictLocaleIndex < 0) {
+                    if (DEBUG) {
+                        Log.d(TAG, "Encountered UserDictionary entry " +
+                                "without LOCALE, skipping");
+                    }
+                    continue;
+                }
+                // If there is no column for word, skip this entry.
+                final int dictWordIndex = cursor.getColumnIndex(
+                        UserDictionary.Words.WORD);
+                if (dictWordIndex < 0) {
+                    if (DEBUG) {
+                        Log.d(TAG, "Encountered UserDictionary entry without " +
+                                "WORD, skipping");
+                    }
+                    continue;
+                }
+                // If the word is null, skip this entry.
+                final String rawDictWord = cursor.getString(dictWordIndex);
+                if (null == rawDictWord) {
+                    if (DEBUG) {
+                        Log.d(TAG, "Encountered null word");
+                    }
+                    continue;
+                }
+                // If the locale is null, that's interpreted to mean all locales. Note, the special
+                // zz locale for an Alphabet (QWERTY) layout will not match any actual language.
+                String localeString = cursor.getString(dictLocaleIndex);
+                if (null == localeString) {
+                    if (DEBUG) {
+                        Log.d(TAG, "Encountered null locale for word [" +
+                                rawDictWord + "], assuming all locales");
+                    }
+                    // For purposes of LocaleUtils, an empty locale matches
+                    // everything.
+                    localeString = "";
+                }
+                final Locale dictLocale = LocaleUtils.constructLocaleFromString(
+                        localeString);
+                // Lowercase the word before storing it.
+                final String dictWord = rawDictWord.toLowerCase(dictLocale);
+                if (DEBUG) {
+                    Log.d(TAG, "Incorporating UserDictionary word [" + dictWord +
+                            "] for locale " + dictLocale);
+                }
+                // Check if there is an existing entry for this word.
+                ArrayList<Locale> dictLocales = dictWords.get(dictWord);
+                if (null == dictLocales) {
+                    // If there is no entry for this word, create one.
+                    if (DEBUG) {
+                        Log.d(TAG, "Word [" + dictWord +
+                                "] not seen for other locales, creating new entry");
+                    }
+                    dictLocales = new ArrayList<>();
+                    dictWords.put(dictWord, dictLocales);
+                }
+                // Append the locale to the list of locales this word is in.
+                dictLocales.add(dictLocale);
+            }
+        }
+
+        // Atomically replace the copy of mDictWords.
+        mDictWords = dictWords;
+
+        // Allow other calls to loadUserDictionary to execute now.
+        mIsLoading.set(false);
+    }
+}
diff --git a/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java b/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java
index 9d186d4..37ab266 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java
@@ -26,9 +26,9 @@
 import com.android.inputmethod.keyboard.internal.KeyboardBuilder;
 import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
 import com.android.inputmethod.keyboard.internal.KeyboardParams;
-import com.android.inputmethod.latin.Constants;
 import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.SuggestedWords;
+import com.android.inputmethod.latin.common.Constants;
 import com.android.inputmethod.latin.utils.TypefaceUtils;
 
 public final class MoreSuggestions extends Keyboard {
diff --git a/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java b/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java
index f7b6f91..907e3fa 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestionsView.java
@@ -40,6 +40,8 @@
         public abstract void onSuggestionSelected(final SuggestedWordInfo info);
     }
 
+    private boolean mIsInModalMode;
+
     public MoreSuggestionsView(final Context context, final AttributeSet attrs) {
         this(context, attrs, R.attr.moreKeysKeyboardViewStyle);
     }
@@ -53,6 +55,7 @@
     @Override
     public void setKeyboard(final Keyboard keyboard) {
         super.setKeyboard(keyboard);
+        mIsInModalMode = false;
         // With accessibility mode off, {@link #mAccessibilityDelegate} is set to null at the
         // above {@link MoreKeysKeyboardView#setKeyboard(Keyboard)} call.
         // With accessibility mode on, {@link #mAccessibilityDelegate} is set to a
@@ -74,12 +77,17 @@
         updateKeyDrawParams(keyHeight);
     }
 
-    public void adjustVerticalCorrectionForModalMode() {
+    public void setModalMode() {
+        mIsInModalMode = true;
         // Set vertical correction to zero (Reset more keys keyboard sliding allowance
         // {@link R#dimen.config_more_keys_keyboard_slide_allowance}).
         mKeyDetector.setKeyboard(getKeyboard(), -getPaddingLeft(), -getPaddingTop());
     }
 
+    public boolean isInModalMode() {
+        return mIsInModalMode;
+    }
+
     @Override
     protected void onKeyInput(final Key key, final int x, final int y) {
         if (!(key instanceof MoreSuggestionKey)) {
diff --git a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java
index 1e8df89..d8926ff 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripLayoutHelper.java
@@ -28,7 +28,6 @@
 import android.graphics.Typeface;
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
-import android.support.v4.view.ViewCompat;
 import android.text.Spannable;
 import android.text.SpannableString;
 import android.text.Spanned;
@@ -50,16 +49,16 @@
 import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.SuggestedWords;
 import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
-import com.android.inputmethod.latin.define.DebugFlags;
 import com.android.inputmethod.latin.settings.Settings;
 import com.android.inputmethod.latin.settings.SettingsValues;
-import com.android.inputmethod.latin.utils.AutoCorrectionUtils;
 import com.android.inputmethod.latin.utils.ResourceUtils;
-import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 import com.android.inputmethod.latin.utils.ViewLayoutUtils;
 
 import java.util.ArrayList;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 final class SuggestionStripLayoutHelper {
     private static final int DEFAULT_SUGGESTIONS_COUNT_IN_STRIP = 3;
     private static final float DEFAULT_CENTER_SUGGESTION_PERCENTILE = 0.40f;
@@ -94,8 +93,6 @@
     private final int mTypedWordPositionWhenAutocorrect;
     private final Drawable mMoreSuggestionsHint;
     private static final String MORE_SUGGESTIONS_HINT = "\u2026";
-    private static final String LEFTWARDS_ARROW = "\u2190";
-    private static final String RIGHTWARDS_ARROW = "\u2192";
 
     private static final CharacterStyle BOLD_SPAN = new StyleSpan(Typeface.BOLD);
     private static final CharacterStyle UNDERLINE_SPAN = new UnderlineSpan();
@@ -213,15 +210,14 @@
             return word;
         }
 
-        final int len = word.length();
         final Spannable spannedWord = new SpannableString(word);
         final int options = mSuggestionStripOptions;
         if ((isAutoCorrection && (options & AUTO_CORRECT_BOLD) != 0)
                 || (isTypedWordValid && (options & VALID_TYPED_WORD_BOLD) != 0)) {
-            spannedWord.setSpan(BOLD_SPAN, 0, len, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
+            addStyleSpan(spannedWord, BOLD_SPAN);
         }
         if (isAutoCorrection && (options & AUTO_CORRECT_UNDERLINE) != 0) {
-            spannedWord.setSpan(UNDERLINE_SPAN, 0, len, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
+            addStyleSpan(spannedWord, UNDERLINE_SPAN);
         }
         return spannedWord;
     }
@@ -238,9 +234,9 @@
         final SettingsValues settingsValues = Settings.getInstance().getCurrent();
         final boolean shouldOmitTypedWord = shouldOmitTypedWord(suggestedWords.mInputStyle,
                 settingsValues.mGestureFloatingPreviewTextEnabled,
-                settingsValues.mShouldShowUiToAcceptTypedWord);
+                settingsValues.mShouldShowLxxSuggestionUi);
         return getPositionInSuggestionStrip(indexInSuggestedWords, suggestedWords.mWillAutoCorrect,
-                settingsValues.mShouldShowUiToAcceptTypedWord && shouldOmitTypedWord,
+                settingsValues.mShouldShowLxxSuggestionUi && shouldOmitTypedWord,
                 mCenterPositionInStrip, mTypedWordPositionWhenAutocorrect);
     }
 
@@ -319,18 +315,6 @@
         } else {
             color = mColorSuggested;
         }
-        if (DebugFlags.DEBUG_ENABLED && suggestedWords.size() > 1) {
-            // If we auto-correct, then the autocorrection is in slot 0 and the typed word
-            // is in slot 1.
-            if (indexInSuggestedWords == SuggestedWords.INDEX_OF_AUTO_CORRECTION
-                    && suggestedWords.mWillAutoCorrect
-                    && AutoCorrectionUtils.shouldBlockAutoCorrectionBySafetyNet(
-                            suggestedWords.getLabel(SuggestedWords.INDEX_OF_AUTO_CORRECTION),
-                            suggestedWords.getLabel(SuggestedWords.INDEX_OF_TYPED_WORD))) {
-                return 0xFFFF0000;
-            }
-        }
-
         if (suggestedWords.mIsObsoleteSuggestions && !isTypedWord) {
             return applyAlpha(color, mAlphaObsoleted);
         }
@@ -358,25 +342,30 @@
      * @param placerView the view where the debug info will be placed.
      * @return the start index of more suggestions.
      */
-    public int layoutAndReturnStartIndexOfMoreSuggestions(final SuggestedWords suggestedWords,
-            final ViewGroup stripView, final ViewGroup placerView) {
+    public int layoutAndReturnStartIndexOfMoreSuggestions(
+            final Context context,
+            final SuggestedWords suggestedWords,
+            final ViewGroup stripView,
+            final ViewGroup placerView) {
         if (suggestedWords.isPunctuationSuggestions()) {
             return layoutPunctuationsAndReturnStartIndexOfMoreSuggestions(
                     (PunctuationSuggestions)suggestedWords, stripView);
         }
 
+        final int wordCountToShow = suggestedWords.getWordCountToShow(
+                Settings.getInstance().getCurrent().mShouldShowLxxSuggestionUi);
         final int startIndexOfMoreSuggestions = setupWordViewsAndReturnStartIndexOfMoreSuggestions(
                 suggestedWords, mSuggestionsCountInStrip);
         final TextView centerWordView = mWordViews.get(mCenterPositionInStrip);
         final int stripWidth = stripView.getWidth();
         final int centerWidth = getSuggestionWidth(mCenterPositionInStrip, stripWidth);
-        if (suggestedWords.size() == 1 || getTextScaleX(centerWordView.getText(), centerWidth,
+        if (wordCountToShow == 1 || getTextScaleX(centerWordView.getText(), centerWidth,
                 centerWordView.getPaint()) < MIN_TEXT_XSCALE) {
             // Layout only the most relevant suggested word at the center of the suggestion strip
             // by consolidating all slots in the strip.
             final int countInStrip = 1;
-            mMoreSuggestionsAvailable = (suggestedWords.size() > countInStrip);
-            layoutWord(mCenterPositionInStrip, stripWidth - mPadding);
+            mMoreSuggestionsAvailable = (wordCountToShow > countInStrip);
+            layoutWord(context, mCenterPositionInStrip, stripWidth - mPadding);
             stripView.addView(centerWordView);
             setLayoutWeight(centerWordView, 1.0f, ViewGroup.LayoutParams.MATCH_PARENT);
             if (SuggestionStripView.DBG) {
@@ -387,7 +376,8 @@
         }
 
         final int countInStrip = mSuggestionsCountInStrip;
-        mMoreSuggestionsAvailable = (suggestedWords.size() > countInStrip);
+        mMoreSuggestionsAvailable = (wordCountToShow > countInStrip);
+        @SuppressWarnings("unused")
         int x = 0;
         for (int positionInStrip = 0; positionInStrip < countInStrip; positionInStrip++) {
             if (positionInStrip != 0) {
@@ -398,7 +388,7 @@
             }
 
             final int width = getSuggestionWidth(positionInStrip, stripWidth);
-            final TextView wordView = layoutWord(positionInStrip, width);
+            final TextView wordView = layoutWord(context, positionInStrip, width);
             stripView.addView(wordView);
             setLayoutWeight(wordView, getSuggestionWeight(positionInStrip),
                     ViewGroup.LayoutParams.MATCH_PARENT);
@@ -427,7 +417,7 @@
      * @param width the maximum width for layout in pixels.
      * @return the {@link TextView} containing the suggested word appropriately formatted.
      */
-    private TextView layoutWord(final int positionInStrip, final int width) {
+    private TextView layoutWord(final Context context, final int positionInStrip, final int width) {
         final TextView wordView = mWordViews.get(positionInStrip);
         final CharSequence word = wordView.getText();
         if (positionInStrip == mCenterPositionInStrip && mMoreSuggestionsAvailable) {
@@ -441,11 +431,15 @@
         }
         // {@link StyleSpan} in a content description may cause an issue of TTS/TalkBack.
         // Use a simple {@link String} to avoid the issue.
-        wordView.setContentDescription(TextUtils.isEmpty(word) ? null : word.toString());
-        final CharSequence text = getEllipsizedText(word, width, wordView.getPaint());
-        final float scaleX = getTextScaleX(word, width, wordView.getPaint());
+        wordView.setContentDescription(
+                TextUtils.isEmpty(word)
+                    ? context.getResources().getString(R.string.spoken_empty_suggestion)
+                    : word.toString());
+        final CharSequence text = getEllipsizedTextWithSettingScaleX(
+                word, width, wordView.getPaint());
+        final float scaleX = wordView.getTextScaleX();
         wordView.setText(text); // TextView.setText() resets text scale x to 1.0.
-        wordView.setTextScaleX(Math.max(scaleX, MIN_TEXT_XSCALE));
+        wordView.setTextScaleX(scaleX);
         // A <code>wordView</code> should be disabled when <code>word</code> is empty in order to
         // make it unclickable.
         // With accessibility touch exploration on, <code>wordView</code> should be enabled even
@@ -548,55 +542,6 @@
         return countInStrip;
     }
 
-    public void layoutAddToDictionaryHint(final String word, final ViewGroup addToDictionaryStrip) {
-        final boolean shouldShowUiToAcceptTypedWord = Settings.getInstance().getCurrent()
-                .mShouldShowUiToAcceptTypedWord;
-        final int stripWidth = addToDictionaryStrip.getWidth();
-        final int width = shouldShowUiToAcceptTypedWord ? stripWidth
-                : stripWidth - mDividerWidth - mPadding * 2;
-
-        final TextView wordView = (TextView)addToDictionaryStrip.findViewById(R.id.word_to_save);
-        wordView.setTextColor(mColorTypedWord);
-        final int wordWidth = (int)(width * mCenterSuggestionWeight);
-        final CharSequence wordToSave = getEllipsizedText(word, wordWidth, wordView.getPaint());
-        final float wordScaleX = wordView.getTextScaleX();
-        wordView.setText(wordToSave);
-        wordView.setTextScaleX(wordScaleX);
-        setLayoutWeight(wordView, mCenterSuggestionWeight, ViewGroup.LayoutParams.MATCH_PARENT);
-        final int wordVisibility = shouldShowUiToAcceptTypedWord ? View.GONE : View.VISIBLE;
-        wordView.setVisibility(wordVisibility);
-        addToDictionaryStrip.findViewById(R.id.word_to_save_divider).setVisibility(wordVisibility);
-
-        final Resources res = addToDictionaryStrip.getResources();
-        final CharSequence hintText;
-        final int hintWidth;
-        final float hintWeight;
-        final TextView hintView = (TextView)addToDictionaryStrip.findViewById(
-                R.id.hint_add_to_dictionary);
-        if (shouldShowUiToAcceptTypedWord) {
-            hintText = res.getText(R.string.hint_add_to_dictionary_without_word);
-            hintWidth = width;
-            hintWeight = 1.0f;
-            hintView.setGravity(Gravity.CENTER);
-        } else {
-            final boolean isRtlLanguage = (ViewCompat.getLayoutDirection(addToDictionaryStrip)
-                    == ViewCompat.LAYOUT_DIRECTION_RTL);
-            final String arrow = isRtlLanguage ? RIGHTWARDS_ARROW : LEFTWARDS_ARROW;
-            final boolean isRtlSystem = SubtypeLocaleUtils.isRtlLanguage(
-                    res.getConfiguration().locale);
-            final CharSequence hint = res.getText(R.string.hint_add_to_dictionary);
-            hintText = (isRtlLanguage == isRtlSystem) ? (arrow + hint) : (hint + arrow);
-            hintWidth = width - wordWidth;
-            hintWeight = 1.0f - mCenterSuggestionWeight;
-            hintView.setGravity(Gravity.CENTER_VERTICAL | Gravity.START);
-        }
-        hintView.setTextColor(mColorAutoCorrect);
-        final float hintScaleX = getTextScaleX(hintText, hintWidth, hintView.getPaint());
-        hintView.setText(hintText);
-        hintView.setTextScaleX(hintScaleX);
-        setLayoutWeight(hintView, hintWeight, ViewGroup.LayoutParams.MATCH_PARENT);
-    }
-
     public void layoutImportantNotice(final View importantNoticeStrip,
             final String importantNoticeTitle) {
         final TextView titleView = (TextView)importantNoticeStrip.findViewById(
@@ -604,8 +549,7 @@
         final int width = titleView.getWidth() - titleView.getPaddingLeft()
                 - titleView.getPaddingRight();
         titleView.setTextColor(mColorAutoCorrect);
-        titleView.setText(importantNoticeTitle);
-        titleView.setTextScaleX(1.0f); // Reset textScaleX.
+        titleView.setText(importantNoticeTitle); // TextView.setText() resets text scale x to 1.0.
         final float titleScaleX = getTextScaleX(importantNoticeTitle, width, titleView.getPaint());
         titleView.setTextScaleX(titleScaleX);
     }
@@ -620,18 +564,19 @@
         }
     }
 
-    private static float getTextScaleX(final CharSequence text, final int maxWidth,
+    private static float getTextScaleX(@Nullable final CharSequence text, final int maxWidth,
             final TextPaint paint) {
         paint.setTextScaleX(1.0f);
         final int width = getTextWidth(text, paint);
         if (width <= maxWidth || maxWidth <= 0) {
             return 1.0f;
         }
-        return maxWidth / (float)width;
+        return maxWidth / (float) width;
     }
 
-    private static CharSequence getEllipsizedText(final CharSequence text, final int maxWidth,
-            final TextPaint paint) {
+    @Nullable
+    private static CharSequence getEllipsizedTextWithSettingScaleX(
+            @Nullable final CharSequence text, final int maxWidth, @Nonnull final TextPaint paint) {
         if (text == null) {
             return null;
         }
@@ -641,62 +586,63 @@
             return text;
         }
 
-        // Note that TextUtils.ellipsize() use text-x-scale as 1.0 if ellipsize is needed. To
-        // get squeezed and ellipsized text, passes enlarged width (maxWidth / MIN_TEXT_XSCALE).
-        final float upscaledWidth = maxWidth / MIN_TEXT_XSCALE;
-        CharSequence ellipsized = TextUtils.ellipsize(
-                text, paint, upscaledWidth, TextUtils.TruncateAt.MIDDLE);
-        // For an unknown reason, ellipsized seems to return a text that does indeed fit inside the
-        // passed width according to paint.measureText, but not according to paint.getTextWidths.
-        // But when rendered, the text seems to actually take up as many pixels as returned by
-        // paint.getTextWidths, hence problem.
-        // To save this case, we compare the measured size of the new text, and if it's too much,
-        // try it again removing the difference. This may still give a text too long by one or
-        // two pixels so we take an additional 2 pixels cushion and call it a day.
-        // TODO: figure out why getTextWidths and measureText don't agree with each other, and
-        // remove the following code.
-        final float ellipsizedTextWidth = getTextWidth(ellipsized, paint);
-        if (upscaledWidth <= ellipsizedTextWidth) {
-            ellipsized = TextUtils.ellipsize(
-                    text, paint, upscaledWidth - (ellipsizedTextWidth - upscaledWidth) - 2,
-                    TextUtils.TruncateAt.MIDDLE);
-        }
+        // <code>text</code> must be ellipsized with minimum text scale x.
         paint.setTextScaleX(MIN_TEXT_XSCALE);
-        return ellipsized;
+        final boolean hasBoldStyle = hasStyleSpan(text, BOLD_SPAN);
+        final boolean hasUnderlineStyle = hasStyleSpan(text, UNDERLINE_SPAN);
+        // TextUtils.ellipsize erases any span object existed after ellipsized point.
+        // We have to restore these spans afterward.
+        final CharSequence ellipsizedText = TextUtils.ellipsize(
+                text, paint, maxWidth, TextUtils.TruncateAt.MIDDLE);
+        if (!hasBoldStyle && !hasUnderlineStyle) {
+            return ellipsizedText;
+        }
+        final Spannable spannableText = (ellipsizedText instanceof Spannable)
+                ? (Spannable)ellipsizedText : new SpannableString(ellipsizedText);
+        if (hasBoldStyle) {
+            addStyleSpan(spannableText, BOLD_SPAN);
+        }
+        if (hasUnderlineStyle) {
+            addStyleSpan(spannableText, UNDERLINE_SPAN);
+        }
+        return spannableText;
     }
 
-    private static int getTextWidth(final CharSequence text, final TextPaint paint) {
+    private static boolean hasStyleSpan(@Nullable final CharSequence text,
+            final CharacterStyle style) {
+        if (text instanceof Spanned) {
+            return ((Spanned)text).getSpanStart(style) >= 0;
+        }
+        return false;
+    }
+
+    private static void addStyleSpan(@Nonnull final Spannable text, final CharacterStyle style) {
+        text.removeSpan(style);
+        text.setSpan(style, 0, text.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
+    }
+
+    private static int getTextWidth(@Nullable final CharSequence text, final TextPaint paint) {
         if (TextUtils.isEmpty(text)) {
             return 0;
         }
+        final int length = text.length();
+        final float[] widths = new float[length];
+        final int count;
         final Typeface savedTypeface = paint.getTypeface();
-        paint.setTypeface(getTextTypeface(text));
-        final int len = text.length();
-        final float[] widths = new float[len];
-        final int count = paint.getTextWidths(text, 0, len, widths);
+        try {
+            paint.setTypeface(getTextTypeface(text));
+            count = paint.getTextWidths(text, 0, length, widths);
+        } finally {
+            paint.setTypeface(savedTypeface);
+        }
         int width = 0;
         for (int i = 0; i < count; i++) {
             width += Math.round(widths[i] + 0.5f);
         }
-        paint.setTypeface(savedTypeface);
         return width;
     }
 
-    private static Typeface getTextTypeface(final CharSequence text) {
-        if (!(text instanceof SpannableString)) {
-            return Typeface.DEFAULT;
-        }
-
-        final SpannableString ss = (SpannableString)text;
-        final StyleSpan[] styles = ss.getSpans(0, text.length(), StyleSpan.class);
-        if (styles.length == 0) {
-            return Typeface.DEFAULT;
-        }
-
-        if (styles[0].getStyle() == Typeface.BOLD) {
-            return Typeface.DEFAULT_BOLD;
-        }
-        // TODO: BOLD_ITALIC, ITALIC case?
-        return Typeface.DEFAULT;
+    private static Typeface getTextTypeface(@Nullable final CharSequence text) {
+        return hasStyleSpan(text, BOLD_SPAN) ? Typeface.DEFAULT_BOLD : Typeface.DEFAULT;
     }
 }
diff --git a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java
index 0fd5e13..7dd0f03 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripView.java
@@ -43,10 +43,10 @@
 import com.android.inputmethod.keyboard.MainKeyboardView;
 import com.android.inputmethod.keyboard.MoreKeysPanel;
 import com.android.inputmethod.latin.AudioAndHapticFeedbackManager;
-import com.android.inputmethod.latin.Constants;
 import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.SuggestedWords;
 import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
+import com.android.inputmethod.latin.common.Constants;
 import com.android.inputmethod.latin.define.DebugFlags;
 import com.android.inputmethod.latin.settings.Settings;
 import com.android.inputmethod.latin.settings.SettingsValues;
@@ -58,7 +58,6 @@
 public final class SuggestionStripView extends RelativeLayout implements OnClickListener,
         OnLongClickListener {
     public interface Listener {
-        public void addWordToUserDictionary(String word);
         public void showImportantNoticeContents();
         public void pickSuggestionManually(SuggestedWordInfo word);
         public void onCodeInput(int primaryCode, int x, int y, boolean isKeyRepeat);
@@ -69,7 +68,6 @@
 
     private final ViewGroup mSuggestionsStrip;
     private final ImageButton mVoiceKey;
-    private final ViewGroup mAddToDictionaryStrip;
     private final View mImportantNoticeStrip;
     MainKeyboardView mMainKeyboardView;
 
@@ -82,7 +80,7 @@
     private final ArrayList<View> mDividerViews = new ArrayList<>();
 
     Listener mListener;
-    private SuggestedWords mSuggestedWords = SuggestedWords.EMPTY;
+    private SuggestedWords mSuggestedWords = SuggestedWords.getEmptyInstance();
     private int mStartIndexOfMoreSuggestions;
 
     private final SuggestionStripLayoutHelper mLayoutHelper;
@@ -91,15 +89,12 @@
     private static class StripVisibilityGroup {
         private final View mSuggestionStripView;
         private final View mSuggestionsStrip;
-        private final View mAddToDictionaryStrip;
         private final View mImportantNoticeStrip;
 
         public StripVisibilityGroup(final View suggestionStripView,
-                final ViewGroup suggestionsStrip, final ViewGroup addToDictionaryStrip,
-                final View importantNoticeStrip) {
+                final ViewGroup suggestionsStrip, final View importantNoticeStrip) {
             mSuggestionStripView = suggestionStripView;
             mSuggestionsStrip = suggestionsStrip;
-            mAddToDictionaryStrip = addToDictionaryStrip;
             mImportantNoticeStrip = importantNoticeStrip;
             showSuggestionsStrip();
         }
@@ -109,30 +104,21 @@
                     : ViewCompat.LAYOUT_DIRECTION_LTR;
             ViewCompat.setLayoutDirection(mSuggestionStripView, layoutDirection);
             ViewCompat.setLayoutDirection(mSuggestionsStrip, layoutDirection);
-            ViewCompat.setLayoutDirection(mAddToDictionaryStrip, layoutDirection);
             ViewCompat.setLayoutDirection(mImportantNoticeStrip, layoutDirection);
         }
 
         public void showSuggestionsStrip() {
             mSuggestionsStrip.setVisibility(VISIBLE);
-            mAddToDictionaryStrip.setVisibility(INVISIBLE);
-            mImportantNoticeStrip.setVisibility(INVISIBLE);
-        }
-
-        public void showAddToDictionaryStrip() {
-            mSuggestionsStrip.setVisibility(INVISIBLE);
-            mAddToDictionaryStrip.setVisibility(VISIBLE);
             mImportantNoticeStrip.setVisibility(INVISIBLE);
         }
 
         public void showImportantNoticeStrip() {
             mSuggestionsStrip.setVisibility(INVISIBLE);
-            mAddToDictionaryStrip.setVisibility(INVISIBLE);
             mImportantNoticeStrip.setVisibility(VISIBLE);
         }
 
-        public boolean isShowingAddToDictionaryStrip() {
-            return mAddToDictionaryStrip.getVisibility() == VISIBLE;
+        public boolean isShowingImportantNoticeStrip() {
+            return mImportantNoticeStrip.getVisibility() == VISIBLE;
         }
     }
 
@@ -154,13 +140,13 @@
 
         mSuggestionsStrip = (ViewGroup)findViewById(R.id.suggestions_strip);
         mVoiceKey = (ImageButton)findViewById(R.id.suggestions_strip_voice_key);
-        mAddToDictionaryStrip = (ViewGroup)findViewById(R.id.add_to_dictionary_strip);
         mImportantNoticeStrip = findViewById(R.id.important_notice_strip);
         mStripVisibilityGroup = new StripVisibilityGroup(this, mSuggestionsStrip,
-                mAddToDictionaryStrip, mImportantNoticeStrip);
+                mImportantNoticeStrip);
 
         for (int pos = 0; pos < SuggestedWords.MAX_SUGGESTIONS; pos++) {
             final TextView word = new TextView(context, null, R.attr.suggestionWordStyle);
+            word.setContentDescription(getResources().getString(R.string.spoken_empty_suggestion));
             word.setOnClickListener(this);
             word.setOnLongClickListener(this);
             mWordViews.add(word);
@@ -215,7 +201,7 @@
         mStripVisibilityGroup.setLayoutDirection(isRtlLanguage);
         mSuggestedWords = suggestedWords;
         mStartIndexOfMoreSuggestions = mLayoutHelper.layoutAndReturnStartIndexOfMoreSuggestions(
-                mSuggestedWords, mSuggestionsStrip, this);
+                getContext(), mSuggestedWords, mSuggestionsStrip, this);
         mStripVisibilityGroup.showSuggestionsStrip();
     }
 
@@ -223,32 +209,12 @@
         mLayoutHelper.setMoreSuggestionsHeight(remainingHeight);
     }
 
-    public boolean isShowingAddToDictionaryHint() {
-        return mStripVisibilityGroup.isShowingAddToDictionaryStrip();
-    }
-
-    public void showAddToDictionaryHint(final String word) {
-        mLayoutHelper.layoutAddToDictionaryHint(word, mAddToDictionaryStrip);
-        // {@link TextView#setTag()} is used to hold the word to be added to dictionary. The word
-        // will be extracted at {@link #onClick(View)}.
-        mAddToDictionaryStrip.setTag(word);
-        mAddToDictionaryStrip.setOnClickListener(this);
-        mStripVisibilityGroup.showAddToDictionaryStrip();
-    }
-
-    public boolean dismissAddToDictionaryHint() {
-        if (isShowingAddToDictionaryHint()) {
-            clear();
-            return true;
-        }
-        return false;
-    }
-
     // This method checks if we should show the important notice (checks on permanent storage if
     // it has been shown once already or not, and if in the setup wizard). If applicable, it shows
     // the notice. In all cases, it returns true if it was shown, false otherwise.
     public boolean maybeShowImportantNoticeTitle() {
-        if (!ImportantNoticeUtils.shouldShowImportantNotice(getContext())) {
+        final SettingsValues currentSettingsValues = Settings.getInstance().getCurrent();
+        if (!ImportantNoticeUtils.shouldShowImportantNotice(getContext(), currentSettingsValues)) {
             return false;
         }
         if (getWidth() <= 0) {
@@ -340,12 +306,6 @@
         if (mSuggestedWords.size() <= mStartIndexOfMoreSuggestions) {
             return false;
         }
-        // Dismiss another {@link MoreKeysPanel} that may be being showed, for example
-        // {@link MoreKeysKeyboardView}.
-        mMainKeyboardView.onDismissMoreKeysPanel();
-        // Dismiss all key previews and sliding key input preview that may be being showed.
-        mMainKeyboardView.dismissAllKeyPreviews();
-        mMainKeyboardView.dismissSlidingKeyInputPreview();
         final int stripWidth = getWidth();
         final View container = mMoreSuggestionsContainer;
         final int maxWidth = stripWidth - container.getPaddingLeft() - container.getPaddingRight();
@@ -393,11 +353,18 @@
 
     @Override
     public boolean onInterceptTouchEvent(final MotionEvent me) {
+        if (mStripVisibilityGroup.isShowingImportantNoticeStrip()) {
+            return false;
+        }
+        // Detecting sliding up finger to show {@link MoreSuggestionsView}.
         if (!mMoreSuggestionsView.isShowingInParent()) {
             mLastX = (int)me.getX();
             mLastY = (int)me.getY();
             return mMoreSuggestionsSlidingDetector.onTouchEvent(me);
         }
+        if (mMoreSuggestionsView.isInModalMode()) {
+            return false;
+        }
 
         final int action = me.getAction();
         final int index = me.getActionIndex();
@@ -416,7 +383,7 @@
 
         if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_POINTER_UP) {
             // Decided to be in the modal input mode.
-            mMoreSuggestionsView.adjustVerticalCorrectionForModalMode();
+            mMoreSuggestionsView.setModalMode();
         }
         return false;
     }
@@ -429,6 +396,11 @@
 
     @Override
     public boolean onTouchEvent(final MotionEvent me) {
+        if (!mMoreSuggestionsView.isShowingInParent()) {
+            // Ignore any touch event while more suggestions panel hasn't been shown.
+            // Detecting sliding up is done at {@link #onInterceptTouchEvent}.
+            return true;
+        }
         // In the sliding input mode. {@link MotionEvent} should be forwarded to
         // {@link MoreSuggestionsView}.
         final int index = me.getActionIndex();
@@ -484,15 +456,8 @@
                     false /* isKeyRepeat */);
             return;
         }
-        final Object tag = view.getTag();
-        // {@link String} tag is set at {@link #showAddToDictionaryHint(String,CharSequence)}.
-        if (tag instanceof String) {
-            final String wordToSave = (String)tag;
-            mListener.addWordToUserDictionary(wordToSave);
-            clear();
-            return;
-        }
 
+        final Object tag = view.getTag();
         // {@link Integer} tag is set at
         // {@link SuggestionStripLayoutHelper#setupWordViewsTextAndColor(SuggestedWords,int)} and
         // {@link SuggestionStripLayoutHelper#layoutPunctuationSuggestions(SuggestedWords,ViewGroup}
diff --git a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripViewAccessor.java b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripViewAccessor.java
index 5270845..68f417e 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripViewAccessor.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/SuggestionStripViewAccessor.java
@@ -22,9 +22,6 @@
  * An object that gives basic control of a suggestion strip and some info on it.
  */
 public interface SuggestionStripViewAccessor {
-    public void showAddToDictionaryHint(final String word);
-    public boolean isShowingAddToDictionaryHint();
-    public void dismissAddToDictionaryHint();
     public void setNeutralSuggestionStrip();
     public void showSuggestionStrip(final SuggestedWords suggestedWords);
 }
diff --git a/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryAddWordContents.java b/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryAddWordContents.java
index eda8194..cb615f3 100644
--- a/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryAddWordContents.java
+++ b/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryAddWordContents.java
@@ -26,14 +26,15 @@
 import android.view.View;
 import android.widget.EditText;
 
-import com.android.inputmethod.compat.UserDictionaryCompatUtils;
 import com.android.inputmethod.latin.R;
-import com.android.inputmethod.latin.utils.LocaleUtils;
+import com.android.inputmethod.latin.common.LocaleUtils;
 
 import java.util.ArrayList;
 import java.util.Locale;
 import java.util.TreeSet;
 
+import javax.annotation.Nullable;
+
 // Caveat: This class is basically taken from
 // packages/apps/Settings/src/com/android/settings/inputmethod/UserDictionaryAddWordContents.java
 // in order to deal with some devices that have issues with the user dictionary handling
@@ -45,10 +46,7 @@
 public class UserDictionaryAddWordContents {
     public static final String EXTRA_MODE = "mode";
     public static final String EXTRA_WORD = "word";
-    public static final String EXTRA_SHORTCUT = "shortcut";
     public static final String EXTRA_LOCALE = "locale";
-    public static final String EXTRA_ORIGINAL_WORD = "originalWord";
-    public static final String EXTRA_ORIGINAL_SHORTCUT = "originalShortcut";
 
     public static final int MODE_EDIT = 0;
     public static final int MODE_INSERT = 1;
@@ -61,20 +59,12 @@
 
     private final int mMode; // Either MODE_EDIT or MODE_INSERT
     private final EditText mWordEditText;
-    private final EditText mShortcutEditText;
     private String mLocale;
     private final String mOldWord;
-    private final String mOldShortcut;
     private String mSavedWord;
-    private String mSavedShortcut;
 
     /* package */ UserDictionaryAddWordContents(final View view, final Bundle args) {
         mWordEditText = (EditText)view.findViewById(R.id.user_dictionary_add_word_text);
-        mShortcutEditText = (EditText)view.findViewById(R.id.user_dictionary_add_shortcut);
-        if (!UserDictionarySettings.IS_SHORTCUT_API_SUPPORTED) {
-            mShortcutEditText.setVisibility(View.GONE);
-            view.findViewById(R.id.user_dictionary_add_shortcut_label).setVisibility(View.GONE);
-        }
         final String word = args.getString(EXTRA_WORD);
         if (null != word) {
             mWordEditText.setText(word);
@@ -82,17 +72,6 @@
             // it's too long to be edited.
             mWordEditText.setSelection(mWordEditText.getText().length());
         }
-        final String shortcut;
-        if (UserDictionarySettings.IS_SHORTCUT_API_SUPPORTED) {
-            shortcut = args.getString(EXTRA_SHORTCUT);
-            if (null != shortcut && null != mShortcutEditText) {
-                mShortcutEditText.setText(shortcut);
-            }
-            mOldShortcut = args.getString(EXTRA_SHORTCUT);
-        } else {
-            shortcut = null;
-            mOldShortcut = null;
-        }
         mMode = args.getInt(EXTRA_MODE); // default return value for #getInt() is 0 = MODE_EDIT
         mOldWord = args.getString(EXTRA_WORD);
         updateLocale(args.getString(EXTRA_LOCALE));
@@ -101,10 +80,8 @@
     /* package */ UserDictionaryAddWordContents(final View view,
             final UserDictionaryAddWordContents oldInstanceToBeEdited) {
         mWordEditText = (EditText)view.findViewById(R.id.user_dictionary_add_word_text);
-        mShortcutEditText = (EditText)view.findViewById(R.id.user_dictionary_add_shortcut);
         mMode = MODE_EDIT;
         mOldWord = oldInstanceToBeEdited.mSavedWord;
-        mOldShortcut = oldInstanceToBeEdited.mSavedShortcut;
         updateLocale(mLocale);
     }
 
@@ -116,13 +93,6 @@
 
     /* package */ void saveStateIntoBundle(final Bundle outState) {
         outState.putString(EXTRA_WORD, mWordEditText.getText().toString());
-        outState.putString(EXTRA_ORIGINAL_WORD, mOldWord);
-        if (null != mShortcutEditText) {
-            outState.putString(EXTRA_SHORTCUT, mShortcutEditText.getText().toString());
-        }
-        if (null != mOldShortcut) {
-            outState.putString(EXTRA_ORIGINAL_SHORTCUT, mOldShortcut);
-        }
         outState.putString(EXTRA_LOCALE, mLocale);
     }
 
@@ -130,7 +100,7 @@
         if (MODE_EDIT == mMode && !TextUtils.isEmpty(mOldWord)) {
             // Mode edit: remove the old entry.
             final ContentResolver resolver = context.getContentResolver();
-            UserDictionarySettings.deleteWord(mOldWord, mOldShortcut, resolver);
+            UserDictionarySettings.deleteWord(mOldWord, resolver);
         }
         // If we are in add mode, nothing was added, so we don't need to do anything.
     }
@@ -141,50 +111,31 @@
         final ContentResolver resolver = context.getContentResolver();
         if (MODE_EDIT == mMode && !TextUtils.isEmpty(mOldWord)) {
             // Mode edit: remove the old entry.
-            UserDictionarySettings.deleteWord(mOldWord, mOldShortcut, resolver);
+            UserDictionarySettings.deleteWord(mOldWord, resolver);
         }
         final String newWord = mWordEditText.getText().toString();
-        final String newShortcut;
-        if (!UserDictionarySettings.IS_SHORTCUT_API_SUPPORTED) {
-            newShortcut = null;
-        } else if (null == mShortcutEditText) {
-            newShortcut = null;
-        } else {
-            final String tmpShortcut = mShortcutEditText.getText().toString();
-            if (TextUtils.isEmpty(tmpShortcut)) {
-                newShortcut = null;
-            } else {
-                newShortcut = tmpShortcut;
-            }
-        }
         if (TextUtils.isEmpty(newWord)) {
             // If the word is somehow empty, don't insert it.
             return CODE_CANCEL;
         }
         mSavedWord = newWord;
-        mSavedShortcut = newShortcut;
-        // If there is no shortcut, and the word already exists in the database, then we
-        // should not insert, because either A. the word exists with no shortcut, in which
-        // case the exact same thing we want to insert is already there, or B. the word
-        // exists with at least one shortcut, in which case it has priority on our word.
-        if (TextUtils.isEmpty(newShortcut) && hasWord(newWord, context)) {
+        // If the word already exists in the database, then we should not insert.
+        if (hasWord(newWord, context)) {
             return CODE_ALREADY_PRESENT;
         }
 
-        // Disallow duplicates. If the same word with no shortcut is defined, remove it; if
-        // the same word with the same shortcut is defined, remove it; but we don't mind if
-        // there is the same word with a different, non-empty shortcut.
-        UserDictionarySettings.deleteWord(newWord, null, resolver);
-        if (!TextUtils.isEmpty(newShortcut)) {
-            // If newShortcut is empty we just deleted this, no need to do it again
-            UserDictionarySettings.deleteWord(newWord, newShortcut, resolver);
-        }
+        // Disallow duplicates. If the same word is defined, remove it.
+        UserDictionarySettings.deleteWord(newWord, resolver);
 
         // In this class we use the empty string to represent 'all locales' and mLocale cannot
         // be null. However the addWord method takes null to mean 'all locales'.
-        UserDictionaryCompatUtils.addWord(context, newWord.toString(),
-                FREQUENCY_FOR_USER_DICTIONARY_ADDS, newShortcut, TextUtils.isEmpty(mLocale) ?
-                        null : LocaleUtils.constructLocaleFromString(mLocale));
+        final Locale locale = TextUtils.isEmpty(mLocale) ?
+                null : LocaleUtils.constructLocaleFromString(mLocale);
+        final Locale currentLocale = context.getResources().getConfiguration().locale;
+        final boolean useCurrentLocale = currentLocale.equals(locale);
+        UserDictionary.Words.addWord(context, newWord.toString(),
+                FREQUENCY_FOR_USER_DICTIONARY_ADDS, null /* shortcut */,
+                useCurrentLocale ? Locale.getDefault() : null);
 
         return CODE_WORD_ADDED;
     }
@@ -218,8 +169,8 @@
     public static class LocaleRenderer {
         private final String mLocaleString;
         private final String mDescription;
-        // LocaleString may NOT be null.
-        public LocaleRenderer(final Context context, final String localeString) {
+
+        public LocaleRenderer(final Context context, @Nullable final String localeString) {
             mLocaleString = localeString;
             if (null == localeString) {
                 mDescription = context.getString(R.string.user_dict_settings_more_languages);
diff --git a/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryAddWordFragment.java b/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryAddWordFragment.java
deleted file mode 100644
index 1634430..0000000
--- a/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryAddWordFragment.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.userdictionary;
-
-import com.android.inputmethod.latin.R;
-import com.android.inputmethod.latin.userdictionary.UserDictionaryAddWordContents.LocaleRenderer;
-import com.android.inputmethod.latin.userdictionary.UserDictionaryLocalePicker.LocationChangedListener;
-
-import android.app.Fragment;
-import android.os.Bundle;
-import android.preference.PreferenceActivity;
-import android.view.LayoutInflater;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
-import android.widget.Spinner;
-
-import java.util.ArrayList;
-import java.util.Locale;
-
-// Caveat: This class is basically taken from
-// packages/apps/Settings/src/com/android/settings/inputmethod/UserDictionaryAddWordFragment.java
-// in order to deal with some devices that have issues with the user dictionary handling
-
-/**
- * Fragment to add a word/shortcut to the user dictionary.
- *
- * As opposed to the UserDictionaryActivity, this is only invoked within Settings
- * from the UserDictionarySettings.
- */
-public class UserDictionaryAddWordFragment extends Fragment
-        implements AdapterView.OnItemSelectedListener, LocationChangedListener {
-
-    private static final int OPTIONS_MENU_ADD = Menu.FIRST;
-    private static final int OPTIONS_MENU_DELETE = Menu.FIRST + 1;
-
-    private UserDictionaryAddWordContents mContents;
-    private View mRootView;
-    private boolean mIsDeleting = false;
-
-    @Override
-    public void onActivityCreated(final Bundle savedInstanceState) {
-        super.onActivityCreated(savedInstanceState);
-        setHasOptionsMenu(true);
-        getActivity().getActionBar().setTitle(R.string.edit_personal_dictionary);
-        // Keep the instance so that we remember mContents when configuration changes (eg rotation)
-        setRetainInstance(true);
-    }
-
-    @Override
-    public View onCreateView(final LayoutInflater inflater, final ViewGroup container,
-            final Bundle savedState) {
-        mRootView = inflater.inflate(R.layout.user_dictionary_add_word_fullscreen, null);
-        mIsDeleting = false;
-        // If we have a non-null mContents object, it's the old value before a configuration
-        // change (eg rotation) so we need to use its values. Otherwise, read from the arguments.
-        if (null == mContents) {
-            mContents = new UserDictionaryAddWordContents(mRootView, getArguments());
-        } else {
-            // We create a new mContents object to account for the new situation : a word has
-            // been added to the user dictionary when we started rotating, and we are now editing
-            // it. That means in particular if the word undergoes any change, the old version should
-            // be updated, so the mContents object needs to switch to EDIT mode if it was in
-            // INSERT mode.
-            mContents = new UserDictionaryAddWordContents(mRootView,
-                    mContents /* oldInstanceToBeEdited */);
-        }
-        getActivity().getActionBar().setSubtitle(UserDictionarySettingsUtils.getLocaleDisplayName(
-                getActivity(), mContents.getCurrentUserDictionaryLocale()));
-        return mRootView;
-    }
-
-    @Override
-    public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) {
-        final MenuItem actionItemAdd = menu.add(0, OPTIONS_MENU_ADD, 0,
-                R.string.user_dict_settings_add_menu_title).setIcon(R.drawable.ic_menu_add);
-        actionItemAdd.setShowAsAction(
-                MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
-        final MenuItem actionItemDelete = menu.add(0, OPTIONS_MENU_DELETE, 0,
-                R.string.user_dict_settings_delete).setIcon(android.R.drawable.ic_menu_delete);
-        actionItemDelete.setShowAsAction(
-                MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
-    }
-
-    /**
-     * Callback for the framework when a menu option is pressed.
-     *
-     * @param item the item that was pressed
-     * @return false to allow normal menu processing to proceed, true to consume it here
-     */
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        if (item.getItemId() == OPTIONS_MENU_ADD) {
-            // added the entry in "onPause"
-            getActivity().onBackPressed();
-            return true;
-        }
-        if (item.getItemId() == OPTIONS_MENU_DELETE) {
-            mContents.delete(getActivity());
-            mIsDeleting = true;
-            getActivity().onBackPressed();
-            return true;
-        }
-        return false;
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-        // We are being shown: display the word
-        updateSpinner();
-    }
-
-    private void updateSpinner() {
-        final ArrayList<LocaleRenderer> localesList = mContents.getLocalesList(getActivity());
-
-        final Spinner localeSpinner =
-                (Spinner)mRootView.findViewById(R.id.user_dictionary_add_locale);
-        final ArrayAdapter<LocaleRenderer> adapter = new ArrayAdapter<>(
-                getActivity(), android.R.layout.simple_spinner_item, localesList);
-        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
-        localeSpinner.setAdapter(adapter);
-        localeSpinner.setOnItemSelectedListener(this);
-    }
-
-    @Override
-    public void onPause() {
-        super.onPause();
-        // We are being hidden: commit changes to the user dictionary, unless we were deleting it
-        if (!mIsDeleting) {
-            mContents.apply(getActivity(), null);
-        }
-    }
-
-    @Override
-    public void onItemSelected(final AdapterView<?> parent, final View view, final int pos,
-            final long id) {
-        final LocaleRenderer locale = (LocaleRenderer)parent.getItemAtPosition(pos);
-        if (locale.isMoreLanguages()) {
-            PreferenceActivity preferenceActivity = (PreferenceActivity)getActivity();
-            preferenceActivity.startPreferenceFragment(new UserDictionaryLocalePicker(), true);
-        } else {
-            mContents.updateLocale(locale.getLocaleString());
-        }
-    }
-
-    @Override
-    public void onNothingSelected(final AdapterView<?> parent) {
-        // I'm not sure we can come here, but if we do, that's the right thing to do.
-        final Bundle args = getArguments();
-        mContents.updateLocale(args.getString(UserDictionaryAddWordContents.EXTRA_LOCALE));
-    }
-
-    // Called by the locale picker
-    @Override
-    public void onLocaleSelected(final Locale locale) {
-        mContents.updateLocale(locale.toString());
-        getActivity().onBackPressed();
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryList.java b/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryList.java
index 624783a..57347ce 100644
--- a/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryList.java
+++ b/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryList.java
@@ -20,6 +20,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.database.Cursor;
+import android.os.Build;
 import android.os.Bundle;
 import android.preference.Preference;
 import android.preference.PreferenceFragment;
@@ -31,12 +32,14 @@
 import android.view.inputmethod.InputMethodSubtype;
 
 import com.android.inputmethod.latin.R;
-import com.android.inputmethod.latin.utils.LocaleUtils;
+import com.android.inputmethod.latin.common.LocaleUtils;
 
 import java.util.List;
 import java.util.Locale;
 import java.util.TreeSet;
 
+import javax.annotation.Nullable;
+
 // Caveat: This class is basically taken from
 // packages/apps/Settings/src/com/android/settings/inputmethod/UserDictionaryList.java
 // in order to deal with some devices that have issues with the user dictionary handling
@@ -47,12 +50,12 @@
             "android.settings.USER_DICTIONARY_SETTINGS";
 
     @Override
-    public void onCreate(Bundle icicle) {
+    public void onCreate(final Bundle icicle) {
         super.onCreate(icicle);
         setPreferenceScreen(getPreferenceManager().createPreferenceScreen(getActivity()));
     }
 
-    public static TreeSet<String> getUserDictionaryLocalesSet(Activity activity) {
+    public static TreeSet<String> getUserDictionaryLocalesSet(final Activity activity) {
         final Cursor cursor = activity.getContentResolver().query(UserDictionary.Words.CONTENT_URI,
                 new String[] { UserDictionary.Words.LOCALE },
                 null, null, null);
@@ -72,7 +75,7 @@
         } finally {
             cursor.close();
         }
-        if (!UserDictionarySettings.IS_SHORTCUT_API_SUPPORTED) {
+        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
             // For ICS, we need to show "For all languages" in case that the keyboard locale
             // is different from the system locale
             localeSet.add("");
@@ -108,7 +111,7 @@
      * Creates the entries that allow the user to go into the user dictionary for each locale.
      * @param userDictGroup The group to put the settings in.
      */
-    protected void createUserDictSettings(PreferenceGroup userDictGroup) {
+    protected void createUserDictSettings(final PreferenceGroup userDictGroup) {
         final Activity activity = getActivity();
         userDictGroup.removeAll();
         final TreeSet<String> localeSet =
@@ -121,31 +124,33 @@
         }
 
         if (localeSet.isEmpty()) {
-            userDictGroup.addPreference(createUserDictionaryPreference(null, activity));
+            userDictGroup.addPreference(createUserDictionaryPreference(null));
         } else {
             for (String locale : localeSet) {
-                userDictGroup.addPreference(createUserDictionaryPreference(locale, activity));
+                userDictGroup.addPreference(createUserDictionaryPreference(locale));
             }
         }
     }
 
     /**
      * Create a single User Dictionary Preference object, with its parameters set.
-     * @param locale The locale for which this user dictionary is for.
+     * @param localeString The locale for which this user dictionary is for.
      * @return The corresponding preference.
      */
-    protected Preference createUserDictionaryPreference(String locale, Activity activity) {
+    protected Preference createUserDictionaryPreference(@Nullable final String localeString) {
         final Preference newPref = new Preference(getActivity());
         final Intent intent = new Intent(USER_DICTIONARY_SETTINGS_INTENT_ACTION);
-        if (null == locale) {
+        if (null == localeString) {
             newPref.setTitle(Locale.getDefault().getDisplayName());
         } else {
-            if ("".equals(locale))
+            if (localeString.isEmpty()) {
                 newPref.setTitle(getString(R.string.user_dict_settings_all_languages));
-            else
-                newPref.setTitle(LocaleUtils.constructLocaleFromString(locale).getDisplayName());
-            intent.putExtra("locale", locale);
-            newPref.getExtras().putString("locale", locale);
+            } else {
+                newPref.setTitle(
+                        LocaleUtils.constructLocaleFromString(localeString).getDisplayName());
+            }
+            intent.putExtra("locale", localeString);
+            newPref.getExtras().putString("locale", localeString);
         }
         newPref.setIntent(intent);
         newPref.setFragment(UserDictionarySettings.class.getName());
diff --git a/java/src/com/android/inputmethod/latin/userdictionary/UserDictionarySettings.java b/java/src/com/android/inputmethod/latin/userdictionary/UserDictionarySettings.java
index cf2014a..bd35723 100644
--- a/java/src/com/android/inputmethod/latin/userdictionary/UserDictionarySettings.java
+++ b/java/src/com/android/inputmethod/latin/userdictionary/UserDictionarySettings.java
@@ -16,6 +16,12 @@
 
 package com.android.inputmethod.latin.userdictionary;
 
+import static com.android.inputmethod.latin.userdictionary.UserDictionaryAddWordContents.EXTRA_LOCALE;
+import static com.android.inputmethod.latin.userdictionary.UserDictionaryAddWordContents.EXTRA_MODE;
+import static com.android.inputmethod.latin.userdictionary.UserDictionaryAddWordContents.EXTRA_WORD;
+import static com.android.inputmethod.latin.userdictionary.UserDictionaryAddWordContents.MODE_EDIT;
+import static com.android.inputmethod.latin.userdictionary.UserDictionaryAddWordContents.MODE_INSERT;
+
 import com.android.inputmethod.latin.R;
 
 import android.app.ListFragment;
@@ -25,7 +31,7 @@
 import android.database.Cursor;
 import android.os.Build;
 import android.os.Bundle;
-import android.provider.UserDictionary;
+import android.provider.UserDictionary.Words;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.Menu;
@@ -48,62 +54,8 @@
 
 public class UserDictionarySettings extends ListFragment {
 
-    public static final boolean IS_SHORTCUT_API_SUPPORTED =
-            Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN;
-
-    private static final String[] QUERY_PROJECTION_SHORTCUT_UNSUPPORTED =
-            { UserDictionary.Words._ID, UserDictionary.Words.WORD};
-    private static final String[] QUERY_PROJECTION_SHORTCUT_SUPPORTED =
-            { UserDictionary.Words._ID, UserDictionary.Words.WORD, UserDictionary.Words.SHORTCUT};
-    private static final String[] QUERY_PROJECTION =
-            IS_SHORTCUT_API_SUPPORTED ?
-                    QUERY_PROJECTION_SHORTCUT_SUPPORTED : QUERY_PROJECTION_SHORTCUT_UNSUPPORTED;
-
-    // The index of the shortcut in the above array.
-    private static final int INDEX_SHORTCUT = 2;
-
-    private static final String[] ADAPTER_FROM_SHORTCUT_UNSUPPORTED = {
-        UserDictionary.Words.WORD,
-    };
-
-    private static final String[] ADAPTER_FROM_SHORTCUT_SUPPORTED = {
-        UserDictionary.Words.WORD, UserDictionary.Words.SHORTCUT
-    };
-
-    private static final String[] ADAPTER_FROM = IS_SHORTCUT_API_SUPPORTED ?
-            ADAPTER_FROM_SHORTCUT_SUPPORTED : ADAPTER_FROM_SHORTCUT_UNSUPPORTED;
-
-    private static final int[] ADAPTER_TO_SHORTCUT_UNSUPPORTED = {
-        android.R.id.text1,
-    };
-
-    private static final int[] ADAPTER_TO_SHORTCUT_SUPPORTED = {
-        android.R.id.text1, android.R.id.text2
-    };
-
-    private static final int[] ADAPTER_TO = IS_SHORTCUT_API_SUPPORTED ?
-            ADAPTER_TO_SHORTCUT_SUPPORTED : ADAPTER_TO_SHORTCUT_UNSUPPORTED;
-
-    // Either the locale is empty (means the word is applicable to all locales)
-    // or the word equals our current locale
-    private static final String QUERY_SELECTION =
-            UserDictionary.Words.LOCALE + "=?";
-    private static final String QUERY_SELECTION_ALL_LOCALES =
-            UserDictionary.Words.LOCALE + " is null";
-
-    private static final String DELETE_SELECTION_WITH_SHORTCUT = UserDictionary.Words.WORD
-            + "=? AND " + UserDictionary.Words.SHORTCUT + "=?";
-    private static final String DELETE_SELECTION_WITHOUT_SHORTCUT = UserDictionary.Words.WORD
-            + "=? AND " + UserDictionary.Words.SHORTCUT + " is null OR "
-            + UserDictionary.Words.SHORTCUT + "=''";
-    private static final String DELETE_SELECTION_SHORTCUT_UNSUPPORTED =
-            UserDictionary.Words.WORD + "=?";
-
-    private static final int OPTIONS_MENU_ADD = Menu.FIRST;
-
     private Cursor mCursor;
-
-    protected String mLocale;
+    private String mLocale;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
@@ -172,55 +124,60 @@
         // TODO: it should be easy to make this more readable by making the special values
         // human-readable, like "all_locales" and "current_locales" strings, provided they
         // can be guaranteed not to match locales that may exist.
-        if ("".equals(locale)) {
+        if (TextUtils.isEmpty(locale)) {
             // Case-insensitive sort
-            return getActivity().managedQuery(UserDictionary.Words.CONTENT_URI, QUERY_PROJECTION,
-                    QUERY_SELECTION_ALL_LOCALES, null,
-                    "UPPER(" + UserDictionary.Words.WORD + ")");
-        } else {
-            final String queryLocale = null != locale ? locale : Locale.getDefault().toString();
-            return getActivity().managedQuery(UserDictionary.Words.CONTENT_URI, QUERY_PROJECTION,
-                    QUERY_SELECTION, new String[] { queryLocale },
-                    "UPPER(" + UserDictionary.Words.WORD + ")");
+            return getActivity().managedQuery(
+                    Words.CONTENT_URI,
+                    new String[] { Words._ID, Words.WORD },
+                    Words.LOCALE + " is null",
+                    null,
+                    "UPPER(" + Words.WORD + ")");
         }
+        return getActivity().managedQuery(
+                Words.CONTENT_URI,
+                new String[] { Words._ID, Words.WORD },
+                Words.LOCALE + "=?",
+                new String[] { locale },
+                "UPPER(" + Words.WORD + ")");
     }
 
     private ListAdapter createAdapter() {
-        return new MyAdapter(getActivity(), R.layout.user_dictionary_item, mCursor,
-                ADAPTER_FROM, ADAPTER_TO, this);
+        return new MyAdapter(
+                getActivity(),
+                R.layout.user_dictionary_item,
+                mCursor,
+                new String[] { Words.WORD },
+                new int[] { android.R.id.text1 });
     }
 
     @Override
     public void onListItemClick(ListView l, View v, int position, long id) {
         final String word = getWord(position);
-        final String shortcut = getShortcut(position);
         if (word != null) {
-            showAddOrEditDialog(word, shortcut);
+            showAddOrEditDialog(word);
         }
     }
 
     @Override
     public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-        if (!UserDictionarySettings.IS_SHORTCUT_API_SUPPORTED) {
+        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
             final Locale systemLocale = getResources().getConfiguration().locale;
             if (!TextUtils.isEmpty(mLocale) && !mLocale.equals(systemLocale.toString())) {
                 // Hide the add button for ICS because it doesn't support specifying a locale
-                // for an entry. This new "locale"-aware API has been added in conjunction
-                // with the shortcut API.
+                // for an entry.
                 return;
             }
         }
-        MenuItem actionItem =
-                menu.add(0, OPTIONS_MENU_ADD, 0, R.string.user_dict_settings_add_menu_title)
-                .setIcon(R.drawable.ic_menu_add);
-        actionItem.setShowAsAction(
-                MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
+        menu.add(0, Menu.FIRST, 0, R.string.user_dict_settings_add_menu_title)
+                .setIcon(R.drawable.ic_menu_add)
+                .setShowAsAction(
+                        MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
     }
 
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
-        if (item.getItemId() == OPTIONS_MENU_ADD) {
-            showAddOrEditDialog(null, null);
+        if (item.getItemId() == Menu.FIRST) {
+            showAddOrEditDialog(null);
             return true;
         }
         return false;
@@ -229,20 +186,13 @@
     /**
      * Add or edit a word. If editingWord is null, it's an add; otherwise, it's an edit.
      * @param editingWord the word to edit, or null if it's an add.
-     * @param editingShortcut the shortcut for this entry, or null if none.
      */
-    private void showAddOrEditDialog(final String editingWord, final String editingShortcut) {
+    private void showAddOrEditDialog(final String editingWord) {
         final Bundle args = new Bundle();
-        args.putInt(UserDictionaryAddWordContents.EXTRA_MODE, null == editingWord
-                ? UserDictionaryAddWordContents.MODE_INSERT
-                : UserDictionaryAddWordContents.MODE_EDIT);
-        args.putString(UserDictionaryAddWordContents.EXTRA_WORD, editingWord);
-        args.putString(UserDictionaryAddWordContents.EXTRA_SHORTCUT, editingShortcut);
-        args.putString(UserDictionaryAddWordContents.EXTRA_LOCALE, mLocale);
-        android.preference.PreferenceActivity pa =
-                (android.preference.PreferenceActivity)getActivity();
-        pa.startPreferencePanel(UserDictionaryAddWordFragment.class.getName(),
-                args, R.string.user_dict_settings_add_dialog_title, null, null, 0);
+        args.putInt(EXTRA_MODE, editingWord == null ? MODE_INSERT : MODE_EDIT);
+        args.putString(EXTRA_WORD, editingWord);
+        args.putString(EXTRA_LOCALE, mLocale);
+        getActivity();
     }
 
     private String getWord(final int position) {
@@ -251,85 +201,44 @@
         // Handle a possible race-condition
         if (mCursor.isAfterLast()) return null;
 
-        return mCursor.getString(
-                mCursor.getColumnIndexOrThrow(UserDictionary.Words.WORD));
+        return mCursor.getString(mCursor.getColumnIndexOrThrow(Words.WORD));
     }
 
-    private String getShortcut(final int position) {
-        if (!IS_SHORTCUT_API_SUPPORTED) return null;
-        if (null == mCursor) return null;
-        mCursor.moveToPosition(position);
-        // Handle a possible race-condition
-        if (mCursor.isAfterLast()) return null;
-
-        return mCursor.getString(
-                mCursor.getColumnIndexOrThrow(UserDictionary.Words.SHORTCUT));
-    }
-
-    public static void deleteWord(final String word, final String shortcut,
-            final ContentResolver resolver) {
-        if (!IS_SHORTCUT_API_SUPPORTED) {
-            resolver.delete(UserDictionary.Words.CONTENT_URI, DELETE_SELECTION_SHORTCUT_UNSUPPORTED,
-                    new String[] { word });
-        } else if (TextUtils.isEmpty(shortcut)) {
-            resolver.delete(
-                    UserDictionary.Words.CONTENT_URI, DELETE_SELECTION_WITHOUT_SHORTCUT,
-                    new String[] { word });
-        } else {
-            resolver.delete(
-                    UserDictionary.Words.CONTENT_URI, DELETE_SELECTION_WITH_SHORTCUT,
-                    new String[] { word, shortcut });
-        }
+    public static void deleteWord(final String word, final ContentResolver resolver) {
+        resolver.delete(Words.CONTENT_URI, Words.WORD + "=?", new String[] { word });
     }
 
     private static class MyAdapter extends SimpleCursorAdapter implements SectionIndexer {
-
         private AlphabetIndexer mIndexer;
 
         private ViewBinder mViewBinder = new ViewBinder() {
 
             @Override
-            public boolean setViewValue(View v, Cursor c, int columnIndex) {
-                if (!IS_SHORTCUT_API_SUPPORTED) {
-                    // just let SimpleCursorAdapter set the view values
-                    return false;
-                }
-                if (columnIndex == INDEX_SHORTCUT) {
-                    final String shortcut = c.getString(INDEX_SHORTCUT);
-                    if (TextUtils.isEmpty(shortcut)) {
-                        v.setVisibility(View.GONE);
-                    } else {
-                        ((TextView)v).setText(shortcut);
-                        v.setVisibility(View.VISIBLE);
-                    }
-                    v.invalidate();
-                    return true;
-                }
-
+            public boolean setViewValue(final View v, final Cursor c, final int columnIndex) {
+                // just let SimpleCursorAdapter set the view values
                 return false;
             }
         };
 
-        @SuppressWarnings("deprecation")
-        public MyAdapter(Context context, int layout, Cursor c, String[] from, int[] to,
-                UserDictionarySettings settings) {
-            super(context, layout, c, from, to);
+        public MyAdapter(final Context context, final int layout, final Cursor c,
+                final String[] from, final int[] to) {
+            super(context, layout, c, from, to, 0 /* flags */);
 
             if (null != c) {
                 final String alphabet = context.getString(R.string.user_dict_fast_scroll_alphabet);
-                final int wordColIndex = c.getColumnIndexOrThrow(UserDictionary.Words.WORD);
+                final int wordColIndex = c.getColumnIndexOrThrow(Words.WORD);
                 mIndexer = new AlphabetIndexer(c, wordColIndex, alphabet);
             }
             setViewBinder(mViewBinder);
         }
 
         @Override
-        public int getPositionForSection(int section) {
+        public int getPositionForSection(final int section) {
             return null == mIndexer ? 0 : mIndexer.getPositionForSection(section);
         }
 
         @Override
-        public int getSectionForPosition(int position) {
+        public int getSectionForPosition(final int position) {
             return null == mIndexer ? 0 : mIndexer.getSectionForPosition(position);
         }
 
diff --git a/java/src/com/android/inputmethod/latin/userdictionary/UserDictionarySettingsUtils.java b/java/src/com/android/inputmethod/latin/userdictionary/UserDictionarySettingsUtils.java
index e58727e..c0a946e 100644
--- a/java/src/com/android/inputmethod/latin/userdictionary/UserDictionarySettingsUtils.java
+++ b/java/src/com/android/inputmethod/latin/userdictionary/UserDictionarySettingsUtils.java
@@ -17,7 +17,7 @@
 package com.android.inputmethod.latin.userdictionary;
 
 import com.android.inputmethod.latin.R;
-import com.android.inputmethod.latin.utils.LocaleUtils;
+import com.android.inputmethod.latin.common.LocaleUtils;
 
 import android.content.Context;
 import android.text.TextUtils;
diff --git a/java/src/com/android/inputmethod/latin/utils/AdditionalSubtypeUtils.java b/java/src/com/android/inputmethod/latin/utils/AdditionalSubtypeUtils.java
index db7f2a5..2aac7c5 100644
--- a/java/src/com/android/inputmethod/latin/utils/AdditionalSubtypeUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/AdditionalSubtypeUtils.java
@@ -16,12 +16,12 @@
 
 package com.android.inputmethod.latin.utils;
 
-import static com.android.inputmethod.latin.Constants.Subtype.KEYBOARD_MODE;
-import static com.android.inputmethod.latin.Constants.Subtype.ExtraValue.ASCII_CAPABLE;
-import static com.android.inputmethod.latin.Constants.Subtype.ExtraValue.EMOJI_CAPABLE;
-import static com.android.inputmethod.latin.Constants.Subtype.ExtraValue.IS_ADDITIONAL_SUBTYPE;
-import static com.android.inputmethod.latin.Constants.Subtype.ExtraValue.KEYBOARD_LAYOUT_SET;
-import static com.android.inputmethod.latin.Constants.Subtype.ExtraValue.UNTRANSLATABLE_STRING_IN_SUBTYPE_NAME;
+import static com.android.inputmethod.latin.common.Constants.Subtype.KEYBOARD_MODE;
+import static com.android.inputmethod.latin.common.Constants.Subtype.ExtraValue.ASCII_CAPABLE;
+import static com.android.inputmethod.latin.common.Constants.Subtype.ExtraValue.EMOJI_CAPABLE;
+import static com.android.inputmethod.latin.common.Constants.Subtype.ExtraValue.IS_ADDITIONAL_SUBTYPE;
+import static com.android.inputmethod.latin.common.Constants.Subtype.ExtraValue.KEYBOARD_LAYOUT_SET;
+import static com.android.inputmethod.latin.common.Constants.Subtype.ExtraValue.UNTRANSLATABLE_STRING_IN_SUBTYPE_NAME;
 
 import android.os.Build;
 import android.text.TextUtils;
@@ -31,6 +31,7 @@
 import com.android.inputmethod.annotations.UsedForTesting;
 import com.android.inputmethod.compat.InputMethodSubtypeCompatUtils;
 import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.common.StringUtils;
 
 import java.util.ArrayList;
 import java.util.Arrays;
diff --git a/java/src/com/android/inputmethod/latin/utils/AsyncResultHolder.java b/java/src/com/android/inputmethod/latin/utils/AsyncResultHolder.java
index d12aad6..952ac2a 100644
--- a/java/src/com/android/inputmethod/latin/utils/AsyncResultHolder.java
+++ b/java/src/com/android/inputmethod/latin/utils/AsyncResultHolder.java
@@ -59,11 +59,7 @@
      */
     public E get(final E defaultValue, final long timeOut) {
         try {
-            if (mLatch.await(timeOut, TimeUnit.MILLISECONDS)) {
-                return mResult;
-            } else {
-                return defaultValue;
-            }
+            return mLatch.await(timeOut, TimeUnit.MILLISECONDS) ? mResult : defaultValue;
         } catch (InterruptedException e) {
             return defaultValue;
         }
diff --git a/java/src/com/android/inputmethod/latin/utils/AutoCorrectionUtils.java b/java/src/com/android/inputmethod/latin/utils/AutoCorrectionUtils.java
index 156fcf5..c9ecade 100644
--- a/java/src/com/android/inputmethod/latin/utils/AutoCorrectionUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/AutoCorrectionUtils.java
@@ -24,20 +24,22 @@
 public final class AutoCorrectionUtils {
     private static final boolean DBG = DebugFlags.DEBUG_ENABLED;
     private static final String TAG = AutoCorrectionUtils.class.getSimpleName();
-    private static final int MINIMUM_SAFETY_NET_CHAR_LENGTH = 4;
 
     private AutoCorrectionUtils() {
         // Purely static class: can't instantiate.
     }
 
-    public static boolean suggestionExceedsAutoCorrectionThreshold(
-            final SuggestedWordInfo suggestion, final String consideredWord,
-            final float autoCorrectionThreshold) {
+    public static boolean suggestionExceedsThreshold(final SuggestedWordInfo suggestion,
+            final String consideredWord, final float threshold) {
         if (null != suggestion) {
             // Shortlist a whitelisted word
             if (suggestion.isKindOf(SuggestedWordInfo.KIND_WHITELIST)) {
                 return true;
             }
+            // TODO: return suggestion.isAprapreateForAutoCorrection();
+            if (!suggestion.isAprapreateForAutoCorrection()) {
+                return false;
+            }
             final int autoCorrectionSuggestionScore = suggestion.mScore;
             // TODO: when the normalized score of the first suggestion is nearly equals to
             //       the normalized score of the second suggestion, behave less aggressive.
@@ -46,47 +48,15 @@
             if (DBG) {
                 Log.d(TAG, "Normalized " + consideredWord + "," + suggestion + ","
                         + autoCorrectionSuggestionScore + ", " + normalizedScore
-                        + "(" + autoCorrectionThreshold + ")");
+                        + "(" + threshold + ")");
             }
-            if (normalizedScore >= autoCorrectionThreshold) {
+            if (normalizedScore >= threshold) {
                 if (DBG) {
-                    Log.d(TAG, "Auto corrected by S-threshold.");
+                    Log.d(TAG, "Exceeds threshold.");
                 }
-                return !shouldBlockAutoCorrectionBySafetyNet(consideredWord, suggestion.mWord);
+                return true;
             }
         }
         return false;
     }
-
-    // TODO: Resolve the inconsistencies between the native auto correction algorithms and
-    // this safety net
-    public static boolean shouldBlockAutoCorrectionBySafetyNet(final String typedWord,
-            final String suggestion) {
-        // Safety net for auto correction.
-        // Actually if we hit this safety net, it's a bug.
-        // If user selected aggressive auto correction mode, there is no need to use the safety
-        // net.
-        // If the length of typed word is less than MINIMUM_SAFETY_NET_CHAR_LENGTH,
-        // we should not use net because relatively edit distance can be big.
-        final int typedWordLength = typedWord.length();
-        if (typedWordLength < MINIMUM_SAFETY_NET_CHAR_LENGTH) {
-            return false;
-        }
-        final int maxEditDistanceOfNativeDictionary = (typedWordLength / 2) + 1;
-        final int distance = BinaryDictionaryUtils.editDistance(typedWord, suggestion);
-        if (DBG) {
-            Log.d(TAG, "Autocorrected edit distance = " + distance
-                    + ", " + maxEditDistanceOfNativeDictionary);
-        }
-        if (distance > maxEditDistanceOfNativeDictionary) {
-            if (DBG) {
-                Log.e(TAG, "Safety net: before = " + typedWord + ", after = " + suggestion);
-                Log.e(TAG, "(Error) The edit distance of this correction exceeds limit. "
-                        + "Turning off auto-correction.");
-            }
-            return true;
-        } else {
-            return false;
-        }
-    }
 }
diff --git a/java/src/com/android/inputmethod/latin/utils/BinaryDictionaryUtils.java b/java/src/com/android/inputmethod/latin/utils/BinaryDictionaryUtils.java
index 5d7deba..3bf9c62 100644
--- a/java/src/com/android/inputmethod/latin/utils/BinaryDictionaryUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/BinaryDictionaryUtils.java
@@ -18,9 +18,9 @@
 
 import com.android.inputmethod.annotations.UsedForTesting;
 import com.android.inputmethod.latin.BinaryDictionary;
+import com.android.inputmethod.latin.common.StringUtils;
 import com.android.inputmethod.latin.makedict.DictionaryHeader;
 import com.android.inputmethod.latin.makedict.UnsupportedFormatException;
-import com.android.inputmethod.latin.personalization.PersonalizationHelper;
 
 import java.io.File;
 import java.io.IOException;
@@ -40,10 +40,10 @@
         JniUtils.loadNativeLibrary();
     }
 
+    @UsedForTesting
     private static native boolean createEmptyDictFileNative(String filePath, long dictVersion,
             String locale, String[] attributeKeyStringArray, String[] attributeValueStringArray);
     private static native float calcNormalizedScoreNative(int[] before, int[] after, int score);
-    private static native int editDistanceNative(int[] before, int[] after);
     private static native int setCurrentTimeForTestNative(int currentTime);
 
     public static DictionaryHeader getHeader(final File dictFile)
@@ -112,14 +112,6 @@
                 StringUtils.toCodePointArray(after), score);
     }
 
-    public static int editDistance(final String before, final String after) {
-        if (before == null || after == null) {
-            throw new IllegalArgumentException();
-        }
-        return editDistanceNative(StringUtils.toCodePointArray(before),
-                StringUtils.toCodePointArray(after));
-    }
-
     /**
      * Control the current time to be used in the native code. If currentTime >= 0, this method sets
      * the current time and gets into test mode.
@@ -131,8 +123,6 @@
      */
     @UsedForTesting
     public static int setCurrentTimeForTest(final int currentTime) {
-        final int currentNativeTimestamp = setCurrentTimeForTestNative(currentTime);
-        PersonalizationHelper.currentTimeChangedForTesting(currentNativeTimestamp);
-        return currentNativeTimestamp;
+        return setCurrentTimeForTestNative(currentTime);
     }
 }
diff --git a/java/src/com/android/inputmethod/latin/utils/CapsModeUtils.java b/java/src/com/android/inputmethod/latin/utils/CapsModeUtils.java
index 9362193..0dbc7c8 100644
--- a/java/src/com/android/inputmethod/latin/utils/CapsModeUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/CapsModeUtils.java
@@ -19,10 +19,12 @@
 import android.text.InputType;
 import android.text.TextUtils;
 
-import com.android.inputmethod.latin.Constants;
 import com.android.inputmethod.latin.WordComposer;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.StringUtils;
 import com.android.inputmethod.latin.settings.SpacingAndPunctuations;
 
+import java.util.ArrayList;
 import java.util.Locale;
 
 public final class CapsModeUtils {
@@ -213,12 +215,22 @@
         char c = cs.charAt(--j);
 
         // We found the next interesting chunk of text ; next we need to determine if it's the
-        // end of a sentence. If we have a question mark or an exclamation mark, it's the end of
-        // a sentence. If it's neither, the only remaining case is the period so we get the opposite
-        // case out of the way.
-        if (c == Constants.CODE_QUESTION_MARK || c == Constants.CODE_EXCLAMATION_MARK) {
-            return (TextUtils.CAP_MODE_CHARACTERS | TextUtils.CAP_MODE_SENTENCES) & reqModes;
+        // end of a sentence. If we have a sentence terminator (typically a question mark or an
+        // exclamation mark), then it's the end of a sentence; however, we treat the abbreviation
+        // marker specially because usually is the same char as the sentence separator (the
+        // period in most languages) and in this case we need to apply a heuristic to determine
+        // in which of these senses it's used.
+        if (spacingAndPunctuations.isSentenceTerminator(c)
+                && !spacingAndPunctuations.isAbbreviationMarker(c)) {
+            return (TextUtils.CAP_MODE_CHARACTERS | TextUtils.CAP_MODE_WORDS
+                    | TextUtils.CAP_MODE_SENTENCES) & reqModes;
         }
+        // If we reach here, we know we have whitespace before the cursor and before that there
+        // is something that either does not terminate the sentence, or a symbol preceded by the
+        // start of the text, or it's the sentence separator AND it happens to be the same code
+        // point as the abbreviation marker.
+        // If it's a symbol or something that does not terminate the sentence, then we need to
+        // return caps for MODE_CHARACTERS and MODE_WORDS, but not for MODE_SENTENCES.
         if (!spacingAndPunctuations.isSentenceSeparator(c) || j <= 0) {
             return (TextUtils.CAP_MODE_CHARACTERS | TextUtils.CAP_MODE_WORDS) & reqModes;
         }
@@ -315,4 +327,31 @@
         // Here we arrived at the start of the line. This should behave exactly like whitespace.
         return (START == state || LETTER == state) ? noCaps : caps;
     }
+
+    /**
+     * Convert capitalize mode flags into human readable text.
+     *
+     * @param capsFlags The modes flags to be converted. It may be any combination of
+     * {@link TextUtils#CAP_MODE_CHARACTERS}, {@link TextUtils#CAP_MODE_WORDS}, and
+     * {@link TextUtils#CAP_MODE_SENTENCES}.
+     * @return the text that describe the <code>capsMode</code>.
+     */
+    public static String flagsToString(final int capsFlags) {
+        final int capsFlagsMask = TextUtils.CAP_MODE_CHARACTERS | TextUtils.CAP_MODE_WORDS
+                | TextUtils.CAP_MODE_SENTENCES;
+        if ((capsFlags & ~capsFlagsMask) != 0) {
+            return "unknown<0x" + Integer.toHexString(capsFlags) + ">";
+        }
+        final ArrayList<String> builder = new ArrayList<>();
+        if ((capsFlags & android.text.TextUtils.CAP_MODE_CHARACTERS) != 0) {
+            builder.add("characters");
+        }
+        if ((capsFlags & android.text.TextUtils.CAP_MODE_WORDS) != 0) {
+            builder.add("words");
+        }
+        if ((capsFlags & android.text.TextUtils.CAP_MODE_SENTENCES) != 0) {
+            builder.add("sentences");
+        }
+        return builder.isEmpty() ? "none" : TextUtils.join("|", builder);
+    }
 }
diff --git a/java/src/com/android/inputmethod/latin/utils/CollectionUtils.java b/java/src/com/android/inputmethod/latin/utils/CollectionUtils.java
deleted file mode 100644
index 61292fc..0000000
--- a/java/src/com/android/inputmethod/latin/utils/CollectionUtils.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.utils;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Map;
-import java.util.TreeMap;
-
-public final class CollectionUtils {
-    private CollectionUtils() {
-        // This utility class is not publicly instantiable.
-    }
-
-    public static <E> ArrayList<E> arrayAsList(final E[] array, final int start, final int end) {
-        if (array == null) {
-            throw new NullPointerException();
-        }
-        if (start < 0 || start > end || end > array.length) {
-            throw new IllegalArgumentException();
-        }
-
-        final ArrayList<E> list = new ArrayList<>(end - start);
-        for (int i = start; i < end; i++) {
-            list.add(array[i]);
-        }
-        return list;
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/utils/CombinedFormatUtils.java b/java/src/com/android/inputmethod/latin/utils/CombinedFormatUtils.java
index 34f59e8..5c0c432 100644
--- a/java/src/com/android/inputmethod/latin/utils/CombinedFormatUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/CombinedFormatUtils.java
@@ -17,8 +17,8 @@
 package com.android.inputmethod.latin.utils;
 
 import com.android.inputmethod.latin.makedict.DictionaryHeader;
+import com.android.inputmethod.latin.makedict.NgramProperty;
 import com.android.inputmethod.latin.makedict.ProbabilityInfo;
-import com.android.inputmethod.latin.makedict.WeightedString;
 import com.android.inputmethod.latin.makedict.WordProperty;
 
 import java.util.HashMap;
@@ -26,14 +26,16 @@
 public class CombinedFormatUtils {
     public static final String DICTIONARY_TAG = "dictionary";
     public static final String BIGRAM_TAG = "bigram";
-    public static final String SHORTCUT_TAG = "shortcut";
+    public static final String NGRAM_TAG = "ngram";
+    public static final String NGRAM_PREV_WORD_TAG = "prev_word";
     public static final String PROBABILITY_TAG = "f";
     public static final String HISTORICAL_INFO_TAG = "historicalInfo";
     public static final String HISTORICAL_INFO_SEPARATOR = ":";
     public static final String WORD_TAG = "word";
     public static final String BEGINNING_OF_SENTENCE_TAG = "beginning_of_sentence";
     public static final String NOT_A_WORD_TAG = "not_a_word";
-    public static final String BLACKLISTED_TAG = "blacklisted";
+    public static final String POSSIBLY_OFFENSIVE_TAG = "possibly_offensive";
+    public static final String TRUE_VALUE = "true";
 
     public static String formatAttributeMap(final HashMap<String, String> attributeMap) {
         final StringBuilder builder = new StringBuilder();
@@ -58,29 +60,29 @@
         builder.append(",");
         builder.append(formatProbabilityInfo(wordProperty.mProbabilityInfo));
         if (wordProperty.mIsBeginningOfSentence) {
-            builder.append("," + BEGINNING_OF_SENTENCE_TAG + "=true");
+            builder.append("," + BEGINNING_OF_SENTENCE_TAG + "=" + TRUE_VALUE);
         }
         if (wordProperty.mIsNotAWord) {
-            builder.append("," + NOT_A_WORD_TAG + "=true");
+            builder.append("," + NOT_A_WORD_TAG + "=" + TRUE_VALUE);
         }
-        if (wordProperty.mIsBlacklistEntry) {
-            builder.append("," + BLACKLISTED_TAG + "=true");
+        if (wordProperty.mIsPossiblyOffensive) {
+            builder.append("," + POSSIBLY_OFFENSIVE_TAG + "=" + TRUE_VALUE);
         }
         builder.append("\n");
-        if (wordProperty.mShortcutTargets != null) {
-            for (final WeightedString shortcutTarget : wordProperty.mShortcutTargets) {
-                builder.append("  " + SHORTCUT_TAG + "=" + shortcutTarget.mWord);
+        if (wordProperty.mHasNgrams) {
+            for (final NgramProperty ngramProperty : wordProperty.mNgrams) {
+                builder.append(" " + NGRAM_TAG + "=" + ngramProperty.mTargetWord.mWord);
                 builder.append(",");
-                builder.append(formatProbabilityInfo(shortcutTarget.mProbabilityInfo));
+                builder.append(formatProbabilityInfo(ngramProperty.mTargetWord.mProbabilityInfo));
                 builder.append("\n");
-            }
-        }
-        if (wordProperty.mBigrams != null) {
-            for (final WeightedString bigram : wordProperty.mBigrams) {
-                builder.append("  " + BIGRAM_TAG + "=" + bigram.mWord);
-                builder.append(",");
-                builder.append(formatProbabilityInfo(bigram.mProbabilityInfo));
-                builder.append("\n");
+                for (int i = 0; i < ngramProperty.mNgramContext.getPrevWordCount(); i++) {
+                    builder.append("  " + NGRAM_PREV_WORD_TAG + "[" + i + "]="
+                            + ngramProperty.mNgramContext.getNthPrevWord(i + 1));
+                    if (ngramProperty.mNgramContext.isNthPrevWordBeginningOfSentence(i + 1)) {
+                        builder.append("," + BEGINNING_OF_SENTENCE_TAG + "=true");
+                    }
+                    builder.append("\n");
+                }
             }
         }
         return builder.toString();
@@ -100,4 +102,8 @@
         }
         return builder.toString();
     }
+
+    public static boolean isLiteralTrue(final String value) {
+        return TRUE_VALUE.equalsIgnoreCase(value);
+    }
 }
diff --git a/java/src/com/android/inputmethod/latin/utils/CoordinateUtils.java b/java/src/com/android/inputmethod/latin/utils/CoordinateUtils.java
deleted file mode 100644
index 87df013..0000000
--- a/java/src/com/android/inputmethod/latin/utils/CoordinateUtils.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.utils;
-
-import java.util.Arrays;
-
-public final class CoordinateUtils {
-    private static final int INDEX_X = 0;
-    private static final int INDEX_Y = 1;
-    private static final int ELEMENT_SIZE = INDEX_Y + 1;
-
-    private CoordinateUtils() {
-        // This utility class is not publicly instantiable.
-    }
-
-    public static int[] newInstance() {
-        return new int[ELEMENT_SIZE];
-    }
-
-    public static int x(final int[] coords) {
-        return coords[INDEX_X];
-    }
-
-    public static int y(final int[] coords) {
-        return coords[INDEX_Y];
-    }
-
-    public static void set(final int[] coords, final int x, final int y) {
-        coords[INDEX_X] = x;
-        coords[INDEX_Y] = y;
-    }
-
-    public static void copy(final int[] destination, final int[] source) {
-        destination[INDEX_X] = source[INDEX_X];
-        destination[INDEX_Y] = source[INDEX_Y];
-    }
-
-    public static int[] newCoordinateArray(final int arraySize) {
-        return new int[ELEMENT_SIZE * arraySize];
-    }
-
-    public static int[] newCoordinateArray(final int arraySize,
-            final int defaultX, final int defaultY) {
-        final int[] result = new int[ELEMENT_SIZE * arraySize];
-        for (int i = 0; i < arraySize; ++i) {
-            setXYInArray(result, i, defaultX, defaultY);
-        }
-        return result;
-    }
-
-    public static int xFromArray(final int[] coordsArray, final int index) {
-        return coordsArray[ELEMENT_SIZE * index + INDEX_X];
-    }
-
-    public static int yFromArray(final int[] coordsArray, final int index) {
-        return coordsArray[ELEMENT_SIZE * index + INDEX_Y];
-    }
-
-    public static int[] coordinateFromArray(final int[] coordsArray, final int index) {
-        final int baseIndex = ELEMENT_SIZE * index;
-        return Arrays.copyOfRange(coordsArray, baseIndex, baseIndex + ELEMENT_SIZE);
-    }
-
-    public static void setXYInArray(final int[] coordsArray, final int index,
-            final int x, final int y) {
-        final int baseIndex = ELEMENT_SIZE * index;
-        coordsArray[baseIndex + INDEX_X] = x;
-        coordsArray[baseIndex + INDEX_Y] = y;
-    }
-
-    public static void setCoordinateInArray(final int[] coordsArray, final int index,
-            final int[] coords) {
-        final int baseIndex = ELEMENT_SIZE * index;
-        coordsArray[baseIndex + INDEX_X] = coords[INDEX_X];
-        coordsArray[baseIndex + INDEX_Y] = coords[INDEX_Y];
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/utils/CursorAnchorInfoUtils.java b/java/src/com/android/inputmethod/latin/utils/CursorAnchorInfoUtils.java
index 9dc0524..c90d30c 100644
--- a/java/src/com/android/inputmethod/latin/utils/CursorAnchorInfoUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/CursorAnchorInfoUtils.java
@@ -16,17 +16,26 @@
 
 package com.android.inputmethod.latin.utils;
 
+import android.annotation.TargetApi;
 import android.graphics.Matrix;
 import android.graphics.Rect;
 import android.inputmethodservice.ExtractEditText;
 import android.inputmethodservice.InputMethodService;
+import android.os.Build;
 import android.text.Layout;
 import android.text.Spannable;
+import android.text.Spanned;
 import android.view.View;
 import android.view.ViewParent;
 import android.view.inputmethod.CursorAnchorInfo;
 import android.widget.TextView;
 
+import com.android.inputmethod.compat.BuildCompatUtils;
+import com.android.inputmethod.compat.CursorAnchorInfoCompatWrapper;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 /**
  * This class allows input methods to extract {@link CursorAnchorInfo} directly from the given
  * {@link TextView}. This is useful and even necessary to support full-screen mode where the default
@@ -77,13 +86,32 @@
     }
 
     /**
+     * Extracts {@link CursorAnchorInfoCompatWrapper} from the given {@link TextView}.
+     * @param textView the target text view from which {@link CursorAnchorInfoCompatWrapper} is to
+     * be extracted.
+     * @return the {@link CursorAnchorInfoCompatWrapper} object based on the current layout.
+     * {@code null} if {@code Build.VERSION.SDK_INT} is 20 or prior or {@link TextView} is not
+     * ready to provide layout information.
+     */
+    @Nullable
+    public static CursorAnchorInfoCompatWrapper extractFromTextView(
+            @Nonnull final TextView textView) {
+        if (BuildCompatUtils.EFFECTIVE_SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
+            return null;
+        }
+        return CursorAnchorInfoCompatWrapper.wrap(extractFromTextViewInternal(textView));
+    }
+
+    /**
      * Returns {@link CursorAnchorInfo} from the given {@link TextView}.
      * @param textView the target text view from which {@link CursorAnchorInfo} is to be extracted.
      * @return the {@link CursorAnchorInfo} object based on the current layout. {@code null} if it
      * is not feasible.
      */
-    public static CursorAnchorInfo getCursorAnchorInfo(final TextView textView) {
-        Layout layout = textView.getLayout();
+    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
+    @Nullable
+    private static CursorAnchorInfo extractFromTextViewInternal(@Nonnull final TextView textView) {
+        final Layout layout = textView.getLayout();
         if (layout == null) {
             return null;
         }
@@ -122,7 +150,7 @@
             final Object[] spans = spannable.getSpans(0, text.length(), Object.class);
             for (Object span : spans) {
                 final int spanFlag = spannable.getSpanFlags(span);
-                if ((spanFlag & Spannable.SPAN_COMPOSING) != 0) {
+                if ((spanFlag & Spanned.SPAN_COMPOSING) != 0) {
                     composingTextStart = Math.min(composingTextStart,
                             spannable.getSpanStart(span));
                     composingTextEnd = Math.max(composingTextEnd, spannable.getSpanEnd(span));
diff --git a/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java b/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java
index 1979080..25fa723 100644
--- a/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/DictionaryInfoUtils.java
@@ -22,11 +22,15 @@
 import android.content.res.Resources;
 import android.text.TextUtils;
 import android.util.Log;
+import android.view.inputmethod.InputMethodSubtype;
 
+import com.android.inputmethod.annotations.UsedForTesting;
 import com.android.inputmethod.latin.AssetFileAddress;
 import com.android.inputmethod.latin.BinaryDictionaryGetter;
-import com.android.inputmethod.latin.Constants;
 import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.RichInputMethodManager;
+import com.android.inputmethod.latin.common.LocaleUtils;
+import com.android.inputmethod.latin.define.DecoderSpecificConstants;
 import com.android.inputmethod.latin.makedict.DictionaryHeader;
 import com.android.inputmethod.latin.makedict.UnsupportedFormatException;
 import com.android.inputmethod.latin.settings.SpacingAndPunctuations;
@@ -35,9 +39,13 @@
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Locale;
 import java.util.concurrent.TimeUnit;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 /**
  * This class encapsulates the logic for the Latin-IME side of dictionary information management.
  */
@@ -46,6 +54,7 @@
     private static final String RESOURCE_PACKAGE_NAME = R.class.getPackage().getName();
     private static final String DEFAULT_MAIN_DICT = "main";
     private static final String MAIN_DICT_PREFIX = "main_";
+    private static final String DECODER_DICT_SUFFIX = DecoderSpecificConstants.DECODER_DICT_SUFFIX;
     // 6 digits - unicode is limited to 21 bits
     private static final int MAX_HEX_DIGITS_FOR_CODEPOINT = 6;
 
@@ -57,28 +66,36 @@
         private static final String DATE_COLUMN = "date";
         private static final String FILESIZE_COLUMN = "filesize";
         private static final String VERSION_COLUMN = "version";
+        @Nonnull
         public final String mId;
+        @Nonnull
         public final Locale mLocale;
+        @Nullable
         public final String mDescription;
         public final AssetFileAddress mFileAddress;
         public final int mVersion;
-        public DictionaryInfo(final String id, final Locale locale, final String description,
-                final AssetFileAddress fileAddress, final int version) {
+
+        public DictionaryInfo(@Nonnull final String id, @Nonnull final Locale locale,
+                @Nullable final String description, @Nullable final AssetFileAddress fileAddress,
+                final int version) {
             mId = id;
             mLocale = locale;
             mDescription = description;
             mFileAddress = fileAddress;
             mVersion = version;
         }
+
         public ContentValues toContentValues() {
             final ContentValues values = new ContentValues();
             values.put(WORDLISTID_COLUMN, mId);
             values.put(LOCALE_COLUMN, mLocale.toString());
             values.put(DESCRIPTION_COLUMN, mDescription);
-            values.put(LOCAL_FILENAME_COLUMN, mFileAddress.mFilename);
+            values.put(LOCAL_FILENAME_COLUMN,
+                    mFileAddress != null ? mFileAddress.mFilename : "");
             values.put(DATE_COLUMN, TimeUnit.MILLISECONDS.toSeconds(
-                    new File(mFileAddress.mFilename).lastModified()));
-            values.put(FILESIZE_COLUMN, mFileAddress.mLength);
+                    mFileAddress != null ? new File(mFileAddress.mFilename).lastModified() : 0));
+            values.put(FILESIZE_COLUMN,
+                    mFileAddress != null ? mFileAddress.mLength : 0);
             values.put(VERSION_COLUMN, mVersion);
             return values;
         }
@@ -140,9 +157,10 @@
     }
 
     /**
-     * Reverse escaping done by replaceFileNameDangerousCharacters.
+     * Reverse escaping done by {@link #replaceFileNameDangerousCharacters(String)}.
      */
-    public static String getWordListIdFromFileName(final String fname) {
+    @Nonnull
+    public static String getWordListIdFromFileName(@Nonnull final String fname) {
         final StringBuilder sb = new StringBuilder();
         final int fnameLength = fname.length();
         for (int i = 0; i < fnameLength; i = fname.offsetByCodePoints(i, 1)) {
@@ -174,12 +192,15 @@
      * {@link #getMainDictId(Locale)} and {@link #isMainWordListId(String)}.
      * @return The category as a string or null if it can't be found in the file name.
      */
-    public static String getCategoryFromFileName(final String fileName) {
+    @Nullable
+    public static String getCategoryFromFileName(@Nonnull final String fileName) {
         final String id = getWordListIdFromFileName(fileName);
         final String[] idArray = id.split(BinaryDictionaryGetter.ID_CATEGORY_SEPARATOR);
         // An id is supposed to be in format category:locale, so splitting on the separator
         // should yield a 2-elements array
-        if (2 != idArray.length) return null;
+        if (2 != idArray.length) {
+            return null;
+        }
         return idArray[0];
     }
 
@@ -223,12 +244,26 @@
         final String[] idArray = id.split(BinaryDictionaryGetter.ID_CATEGORY_SEPARATOR);
         // An id is supposed to be in format category:locale, so splitting on the separator
         // should yield a 2-elements array
-        if (2 != idArray.length) return false;
+        if (2 != idArray.length) {
+            return false;
+        }
         return BinaryDictionaryGetter.MAIN_DICTIONARY_CATEGORY.equals(idArray[0]);
     }
 
     /**
+     * Find out whether a dictionary is available for this locale.
+     * @param context the context on which to check resources.
+     * @param locale the locale to check for.
+     * @return whether a (non-placeholder) dictionary is available or not.
+     */
+    public static boolean isDictionaryAvailable(final Context context, final Locale locale) {
+        final Resources res = context.getResources();
+        return 0 != getMainDictionaryResourceIdIfAvailableForLocale(res, locale);
+    }
+
+    /**
      * Helper method to return a dictionary res id for a locale, or 0 if none.
+     * @param res resources for the app
      * @param locale dictionary locale
      * @return main dictionary resource id
      */
@@ -237,8 +272,8 @@
         int resId;
         // Try to find main_language_country dictionary.
         if (!locale.getCountry().isEmpty()) {
-            final String dictLanguageCountry =
-                    MAIN_DICT_PREFIX + locale.toString().toLowerCase(Locale.ROOT);
+            final String dictLanguageCountry = MAIN_DICT_PREFIX
+                    + locale.toString().toLowerCase(Locale.ROOT) + DECODER_DICT_SUFFIX;
             if ((resId = res.getIdentifier(
                     dictLanguageCountry, "raw", RESOURCE_PACKAGE_NAME)) != 0) {
                 return resId;
@@ -246,7 +281,7 @@
         }
 
         // Try to find main_language dictionary.
-        final String dictLanguage = MAIN_DICT_PREFIX + locale.getLanguage();
+        final String dictLanguage = MAIN_DICT_PREFIX + locale.getLanguage() + DECODER_DICT_SUFFIX;
         if ((resId = res.getIdentifier(dictLanguage, "raw", RESOURCE_PACKAGE_NAME)) != 0) {
             return resId;
         }
@@ -257,13 +292,17 @@
 
     /**
      * Returns a main dictionary resource id
+     * @param res resources for the app
      * @param locale dictionary locale
      * @return main dictionary resource id
      */
     public static int getMainDictionaryResourceId(final Resources res, final Locale locale) {
         int resourceId = getMainDictionaryResourceIdIfAvailableForLocale(res, locale);
-        if (0 != resourceId) return resourceId;
-        return res.getIdentifier(DEFAULT_MAIN_DICT, "raw", RESOURCE_PACKAGE_NAME);
+        if (0 != resourceId) {
+            return resourceId;
+        }
+        return res.getIdentifier(DEFAULT_MAIN_DICT + DecoderSpecificConstants.DECODER_DICT_SUFFIX,
+                "raw", RESOURCE_PACKAGE_NAME);
     }
 
     /**
@@ -274,19 +313,15 @@
      * unique ID to them. This ID is just the name of the language (locale-wise) they
      * are for, and this method returns this ID.
      */
-    public static String getMainDictId(final Locale locale) {
+    public static String getMainDictId(@Nonnull final Locale locale) {
         // This works because we don't include by default different dictionaries for
         // different countries. This actually needs to return the id that we would
         // like to use for word lists included in resources, and the following is okay.
         return BinaryDictionaryGetter.MAIN_DICTIONARY_CATEGORY +
-                BinaryDictionaryGetter.ID_CATEGORY_SEPARATOR + locale.getLanguage().toString();
+                BinaryDictionaryGetter.ID_CATEGORY_SEPARATOR + locale.toString().toLowerCase();
     }
 
-    public static DictionaryHeader getDictionaryFileHeaderOrNull(final File file) {
-        return getDictionaryFileHeaderOrNull(file, 0, file.length());
-    }
-
-    private static DictionaryHeader getDictionaryFileHeaderOrNull(final File file,
+    public static DictionaryHeader getDictionaryFileHeaderOrNull(final File file,
             final long offset, final long length) {
         try {
             final DictionaryHeader header =
@@ -303,20 +338,27 @@
      * Returns information of the dictionary.
      *
      * @param fileAddress the asset dictionary file address.
+     * @param locale Locale for this file.
      * @return information of the specified dictionary.
      */
     private static DictionaryInfo createDictionaryInfoFromFileAddress(
-            final AssetFileAddress fileAddress) {
-        final DictionaryHeader header = getDictionaryFileHeaderOrNull(
-                new File(fileAddress.mFilename), fileAddress.mOffset, fileAddress.mLength);
-        if (header == null) {
-            return null;
-        }
-        final String id = header.getId();
-        final Locale locale = LocaleUtils.constructLocaleFromString(header.getLocaleString());
-        final String description = header.getDescription();
-        final String version = header.getVersion();
-        return new DictionaryInfo(id, locale, description, fileAddress, Integer.parseInt(version));
+            final AssetFileAddress fileAddress, Locale locale) {
+        final String id = getMainDictId(locale);
+        final int version = DictionaryHeaderUtils.getContentVersion(fileAddress);
+        final String description = SubtypeLocaleUtils
+                .getSubtypeLocaleDisplayName(locale.toString());
+        return new DictionaryInfo(id, locale, description, fileAddress, version);
+    }
+
+    /**
+     * Returns dictionary information for the given locale.
+     */
+    private static DictionaryInfo createDictionaryInfoFromLocale(Locale locale) {
+        final String id = getMainDictId(locale);
+        final int version = -1;
+        final String description = SubtypeLocaleUtils
+                .getSubtypeLocaleDisplayName(locale.toString());
+        return new DictionaryInfo(id, locale, description, null, version);
     }
 
     private static void addOrUpdateDictInfo(final ArrayList<DictionaryInfo> dictList,
@@ -343,18 +385,23 @@
         if (null != directoryList) {
             for (final File directory : directoryList) {
                 final String localeString = getWordListIdFromFileName(directory.getName());
-                File[] dicts = BinaryDictionaryGetter.getCachedWordLists(localeString, context);
+                final File[] dicts = BinaryDictionaryGetter.getCachedWordLists(
+                        localeString, context);
                 for (final File dict : dicts) {
                     final String wordListId = getWordListIdFromFileName(dict.getName());
-                    if (!DictionaryInfoUtils.isMainWordListId(wordListId)) continue;
+                    if (!DictionaryInfoUtils.isMainWordListId(wordListId)) {
+                        continue;
+                    }
                     final Locale locale = LocaleUtils.constructLocaleFromString(localeString);
                     final AssetFileAddress fileAddress = AssetFileAddress.makeFromFile(dict);
                     final DictionaryInfo dictionaryInfo =
-                            createDictionaryInfoFromFileAddress(fileAddress);
+                            createDictionaryInfoFromFileAddress(fileAddress, locale);
                     // Protect against cases of a less-specific dictionary being found, like an
                     // en dictionary being used for an en_US locale. In this case, the en dictionary
                     // should be used for en_US but discounted for listing purposes.
-                    if (dictionaryInfo == null || !dictionaryInfo.mLocale.equals(locale)) continue;
+                    if (dictionaryInfo == null || !dictionaryInfo.mLocale.equals(locale)) {
+                        continue;
+                    }
                     addOrUpdateDictInfo(dictList, dictionaryInfo);
                 }
             }
@@ -368,25 +415,45 @@
             final int resourceId =
                     DictionaryInfoUtils.getMainDictionaryResourceIdIfAvailableForLocale(
                             context.getResources(), locale);
-            if (0 == resourceId) continue;
+            if (0 == resourceId) {
+                continue;
+            }
             final AssetFileAddress fileAddress =
                     BinaryDictionaryGetter.loadFallbackResource(context, resourceId);
-            final DictionaryInfo dictionaryInfo = createDictionaryInfoFromFileAddress(fileAddress);
+            final DictionaryInfo dictionaryInfo = createDictionaryInfoFromFileAddress(fileAddress,
+                    locale);
             // Protect against cases of a less-specific dictionary being found, like an
             // en dictionary being used for an en_US locale. In this case, the en dictionary
             // should be used for en_US but discounted for listing purposes.
-            if (!dictionaryInfo.mLocale.equals(locale)) continue;
+            // TODO: Remove dictionaryInfo == null when the static LMs have the headers.
+            if (dictionaryInfo == null || !dictionaryInfo.mLocale.equals(locale)) {
+                continue;
+            }
+            addOrUpdateDictInfo(dictList, dictionaryInfo);
+        }
+
+        // Generate the dictionary information from  the enabled subtypes. This will not
+        // overwrite the real records.
+        RichInputMethodManager.init(context);
+        List<InputMethodSubtype> enabledSubtypes = RichInputMethodManager
+                .getInstance().getMyEnabledInputMethodSubtypeList(true);
+        for (InputMethodSubtype subtype : enabledSubtypes) {
+            Locale locale = LocaleUtils.constructLocaleFromString(subtype.getLocale());
+            DictionaryInfo dictionaryInfo = createDictionaryInfoFromLocale(locale);
             addOrUpdateDictInfo(dictList, dictionaryInfo);
         }
 
         return dictList;
     }
 
+    @UsedForTesting
     public static boolean looksValidForDictionaryInsertion(final CharSequence text,
             final SpacingAndPunctuations spacingAndPunctuations) {
-        if (TextUtils.isEmpty(text)) return false;
+        if (TextUtils.isEmpty(text)) {
+            return false;
+        }
         final int length = text.length();
-        if (length > Constants.DICTIONARY_MAX_WORD_LENGTH) {
+        if (length > DecoderSpecificConstants.DICTIONARY_MAX_WORD_LENGTH) {
             return false;
         }
         int i = 0;
@@ -400,7 +467,9 @@
                 digitCount += charCount;
                 continue;
             }
-            if (!spacingAndPunctuations.isWordCodePoint(codePoint)) return false;
+            if (!spacingAndPunctuations.isWordCodePoint(codePoint)) {
+                return false;
+            }
         }
         // We reject strings entirely comprised of digits to avoid using PIN codes or credit
         // card numbers. It would come in handy for word prediction though; a good example is
diff --git a/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java b/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java
deleted file mode 100644
index 787e4a5..0000000
--- a/java/src/com/android/inputmethod/latin/utils/DistracterFilter.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.utils;
-
-import java.util.List;
-import java.util.Locale;
-
-import android.view.inputmethod.InputMethodSubtype;
-
-import com.android.inputmethod.latin.PrevWordsInfo;
-
-public interface DistracterFilter {
-    /**
-     * Determine whether a word is a distracter to words in dictionaries.
-     *
-     * @param prevWordsInfo the information of previous words.
-     * @param testedWord the word that will be tested to see whether it is a distracter to words
-     *                   in dictionaries.
-     * @param locale the locale of word.
-     * @return true if testedWord is a distracter, otherwise false.
-     */
-    public boolean isDistracterToWordsInDictionaries(final PrevWordsInfo prevWordsInfo,
-            final String testedWord, final Locale locale);
-
-    public void updateEnabledSubtypes(final List<InputMethodSubtype> enabledSubtypes);
-
-    public void close();
-
-    public static final DistracterFilter EMPTY_DISTRACTER_FILTER = new DistracterFilter() {
-        @Override
-        public boolean isDistracterToWordsInDictionaries(PrevWordsInfo prevWordsInfo,
-                String testedWord, Locale locale) {
-            return false;
-        }
-
-        @Override
-        public void close() {
-        }
-
-        @Override
-        public void updateEnabledSubtypes(List<InputMethodSubtype> enabledSubtypes) {
-        }
-    };
-}
diff --git a/java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions.java b/java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions.java
deleted file mode 100644
index 2797328..0000000
--- a/java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingExactMatchesAndSuggestions.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.utils;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.text.InputType;
-import android.util.Log;
-import android.util.LruCache;
-import android.view.inputmethod.EditorInfo;
-import android.view.inputmethod.InputMethodSubtype;
-
-import com.android.inputmethod.keyboard.Keyboard;
-import com.android.inputmethod.keyboard.KeyboardId;
-import com.android.inputmethod.keyboard.KeyboardLayoutSet;
-import com.android.inputmethod.latin.DictionaryFacilitator;
-import com.android.inputmethod.latin.PrevWordsInfo;
-import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
-import com.android.inputmethod.latin.WordComposer;
-import com.android.inputmethod.latin.settings.SettingsValuesForSuggestion;
-
-/**
- * This class is used to prevent distracters being added to personalization
- * or user history dictionaries
- */
-public class DistracterFilterCheckingExactMatchesAndSuggestions implements DistracterFilter {
-    private static final String TAG =
-            DistracterFilterCheckingExactMatchesAndSuggestions.class.getSimpleName();
-    private static final boolean DEBUG = false;
-
-    private static final long TIMEOUT_TO_WAIT_LOADING_DICTIONARIES_IN_SECONDS = 120;
-    private static final int MAX_DISTRACTERS_CACHE_SIZE = 512;
-
-    private final Context mContext;
-    private final Map<Locale, InputMethodSubtype> mLocaleToSubtypeMap;
-    private final Map<Locale, Keyboard> mLocaleToKeyboardMap;
-    private final DictionaryFacilitator mDictionaryFacilitator;
-    private final LruCache<String, Boolean> mDistractersCache;
-    private Keyboard mKeyboard;
-    private final Object mLock = new Object();
-
-    // If the score of the top suggestion exceeds this value, the tested word (e.g.,
-    // an OOV, a misspelling, or an in-vocabulary word) would be considered as a distractor to
-    // words in dictionary. The greater the threshold is, the less likely the tested word would
-    // become a distractor, which means the tested word will be more likely to be added to
-    // the dictionary.
-    private static final float DISTRACTER_WORD_SCORE_THRESHOLD = 0.4f;
-
-    /**
-     * Create a DistracterFilter instance.
-     *
-     * @param context the context.
-     */
-    public DistracterFilterCheckingExactMatchesAndSuggestions(final Context context) {
-        mContext = context;
-        mLocaleToSubtypeMap = new HashMap<>();
-        mLocaleToKeyboardMap = new HashMap<>();
-        mDictionaryFacilitator = new DictionaryFacilitator();
-        mDistractersCache = new LruCache<>(MAX_DISTRACTERS_CACHE_SIZE);
-        mKeyboard = null;
-    }
-
-    @Override
-    public void close() {
-        mDictionaryFacilitator.closeDictionaries();
-    }
-
-    @Override
-    public void updateEnabledSubtypes(final List<InputMethodSubtype> enabledSubtypes) {
-        final Map<Locale, InputMethodSubtype> newLocaleToSubtypeMap = new HashMap<>();
-        if (enabledSubtypes != null) {
-            for (final InputMethodSubtype subtype : enabledSubtypes) {
-                final Locale locale = SubtypeLocaleUtils.getSubtypeLocale(subtype);
-                if (newLocaleToSubtypeMap.containsKey(locale)) {
-                    // Multiple subtypes are enabled for one locale.
-                    // TODO: Investigate what we should do for this case.
-                    continue;
-                }
-                newLocaleToSubtypeMap.put(locale, subtype);
-            }
-        }
-        if (mLocaleToSubtypeMap.equals(newLocaleToSubtypeMap)) {
-            // Enabled subtypes have not been changed.
-            return;
-        }
-        synchronized (mLock) {
-            mLocaleToSubtypeMap.clear();
-            mLocaleToSubtypeMap.putAll(newLocaleToSubtypeMap);
-            mLocaleToKeyboardMap.clear();
-        }
-    }
-
-    private void loadKeyboardForLocale(final Locale newLocale) {
-        final Keyboard cachedKeyboard = mLocaleToKeyboardMap.get(newLocale);
-        if (cachedKeyboard != null) {
-            mKeyboard = cachedKeyboard;
-            return;
-        }
-        final InputMethodSubtype subtype;
-        synchronized (mLock) {
-            subtype = mLocaleToSubtypeMap.get(newLocale);
-        }
-        if (subtype == null) {
-            return;
-        }
-        final EditorInfo editorInfo = new EditorInfo();
-        editorInfo.inputType = InputType.TYPE_CLASS_TEXT;
-        final KeyboardLayoutSet.Builder builder = new KeyboardLayoutSet.Builder(
-                mContext, editorInfo);
-        final Resources res = mContext.getResources();
-        final int keyboardWidth = ResourceUtils.getDefaultKeyboardWidth(res);
-        final int keyboardHeight = ResourceUtils.getDefaultKeyboardHeight(res);
-        builder.setKeyboardGeometry(keyboardWidth, keyboardHeight);
-        builder.setSubtype(subtype);
-        builder.setIsSpellChecker(false /* isSpellChecker */);
-        final KeyboardLayoutSet layoutSet = builder.build();
-        mKeyboard = layoutSet.getKeyboard(KeyboardId.ELEMENT_ALPHABET);
-    }
-
-    private void loadDictionariesForLocale(final Locale newlocale) throws InterruptedException {
-        mDictionaryFacilitator.resetDictionaries(mContext, newlocale,
-                false /* useContactsDict */, false /* usePersonalizedDicts */,
-                false /* forceReloadMainDictionary */, null /* listener */);
-        mDictionaryFacilitator.waitForLoadingMainDictionary(
-                TIMEOUT_TO_WAIT_LOADING_DICTIONARIES_IN_SECONDS, TimeUnit.SECONDS);
-    }
-
-    /**
-     * Determine whether a word is a distracter to words in dictionaries.
-     *
-     * @param prevWordsInfo the information of previous words. Not used for now.
-     * @param testedWord the word that will be tested to see whether it is a distracter to words
-     *                   in dictionaries.
-     * @param locale the locale of word.
-     * @return true if testedWord is a distracter, otherwise false.
-     */
-    @Override
-    public boolean isDistracterToWordsInDictionaries(final PrevWordsInfo prevWordsInfo,
-            final String testedWord, final Locale locale) {
-        if (locale == null) {
-            return false;
-        }
-        if (!locale.equals(mDictionaryFacilitator.getLocale())) {
-            synchronized (mLock) {
-                if (!mLocaleToSubtypeMap.containsKey(locale)) {
-                    Log.e(TAG, "Locale " + locale + " is not enabled.");
-                    // TODO: Investigate what we should do for disabled locales.
-                    return false;
-                }
-                loadKeyboardForLocale(locale);
-                // Reset dictionaries for the locale.
-                try {
-                    mDistractersCache.evictAll();
-                    loadDictionariesForLocale(locale);
-                } catch (final InterruptedException e) {
-                    Log.e(TAG, "Interrupted while waiting for loading dicts in DistracterFilter",
-                            e);
-                    return false;
-                }
-            }
-        }
-
-        if (DEBUG) {
-            Log.d(TAG, "testedWord: " + testedWord);
-        }
-        final Boolean isCachedDistracter = mDistractersCache.get(testedWord);
-        if (isCachedDistracter != null && isCachedDistracter) {
-            if (DEBUG) {
-                Log.d(TAG, "isDistracter: true (cache hit)");
-            }
-            return true;
-        }
-
-        final boolean isDistracterCheckedByGetMaxFreqencyOfExactMatches =
-                checkDistracterUsingMaxFreqencyOfExactMatches(testedWord);
-        if (isDistracterCheckedByGetMaxFreqencyOfExactMatches) {
-            // Add the word to the cache.
-            mDistractersCache.put(testedWord, Boolean.TRUE);
-            return true;
-        }
-        final boolean isValidWord = mDictionaryFacilitator.isValidWord(testedWord,
-                false /* ignoreCase */);
-        if (isValidWord) {
-            // Valid word is not a distractor.
-            if (DEBUG) {
-                Log.d(TAG, "isDistracter: false (valid word)");
-            }
-            return false;
-        }
-
-        final boolean isDistracterCheckedByGetSuggestion =
-                checkDistracterUsingGetSuggestions(testedWord);
-        if (isDistracterCheckedByGetSuggestion) {
-            // Add the word to the cache.
-            mDistractersCache.put(testedWord, Boolean.TRUE);
-            return true;
-        }
-        return false;
-    }
-
-    private boolean checkDistracterUsingMaxFreqencyOfExactMatches(final String testedWord) {
-        // The tested word is a distracter when there is a word that is exact matched to the tested
-        // word and its probability is higher than the tested word's probability.
-        final int perfectMatchFreq = mDictionaryFacilitator.getFrequency(testedWord);
-        final int exactMatchFreq = mDictionaryFacilitator.getMaxFrequencyOfExactMatches(testedWord);
-        final boolean isDistracter = perfectMatchFreq < exactMatchFreq;
-        if (DEBUG) {
-            Log.d(TAG, "perfectMatchFreq: " + perfectMatchFreq);
-            Log.d(TAG, "exactMatchFreq: " + exactMatchFreq);
-            Log.d(TAG, "isDistracter: " + isDistracter);
-        }
-        return isDistracter;
-    }
-
-    private boolean checkDistracterUsingGetSuggestions(final String testedWord) {
-        if (mKeyboard == null) {
-            return false;
-        }
-        final SettingsValuesForSuggestion settingsValuesForSuggestion =
-                new SettingsValuesForSuggestion(false /* blockPotentiallyOffensive */,
-                        false /* spaceAwareGestureEnabled */,
-                        null /* additionalFeaturesSettingValues */);
-        final int trailingSingleQuotesCount = StringUtils.getTrailingSingleQuotesCount(testedWord);
-        final String consideredWord = trailingSingleQuotesCount > 0 ?
-                testedWord.substring(0, testedWord.length() - trailingSingleQuotesCount) :
-                testedWord;
-        final WordComposer composer = new WordComposer();
-        final int[] codePoints = StringUtils.toCodePointArray(testedWord);
-
-        synchronized (mLock) {
-            final int[] coordinates = mKeyboard.getCoordinates(codePoints);
-            composer.setComposingWord(codePoints, coordinates);
-            final SuggestionResults suggestionResults = mDictionaryFacilitator.getSuggestionResults(
-                    composer, PrevWordsInfo.EMPTY_PREV_WORDS_INFO, mKeyboard.getProximityInfo(),
-                    settingsValuesForSuggestion, 0 /* sessionId */);
-            if (suggestionResults.isEmpty()) {
-                return false;
-            }
-            final SuggestedWordInfo firstSuggestion = suggestionResults.first();
-            final boolean isDistractor = suggestionExceedsDistracterThreshold(
-                    firstSuggestion, consideredWord, DISTRACTER_WORD_SCORE_THRESHOLD);
-            if (DEBUG) {
-                Log.d(TAG, "isDistracter: " + isDistractor);
-            }
-            return isDistractor;
-        }
-    }
-
-    private static boolean suggestionExceedsDistracterThreshold(final SuggestedWordInfo suggestion,
-            final String consideredWord, final float distracterThreshold) {
-        if (suggestion == null) {
-            return false;
-        }
-        final int suggestionScore = suggestion.mScore;
-        final float normalizedScore = BinaryDictionaryUtils.calcNormalizedScore(
-                consideredWord, suggestion.mWord, suggestionScore);
-        if (DEBUG) {
-            Log.d(TAG, "normalizedScore: " + normalizedScore);
-            Log.d(TAG, "distracterThreshold: " + distracterThreshold);
-        }
-        if (normalizedScore > distracterThreshold) {
-            return true;
-        }
-        return false;
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingIsInDictionary.java b/java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingIsInDictionary.java
deleted file mode 100644
index 4ad4ba7..0000000
--- a/java/src/com/android/inputmethod/latin/utils/DistracterFilterCheckingIsInDictionary.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.utils;
-
-import java.util.List;
-import java.util.Locale;
-
-import android.view.inputmethod.InputMethodSubtype;
-
-import com.android.inputmethod.latin.Dictionary;
-import com.android.inputmethod.latin.PrevWordsInfo;
-
-public class DistracterFilterCheckingIsInDictionary implements DistracterFilter {
-    private final DistracterFilter mDistracterFilter;
-    private final Dictionary mDictionary;
-
-    public DistracterFilterCheckingIsInDictionary(final DistracterFilter distracterFilter,
-            final Dictionary dictionary) {
-        mDistracterFilter = distracterFilter;
-        mDictionary = dictionary;
-    }
-
-    @Override
-    public boolean isDistracterToWordsInDictionaries(PrevWordsInfo prevWordsInfo,
-            String testedWord, Locale locale) {
-        if (mDictionary.isInDictionary(testedWord)) {
-            // This filter treats entries that are already in the dictionary as non-distracters
-            // because they have passed the filtering in the past.
-            return false;
-        } else {
-            return mDistracterFilter.isDistracterToWordsInDictionaries(
-                    prevWordsInfo, testedWord, locale);
-        }
-    }
-
-    @Override
-    public void updateEnabledSubtypes(List<InputMethodSubtype> enabledSubtypes) {
-        // Do nothing.
-    }
-
-    @Override
-    public void close() {
-        // Do nothing.
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/utils/ExecutorUtils.java b/java/src/com/android/inputmethod/latin/utils/ExecutorUtils.java
index 61da1b7..8ce6eff 100644
--- a/java/src/com/android/inputmethod/latin/utils/ExecutorUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/ExecutorUtils.java
@@ -16,64 +16,136 @@
 
 package com.android.inputmethod.latin.utils;
 
+import android.util.Log;
+
 import com.android.inputmethod.annotations.UsedForTesting;
 
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ExecutorService;
+import java.lang.Thread.UncaughtExceptionHandler;
 import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.ThreadFactory;
+import java.util.concurrent.TimeUnit;
 
 /**
  * Utilities to manage executors.
  */
 public class ExecutorUtils {
-    private static final ConcurrentHashMap<String, ExecutorService> sExecutorMap =
-            new ConcurrentHashMap<>();
 
-    private static class ThreadFactoryWithId implements ThreadFactory {
-        private final String mId;
+    private static final String TAG = "ExecutorUtils";
 
-        public ThreadFactoryWithId(final String id) {
-            mId = id;
+    public static final String KEYBOARD = "Keyboard";
+    public static final String SPELLING = "Spelling";
+
+    private static ScheduledExecutorService sKeyboardExecutorService = newExecutorService(KEYBOARD);
+    private static ScheduledExecutorService sSpellingExecutorService = newExecutorService(SPELLING);
+
+    private static ScheduledExecutorService newExecutorService(final String name) {
+        return Executors.newSingleThreadScheduledExecutor(new ExecutorFactory(name));
+    }
+
+    private static class ExecutorFactory implements ThreadFactory {
+        private final String mName;
+
+        private ExecutorFactory(final String name) {
+            mName = name;
         }
 
         @Override
-        public Thread newThread(final Runnable r) {
-            return new Thread(r, "Executor - " + mId);
-        }
-    }
-
-    /**
-     * Gets the executor for the given id.
-     */
-    public static ExecutorService getExecutor(final String id) {
-        ExecutorService executor = sExecutorMap.get(id);
-        if (executor == null) {
-            synchronized(sExecutorMap) {
-                executor = sExecutorMap.get(id);
-                if (executor == null) {
-                    executor = Executors.newSingleThreadExecutor(new ThreadFactoryWithId(id));
-                    sExecutorMap.put(id, executor);
+        public Thread newThread(final Runnable runnable) {
+            Thread thread = new Thread(runnable, TAG);
+            thread.setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
+                @Override
+                public void uncaughtException(Thread thread, Throwable ex) {
+                    Log.w(mName + "-" + runnable.getClass().getSimpleName(), ex);
                 }
-            }
+            });
+            return thread;
         }
-        return executor;
     }
 
-    /**
-     * Shutdowns all executors and removes all executors from the executor map for testing.
-     */
     @UsedForTesting
-    public static void shutdownAllExecutors() {
-        synchronized(sExecutorMap) {
-            for (final ExecutorService executor : sExecutorMap.values()) {
-                executor.execute(new Runnable() {
-                    @Override
-                    public void run() {
-                        executor.shutdown();
-                        sExecutorMap.remove(executor);
-                    }
-                });
+    private static ScheduledExecutorService sExecutorServiceForTests;
+
+    @UsedForTesting
+    public static void setExecutorServiceForTests(
+            final ScheduledExecutorService executorServiceForTests) {
+        sExecutorServiceForTests = executorServiceForTests;
+    }
+
+    //
+    // Public methods used to schedule a runnable for execution.
+    //
+
+    /**
+     * @param name Executor's name.
+     * @return scheduled executor service used to run background tasks
+     */
+    public static ScheduledExecutorService getBackgroundExecutor(final String name) {
+        if (sExecutorServiceForTests != null) {
+            return sExecutorServiceForTests;
+        }
+        switch (name) {
+            case KEYBOARD:
+                return sKeyboardExecutorService;
+            case SPELLING:
+                return sSpellingExecutorService;
+            default:
+                throw new IllegalArgumentException("Invalid executor: " + name);
+        }
+    }
+
+    public static void killTasks(final String name) {
+        final ScheduledExecutorService executorService = getBackgroundExecutor(name);
+        executorService.shutdownNow();
+        try {
+            executorService.awaitTermination(5, TimeUnit.SECONDS);
+        } catch (InterruptedException e) {
+            Log.wtf(TAG, "Failed to shut down: " + name);
+        }
+        if (executorService == sExecutorServiceForTests) {
+            // Don't do anything to the test service.
+            return;
+        }
+        switch (name) {
+            case KEYBOARD:
+                sKeyboardExecutorService = newExecutorService(KEYBOARD);
+                break;
+            case SPELLING:
+                sSpellingExecutorService = newExecutorService(SPELLING);
+                break;
+            default:
+                throw new IllegalArgumentException("Invalid executor: " + name);
+        }
+    }
+
+    @UsedForTesting
+    public static Runnable chain(final Runnable... runnables) {
+        return new RunnableChain(runnables);
+    }
+
+    @UsedForTesting
+    public static class RunnableChain implements Runnable {
+        private final Runnable[] mRunnables;
+
+        private RunnableChain(final Runnable... runnables) {
+            if (runnables == null || runnables.length == 0) {
+                throw new IllegalArgumentException("Attempting to construct an empty chain");
+            }
+            mRunnables = runnables;
+        }
+
+        @UsedForTesting
+        public Runnable[] getRunnables() {
+            return mRunnables;
+        }
+
+        @Override
+        public void run() {
+            for (Runnable runnable : mRunnables) {
+                if (Thread.interrupted()) {
+                    return;
+                }
+                runnable.run();
             }
         }
     }
diff --git a/java/src/com/android/inputmethod/latin/utils/FileUtils.java b/java/src/com/android/inputmethod/latin/utils/FileUtils.java
deleted file mode 100644
index f1106a6..0000000
--- a/java/src/com/android/inputmethod/latin/utils/FileUtils.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.android.inputmethod.latin.utils;
-
-import java.io.File;
-import java.io.FilenameFilter;
-
-/**
- * A simple class to help with removing directories recursively.
- */
-public class FileUtils {
-    public static boolean deleteRecursively(final File path) {
-        if (path.isDirectory()) {
-            final File[] files = path.listFiles();
-            if (files != null) {
-                for (final File child : files) {
-                    deleteRecursively(child);
-                }
-            }
-        }
-        return path.delete();
-    }
-
-    public static boolean deleteFilteredFiles(final File dir, final FilenameFilter fileNameFilter) {
-        if (!dir.isDirectory()) {
-            return false;
-        }
-        final File[] files = dir.listFiles(fileNameFilter);
-        if (files == null) {
-            return false;
-        }
-        boolean hasDeletedAllFiles = true;
-        for (final File file : files) {
-            if (!deleteRecursively(file)) {
-                hasDeletedAllFiles = false;
-            }
-        }
-        return hasDeletedAllFiles;
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/utils/FragmentUtils.java b/java/src/com/android/inputmethod/latin/utils/FragmentUtils.java
index c2167a7..c87a7c0 100644
--- a/java/src/com/android/inputmethod/latin/utils/FragmentUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/FragmentUtils.java
@@ -18,18 +18,17 @@
 
 import com.android.inputmethod.dictionarypack.DictionarySettingsFragment;
 import com.android.inputmethod.latin.about.AboutPreferences;
+import com.android.inputmethod.latin.settings.AccountsSettingsFragment;
 import com.android.inputmethod.latin.settings.AdvancedSettingsFragment;
 import com.android.inputmethod.latin.settings.AppearanceSettingsFragment;
 import com.android.inputmethod.latin.settings.CorrectionSettingsFragment;
 import com.android.inputmethod.latin.settings.CustomInputStyleSettingsFragment;
 import com.android.inputmethod.latin.settings.DebugSettingsFragment;
 import com.android.inputmethod.latin.settings.GestureSettingsFragment;
-import com.android.inputmethod.latin.settings.MultiLingualSettingsFragment;
 import com.android.inputmethod.latin.settings.PreferencesSettingsFragment;
 import com.android.inputmethod.latin.settings.SettingsFragment;
 import com.android.inputmethod.latin.settings.ThemeSettingsFragment;
 import com.android.inputmethod.latin.spellcheck.SpellCheckerSettingsFragment;
-import com.android.inputmethod.latin.userdictionary.UserDictionaryAddWordFragment;
 import com.android.inputmethod.latin.userdictionary.UserDictionaryList;
 import com.android.inputmethod.latin.userdictionary.UserDictionaryLocalePicker;
 import com.android.inputmethod.latin.userdictionary.UserDictionarySettings;
@@ -42,9 +41,9 @@
         sLatinImeFragments.add(DictionarySettingsFragment.class.getName());
         sLatinImeFragments.add(AboutPreferences.class.getName());
         sLatinImeFragments.add(PreferencesSettingsFragment.class.getName());
+        sLatinImeFragments.add(AccountsSettingsFragment.class.getName());
         sLatinImeFragments.add(AppearanceSettingsFragment.class.getName());
         sLatinImeFragments.add(ThemeSettingsFragment.class.getName());
-        sLatinImeFragments.add(MultiLingualSettingsFragment.class.getName());
         sLatinImeFragments.add(CustomInputStyleSettingsFragment.class.getName());
         sLatinImeFragments.add(GestureSettingsFragment.class.getName());
         sLatinImeFragments.add(CorrectionSettingsFragment.class.getName());
@@ -52,7 +51,6 @@
         sLatinImeFragments.add(DebugSettingsFragment.class.getName());
         sLatinImeFragments.add(SettingsFragment.class.getName());
         sLatinImeFragments.add(SpellCheckerSettingsFragment.class.getName());
-        sLatinImeFragments.add(UserDictionaryAddWordFragment.class.getName());
         sLatinImeFragments.add(UserDictionaryList.class.getName());
         sLatinImeFragments.add(UserDictionaryLocalePicker.class.getName());
         sLatinImeFragments.add(UserDictionarySettings.class.getName());
diff --git a/java/src/com/android/inputmethod/latin/utils/ImportantNoticeUtils.java b/java/src/com/android/inputmethod/latin/utils/ImportantNoticeUtils.java
index ea406fa..df0cd84 100644
--- a/java/src/com/android/inputmethod/latin/utils/ImportantNoticeUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/ImportantNoticeUtils.java
@@ -25,6 +25,7 @@
 
 import com.android.inputmethod.annotations.UsedForTesting;
 import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.settings.SettingsValues;
 
 import java.util.concurrent.TimeUnit;
 
@@ -53,7 +54,8 @@
         // This utility class is not publicly instantiable.
     }
 
-    private static boolean isInSystemSetupWizard(final Context context) {
+    @UsedForTesting
+    static boolean isInSystemSetupWizard(final Context context) {
         try {
             final int userSetupComplete = Settings.Secure.getInt(
                     context.getContentResolver(), Settings_Secure_USER_SETUP_COMPLETE);
@@ -84,7 +86,8 @@
         return getLastImportantNoticeVersion(context) + 1;
     }
 
-    private static boolean hasNewImportantNotice(final Context context) {
+    @UsedForTesting
+    static boolean hasNewImportantNotice(final Context context) {
         final int lastVersion = getLastImportantNoticeVersion(context);
         return getCurrentImportantNoticeVersion(context) > lastVersion;
     }
@@ -103,7 +106,12 @@
         return elapsedTime >= TIMEOUT_OF_IMPORTANT_NOTICE;
     }
 
-    public static boolean shouldShowImportantNotice(final Context context) {
+    public static boolean shouldShowImportantNotice(final Context context,
+            final SettingsValues settingsValues) {
+        // Check to see whether personalization is enabled by the user.
+        if (!settingsValues.isPersonalizationEnabled()) {
+            return false;
+        }
         if (!hasNewImportantNotice(context)) {
             return false;
         }
diff --git a/java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java b/java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java
deleted file mode 100644
index fbce3f2..0000000
--- a/java/src/com/android/inputmethod/latin/utils/LanguageModelParam.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.utils;
-
-import android.util.Log;
-
-import com.android.inputmethod.latin.Dictionary;
-import com.android.inputmethod.latin.DictionaryFacilitator;
-import com.android.inputmethod.latin.PrevWordsInfo;
-import com.android.inputmethod.latin.settings.SpacingAndPunctuations;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Locale;
-
-// Note: this class is used as a parameter type of a native method. You should be careful when you
-// rename this class or field name. See BinaryDictionary#addMultipleDictionaryEntriesNative().
-public final class LanguageModelParam {
-    private static final String TAG = LanguageModelParam.class.getSimpleName();
-    private static final boolean DEBUG = false;
-    private static final boolean DEBUG_TOKEN = false;
-
-    // For now, these probability values are being referred to only when we add new entries to
-    // decaying dynamic binary dictionaries. When these are referred to, what matters is 0 or
-    // non-0. Thus, it's not meaningful to compare 10, 100, and so on.
-    // TODO: Revise the logic in ForgettingCurveUtils in native code.
-    private static final int UNIGRAM_PROBABILITY_FOR_VALID_WORD = 100;
-    private static final int UNIGRAM_PROBABILITY_FOR_OOV_WORD = Dictionary.NOT_A_PROBABILITY;
-    private static final int BIGRAM_PROBABILITY_FOR_VALID_WORD = 10;
-    private static final int BIGRAM_PROBABILITY_FOR_OOV_WORD = Dictionary.NOT_A_PROBABILITY;
-
-    public final CharSequence mTargetWord;
-    public final int[] mWord0;
-    public final int[] mWord1;
-    // TODO: this needs to be a list of shortcuts
-    public final int[] mShortcutTarget;
-    public final int mUnigramProbability;
-    public final int mBigramProbability;
-    public final int mShortcutProbability;
-    public final boolean mIsNotAWord;
-    public final boolean mIsBlacklisted;
-    // Time stamp in seconds.
-    public final int mTimestamp;
-
-    // Constructor for unigram. TODO: support shortcuts
-    public LanguageModelParam(final CharSequence word, final int unigramProbability,
-            final int timestamp) {
-        this(null /* word0 */, word, unigramProbability, Dictionary.NOT_A_PROBABILITY, timestamp);
-    }
-
-    // Constructor for unigram and bigram.
-    public LanguageModelParam(final CharSequence word0, final CharSequence word1,
-            final int unigramProbability, final int bigramProbability,
-            final int timestamp) {
-        mTargetWord = word1;
-        mWord0 = (word0 == null) ? null : StringUtils.toCodePointArray(word0);
-        mWord1 = StringUtils.toCodePointArray(word1);
-        mShortcutTarget = null;
-        mUnigramProbability = unigramProbability;
-        mBigramProbability = bigramProbability;
-        mShortcutProbability = Dictionary.NOT_A_PROBABILITY;
-        mIsNotAWord = false;
-        mIsBlacklisted = false;
-        mTimestamp = timestamp;
-    }
-
-    // Process a list of words and return a list of {@link LanguageModelParam} objects.
-    public static ArrayList<LanguageModelParam> createLanguageModelParamsFrom(
-            final List<String> tokens, final int timestamp,
-            final DictionaryFacilitator dictionaryFacilitator,
-            final SpacingAndPunctuations spacingAndPunctuations,
-            final DistracterFilter distracterFilter) {
-        final ArrayList<LanguageModelParam> languageModelParams = new ArrayList<>();
-        final int N = tokens.size();
-        PrevWordsInfo prevWordsInfo = PrevWordsInfo.EMPTY_PREV_WORDS_INFO;
-        for (int i = 0; i < N; ++i) {
-            final String tempWord = tokens.get(i);
-            if (StringUtils.isEmptyStringOrWhiteSpaces(tempWord)) {
-                // just skip this token
-                if (DEBUG_TOKEN) {
-                    Log.d(TAG, "--- isEmptyStringOrWhiteSpaces: \"" + tempWord + "\"");
-                }
-                continue;
-            }
-            if (!DictionaryInfoUtils.looksValidForDictionaryInsertion(
-                    tempWord, spacingAndPunctuations)) {
-                if (DEBUG_TOKEN) {
-                    Log.d(TAG, "--- not looksValidForDictionaryInsertion: \""
-                            + tempWord + "\"");
-                }
-                // Sentence terminator found. Split.
-                prevWordsInfo = PrevWordsInfo.EMPTY_PREV_WORDS_INFO;
-                continue;
-            }
-            if (DEBUG_TOKEN) {
-                Log.d(TAG, "--- word: \"" + tempWord + "\"");
-            }
-            final LanguageModelParam languageModelParam =
-                    detectWhetherVaildWordOrNotAndGetLanguageModelParam(
-                            prevWordsInfo, tempWord, timestamp, dictionaryFacilitator,
-                            distracterFilter);
-            if (languageModelParam == null) {
-                continue;
-            }
-            languageModelParams.add(languageModelParam);
-            prevWordsInfo = prevWordsInfo.getNextPrevWordsInfo(
-                    new PrevWordsInfo.WordInfo(tempWord));
-        }
-        return languageModelParams;
-    }
-
-    private static LanguageModelParam detectWhetherVaildWordOrNotAndGetLanguageModelParam(
-            final PrevWordsInfo prevWordsInfo, final String targetWord, final int timestamp,
-            final DictionaryFacilitator dictionaryFacilitator,
-            final DistracterFilter distracterFilter) {
-        final Locale locale = dictionaryFacilitator.getLocale();
-        if (locale == null) {
-            return null;
-        }
-        if (dictionaryFacilitator.isValidWord(targetWord, false /* ignoreCase */)) {
-            return createAndGetLanguageModelParamOfWord(prevWordsInfo, targetWord, timestamp,
-                    true /* isValidWord */, locale, distracterFilter);
-        }
-
-        final String lowerCaseTargetWord = targetWord.toLowerCase(locale);
-        if (dictionaryFacilitator.isValidWord(lowerCaseTargetWord, false /* ignoreCase */)) {
-            // Add the lower-cased word.
-            return createAndGetLanguageModelParamOfWord(prevWordsInfo, lowerCaseTargetWord,
-                    timestamp, true /* isValidWord */, locale, distracterFilter);
-        }
-
-        // Treat the word as an OOV word.
-        return createAndGetLanguageModelParamOfWord(prevWordsInfo, targetWord, timestamp,
-                false /* isValidWord */, locale, distracterFilter);
-    }
-
-    private static LanguageModelParam createAndGetLanguageModelParamOfWord(
-            final PrevWordsInfo prevWordsInfo, final String targetWord, final int timestamp,
-            final boolean isValidWord, final Locale locale,
-            final DistracterFilter distracterFilter) {
-        final String word;
-        if (StringUtils.getCapitalizationType(targetWord) == StringUtils.CAPITALIZE_FIRST
-                && !prevWordsInfo.isValid() && !isValidWord) {
-            word = targetWord.toLowerCase(locale);
-        } else {
-            word = targetWord;
-        }
-        // Check whether the word is a distracter to words in the dictionaries.
-        if (distracterFilter.isDistracterToWordsInDictionaries(prevWordsInfo, word, locale)) {
-            if (DEBUG) {
-                Log.d(TAG, "The word (" + word + ") is a distracter. Skip this word.");
-            }
-            return null;
-        }
-        final int unigramProbability = isValidWord ?
-                UNIGRAM_PROBABILITY_FOR_VALID_WORD : UNIGRAM_PROBABILITY_FOR_OOV_WORD;
-        if (!prevWordsInfo.isValid()) {
-            if (DEBUG) {
-                Log.d(TAG, "--- add unigram: current("
-                        + (isValidWord ? "Valid" : "OOV") + ") = " + word);
-            }
-            return new LanguageModelParam(word, unigramProbability, timestamp);
-        }
-        if (DEBUG) {
-            Log.d(TAG, "--- add bigram: prev = " + prevWordsInfo + ", current("
-                    + (isValidWord ? "Valid" : "OOV") + ") = " + word);
-        }
-        final int bigramProbability = isValidWord ?
-                BIGRAM_PROBABILITY_FOR_VALID_WORD : BIGRAM_PROBABILITY_FOR_OOV_WORD;
-        return new LanguageModelParam(prevWordsInfo.mPrevWordsInfo[0].mWord, word,
-                unigramProbability, bigramProbability, timestamp);
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/utils/LanguageOnSpacebarUtils.java b/java/src/com/android/inputmethod/latin/utils/LanguageOnSpacebarUtils.java
new file mode 100644
index 0000000..a5a1ea9
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/utils/LanguageOnSpacebarUtils.java
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.utils;
+
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.latin.RichInputMethodSubtype;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Locale;
+
+import javax.annotation.Nonnull;
+
+/**
+ * This class determines that the language name on the spacebar should be displayed in what format.
+ */
+public final class LanguageOnSpacebarUtils {
+    public static final int FORMAT_TYPE_NONE = 0;
+    public static final int FORMAT_TYPE_LANGUAGE_ONLY = 1;
+    public static final int FORMAT_TYPE_FULL_LOCALE = 2;
+
+    private static List<InputMethodSubtype> sEnabledSubtypes = Collections.emptyList();
+    private static boolean sIsSystemLanguageSameAsInputLanguage;
+
+    private LanguageOnSpacebarUtils() {
+        // This utility class is not publicly instantiable.
+    }
+
+    public static int getLanguageOnSpacebarFormatType(
+            @Nonnull final RichInputMethodSubtype subtype) {
+        if (subtype.isNoLanguage()) {
+            return FORMAT_TYPE_FULL_LOCALE;
+        }
+        // Only this subtype is enabled and equals to the system locale.
+        if (sEnabledSubtypes.size() < 2 && sIsSystemLanguageSameAsInputLanguage) {
+            return FORMAT_TYPE_NONE;
+        }
+        final Locale locale = subtype.getLocale();
+        if (locale == null) {
+            return FORMAT_TYPE_NONE;
+        }
+        final String keyboardLanguage = locale.getLanguage();
+        final String keyboardLayout = subtype.getKeyboardLayoutSetName();
+        int sameLanguageAndLayoutCount = 0;
+        for (final InputMethodSubtype ims : sEnabledSubtypes) {
+            final String language = SubtypeLocaleUtils.getSubtypeLocale(ims).getLanguage();
+            if (keyboardLanguage.equals(language) && keyboardLayout.equals(
+                    SubtypeLocaleUtils.getKeyboardLayoutSetName(ims))) {
+                sameLanguageAndLayoutCount++;
+            }
+        }
+        // Display full locale name only when there are multiple subtypes that have the same
+        // locale and keyboard layout. Otherwise displaying language name is enough.
+        return sameLanguageAndLayoutCount > 1 ? FORMAT_TYPE_FULL_LOCALE
+                : FORMAT_TYPE_LANGUAGE_ONLY;
+    }
+
+    public static void setEnabledSubtypes(@Nonnull final List<InputMethodSubtype> enabledSubtypes) {
+        sEnabledSubtypes = enabledSubtypes;
+    }
+
+    public static void onSubtypeChanged(@Nonnull final RichInputMethodSubtype subtype,
+           final boolean implicitlyEnabledSubtype, @Nonnull final Locale systemLocale) {
+        final Locale newLocale = subtype.getLocale();
+        if (systemLocale.equals(newLocale)) {
+            sIsSystemLanguageSameAsInputLanguage = true;
+            return;
+        }
+        if (!systemLocale.getLanguage().equals(newLocale.getLanguage())) {
+            sIsSystemLanguageSameAsInputLanguage = false;
+            return;
+        }
+        // If the subtype is enabled explicitly, the language name should be displayed even when
+        // the keyboard language and the system language are equal.
+        sIsSystemLanguageSameAsInputLanguage = implicitlyEnabledSubtype;
+    }
+}
diff --git a/java/src/com/android/inputmethod/latin/utils/LeakGuardHandlerWrapper.java b/java/src/com/android/inputmethod/latin/utils/LeakGuardHandlerWrapper.java
index dd6fac6..9a5be99 100644
--- a/java/src/com/android/inputmethod/latin/utils/LeakGuardHandlerWrapper.java
+++ b/java/src/com/android/inputmethod/latin/utils/LeakGuardHandlerWrapper.java
@@ -21,21 +21,22 @@
 
 import java.lang.ref.WeakReference;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 public class LeakGuardHandlerWrapper<T> extends Handler {
     private final WeakReference<T> mOwnerInstanceRef;
 
-    public LeakGuardHandlerWrapper(final T ownerInstance) {
+    public LeakGuardHandlerWrapper(@Nonnull final T ownerInstance) {
         this(ownerInstance, Looper.myLooper());
     }
 
-    public LeakGuardHandlerWrapper(final T ownerInstance, final Looper looper) {
+    public LeakGuardHandlerWrapper(@Nonnull final T ownerInstance, final Looper looper) {
         super(looper);
-        if (ownerInstance == null) {
-            throw new NullPointerException("ownerInstance is null");
-        }
         mOwnerInstanceRef = new WeakReference<>(ownerInstance);
     }
 
+    @Nullable
     public T getOwnerInstance() {
         return mOwnerInstanceRef.get();
     }
diff --git a/java/src/com/android/inputmethod/latin/utils/LocaleUtils.java b/java/src/com/android/inputmethod/latin/utils/LocaleUtils.java
deleted file mode 100644
index c519a0d..0000000
--- a/java/src/com/android/inputmethod/latin/utils/LocaleUtils.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.utils;
-
-import android.text.TextUtils;
-
-import java.util.HashMap;
-import java.util.Locale;
-
-/**
- * A class to help with handling Locales in string form.
- *
- * This file has the same meaning and features (and shares all of its code) with
- * the one in the dictionary pack. They need to be kept synchronized; for any
- * update/bugfix to this file, consider also updating/fixing the version in the
- * dictionary pack.
- */
-public final class LocaleUtils {
-    private LocaleUtils() {
-        // Intentional empty constructor for utility class.
-    }
-
-    // Locale match level constants.
-    // A higher level of match is guaranteed to have a higher numerical value.
-    // Some room is left within constants to add match cases that may arise necessary
-    // in the future, for example differentiating between the case where the countries
-    // are both present and different, and the case where one of the locales does not
-    // specify the countries. This difference is not needed now.
-
-    // Nothing matches.
-    public static final int LOCALE_NO_MATCH = 0;
-    // The languages matches, but the country are different. Or, the reference locale requires a
-    // country and the tested locale does not have one.
-    public static final int LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER = 3;
-    // The languages and country match, but the variants are different. Or, the reference locale
-    // requires a variant and the tested locale does not have one.
-    public static final int LOCALE_LANGUAGE_AND_COUNTRY_MATCH_VARIANT_DIFFER = 6;
-    // The required locale is null or empty so it will accept anything, and the tested locale
-    // is non-null and non-empty.
-    public static final int LOCALE_ANY_MATCH = 10;
-    // The language matches, and the tested locale specifies a country but the reference locale
-    // does not require one.
-    public static final int LOCALE_LANGUAGE_MATCH = 15;
-    // The language and the country match, and the tested locale specifies a variant but the
-    // reference locale does not require one.
-    public static final int LOCALE_LANGUAGE_AND_COUNTRY_MATCH = 20;
-    // The compared locales are fully identical. This is the best match level.
-    public static final int LOCALE_FULL_MATCH = 30;
-
-    // The level at which a match is "normally" considered a locale match with standard algorithms.
-    // Don't use this directly, use #isMatch to test.
-    private static final int LOCALE_MATCH = LOCALE_ANY_MATCH;
-
-    // Make this match the maximum match level. If this evolves to have more than 2 digits
-    // when written in base 10, also adjust the getMatchLevelSortedString method.
-    private static final int MATCH_LEVEL_MAX = 30;
-
-    /**
-     * Return how well a tested locale matches a reference locale.
-     *
-     * This will check the tested locale against the reference locale and return a measure of how
-     * a well it matches the reference. The general idea is that the tested locale has to match
-     * every specified part of the required locale. A full match occur when they are equal, a
-     * partial match when the tested locale agrees with the reference locale but is more specific,
-     * and a difference when the tested locale does not comply with all requirements from the
-     * reference locale.
-     * In more detail, if the reference locale specifies at least a language and the testedLocale
-     * does not specify one, or specifies a different one, LOCALE_NO_MATCH is returned. If the
-     * reference locale is empty or null, it will match anything - in the form of LOCALE_FULL_MATCH
-     * if the tested locale is empty or null, and LOCALE_ANY_MATCH otherwise. If the reference and
-     * tested locale agree on the language, but not on the country,
-     * LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER is returned if the reference locale specifies a country,
-     * and LOCALE_LANGUAGE_MATCH otherwise.
-     * If they agree on both the language and the country, but not on the variant,
-     * LOCALE_LANGUAGE_AND_COUNTRY_MATCH_VARIANT_DIFFER is returned if the reference locale
-     * specifies a variant, and LOCALE_LANGUAGE_AND_COUNTRY_MATCH otherwise. If everything matches,
-     * LOCALE_FULL_MATCH is returned.
-     * Examples:
-     * en <=> en_US  => LOCALE_LANGUAGE_MATCH
-     * en_US <=> en => LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER
-     * en_US_POSIX <=> en_US_Android  =>  LOCALE_LANGUAGE_AND_COUNTRY_MATCH_VARIANT_DIFFER
-     * en_US <=> en_US_Android => LOCALE_LANGUAGE_AND_COUNTRY_MATCH
-     * sp_US <=> en_US  =>  LOCALE_NO_MATCH
-     * de <=> de  => LOCALE_FULL_MATCH
-     * en_US <=> en_US => LOCALE_FULL_MATCH
-     * "" <=> en_US => LOCALE_ANY_MATCH
-     *
-     * @param referenceLocale the reference locale to test against.
-     * @param testedLocale the locale to test.
-     * @return a constant that measures how well the tested locale matches the reference locale.
-     */
-    public static int getMatchLevel(String referenceLocale, String testedLocale) {
-        if (TextUtils.isEmpty(referenceLocale)) {
-            return TextUtils.isEmpty(testedLocale) ? LOCALE_FULL_MATCH : LOCALE_ANY_MATCH;
-        }
-        if (null == testedLocale) return LOCALE_NO_MATCH;
-        String[] referenceParams = referenceLocale.split("_", 3);
-        String[] testedParams = testedLocale.split("_", 3);
-        // By spec of String#split, [0] cannot be null and length cannot be 0.
-        if (!referenceParams[0].equals(testedParams[0])) return LOCALE_NO_MATCH;
-        switch (referenceParams.length) {
-        case 1:
-            return 1 == testedParams.length ? LOCALE_FULL_MATCH : LOCALE_LANGUAGE_MATCH;
-        case 2:
-            if (1 == testedParams.length) return LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER;
-            if (!referenceParams[1].equals(testedParams[1]))
-                return LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER;
-            if (3 == testedParams.length) return LOCALE_LANGUAGE_AND_COUNTRY_MATCH;
-            return LOCALE_FULL_MATCH;
-        case 3:
-            if (1 == testedParams.length) return LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER;
-            if (!referenceParams[1].equals(testedParams[1]))
-                return LOCALE_LANGUAGE_MATCH_COUNTRY_DIFFER;
-            if (2 == testedParams.length) return LOCALE_LANGUAGE_AND_COUNTRY_MATCH_VARIANT_DIFFER;
-            if (!referenceParams[2].equals(testedParams[2]))
-                return LOCALE_LANGUAGE_AND_COUNTRY_MATCH_VARIANT_DIFFER;
-            return LOCALE_FULL_MATCH;
-        }
-        // It should be impossible to come here
-        return LOCALE_NO_MATCH;
-    }
-
-    /**
-     * Return a string that represents this match level, with better matches first.
-     *
-     * The strings are sorted in lexicographic order: a better match will always be less than
-     * a worse match when compared together.
-     */
-    public static String getMatchLevelSortedString(int matchLevel) {
-        // This works because the match levels are 0~99 (actually 0~30)
-        // Ideally this should use a number of digits equals to the 1og10 of the greater matchLevel
-        return String.format(Locale.ROOT, "%02d", MATCH_LEVEL_MAX - matchLevel);
-    }
-
-    /**
-     * Find out whether a match level should be considered a match.
-     *
-     * This method takes a match level as returned by the #getMatchLevel method, and returns whether
-     * it should be considered a match in the usual sense with standard Locale functions.
-     *
-     * @param level the match level, as returned by getMatchLevel.
-     * @return whether this is a match or not.
-     */
-    public static boolean isMatch(int level) {
-        return LOCALE_MATCH <= level;
-    }
-
-    private static final HashMap<String, Locale> sLocaleCache = new HashMap<>();
-
-    /**
-     * Creates a locale from a string specification.
-     */
-    public static Locale constructLocaleFromString(final String localeStr) {
-        if (localeStr == null) {
-            return null;
-        }
-        synchronized (sLocaleCache) {
-            Locale retval = sLocaleCache.get(localeStr);
-            if (retval != null) {
-                return retval;
-            }
-            String[] localeParams = localeStr.split("_", 3);
-            if (localeParams.length == 1) {
-                retval = new Locale(localeParams[0]);
-            } else if (localeParams.length == 2) {
-                retval = new Locale(localeParams[0], localeParams[1]);
-            } else if (localeParams.length == 3) {
-                retval = new Locale(localeParams[0], localeParams[1], localeParams[2]);
-            }
-            if (retval != null) {
-                sLocaleCache.put(localeStr, retval);
-            }
-            return retval;
-        }
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/utils/NgramContextUtils.java b/java/src/com/android/inputmethod/latin/utils/NgramContextUtils.java
new file mode 100644
index 0000000..c05ffd6
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/utils/NgramContextUtils.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.utils;
+
+import com.android.inputmethod.latin.NgramContext;
+import com.android.inputmethod.latin.NgramContext.WordInfo;
+import com.android.inputmethod.latin.define.DecoderSpecificConstants;
+import com.android.inputmethod.latin.settings.SpacingAndPunctuations;
+
+import java.util.Arrays;
+import java.util.regex.Pattern;
+
+import javax.annotation.Nonnull;
+
+public final class NgramContextUtils {
+    private NgramContextUtils() {
+        // Intentional empty constructor for utility class.
+    }
+
+    private static final Pattern NEWLINE_REGEX = Pattern.compile("[\\r\\n]+");
+    private static final Pattern SPACE_REGEX = Pattern.compile("\\s+");
+    // Get context information from nth word before the cursor. n = 1 retrieves the words
+    // immediately before the cursor, n = 2 retrieves the words before that, and so on. This splits
+    // on whitespace only.
+    // Also, it won't return words that end in a separator (if the nth word before the cursor
+    // ends in a separator, it returns information representing beginning-of-sentence).
+    // Example (when Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM is 2):
+    // (n = 1) "abc def|" -> abc, def
+    // (n = 1) "abc def |" -> abc, def
+    // (n = 1) "abc 'def|" -> empty, 'def
+    // (n = 1) "abc def. |" -> beginning-of-sentence
+    // (n = 1) "abc def . |" -> beginning-of-sentence
+    // (n = 2) "abc def|" -> beginning-of-sentence, abc
+    // (n = 2) "abc def |" -> beginning-of-sentence, abc
+    // (n = 2) "abc 'def|" -> empty. The context is different from "abc def", but we cannot
+    // represent this situation using NgramContext. See TODO in the method.
+    // TODO: The next example's result should be "abc, def". This have to be fixed before we
+    // retrieve the prior context of Beginning-of-Sentence.
+    // (n = 2) "abc def. |" -> beginning-of-sentence, abc
+    // (n = 2) "abc def . |" -> abc, def
+    // (n = 2) "abc|" -> beginning-of-sentence
+    // (n = 2) "abc |" -> beginning-of-sentence
+    // (n = 2) "abc. def|" -> beginning-of-sentence
+    @Nonnull
+    public static NgramContext getNgramContextFromNthPreviousWord(final CharSequence prev,
+            final SpacingAndPunctuations spacingAndPunctuations, final int n) {
+        if (prev == null) return NgramContext.EMPTY_PREV_WORDS_INFO;
+        final String[] lines = NEWLINE_REGEX.split(prev);
+        if (lines.length == 0) {
+            return new NgramContext(WordInfo.BEGINNING_OF_SENTENCE_WORD_INFO);
+        }
+        final String[] w = SPACE_REGEX.split(lines[lines.length - 1]);
+        final WordInfo[] prevWordsInfo =
+                new WordInfo[DecoderSpecificConstants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
+        Arrays.fill(prevWordsInfo, WordInfo.EMPTY_WORD_INFO);
+        for (int i = 0; i < prevWordsInfo.length; i++) {
+            final int focusedWordIndex = w.length - n - i;
+            // Referring to the word after the focused word.
+            if ((focusedWordIndex + 1) >= 0 && (focusedWordIndex + 1) < w.length) {
+                final String wordFollowingTheNthPrevWord = w[focusedWordIndex + 1];
+                if (!wordFollowingTheNthPrevWord.isEmpty()) {
+                    final char firstChar = wordFollowingTheNthPrevWord.charAt(0);
+                    if (spacingAndPunctuations.isWordConnector(firstChar)) {
+                        // The word following the focused word is starting with a word connector.
+                        // TODO: Return meaningful context for this case.
+                        break;
+                    }
+                }
+            }
+            // If we can't find (n + i) words, the context is beginning-of-sentence.
+            if (focusedWordIndex < 0) {
+                prevWordsInfo[i] = WordInfo.BEGINNING_OF_SENTENCE_WORD_INFO;
+                break;
+            }
+
+            final String focusedWord = w[focusedWordIndex];
+            // If the word is empty, the context is beginning-of-sentence.
+            final int length = focusedWord.length();
+            if (length <= 0) {
+                prevWordsInfo[i] = WordInfo.BEGINNING_OF_SENTENCE_WORD_INFO;
+                break;
+            }
+            // If the word ends in a sentence terminator, the context is beginning-of-sentence.
+            final char lastChar = focusedWord.charAt(length - 1);
+            if (spacingAndPunctuations.isSentenceTerminator(lastChar)) {
+                prevWordsInfo[i] = WordInfo.BEGINNING_OF_SENTENCE_WORD_INFO;
+                break;
+            }
+            // If ends in a word separator or connector, the context is unclear.
+            // TODO: Return meaningful context for this case.
+            if (spacingAndPunctuations.isWordSeparator(lastChar)
+                    || spacingAndPunctuations.isWordConnector(lastChar)) {
+                break;
+            }
+            prevWordsInfo[i] = new WordInfo(focusedWord);
+        }
+        return new NgramContext(prevWordsInfo);
+    }
+}
diff --git a/java/src/com/android/inputmethod/latin/utils/PrevWordsInfoUtils.java b/java/src/com/android/inputmethod/latin/utils/PrevWordsInfoUtils.java
deleted file mode 100644
index 3cd6361..0000000
--- a/java/src/com/android/inputmethod/latin/utils/PrevWordsInfoUtils.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.utils;
-
-import java.util.regex.Pattern;
-
-import com.android.inputmethod.latin.Constants;
-import com.android.inputmethod.latin.PrevWordsInfo;
-import com.android.inputmethod.latin.PrevWordsInfo.WordInfo;
-import com.android.inputmethod.latin.settings.SpacingAndPunctuations;
-
-public final class PrevWordsInfoUtils {
-    private PrevWordsInfoUtils() {
-        // Intentional empty constructor for utility class.
-    }
-
-    private static final Pattern SPACE_REGEX = Pattern.compile("\\s+");
-    // Get context information from nth word before the cursor. n = 1 retrieves the words
-    // immediately before the cursor, n = 2 retrieves the words before that, and so on. This splits
-    // on whitespace only.
-    // Also, it won't return words that end in a separator (if the nth word before the cursor
-    // ends in a separator, it returns information representing beginning-of-sentence).
-    // Example (when Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM is 2):
-    // (n = 1) "abc def|" -> abc, def
-    // (n = 1) "abc def |" -> abc, def
-    // (n = 1) "abc 'def|" -> empty, 'def
-    // (n = 1) "abc def. |" -> beginning-of-sentence
-    // (n = 1) "abc def . |" -> beginning-of-sentence
-    // (n = 2) "abc def|" -> beginning-of-sentence, abc
-    // (n = 2) "abc def |" -> beginning-of-sentence, abc
-    // (n = 2) "abc 'def|" -> empty. The context is different from "abc def", but we cannot
-    // represent this situation using PrevWordsInfo. See TODO in the method.
-    // TODO: The next example's result should be "abc, def". This have to be fixed before we
-    // retrieve the prior context of Beginning-of-Sentence.
-    // (n = 2) "abc def. |" -> beginning-of-sentence, abc
-    // (n = 2) "abc def . |" -> abc, def
-    // (n = 2) "abc|" -> beginning-of-sentence
-    // (n = 2) "abc |" -> beginning-of-sentence
-    // (n = 2) "abc. def|" -> beginning-of-sentence
-    public static PrevWordsInfo getPrevWordsInfoFromNthPreviousWord(final CharSequence prev,
-            final SpacingAndPunctuations spacingAndPunctuations, final int n) {
-        if (prev == null) return PrevWordsInfo.EMPTY_PREV_WORDS_INFO;
-        final String[] w = SPACE_REGEX.split(prev);
-        final WordInfo[] prevWordsInfo = new WordInfo[Constants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
-        for (int i = 0; i < prevWordsInfo.length; i++) {
-            final int focusedWordIndex = w.length - n - i;
-            // Referring to the word after the focused word.
-            if ((focusedWordIndex + 1) >= 0 && (focusedWordIndex + 1) < w.length) {
-                final String wordFollowingTheNthPrevWord = w[focusedWordIndex + 1];
-                if (!wordFollowingTheNthPrevWord.isEmpty()) {
-                    final char firstChar = wordFollowingTheNthPrevWord.charAt(0);
-                    if (spacingAndPunctuations.isWordConnector(firstChar)) {
-                        // The word following the focused word is starting with a word connector.
-                        // TODO: Return meaningful context for this case.
-                        prevWordsInfo[i] = WordInfo.EMPTY_WORD_INFO;
-                        break;
-                    }
-                }
-            }
-            // If we can't find (n + i) words, the context is beginning-of-sentence.
-            if (focusedWordIndex < 0) {
-                prevWordsInfo[i] = WordInfo.BEGINNING_OF_SENTENCE;
-                break;
-            }
-            final String focusedWord = w[focusedWordIndex];
-            // If the word is, the context is beginning-of-sentence.
-            final int length = focusedWord.length();
-            if (length <= 0) {
-                prevWordsInfo[i] = WordInfo.BEGINNING_OF_SENTENCE;
-                break;
-            }
-            // If ends in a sentence separator, the context is beginning-of-sentence.
-            final char lastChar = focusedWord.charAt(length - 1);
-            if (spacingAndPunctuations.isSentenceSeparator(lastChar)) {
-                prevWordsInfo[i] = WordInfo.BEGINNING_OF_SENTENCE;
-                break;
-            }
-            // If ends in a word separator or connector, the context is unclear.
-            // TODO: Return meaningful context for this case.
-            if (spacingAndPunctuations.isWordSeparator(lastChar)
-                    || spacingAndPunctuations.isWordConnector(lastChar)) {
-                prevWordsInfo[i] = WordInfo.EMPTY_WORD_INFO;
-                break;
-            }
-            prevWordsInfo[i] = new WordInfo(focusedWord);
-        }
-        return new PrevWordsInfo(prevWordsInfo);
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/utils/RecapitalizeStatus.java b/java/src/com/android/inputmethod/latin/utils/RecapitalizeStatus.java
index e3cac97..a381649 100644
--- a/java/src/com/android/inputmethod/latin/utils/RecapitalizeStatus.java
+++ b/java/src/com/android/inputmethod/latin/utils/RecapitalizeStatus.java
@@ -16,6 +16,8 @@
 
 package com.android.inputmethod.latin.utils;
 
+import com.android.inputmethod.latin.common.StringUtils;
+
 import java.util.Locale;
 
 /**
@@ -49,6 +51,17 @@
         }
     }
 
+    public static String modeToString(final int recapitalizeMode) {
+        switch (recapitalizeMode) {
+        case NOT_A_RECAPITALIZE_MODE: return "undefined";
+        case CAPS_MODE_ORIGINAL_MIXED_CASE: return "mixedCase";
+        case CAPS_MODE_ALL_LOWER: return "allLower";
+        case CAPS_MODE_FIRST_WORD_UPPER: return "firstWordUpper";
+        case CAPS_MODE_ALL_UPPER: return "allUpper";
+        default: return "unknown<" + recapitalizeMode + ">";
+        }
+    }
+
     /**
      * We store the location of the cursor and the string that was there before the recapitalize
      * action was done, and the location of the cursor and the string that was there after.
diff --git a/java/src/com/android/inputmethod/latin/utils/ResizableIntArray.java b/java/src/com/android/inputmethod/latin/utils/ResizableIntArray.java
deleted file mode 100644
index 64c9e2c..0000000
--- a/java/src/com/android/inputmethod/latin/utils/ResizableIntArray.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.utils;
-
-import java.util.Arrays;
-
-// TODO: This class is not thread-safe.
-public final class ResizableIntArray {
-    private int[] mArray;
-    private int mLength;
-
-    public ResizableIntArray(final int capacity) {
-        reset(capacity);
-    }
-
-    public int get(final int index) {
-        if (index < mLength) {
-            return mArray[index];
-        }
-        throw new ArrayIndexOutOfBoundsException("length=" + mLength + "; index=" + index);
-    }
-
-    public void addAt(final int index, final int val) {
-        if (index < mLength) {
-            mArray[index] = val;
-        } else {
-            mLength = index;
-            add(val);
-        }
-    }
-
-    public void add(final int val) {
-        final int currentLength = mLength;
-        ensureCapacity(currentLength + 1);
-        mArray[currentLength] = val;
-        mLength = currentLength + 1;
-    }
-
-    /**
-     * Calculate the new capacity of {@code mArray}.
-     * @param minimumCapacity the minimum capacity that the {@code mArray} should have.
-     * @return the new capacity that the {@code mArray} should have. Returns zero when there is no
-     * need to expand {@code mArray}.
-     */
-    private int calculateCapacity(final int minimumCapacity) {
-        final int currentCapcity = mArray.length;
-        if (currentCapcity < minimumCapacity) {
-            final int nextCapacity = currentCapcity * 2;
-            // The following is the same as return Math.max(minimumCapacity, nextCapacity);
-            return minimumCapacity > nextCapacity ? minimumCapacity : nextCapacity;
-        }
-        return 0;
-    }
-
-    private void ensureCapacity(final int minimumCapacity) {
-        final int newCapacity = calculateCapacity(minimumCapacity);
-        if (newCapacity > 0) {
-            // TODO: Implement primitive array pool.
-            mArray = Arrays.copyOf(mArray, newCapacity);
-        }
-    }
-
-    public int getLength() {
-        return mLength;
-    }
-
-    public void setLength(final int newLength) {
-        ensureCapacity(newLength);
-        mLength = newLength;
-    }
-
-    public void reset(final int capacity) {
-        // TODO: Implement primitive array pool.
-        mArray = new int[capacity];
-        mLength = 0;
-    }
-
-    public int[] getPrimitiveArray() {
-        return mArray;
-    }
-
-    public void set(final ResizableIntArray ip) {
-        // TODO: Implement primitive array pool.
-        mArray = ip.mArray;
-        mLength = ip.mLength;
-    }
-
-    public void copy(final ResizableIntArray ip) {
-        final int newCapacity = calculateCapacity(ip.mLength);
-        if (newCapacity > 0) {
-            // TODO: Implement primitive array pool.
-            mArray = new int[newCapacity];
-        }
-        System.arraycopy(ip.mArray, 0, mArray, 0, ip.mLength);
-        mLength = ip.mLength;
-    }
-
-    public void append(final ResizableIntArray src, final int startPos, final int length) {
-        if (length == 0) {
-            return;
-        }
-        final int currentLength = mLength;
-        final int newLength = currentLength + length;
-        ensureCapacity(newLength);
-        System.arraycopy(src.mArray, startPos, mArray, currentLength, length);
-        mLength = newLength;
-    }
-
-    public void fill(final int value, final int startPos, final int length) {
-        if (startPos < 0 || length < 0) {
-            throw new IllegalArgumentException("startPos=" + startPos + "; length=" + length);
-        }
-        final int endPos = startPos + length;
-        ensureCapacity(endPos);
-        Arrays.fill(mArray, startPos, endPos, value);
-        if (mLength < endPos) {
-            mLength = endPos;
-        }
-    }
-
-    /**
-     * Shift to the left by elementCount, discarding elementCount pointers at the start.
-     * @param elementCount how many elements to shift.
-     */
-    public void shift(final int elementCount) {
-        System.arraycopy(mArray, elementCount, mArray, 0, mLength - elementCount);
-        mLength -= elementCount;
-    }
-
-    @Override
-    public String toString() {
-        final StringBuilder sb = new StringBuilder();
-        for (int i = 0; i < mLength; i++) {
-            if (i != 0) {
-                sb.append(",");
-            }
-            sb.append(mArray[i]);
-        }
-        return "[" + sb + "]";
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/utils/ResourceUtils.java b/java/src/com/android/inputmethod/latin/utils/ResourceUtils.java
index 093c5a6..cc0d470 100644
--- a/java/src/com/android/inputmethod/latin/utils/ResourceUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/ResourceUtils.java
@@ -26,6 +26,7 @@
 
 import com.android.inputmethod.annotations.UsedForTesting;
 import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.settings.SettingsValues;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -110,7 +111,6 @@
      * are true for the specified key value pairs.
      *
      * For example, "condition,constant" has the following format.
-     * (See {@link ResourceUtilsTests#testFindConstantForKeyValuePairsRegexp()})
      *  - HARDWARE=mako,constantForNexus4
      *  - MODEL=Nexus 4:MANUFACTURER=LGE,constantForNexus4
      *  - ,defaultConstant
@@ -119,6 +119,7 @@
      * @param conditionConstantArray an array of "condition,constant" elements to be searched.
      * @return the constant part of the matched "condition,constant" element. Returns null if no
      * condition matches.
+     * @see com.android.inputmethod.latin.utils.ResourceUtilsTests#testFindConstantForKeyValuePairsRegexp()
      */
     @UsedForTesting
     static String findConstantForKeyValuePairs(final HashMap<String, String> keyValuePairs,
@@ -186,6 +187,15 @@
         return dm.widthPixels;
     }
 
+    public static int getKeyboardHeight(final Resources res, final SettingsValues settingsValues) {
+        final int defaultKeyboardHeight = getDefaultKeyboardHeight(res);
+        if (settingsValues.mHasKeyboardResize) {
+            // mKeyboardHeightScale Ranges from [.5,1.2], from xml/prefs_screen_debug.xml
+            return (int)(defaultKeyboardHeight * settingsValues.mKeyboardHeightScale);
+        }
+        return defaultKeyboardHeight;
+    }
+
     public static int getDefaultKeyboardHeight(final Resources res) {
         final DisplayMetrics dm = res.getDisplayMetrics();
         final String keyboardHeightInDp = getDeviceOverrideValue(
diff --git a/java/src/com/android/inputmethod/latin/utils/ScriptUtils.java b/java/src/com/android/inputmethod/latin/utils/ScriptUtils.java
index 0e24466..4679f78 100644
--- a/java/src/com/android/inputmethod/latin/utils/ScriptUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/ScriptUtils.java
@@ -23,9 +23,10 @@
  * A class to help with handling different writing scripts.
  */
 public class ScriptUtils {
+
     // Used for hardware keyboards
     public static final int SCRIPT_UNKNOWN = -1;
-    // TODO: should we use ISO 15924 identifiers instead?
+
     public static final int SCRIPT_ARABIC = 0;
     public static final int SCRIPT_ARMENIAN = 1;
     public static final int SCRIPT_BENGALI = 2;
@@ -44,35 +45,31 @@
     public static final int SCRIPT_TAMIL = 15;
     public static final int SCRIPT_TELUGU = 16;
     public static final int SCRIPT_THAI = 17;
-    public static final TreeMap<String, Integer> mSpellCheckerLanguageToScript;
+
+    private static final TreeMap<String, Integer> mLanguageCodeToScriptCode;
+
     static {
-        // List of the supported languages and their associated script. We won't check
-        // words written in another script than the selected script, because we know we
-        // don't have those in our dictionary so we will underline everything and we
-        // will never have any suggestions, so it makes no sense checking them, and this
-        // is done in {@link #shouldFilterOut}. Also, the script is used to choose which
-        // proximity to pass to the dictionary descent algorithm.
-        // IMPORTANT: this only contains languages - do not write countries in there.
-        // Only the language is searched from the map.
-        mSpellCheckerLanguageToScript = new TreeMap<>();
-        mSpellCheckerLanguageToScript.put("cs", SCRIPT_LATIN);
-        mSpellCheckerLanguageToScript.put("da", SCRIPT_LATIN);
-        mSpellCheckerLanguageToScript.put("de", SCRIPT_LATIN);
-        mSpellCheckerLanguageToScript.put("el", SCRIPT_GREEK);
-        mSpellCheckerLanguageToScript.put("en", SCRIPT_LATIN);
-        mSpellCheckerLanguageToScript.put("es", SCRIPT_LATIN);
-        mSpellCheckerLanguageToScript.put("fi", SCRIPT_LATIN);
-        mSpellCheckerLanguageToScript.put("fr", SCRIPT_LATIN);
-        mSpellCheckerLanguageToScript.put("hr", SCRIPT_LATIN);
-        mSpellCheckerLanguageToScript.put("it", SCRIPT_LATIN);
-        mSpellCheckerLanguageToScript.put("lt", SCRIPT_LATIN);
-        mSpellCheckerLanguageToScript.put("lv", SCRIPT_LATIN);
-        mSpellCheckerLanguageToScript.put("nb", SCRIPT_LATIN);
-        mSpellCheckerLanguageToScript.put("nl", SCRIPT_LATIN);
-        mSpellCheckerLanguageToScript.put("pt", SCRIPT_LATIN);
-        mSpellCheckerLanguageToScript.put("sl", SCRIPT_LATIN);
-        mSpellCheckerLanguageToScript.put("ru", SCRIPT_CYRILLIC);
+        mLanguageCodeToScriptCode = new TreeMap<>();
+        mLanguageCodeToScriptCode.put("", SCRIPT_LATIN); // default
+        mLanguageCodeToScriptCode.put("ar", SCRIPT_ARABIC);
+        mLanguageCodeToScriptCode.put("hy", SCRIPT_ARMENIAN);
+        mLanguageCodeToScriptCode.put("bn", SCRIPT_BENGALI);
+        mLanguageCodeToScriptCode.put("bg", SCRIPT_CYRILLIC);
+        mLanguageCodeToScriptCode.put("sr", SCRIPT_CYRILLIC);
+        mLanguageCodeToScriptCode.put("ru", SCRIPT_CYRILLIC);
+        mLanguageCodeToScriptCode.put("ka", SCRIPT_GEORGIAN);
+        mLanguageCodeToScriptCode.put("el", SCRIPT_GREEK);
+        mLanguageCodeToScriptCode.put("he", SCRIPT_HEBREW);
+        mLanguageCodeToScriptCode.put("km", SCRIPT_KHMER);
+        mLanguageCodeToScriptCode.put("lo", SCRIPT_LAO);
+        mLanguageCodeToScriptCode.put("ml", SCRIPT_MALAYALAM);
+        mLanguageCodeToScriptCode.put("my", SCRIPT_MYANMAR);
+        mLanguageCodeToScriptCode.put("si", SCRIPT_SINHALA);
+        mLanguageCodeToScriptCode.put("ta", SCRIPT_TAMIL);
+        mLanguageCodeToScriptCode.put("te", SCRIPT_TELUGU);
+        mLanguageCodeToScriptCode.put("th", SCRIPT_THAI);
     }
+
     /*
      * Returns whether the code point is a letter that makes sense for the specified
      * locale for this spell checker.
@@ -181,11 +178,17 @@
         }
     }
 
+    /**
+     * @param locale spell checker locale
+     * @return internal Latin IME script code that maps to a language code
+     * {@see http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes}
+     */
     public static int getScriptFromSpellCheckerLocale(final Locale locale) {
-        final Integer script = mSpellCheckerLanguageToScript.get(locale.getLanguage());
-        if (null == script) {
-            throw new RuntimeException("We have been called with an unsupported language: \""
-                    + locale.getLanguage() + "\". Framework bug?");
+        String language = locale.getLanguage();
+        Integer script = mLanguageCodeToScriptCode.get(language);
+        if (script == null) {
+            // Default to Latin.
+            script = mLanguageCodeToScriptCode.get("");
         }
         return script;
     }
diff --git a/java/src/com/android/inputmethod/latin/utils/SpacebarLanguageUtils.java b/java/src/com/android/inputmethod/latin/utils/SpacebarLanguageUtils.java
deleted file mode 100644
index 1ca895f..0000000
--- a/java/src/com/android/inputmethod/latin/utils/SpacebarLanguageUtils.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.utils;
-
-import android.view.inputmethod.InputMethodSubtype;
-
-public final class SpacebarLanguageUtils {
-    private SpacebarLanguageUtils() {
-        // Intentional empty constructor for utility class.
-    }
-
-    // InputMethodSubtype's display name for spacebar text in its locale.
-    //        isAdditionalSubtype (T=true, F=false)
-    // locale layout  |  Middle      Full
-    // ------ ------- - --------- ----------------------
-    //  en_US qwerty  F  English   English (US)           exception
-    //  en_GB qwerty  F  English   English (UK)           exception
-    //  es_US spanish F  Español   Español (EE.UU.)       exception
-    //  fr    azerty  F  Français  Français
-    //  fr_CA qwerty  F  Français  Français (Canada)
-    //  fr_CH swiss   F  Français  Français (Suisse)
-    //  de    qwertz  F  Deutsch   Deutsch
-    //  de_CH swiss   T  Deutsch   Deutsch (Schweiz)
-    //  zz    qwerty  F  QWERTY    QWERTY
-    //  fr    qwertz  T  Français  Français
-    //  de    qwerty  T  Deutsch   Deutsch
-    //  en_US azerty  T  English   English (US)
-    //  zz    azerty  T  AZERTY    AZERTY
-    // Get InputMethodSubtype's full display name in its locale.
-    public static String getFullDisplayName(final InputMethodSubtype subtype) {
-        if (SubtypeLocaleUtils.isNoLanguage(subtype)) {
-            return SubtypeLocaleUtils.getKeyboardLayoutSetDisplayName(subtype);
-        }
-        return SubtypeLocaleUtils.getSubtypeLocaleDisplayName(subtype.getLocale());
-    }
-
-    // Get InputMethodSubtype's middle display name in its locale.
-    public static String getMiddleDisplayName(final InputMethodSubtype subtype) {
-        if (SubtypeLocaleUtils.isNoLanguage(subtype)) {
-            return SubtypeLocaleUtils.getKeyboardLayoutSetDisplayName(subtype);
-        }
-        return SubtypeLocaleUtils.getSubtypeLanguageDisplayName(subtype.getLocale());
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/utils/SpannableStringUtils.java b/java/src/com/android/inputmethod/latin/utils/SpannableStringUtils.java
index 38164cb..c41817f 100644
--- a/java/src/com/android/inputmethod/latin/utils/SpannableStringUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/SpannableStringUtils.java
@@ -24,6 +24,12 @@
 import android.text.style.SuggestionSpan;
 import android.text.style.URLSpan;
 
+import com.android.inputmethod.annotations.UsedForTesting;
+
+import java.util.ArrayList;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
 public final class SpannableStringUtils {
     /**
      * Copies the spans from the region <code>start...end</code> in
@@ -51,7 +57,7 @@
             // of a word. But the spans have been split into two by the getText{Before,After}Cursor
             // methods, so after concatenation they may end in the middle of a word.
             // Since we don't use them, we can just remove them and avoid crashing.
-            fl &= ~Spannable.SPAN_PARAGRAPH;
+            fl &= ~Spanned.SPAN_PARAGRAPH;
 
             int st = source.getSpanStart(spans[i]);
             int en = source.getSpanEnd(spans[i]);
@@ -125,4 +131,53 @@
         final URLSpan[] spans = spanned.getSpans(startIndex - 1, endIndex + 1, URLSpan.class);
         return null != spans && spans.length > 0;
     }
+
+    /**
+     * Splits the given {@code charSequence} with at occurrences of the given {@code regex}.
+     * <p>
+     * This is equivalent to
+     * {@code charSequence.toString().split(regex, preserveTrailingEmptySegments ? -1 : 0)}
+     * except that the spans are preserved in the result array.
+     * </p>
+     * @param charSequence the character sequence to be split.
+     * @param regex the regex pattern to be used as the separator.
+     * @param preserveTrailingEmptySegments {@code true} to preserve the trailing empty
+     * segments. Otherwise, trailing empty segments will be removed before being returned.
+     * @return the array which contains the result. All the spans in the <code>charSequence</code>
+     * is preserved.
+     */
+    @UsedForTesting
+    public static CharSequence[] split(final CharSequence charSequence, final String regex,
+            final boolean preserveTrailingEmptySegments) {
+        // A short-cut for non-spanned strings.
+        if (!(charSequence instanceof Spanned)) {
+            // -1 means that trailing empty segments will be preserved.
+            return charSequence.toString().split(regex, preserveTrailingEmptySegments ? -1 : 0);
+        }
+
+        // Hereafter, emulate String.split for CharSequence.
+        final ArrayList<CharSequence> sequences = new ArrayList<>();
+        final Matcher matcher = Pattern.compile(regex).matcher(charSequence);
+        int nextStart = 0;
+        boolean matched = false;
+        while (matcher.find()) {
+            sequences.add(charSequence.subSequence(nextStart, matcher.start()));
+            nextStart = matcher.end();
+            matched = true;
+        }
+        if (!matched) {
+            // never matched. preserveTrailingEmptySegments is ignored in this case.
+            return new CharSequence[] { charSequence };
+        }
+        sequences.add(charSequence.subSequence(nextStart, charSequence.length()));
+        if (!preserveTrailingEmptySegments) {
+            for (int i = sequences.size() - 1; i >= 0; --i) {
+                if (!TextUtils.isEmpty(sequences.get(i))) {
+                    break;
+                }
+                sequences.remove(i);
+            }
+        }
+        return sequences.toArray(new CharSequence[sequences.size()]);
+    }
 }
diff --git a/java/src/com/android/inputmethod/latin/utils/StringUtils.java b/java/src/com/android/inputmethod/latin/utils/StringUtils.java
deleted file mode 100644
index 79128db..0000000
--- a/java/src/com/android/inputmethod/latin/utils/StringUtils.java
+++ /dev/null
@@ -1,646 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.utils;
-
-import static com.android.inputmethod.latin.Constants.CODE_UNSPECIFIED;
-
-import android.text.Spanned;
-import android.text.TextUtils;
-
-import com.android.inputmethod.annotations.UsedForTesting;
-import com.android.inputmethod.latin.Constants;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Locale;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public final class StringUtils {
-    public static final int CAPITALIZE_NONE = 0;  // No caps, or mixed case
-    public static final int CAPITALIZE_FIRST = 1; // First only
-    public static final int CAPITALIZE_ALL = 2;   // All caps
-
-    private static final String EMPTY_STRING = "";
-
-    private static final char CHAR_LINE_FEED = 0X000A;
-    private static final char CHAR_VERTICAL_TAB = 0X000B;
-    private static final char CHAR_FORM_FEED = 0X000C;
-    private static final char CHAR_CARRIAGE_RETURN = 0X000D;
-    private static final char CHAR_NEXT_LINE = 0X0085;
-    private static final char CHAR_LINE_SEPARATOR = 0X2028;
-    private static final char CHAR_PARAGRAPH_SEPARATOR = 0X2029;
-
-    private StringUtils() {
-        // This utility class is not publicly instantiable.
-    }
-
-    public static int codePointCount(final String text) {
-        if (TextUtils.isEmpty(text)) return 0;
-        return text.codePointCount(0, text.length());
-    }
-
-    public static String newSingleCodePointString(int codePoint) {
-        if (Character.charCount(codePoint) == 1) {
-            // Optimization: avoid creating a temporary array for characters that are
-            // represented by a single char value
-            return String.valueOf((char) codePoint);
-        }
-        // For surrogate pair
-        return new String(Character.toChars(codePoint));
-    }
-
-    public static boolean containsInArray(final String text, final String[] array) {
-        for (final String element : array) {
-            if (text.equals(element)) return true;
-        }
-        return false;
-    }
-
-    /**
-     * Comma-Splittable Text is similar to Comma-Separated Values (CSV) but has much simpler syntax.
-     * Unlike CSV, Comma-Splittable Text has no escaping mechanism, so that the text can't contain
-     * a comma character in it.
-     */
-    private static final String SEPARATOR_FOR_COMMA_SPLITTABLE_TEXT = ",";
-
-    public static boolean containsInCommaSplittableText(final String text,
-            final String extraValues) {
-        if (TextUtils.isEmpty(extraValues)) {
-            return false;
-        }
-        return containsInArray(text, extraValues.split(SEPARATOR_FOR_COMMA_SPLITTABLE_TEXT));
-    }
-
-    public static String removeFromCommaSplittableTextIfExists(final String text,
-            final String extraValues) {
-        if (TextUtils.isEmpty(extraValues)) {
-            return EMPTY_STRING;
-        }
-        final String[] elements = extraValues.split(SEPARATOR_FOR_COMMA_SPLITTABLE_TEXT);
-        if (!containsInArray(text, elements)) {
-            return extraValues;
-        }
-        final ArrayList<String> result = new ArrayList<>(elements.length - 1);
-        for (final String element : elements) {
-            if (!text.equals(element)) {
-                result.add(element);
-            }
-        }
-        return TextUtils.join(SEPARATOR_FOR_COMMA_SPLITTABLE_TEXT, result);
-    }
-
-    /**
-     * Remove duplicates from an array of strings.
-     *
-     * This method will always keep the first occurrence of all strings at their position
-     * in the array, removing the subsequent ones.
-     */
-    public static void removeDupes(final ArrayList<String> suggestions) {
-        if (suggestions.size() < 2) return;
-        int i = 1;
-        // Don't cache suggestions.size(), since we may be removing items
-        while (i < suggestions.size()) {
-            final String cur = suggestions.get(i);
-            // Compare each suggestion with each previous suggestion
-            for (int j = 0; j < i; j++) {
-                final String previous = suggestions.get(j);
-                if (TextUtils.equals(cur, previous)) {
-                    suggestions.remove(i);
-                    i--;
-                    break;
-                }
-            }
-            i++;
-        }
-    }
-
-    public static String capitalizeFirstCodePoint(final String s, final Locale locale) {
-        if (s.length() <= 1) {
-            return toUpperCaseOfStringForLocale(s, true /* needsToUpperCase */, locale);
-        }
-        // Please refer to the comment below in
-        // {@link #capitalizeFirstAndDowncaseRest(String,Locale)} as this has the same shortcomings
-        final int cutoff = s.offsetByCodePoints(0, 1);
-        return toUpperCaseOfStringForLocale(
-                s.substring(0, cutoff), true /* needsToUpperCase */, locale) + s.substring(cutoff);
-    }
-
-    public static String capitalizeFirstAndDowncaseRest(final String s, final Locale locale) {
-        if (s.length() <= 1) {
-            return toUpperCaseOfStringForLocale(s, true /* needsToUpperCase */, locale);
-        }
-        // TODO: fix the bugs below
-        // - It does not work for Serbian, because it fails to account for the "lj" character,
-        // which should be "Lj" in title case and "LJ" in upper case.
-        // - It does not work for Dutch, because it fails to account for the "ij" digraph when it's
-        // written as two separate code points. They are two different characters but both should
-        // be capitalized as "IJ" as if they were a single letter in most words (not all). If the
-        // unicode char for the ligature is used however, it works.
-        final int cutoff = s.offsetByCodePoints(0, 1);
-        final String titleCaseFirstLetter = toUpperCaseOfStringForLocale(
-                s.substring(0, cutoff), true /* needsToUpperCase */, locale);
-        return titleCaseFirstLetter + s.substring(cutoff).toLowerCase(locale);
-    }
-
-    private static final int[] EMPTY_CODEPOINTS = {};
-
-    public static int[] toCodePointArray(final CharSequence charSequence) {
-        return toCodePointArray(charSequence, 0, charSequence.length());
-    }
-
-    /**
-     * Converts a range of a string to an array of code points.
-     * @param charSequence the source string.
-     * @param startIndex the start index inside the string in java chars, inclusive.
-     * @param endIndex the end index inside the string in java chars, exclusive.
-     * @return a new array of code points. At most endIndex - startIndex, but possibly less.
-     */
-    public static int[] toCodePointArray(final CharSequence charSequence,
-            final int startIndex, final int endIndex) {
-        final int length = charSequence.length();
-        if (length <= 0) {
-            return EMPTY_CODEPOINTS;
-        }
-        final int[] codePoints =
-                new int[Character.codePointCount(charSequence, startIndex, endIndex)];
-        copyCodePointsAndReturnCodePointCount(codePoints, charSequence, startIndex, endIndex,
-                false /* downCase */);
-        return codePoints;
-    }
-
-    /**
-     * Copies the codepoints in a CharSequence to an int array.
-     *
-     * This method assumes there is enough space in the array to store the code points. The size
-     * can be measured with Character#codePointCount(CharSequence, int, int) before passing to this
-     * method. If the int array is too small, an ArrayIndexOutOfBoundsException will be thrown.
-     * Also, this method makes no effort to be thread-safe. Do not modify the CharSequence while
-     * this method is running, or the behavior is undefined.
-     * This method can optionally downcase code points before copying them, but it pays no attention
-     * to locale while doing so.
-     *
-     * @param destination the int array.
-     * @param charSequence the CharSequence.
-     * @param startIndex the start index inside the string in java chars, inclusive.
-     * @param endIndex the end index inside the string in java chars, exclusive.
-     * @param downCase if this is true, code points will be downcased before being copied.
-     * @return the number of copied code points.
-     */
-    public static int copyCodePointsAndReturnCodePointCount(final int[] destination,
-            final CharSequence charSequence, final int startIndex, final int endIndex,
-            final boolean downCase) {
-        int destIndex = 0;
-        for (int index = startIndex; index < endIndex;
-                index = Character.offsetByCodePoints(charSequence, index, 1)) {
-            final int codePoint = Character.codePointAt(charSequence, index);
-            // TODO: stop using this, as it's not aware of the locale and does not always do
-            // the right thing.
-            destination[destIndex] = downCase ? Character.toLowerCase(codePoint) : codePoint;
-            destIndex++;
-        }
-        return destIndex;
-    }
-
-    public static int[] toSortedCodePointArray(final String string) {
-        final int[] codePoints = toCodePointArray(string);
-        Arrays.sort(codePoints);
-        return codePoints;
-    }
-
-    /**
-     * Construct a String from a code point array
-     *
-     * @param codePoints a code point array that is null terminated when its logical length is
-     * shorter than the array length.
-     * @return a string constructed from the code point array.
-     */
-    public static String getStringFromNullTerminatedCodePointArray(final int[] codePoints) {
-        int stringLength = codePoints.length;
-        for (int i = 0; i < codePoints.length; i++) {
-            if (codePoints[i] == 0) {
-                stringLength = i;
-                break;
-            }
-        }
-        return new String(codePoints, 0 /* offset */, stringLength);
-    }
-
-    // This method assumes the text is not null. For the empty string, it returns CAPITALIZE_NONE.
-    public static int getCapitalizationType(final String text) {
-        // If the first char is not uppercase, then the word is either all lower case or
-        // camel case, and in either case we return CAPITALIZE_NONE.
-        final int len = text.length();
-        int index = 0;
-        for (; index < len; index = text.offsetByCodePoints(index, 1)) {
-            if (Character.isLetter(text.codePointAt(index))) {
-                break;
-            }
-        }
-        if (index == len) return CAPITALIZE_NONE;
-        if (!Character.isUpperCase(text.codePointAt(index))) {
-            return CAPITALIZE_NONE;
-        }
-        int capsCount = 1;
-        int letterCount = 1;
-        for (index = text.offsetByCodePoints(index, 1); index < len;
-                index = text.offsetByCodePoints(index, 1)) {
-            if (1 != capsCount && letterCount != capsCount) break;
-            final int codePoint = text.codePointAt(index);
-            if (Character.isUpperCase(codePoint)) {
-                ++capsCount;
-                ++letterCount;
-            } else if (Character.isLetter(codePoint)) {
-                // We need to discount non-letters since they may not be upper-case, but may
-                // still be part of a word (e.g. single quote or dash, as in "IT'S" or "FULL-TIME")
-                ++letterCount;
-            }
-        }
-        // We know the first char is upper case. So we want to test if either every letter other
-        // than the first is lower case, or if they are all upper case. If the string is exactly
-        // one char long, then we will arrive here with letterCount 1, and this is correct, too.
-        if (1 == capsCount) return CAPITALIZE_FIRST;
-        return (letterCount == capsCount ? CAPITALIZE_ALL : CAPITALIZE_NONE);
-    }
-
-    public static boolean isIdenticalAfterUpcase(final String text) {
-        final int length = text.length();
-        int i = 0;
-        while (i < length) {
-            final int codePoint = text.codePointAt(i);
-            if (Character.isLetter(codePoint) && !Character.isUpperCase(codePoint)) {
-                return false;
-            }
-            i += Character.charCount(codePoint);
-        }
-        return true;
-    }
-
-    public static boolean isIdenticalAfterDowncase(final String text) {
-        final int length = text.length();
-        int i = 0;
-        while (i < length) {
-            final int codePoint = text.codePointAt(i);
-            if (Character.isLetter(codePoint) && !Character.isLowerCase(codePoint)) {
-                return false;
-            }
-            i += Character.charCount(codePoint);
-        }
-        return true;
-    }
-
-    public static boolean isIdenticalAfterCapitalizeEachWord(final String text,
-            final int[] sortedSeparators) {
-        boolean needsCapsNext = true;
-        final int len = text.length();
-        for (int i = 0; i < len; i = text.offsetByCodePoints(i, 1)) {
-            final int codePoint = text.codePointAt(i);
-            if (Character.isLetter(codePoint)) {
-                if ((needsCapsNext && !Character.isUpperCase(codePoint))
-                        || (!needsCapsNext && !Character.isLowerCase(codePoint))) {
-                    return false;
-                }
-            }
-            // We need a capital letter next if this is a separator.
-            needsCapsNext = (Arrays.binarySearch(sortedSeparators, codePoint) >= 0);
-        }
-        return true;
-    }
-
-    // TODO: like capitalizeFirst*, this does not work perfectly for Dutch because of the IJ digraph
-    // which should be capitalized together in *some* cases.
-    public static String capitalizeEachWord(final String text, final int[] sortedSeparators,
-            final Locale locale) {
-        final StringBuilder builder = new StringBuilder();
-        boolean needsCapsNext = true;
-        final int len = text.length();
-        for (int i = 0; i < len; i = text.offsetByCodePoints(i, 1)) {
-            final String nextChar = text.substring(i, text.offsetByCodePoints(i, 1));
-            if (needsCapsNext) {
-                builder.append(nextChar.toUpperCase(locale));
-            } else {
-                builder.append(nextChar.toLowerCase(locale));
-            }
-            // We need a capital letter next if this is a separator.
-            needsCapsNext = (Arrays.binarySearch(sortedSeparators, nextChar.codePointAt(0)) >= 0);
-        }
-        return builder.toString();
-    }
-
-    /**
-     * Approximates whether the text before the cursor looks like a URL.
-     *
-     * This is not foolproof, but it should work well in the practice.
-     * Essentially it walks backward from the cursor until it finds something that's not a letter,
-     * digit, or common URL symbol like underscore. If it hasn't found a period yet, then it
-     * does not look like a URL.
-     * If the text:
-     * - starts with www and contains a period
-     * - starts with a slash preceded by either a slash, whitespace, or start-of-string
-     * Then it looks like a URL and we return true. Otherwise, we return false.
-     *
-     * Note: this method is called quite often, and should be fast.
-     *
-     * TODO: This will return that "abc./def" and ".abc/def" look like URLs to keep down the
-     * code complexity, but ideally it should not. It's acceptable for now.
-     */
-    public static boolean lastPartLooksLikeURL(final CharSequence text) {
-        int i = text.length();
-        if (0 == i) return false;
-        int wCount = 0;
-        int slashCount = 0;
-        boolean hasSlash = false;
-        boolean hasPeriod = false;
-        int codePoint = 0;
-        while (i > 0) {
-            codePoint = Character.codePointBefore(text, i);
-            if (codePoint < Constants.CODE_PERIOD || codePoint > 'z') {
-                // Handwavy heuristic to see if that's a URL character. Anything between period
-                // and z. This includes all lower- and upper-case ascii letters, period,
-                // underscore, arrobase, question mark, equal sign. It excludes spaces, exclamation
-                // marks, double quotes...
-                // Anything that's not a URL-like character causes us to break from here and
-                // evaluate normally.
-                break;
-            }
-            if (Constants.CODE_PERIOD == codePoint) {
-                hasPeriod = true;
-            }
-            if (Constants.CODE_SLASH == codePoint) {
-                hasSlash = true;
-                if (2 == ++slashCount) {
-                    return true;
-                }
-            } else {
-                slashCount = 0;
-            }
-            if ('w' == codePoint) {
-                ++wCount;
-            } else {
-                wCount = 0;
-            }
-            i = Character.offsetByCodePoints(text, i, -1);
-        }
-        // End of the text run.
-        // If it starts with www and includes a period, then it looks like a URL.
-        if (wCount >= 3 && hasPeriod) return true;
-        // If it starts with a slash, and the code point before is whitespace, it looks like an URL.
-        if (1 == slashCount && (0 == i || Character.isWhitespace(codePoint))) return true;
-        // If it has both a period and a slash, it looks like an URL.
-        if (hasPeriod && hasSlash) return true;
-        // Otherwise, it doesn't look like an URL.
-        return false;
-    }
-
-    /**
-     * Examines the string and returns whether we're inside a double quote.
-     *
-     * This is used to decide whether we should put an automatic space before or after a double
-     * quote character. If we're inside a quotation, then we want to close it, so we want a space
-     * after and not before. Otherwise, we want to open the quotation, so we want a space before
-     * and not after. Exception: after a digit, we never want a space because the "inch" or
-     * "minutes" use cases is dominant after digits.
-     * In the practice, we determine whether we are in a quotation or not by finding the previous
-     * double quote character, and looking at whether it's followed by whitespace. If so, that
-     * was a closing quotation mark, so we're not inside a double quote. If it's not followed
-     * by whitespace, then it was an opening quotation mark, and we're inside a quotation.
-     *
-     * @param text the text to examine.
-     * @return whether we're inside a double quote.
-     */
-    public static boolean isInsideDoubleQuoteOrAfterDigit(final CharSequence text) {
-        int i = text.length();
-        if (0 == i) return false;
-        int codePoint = Character.codePointBefore(text, i);
-        if (Character.isDigit(codePoint)) return true;
-        int prevCodePoint = 0;
-        while (i > 0) {
-            codePoint = Character.codePointBefore(text, i);
-            if (Constants.CODE_DOUBLE_QUOTE == codePoint) {
-                // If we see a double quote followed by whitespace, then that
-                // was a closing quote.
-                if (Character.isWhitespace(prevCodePoint)) return false;
-            }
-            if (Character.isWhitespace(codePoint) && Constants.CODE_DOUBLE_QUOTE == prevCodePoint) {
-                // If we see a double quote preceded by whitespace, then that
-                // was an opening quote. No need to continue seeking.
-                return true;
-            }
-            i -= Character.charCount(codePoint);
-            prevCodePoint = codePoint;
-        }
-        // We reached the start of text. If the first char is a double quote, then we're inside
-        // a double quote. Otherwise we're not.
-        return Constants.CODE_DOUBLE_QUOTE == codePoint;
-    }
-
-    public static boolean isEmptyStringOrWhiteSpaces(final String s) {
-        final int N = codePointCount(s);
-        for (int i = 0; i < N; ++i) {
-            if (!Character.isWhitespace(s.codePointAt(i))) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    @UsedForTesting
-    public static String byteArrayToHexString(final byte[] bytes) {
-        if (bytes == null || bytes.length == 0) {
-            return EMPTY_STRING;
-        }
-        final StringBuilder sb = new StringBuilder();
-        for (byte b : bytes) {
-            sb.append(String.format("%02x", b & 0xff));
-        }
-        return sb.toString();
-    }
-
-    /**
-     * Convert hex string to byte array. The string length must be an even number.
-     */
-    @UsedForTesting
-    public static byte[] hexStringToByteArray(final String hexString) {
-        if (TextUtils.isEmpty(hexString)) {
-            return null;
-        }
-        final int N = hexString.length();
-        if (N % 2 != 0) {
-            throw new NumberFormatException("Input hex string length must be an even number."
-                    + " Length = " + N);
-        }
-        final byte[] bytes = new byte[N / 2];
-        for (int i = 0; i < N; i += 2) {
-            bytes[i / 2] = (byte) ((Character.digit(hexString.charAt(i), 16) << 4)
-                    + Character.digit(hexString.charAt(i + 1), 16));
-        }
-        return bytes;
-    }
-
-    private static final String LANGUAGE_GREEK = "el";
-
-    private static Locale getLocaleUsedForToTitleCase(final Locale locale) {
-        // In Greek locale {@link String#toUpperCase(Locale)} eliminates accents from its result.
-        // In order to get accented upper case letter, {@link Locale#ROOT} should be used.
-        if (LANGUAGE_GREEK.equals(locale.getLanguage())) {
-            return Locale.ROOT;
-        }
-        return locale;
-    }
-
-    public static String toUpperCaseOfStringForLocale(final String text,
-            final boolean needsToUpperCase, final Locale locale) {
-        if (text == null || !needsToUpperCase) {
-            return text;
-        }
-        return text.toUpperCase(getLocaleUsedForToTitleCase(locale));
-    }
-
-    public static int toUpperCaseOfCodeForLocale(final int code, final boolean needsToUpperCase,
-            final Locale locale) {
-        if (!Constants.isLetterCode(code) || !needsToUpperCase) return code;
-        final String text = newSingleCodePointString(code);
-        final String casedText = toUpperCaseOfStringForLocale(
-                text, needsToUpperCase, locale);
-        return codePointCount(casedText) == 1
-                ? casedText.codePointAt(0) : CODE_UNSPECIFIED;
-    }
-
-    public static int getTrailingSingleQuotesCount(final CharSequence charSequence) {
-        final int lastIndex = charSequence.length() - 1;
-        int i = lastIndex;
-        while (i >= 0 && charSequence.charAt(i) == Constants.CODE_SINGLE_QUOTE) {
-            --i;
-        }
-        return lastIndex - i;
-    }
-
-    /**
-     * Splits the given {@code charSequence} with at occurrences of the given {@code regex}.
-     * <p>
-     * This is equivalent to
-     * {@code charSequence.toString().split(regex, preserveTrailingEmptySegments ? -1 : 0)}
-     * except that the spans are preserved in the result array.
-     * </p>
-     * @param input the character sequence to be split.
-     * @param regex the regex pattern to be used as the separator.
-     * @param preserveTrailingEmptySegments {@code true} to preserve the trailing empty
-     * segments. Otherwise, trailing empty segments will be removed before being returned.
-     * @return the array which contains the result. All the spans in the {@param input} is
-     * preserved.
-     */
-    @UsedForTesting
-    public static CharSequence[] split(final CharSequence charSequence, final String regex,
-            final boolean preserveTrailingEmptySegments) {
-        // A short-cut for non-spanned strings.
-        if (!(charSequence instanceof Spanned)) {
-            // -1 means that trailing empty segments will be preserved.
-            return charSequence.toString().split(regex, preserveTrailingEmptySegments ? -1 : 0);
-        }
-
-        // Hereafter, emulate String.split for CharSequence.
-        final ArrayList<CharSequence> sequences = new ArrayList<>();
-        final Matcher matcher = Pattern.compile(regex).matcher(charSequence);
-        int nextStart = 0;
-        boolean matched = false;
-        while (matcher.find()) {
-            sequences.add(charSequence.subSequence(nextStart, matcher.start()));
-            nextStart = matcher.end();
-            matched = true;
-        }
-        if (!matched) {
-            // never matched. preserveTrailingEmptySegments is ignored in this case.
-            return new CharSequence[] { charSequence };
-        }
-        sequences.add(charSequence.subSequence(nextStart, charSequence.length()));
-        if (!preserveTrailingEmptySegments) {
-            for (int i = sequences.size() - 1; i >= 0; --i) {
-                if (!TextUtils.isEmpty(sequences.get(i))) {
-                    break;
-                }
-                sequences.remove(i);
-            }
-        }
-        return sequences.toArray(new CharSequence[sequences.size()]);
-    }
-
-    @UsedForTesting
-    public static class Stringizer<E> {
-        public String stringize(final E element) {
-            return element != null ? element.toString() : "null";
-        }
-
-        @UsedForTesting
-        public final String join(final E[] array) {
-            return joinStringArray(toStringArray(array), null /* delimiter */);
-        }
-
-        @UsedForTesting
-        public final String join(final E[] array, final String delimiter) {
-            return joinStringArray(toStringArray(array), delimiter);
-        }
-
-        protected String[] toStringArray(final E[] array) {
-            final String[] stringArray = new String[array.length];
-            for (int index = 0; index < array.length; index++) {
-                stringArray[index] = stringize(array[index]);
-            }
-            return stringArray;
-        }
-
-        protected String joinStringArray(final String[] stringArray, final String delimiter) {
-            if (stringArray == null) {
-                return "null";
-            }
-            if (delimiter == null) {
-                return Arrays.toString(stringArray);
-            }
-            final StringBuilder sb = new StringBuilder();
-            for (int index = 0; index < stringArray.length; index++) {
-                sb.append(index == 0 ? "[" : delimiter);
-                sb.append(stringArray[index]);
-            }
-            return sb + "]";
-        }
-    }
-
-    /**
-     * Returns whether the last composed word contains line-breaking character (e.g. CR or LF).
-     * @param text the text to be examined.
-     * @return {@code true} if the last composed word contains line-breaking separator.
-     */
-    @UsedForTesting
-    public static boolean hasLineBreakCharacter(final String text) {
-        if (TextUtils.isEmpty(text)) {
-            return false;
-        }
-        for (int i = text.length() - 1; i >= 0; --i) {
-            final char c = text.charAt(i);
-            switch (c) {
-                case CHAR_LINE_FEED:
-                case CHAR_VERTICAL_TAB:
-                case CHAR_FORM_FEED:
-                case CHAR_CARRIAGE_RETURN:
-                case CHAR_NEXT_LINE:
-                case CHAR_LINE_SEPARATOR:
-                case CHAR_PARAGRAPH_SEPARATOR:
-                    return true;
-            }
-        }
-        return false;
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtils.java b/java/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtils.java
index 351d014..54a3fc3 100644
--- a/java/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtils.java
@@ -16,8 +16,9 @@
 
 package com.android.inputmethod.latin.utils;
 
-import static com.android.inputmethod.latin.Constants.Subtype.ExtraValue.KEYBOARD_LAYOUT_SET;
-import static com.android.inputmethod.latin.Constants.Subtype.ExtraValue.UNTRANSLATABLE_STRING_IN_SUBTYPE_NAME;
+import static com.android.inputmethod.latin.common.Constants.Subtype.ExtraValue.COMBINING_RULES;
+import static com.android.inputmethod.latin.common.Constants.Subtype.ExtraValue.KEYBOARD_LAYOUT_SET;
+import static com.android.inputmethod.latin.common.Constants.Subtype.ExtraValue.UNTRANSLATABLE_STRING_IN_SUBTYPE_NAME;
 
 import android.content.Context;
 import android.content.res.Resources;
@@ -25,18 +26,25 @@
 import android.util.Log;
 import android.view.inputmethod.InputMethodSubtype;
 
-import com.android.inputmethod.latin.Constants;
 import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.common.LocaleUtils;
+import com.android.inputmethod.latin.common.StringUtils;
 
-import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Locale;
 
-public final class SubtypeLocaleUtils {
-    private static final String TAG = SubtypeLocaleUtils.class.getSimpleName();
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 
-    // This reference class {@link Constants} must be located in the same package as LatinIME.java.
-    private static final String RESOURCE_PACKAGE_NAME = Constants.class.getPackage().getName();
+/**
+ * A helper class to deal with subtype locales.
+  */
+// TODO: consolidate this into RichInputMethodSubtype
+public final class SubtypeLocaleUtils {
+    static final String TAG = SubtypeLocaleUtils.class.getSimpleName();
+
+    // This reference class {@link R} must be located in the same package as LatinIME.java.
+    private static final String RESOURCE_PACKAGE_NAME = R.class.getPackage().getName();
 
     // Special language code to represent "no language".
     public static final String NO_LANGUAGE = "zz";
@@ -47,11 +55,13 @@
     private static volatile boolean sInitialized = false;
     private static final Object sInitializeLock = new Object();
     private static Resources sResources;
-    private static String[] sPredefinedKeyboardLayoutSet;
     // Keyboard layout to its display name map.
     private static final HashMap<String, String> sKeyboardLayoutToDisplayNameMap = new HashMap<>();
     // Keyboard layout to subtype name resource id map.
     private static final HashMap<String, Integer> sKeyboardLayoutToNameIdsMap = new HashMap<>();
+    // Exceptional locale whose name should be displayed in Locale.ROOT.
+    private static final HashMap<String, Integer> sExceptionalLocaleDisplayedInRootLocale =
+            new HashMap<>();
     // Exceptional locale to subtype name resource id map.
     private static final HashMap<String, Integer> sExceptionalLocaleToNameIdsMap = new HashMap<>();
     // Exceptional locale to subtype name with layout resource id map.
@@ -65,6 +75,8 @@
             "string/subtype_with_layout_";
     private static final String SUBTYPE_NAME_RESOURCE_NO_LANGUAGE_PREFIX =
             "string/subtype_no_language_";
+    private static final String SUBTYPE_NAME_RESOURCE_IN_ROOT_LOCALE_PREFIX =
+            "string/subtype_in_root_locale_";
     // Keyboard layout set name for the subtypes that don't have a keyboardLayoutSet extra value.
     // This is for compatibility to keep the same subtype ids as pre-JellyBean.
     private static final HashMap<String, String> sLocaleAndExtraValueToKeyboardLayoutSetMap =
@@ -89,7 +101,6 @@
         sResources = res;
 
         final String[] predefinedLayoutSet = res.getStringArray(R.array.predefined_layouts);
-        sPredefinedKeyboardLayoutSet = predefinedLayoutSet;
         final String[] layoutDisplayNames = res.getStringArray(
                 R.array.predefined_layout_display_names);
         for (int i = 0; i < predefinedLayoutSet.length; i++) {
@@ -106,6 +117,15 @@
             sKeyboardLayoutToNameIdsMap.put(key, noLanguageResId);
         }
 
+        final String[] exceptionalLocaleInRootLocale = res.getStringArray(
+                R.array.subtype_locale_displayed_in_root_locale);
+        for (int i = 0; i < exceptionalLocaleInRootLocale.length; i++) {
+            final String localeString = exceptionalLocaleInRootLocale[i];
+            final String resourceName = SUBTYPE_NAME_RESOURCE_IN_ROOT_LOCALE_PREFIX + localeString;
+            final int resId = res.getIdentifier(resourceName, null, RESOURCE_PACKAGE_NAME);
+            sExceptionalLocaleDisplayedInRootLocale.put(localeString, resId);
+        }
+
         final String[] exceptionalLocales = res.getStringArray(
                 R.array.subtype_locale_exception_keys);
         for (int i = 0; i < exceptionalLocales.length; i++) {
@@ -129,10 +149,6 @@
         }
     }
 
-    public static String[] getPredefinedKeyboardLayoutSet() {
-        return sPredefinedKeyboardLayoutSet;
-    }
-
     public static boolean isExceptionalLocale(final String localeString) {
         return sExceptionalLocaleToNameIdsMap.containsKey(localeString);
     }
@@ -153,36 +169,58 @@
         return nameId == null ? UNKNOWN_KEYBOARD_LAYOUT : nameId;
     }
 
-    private static Locale getDisplayLocaleOfSubtypeLocale(final String localeString) {
+    @Nonnull
+    public static Locale getDisplayLocaleOfSubtypeLocale(@Nonnull final String localeString) {
         if (NO_LANGUAGE.equals(localeString)) {
             return sResources.getConfiguration().locale;
         }
+        if (sExceptionalLocaleDisplayedInRootLocale.containsKey(localeString)) {
+            return Locale.ROOT;
+        }
         return LocaleUtils.constructLocaleFromString(localeString);
     }
 
-    public static String getSubtypeLocaleDisplayNameInSystemLocale(final String localeString) {
+    public static String getSubtypeLocaleDisplayNameInSystemLocale(
+            @Nonnull final String localeString) {
         final Locale displayLocale = sResources.getConfiguration().locale;
         return getSubtypeLocaleDisplayNameInternal(localeString, displayLocale);
     }
 
-    public static String getSubtypeLocaleDisplayName(final String localeString) {
+    @Nonnull
+    public static String getSubtypeLocaleDisplayName(@Nonnull final String localeString) {
         final Locale displayLocale = getDisplayLocaleOfSubtypeLocale(localeString);
         return getSubtypeLocaleDisplayNameInternal(localeString, displayLocale);
     }
 
-    public static String getSubtypeLanguageDisplayName(final String localeString) {
-        final Locale locale = LocaleUtils.constructLocaleFromString(localeString);
+    @Nonnull
+    public static String getSubtypeLanguageDisplayName(@Nonnull final String localeString) {
         final Locale displayLocale = getDisplayLocaleOfSubtypeLocale(localeString);
-        return getSubtypeLocaleDisplayNameInternal(locale.getLanguage(), displayLocale);
+        final String languageString;
+        if (sExceptionalLocaleDisplayedInRootLocale.containsKey(localeString)) {
+            languageString = localeString;
+        } else {
+            languageString = LocaleUtils.constructLocaleFromString(localeString).getLanguage();
+        }
+        return getSubtypeLocaleDisplayNameInternal(languageString, displayLocale);
     }
 
-    private static String getSubtypeLocaleDisplayNameInternal(final String localeString,
-            final Locale displayLocale) {
+    @Nonnull
+    private static String getSubtypeLocaleDisplayNameInternal(@Nonnull final String localeString,
+            @Nonnull final Locale displayLocale) {
         if (NO_LANGUAGE.equals(localeString)) {
             // No language subtype should be displayed in system locale.
             return sResources.getString(R.string.subtype_no_language);
         }
-        final Integer exceptionalNameResId = sExceptionalLocaleToNameIdsMap.get(localeString);
+        final Integer exceptionalNameResId;
+        if (displayLocale.equals(Locale.ROOT)
+                && sExceptionalLocaleDisplayedInRootLocale.containsKey(localeString)) {
+            exceptionalNameResId = sExceptionalLocaleDisplayedInRootLocale.get(localeString);
+        } else if (sExceptionalLocaleToNameIdsMap.containsKey(localeString)) {
+            exceptionalNameResId = sExceptionalLocaleToNameIdsMap.get(localeString);
+        } else {
+            exceptionalNameResId = null;
+        }
+
         final String displayName;
         if (exceptionalNameResId != null) {
             final RunInLocale<String> getExceptionalName = new RunInLocale<String>() {
@@ -193,8 +231,8 @@
             };
             displayName = getExceptionalName.runInLocale(sResources, displayLocale);
         } else {
-            final Locale locale = LocaleUtils.constructLocaleFromString(localeString);
-            displayName = locale.getDisplayName(displayLocale);
+            displayName = LocaleUtils.constructLocaleFromString(localeString)
+                    .getDisplayName(displayLocale);
         }
         return StringUtils.capitalizeFirstCodePoint(displayName, displayLocale);
     }
@@ -217,31 +255,36 @@
     //  en_US azerty  T  English (US) (AZERTY)   exception
     //  zz    azerty  T  Alphabet (AZERTY)       in system locale
 
-    private static String getReplacementString(final InputMethodSubtype subtype,
-            final Locale displayLocale) {
+    @Nonnull
+    private static String getReplacementString(@Nonnull final InputMethodSubtype subtype,
+            @Nonnull final Locale displayLocale) {
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN
                 && subtype.containsExtraValueKey(UNTRANSLATABLE_STRING_IN_SUBTYPE_NAME)) {
             return subtype.getExtraValueOf(UNTRANSLATABLE_STRING_IN_SUBTYPE_NAME);
-        } else {
-            return getSubtypeLocaleDisplayNameInternal(subtype.getLocale(), displayLocale);
         }
+        return getSubtypeLocaleDisplayNameInternal(subtype.getLocale(), displayLocale);
     }
 
-    public static String getSubtypeDisplayNameInSystemLocale(final InputMethodSubtype subtype) {
+    @Nonnull
+    public static String getSubtypeDisplayNameInSystemLocale(
+            @Nonnull final InputMethodSubtype subtype) {
         final Locale displayLocale = sResources.getConfiguration().locale;
         return getSubtypeDisplayNameInternal(subtype, displayLocale);
     }
 
-    public static String getSubtypeNameForLogging(final InputMethodSubtype subtype) {
+    @Nonnull
+    public static String getSubtypeNameForLogging(@Nullable final InputMethodSubtype subtype) {
         if (subtype == null) {
             return "<null subtype>";
         }
         return getSubtypeLocale(subtype) + "/" + getKeyboardLayoutSetName(subtype);
     }
 
-    private static String getSubtypeDisplayNameInternal(final InputMethodSubtype subtype,
-            final Locale displayLocale) {
+    @Nonnull
+    private static String getSubtypeDisplayNameInternal(@Nonnull final InputMethodSubtype subtype,
+            @Nonnull final Locale displayLocale) {
         final String replacementString = getReplacementString(subtype, displayLocale);
+        // TODO: rework this for multi-lingual subtypes
         final int nameResId = subtype.getNameResId();
         final RunInLocale<String> getSubtypeName = new RunInLocale<String>() {
             @Override
@@ -264,25 +307,25 @@
                 getSubtypeName.runInLocale(sResources, displayLocale), displayLocale);
     }
 
-    public static boolean isNoLanguage(final InputMethodSubtype subtype) {
-        final String localeString = subtype.getLocale();
-        return NO_LANGUAGE.equals(localeString);
-    }
-
-    public static Locale getSubtypeLocale(final InputMethodSubtype subtype) {
+    @Nonnull
+    public static Locale getSubtypeLocale(@Nonnull final InputMethodSubtype subtype) {
         final String localeString = subtype.getLocale();
         return LocaleUtils.constructLocaleFromString(localeString);
     }
 
-    public static String getKeyboardLayoutSetDisplayName(final InputMethodSubtype subtype) {
+    @Nonnull
+    public static String getKeyboardLayoutSetDisplayName(
+            @Nonnull final InputMethodSubtype subtype) {
         final String layoutName = getKeyboardLayoutSetName(subtype);
         return getKeyboardLayoutSetDisplayName(layoutName);
     }
 
-    public static String getKeyboardLayoutSetDisplayName(final String layoutName) {
+    @Nonnull
+    public static String getKeyboardLayoutSetDisplayName(@Nonnull final String layoutName) {
         return sKeyboardLayoutToDisplayNameMap.get(layoutName);
     }
 
+    @Nonnull
     public static String getKeyboardLayoutSetName(final InputMethodSubtype subtype) {
         String keyboardLayoutSet = subtype.getExtraValueOf(KEYBOARD_LAYOUT_SET);
         if (keyboardLayoutSet == null) {
@@ -302,27 +345,7 @@
         return keyboardLayoutSet;
     }
 
-    // TODO: Get this information from the framework instead of maintaining here by ourselves.
-    // Sorted list of known Right-To-Left language codes.
-    private static final String[] SORTED_RTL_LANGUAGES = {
-        "ar", // Arabic
-        "fa", // Persian
-        "iw", // Hebrew
-    };
-    static {
-        Arrays.sort(SORTED_RTL_LANGUAGES);
-    }
-
-    public static boolean isRtlLanguage(final Locale locale) {
-        final String language = locale.getLanguage();
-        return Arrays.binarySearch(SORTED_RTL_LANGUAGES, language) >= 0;
-    }
-
-    public static boolean isRtlLanguage(final InputMethodSubtype subtype) {
-        return isRtlLanguage(getSubtypeLocale(subtype));
-    }
-
     public static String getCombiningRulesExtraValue(final InputMethodSubtype subtype) {
-        return subtype.getExtraValueOf(Constants.Subtype.ExtraValue.COMBINING_RULES);
+        return subtype.getExtraValueOf(COMBINING_RULES);
     }
 }
diff --git a/java/src/com/android/inputmethod/latin/utils/SuggestionResults.java b/java/src/com/android/inputmethod/latin/utils/SuggestionResults.java
index 8cd4950..9813551 100644
--- a/java/src/com/android/inputmethod/latin/utils/SuggestionResults.java
+++ b/java/src/com/android/inputmethod/latin/utils/SuggestionResults.java
@@ -22,7 +22,6 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Comparator;
-import java.util.Locale;
 import java.util.TreeSet;
 
 /**
@@ -30,22 +29,23 @@
  * than its limit
  */
 public final class SuggestionResults extends TreeSet<SuggestedWordInfo> {
-    public final Locale mLocale;
     public final ArrayList<SuggestedWordInfo> mRawSuggestions;
     // TODO: Instead of a boolean , we may want to include the context of this suggestion results,
-    // such as {@link PrevWordsInfo}.
+    // such as {@link NgramContext}.
     public final boolean mIsBeginningOfSentence;
+    public final boolean mFirstSuggestionExceedsConfidenceThreshold;
     private final int mCapacity;
 
-    public SuggestionResults(final Locale locale, final int capacity,
-            final boolean isBeginningOfSentence) {
-        this(locale, sSuggestedWordInfoComparator, capacity, isBeginningOfSentence);
+    public SuggestionResults(final int capacity, final boolean isBeginningOfSentence,
+            final boolean firstSuggestionExceedsConfidenceThreshold) {
+        this(sSuggestedWordInfoComparator, capacity, isBeginningOfSentence,
+                firstSuggestionExceedsConfidenceThreshold);
     }
 
-    private SuggestionResults(final Locale locale, final Comparator<SuggestedWordInfo> comparator,
-            final int capacity, final boolean isBeginningOfSentence) {
+    private SuggestionResults(final Comparator<SuggestedWordInfo> comparator, final int capacity,
+            final boolean isBeginningOfSentence,
+            final boolean firstSuggestionExceedsConfidenceThreshold) {
         super(comparator);
-        mLocale = locale;
         mCapacity = capacity;
         if (ProductionFlags.INCLUDE_RAW_SUGGESTIONS) {
             mRawSuggestions = new ArrayList<>();
@@ -53,6 +53,7 @@
             mRawSuggestions = null;
         }
         mIsBeginningOfSentence = isBeginningOfSentence;
+        mFirstSuggestionExceedsConfidenceThreshold = firstSuggestionExceedsConfidenceThreshold;
     }
 
     @Override
@@ -70,8 +71,7 @@
         return super.addAll(e);
     }
 
-    private static final class SuggestedWordInfoComparator
-            implements Comparator<SuggestedWordInfo> {
+    static final class SuggestedWordInfoComparator implements Comparator<SuggestedWordInfo> {
         // This comparator ranks the word info with the higher frequency first. That's because
         // that's the order we want our elements in.
         @Override
diff --git a/java/src/com/android/inputmethod/latin/utils/ViewLayoutUtils.java b/java/src/com/android/inputmethod/latin/utils/ViewLayoutUtils.java
index dd122b6..0bcba27 100644
--- a/java/src/com/android/inputmethod/latin/utils/ViewLayoutUtils.java
+++ b/java/src/com/android/inputmethod/latin/utils/ViewLayoutUtils.java
@@ -57,7 +57,7 @@
 
     public static void updateLayoutHeightOf(final Window window, final int layoutHeight) {
         final WindowManager.LayoutParams params = window.getAttributes();
-        if (params.height != layoutHeight) {
+        if (params != null && params.height != layoutHeight) {
             params.height = layoutHeight;
             window.setAttributes(params);
         }
@@ -65,7 +65,7 @@
 
     public static void updateLayoutHeightOf(final View view, final int layoutHeight) {
         final ViewGroup.LayoutParams params = view.getLayoutParams();
-        if (params.height != layoutHeight) {
+        if (params != null && params.height != layoutHeight) {
             params.height = layoutHeight;
             view.setLayoutParams(params);
         }
diff --git a/java/src/com/android/inputmethod/latin/utils/WordInputEventForPersonalization.java b/java/src/com/android/inputmethod/latin/utils/WordInputEventForPersonalization.java
new file mode 100644
index 0000000..fc0a9cb
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/utils/WordInputEventForPersonalization.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.utils;
+
+import android.util.Log;
+
+import com.android.inputmethod.annotations.UsedForTesting;
+import com.android.inputmethod.latin.NgramContext;
+import com.android.inputmethod.latin.common.StringUtils;
+import com.android.inputmethod.latin.define.DecoderSpecificConstants;
+import com.android.inputmethod.latin.settings.SpacingAndPunctuations;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+// Note: this class is used as a parameter type of a native method. You should be careful when you
+// rename this class or field name. See BinaryDictionary#addMultipleDictionaryEntriesNative().
+public final class WordInputEventForPersonalization {
+    private static final String TAG = WordInputEventForPersonalization.class.getSimpleName();
+    private static final boolean DEBUG_TOKEN = false;
+
+    public final int[] mTargetWord;
+    public final int mPrevWordsCount;
+    public final int[][] mPrevWordArray =
+            new int[DecoderSpecificConstants.MAX_PREV_WORD_COUNT_FOR_N_GRAM][];
+    public final boolean[] mIsPrevWordBeginningOfSentenceArray =
+            new boolean[DecoderSpecificConstants.MAX_PREV_WORD_COUNT_FOR_N_GRAM];
+    // Time stamp in seconds.
+    public final int mTimestamp;
+
+    @UsedForTesting
+    public WordInputEventForPersonalization(final CharSequence targetWord,
+            final NgramContext ngramContext, final int timestamp) {
+        mTargetWord = StringUtils.toCodePointArray(targetWord);
+        mPrevWordsCount = ngramContext.getPrevWordCount();
+        ngramContext.outputToArray(mPrevWordArray, mIsPrevWordBeginningOfSentenceArray);
+        mTimestamp = timestamp;
+    }
+
+    // Process a list of words and return a list of {@link WordInputEventForPersonalization}
+    // objects.
+    public static ArrayList<WordInputEventForPersonalization> createInputEventFrom(
+            final List<String> tokens, final int timestamp,
+            final SpacingAndPunctuations spacingAndPunctuations, final Locale locale) {
+        final ArrayList<WordInputEventForPersonalization> inputEvents = new ArrayList<>();
+        final int N = tokens.size();
+        NgramContext ngramContext = NgramContext.EMPTY_PREV_WORDS_INFO;
+        for (int i = 0; i < N; ++i) {
+            final String tempWord = tokens.get(i);
+            if (StringUtils.isEmptyStringOrWhiteSpaces(tempWord)) {
+                // just skip this token
+                if (DEBUG_TOKEN) {
+                    Log.d(TAG, "--- isEmptyStringOrWhiteSpaces: \"" + tempWord + "\"");
+                }
+                continue;
+            }
+            if (!DictionaryInfoUtils.looksValidForDictionaryInsertion(
+                    tempWord, spacingAndPunctuations)) {
+                if (DEBUG_TOKEN) {
+                    Log.d(TAG, "--- not looksValidForDictionaryInsertion: \""
+                            + tempWord + "\"");
+                }
+                // Sentence terminator found. Split.
+                // TODO: Detect whether the context is beginning-of-sentence.
+                ngramContext = NgramContext.EMPTY_PREV_WORDS_INFO;
+                continue;
+            }
+            if (DEBUG_TOKEN) {
+                Log.d(TAG, "--- word: \"" + tempWord + "\"");
+            }
+            final WordInputEventForPersonalization inputEvent =
+                    detectWhetherVaildWordOrNotAndGetInputEvent(
+                            ngramContext, tempWord, timestamp, locale);
+            if (inputEvent == null) {
+                continue;
+            }
+            inputEvents.add(inputEvent);
+            ngramContext = ngramContext.getNextNgramContext(new NgramContext.WordInfo(tempWord));
+        }
+        return inputEvents;
+    }
+
+    private static WordInputEventForPersonalization detectWhetherVaildWordOrNotAndGetInputEvent(
+            final NgramContext ngramContext, final String targetWord, final int timestamp,
+            final Locale locale) {
+        if (locale == null) {
+            return null;
+        }
+        return new WordInputEventForPersonalization(targetWord, ngramContext, timestamp);
+    }
+}
diff --git a/native/dicttoolkit/Android.mk b/native/dicttoolkit/Android.mk
new file mode 100644
index 0000000..118682d
--- /dev/null
+++ b/native/dicttoolkit/Android.mk
@@ -0,0 +1,67 @@
+# Copyright (C) 2014 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+ifeq (,$(TARGET_BUILD_APPS))
+
+# Only build if it's explicitly requested, or running mm/mmm.
+ifneq ($(ONE_SHOT_MAKEFILE)$(filter $(MAKECMDGOALS),dicttoolkit),)
+
+# HACK: Temporarily disable host tool build on Mac until the build system is ready for C++11.
+LATINIME_HOST_OSNAME := $(shell uname -s)
+ifneq ($(LATINIME_HOST_OSNAME), Darwin) # TODO: Remove this
+
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LATIN_IME_CORE_PATH := $(LOCAL_PATH)/../jni
+
+LATIN_IME_DICT_TOOLKIT_SRC_DIR := src
+LATIN_IME_CORE_SRC_DIR := ../jni/src
+
+LOCAL_CFLAGS += -Werror -Wall -Wextra -Weffc++ -Wformat=2 -Wcast-qual -Wcast-align \
+    -Wwrite-strings -Wfloat-equal -Wpointer-arith -Winit-self -Wredundant-decls \
+    -Woverloaded-virtual -Wsign-promo -Wno-system-headers
+
+# To suppress compiler warnings for unused variables/functions used for debug features etc.
+LOCAL_CFLAGS += -Wno-unused-parameter -Wno-unused-function
+LOCAL_CFLAGS += -std=c++11 -Wno-unused-parameter -Wno-unused-function
+
+include $(LOCAL_PATH)/NativeFileList.mk
+include $(LATIN_IME_CORE_PATH)/NativeFileList.mk
+
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(LATIN_IME_DICT_TOOLKIT_SRC_DIR) \
+    $(LATIN_IME_CORE_PATH)/$(LATIN_IME_CORE_SRC_DIR)
+
+LOCAL_SRC_FILES := $(LATIN_IME_DICT_TOOLKIT_MAIN_SRC_FILES) \
+    $(addprefix $(LATIN_IME_DICT_TOOLKIT_SRC_DIR)/, $(LATIN_IME_DICT_TOOLKIT_SRC_FILES)) \
+    $(addprefix $(LATIN_IME_CORE_SRC_DIR)/, $(LATIN_IME_CORE_SRC_FILES))
+
+LOCAL_MODULE := dicttoolkit
+LOCAL_MODULE_TAGS := optional
+
+LOCAL_CLANG := true
+LOCAL_CXX_STL := libc++
+
+include $(BUILD_HOST_EXECUTABLE)
+#################### Clean up the tmp vars
+include $(LOCAL_PATH)/CleanupNativeFileList.mk
+#################### Unit test
+include $(LOCAL_PATH)/UnitTests.mk
+
+endif # Darwin - TODO: Remove this
+
+endif
+
+endif # TARGET_BUILD_APPS
diff --git a/native/dicttoolkit/CleanupNativeFileList.mk b/native/dicttoolkit/CleanupNativeFileList.mk
new file mode 100644
index 0000000..b804b41
--- /dev/null
+++ b/native/dicttoolkit/CleanupNativeFileList.mk
@@ -0,0 +1,17 @@
+# Copyright (C) 2014 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LATIN_IME_DICT_TOOLKIT_MAIN_SRC_FILES :=
+LATIN_IME_DICT_TOOLKIT_SRC_FILES :=
+LATIN_IME_DICT_TOOLKIT_TEST_FILES :=
diff --git a/native/dicttoolkit/NativeFileList.mk b/native/dicttoolkit/NativeFileList.mk
new file mode 100644
index 0000000..9a547b0
--- /dev/null
+++ b/native/dicttoolkit/NativeFileList.mk
@@ -0,0 +1,44 @@
+# Copyright (C) 2014 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+LATIN_IME_DICT_TOOLKIT_MAIN_SRC_FILES := \
+    dict_toolkit_main.cpp
+
+LATIN_IME_DICT_TOOLKIT_SRC_FILES := \
+    $(addprefix command_executors/, \
+        diff_executor.cpp \
+        header_executor.cpp \
+        help_executor.cpp \
+        info_executor.cpp \
+        makedict_executor.cpp) \
+    $(addprefix offdevice_intermediate_dict/, \
+        offdevice_intermediate_dict.cpp) \
+    $(addprefix utils/, \
+        arguments_parser.cpp \
+        command_utils.cpp \
+        utf8_utils.cpp)
+
+LATIN_IME_DICT_TOOLKIT_TEST_FILES := \
+    $(addprefix command_executors/, \
+        diff_executor_test.cpp \
+        header_executor_test.cpp \
+        info_executor_test.cpp \
+        makedict_executor_test.cpp) \
+    dict_toolkit_defines_test.cpp \
+    $(addprefix offdevice_intermediate_dict/, \
+        offdevice_intermediate_dict_test.cpp) \
+    $(addprefix utils/, \
+        arguments_parser_test.cpp \
+        command_utils_test.cpp \
+        utf8_utils_test.cpp)
diff --git a/native/dicttoolkit/UnitTests.mk b/native/dicttoolkit/UnitTests.mk
new file mode 100644
index 0000000..96e2873
--- /dev/null
+++ b/native/dicttoolkit/UnitTests.mk
@@ -0,0 +1,69 @@
+# Copyright (C) 2014 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+ifeq (,$(TARGET_BUILD_APPS))
+
+LOCAL_PATH := $(call my-dir)
+
+######################################
+include $(CLEAR_VARS)
+
+LATIN_IME_CORE_PATH := $(LOCAL_PATH)/../jni
+
+LATIN_IME_DICT_TOOLKIT_SRC_DIR := src
+LATIN_IME_CORE_SRC_DIR := ../jni/src
+LATIN_DICT_TOOLKIT_TEST_SRC_DIR := tests
+
+include $(LOCAL_PATH)/NativeFileList.mk
+include $(LATIN_IME_CORE_PATH)/NativeFileList.mk
+
+# TODO: Remove -std=c++11 once it is set by default on host build.
+LATIN_IME_SRC_DIR := src
+LOCAL_ADDRESS_SANITIZER := true
+LOCAL_CFLAGS += -std=c++11 -Wno-unused-parameter -Wno-unused-function
+LOCAL_CLANG := true
+LOCAL_CXX_STL := libc++
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(LATIN_IME_DICT_TOOLKIT_SRC_DIR) \
+    $(LATIN_IME_CORE_PATH)/$(LATIN_IME_CORE_SRC_DIR)
+LOCAL_MODULE := liblatinime_dicttoolkit_host_static_for_unittests
+LOCAL_MODULE_TAGS := optional
+LOCAL_SRC_FILES := \
+    $(addprefix $(LATIN_IME_DICT_TOOLKIT_SRC_DIR)/, $(LATIN_IME_DICT_TOOLKIT_SRC_FILES)) \
+    $(addprefix $(LATIN_IME_CORE_SRC_DIR)/, $(LATIN_IME_CORE_SRC_FILES))
+include $(BUILD_HOST_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+
+# TODO: Remove -std=c++11 once it is set by default on host build.
+LOCAL_ADDRESS_SANITIZER := true
+LOCAL_CFLAGS += -std=c++11 -Wno-unused-parameter -Wno-unused-function
+LOCAL_CLANG := true
+LOCAL_CXX_STL := libc++
+LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(LATIN_IME_DICT_TOOLKIT_SRC_DIR) \
+    $(LATIN_IME_CORE_PATH)/$(LATIN_IME_CORE_SRC_DIR)
+LOCAL_MODULE := dicttoolkit_unittests
+LOCAL_MODULE_TAGS := tests
+LOCAL_SRC_FILES := \
+    $(addprefix $(LATIN_DICT_TOOLKIT_TEST_SRC_DIR)/, $(LATIN_IME_DICT_TOOLKIT_TEST_FILES))
+LOCAL_STATIC_LIBRARIES += liblatinime_dicttoolkit_host_static_for_unittests
+include $(BUILD_HOST_NATIVE_TEST)
+
+include $(LOCAL_PATH)/CleanupNativeFileList.mk
+
+#################### Clean up the tmp vars
+LATINIME_HOST_OSNAME :=
+LATIN_IME_SRC_DIR :=
+LATIN_IME_TEST_SRC_DIR :=
+
+endif # TARGET_BUILD_APPS
diff --git a/native/dicttoolkit/dict_toolkit_main.cpp b/native/dicttoolkit/dict_toolkit_main.cpp
new file mode 100644
index 0000000..53cc5e9
--- /dev/null
+++ b/native/dicttoolkit/dict_toolkit_main.cpp
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <cstdio>
+
+#include "dict_toolkit_defines.h"
+#include "utils/command_utils.h"
+
+void usage(int argc, char **argv) {
+    fprintf(stderr, "Usage: %s <command> [arguments]\n", argc > 0 ? argv[0] : "dicttoolkit");
+}
+
+int main(int argc, char **argv) {
+    if (argc < MIN_ARG_COUNT) {
+        usage(argc, argv);
+        return 1;
+    }
+    using namespace latinime::dicttoolkit;
+    const CommandType commandType = CommandUtils::getCommandType(argv[1]);
+    if (commandType == CommandType::Unknown) {
+        CommandUtils::printCommandUnknownMessage(argv[0], argv[1]);
+        return 1;
+    }
+    const auto executor = CommandUtils::getCommandExecutor(commandType);
+    return executor(argc - 1, argv + 1);
+}
diff --git a/native/dicttoolkit/run_tests.sh b/native/dicttoolkit/run_tests.sh
new file mode 100755
index 0000000..44c99c1
--- /dev/null
+++ b/native/dicttoolkit/run_tests.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+# Copyright 2014, The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# check script arguments
+if [[ $(type -t mmm) != function ]]; then
+if [[ ${BASH_SOURCE[0]} != $0 ]]; then return; else exit 1; fi
+fi
+
+# Host build is never supported in unbundled (NDK/tapas) build
+if [[ -n $TARGET_BUILD_APPS ]]; then
+  echo "Host build is never supported in tapas build."  1>&2
+  echo "Use lunch command instead."  1>&2
+  if [[ ${BASH_SOURCE[0]} != $0 ]]; then return; else exit 1; fi
+fi
+
+test_name=dicttoolkit_unittests
+
+pushd $PWD > /dev/null
+cd $(gettop)
+(mmm -j16 packages/inputmethods/LatinIME/native/dicttoolkit) || (make -j16 $test_name)
+$ANDROID_HOST_OUT/bin/$test_name
+popd > /dev/null
diff --git a/native/dicttoolkit/src/command_executors/diff_executor.cpp b/native/dicttoolkit/src/command_executors/diff_executor.cpp
new file mode 100644
index 0000000..bf68306
--- /dev/null
+++ b/native/dicttoolkit/src/command_executors/diff_executor.cpp
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "command_executors/diff_executor.h"
+
+#include <cstdio>
+
+namespace latinime {
+namespace dicttoolkit {
+
+const char *const DiffExecutor::COMMAND_NAME = "diff";
+
+/* static */ int DiffExecutor::run(const int argc, char **argv) {
+    fprintf(stderr, "Command '%s' has not been implemented yet.\n", COMMAND_NAME);
+    return 0;
+}
+
+/* static */ void DiffExecutor::printUsage() {
+    printf("*** %s\n", COMMAND_NAME);
+    getArgumentsParser().printUsage(COMMAND_NAME, "Shows differences between two dictionaries.");
+}
+
+/* static */ const ArgumentsParser DiffExecutor::getArgumentsParser() {
+    std::unordered_map<std::string, OptionSpec> optionSpecs;
+    optionSpecs["p"] = OptionSpec::switchOption("(plumbing) produce output suitable for a script");
+
+    const std::vector<ArgumentSpec> argumentSpecs = {
+        ArgumentSpec::singleArgument("dict1", "dictionary file"),
+        ArgumentSpec::singleArgument("dict2", "dictionary file")
+    };
+
+    return ArgumentsParser(std::move(optionSpecs), std::move(argumentSpecs));
+}
+
+} // namespace dicttoolkit
+} // namespace latinime
diff --git a/native/dicttoolkit/src/command_executors/diff_executor.h b/native/dicttoolkit/src/command_executors/diff_executor.h
new file mode 100644
index 0000000..f92ae49
--- /dev/null
+++ b/native/dicttoolkit/src/command_executors/diff_executor.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_DICT_TOOLKIT_DIFF_EXECUTOR_H
+#define LATINIME_DICT_TOOLKIT_DIFF_EXECUTOR_H
+
+#include "dict_toolkit_defines.h"
+#include "utils/arguments_parser.h"
+
+namespace latinime {
+namespace dicttoolkit {
+
+class DiffExecutor final {
+ public:
+    static const char *const COMMAND_NAME;
+
+    static int run(const int argc, char **argv);
+    static void printUsage();
+    static const ArgumentsParser getArgumentsParser();
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(DiffExecutor);
+};
+
+} // namespace dicttoolkit
+} // namepsace latinime
+#endif // LATINIME_DICT_TOOLKIT_DIFF_EXECUTOR_H
diff --git a/native/dicttoolkit/src/command_executors/header_executor.cpp b/native/dicttoolkit/src/command_executors/header_executor.cpp
new file mode 100644
index 0000000..b3d273b
--- /dev/null
+++ b/native/dicttoolkit/src/command_executors/header_executor.cpp
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "command_executors/header_executor.h"
+
+#include <cstdio>
+
+namespace latinime {
+namespace dicttoolkit {
+
+const char *const HeaderExecutor::COMMAND_NAME = "header";
+
+/* static */ int HeaderExecutor::run(const int argc, char **argv) {
+    fprintf(stderr, "Command '%s' has not been implemented yet.\n", COMMAND_NAME);
+    return 0;
+}
+
+/* static */ void HeaderExecutor::printUsage() {
+    printf("*** %s\n", COMMAND_NAME);
+    getArgumentsParser().printUsage(COMMAND_NAME,
+            "Prints the header contents of a dictionary file.");
+}
+
+/* static */ const ArgumentsParser HeaderExecutor::getArgumentsParser() {
+    std::unordered_map<std::string, OptionSpec> optionSpecs;
+    optionSpecs["p"] = OptionSpec::switchOption("(plumbing) produce output suitable for a script");
+
+    const std::vector<ArgumentSpec> argumentSpecs = {
+        ArgumentSpec::singleArgument("dict", "prints the header contents of a dictionary file")
+    };
+
+    return ArgumentsParser(std::move(optionSpecs), std::move(argumentSpecs));
+}
+} // namespace dicttoolkit
+} // namespace latinime
diff --git a/native/dicttoolkit/src/command_executors/header_executor.h b/native/dicttoolkit/src/command_executors/header_executor.h
new file mode 100644
index 0000000..44cc9cf
--- /dev/null
+++ b/native/dicttoolkit/src/command_executors/header_executor.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_DICT_TOOLKIT_HEADER_EXECUTOR_H
+#define LATINIME_DICT_TOOLKIT_HEADER_EXECUTOR_H
+
+#include "dict_toolkit_defines.h"
+#include "utils/arguments_parser.h"
+
+namespace latinime {
+namespace dicttoolkit {
+
+class HeaderExecutor final {
+ public:
+    static const char *const COMMAND_NAME;
+
+    static int run(const int argc, char **argv);
+    static void printUsage();
+    static const ArgumentsParser getArgumentsParser();
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(HeaderExecutor);
+};
+
+} // namespace dicttoolkit
+} // namepsace latinime
+#endif // LATINIME_DICT_TOOLKIT_HEADER_EXECUTOR_H
diff --git a/native/dicttoolkit/src/command_executors/help_executor.cpp b/native/dicttoolkit/src/command_executors/help_executor.cpp
new file mode 100644
index 0000000..bd29a5b
--- /dev/null
+++ b/native/dicttoolkit/src/command_executors/help_executor.cpp
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "command_executors/help_executor.h"
+
+#include <cstdio>
+#include <functional>
+#include <vector>
+
+#include "command_executors/diff_executor.h"
+#include "command_executors/header_executor.h"
+#include "command_executors/info_executor.h"
+#include "command_executors/makedict_executor.h"
+#include "utils/command_utils.h"
+
+namespace latinime {
+namespace dicttoolkit {
+
+const char *const HelpExecutor::COMMAND_NAME = "help";
+
+/* static */ int HelpExecutor::run(const int argc, char **argv) {
+    printf("Available commands:\n\n");
+    const std::vector<std::function<void(void)>> printUsageMethods = {DiffExecutor::printUsage,
+            HeaderExecutor::printUsage, InfoExecutor::printUsage, MakedictExecutor::printUsage,
+            printUsage};
+    for (const auto &printUsageMethod : printUsageMethods) {
+        printUsageMethod();
+    }
+    return 0;
+}
+
+/* static */ void HelpExecutor::printUsage() {
+    printf("*** %s\n", COMMAND_NAME);
+    printf("Usage: %s\n", COMMAND_NAME);
+    printf("Show this help list.\n\n");
+}
+
+} // namespace dicttoolkit
+} // namespace latinime
diff --git a/native/dicttoolkit/src/command_executors/help_executor.h b/native/dicttoolkit/src/command_executors/help_executor.h
new file mode 100644
index 0000000..280610e
--- /dev/null
+++ b/native/dicttoolkit/src/command_executors/help_executor.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_DICT_TOOLKIT_HELP_EXECUTOR_H
+#define LATINIME_DICT_TOOLKIT_HELP_EXECUTOR_H
+
+#include "dict_toolkit_defines.h"
+
+namespace latinime {
+namespace dicttoolkit {
+
+class HelpExecutor final {
+ public:
+    static const char *const COMMAND_NAME;
+
+    static int run(const int argc, char **argv);
+    static void printUsage();
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(HelpExecutor);
+};
+
+} // namespace dicttoolkit
+} // namepsace latinime
+#endif // LATINIME_DICT_TOOLKIT_HELP_EXECUTOR_H
diff --git a/native/dicttoolkit/src/command_executors/info_executor.cpp b/native/dicttoolkit/src/command_executors/info_executor.cpp
new file mode 100644
index 0000000..351da4a
--- /dev/null
+++ b/native/dicttoolkit/src/command_executors/info_executor.cpp
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "command_executors/info_executor.h"
+
+#include <cstdio>
+#include <string>
+#include <unordered_map>
+#include <vector>
+
+namespace latinime {
+namespace dicttoolkit {
+
+const char *const InfoExecutor::COMMAND_NAME = "info";
+
+/* static */ int InfoExecutor::run(const int argc, char **argv) {
+    fprintf(stderr, "Command '%s' has not been implemented yet.\n", COMMAND_NAME);
+    return 0;
+}
+
+/* static */ void InfoExecutor::printUsage() {
+    printf("*** %s\n", COMMAND_NAME);
+    getArgumentsParser().printUsage(COMMAND_NAME,
+            "Prints various information about a dictionary file.");
+}
+
+/* static */const ArgumentsParser InfoExecutor::getArgumentsParser() {
+    std::unordered_map<std::string, OptionSpec> optionSpecs;
+    optionSpecs["p"] = OptionSpec::switchOption("(plumbing) produce output suitable for a script");
+
+    const std::vector<ArgumentSpec> argumentSpecs = {
+        ArgumentSpec::singleArgument("dict", "dictionary file name"),
+        ArgumentSpec::variableLengthArguments("word", 0 /* minCount */,
+                ArgumentSpec::UNLIMITED_COUNT, "word to show information")
+    };
+
+    return ArgumentsParser(std::move(optionSpecs), std::move(argumentSpecs));
+}
+
+} // namespace dicttoolkit
+} // namespace latinime
diff --git a/native/dicttoolkit/src/command_executors/info_executor.h b/native/dicttoolkit/src/command_executors/info_executor.h
new file mode 100644
index 0000000..d4106d5
--- /dev/null
+++ b/native/dicttoolkit/src/command_executors/info_executor.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_DICT_TOOLKIT_INFO_EXECUTOR_H
+#define LATINIME_DICT_TOOLKIT_INFO_EXECUTOR_H
+
+#include "dict_toolkit_defines.h"
+#include "utils/arguments_parser.h"
+
+namespace latinime {
+namespace dicttoolkit {
+
+class InfoExecutor final {
+ public:
+    static const char *const COMMAND_NAME;
+
+    static int run(const int argc, char **argv);
+    static void printUsage();
+    static const ArgumentsParser getArgumentsParser();
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(InfoExecutor);
+};
+
+} // namepsace dicttoolkit
+} // namespace latinime
+#endif // LATINIME_DICT_TOOLKIT_INFO_EXECUTOR_H
diff --git a/native/dicttoolkit/src/command_executors/makedict_executor.cpp b/native/dicttoolkit/src/command_executors/makedict_executor.cpp
new file mode 100644
index 0000000..4b0a5ae
--- /dev/null
+++ b/native/dicttoolkit/src/command_executors/makedict_executor.cpp
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "command_executors/makedict_executor.h"
+
+#include <cstdio>
+
+namespace latinime {
+namespace dicttoolkit {
+
+const char *const MakedictExecutor::COMMAND_NAME = "makedict";
+
+/* static */ int MakedictExecutor::run(const int argc, char **argv) {
+    const ArgumentsAndOptions argumentsAndOptions =
+            getArgumentsParser().parseArguments(argc, argv, true /* printErrorMessages */);
+    if (!argumentsAndOptions.isValid()) {
+        printUsage();
+        return 1;
+    }
+    fprintf(stderr, "Command '%s' has not been implemented yet.\n", COMMAND_NAME);
+    return 0;
+}
+
+/* static */ void MakedictExecutor::printUsage() {
+    printf("*** %s\n", COMMAND_NAME);
+    getArgumentsParser().printUsage(COMMAND_NAME,
+            "Converts a source dictionary file to one or several outputs.\n"
+            "Source can be a binary dictionary file or a combined format file.\n"
+            "Binary version 2 (Jelly Bean), 4, and combined format outputs are supported.");
+}
+
+/* static */const ArgumentsParser MakedictExecutor::getArgumentsParser() {
+    std::unordered_map<std::string, OptionSpec> optionSpecs;
+    optionSpecs["o"] = OptionSpec::keyValueOption("format", "2",
+            "output format version: 2/4/combined");
+    optionSpecs["t"] = OptionSpec::keyValueOption("mode", "off",
+            "code point table switch: on/off/auto");
+
+    const std::vector<ArgumentSpec> argumentSpecs = {
+        ArgumentSpec::singleArgument("src_dict", "source dictionary file"),
+        ArgumentSpec::singleArgument("dest_dict", "output dictionary file")
+    };
+
+    return ArgumentsParser(std::move(optionSpecs), std::move(argumentSpecs));
+}
+
+} // namespace dicttoolkit
+} // namespace latinime
diff --git a/native/dicttoolkit/src/command_executors/makedict_executor.h b/native/dicttoolkit/src/command_executors/makedict_executor.h
new file mode 100644
index 0000000..c3de977
--- /dev/null
+++ b/native/dicttoolkit/src/command_executors/makedict_executor.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_DICT_TOOLKIT_MAKEDICT_EXECUTOR_H
+#define LATINIME_DICT_TOOLKIT_MAKEDICT_EXECUTOR_H
+
+#include "dict_toolkit_defines.h"
+#include "utils/arguments_parser.h"
+
+namespace latinime {
+namespace dicttoolkit {
+
+class MakedictExecutor final {
+ public:
+    static const char *const COMMAND_NAME;
+
+    static int run(const int argc, char **argv);
+    static void printUsage();
+    static const ArgumentsParser getArgumentsParser();
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(MakedictExecutor);
+};
+
+} // namespace dicttoolkit
+} // namepsace latinime
+#endif // LATINIME_DICT_TOOLKIT_MAKEDICT_EXECUTOR_H
diff --git a/native/dicttoolkit/src/dict_toolkit_defines.h b/native/dicttoolkit/src/dict_toolkit_defines.h
new file mode 100644
index 0000000..dbaae0c
--- /dev/null
+++ b/native/dicttoolkit/src/dict_toolkit_defines.h
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_DICT_TOOLKIT_DEFINES_H
+#define LATINIME_DICT_TOOLKIT_DEFINES_H
+
+#include "defines.h"
+
+#define MIN_ARG_COUNT 2
+
+#endif // LATINIME_DICT_TOOLKIT_DEFINES_H
diff --git a/native/dicttoolkit/src/offdevice_intermediate_dict/offdevice_intermediate_dict.cpp b/native/dicttoolkit/src/offdevice_intermediate_dict/offdevice_intermediate_dict.cpp
new file mode 100644
index 0000000..af28131
--- /dev/null
+++ b/native/dicttoolkit/src/offdevice_intermediate_dict/offdevice_intermediate_dict.cpp
@@ -0,0 +1,126 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "offdevice_intermediate_dict/offdevice_intermediate_dict.h"
+
+#include "offdevice_intermediate_dict/offdevice_intermediate_dict_pt_node.h"
+
+namespace latinime {
+namespace dicttoolkit {
+
+bool OffdeviceIntermediateDict::addWord(const WordProperty &wordProperty) {
+    const CodePointArrayView codePoints = wordProperty.getCodePoints();
+    if (codePoints.empty() || codePoints.size() > MAX_WORD_LENGTH) {
+        return false;
+    }
+    return addWordInner(codePoints, wordProperty, mRootPtNodeArray);
+}
+
+bool OffdeviceIntermediateDict::addWordInner(const CodePointArrayView codePoints,
+        const WordProperty &wordProperty, OffdeviceIntermediateDictPtNodeArray &ptNodeArray) {
+    auto ptNodeList = ptNodeArray.getMutablePtNodeList();
+    auto ptNodeIt = ptNodeList->begin();
+    for (; ptNodeIt != ptNodeList->end(); ++ptNodeIt) {
+        const auto &ptNode = *ptNodeIt;
+        const CodePointArrayView ptNodeCodePoints = ptNode->getPtNodeCodePoints();
+        if (codePoints[0] < ptNodeCodePoints[0]) {
+            continue;
+        }
+        if (codePoints[0] > ptNodeCodePoints[0]) {
+            break;
+        }
+        size_t i = 1;
+        for (; i < codePoints.size(); ++i) {
+            if (i >= ptNodeCodePoints.size()) {
+                // Add new child.
+                return addWordInner(codePoints.skip(i), wordProperty,
+                        ptNode->getChildrenPtNodeArray());
+            }
+            if (codePoints[i] != ptNodeCodePoints[i]) {
+                break;
+            }
+        }
+        if (codePoints.size() == i && codePoints.size() == ptNodeCodePoints.size()) {
+            // All code points matched.
+            if (ptNode->getWordProperty()) {
+                //  Adding the same word multiple times is not supported.
+                return false;
+            }
+            ptNodeList->insert(ptNodeIt,
+                    std::make_shared<OffdeviceIntermediateDictPtNode>(wordProperty, *ptNode));
+            ptNodeList->erase(ptNodeIt);
+            return true;
+        }
+        // The (i+1)-th elements are different.
+        // Create and Add new parent ptNode for the common part.
+        auto newPtNode = codePoints.size() == i
+                ? std::make_shared<OffdeviceIntermediateDictPtNode>(codePoints, wordProperty)
+                : std::make_shared<OffdeviceIntermediateDictPtNode>(codePoints.limit(i));
+        ptNodeList->insert(ptNodeIt, newPtNode);
+        OffdeviceIntermediateDictPtNodeArray &childrenPtNodeArray =
+                newPtNode->getChildrenPtNodeArray();
+        // Add new child for the existing ptNode.
+        childrenPtNodeArray.getMutablePtNodeList()->push_back(
+                std::make_shared<OffdeviceIntermediateDictPtNode>(
+                        ptNodeCodePoints.skip(i), *ptNode));
+        ptNodeList->erase(ptNodeIt);
+        if (codePoints.size() != i) {
+            // Add a child for the new word.
+            return addWordInner(codePoints.skip(i), wordProperty, childrenPtNodeArray);
+        }
+        return true;
+    }
+    ptNodeList->insert(ptNodeIt,
+            std::make_shared<OffdeviceIntermediateDictPtNode>(codePoints, wordProperty));
+    return true;
+}
+
+const WordProperty *OffdeviceIntermediateDict::getWordProperty(
+        const CodePointArrayView codePoints) const {
+    const OffdeviceIntermediateDictPtNodeArray *ptNodeArray = &mRootPtNodeArray;
+    for (size_t i = 0; i < codePoints.size();) {
+        bool foundNext = false;
+        for (const auto ptNode : ptNodeArray->getPtNodeList()) {
+            const CodePointArrayView ptNodeCodePoints = ptNode->getPtNodeCodePoints();
+            if (codePoints[i] < ptNodeCodePoints[0]) {
+                continue;
+            }
+            if (codePoints[i] > ptNodeCodePoints[0]
+                     || codePoints.size() < ptNodeCodePoints.size()) {
+                return nullptr;
+            }
+            for (size_t j = 1; j < ptNodeCodePoints.size(); ++j) {
+                if (codePoints[i + j] != ptNodeCodePoints[j]) {
+                    return nullptr;
+                }
+            }
+            i += ptNodeCodePoints.size();
+            if (i == codePoints.size()) {
+                return ptNode->getWordProperty();
+            }
+            ptNodeArray = &ptNode->getChildrenPtNodeArray();
+            foundNext = true;
+            break;
+        }
+        if (!foundNext) {
+            break;
+        }
+    }
+    return nullptr;
+}
+
+} // namespace dicttoolkit
+} // namespace latinime
diff --git a/native/dicttoolkit/src/offdevice_intermediate_dict/offdevice_intermediate_dict.h b/native/dicttoolkit/src/offdevice_intermediate_dict/offdevice_intermediate_dict.h
new file mode 100644
index 0000000..13d26ba
--- /dev/null
+++ b/native/dicttoolkit/src/offdevice_intermediate_dict/offdevice_intermediate_dict.h
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_DICT_TOOLKIT_OFFDEVICE_INTERMEDIATE_DICT_H
+#define LATINIME_DICT_TOOLKIT_OFFDEVICE_INTERMEDIATE_DICT_H
+
+#include "dict_toolkit_defines.h"
+#include "offdevice_intermediate_dict/offdevice_intermediate_dict_header.h"
+#include "offdevice_intermediate_dict/offdevice_intermediate_dict_pt_node_array.h"
+#include "suggest/core/dictionary/property/word_property.h"
+#include "utils/int_array_view.h"
+
+namespace latinime {
+namespace dicttoolkit {
+
+/**
+ * On memory patricia trie to represent a dictionary.
+ */
+class OffdeviceIntermediateDict final {
+ public:
+    OffdeviceIntermediateDict(const OffdeviceIntermediateDictHeader &header)
+            : mHeader(header), mRootPtNodeArray() {}
+
+    bool addWord(const WordProperty &wordProperty);
+    // The returned value will be invalid after modifying the dictionary. e.g. calling addWord().
+    const WordProperty *getWordProperty(const CodePointArrayView codePoints) const;
+    const OffdeviceIntermediateDictHeader &getHeader() const { return mHeader; }
+
+ private:
+    DISALLOW_ASSIGNMENT_OPERATOR(OffdeviceIntermediateDict);
+
+    const OffdeviceIntermediateDictHeader mHeader;
+    OffdeviceIntermediateDictPtNodeArray mRootPtNodeArray;
+
+    bool addWordInner(const CodePointArrayView codePoints, const WordProperty &wordProperty,
+            OffdeviceIntermediateDictPtNodeArray &ptNodeArray);
+};
+
+} // namespace dicttoolkit
+} // namespace latinime
+#endif // LATINIME_DICT_TOOLKIT_OFFDEVICE_INTERMEDIATE_DICT_H
diff --git a/native/dicttoolkit/src/offdevice_intermediate_dict/offdevice_intermediate_dict_header.h b/native/dicttoolkit/src/offdevice_intermediate_dict/offdevice_intermediate_dict_header.h
new file mode 100644
index 0000000..440627a
--- /dev/null
+++ b/native/dicttoolkit/src/offdevice_intermediate_dict/offdevice_intermediate_dict_header.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_DICT_TOOLKIT_OFFDEVICE_INTERMEDIATE_DICT_HEADER_H
+#define LATINIME_DICT_TOOLKIT_OFFDEVICE_INTERMEDIATE_DICT_HEADER_H
+
+#include <map>
+#include <vector>
+
+#include "dict_toolkit_defines.h"
+
+namespace latinime {
+namespace dicttoolkit {
+
+class OffdeviceIntermediateDictHeader final {
+ public:
+    using AttributeMap = std::map<std::vector<int>, std::vector<int>>;
+
+    OffdeviceIntermediateDictHeader(const AttributeMap &attributesMap)
+            : mAttributeMap(attributesMap) {}
+
+ private:
+    DISALLOW_DEFAULT_CONSTRUCTOR(OffdeviceIntermediateDictHeader);
+    DISALLOW_ASSIGNMENT_OPERATOR(OffdeviceIntermediateDictHeader);
+
+    const AttributeMap mAttributeMap;
+};
+
+} // namespace dicttoolkit
+} // namespace latinime
+#endif // LATINIME_DICT_TOOLKIT_OFFDEVICE_INTERMEDIATE_DICT_HEADER_H
diff --git a/native/dicttoolkit/src/offdevice_intermediate_dict/offdevice_intermediate_dict_pt_node.h b/native/dicttoolkit/src/offdevice_intermediate_dict/offdevice_intermediate_dict_pt_node.h
new file mode 100644
index 0000000..721ccd7
--- /dev/null
+++ b/native/dicttoolkit/src/offdevice_intermediate_dict/offdevice_intermediate_dict_pt_node.h
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_DICT_TOOLKIT_OFFDEVICE_INTERMEDIATE_DICT_PT_NODE_H
+#define LATINIME_DICT_TOOLKIT_OFFDEVICE_INTERMEDIATE_DICT_PT_NODE_H
+
+#include <memory>
+
+#include "dict_toolkit_defines.h"
+#include "offdevice_intermediate_dict/offdevice_intermediate_dict_pt_node_array.h"
+#include "suggest/core/dictionary/property/word_property.h"
+#include "utils/int_array_view.h"
+
+namespace latinime {
+namespace dicttoolkit {
+
+class OffdeviceIntermediateDictPtNode final {
+ public:
+    // Non-terminal
+    OffdeviceIntermediateDictPtNode(const CodePointArrayView ptNodeCodePoints)
+            : mPtNodeCodePoints(ptNodeCodePoints.toVector()), mChildrenPtNodeArray(),
+              mWortProperty(nullptr) {}
+
+    // Terminal
+    OffdeviceIntermediateDictPtNode(const CodePointArrayView ptNodeCodePoints,
+            const WordProperty &wordProperty)
+             : mPtNodeCodePoints(ptNodeCodePoints.toVector()), mChildrenPtNodeArray(),
+               mWortProperty(new WordProperty(wordProperty)) {}
+
+    // Replacing PtNodeCodePoints.
+    OffdeviceIntermediateDictPtNode(const CodePointArrayView ptNodeCodePoints,
+            const OffdeviceIntermediateDictPtNode &ptNode)
+            : mPtNodeCodePoints(ptNodeCodePoints.toVector()),
+              mChildrenPtNodeArray(ptNode.mChildrenPtNodeArray),
+              mWortProperty(new WordProperty(*ptNode.mWortProperty)) {}
+
+    // Replacing WordProperty.
+    OffdeviceIntermediateDictPtNode(const WordProperty &wordProperty,
+            const OffdeviceIntermediateDictPtNode &ptNode)
+            : mPtNodeCodePoints(ptNode.mPtNodeCodePoints),
+              mChildrenPtNodeArray(ptNode.mChildrenPtNodeArray),
+              mWortProperty(new WordProperty(wordProperty)) {}
+
+    const WordProperty *getWordProperty() const {
+        return mWortProperty.get();
+    }
+
+    const CodePointArrayView getPtNodeCodePoints() const {
+        return CodePointArrayView(mPtNodeCodePoints);
+    }
+
+    OffdeviceIntermediateDictPtNodeArray &getChildrenPtNodeArray() {
+        return mChildrenPtNodeArray;
+    }
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(OffdeviceIntermediateDictPtNode);
+
+    const std::vector<int> mPtNodeCodePoints;
+    OffdeviceIntermediateDictPtNodeArray mChildrenPtNodeArray;
+    const std::unique_ptr<WordProperty> mWortProperty;
+};
+
+} // namespace dicttoolkit
+} // namespace latinime
+#endif // LATINIME_DICT_TOOLKIT_OFFDEVICE_INTERMEDIATE_DICT_PT_NODE_H
diff --git a/native/dicttoolkit/src/offdevice_intermediate_dict/offdevice_intermediate_dict_pt_node_array.h b/native/dicttoolkit/src/offdevice_intermediate_dict/offdevice_intermediate_dict_pt_node_array.h
new file mode 100644
index 0000000..f87456c
--- /dev/null
+++ b/native/dicttoolkit/src/offdevice_intermediate_dict/offdevice_intermediate_dict_pt_node_array.h
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_DICT_TOOLKIT_OFFDEVICE_INTERMEDIATE_DICT_PT_NODE_ARRAY_H
+#define LATINIME_DICT_TOOLKIT_OFFDEVICE_INTERMEDIATE_DICT_PT_NODE_ARRAY_H
+
+#include <list>
+#include <memory>
+
+#include "dict_toolkit_defines.h"
+
+namespace latinime {
+namespace dicttoolkit {
+
+class OffdeviceIntermediateDictPtNode;
+
+class OffdeviceIntermediateDictPtNodeArray final {
+ public:
+    const std::list<std::shared_ptr<OffdeviceIntermediateDictPtNode>> &getPtNodeList() const {
+        return mPtNodes;
+    }
+
+    std::list<std::shared_ptr<OffdeviceIntermediateDictPtNode>> *getMutablePtNodeList() {
+        return &mPtNodes;
+    }
+
+ private:
+    DISALLOW_ASSIGNMENT_OPERATOR(OffdeviceIntermediateDictPtNodeArray);
+
+    std::list<std::shared_ptr<OffdeviceIntermediateDictPtNode>> mPtNodes;
+};
+
+} // namespace dicttoolkit
+} // namespace latinime
+#endif // LATINIME_DICT_TOOLKIT_OFFDEVICE_INTERMEDIATE_DICT_PT_NODE_ARRAY_H
diff --git a/native/dicttoolkit/src/utils/arguments_and_options.h b/native/dicttoolkit/src/utils/arguments_and_options.h
new file mode 100644
index 0000000..2d81b1e
--- /dev/null
+++ b/native/dicttoolkit/src/utils/arguments_and_options.h
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_DICT_TOOLKIT_ARGUMENTS_AND_OPTIONS_H
+#define LATINIME_DICT_TOOLKIT_ARGUMENTS_AND_OPTIONS_H
+
+#include <string>
+#include <unordered_map>
+#include <vector>
+
+#include "dict_toolkit_defines.h"
+
+namespace latinime {
+namespace dicttoolkit {
+
+class ArgumentsAndOptions {
+ public:
+    ArgumentsAndOptions() : mIsValid(false), mOptions(), mArguments() {}
+
+    ArgumentsAndOptions(std::unordered_map<std::string, std::string> &&options,
+            std::unordered_map<std::string, std::vector<std::string>> &&arguments)
+            : mIsValid(true), mOptions(std::move(options)), mArguments(std::move(arguments)) {}
+
+    bool isValid() const {
+        return mIsValid;
+    }
+
+    bool hasOption(const std::string &optionName) const {
+        return mOptions.find(optionName) != mOptions.end();
+    }
+
+    const std::string &getOptionValue(const std::string &optionName) const {
+        const auto &it = mOptions.find(optionName);
+        ASSERT(it != mOptions.end());
+        return it->second;
+    }
+
+    bool hasArgument(const std::string &name) const {
+        const auto &it = mArguments.find(name);
+        return it != mArguments.end() && !it->second.empty();
+    }
+
+    const std::string &getSingleArgument(const std::string &name) const {
+        const auto &it = mArguments.find(name);
+        ASSERT(it != mArguments.end() && !it->second.empty());
+        return it->second.front();
+    }
+
+    const std::vector<std::string> &getVariableLengthArguments(const std::string &name) const {
+        const auto &it = mArguments.find(name);
+        ASSERT(it != mArguments.end());
+        return it->second;
+    }
+
+ private:
+    DISALLOW_ASSIGNMENT_OPERATOR(ArgumentsAndOptions);
+
+    const bool mIsValid;
+    const std::unordered_map<std::string, std::string> mOptions;
+    const std::unordered_map<std::string, std::vector<std::string>> mArguments;
+};
+} // namespace dicttoolkit
+} // namespace latinime
+#endif // LATINIME_DICT_TOOLKIT_ARGUMENTS_AND_OPTIONS_H
diff --git a/native/dicttoolkit/src/utils/arguments_parser.cpp b/native/dicttoolkit/src/utils/arguments_parser.cpp
new file mode 100644
index 0000000..1451284
--- /dev/null
+++ b/native/dicttoolkit/src/utils/arguments_parser.cpp
@@ -0,0 +1,165 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "utils/arguments_parser.h"
+
+#include <unordered_set>
+
+namespace latinime {
+namespace dicttoolkit {
+
+const size_t ArgumentSpec::UNLIMITED_COUNT = S_INT_MAX;
+
+bool ArgumentsParser::validateSpecs() const {
+    std::unordered_set<std::string> argumentNameSet;
+    for (size_t i = 0; i < mArgumentSpecs.size() ; ++i) {
+        if (mArgumentSpecs[i].getMinCount() == 0 && mArgumentSpecs[i].getMaxCount() == 0) {
+            AKLOGE("minCount = maxCount = 0 for %s.", mArgumentSpecs[i].getName().c_str());
+            return false;
+        }
+        if (mArgumentSpecs[i].getMinCount() != mArgumentSpecs[i].getMaxCount()
+                && i != mArgumentSpecs.size() - 1) {
+            AKLOGE("Variable length argument must be at the end.",
+                    mArgumentSpecs[i].getName().c_str()v  );
+            return false;
+        }
+        if (argumentNameSet.count(mArgumentSpecs[i].getName()) > 0) {
+            AKLOGE("Multiple arguments have the same name \"%s\".",
+                    mArgumentSpecs[i].getName().c_str());
+            return false;
+        }
+        argumentNameSet.insert(mArgumentSpecs[i].getName());
+    }
+    return true;
+}
+
+void ArgumentsParser::printUsage(const std::string &commandName,
+        const std::string &description) const {
+    printf("Usage: %s", commandName.c_str());
+    for (const auto &option : mOptionSpecs) {
+        const std::string &optionName = option.first;
+        const OptionSpec &spec = option.second;
+        printf(" [-%s", optionName.c_str());
+        if (spec.needsValue()) {
+            printf(" <%s>", spec.getValueName().c_str());
+        }
+        printf("]");
+    }
+    for (const auto &argSpec : mArgumentSpecs) {
+        if (argSpec.getMinCount() == 0 && argSpec.getMaxCount() == 1) {
+            printf(" [<%s>]", argSpec.getName().c_str());
+        } else if (argSpec.getMinCount() == 1 && argSpec.getMaxCount() == 1) {
+            printf(" <%s>", argSpec.getName().c_str());
+        } else if (argSpec.getMinCount() == 0) {
+            printf(" [<%s>...]", argSpec.getName().c_str());
+        } else if (argSpec.getMinCount() == 1) {
+            printf(" <%s>...", argSpec.getName().c_str());
+        }
+    }
+    printf("\n%s\n\n", description.c_str());
+    for (const auto &option : mOptionSpecs) {
+        const std::string &optionName = option.first;
+        const OptionSpec &spec = option.second;
+        printf(" -%s", optionName.c_str());
+        if (spec.needsValue()) {
+            printf(" <%s>", spec.getValueName().c_str());
+        }
+        printf("\t\t\t%s", spec.getDescription().c_str());
+        if (spec.needsValue() && !spec.getDefaultValue().empty()) {
+            printf("\tdefault: %s", spec.getDefaultValue().c_str());
+        }
+        printf("\n");
+    }
+    for (const auto &argSpec : mArgumentSpecs) {
+        printf(" <%s>\t\t\t%s\n", argSpec.getName().c_str(), argSpec.getDescription().c_str());
+    }
+    printf("\n\n");
+}
+
+const ArgumentsAndOptions ArgumentsParser::parseArguments(const int argc, char **argv,
+        const bool printErrorMessage) const {
+    if (argc <= 0) {
+        AKLOGE("Invalid argc (%d).", argc);
+        ASSERT(false);
+        return ArgumentsAndOptions();
+    }
+    std::unordered_map<std::string, std::string> options;
+    for (const auto &entry : mOptionSpecs) {
+        const std::string &optionName = entry.first;
+        const OptionSpec &optionSpec = entry.second;
+        if (optionSpec.needsValue() && !optionSpec.getDefaultValue().empty()) {
+            // Set default value.
+            options[optionName] = optionSpec.getDefaultValue();
+        }
+    }
+    std::unordered_map<std::string, std::vector<std::string>> arguments;
+    auto argumentSpecIt = mArgumentSpecs.cbegin();
+    for (int i = 1; i < argc; ++i) {
+        const std::string arg = argv[i];
+        if (arg.length() > 1 && arg[0] == '-') {
+            // option
+            const std::string optionName = arg.substr(1);
+            const auto it = mOptionSpecs.find(optionName);
+            if (it == mOptionSpecs.end()) {
+                if (printErrorMessage) {
+                    fprintf(stderr, "Unknown option: '%s'\n", optionName.c_str());
+                }
+                return ArgumentsAndOptions();
+            }
+            std::string optionValue;
+            if (it->second.needsValue()) {
+                ++i;
+                if (i >= argc) {
+                    if (printErrorMessage) {
+                        fprintf(stderr, "Missing argument for option '%s'\n", optionName.c_str());
+                    }
+                    return ArgumentsAndOptions();
+                }
+                optionValue = argv[i];
+            }
+            options[optionName] = optionValue;
+        } else {
+            // argument
+            if (argumentSpecIt == mArgumentSpecs.end()) {
+                if (printErrorMessage) {
+                    fprintf(stderr, "Too many arguments.\n");
+                }
+                return ArgumentsAndOptions();
+            }
+            arguments[argumentSpecIt->getName()].push_back(arg);
+            if (arguments[argumentSpecIt->getName()].size() >= argumentSpecIt->getMaxCount()) {
+                ++argumentSpecIt;
+            }
+        }
+    }
+
+    if (argumentSpecIt != mArgumentSpecs.end()) {
+        const auto &it = arguments.find(argumentSpecIt->getName());
+        const size_t minCount = argumentSpecIt->getMinCount();
+        const size_t actualcount = it == arguments.end() ? 0 : it->second.size();
+        if (minCount > actualcount) {
+            if (printErrorMessage) {
+                fprintf(stderr, "Not enough arguments. %zd argumant(s) required for <%s>\n",
+                        minCount, argumentSpecIt->getName().c_str());
+            }
+            return ArgumentsAndOptions();
+        }
+    }
+    return ArgumentsAndOptions(std::move(options), std::move(arguments));
+}
+
+} // namespace dicttoolkit
+} // namespace latinime
diff --git a/native/dicttoolkit/src/utils/arguments_parser.h b/native/dicttoolkit/src/utils/arguments_parser.h
new file mode 100644
index 0000000..32bd328
--- /dev/null
+++ b/native/dicttoolkit/src/utils/arguments_parser.h
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_DICT_TOOLKIT_ARGUMENTS_PARSER_H
+#define LATINIME_DICT_TOOLKIT_ARGUMENTS_PARSER_H
+
+#include <string>
+#include <unordered_map>
+#include <vector>
+
+#include "dict_toolkit_defines.h"
+#include "utils/arguments_and_options.h"
+
+namespace latinime {
+namespace dicttoolkit {
+
+class OptionSpec {
+ public:
+    // Default constructor and assignment operator is enabled to be used with std::unordered_map.
+    OptionSpec() = default;
+    OptionSpec &operator=(const OptionSpec &) = default;
+
+    static OptionSpec keyValueOption(const std::string &valueName, const std::string &defaultValue,
+            const std::string &description) {
+        return OptionSpec(true /* needsValue */, valueName, defaultValue, description);
+    }
+
+    static OptionSpec switchOption(const std::string &description) {
+        return OptionSpec(false /* needsValue */, "" /* valueName */, "" /* defaultValue */,
+                description);
+    }
+
+    bool needsValue() const { return mNeedsValue; }
+    const std::string &getValueName() const { return mValueName; }
+    const std::string &getDefaultValue() const { return mDefaultValue; }
+    const std::string &getDescription() const { return mDescription; }
+
+ private:
+    OptionSpec(const bool needsValue, const std::string &valueName, const std::string &defaultValue,
+            const std::string &description)
+            : mNeedsValue(needsValue), mValueName(valueName), mDefaultValue(defaultValue),
+              mDescription(description) {}
+
+    // Whether the option have to be used with a value or just a switch.
+    // e.g. 'f' in "command -f /path/to/file" is mNeedsValue == true.
+    //      'f' in "command -f -t" is mNeedsValue == false.
+    bool mNeedsValue;
+    // Name of the value used to show usage.
+    std::string mValueName;
+    std::string mDefaultValue;
+    std::string mDescription;
+};
+
+class ArgumentSpec {
+ public:
+    static const size_t UNLIMITED_COUNT;
+
+    static ArgumentSpec singleArgument(const std::string &name, const std::string &description) {
+        return ArgumentSpec(name, 1 /* minCount */, 1 /* maxCount */, description);
+    }
+
+    static ArgumentSpec variableLengthArguments(const std::string &name, const size_t minCount,
+            const size_t maxCount, const std::string &description) {
+        return ArgumentSpec(name, minCount, maxCount, description);
+    }
+
+    const std::string &getName() const { return mName; }
+    size_t getMinCount() const { return mMinCount; }
+    size_t getMaxCount() const { return mMaxCount; }
+    const std::string &getDescription() const { return mDescription; }
+
+ private:
+    DISALLOW_DEFAULT_CONSTRUCTOR(ArgumentSpec);
+
+    ArgumentSpec(const std::string &name, const size_t minCount, const size_t maxCount,
+            const std::string &description)
+            : mName(name), mMinCount(minCount), mMaxCount(maxCount), mDescription(description) {}
+
+    const std::string mName;
+    const size_t mMinCount;
+    const size_t mMaxCount;
+    const std::string mDescription;
+};
+
+class ArgumentsParser {
+ public:
+    ArgumentsParser(const std::unordered_map<std::string, OptionSpec> &&optionSpecs,
+            const std::vector<ArgumentSpec> &&argumentSpecs)
+            : mOptionSpecs(std::move(optionSpecs)), mArgumentSpecs(std::move(argumentSpecs)) {}
+
+    const ArgumentsAndOptions parseArguments(const int argc, char **argv,
+            const bool printErrorMessage) const;
+    bool validateSpecs() const;
+    void printUsage(const std::string &commandName, const std::string &description) const;
+
+ private:
+    DISALLOW_DEFAULT_CONSTRUCTOR(ArgumentsParser);
+    DISALLOW_ASSIGNMENT_OPERATOR(ArgumentsParser);
+
+    const std::unordered_map<std::string, OptionSpec> mOptionSpecs;
+    const std::vector<ArgumentSpec> mArgumentSpecs;
+};
+
+} // namespace dicttoolkit
+} // namespace latinime
+#endif // LATINIME_DICT_TOOLKIT_ARGUMENTS_PARSER_H
diff --git a/native/dicttoolkit/src/utils/command_utils.cpp b/native/dicttoolkit/src/utils/command_utils.cpp
new file mode 100644
index 0000000..3419642
--- /dev/null
+++ b/native/dicttoolkit/src/utils/command_utils.cpp
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "utils/command_utils.h"
+
+#include <cstdio>
+
+#include "command_executors/diff_executor.h"
+#include "command_executors/header_executor.h"
+#include "command_executors/help_executor.h"
+#include "command_executors/info_executor.h"
+#include "command_executors/makedict_executor.h"
+
+namespace latinime {
+namespace dicttoolkit {
+
+/* static */ CommandType CommandUtils::getCommandType(const std::string &commandName) {
+    if (commandName == InfoExecutor::COMMAND_NAME) {
+        return CommandType::Info;
+    } else if (commandName == DiffExecutor::COMMAND_NAME) {
+        return CommandType::Diff;
+    } else if (commandName == MakedictExecutor::COMMAND_NAME) {
+        return CommandType::Makedict;
+    } else if (commandName == HeaderExecutor::COMMAND_NAME) {
+        return CommandType::Header;
+    } else if (commandName == HelpExecutor::COMMAND_NAME) {
+        return CommandType::Help;
+    } else {
+        return CommandType::Unknown;
+    }
+}
+
+/* static */ void CommandUtils::printCommandUnknownMessage(const std::string &programName,
+        const std::string &commandName) {
+    fprintf(stderr, "Command '%s' is unknown. Try '%s %s' for more information.\n",
+            commandName.c_str(), programName.c_str(), HelpExecutor::COMMAND_NAME);
+}
+
+/* static */ std::function<int(int, char **)> CommandUtils::getCommandExecutor(
+        const CommandType commandType) {
+    switch (commandType) {
+        case CommandType::Info:
+            return InfoExecutor::run;
+        case CommandType::Diff:
+            return DiffExecutor::run;
+        case CommandType::Makedict:
+            return MakedictExecutor::run;
+        case CommandType::Header:
+            return HeaderExecutor::run;
+        case CommandType::Help:
+            return HelpExecutor::run;
+        default:
+            return [] (int, char **) -> int {
+                printf("Command executor not found.");
+                return 1;
+            };
+    }
+}
+
+} // namespace dicttoolkit
+} // namespace latinime
diff --git a/native/dicttoolkit/src/utils/command_utils.h b/native/dicttoolkit/src/utils/command_utils.h
new file mode 100644
index 0000000..4a181f1
--- /dev/null
+++ b/native/dicttoolkit/src/utils/command_utils.h
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_DICT_TOOLKIT_COMMAND_UTILS_H
+#define LATINIME_DICT_TOOLKIT_COMMAND_UTILS_H
+
+#include <functional>
+#include <memory>
+#include <string>
+
+#include "dict_toolkit_defines.h"
+
+namespace latinime {
+namespace dicttoolkit {
+
+enum class CommandType : int {
+    Info,
+    Diff,
+    Makedict,
+    Header,
+    Help,
+    Unknown
+};
+
+class CommandUtils {
+public:
+    static CommandType getCommandType(const std::string &commandName);
+    static void printCommandUnknownMessage(const std::string &programName,
+            const std::string &commandName);
+    static std::function<int(int, char **)> getCommandExecutor(const CommandType commandType);
+
+private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(CommandUtils);
+};
+} // namespace dicttoolkit
+} // namespace latinime
+#endif // LATINIME_DICT_TOOLKIT_COMMAND_UTILS_H
diff --git a/native/dicttoolkit/src/utils/utf8_utils.cpp b/native/dicttoolkit/src/utils/utf8_utils.cpp
new file mode 100644
index 0000000..0f349f5
--- /dev/null
+++ b/native/dicttoolkit/src/utils/utf8_utils.cpp
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "utils/utf8_utils.h"
+
+#include "utils/char_utils.h"
+
+namespace latinime {
+namespace dicttoolkit {
+
+const size_t Utf8Utils::MAX_SEQUENCE_SIZE_FOR_A_CODE_POINT = 4;
+const uint8_t Utf8Utils::FIRST_BYTE_MARKER_MASKS[] = {0, 0x80, 0xE0, 0xF0, 0xF8};
+const uint8_t Utf8Utils::FIRST_BYTE_MARKERS[] = {0, 0x00, 0xC0, 0xE0, 0xF0};
+const uint8_t Utf8Utils::FIRST_BYTE_CODE_POINT_BITS_MASKS[] = {0, 0x7F, 0x1F, 0x0F, 0x03};
+const int Utf8Utils::MAX_ENCODED_CODE_POINT_VALUES[] = {-1, 0x7F, 0x7FF, 0xFFFF, 0x10FFFF};
+
+const uint8_t Utf8Utils::TRAILING_BYTE_CODE_POINT_BITS_MASK = 0x3F;
+const uint8_t Utf8Utils::TRAILING_BYTE_MARKER = 0x80;
+const size_t Utf8Utils::CODE_POINT_BIT_COUNT_IN_TRAILING_BYTE = 6;
+
+/* static */ std::vector<int> Utf8Utils::getCodePoints(const std::string &utf8Str) {
+    std::vector<int> codePoints;
+    int remainingByteCountForCurrentCodePoint = 0;
+    int currentCodePointSequenceSize = 0;
+    int codePoint = 0;
+    for (const char c : utf8Str) {
+        if (remainingByteCountForCurrentCodePoint == 0) {
+            currentCodePointSequenceSize = getSequenceSizeByCheckingFirstByte(c);
+            if (currentCodePointSequenceSize <= 0) {
+                AKLOGE("%x is an invalid utf8 first byte value.", c);
+                return std::vector<int>();
+            }
+            remainingByteCountForCurrentCodePoint = currentCodePointSequenceSize;
+            codePoint = maskFirstByte(c, remainingByteCountForCurrentCodePoint);
+        } else {
+            codePoint <<= CODE_POINT_BIT_COUNT_IN_TRAILING_BYTE;
+            codePoint += maskTrailingByte(c);
+        }
+        remainingByteCountForCurrentCodePoint--;
+        if (remainingByteCountForCurrentCodePoint == 0) {
+            if (codePoint <= MAX_ENCODED_CODE_POINT_VALUES[currentCodePointSequenceSize - 1]) {
+                AKLOGE("%d bytes encode for codePoint(%x) is a redundant UTF-8 sequence.",
+                        currentCodePointSequenceSize,  codePoint);
+                return std::vector<int>();
+            }
+            codePoints.push_back(codePoint);
+        }
+    }
+    return codePoints;
+}
+
+/* static */ int Utf8Utils::getSequenceSizeByCheckingFirstByte(const uint8_t firstByte) {
+    for (size_t i = 1; i <= MAX_SEQUENCE_SIZE_FOR_A_CODE_POINT; ++i) {
+        if ((firstByte & FIRST_BYTE_MARKER_MASKS[i]) == FIRST_BYTE_MARKERS[i]) {
+            return i;
+        }
+    }
+    // Not a valid utf8 char first byte.
+    return -1;
+}
+
+/* static */ AK_FORCE_INLINE int Utf8Utils::maskFirstByte(const uint8_t firstByte,
+        const int sequenceSize) {
+    return firstByte & FIRST_BYTE_CODE_POINT_BITS_MASKS[sequenceSize];
+}
+
+/* static */ AK_FORCE_INLINE int Utf8Utils::maskTrailingByte(const uint8_t secondOrLaterByte) {
+    return secondOrLaterByte & TRAILING_BYTE_CODE_POINT_BITS_MASK;
+}
+
+/* static */ std::string Utf8Utils::getUtf8String(const CodePointArrayView codePoints) {
+    std::string utf8String;
+    for (const int codePoint : codePoints) {
+        const int sequenceSize = getSequenceSizeToEncodeCodePoint(codePoint);
+        if (sequenceSize <= 0) {
+            AKLOGE("Cannot encode code point (%d).", codePoint);
+            return std::string();
+        }
+        const int trailingByteCount = sequenceSize - 1;
+        // Output first byte.
+        const int value = codePoint >> (trailingByteCount * CODE_POINT_BIT_COUNT_IN_TRAILING_BYTE);
+        utf8String.push_back(static_cast<char>(value | FIRST_BYTE_MARKERS[sequenceSize]));
+        // Output second and later bytes.
+        for (int i = 1; i < sequenceSize; ++i) {
+            const int shiftAmount = (trailingByteCount - i) * CODE_POINT_BIT_COUNT_IN_TRAILING_BYTE;
+            const int value = (codePoint >> shiftAmount) & TRAILING_BYTE_CODE_POINT_BITS_MASK;
+            utf8String.push_back(static_cast<char>(value | TRAILING_BYTE_MARKER));
+        }
+    }
+    return utf8String;
+}
+
+/* static */ int Utf8Utils::getSequenceSizeToEncodeCodePoint(const int codePoint) {
+    if (codePoint < 0) {
+        return -1;
+    }
+    for (size_t i = 1; i <= MAX_SEQUENCE_SIZE_FOR_A_CODE_POINT; ++i) {
+        if (codePoint <= MAX_ENCODED_CODE_POINT_VALUES[i]) {
+            return i;
+        }
+    }
+    return -1;
+}
+
+} // namespace dicttoolkit
+} // namespace latinime
diff --git a/native/dicttoolkit/src/utils/utf8_utils.h b/native/dicttoolkit/src/utils/utf8_utils.h
new file mode 100644
index 0000000..35818e5
--- /dev/null
+++ b/native/dicttoolkit/src/utils/utf8_utils.h
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_DICT_TOOLKIT_UTF8_UTILS_H
+#define LATINIME_DICT_TOOLKIT_UTF8_UTILS_H
+
+#include <cstdint>
+#include <string>
+#include <vector>
+
+#include "dict_toolkit_defines.h"
+#include "utils/int_array_view.h"
+
+namespace latinime {
+namespace dicttoolkit {
+
+class Utf8Utils {
+public:
+    static std::vector<int> getCodePoints(const std::string &utf8Str);
+    static std::string getUtf8String(const CodePointArrayView codePoints);
+
+private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(Utf8Utils);
+
+    // Values indexed by sequence size.
+    static const size_t MAX_SEQUENCE_SIZE_FOR_A_CODE_POINT;
+    static const uint8_t FIRST_BYTE_MARKER_MASKS[];
+    static const uint8_t FIRST_BYTE_MARKERS[];
+    static const uint8_t FIRST_BYTE_CODE_POINT_BITS_MASKS[];
+    static const int MAX_ENCODED_CODE_POINT_VALUES[];
+
+    static const uint8_t TRAILING_BYTE_CODE_POINT_BITS_MASK;
+    static const uint8_t TRAILING_BYTE_MARKER;
+    static const size_t CODE_POINT_BIT_COUNT_IN_TRAILING_BYTE;
+
+    static int getSequenceSizeByCheckingFirstByte(const uint8_t firstByte);
+    static int maskFirstByte(const uint8_t firstByte, const int encodeSize);
+    static int maskTrailingByte(const uint8_t secondOrLaterByte);
+    static int getSequenceSizeToEncodeCodePoint(const int codePoint);
+};
+} // namespace dicttoolkit
+} // namespace latinime
+#endif // LATINIME_DICT_TOOLKIT_UTF8_UTILS_H
diff --git a/native/dicttoolkit/tests/command_executors/diff_executor_test.cpp b/native/dicttoolkit/tests/command_executors/diff_executor_test.cpp
new file mode 100644
index 0000000..4441414
--- /dev/null
+++ b/native/dicttoolkit/tests/command_executors/diff_executor_test.cpp
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "command_executors/diff_executor.h"
+
+#include <gtest/gtest.h>
+
+namespace latinime {
+namespace dicttoolkit {
+namespace {
+
+TEST(DiffExecutorTests, TestArguemntSpecs) {
+    EXPECT_TRUE(DiffExecutor::getArgumentsParser().validateSpecs());
+}
+
+} // namespace
+} // namespace dicttoolkit
+} // namespace latinime
diff --git a/native/dicttoolkit/tests/command_executors/header_executor_test.cpp b/native/dicttoolkit/tests/command_executors/header_executor_test.cpp
new file mode 100644
index 0000000..a94150b
--- /dev/null
+++ b/native/dicttoolkit/tests/command_executors/header_executor_test.cpp
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "command_executors/header_executor.h"
+
+#include <gtest/gtest.h>
+
+namespace latinime {
+namespace dicttoolkit {
+namespace {
+
+TEST(HeaderExecutorTests, TestArguemntSpecs) {
+    EXPECT_TRUE(HeaderExecutor::getArgumentsParser().validateSpecs());
+}
+
+} // namespace
+} // namespace dicttoolkit
+} // namespace latinime
diff --git a/native/dicttoolkit/tests/command_executors/info_executor_test.cpp b/native/dicttoolkit/tests/command_executors/info_executor_test.cpp
new file mode 100644
index 0000000..debe8c6
--- /dev/null
+++ b/native/dicttoolkit/tests/command_executors/info_executor_test.cpp
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "command_executors/info_executor.h"
+
+#include <gtest/gtest.h>
+
+namespace latinime {
+namespace dicttoolkit {
+namespace {
+
+TEST(InfoExecutorTests, TestArguemntSpecs) {
+    EXPECT_TRUE(InfoExecutor::getArgumentsParser().validateSpecs());
+}
+
+} // namespace
+} // namespace dicttoolkit
+} // namespace latinime
diff --git a/native/dicttoolkit/tests/command_executors/makedict_executor_test.cpp b/native/dicttoolkit/tests/command_executors/makedict_executor_test.cpp
new file mode 100644
index 0000000..44eb3dc
--- /dev/null
+++ b/native/dicttoolkit/tests/command_executors/makedict_executor_test.cpp
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "command_executors/makedict_executor.h"
+
+#include <gtest/gtest.h>
+
+namespace latinime {
+namespace dicttoolkit {
+namespace {
+
+TEST(MakedictExecutorTests, TestArguemntSpecs) {
+    EXPECT_TRUE(MakedictExecutor::getArgumentsParser().validateSpecs());
+}
+
+} // namespace
+} // namespace dicttoolkit
+} // namespace latinime
diff --git a/native/dicttoolkit/tests/dict_toolkit_defines_test.cpp b/native/dicttoolkit/tests/dict_toolkit_defines_test.cpp
new file mode 100644
index 0000000..3445bd0
--- /dev/null
+++ b/native/dicttoolkit/tests/dict_toolkit_defines_test.cpp
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dict_toolkit_defines.h"
+
+#include <gtest/gtest.h>
+
+namespace latinime {
+namespace dicttoolkit {
+namespace {
+
+// Initial trivial test case.
+TEST(DictToolkitDefinesTest, TestKeycodeSpace) {
+    EXPECT_EQ(' ', KEYCODE_SPACE);
+}
+
+} // namespace
+} // namespace dicttoolkit
+} // namespace latinime
diff --git a/native/dicttoolkit/tests/offdevice_intermediate_dict/offdevice_intermediate_dict_test.cpp b/native/dicttoolkit/tests/offdevice_intermediate_dict/offdevice_intermediate_dict_test.cpp
new file mode 100644
index 0000000..f2e24ab
--- /dev/null
+++ b/native/dicttoolkit/tests/offdevice_intermediate_dict/offdevice_intermediate_dict_test.cpp
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "offdevice_intermediate_dict/offdevice_intermediate_dict.h"
+
+#include <gtest/gtest.h>
+
+#include <vector>
+
+#include "suggest/core/dictionary/property/word_property.h"
+#include "utils/int_array_view.h"
+
+namespace latinime {
+namespace dicttoolkit {
+namespace {
+
+const std::vector<int> getCodePointVector(const char *str) {
+    std::vector<int> codePoints;
+    while (*str) {
+        codePoints.push_back(*str);
+        ++str;
+    }
+    return codePoints;
+}
+
+const WordProperty getDummpWordProperty(const std::vector<int> &&codePoints) {
+    return WordProperty(std::move(codePoints), UnigramProperty(), std::vector<NgramProperty>());
+}
+
+TEST(OffdeviceIntermediateDictTest, TestAddWordProperties) {
+    OffdeviceIntermediateDict dict = OffdeviceIntermediateDict(
+            OffdeviceIntermediateDictHeader(OffdeviceIntermediateDictHeader::AttributeMap()));
+    EXPECT_EQ(nullptr, dict.getWordProperty(CodePointArrayView()));
+
+    const WordProperty wordProperty0 = getDummpWordProperty(getCodePointVector("abcd"));
+    EXPECT_TRUE(dict.addWord(wordProperty0));
+    EXPECT_NE(nullptr, dict.getWordProperty(wordProperty0.getCodePoints()));
+
+    const WordProperty wordProperty1 = getDummpWordProperty(getCodePointVector("efgh"));
+    EXPECT_TRUE(dict.addWord(wordProperty1));
+    EXPECT_NE(nullptr, dict.getWordProperty(wordProperty1.getCodePoints()));
+
+    const WordProperty wordProperty2 = getDummpWordProperty(getCodePointVector("ab"));
+    EXPECT_TRUE(dict.addWord(wordProperty2));
+    EXPECT_NE(nullptr, dict.getWordProperty(wordProperty2.getCodePoints()));
+
+    const WordProperty wordProperty3 = getDummpWordProperty(getCodePointVector("abcdefg"));
+    EXPECT_TRUE(dict.addWord(wordProperty3));
+    EXPECT_NE(nullptr, dict.getWordProperty(wordProperty3.getCodePoints()));
+
+    const WordProperty wordProperty4 = getDummpWordProperty(getCodePointVector("efef"));
+    EXPECT_TRUE(dict.addWord(wordProperty4));
+    EXPECT_NE(nullptr, dict.getWordProperty(wordProperty4.getCodePoints()));
+
+    const WordProperty wordProperty5 = getDummpWordProperty(getCodePointVector("ef"));
+    EXPECT_TRUE(dict.addWord(wordProperty5));
+    EXPECT_NE(nullptr, dict.getWordProperty(wordProperty5.getCodePoints()));
+
+    const WordProperty wordProperty6 = getDummpWordProperty(getCodePointVector("abcd"));
+    EXPECT_FALSE(dict.addWord(wordProperty6)) << "Adding the same word multiple times should fail.";
+
+    EXPECT_NE(nullptr, dict.getWordProperty(wordProperty0.getCodePoints()));
+    EXPECT_NE(nullptr, dict.getWordProperty(wordProperty1.getCodePoints()));
+    EXPECT_NE(nullptr, dict.getWordProperty(wordProperty2.getCodePoints()));
+    EXPECT_NE(nullptr, dict.getWordProperty(wordProperty3.getCodePoints()));
+    EXPECT_NE(nullptr, dict.getWordProperty(wordProperty4.getCodePoints()));
+    EXPECT_NE(nullptr, dict.getWordProperty(wordProperty5.getCodePoints()));
+}
+
+} // namespace
+} // namespace dicttoolkit
+} // namespace latinime
diff --git a/native/dicttoolkit/tests/utils/arguments_parser_test.cpp b/native/dicttoolkit/tests/utils/arguments_parser_test.cpp
new file mode 100644
index 0000000..58b4998
--- /dev/null
+++ b/native/dicttoolkit/tests/utils/arguments_parser_test.cpp
@@ -0,0 +1,147 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "utils/arguments_parser.h"
+
+#include <gtest/gtest.h>
+
+namespace latinime {
+namespace dicttoolkit {
+namespace {
+
+TEST(ArgumentsParserTests, TestValitadeSpecs) {
+    {
+        std::unordered_map<std::string, OptionSpec> optionSpecs;
+        std::vector<ArgumentSpec> argumentSpecs;
+        EXPECT_TRUE(
+                ArgumentsParser(std::move(optionSpecs), std::move(argumentSpecs)).validateSpecs());
+    }
+    {
+        std::unordered_map<std::string, OptionSpec> optionSpecs;
+        optionSpecs["a"] = OptionSpec::keyValueOption("valueName", "default", "description");
+        const std::vector<ArgumentSpec> argumentSpecs = {
+            ArgumentSpec::singleArgument("name", "description"),
+            ArgumentSpec::variableLengthArguments("name2", 0 /* minCount */,  1 /* maxCount */,
+                    "description2")
+        };
+        EXPECT_TRUE(
+                ArgumentsParser(std::move(optionSpecs), std::move(argumentSpecs)).validateSpecs());
+    }
+    {
+        const std::vector<ArgumentSpec> argumentSpecs = {
+            ArgumentSpec::variableLengthArguments("name", 0 /* minCount */,  0 /* maxCount */,
+                    "description")
+        };
+        EXPECT_FALSE(ArgumentsParser(std::unordered_map<std::string, OptionSpec>(),
+                std::move(argumentSpecs)).validateSpecs());
+    }
+    {
+        const std::vector<ArgumentSpec> argumentSpecs = {
+            ArgumentSpec::singleArgument("name", "description"),
+            ArgumentSpec::variableLengthArguments("name", 0 /* minCount */,  1 /* maxCount */,
+                    "description")
+        };
+        EXPECT_FALSE(ArgumentsParser(std::unordered_map<std::string, OptionSpec>(),
+                std::move(argumentSpecs)).validateSpecs());
+    }
+    {
+        const std::vector<ArgumentSpec> argumentSpecs = {
+            ArgumentSpec::variableLengthArguments("name", 0 /* minCount */,  1 /* maxCount */,
+                    "description"),
+            ArgumentSpec::singleArgument("name2", "description2")
+        };
+        EXPECT_FALSE(ArgumentsParser(std::unordered_map<std::string, OptionSpec>(),
+                std::move(argumentSpecs)).validateSpecs());
+    }
+}
+
+int initArgv(char *mutableCommandLine, char **argv) {
+    bool readingSeparator = false;
+    int argc = 1;
+    argv[0] = mutableCommandLine;
+    const size_t length = strlen(mutableCommandLine);
+    for (size_t i = 0; i < length; ++i) {
+        if (mutableCommandLine[i] != ' ' && readingSeparator) {
+            readingSeparator = false;
+            argv[argc] = mutableCommandLine + i;
+            ++argc;
+        } else if (mutableCommandLine[i] == ' ' && !readingSeparator) {
+            readingSeparator = true;
+            mutableCommandLine[i] = '\0';
+        }
+    }
+    argv[argc] = nullptr;
+    return argc;
+}
+
+TEST(ArgumentsParserTests, TestParseArguments) {
+    std::unordered_map<std::string, OptionSpec> optionSpecs;
+    optionSpecs["a"] = OptionSpec::switchOption("description");
+    optionSpecs["b"] = OptionSpec::keyValueOption("valueName", "default", "description");
+    const std::vector<ArgumentSpec> argumentSpecs = {
+        ArgumentSpec::singleArgument("arg0", "description"),
+        ArgumentSpec::variableLengthArguments("arg1", 0 /* minCount */,  2 /* maxCount */,
+                "description"),
+    };
+    const ArgumentsParser parser =
+            ArgumentsParser(std::move(optionSpecs), std::move(argumentSpecs));
+
+    {
+        char kMutableCommandLine[1024] = "command arg";
+        char *argv[128] = {};
+        const int argc = initArgv(kMutableCommandLine, argv);
+        ASSERT_EQ(2, argc);
+        const ArgumentsAndOptions argumentsAndOptions = parser.parseArguments(
+                argc, argv, false /* printErrorMessages */);
+        EXPECT_FALSE(argumentsAndOptions.hasOption("a"));
+        EXPECT_EQ("default", argumentsAndOptions.getOptionValue("b"));
+        EXPECT_EQ("arg", argumentsAndOptions.getSingleArgument("arg0"));
+        EXPECT_FALSE(argumentsAndOptions.hasArgument("arg1"));
+    }
+    {
+        char kArgumentBuffer[1024] = "command -a arg arg";
+        char *argv[128] = {};
+        const int argc = initArgv(kArgumentBuffer, argv);
+        ASSERT_EQ(4, argc);
+        const ArgumentsAndOptions argumentsAndOptions = parser.parseArguments(
+                argc, argv, false /* printErrorMessages */);
+        EXPECT_TRUE(argumentsAndOptions.hasOption("a"));
+        EXPECT_EQ("default", argumentsAndOptions.getOptionValue("b"));
+        EXPECT_EQ("arg", argumentsAndOptions.getSingleArgument("arg0"));
+        EXPECT_TRUE(argumentsAndOptions.hasArgument("arg1"));
+        EXPECT_EQ(1u, argumentsAndOptions.getVariableLengthArguments("arg1").size());
+    }
+    {
+        char kArgumentBuffer[1024] = "command -b value arg arg1 arg2";
+        char *argv[128] = {};
+        const int argc = initArgv(kArgumentBuffer, argv);
+        ASSERT_EQ(6, argc);
+        const ArgumentsAndOptions argumentsAndOptions = parser.parseArguments(
+                argc, argv, false /* printErrorMessages */);
+        EXPECT_FALSE(argumentsAndOptions.hasOption("a"));
+        EXPECT_EQ("value", argumentsAndOptions.getOptionValue("b"));
+        EXPECT_EQ("arg", argumentsAndOptions.getSingleArgument("arg0"));
+        const std::vector<std::string> &arg1 =
+                argumentsAndOptions.getVariableLengthArguments("arg1");
+        EXPECT_EQ(2u, arg1.size());
+        EXPECT_EQ("arg1", arg1[0]);
+        EXPECT_EQ("arg2", arg1[1]);
+    }
+}
+
+} // namespace
+} // namespace dicttoolkit
+} // namespace latinime
diff --git a/native/dicttoolkit/tests/utils/command_utils_test.cpp b/native/dicttoolkit/tests/utils/command_utils_test.cpp
new file mode 100644
index 0000000..9d79c9d
--- /dev/null
+++ b/native/dicttoolkit/tests/utils/command_utils_test.cpp
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "utils/command_utils.h"
+
+#include <gtest/gtest.h>
+
+namespace latinime {
+namespace dicttoolkit {
+namespace {
+
+TEST(CommandUtilsTests, TestGetCommandType) {
+    EXPECT_EQ(CommandUtils::getCommandType(""), CommandType::Unknown);
+    EXPECT_EQ(CommandUtils::getCommandType("abc"), CommandType::Unknown);
+    EXPECT_EQ(CommandUtils::getCommandType("info"), CommandType::Info);
+    EXPECT_EQ(CommandUtils::getCommandType("diff"), CommandType::Diff);
+    EXPECT_EQ(CommandUtils::getCommandType("makedict"), CommandType::Makedict);
+    EXPECT_EQ(CommandUtils::getCommandType("header"), CommandType::Header);
+    EXPECT_EQ(CommandUtils::getCommandType("help"), CommandType::Help);
+}
+
+} // namespace
+} // namespace dicttoolkit
+} // namespace latinime
diff --git a/native/dicttoolkit/tests/utils/utf8_utils_test.cpp b/native/dicttoolkit/tests/utils/utf8_utils_test.cpp
new file mode 100644
index 0000000..9c59a8b
--- /dev/null
+++ b/native/dicttoolkit/tests/utils/utf8_utils_test.cpp
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "utils/utf8_utils.h"
+
+#include <gtest/gtest.h>
+
+#include <vector>
+
+#include "utils/int_array_view.h"
+
+namespace latinime {
+namespace dicttoolkit {
+namespace {
+
+TEST(Utf8UtilsTests, TestGetCodePoints) {
+    {
+        const std::vector<int> codePoints = Utf8Utils::getCodePoints("");
+        EXPECT_EQ(0u, codePoints.size());
+    }
+    {
+        const std::vector<int> codePoints = Utf8Utils::getCodePoints("test");
+        EXPECT_EQ(4u, codePoints.size());
+        EXPECT_EQ('t', codePoints[0]);
+        EXPECT_EQ('e', codePoints[1]);
+        EXPECT_EQ('s', codePoints[2]);
+        EXPECT_EQ('t', codePoints[3]);
+    }
+    {
+        const std::vector<int> codePoints = Utf8Utils::getCodePoints(u8"\u3042a\u03C2\u0410");
+        EXPECT_EQ(4u, codePoints.size());
+        EXPECT_EQ(0x3042, codePoints[0]); // HIRAGANA LETTER A
+        EXPECT_EQ('a', codePoints[1]);
+        EXPECT_EQ(0x03C2, codePoints[2]); // CYRILLIC CAPITAL LETTER A
+        EXPECT_EQ(0x0410, codePoints[3]); // GREEK SMALL LETTER FINAL SIGMA
+    }
+    {
+        const std::vector<int> codePoints = Utf8Utils::getCodePoints(u8"\U0001F36A?\U0001F752");
+        EXPECT_EQ(3u, codePoints.size());
+        EXPECT_EQ(0x1F36A, codePoints[0]); // COOKIE
+        EXPECT_EQ('?', codePoints[1]);
+        EXPECT_EQ(0x1F752, codePoints[2]); // ALCHEMICAL SYMBOL FOR STARRED TRIDENT
+    }
+
+    // Redundant UTF-8 sequences must be rejected.
+    EXPECT_TRUE(Utf8Utils::getCodePoints("\xC0\xAF").empty());
+    EXPECT_TRUE(Utf8Utils::getCodePoints("\xE0\x80\xAF").empty());
+    EXPECT_TRUE(Utf8Utils::getCodePoints("\xF0\x80\x80\xAF").empty());
+}
+
+TEST(Utf8UtilsTests, TestGetUtf8String) {
+    {
+        const std::vector<int> codePoints = {'t', 'e', 's', 't'};
+        EXPECT_EQ("test", Utf8Utils::getUtf8String(CodePointArrayView(codePoints)));
+    }
+    {
+        const std::vector<int> codePoints = {
+                0x00E0 /* LATIN SMALL LETTER A WITH GRAVE */,
+                0x03C2 /* GREEK SMALL LETTER FINAL SIGMA */,
+                0x0430 /* CYRILLIC SMALL LETTER A */,
+                0x3042 /* HIRAGANA LETTER A */,
+                0x1F36A /* COOKIE */,
+                0x1F752 /* ALCHEMICAL SYMBOL FOR STARRED TRIDENT */
+        };
+        EXPECT_EQ(u8"\u00E0\u03C2\u0430\u3042\U0001F36A\U0001F752",
+                Utf8Utils::getUtf8String(CodePointArrayView(codePoints)));
+    }
+}
+
+} // namespace
+} // namespace dicttoolkit
+} // namespace latinime
diff --git a/native/jni/Android.mk b/native/jni/Android.mk
index 3a2073f..6003a6f 100644
--- a/native/jni/Android.mk
+++ b/native/jni/Android.mk
@@ -48,7 +48,7 @@
 
 ifeq ($(FLAG_DO_PROFILE), true)
     $(warning Making profiling version of native library)
-    LOCAL_CFLAGS += -DFLAG_DO_PROFILE -funwind-tables -fno-inline
+    LOCAL_CFLAGS += -DFLAG_DO_PROFILE -funwind-tables
 else # FLAG_DO_PROFILE
 ifeq ($(FLAG_DBG), true)
     $(warning Making debug version of native library)
diff --git a/native/jni/HostUnitTests.mk b/native/jni/HostUnitTests.mk
index 6967d9b..e30d50a 100644
--- a/native/jni/HostUnitTests.mk
+++ b/native/jni/HostUnitTests.mk
@@ -12,6 +12,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+# Host build is never supported in unbundled (NDK/tapas) build
+ifeq (,$(TARGET_BUILD_APPS))
+
 # HACK: Temporarily disable host tool build on Mac until the build system is ready for C++11.
 LATINIME_HOST_OSNAME := $(shell uname -s)
 ifneq ($(LATINIME_HOST_OSNAME), Darwin) # TODO: Remove this
@@ -26,8 +29,10 @@
 #################### Host library for unit test
 # TODO: Remove -std=c++11 once it is set by default on host build.
 LATIN_IME_SRC_DIR := src
+LOCAL_ADDRESS_SANITIZER := true
 LOCAL_CFLAGS += -std=c++11 -Wno-unused-parameter -Wno-unused-function
 LOCAL_CLANG := true
+LOCAL_CXX_STL := libc++
 LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(LATIN_IME_SRC_DIR)
 LOCAL_MODULE := liblatinime_host_static_for_unittests
 LOCAL_MODULE_TAGS := optional
@@ -37,9 +42,11 @@
 #################### Host native tests
 include $(CLEAR_VARS)
 LATIN_IME_TEST_SRC_DIR := tests
+LOCAL_ADDRESS_SANITIZER := true
 # TODO: Remove -std=c++11 once it is set by default on host build.
 LOCAL_CFLAGS += -std=c++11 -Wno-unused-parameter -Wno-unused-function
 LOCAL_CLANG := true
+LOCAL_CXX_STL := libc++
 LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(LATIN_IME_SRC_DIR)
 LOCAL_MODULE := liblatinime_host_unittests
 LOCAL_MODULE_TAGS := tests
@@ -47,10 +54,13 @@
 LOCAL_STATIC_LIBRARIES += liblatinime_host_static_for_unittests
 include $(BUILD_HOST_NATIVE_TEST)
 
+include $(LOCAL_PATH)/CleanupNativeFileList.mk
+
 endif # Darwin - TODO: Remove this
 
+endif # TARGET_BUILD_APPS
+
 #################### Clean up the tmp vars
 LATINIME_HOST_OSNAME :=
 LATIN_IME_SRC_DIR :=
 LATIN_IME_TEST_SRC_DIR :=
-include $(LOCAL_PATH)/CleanupNativeFileList.mk
diff --git a/native/jni/NativeFileList.mk b/native/jni/NativeFileList.mk
index 7a732a5..d8b69bf 100644
--- a/native/jni/NativeFileList.mk
+++ b/native/jni/NativeFileList.mk
@@ -20,6 +20,52 @@
     jni_common.cpp
 
 LATIN_IME_CORE_SRC_FILES := \
+    $(addprefix dictionary/header/, \
+        header_policy.cpp \
+        header_read_write_utils.cpp) \
+    dictionary/property/ngram_context.cpp \
+    dictionary/structure/dictionary_structure_with_buffer_policy_factory.cpp \
+    $(addprefix dictionary/structure/pt_common/, \
+        bigram/bigram_list_read_write_utils.cpp \
+        dynamic_pt_gc_event_listeners.cpp \
+        dynamic_pt_reading_helper.cpp \
+        dynamic_pt_reading_utils.cpp \
+        dynamic_pt_updating_helper.cpp \
+        dynamic_pt_writing_utils.cpp \
+        patricia_trie_reading_utils.cpp \
+        shortcut/shortcut_list_reading_utils.cpp) \
+    $(addprefix dictionary/structure/v2/, \
+        patricia_trie_policy.cpp \
+        ver2_patricia_trie_node_reader.cpp \
+        ver2_pt_node_array_reader.cpp) \
+    $(addprefix dictionary/structure/v4/, \
+        ver4_dict_buffers.cpp \
+        ver4_dict_constants.cpp \
+        ver4_patricia_trie_node_reader.cpp \
+        ver4_patricia_trie_node_writer.cpp \
+        ver4_patricia_trie_policy.cpp \
+        ver4_patricia_trie_reading_utils.cpp \
+        ver4_patricia_trie_writing_helper.cpp \
+        ver4_pt_node_array_reader.cpp) \
+    $(addprefix dictionary/structure/v4/content/, \
+        dynamic_language_model_probability_utils.cpp \
+        language_model_dict_content.cpp \
+        language_model_dict_content_global_counters.cpp \
+        shortcut_dict_content.cpp \
+        sparse_table_dict_content.cpp \
+        terminal_position_lookup_table.cpp) \
+    $(addprefix dictionary/utils/, \
+        buffer_with_extendable_buffer.cpp \
+        byte_array_utils.cpp \
+        dict_file_writing_utils.cpp \
+        file_utils.cpp \
+        forgetting_curve_utils.cpp \
+        format_utils.cpp \
+        mmapped_buffer.cpp \
+        multi_bigram_map.cpp \
+        probability_utils.cpp \
+        sparse_table.cpp \
+        trie_map.cpp ) \
     suggest/core/suggest.cpp \
     $(addprefix suggest/core/dicnode/, \
         dic_node.cpp \
@@ -29,9 +75,7 @@
         dictionary.cpp \
         dictionary_utils.cpp \
         digraph_utils.cpp \
-        error_type_utils.cpp \
-        multi_bigram_map.cpp \
-        property/word_property.cpp) \
+        error_type_utils.cpp ) \
     $(addprefix suggest/core/layout/, \
         additional_proximity_chars.cpp \
         proximity_info.cpp \
@@ -43,49 +87,6 @@
     $(addprefix suggest/core/result/, \
         suggestion_results.cpp \
         suggestions_output_utils.cpp) \
-    $(addprefix suggest/policyimpl/dictionary/, \
-        header/header_policy.cpp \
-        header/header_read_write_utils.cpp \
-        structure/dictionary_structure_with_buffer_policy_factory.cpp) \
-    $(addprefix suggest/policyimpl/dictionary/structure/pt_common/, \
-        bigram/bigram_list_read_write_utils.cpp \
-        dynamic_pt_gc_event_listeners.cpp \
-        dynamic_pt_reading_helper.cpp \
-        dynamic_pt_reading_utils.cpp \
-        dynamic_pt_updating_helper.cpp \
-        dynamic_pt_writing_utils.cpp \
-        patricia_trie_reading_utils.cpp \
-        shortcut/shortcut_list_reading_utils.cpp ) \
-    $(addprefix suggest/policyimpl/dictionary/structure/v2/, \
-        patricia_trie_policy.cpp \
-        ver2_patricia_trie_node_reader.cpp \
-        ver2_pt_node_array_reader.cpp) \
-    $(addprefix suggest/policyimpl/dictionary/structure/v4/, \
-        bigram/ver4_bigram_list_policy.cpp \
-        ver4_dict_buffers.cpp \
-        ver4_dict_constants.cpp \
-        ver4_patricia_trie_node_reader.cpp \
-        ver4_patricia_trie_node_writer.cpp \
-        ver4_patricia_trie_policy.cpp \
-        ver4_patricia_trie_reading_utils.cpp \
-        ver4_patricia_trie_writing_helper.cpp \
-        ver4_pt_node_array_reader.cpp) \
-    $(addprefix suggest/policyimpl/dictionary/structure/v4/content/, \
-        bigram_dict_content.cpp \
-        language_model_dict_content.cpp \
-        shortcut_dict_content.cpp \
-        sparse_table_dict_content.cpp \
-        terminal_position_lookup_table.cpp) \
-    $(addprefix suggest/policyimpl/dictionary/utils/, \
-        buffer_with_extendable_buffer.cpp \
-        byte_array_utils.cpp \
-        dict_file_writing_utils.cpp \
-        file_utils.cpp \
-        forgetting_curve_utils.cpp \
-        format_utils.cpp \
-        mmapped_buffer.cpp \
-        sparse_table.cpp \
-        trie_map.cpp ) \
     suggest/policyimpl/gesture/gesture_suggest_policy_factory.cpp \
     $(addprefix suggest/policyimpl/typing/, \
         scoring_params.cpp \
@@ -101,7 +102,7 @@
         time_keeper.cpp)
 
 LATIN_IME_CORE_SRC_FILES_BACKWARD_V402 := \
-    $(addprefix suggest/policyimpl/dictionary/structure/backward/v402/, \
+    $(addprefix dictionary/structure/backward/v402/, \
         ver4_dict_buffers.cpp \
         ver4_dict_constants.cpp \
         ver4_patricia_trie_node_reader.cpp \
@@ -110,24 +111,36 @@
         ver4_patricia_trie_reading_utils.cpp \
         ver4_patricia_trie_writing_helper.cpp \
         ver4_pt_node_array_reader.cpp) \
-    $(addprefix suggest/policyimpl/dictionary/structure/backward/v402/content/, \
+    $(addprefix dictionary/structure/backward/v402/content/, \
         bigram_dict_content.cpp \
         probability_dict_content.cpp \
         shortcut_dict_content.cpp \
         sparse_table_dict_content.cpp \
         terminal_position_lookup_table.cpp) \
-    $(addprefix suggest/policyimpl/dictionary/structure/backward/v402/bigram/, \
+    $(addprefix dictionary/structure/backward/v402/bigram/, \
         ver4_bigram_list_policy.cpp)
 
 LATIN_IME_CORE_SRC_FILES += $(LATIN_IME_CORE_SRC_FILES_BACKWARD_V402)
 
 LATIN_IME_CORE_TEST_FILES := \
     defines_test.cpp \
+    dictionary/header/header_read_write_utils_test.cpp \
+    dictionary/structure/v4/content/language_model_dict_content_test.cpp \
+    dictionary/structure/v4/content/language_model_dict_content_global_counters_test.cpp \
+    dictionary/structure/v4/content/probability_entry_test.cpp \
+    dictionary/structure/v4/content/terminal_position_lookup_table_test.cpp \
+    dictionary/utils/bloom_filter_test.cpp \
+    dictionary/utils/buffer_with_extendable_buffer_test.cpp \
+    dictionary/utils/byte_array_utils_test.cpp \
+    dictionary/utils/format_utils_test.cpp \
+    dictionary/utils/probability_utils_test.cpp \
+    dictionary/utils/sparse_table_test.cpp \
+    dictionary/utils/trie_map_test.cpp \
+    suggest/core/dicnode/dic_node_pool_test.cpp \
+    suggest/core/layout/geometry_utils_test.cpp \
     suggest/core/layout/normal_distribution_2d_test.cpp \
-    suggest/core/dictionary/bloom_filter_test.cpp \
-    suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content_test.cpp \
-    suggest/policyimpl/dictionary/structure/v4/content/probability_entry_test.cpp \
-    suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer_test.cpp \
-    suggest/policyimpl/dictionary/utils/trie_map_test.cpp \
+    suggest/policyimpl/utils/damerau_levenshtein_edit_distance_policy_test.cpp \
     utils/autocorrection_threshold_utils_test.cpp \
-    utils/int_array_view_test.cpp
+    utils/char_utils_test.cpp \
+    utils/int_array_view_test.cpp \
+    utils/time_keeper_test.cpp
diff --git a/native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp b/native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp
index f88d37e..80419b3 100644
--- a/native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp
+++ b/native/jni/com_android_inputmethod_keyboard_ProximityInfo.cpp
@@ -25,13 +25,13 @@
 
 namespace latinime {
 
-static jlong latinime_Keyboard_setProximityInfo(JNIEnv *env, jclass clazz, jstring localeJStr,
+static jlong latinime_Keyboard_setProximityInfo(JNIEnv *env, jclass clazz,
         jint displayWidth, jint displayHeight, jint gridWidth, jint gridHeight,
         jint mostCommonkeyWidth, jint mostCommonkeyHeight, jintArray proximityChars, jint keyCount,
         jintArray keyXCoordinates, jintArray keyYCoordinates, jintArray keyWidths,
         jintArray keyHeights, jintArray keyCharCodes, jfloatArray sweetSpotCenterXs,
         jfloatArray sweetSpotCenterYs, jfloatArray sweetSpotRadii) {
-    ProximityInfo *proximityInfo = new ProximityInfo(env, localeJStr, displayWidth, displayHeight,
+    ProximityInfo *proximityInfo = new ProximityInfo(env, displayWidth, displayHeight,
             gridWidth, gridHeight, mostCommonkeyWidth, mostCommonkeyHeight, proximityChars,
             keyCount, keyXCoordinates, keyYCoordinates, keyWidths, keyHeights, keyCharCodes,
             sweetSpotCenterXs, sweetSpotCenterYs, sweetSpotRadii);
@@ -46,7 +46,7 @@
 static const JNINativeMethod sMethods[] = {
     {
         const_cast<char *>("setProximityInfoNative"),
-        const_cast<char *>("(Ljava/lang/String;IIIIII[II[I[I[I[I[I[F[F[F)J"),
+        const_cast<char *>("(IIIIII[II[I[I[I[I[I[F[F[F)J"),
         reinterpret_cast<void *>(latinime_Keyboard_setProximityInfo)
     },
     {
diff --git a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
index 22ad2d0..3341e11 100644
--- a/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
+++ b/native/jni/com_android_inputmethod_latin_BinaryDictionary.cpp
@@ -22,18 +22,20 @@
 #include <vector>
 
 #include "defines.h"
+#include "dictionary/property/unigram_property.h"
+#include "dictionary/property/ngram_context.h"
+#include "dictionary/property/word_property.h"
+#include "dictionary/structure/dictionary_structure_with_buffer_policy_factory.h"
 #include "jni.h"
 #include "jni_common.h"
 #include "suggest/core/dictionary/dictionary.h"
-#include "suggest/core/dictionary/property/unigram_property.h"
-#include "suggest/core/dictionary/property/word_property.h"
 #include "suggest/core/result/suggestion_results.h"
-#include "suggest/core/session/prev_words_info.h"
 #include "suggest/core/suggest_options.h"
-#include "suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.h"
 #include "utils/char_utils.h"
+#include "utils/int_array_view.h"
 #include "utils/jni_data_utils.h"
 #include "utils/log_utils.h"
+#include "utils/profiler.h"
 #include "utils/time_keeper.h"
 
 namespace latinime {
@@ -42,8 +44,8 @@
 
 static jlong latinime_BinaryDictionary_open(JNIEnv *env, jclass clazz, jstring sourceDir,
         jlong dictOffset, jlong dictSize, jboolean isUpdatable) {
-    PROF_OPEN;
-    PROF_START(66);
+    PROF_INIT;
+    PROF_TIMER_START(66);
     const jsize sourceDirUtf8Length = env->GetStringUTFLength(sourceDir);
     if (sourceDirUtf8Length <= 0) {
         AKLOGE("DICT: Can't get sourceDir string");
@@ -62,8 +64,7 @@
 
     Dictionary *const dictionary =
             new Dictionary(env, std::move(dictionaryStructureWithBufferPolicy));
-    PROF_END(66);
-    PROF_CLOSE;
+    PROF_TIMER_END(66);
     return reinterpret_cast<jlong>(dictionary);
 }
 
@@ -179,9 +180,10 @@
         jintArray yCoordinatesArray, jintArray timesArray, jintArray pointerIdsArray,
         jintArray inputCodePointsArray, jint inputSize, jintArray suggestOptions,
         jobjectArray prevWordCodePointArrays, jbooleanArray isBeginningOfSentenceArray,
-        jintArray outSuggestionCount, jintArray outCodePointsArray, jintArray outScoresArray,
-        jintArray outSpaceIndicesArray, jintArray outTypesArray,
-        jintArray outAutoCommitFirstWordConfidenceArray, jfloatArray inOutLanguageWeight) {
+        jint prevWordCount, jintArray outSuggestionCount, jintArray outCodePointsArray,
+        jintArray outScoresArray, jintArray outSpaceIndicesArray, jintArray outTypesArray,
+        jintArray outAutoCommitFirstWordConfidenceArray,
+        jfloatArray inOutWeightOfLangModelVsSpatialModel) {
     Dictionary *dictionary = reinterpret_cast<Dictionary *>(dict);
     // Assign 0 to outSuggestionCount here in case of returning earlier in this method.
     JniDataUtils::putIntToArray(env, outSuggestionCount, 0 /* index */, 0);
@@ -236,42 +238,47 @@
         ASSERT(false);
         return;
     }
-    float languageWeight;
-    env->GetFloatArrayRegion(inOutLanguageWeight, 0, 1 /* len */, &languageWeight);
+    float weightOfLangModelVsSpatialModel;
+    env->GetFloatArrayRegion(inOutWeightOfLangModelVsSpatialModel, 0, 1 /* len */,
+            &weightOfLangModelVsSpatialModel);
     SuggestionResults suggestionResults(MAX_RESULTS);
-    const PrevWordsInfo prevWordsInfo = JniDataUtils::constructPrevWordsInfo(env,
-            prevWordCodePointArrays, isBeginningOfSentenceArray);
+    const NgramContext ngramContext = JniDataUtils::constructNgramContext(env,
+            prevWordCodePointArrays, isBeginningOfSentenceArray, prevWordCount);
     if (givenSuggestOptions.isGesture() || inputSize > 0) {
         // TODO: Use SuggestionResults to return suggestions.
         dictionary->getSuggestions(pInfo, traverseSession, xCoordinates, yCoordinates,
-                times, pointerIds, inputCodePoints, inputSize, &prevWordsInfo,
-                &givenSuggestOptions, languageWeight, &suggestionResults);
+                times, pointerIds, inputCodePoints, inputSize, &ngramContext,
+                &givenSuggestOptions, weightOfLangModelVsSpatialModel, &suggestionResults);
     } else {
-        dictionary->getPredictions(&prevWordsInfo, &suggestionResults);
+        dictionary->getPredictions(&ngramContext, &suggestionResults);
+    }
+    if (DEBUG_DICT) {
+        suggestionResults.dumpSuggestions();
     }
     suggestionResults.outputSuggestions(env, outSuggestionCount, outCodePointsArray,
             outScoresArray, outSpaceIndicesArray, outTypesArray,
-            outAutoCommitFirstWordConfidenceArray, inOutLanguageWeight);
+            outAutoCommitFirstWordConfidenceArray, inOutWeightOfLangModelVsSpatialModel);
 }
 
 static jint latinime_BinaryDictionary_getProbability(JNIEnv *env, jclass clazz, jlong dict,
         jintArray word) {
     Dictionary *dictionary = reinterpret_cast<Dictionary *>(dict);
     if (!dictionary) return NOT_A_PROBABILITY;
-    const jsize wordLength = env->GetArrayLength(word);
-    int codePoints[wordLength];
-    env->GetIntArrayRegion(word, 0, wordLength, codePoints);
-    return dictionary->getProbability(codePoints, wordLength);
+    const jsize codePointCount = env->GetArrayLength(word);
+    int codePoints[codePointCount];
+    env->GetIntArrayRegion(word, 0, codePointCount, codePoints);
+    return dictionary->getProbability(CodePointArrayView(codePoints, codePointCount));
 }
 
 static jint latinime_BinaryDictionary_getMaxProbabilityOfExactMatches(
         JNIEnv *env, jclass clazz, jlong dict, jintArray word) {
     Dictionary *dictionary = reinterpret_cast<Dictionary *>(dict);
     if (!dictionary) return NOT_A_PROBABILITY;
-    const jsize wordLength = env->GetArrayLength(word);
-    int codePoints[wordLength];
-    env->GetIntArrayRegion(word, 0, wordLength, codePoints);
-    return dictionary->getMaxProbabilityOfExactMatches(codePoints, wordLength);
+    const jsize codePointCount = env->GetArrayLength(word);
+    int codePoints[codePointCount];
+    env->GetIntArrayRegion(word, 0, codePointCount, codePoints);
+    return dictionary->getMaxProbabilityOfExactMatches(
+            CodePointArrayView(codePoints, codePointCount));
 }
 
 static jint latinime_BinaryDictionary_getNgramProbability(JNIEnv *env, jclass clazz,
@@ -282,9 +289,11 @@
     const jsize wordLength = env->GetArrayLength(word);
     int wordCodePoints[wordLength];
     env->GetIntArrayRegion(word, 0, wordLength, wordCodePoints);
-    const PrevWordsInfo prevWordsInfo = JniDataUtils::constructPrevWordsInfo(env,
-            prevWordCodePointArrays, isBeginningOfSentenceArray);
-    return dictionary->getNgramProbability(&prevWordsInfo, wordCodePoints, wordLength);
+    const NgramContext ngramContext = JniDataUtils::constructNgramContext(env,
+            prevWordCodePointArrays, isBeginningOfSentenceArray,
+            env->GetArrayLength(prevWordCodePointArrays));
+    return dictionary->getNgramProbability(&ngramContext,
+            CodePointArrayView(wordCodePoints, wordLength));
 }
 
 // Method to iterate all words in the dictionary for makedict.
@@ -318,8 +327,9 @@
 
 static void latinime_BinaryDictionary_getWordProperty(JNIEnv *env, jclass clazz,
         jlong dict, jintArray word, jboolean isBeginningOfSentence, jintArray outCodePoints,
-        jbooleanArray outFlags, jintArray outProbabilityInfo, jobject outBigramTargets,
-        jobject outBigramProbabilityInfo, jobject outShortcutTargets,
+        jbooleanArray outFlags, jintArray outProbabilityInfo, jobject outNgramPrevWordsArray,
+        jobject outNgramPrevWordIsBeginningOfSentenceArray, jobject outNgramTargets,
+        jobject outNgramProbabilityInfo, jobject outShortcutTargets,
         jobject outShortcutProbabilities) {
     Dictionary *dictionary = reinterpret_cast<Dictionary *>(dict);
     if (!dictionary) return;
@@ -339,15 +349,16 @@
             return;
         }
     }
-    const WordProperty wordProperty = dictionary->getWordProperty(wordCodePoints, codePointCount);
-    wordProperty.outputProperties(env, outCodePoints, outFlags, outProbabilityInfo,
-            outBigramTargets, outBigramProbabilityInfo, outShortcutTargets,
-            outShortcutProbabilities);
+    const WordProperty wordProperty = dictionary->getWordProperty(
+            CodePointArrayView(wordCodePoints, codePointCount));
+    JniDataUtils::outputWordProperty(env, wordProperty, outCodePoints, outFlags, outProbabilityInfo,
+            outNgramPrevWordsArray, outNgramPrevWordIsBeginningOfSentenceArray,
+            outNgramTargets, outNgramProbabilityInfo, outShortcutTargets, outShortcutProbabilities);
 }
 
 static bool latinime_BinaryDictionary_addUnigramEntry(JNIEnv *env, jclass clazz, jlong dict,
         jintArray word, jint probability, jintArray shortcutTarget, jint shortcutProbability,
-        jboolean isBeginningOfSentence, jboolean isNotAWord, jboolean isBlacklisted,
+        jboolean isBeginningOfSentence, jboolean isNotAWord, jboolean isPossiblyOffensive,
         jint timestamp) {
     Dictionary *dictionary = reinterpret_cast<Dictionary *>(dict);
     if (!dictionary) {
@@ -357,15 +368,19 @@
     int codePoints[codePointCount];
     env->GetIntArrayRegion(word, 0, codePointCount, codePoints);
     std::vector<UnigramProperty::ShortcutProperty> shortcuts;
-    std::vector<int> shortcutTargetCodePoints;
-    JniDataUtils::jintarrayToVector(env, shortcutTarget, &shortcutTargetCodePoints);
-    if (!shortcutTargetCodePoints.empty()) {
-        shortcuts.emplace_back(&shortcutTargetCodePoints, shortcutProbability);
+    {
+        std::vector<int> shortcutTargetCodePoints;
+        JniDataUtils::jintarrayToVector(env, shortcutTarget, &shortcutTargetCodePoints);
+        if (!shortcutTargetCodePoints.empty()) {
+            shortcuts.emplace_back(std::move(shortcutTargetCodePoints), shortcutProbability);
+        }
     }
     // Use 1 for count to indicate the word has inputted.
     const UnigramProperty unigramProperty(isBeginningOfSentence, isNotAWord,
-            isBlacklisted, probability, timestamp, 0 /* level */, 1 /* count */, &shortcuts);
-    return dictionary->addUnigramEntry(codePoints, codePointCount, &unigramProperty);
+            isPossiblyOffensive, probability, HistoricalInfo(timestamp, 0 /* level */,
+            1 /* count */), std::move(shortcuts));
+    return dictionary->addUnigramEntry(CodePointArrayView(codePoints, codePointCount),
+            &unigramProperty);
 }
 
 static bool latinime_BinaryDictionary_removeUnigramEntry(JNIEnv *env, jclass clazz, jlong dict,
@@ -377,7 +392,7 @@
     jsize codePointCount = env->GetArrayLength(word);
     int codePoints[codePointCount];
     env->GetIntArrayRegion(word, 0, codePointCount, codePoints);
-    return dictionary->removeUnigramEntry(codePoints, codePointCount);
+    return dictionary->removeUnigramEntry(CodePointArrayView(codePoints, codePointCount));
 }
 
 static bool latinime_BinaryDictionary_addNgramEntry(JNIEnv *env, jclass clazz, jlong dict,
@@ -387,17 +402,17 @@
     if (!dictionary) {
         return false;
     }
-    const PrevWordsInfo prevWordsInfo = JniDataUtils::constructPrevWordsInfo(env,
-            prevWordCodePointArrays, isBeginningOfSentenceArray);
+    const NgramContext ngramContext = JniDataUtils::constructNgramContext(env,
+            prevWordCodePointArrays, isBeginningOfSentenceArray,
+            env->GetArrayLength(prevWordCodePointArrays));
     jsize wordLength = env->GetArrayLength(word);
     int wordCodePoints[wordLength];
     env->GetIntArrayRegion(word, 0, wordLength, wordCodePoints);
-    const std::vector<int> bigramTargetCodePoints(
-            wordCodePoints, wordCodePoints + wordLength);
-    // Use 1 for count to indicate the bigram has inputted.
-    const BigramProperty bigramProperty(&bigramTargetCodePoints, probability,
-            timestamp, 0 /* level */, 1 /* count */);
-    return dictionary->addNgramEntry(&prevWordsInfo, &bigramProperty);
+    // Use 1 for count to indicate the ngram has inputted.
+    const NgramProperty ngramProperty(ngramContext,
+            CodePointArrayView(wordCodePoints, wordLength).toVector(),
+            probability, HistoricalInfo(timestamp, 0 /* level */, 1 /* count */));
+    return dictionary->addNgramEntry(&ngramProperty);
 }
 
 static bool latinime_BinaryDictionary_removeNgramEntry(JNIEnv *env, jclass clazz, jlong dict,
@@ -407,103 +422,90 @@
     if (!dictionary) {
         return false;
     }
-    const PrevWordsInfo prevWordsInfo = JniDataUtils::constructPrevWordsInfo(env,
-            prevWordCodePointArrays, isBeginningOfSentenceArray);
-    jsize wordLength = env->GetArrayLength(word);
-    int wordCodePoints[wordLength];
-    env->GetIntArrayRegion(word, 0, wordLength, wordCodePoints);
-    return dictionary->removeNgramEntry(&prevWordsInfo, wordCodePoints, wordLength);
+    const NgramContext ngramContext = JniDataUtils::constructNgramContext(env,
+            prevWordCodePointArrays, isBeginningOfSentenceArray,
+            env->GetArrayLength(prevWordCodePointArrays));
+    jsize codePointCount = env->GetArrayLength(word);
+    int wordCodePoints[codePointCount];
+    env->GetIntArrayRegion(word, 0, codePointCount, wordCodePoints);
+    return dictionary->removeNgramEntry(&ngramContext,
+            CodePointArrayView(wordCodePoints, codePointCount));
 }
 
-// Returns how many language model params are processed.
-static int latinime_BinaryDictionary_addMultipleDictionaryEntries(JNIEnv *env, jclass clazz,
-        jlong dict, jobjectArray languageModelParams, jint startIndex) {
+static bool latinime_BinaryDictionary_updateEntriesForWordWithNgramContext(JNIEnv *env,
+        jclass clazz, jlong dict, jobjectArray prevWordCodePointArrays,
+        jbooleanArray isBeginningOfSentenceArray, jintArray word, jboolean isValidWord, jint count,
+        jint timestamp) {
+    Dictionary *dictionary = reinterpret_cast<Dictionary *>(dict);
+    if (!dictionary) {
+        return false;
+    }
+    const NgramContext ngramContext = JniDataUtils::constructNgramContext(env,
+            prevWordCodePointArrays, isBeginningOfSentenceArray,
+            env->GetArrayLength(prevWordCodePointArrays));
+    jsize codePointCount = env->GetArrayLength(word);
+    int wordCodePoints[codePointCount];
+    env->GetIntArrayRegion(word, 0, codePointCount, wordCodePoints);
+    const HistoricalInfo historicalInfo(timestamp, 0 /* level */, count);
+    return dictionary->updateEntriesForWordWithNgramContext(&ngramContext,
+            CodePointArrayView(wordCodePoints, codePointCount), isValidWord == JNI_TRUE,
+            historicalInfo);
+}
+
+// Returns how many input events are processed.
+static int latinime_BinaryDictionary_updateEntriesForInputEvents(JNIEnv *env, jclass clazz,
+        jlong dict, jobjectArray inputEvents, jint startIndex) {
     Dictionary *dictionary = reinterpret_cast<Dictionary *>(dict);
     if (!dictionary) {
         return 0;
     }
-    jsize languageModelParamCount = env->GetArrayLength(languageModelParams);
-    if (languageModelParamCount == 0 || startIndex >= languageModelParamCount) {
+    jsize inputEventCount = env->GetArrayLength(inputEvents);
+    if (inputEventCount == 0 || startIndex >= inputEventCount) {
         return 0;
     }
-    jobject languageModelParam = env->GetObjectArrayElement(languageModelParams, 0);
-    jclass languageModelParamClass = env->GetObjectClass(languageModelParam);
-    env->DeleteLocalRef(languageModelParam);
+    jobject inputEvent = env->GetObjectArrayElement(inputEvents, 0);
+    jclass wordInputEventClass = env->GetObjectClass(inputEvent);
+    env->DeleteLocalRef(inputEvent);
 
-    jfieldID word0FieldId = env->GetFieldID(languageModelParamClass, "mWord0", "[I");
-    jfieldID word1FieldId = env->GetFieldID(languageModelParamClass, "mWord1", "[I");
-    jfieldID unigramProbabilityFieldId =
-            env->GetFieldID(languageModelParamClass, "mUnigramProbability", "I");
-    jfieldID bigramProbabilityFieldId =
-            env->GetFieldID(languageModelParamClass, "mBigramProbability", "I");
-    jfieldID timestampFieldId =
-            env->GetFieldID(languageModelParamClass, "mTimestamp", "I");
-    jfieldID shortcutTargetFieldId =
-            env->GetFieldID(languageModelParamClass, "mShortcutTarget", "[I");
-    jfieldID shortcutProbabilityFieldId =
-            env->GetFieldID(languageModelParamClass, "mShortcutProbability", "I");
-    jfieldID isNotAWordFieldId =
-            env->GetFieldID(languageModelParamClass, "mIsNotAWord", "Z");
-    jfieldID isBlacklistedFieldId =
-            env->GetFieldID(languageModelParamClass, "mIsBlacklisted", "Z");
-    env->DeleteLocalRef(languageModelParamClass);
+    jfieldID targetWordFieldId = env->GetFieldID(wordInputEventClass, "mTargetWord", "[I");
+    jfieldID prevWordCountFieldId = env->GetFieldID(wordInputEventClass, "mPrevWordsCount", "I");
+    jfieldID prevWordArrayFieldId = env->GetFieldID(wordInputEventClass, "mPrevWordArray", "[[I");
+    jfieldID isPrevWordBoSArrayFieldId =
+            env->GetFieldID(wordInputEventClass, "mIsPrevWordBeginningOfSentenceArray", "[Z");
+    jfieldID isValidFieldId = env->GetFieldID(wordInputEventClass, "mIsValid", "Z");
+    jfieldID timestampFieldId = env->GetFieldID(wordInputEventClass, "mTimestamp", "I");
+    env->DeleteLocalRef(wordInputEventClass);
 
-    for (int i = startIndex; i < languageModelParamCount; ++i) {
-        jobject languageModelParam = env->GetObjectArrayElement(languageModelParams, i);
-        // languageModelParam is a set of params for word1; thus, word1 cannot be null. On the
-        // other hand, word0 can be null and then it means the set of params doesn't contain bigram
-        // information.
-        jintArray word0 = static_cast<jintArray>(
-                env->GetObjectField(languageModelParam, word0FieldId));
-        jsize word0Length = word0 ? env->GetArrayLength(word0) : 0;
-        int word0CodePoints[word0Length];
-        if (word0) {
-            env->GetIntArrayRegion(word0, 0, word0Length, word0CodePoints);
-        }
-        jintArray word1 = static_cast<jintArray>(
-                env->GetObjectField(languageModelParam, word1FieldId));
-        jsize word1Length = env->GetArrayLength(word1);
-        int word1CodePoints[word1Length];
-        env->GetIntArrayRegion(word1, 0, word1Length, word1CodePoints);
-        jint unigramProbability = env->GetIntField(languageModelParam, unigramProbabilityFieldId);
-        jint timestamp = env->GetIntField(languageModelParam, timestampFieldId);
-        jboolean isNotAWord = env->GetBooleanField(languageModelParam, isNotAWordFieldId);
-        jboolean isBlacklisted = env->GetBooleanField(languageModelParam, isBlacklistedFieldId);
-        jintArray shortcutTarget = static_cast<jintArray>(
-                env->GetObjectField(languageModelParam, shortcutTargetFieldId));
-        std::vector<UnigramProperty::ShortcutProperty> shortcuts;
-        std::vector<int> shortcutTargetCodePoints;
-        JniDataUtils::jintarrayToVector(env, shortcutTarget, &shortcutTargetCodePoints);
-        if (!shortcutTargetCodePoints.empty()) {
-            jint shortcutProbability =
-                    env->GetIntField(languageModelParam, shortcutProbabilityFieldId);
-            shortcuts.emplace_back(&shortcutTargetCodePoints, shortcutProbability);
-        }
+    for (int i = startIndex; i < inputEventCount; ++i) {
+        jobject inputEvent = env->GetObjectArrayElement(inputEvents, i);
+        jintArray targetWord = static_cast<jintArray>(
+                env->GetObjectField(inputEvent, targetWordFieldId));
+        jsize wordLength = env->GetArrayLength(targetWord);
+        int wordCodePoints[wordLength];
+        env->GetIntArrayRegion(targetWord, 0, wordLength, wordCodePoints);
+        env->DeleteLocalRef(targetWord);
+
+        jint prevWordCount = env->GetIntField(inputEvent, prevWordCountFieldId);
+        jobjectArray prevWordArray =
+                static_cast<jobjectArray>(env->GetObjectField(inputEvent, prevWordArrayFieldId));
+        jbooleanArray isPrevWordBeginningOfSentenceArray = static_cast<jbooleanArray>(
+                env->GetObjectField(inputEvent, isPrevWordBoSArrayFieldId));
+        jboolean isValid = env->GetBooleanField(inputEvent, isValidFieldId);
+        jint timestamp = env->GetIntField(inputEvent, timestampFieldId);
+        const NgramContext ngramContext = JniDataUtils::constructNgramContext(env,
+                prevWordArray, isPrevWordBeginningOfSentenceArray, prevWordCount);
         // Use 1 for count to indicate the word has inputted.
-        const UnigramProperty unigramProperty(false /* isBeginningOfSentence */, isNotAWord,
-                isBlacklisted, unigramProbability, timestamp, 0 /* level */, 1 /* count */,
-                &shortcuts);
-        dictionary->addUnigramEntry(word1CodePoints, word1Length, &unigramProperty);
-        if (word0) {
-            jint bigramProbability = env->GetIntField(languageModelParam, bigramProbabilityFieldId);
-            const std::vector<int> bigramTargetCodePoints(
-                    word1CodePoints, word1CodePoints + word1Length);
-            // Use 1 for count to indicate the bigram has inputted.
-            const BigramProperty bigramProperty(&bigramTargetCodePoints, bigramProbability,
-                    timestamp, 0 /* level */, 1 /* count */);
-            const PrevWordsInfo prevWordsInfo(word0CodePoints, word0Length,
-                    false /* isBeginningOfSentence */);
-            dictionary->addNgramEntry(&prevWordsInfo, &bigramProperty);
-        }
+        dictionary->updateEntriesForWordWithNgramContext(&ngramContext,
+                CodePointArrayView(wordCodePoints, wordLength), isValid,
+                HistoricalInfo(timestamp, 0 /* level */, 1 /* count */));
         if (dictionary->needsToRunGC(true /* mindsBlockByGC */)) {
             return i + 1;
         }
-        env->DeleteLocalRef(word0);
-        env->DeleteLocalRef(word1);
-        env->DeleteLocalRef(shortcutTarget);
-        env->DeleteLocalRef(languageModelParam);
+        env->DeleteLocalRef(prevWordArray);
+        env->DeleteLocalRef(isPrevWordBeginningOfSentenceArray);
+        env->DeleteLocalRef(inputEvent);
     }
-    return languageModelParamCount;
+    return inputEventCount;
 }
 
 static jstring latinime_BinaryDictionary_getProperty(JNIEnv *env, jclass clazz, jlong dict,
@@ -567,8 +569,8 @@
     // Add unigrams.
     do {
         token = dictionary->getNextWordAndNextToken(token, wordCodePoints, &wordCodePointCount);
-        const WordProperty wordProperty = dictionary->getWordProperty(wordCodePoints,
-                wordCodePointCount);
+        const WordProperty wordProperty = dictionary->getWordProperty(
+                CodePointArrayView(wordCodePoints, wordCodePointCount));
         if (wordCodePoints[0] == CODE_POINT_BEGINNING_OF_SENTENCE) {
             // Skip beginning-of-sentence unigram.
             continue;
@@ -581,18 +583,19 @@
                 return false;
             }
         }
-        if (!dictionaryStructureWithBufferPolicy->addUnigramEntry(wordCodePoints,
-                wordCodePointCount, wordProperty.getUnigramProperty())) {
+        if (!dictionaryStructureWithBufferPolicy->addUnigramEntry(
+                CodePointArrayView(wordCodePoints, wordCodePointCount),
+                &wordProperty.getUnigramProperty())) {
             LogUtils::logToJava(env, "Cannot add unigram to the new dict.");
             return false;
         }
     } while (token != 0);
 
-    // Add bigrams.
+    // Add ngrams.
     do {
         token = dictionary->getNextWordAndNextToken(token, wordCodePoints, &wordCodePointCount);
-        const WordProperty wordProperty = dictionary->getWordProperty(wordCodePoints,
-                wordCodePointCount);
+        const WordProperty wordProperty = dictionary->getWordProperty(
+                CodePointArrayView(wordCodePoints, wordCodePointCount));
         if (dictionaryStructureWithBufferPolicy->needsToRunGC(true /* mindsBlockByGC */)) {
             dictionaryStructureWithBufferPolicy = runGCAndGetNewStructurePolicy(
                     std::move(dictionaryStructureWithBufferPolicy), dictFilePathChars);
@@ -601,12 +604,9 @@
                 return false;
             }
         }
-        const PrevWordsInfo prevWordsInfo(wordCodePoints, wordCodePointCount,
-                wordProperty.getUnigramProperty()->representsBeginningOfSentence());
-        for (const BigramProperty &bigramProperty : *wordProperty.getBigramProperties()) {
-            if (!dictionaryStructureWithBufferPolicy->addNgramEntry(&prevWordsInfo,
-                    &bigramProperty)) {
-                LogUtils::logToJava(env, "Cannot add bigram to the new dict.");
+        for (const NgramProperty &ngramProperty : wordProperty.getNgramProperties()) {
+            if (!dictionaryStructureWithBufferPolicy->addNgramEntry(&ngramProperty)) {
+                LogUtils::logToJava(env, "Cannot add ngram to the new dict.");
                 return false;
             }
         }
@@ -659,7 +659,7 @@
     },
     {
         const_cast<char *>("getSuggestionsNative"),
-        const_cast<char *>("(JJJ[I[I[I[I[II[I[[I[Z[I[I[I[I[I[I[F)V"),
+        const_cast<char *>("(JJJ[I[I[I[I[II[I[[I[ZI[I[I[I[I[I[I[F)V"),
         reinterpret_cast<void *>(latinime_BinaryDictionary_getSuggestions)
     },
     {
@@ -680,7 +680,8 @@
     {
         const_cast<char *>("getWordPropertyNative"),
         const_cast<char *>("(J[IZ[I[Z[ILjava/util/ArrayList;Ljava/util/ArrayList;"
-                "Ljava/util/ArrayList;Ljava/util/ArrayList;)V"),
+                "Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;"
+                "Ljava/util/ArrayList;)V"),
         reinterpret_cast<void *>(latinime_BinaryDictionary_getWordProperty)
     },
     {
@@ -709,10 +710,15 @@
         reinterpret_cast<void *>(latinime_BinaryDictionary_removeNgramEntry)
     },
     {
-        const_cast<char *>("addMultipleDictionaryEntriesNative"),
+        const_cast<char *>("updateEntriesForWordWithNgramContextNative"),
+        const_cast<char *>("(J[[I[Z[IZII)Z"),
+        reinterpret_cast<void *>(latinime_BinaryDictionary_updateEntriesForWordWithNgramContext)
+    },
+    {
+        const_cast<char *>("updateEntriesForInputEventsNative"),
         const_cast<char *>(
-                "(J[Lcom/android/inputmethod/latin/utils/LanguageModelParam;I)I"),
-        reinterpret_cast<void *>(latinime_BinaryDictionary_addMultipleDictionaryEntries)
+                "(J[Lcom/android/inputmethod/latin/utils/WordInputEventForPersonalization;I)I"),
+        reinterpret_cast<void *>(latinime_BinaryDictionary_updateEntriesForInputEvents)
     },
     {
         const_cast<char *>("getPropertyNative"),
diff --git a/native/jni/com_android_inputmethod_latin_BinaryDictionaryUtils.cpp b/native/jni/com_android_inputmethod_latin_BinaryDictionaryUtils.cpp
index 0a34b78..0885f2d 100644
--- a/native/jni/com_android_inputmethod_latin_BinaryDictionaryUtils.cpp
+++ b/native/jni/com_android_inputmethod_latin_BinaryDictionaryUtils.cpp
@@ -19,9 +19,9 @@
 #include "com_android_inputmethod_latin_BinaryDictionaryUtils.h"
 
 #include "defines.h"
+#include "dictionary/utils/dict_file_writing_utils.h"
 #include "jni.h"
 #include "jni_common.h"
-#include "suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h"
 #include "utils/autocorrection_threshold_utils.h"
 #include "utils/char_utils.h"
 #include "utils/jni_data_utils.h"
@@ -68,18 +68,6 @@
             afterCodePoints, afterLength, score);
 }
 
-static jint latinime_BinaryDictionaryUtils_editDistance(JNIEnv *env, jclass clazz, jintArray before,
-        jintArray after) {
-    jsize beforeLength = env->GetArrayLength(before);
-    jsize afterLength = env->GetArrayLength(after);
-    int beforeCodePoints[beforeLength];
-    int afterCodePoints[afterLength];
-    env->GetIntArrayRegion(before, 0, beforeLength, beforeCodePoints);
-    env->GetIntArrayRegion(after, 0, afterLength, afterCodePoints);
-    return AutocorrectionThresholdUtils::editDistance(beforeCodePoints, beforeLength,
-            afterCodePoints, afterLength);
-}
-
 static int latinime_BinaryDictionaryUtils_setCurrentTimeForTest(JNIEnv *env, jclass clazz,
         jint currentTime) {
     if (currentTime >= 0) {
@@ -104,11 +92,6 @@
         reinterpret_cast<void *>(latinime_BinaryDictionaryUtils_calcNormalizedScore)
     },
     {
-        const_cast<char *>("editDistanceNative"),
-        const_cast<char *>("([I[I)I"),
-        reinterpret_cast<void *>(latinime_BinaryDictionaryUtils_editDistance)
-    },
-    {
         const_cast<char *>("setCurrentTimeForTestNative"),
         const_cast<char *>("(I)I"),
         reinterpret_cast<void *>(latinime_BinaryDictionaryUtils_setCurrentTimeForTest)
diff --git a/native/jni/com_android_inputmethod_latin_DicTraverseSession.cpp b/native/jni/com_android_inputmethod_latin_DicTraverseSession.cpp
index 7660641..45f5492 100644
--- a/native/jni/com_android_inputmethod_latin_DicTraverseSession.cpp
+++ b/native/jni/com_android_inputmethod_latin_DicTraverseSession.cpp
@@ -19,10 +19,10 @@
 #include "com_android_inputmethod_latin_DicTraverseSession.h"
 
 #include "defines.h"
+#include "dictionary/property/ngram_context.h"
 #include "jni.h"
 #include "jni_common.h"
 #include "suggest/core/session/dic_traverse_session.h"
-#include "suggest/core/session/prev_words_info.h"
 
 namespace latinime {
 class Dictionary;
@@ -40,14 +40,14 @@
     }
     Dictionary *dict = reinterpret_cast<Dictionary *>(dictionary);
     if (!previousWord) {
-        PrevWordsInfo prevWordsInfo;
-        ts->init(dict, &prevWordsInfo, 0 /* suggestOptions */);
+        NgramContext emptyNgramContext;
+        ts->init(dict, &emptyNgramContext, 0 /* suggestOptions */);
         return;
     }
     int prevWord[previousWordLength];
     env->GetIntArrayRegion(previousWord, 0, previousWordLength, prevWord);
-    PrevWordsInfo prevWordsInfo(prevWord, previousWordLength, false /* isStartOfSentence */);
-    ts->init(dict, &prevWordsInfo, 0 /* suggestOptions */);
+    NgramContext ngramContext(prevWord, previousWordLength, false /* isStartOfSentence */);
+    ts->init(dict, &ngramContext, 0 /* suggestOptions */);
 }
 
 static void latinime_releaseDicTraverseSession(JNIEnv *env, jclass clazz, jlong traverseSession) {
diff --git a/native/jni/run-tests.sh b/native/jni/run-tests.sh
index 3da4527..a7fa82d 100755
--- a/native/jni/run-tests.sh
+++ b/native/jni/run-tests.sh
@@ -48,6 +48,13 @@
   if [[ ${BASH_SOURCE[0]} != $0 ]]; then return; else exit 1; fi
 fi
 
+# Host build is never supported in unbundled (NDK/tapas) build
+if [[ $enable_host_test == yes && -n $TARGET_BUILD_APPS ]]; then
+  echo "Host build is never supported in tapas build."  1>&2
+  echo "Use lunch command instead."  1>&2
+  if [[ ${BASH_SOURCE[0]} != $0 ]]; then return; else exit 1; fi
+fi
+
 target_test_name=liblatinime_target_unittests
 host_test_name=liblatinime_host_unittests
 
diff --git a/native/jni/src/defines.h b/native/jni/src/defines.h
index 24d04e5..10b930e 100644
--- a/native/jni/src/defines.h
+++ b/native/jni/src/defines.h
@@ -23,10 +23,10 @@
 #define AK_FORCE_INLINE inline
 #endif // __GNUC__
 
-#if defined(FLAG_DO_PROFILE) || defined(FLAG_DBG)
+#if defined(FLAG_DBG)
 #undef AK_FORCE_INLINE
 #define AK_FORCE_INLINE inline
-#endif // defined(FLAG_DO_PROFILE) || defined(FLAG_DBG)
+#endif // defined(FLAG_DBG)
 
 // Must be equal to Constants.Dictionary.MAX_WORD_LENGTH in Java
 #define MAX_WORD_LENGTH 48
@@ -119,7 +119,7 @@
         const int probability) {
     static char charBuf[50];
     const int N = intArrayToCharArray(word, length, charBuf, NELEMS(charBuf));
-    if (N > 1) {
+    if (N > 0) {
         AKLOGI("%2d [ %s ] (%d)", rank, charBuf, probability);
     }
 }
@@ -172,69 +172,6 @@
 #define INTS_TO_CHARS(input, length, output)
 #endif // defined(FLAG_DO_PROFILE) || defined(FLAG_DBG)
 
-#ifdef FLAG_DO_PROFILE
-// Profiler
-#include <time.h>
-
-#define PROF_BUF_SIZE 100
-static float profile_buf[PROF_BUF_SIZE];
-static float profile_old[PROF_BUF_SIZE];
-static unsigned int profile_counter[PROF_BUF_SIZE];
-
-#define PROF_RESET               prof_reset()
-#define PROF_COUNT(prof_buf_id)  ++profile_counter[prof_buf_id]
-#define PROF_OPEN                do { PROF_RESET; PROF_START(PROF_BUF_SIZE - 1); } while (0)
-#define PROF_START(prof_buf_id)  do { \
-        PROF_COUNT(prof_buf_id); profile_old[prof_buf_id] = (clock()); } while (0)
-#define PROF_CLOSE               do { PROF_END(PROF_BUF_SIZE - 1); PROF_OUTALL; } while (0)
-#define PROF_END(prof_buf_id)    profile_buf[prof_buf_id] += ((clock()) - profile_old[prof_buf_id])
-#define PROF_CLOCKOUT(prof_buf_id) \
-        AKLOGI("%s : clock is %f", __FUNCTION__, (clock() - profile_old[prof_buf_id]))
-#define PROF_OUTALL              do { AKLOGI("--- %s ---", __FUNCTION__); prof_out(); } while (0)
-
-static inline void prof_reset(void) {
-    for (int i = 0; i < PROF_BUF_SIZE; ++i) {
-        profile_buf[i] = 0;
-        profile_old[i] = 0;
-        profile_counter[i] = 0;
-    }
-}
-
-static inline void prof_out(void) {
-    if (profile_counter[PROF_BUF_SIZE - 1] != 1) {
-        AKLOGI("Error: You must call PROF_OPEN before PROF_CLOSE.");
-    }
-    AKLOGI("Total time is %6.3f ms.",
-            profile_buf[PROF_BUF_SIZE - 1] * 1000.0f / static_cast<float>(CLOCKS_PER_SEC));
-    float all = 0.0f;
-    for (int i = 0; i < PROF_BUF_SIZE - 1; ++i) {
-        all += profile_buf[i];
-    }
-    if (all < 1.0f) all = 1.0f;
-    for (int i = 0; i < PROF_BUF_SIZE - 1; ++i) {
-        if (profile_buf[i] > 0.0f) {
-            AKLOGI("(%d): Used %4.2f%%, %8.4f ms. Called %d times.",
-                    i, (profile_buf[i] * 100.0f / all),
-                    profile_buf[i] * 1000.0f / static_cast<float>(CLOCKS_PER_SEC),
-                    profile_counter[i]);
-        }
-    }
-}
-
-#else // FLAG_DO_PROFILE
-#define PROF_BUF_SIZE 0
-#define PROF_RESET
-#define PROF_COUNT(prof_buf_id)
-#define PROF_OPEN
-#define PROF_START(prof_buf_id)
-#define PROF_CLOSE
-#define PROF_END(prof_buf_id)
-#define PROF_CLOCK_OUT(prof_buf_id)
-#define PROF_CLOCKOUT(prof_buf_id)
-#define PROF_OUTALL
-
-#endif // FLAG_DO_PROFILE
-
 #ifdef FLAG_DBG
 #define DEBUG_DICT true
 #define DEBUG_DICT_FULL false
@@ -299,8 +236,9 @@
 #define NOT_AN_INDEX (-1)
 #define NOT_A_PROBABILITY (-1)
 #define NOT_A_DICT_POS (S_INT_MIN)
+#define NOT_A_WORD_ID (S_INT_MIN)
 #define NOT_A_TIMESTAMP (-1)
-#define NOT_A_LANGUAGE_WEIGHT (-1.0f)
+#define NOT_A_WEIGHT_OF_LANG_MODEL_VS_SPATIAL_MODEL (-1.0f)
 
 // A special value to mean the first word confidence makes no sense in this case,
 // e.g. this is not a multi-word suggestion.
@@ -337,7 +275,7 @@
 #define MAX_POINTER_COUNT_G 2
 
 // (MAX_PREV_WORD_COUNT_FOR_N_GRAM + 1)-gram is supported.
-#define MAX_PREV_WORD_COUNT_FOR_N_GRAM 1
+#define MAX_PREV_WORD_COUNT_FOR_N_GRAM 3
 
 #define DISALLOW_DEFAULT_CONSTRUCTOR(TypeName) \
   TypeName() = delete
diff --git a/native/jni/src/dictionary/header/header_policy.cpp b/native/jni/src/dictionary/header/header_policy.cpp
new file mode 100644
index 0000000..d4f84d3
--- /dev/null
+++ b/native/jni/src/dictionary/header/header_policy.cpp
@@ -0,0 +1,183 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/header/header_policy.h"
+
+#include <algorithm>
+
+#include "utils/ngram_utils.h"
+
+namespace latinime {
+
+// Note that these are corresponding definitions in Java side in DictionaryHeader.
+const char *const HeaderPolicy::MULTIPLE_WORDS_DEMOTION_RATE_KEY = "MULTIPLE_WORDS_DEMOTION_RATE";
+const char *const HeaderPolicy::REQUIRES_GERMAN_UMLAUT_PROCESSING_KEY =
+        "REQUIRES_GERMAN_UMLAUT_PROCESSING";
+// TODO: Change attribute string to "IS_DECAYING_DICT".
+const char *const HeaderPolicy::IS_DECAYING_DICT_KEY = "USES_FORGETTING_CURVE";
+const char *const HeaderPolicy::DATE_KEY = "date";
+const char *const HeaderPolicy::LAST_DECAYED_TIME_KEY = "LAST_DECAYED_TIME";
+const char *const HeaderPolicy::NGRAM_COUNT_KEYS[] =
+        {"UNIGRAM_COUNT", "BIGRAM_COUNT", "TRIGRAM_COUNT", "QUADGRAM_COUNT"};
+const char *const HeaderPolicy::MAX_NGRAM_COUNT_KEYS[] =
+        {"MAX_UNIGRAM_ENTRY_COUNT", "MAX_BIGRAM_ENTRY_COUNT", "MAX_TRIGRAM_ENTRY_COUNT",
+                "MAX_QUADGRAM_ENTRY_COUNT"};
+const int HeaderPolicy::DEFAULT_MAX_NGRAM_COUNTS[] = {10000, 30000, 30000, 30000};
+const char *const HeaderPolicy::EXTENDED_REGION_SIZE_KEY = "EXTENDED_REGION_SIZE";
+// Historical info is information that is needed to support decaying such as timestamp, level and
+// count.
+const char *const HeaderPolicy::HAS_HISTORICAL_INFO_KEY = "HAS_HISTORICAL_INFO";
+const char *const HeaderPolicy::LOCALE_KEY = "locale"; // match Java declaration
+const char *const HeaderPolicy::FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID_KEY =
+        "FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID";
+
+const int HeaderPolicy::DEFAULT_MULTIPLE_WORDS_DEMOTION_RATE = 100;
+const float HeaderPolicy::MULTIPLE_WORD_COST_MULTIPLIER_SCALE = 100.0f;
+const int HeaderPolicy::DEFAULT_FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID = 3;
+
+// Used for logging. Question mark is used to indicate that the key is not found.
+void HeaderPolicy::readHeaderValueOrQuestionMark(const char *const key, int *outValue,
+        int outValueSize) const {
+    if (outValueSize <= 0) return;
+    if (outValueSize == 1) {
+        outValue[0] = '\0';
+        return;
+    }
+    std::vector<int> keyCodePointVector;
+    HeaderReadWriteUtils::insertCharactersIntoVector(key, &keyCodePointVector);
+    DictionaryHeaderStructurePolicy::AttributeMap::const_iterator it =
+            mAttributeMap.find(keyCodePointVector);
+    if (it == mAttributeMap.end()) {
+        // The key was not found.
+        outValue[0] = '?';
+        outValue[1] = '\0';
+        return;
+    }
+    const int terminalIndex = std::min(static_cast<int>(it->second.size()), outValueSize - 1);
+    for (int i = 0; i < terminalIndex; ++i) {
+        outValue[i] = it->second[i];
+    }
+    outValue[terminalIndex] = '\0';
+}
+
+const std::vector<int> HeaderPolicy::readLocale() const {
+    return HeaderReadWriteUtils::readCodePointVectorAttributeValue(&mAttributeMap, LOCALE_KEY);
+}
+
+float HeaderPolicy::readMultipleWordCostMultiplier() const {
+    const int demotionRate = HeaderReadWriteUtils::readIntAttributeValue(&mAttributeMap,
+            MULTIPLE_WORDS_DEMOTION_RATE_KEY, DEFAULT_MULTIPLE_WORDS_DEMOTION_RATE);
+    if (demotionRate <= 0) {
+        return static_cast<float>(MAX_VALUE_FOR_WEIGHTING);
+    }
+    return MULTIPLE_WORD_COST_MULTIPLIER_SCALE / static_cast<float>(demotionRate);
+}
+
+bool HeaderPolicy::readRequiresGermanUmlautProcessing() const {
+    return HeaderReadWriteUtils::readBoolAttributeValue(&mAttributeMap,
+            REQUIRES_GERMAN_UMLAUT_PROCESSING_KEY, false);
+}
+
+bool HeaderPolicy::fillInAndWriteHeaderToBuffer(const bool updatesLastDecayedTime,
+        const EntryCounts &entryCounts, const int extendedRegionSize,
+        BufferWithExtendableBuffer *const outBuffer) const {
+    int writingPos = 0;
+    DictionaryHeaderStructurePolicy::AttributeMap attributeMapToWrite(mAttributeMap);
+    fillInHeader(updatesLastDecayedTime, entryCounts, extendedRegionSize, &attributeMapToWrite);
+    if (!HeaderReadWriteUtils::writeDictionaryVersion(outBuffer, mDictFormatVersion,
+            &writingPos)) {
+        return false;
+    }
+    if (!HeaderReadWriteUtils::writeDictionaryFlags(outBuffer, mDictionaryFlags,
+            &writingPos)) {
+        return false;
+    }
+    // Temporarily writes a dummy header size.
+    int headerSizeFieldPos = writingPos;
+    if (!HeaderReadWriteUtils::writeDictionaryHeaderSize(outBuffer, 0 /* size */,
+            &writingPos)) {
+        return false;
+    }
+    if (!HeaderReadWriteUtils::writeHeaderAttributes(outBuffer, &attributeMapToWrite,
+            &writingPos)) {
+        return false;
+    }
+    // Writes the actual header size.
+    if (!HeaderReadWriteUtils::writeDictionaryHeaderSize(outBuffer, writingPos,
+            &headerSizeFieldPos)) {
+        return false;
+    }
+    return true;
+}
+
+namespace {
+
+int getIndexFromNgramType(const NgramType ngramType) {
+    return static_cast<int>(ngramType);
+}
+
+} // namespace
+
+void HeaderPolicy::fillInHeader(const bool updatesLastDecayedTime,
+        const EntryCounts &entryCounts, const int extendedRegionSize,
+        DictionaryHeaderStructurePolicy::AttributeMap *outAttributeMap) const {
+    for (const auto ngramType : AllNgramTypes::ASCENDING) {
+        HeaderReadWriteUtils::setIntAttribute(outAttributeMap,
+                NGRAM_COUNT_KEYS[getIndexFromNgramType(ngramType)],
+                entryCounts.getNgramCount(ngramType));
+    }
+    HeaderReadWriteUtils::setIntAttribute(outAttributeMap, EXTENDED_REGION_SIZE_KEY,
+            extendedRegionSize);
+    // Set the current time as the generation time.
+    HeaderReadWriteUtils::setIntAttribute(outAttributeMap, DATE_KEY,
+            TimeKeeper::peekCurrentTime());
+    HeaderReadWriteUtils::setCodePointVectorAttribute(outAttributeMap, LOCALE_KEY, mLocale);
+    if (updatesLastDecayedTime) {
+        // Set current time as the last updated time.
+        HeaderReadWriteUtils::setIntAttribute(outAttributeMap, LAST_DECAYED_TIME_KEY,
+                TimeKeeper::peekCurrentTime());
+    }
+}
+
+/* static */ DictionaryHeaderStructurePolicy::AttributeMap
+        HeaderPolicy::createAttributeMapAndReadAllAttributes(const uint8_t *const dictBuf) {
+    DictionaryHeaderStructurePolicy::AttributeMap attributeMap;
+    HeaderReadWriteUtils::fetchAllHeaderAttributes(dictBuf, &attributeMap);
+    return attributeMap;
+}
+
+/* static */ const EntryCounts HeaderPolicy::readNgramCounts() const {
+    MutableEntryCounters entryCounters;
+    for (const auto ngramType : AllNgramTypes::ASCENDING) {
+        const int entryCount = HeaderReadWriteUtils::readIntAttributeValue(&mAttributeMap,
+                NGRAM_COUNT_KEYS[getIndexFromNgramType(ngramType)], 0 /* defaultValue */);
+        entryCounters.setNgramCount(ngramType, entryCount);
+    }
+    return entryCounters.getEntryCounts();
+}
+
+/* static */ const EntryCounts HeaderPolicy::readMaxNgramCounts() const {
+    MutableEntryCounters entryCounters;
+    for (const auto ngramType : AllNgramTypes::ASCENDING) {
+        const int index = getIndexFromNgramType(ngramType);
+        const int maxEntryCount = HeaderReadWriteUtils::readIntAttributeValue(&mAttributeMap,
+                MAX_NGRAM_COUNT_KEYS[index], DEFAULT_MAX_NGRAM_COUNTS[index]);
+        entryCounters.setNgramCount(ngramType, maxEntryCount);
+    }
+    return entryCounters.getEntryCounts();
+}
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/header/header_policy.h b/native/jni/src/dictionary/header/header_policy.h
new file mode 100644
index 0000000..47cc919
--- /dev/null
+++ b/native/jni/src/dictionary/header/header_policy.h
@@ -0,0 +1,268 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_HEADER_POLICY_H
+#define LATINIME_HEADER_POLICY_H
+
+#include <cstdint>
+
+#include "defines.h"
+#include "dictionary/header/header_read_write_utils.h"
+#include "dictionary/interface/dictionary_header_structure_policy.h"
+#include "dictionary/utils/entry_counters.h"
+#include "dictionary/utils/format_utils.h"
+#include "utils/char_utils.h"
+#include "utils/time_keeper.h"
+
+namespace latinime {
+
+class HeaderPolicy : public DictionaryHeaderStructurePolicy {
+ public:
+    // Reads information from existing dictionary buffer.
+    HeaderPolicy(const uint8_t *const dictBuf, const FormatUtils::FORMAT_VERSION formatVersion)
+            : mDictFormatVersion(formatVersion),
+              mDictionaryFlags(HeaderReadWriteUtils::getFlags(dictBuf)),
+              mSize(HeaderReadWriteUtils::getHeaderSize(dictBuf)),
+              mAttributeMap(createAttributeMapAndReadAllAttributes(dictBuf)),
+              mLocale(readLocale()),
+              mMultiWordCostMultiplier(readMultipleWordCostMultiplier()),
+              mRequiresGermanUmlautProcessing(readRequiresGermanUmlautProcessing()),
+              mIsDecayingDict(HeaderReadWriteUtils::readBoolAttributeValue(&mAttributeMap,
+                      IS_DECAYING_DICT_KEY, false /* defaultValue */)),
+              mDate(HeaderReadWriteUtils::readIntAttributeValue(&mAttributeMap,
+                      DATE_KEY, TimeKeeper::peekCurrentTime() /* defaultValue */)),
+              mLastDecayedTime(HeaderReadWriteUtils::readIntAttributeValue(&mAttributeMap,
+                      LAST_DECAYED_TIME_KEY, TimeKeeper::peekCurrentTime() /* defaultValue */)),
+              mNgramCounts(readNgramCounts()), mMaxNgramCounts(readMaxNgramCounts()),
+              mExtendedRegionSize(HeaderReadWriteUtils::readIntAttributeValue(&mAttributeMap,
+                      EXTENDED_REGION_SIZE_KEY, 0 /* defaultValue */)),
+              mHasHistoricalInfoOfWords(HeaderReadWriteUtils::readBoolAttributeValue(
+                      &mAttributeMap, HAS_HISTORICAL_INFO_KEY, false /* defaultValue */)),
+              mForgettingCurveProbabilityValuesTableId(HeaderReadWriteUtils::readIntAttributeValue(
+                      &mAttributeMap, FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID_KEY,
+                      DEFAULT_FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID)),
+              mCodePointTable(HeaderReadWriteUtils::readCodePointTable(&mAttributeMap)) {}
+
+    // Constructs header information using an attribute map.
+    HeaderPolicy(const FormatUtils::FORMAT_VERSION dictFormatVersion,
+            const std::vector<int> &locale,
+            const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap)
+            : mDictFormatVersion(dictFormatVersion),
+              mDictionaryFlags(HeaderReadWriteUtils::createAndGetDictionaryFlagsUsingAttributeMap(
+                      attributeMap)), mSize(0), mAttributeMap(*attributeMap), mLocale(locale),
+              mMultiWordCostMultiplier(readMultipleWordCostMultiplier()),
+              mRequiresGermanUmlautProcessing(readRequiresGermanUmlautProcessing()),
+              mIsDecayingDict(HeaderReadWriteUtils::readBoolAttributeValue(&mAttributeMap,
+                      IS_DECAYING_DICT_KEY, false /* defaultValue */)),
+              mDate(HeaderReadWriteUtils::readIntAttributeValue(&mAttributeMap,
+                      DATE_KEY, TimeKeeper::peekCurrentTime() /* defaultValue */)),
+              mLastDecayedTime(HeaderReadWriteUtils::readIntAttributeValue(&mAttributeMap,
+                      DATE_KEY, TimeKeeper::peekCurrentTime() /* defaultValue */)),
+              mNgramCounts(readNgramCounts()), mMaxNgramCounts(readMaxNgramCounts()),
+              mExtendedRegionSize(0),
+              mHasHistoricalInfoOfWords(HeaderReadWriteUtils::readBoolAttributeValue(
+                      &mAttributeMap, HAS_HISTORICAL_INFO_KEY, false /* defaultValue */)),
+              mForgettingCurveProbabilityValuesTableId(HeaderReadWriteUtils::readIntAttributeValue(
+                      &mAttributeMap, FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID_KEY,
+                      DEFAULT_FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID)),
+              mCodePointTable(HeaderReadWriteUtils::readCodePointTable(&mAttributeMap)) {}
+
+    // Copy header information
+    HeaderPolicy(const HeaderPolicy *const headerPolicy)
+            : mDictFormatVersion(headerPolicy->mDictFormatVersion),
+              mDictionaryFlags(headerPolicy->mDictionaryFlags), mSize(headerPolicy->mSize),
+              mAttributeMap(headerPolicy->mAttributeMap), mLocale(headerPolicy->mLocale),
+              mMultiWordCostMultiplier(headerPolicy->mMultiWordCostMultiplier),
+              mRequiresGermanUmlautProcessing(headerPolicy->mRequiresGermanUmlautProcessing),
+              mIsDecayingDict(headerPolicy->mIsDecayingDict),
+              mDate(headerPolicy->mDate), mLastDecayedTime(headerPolicy->mLastDecayedTime),
+              mNgramCounts(headerPolicy->mNgramCounts),
+              mMaxNgramCounts(headerPolicy->mMaxNgramCounts),
+              mExtendedRegionSize(headerPolicy->mExtendedRegionSize),
+              mHasHistoricalInfoOfWords(headerPolicy->mHasHistoricalInfoOfWords),
+              mForgettingCurveProbabilityValuesTableId(
+                      headerPolicy->mForgettingCurveProbabilityValuesTableId),
+              mCodePointTable(headerPolicy->mCodePointTable) {}
+
+    // Temporary dummy header.
+    HeaderPolicy()
+            : mDictFormatVersion(FormatUtils::UNKNOWN_VERSION), mDictionaryFlags(0), mSize(0),
+              mAttributeMap(), mLocale(CharUtils::EMPTY_STRING), mMultiWordCostMultiplier(0.0f),
+              mRequiresGermanUmlautProcessing(false), mIsDecayingDict(false),
+              mDate(0), mLastDecayedTime(0), mNgramCounts(), mMaxNgramCounts(),
+              mExtendedRegionSize(0), mHasHistoricalInfoOfWords(false),
+              mForgettingCurveProbabilityValuesTableId(0), mCodePointTable(nullptr) {}
+
+    ~HeaderPolicy() {}
+
+    virtual int getFormatVersionNumber() const {
+        // Conceptually this converts the symbolic value we use in the code into the
+        // hardcoded of the bytes in the file. But we want the constants to be the
+        // same so we use them for both here.
+        switch (mDictFormatVersion) {
+            case FormatUtils::VERSION_2:
+            case FormatUtils::VERSION_201:
+                AKLOGE("Dictionary versions 2 and 201 are incompatible with this version");
+                return FormatUtils::UNKNOWN_VERSION;
+            case FormatUtils::VERSION_202:
+                return FormatUtils::VERSION_202;
+            case FormatUtils::VERSION_4_ONLY_FOR_TESTING:
+                return FormatUtils::VERSION_4_ONLY_FOR_TESTING;
+            case FormatUtils::VERSION_402:
+                return FormatUtils::VERSION_402;
+            case FormatUtils::VERSION_403:
+                return FormatUtils::VERSION_403;
+            default:
+                return FormatUtils::UNKNOWN_VERSION;
+        }
+    }
+
+    AK_FORCE_INLINE bool isValid() const {
+        // Decaying dictionary must have historical information.
+        if (!mIsDecayingDict) {
+            return true;
+        }
+        if (mHasHistoricalInfoOfWords) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+
+    AK_FORCE_INLINE int getSize() const {
+        return mSize;
+    }
+
+    AK_FORCE_INLINE float getMultiWordCostMultiplier() const {
+        return mMultiWordCostMultiplier;
+    }
+
+    AK_FORCE_INLINE bool isDecayingDict() const {
+        return mIsDecayingDict;
+    }
+
+    AK_FORCE_INLINE bool requiresGermanUmlautProcessing() const {
+        return mRequiresGermanUmlautProcessing;
+    }
+
+    AK_FORCE_INLINE int getDate() const {
+        return mDate;
+    }
+
+    AK_FORCE_INLINE int getLastDecayedTime() const {
+        return mLastDecayedTime;
+    }
+
+    AK_FORCE_INLINE const EntryCounts &getNgramCounts() const {
+        return mNgramCounts;
+    }
+
+    AK_FORCE_INLINE const EntryCounts getMaxNgramCounts() const {
+        return mMaxNgramCounts;
+    }
+
+    AK_FORCE_INLINE int getExtendedRegionSize() const {
+        return mExtendedRegionSize;
+    }
+
+    AK_FORCE_INLINE bool hasHistoricalInfoOfWords() const {
+        return mHasHistoricalInfoOfWords;
+    }
+
+    AK_FORCE_INLINE bool shouldBoostExactMatches() const {
+        // TODO: Investigate better ways to handle exact matches for personalized dictionaries.
+        return !isDecayingDict();
+    }
+
+    const DictionaryHeaderStructurePolicy::AttributeMap *getAttributeMap() const {
+        return &mAttributeMap;
+    }
+
+    AK_FORCE_INLINE int getForgettingCurveProbabilityValuesTableId() const {
+        return mForgettingCurveProbabilityValuesTableId;
+    }
+
+    void readHeaderValueOrQuestionMark(const char *const key,
+            int *outValue, int outValueSize) const;
+
+    bool fillInAndWriteHeaderToBuffer(const bool updatesLastDecayedTime,
+            const EntryCounts &entryCounts, const int extendedRegionSize,
+            BufferWithExtendableBuffer *const outBuffer) const;
+
+    void fillInHeader(const bool updatesLastDecayedTime, const EntryCounts &entryCounts,
+            const int extendedRegionSize,
+            DictionaryHeaderStructurePolicy::AttributeMap *outAttributeMap) const;
+
+    AK_FORCE_INLINE const std::vector<int> *getLocale() const {
+        return &mLocale;
+    }
+
+    bool supportsBeginningOfSentence() const {
+        return mDictFormatVersion >= FormatUtils::VERSION_402;
+    }
+
+    const int *getCodePointTable() const {
+        return mCodePointTable;
+    }
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(HeaderPolicy);
+
+    static const char *const MULTIPLE_WORDS_DEMOTION_RATE_KEY;
+    static const char *const REQUIRES_GERMAN_UMLAUT_PROCESSING_KEY;
+    static const char *const IS_DECAYING_DICT_KEY;
+    static const char *const DATE_KEY;
+    static const char *const LAST_DECAYED_TIME_KEY;
+    static const char *const NGRAM_COUNT_KEYS[];
+    static const char *const MAX_NGRAM_COUNT_KEYS[];
+    static const int DEFAULT_MAX_NGRAM_COUNTS[];
+    static const char *const EXTENDED_REGION_SIZE_KEY;
+    static const char *const HAS_HISTORICAL_INFO_KEY;
+    static const char *const LOCALE_KEY;
+    static const char *const FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP_KEY;
+    static const char *const FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID_KEY;
+    static const char *const FORGETTING_CURVE_DURATION_TO_LEVEL_DOWN_IN_SECONDS_KEY;
+    static const int DEFAULT_MULTIPLE_WORDS_DEMOTION_RATE;
+    static const float MULTIPLE_WORD_COST_MULTIPLIER_SCALE;
+    static const int DEFAULT_FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID;
+
+    const FormatUtils::FORMAT_VERSION mDictFormatVersion;
+    const HeaderReadWriteUtils::DictionaryFlags mDictionaryFlags;
+    const int mSize;
+    DictionaryHeaderStructurePolicy::AttributeMap mAttributeMap;
+    const std::vector<int> mLocale;
+    const float mMultiWordCostMultiplier;
+    const bool mRequiresGermanUmlautProcessing;
+    const bool mIsDecayingDict;
+    const int mDate;
+    const int mLastDecayedTime;
+    const EntryCounts mNgramCounts;
+    const EntryCounts mMaxNgramCounts;
+    const int mExtendedRegionSize;
+    const bool mHasHistoricalInfoOfWords;
+    const int mForgettingCurveProbabilityValuesTableId;
+    const int *const mCodePointTable;
+
+    const std::vector<int> readLocale() const;
+    float readMultipleWordCostMultiplier() const;
+    bool readRequiresGermanUmlautProcessing() const;
+    const EntryCounts readNgramCounts() const;
+    const EntryCounts readMaxNgramCounts() const;
+    static DictionaryHeaderStructurePolicy::AttributeMap createAttributeMapAndReadAllAttributes(
+            const uint8_t *const dictBuf);
+};
+} // namespace latinime
+#endif /* LATINIME_HEADER_POLICY_H */
diff --git a/native/jni/src/dictionary/header/header_read_write_utils.cpp b/native/jni/src/dictionary/header/header_read_write_utils.cpp
new file mode 100644
index 0000000..779f8b8
--- /dev/null
+++ b/native/jni/src/dictionary/header/header_read_write_utils.cpp
@@ -0,0 +1,248 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/header/header_read_write_utils.h"
+
+#include <cctype>
+#include <cstdio>
+#include <memory>
+#include <vector>
+
+#include "defines.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/byte_array_utils.h"
+
+namespace latinime {
+
+// Number of base-10 digits in the largest integer + 1 to leave room for a zero terminator.
+// As such, this is the maximum number of characters will be needed to represent an int as a
+// string, including the terminator; this is used as the size of a string buffer large enough to
+// hold any value that is intended to fit in an integer, e.g. in the code that reads the header
+// of the binary dictionary where a {key,value} string pair scheme is used.
+const int HeaderReadWriteUtils::LARGEST_INT_DIGIT_COUNT = 11;
+
+const int HeaderReadWriteUtils::MAX_ATTRIBUTE_KEY_LENGTH = 256;
+const int HeaderReadWriteUtils::MAX_ATTRIBUTE_VALUE_LENGTH = 2048;
+
+const int HeaderReadWriteUtils::HEADER_MAGIC_NUMBER_SIZE = 4;
+const int HeaderReadWriteUtils::HEADER_DICTIONARY_VERSION_SIZE = 2;
+const int HeaderReadWriteUtils::HEADER_FLAG_SIZE = 2;
+const int HeaderReadWriteUtils::HEADER_SIZE_FIELD_SIZE = 4;
+const char *const HeaderReadWriteUtils::CODE_POINT_TABLE_KEY = "codePointTable";
+
+const HeaderReadWriteUtils::DictionaryFlags HeaderReadWriteUtils::NO_FLAGS = 0;
+
+typedef DictionaryHeaderStructurePolicy::AttributeMap AttributeMap;
+
+/* static */ int HeaderReadWriteUtils::getHeaderSize(const uint8_t *const dictBuf) {
+    // See the format of the header in the comment in
+    // BinaryDictionaryFormatUtils::detectFormatVersion()
+    return ByteArrayUtils::readUint32(dictBuf, HEADER_MAGIC_NUMBER_SIZE
+            + HEADER_DICTIONARY_VERSION_SIZE + HEADER_FLAG_SIZE);
+}
+
+/* static */ HeaderReadWriteUtils::DictionaryFlags
+        HeaderReadWriteUtils::getFlags(const uint8_t *const dictBuf) {
+    return ByteArrayUtils::readUint16(dictBuf,
+            HEADER_MAGIC_NUMBER_SIZE + HEADER_DICTIONARY_VERSION_SIZE);
+}
+
+/* static */ HeaderReadWriteUtils::DictionaryFlags
+        HeaderReadWriteUtils::createAndGetDictionaryFlagsUsingAttributeMap(
+                const AttributeMap *const attributeMap) {
+    return NO_FLAGS;
+}
+
+/* static */ void HeaderReadWriteUtils::fetchAllHeaderAttributes(const uint8_t *const dictBuf,
+        AttributeMap *const headerAttributes) {
+    const int headerSize = getHeaderSize(dictBuf);
+    int pos = getHeaderOptionsPosition();
+    if (pos == NOT_A_DICT_POS) {
+        // The header doesn't have header options.
+        return;
+    }
+    int keyBuffer[MAX_ATTRIBUTE_KEY_LENGTH];
+    std::unique_ptr<int[]> valueBuffer(new int[MAX_ATTRIBUTE_VALUE_LENGTH]);
+    while (pos < headerSize) {
+        // The values in the header don't use the code point table for their encoding.
+        const int keyLength = ByteArrayUtils::readStringAndAdvancePosition(dictBuf,
+                MAX_ATTRIBUTE_KEY_LENGTH, nullptr /* codePointTable */, keyBuffer, &pos);
+        std::vector<int> key;
+        key.insert(key.end(), keyBuffer, keyBuffer + keyLength);
+        const int valueLength = ByteArrayUtils::readStringAndAdvancePosition(dictBuf,
+                MAX_ATTRIBUTE_VALUE_LENGTH, nullptr /* codePointTable */, valueBuffer.get(), &pos);
+        std::vector<int> value;
+        value.insert(value.end(), valueBuffer.get(), valueBuffer.get() + valueLength);
+        headerAttributes->insert(AttributeMap::value_type(key, value));
+    }
+}
+
+/* static */ const int *HeaderReadWriteUtils::readCodePointTable(
+        AttributeMap *const headerAttributes) {
+    AttributeMap::key_type keyVector;
+    insertCharactersIntoVector(CODE_POINT_TABLE_KEY, &keyVector);
+    AttributeMap::const_iterator it = headerAttributes->find(keyVector);
+    if (it == headerAttributes->end()) {
+        return nullptr;
+    }
+    return it->second.data();
+}
+
+/* static */ bool HeaderReadWriteUtils::writeDictionaryVersion(
+        BufferWithExtendableBuffer *const buffer, const FormatUtils::FORMAT_VERSION version,
+        int *const writingPos) {
+    if (!buffer->writeUintAndAdvancePosition(FormatUtils::MAGIC_NUMBER, HEADER_MAGIC_NUMBER_SIZE,
+            writingPos)) {
+        return false;
+    }
+    switch (version) {
+        case FormatUtils::VERSION_2:
+        case FormatUtils::VERSION_201:
+        case FormatUtils::VERSION_202:
+            // None of the static dictionaries (v2x) support writing
+            return false;
+        case FormatUtils::VERSION_4_ONLY_FOR_TESTING:
+        case FormatUtils::VERSION_402:
+        case FormatUtils::VERSION_403:
+            return buffer->writeUintAndAdvancePosition(version /* data */,
+                    HEADER_DICTIONARY_VERSION_SIZE, writingPos);
+        default:
+            return false;
+    }
+}
+
+/* static */ bool HeaderReadWriteUtils::writeDictionaryFlags(
+        BufferWithExtendableBuffer *const buffer, const DictionaryFlags flags,
+        int *const writingPos) {
+    return buffer->writeUintAndAdvancePosition(flags, HEADER_FLAG_SIZE, writingPos);
+}
+
+/* static */ bool HeaderReadWriteUtils::writeDictionaryHeaderSize(
+        BufferWithExtendableBuffer *const buffer, const int size, int *const writingPos) {
+    return buffer->writeUintAndAdvancePosition(size, HEADER_SIZE_FIELD_SIZE, writingPos);
+}
+
+/* static */ bool HeaderReadWriteUtils::writeHeaderAttributes(
+        BufferWithExtendableBuffer *const buffer, const AttributeMap *const headerAttributes,
+        int *const writingPos) {
+    for (AttributeMap::const_iterator it = headerAttributes->begin();
+            it != headerAttributes->end(); ++it) {
+        if (it->first.empty() || it->second.empty()) {
+            continue;
+        }
+        // Write a key.
+        if (!buffer->writeCodePointsAndAdvancePosition(&(it->first.at(0)), it->first.size(),
+                true /* writesTerminator */, writingPos)) {
+            return false;
+        }
+        // Write a value.
+        if (!buffer->writeCodePointsAndAdvancePosition(&(it->second.at(0)), it->second.size(),
+                true /* writesTerminator */, writingPos)) {
+            return false;
+        }
+    }
+    return true;
+}
+
+/* static */ void HeaderReadWriteUtils::setCodePointVectorAttribute(
+        AttributeMap *const headerAttributes, const char *const key,
+        const std::vector<int> &value) {
+    AttributeMap::key_type keyVector;
+    insertCharactersIntoVector(key, &keyVector);
+    (*headerAttributes)[keyVector] = value;
+}
+
+/* static */ void HeaderReadWriteUtils::setBoolAttribute(AttributeMap *const headerAttributes,
+        const char *const key, const bool value) {
+    setIntAttribute(headerAttributes, key, value ? 1 : 0);
+}
+
+/* static */ void HeaderReadWriteUtils::setIntAttribute(AttributeMap *const headerAttributes,
+        const char *const key, const int value) {
+    AttributeMap::key_type keyVector;
+    insertCharactersIntoVector(key, &keyVector);
+    setIntAttributeInner(headerAttributes, &keyVector, value);
+}
+
+/* static */ void HeaderReadWriteUtils::setIntAttributeInner(AttributeMap *const headerAttributes,
+        const AttributeMap::key_type *const key, const int value) {
+    AttributeMap::mapped_type valueVector;
+    char charBuf[LARGEST_INT_DIGIT_COUNT];
+    snprintf(charBuf, sizeof(charBuf), "%d", value);
+    insertCharactersIntoVector(charBuf, &valueVector);
+    (*headerAttributes)[*key] = valueVector;
+}
+
+/* static */ const std::vector<int> HeaderReadWriteUtils::readCodePointVectorAttributeValue(
+        const AttributeMap *const headerAttributes, const char *const key) {
+    AttributeMap::key_type keyVector;
+    insertCharactersIntoVector(key, &keyVector);
+    AttributeMap::const_iterator it = headerAttributes->find(keyVector);
+    if (it == headerAttributes->end()) {
+        return std::vector<int>();
+    } else {
+        return it->second;
+    }
+}
+
+/* static */ bool HeaderReadWriteUtils::readBoolAttributeValue(
+        const AttributeMap *const headerAttributes, const char *const key,
+        const bool defaultValue) {
+    const int intDefaultValue = defaultValue ? 1 : 0;
+    const int intValue = readIntAttributeValue(headerAttributes, key, intDefaultValue);
+    return intValue != 0;
+}
+
+/* static */ int HeaderReadWriteUtils::readIntAttributeValue(
+        const AttributeMap *const headerAttributes, const char *const key,
+        const int defaultValue) {
+    AttributeMap::key_type keyVector;
+    insertCharactersIntoVector(key, &keyVector);
+    return readIntAttributeValueInner(headerAttributes, &keyVector, defaultValue);
+}
+
+/* static */ int HeaderReadWriteUtils::readIntAttributeValueInner(
+        const AttributeMap *const headerAttributes, const AttributeMap::key_type *const key,
+        const int defaultValue) {
+    AttributeMap::const_iterator it = headerAttributes->find(*key);
+    if (it != headerAttributes->end()) {
+        int value = 0;
+        bool isNegative = false;
+        for (size_t i = 0; i < it->second.size(); ++i) {
+            if (i == 0 && it->second.at(i) == '-') {
+                isNegative = true;
+            } else {
+                if (!isdigit(it->second.at(i))) {
+                    // If not a number.
+                    return defaultValue;
+                }
+                value *= 10;
+                value += it->second.at(i) - '0';
+            }
+        }
+        return isNegative ? -value : value;
+    }
+    return defaultValue;
+}
+
+/* static */ void HeaderReadWriteUtils::insertCharactersIntoVector(const char *const characters,
+        std::vector<int> *const vector) {
+    for (int i = 0; characters[i]; ++i) {
+        vector->push_back(characters[i]);
+    }
+}
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/header/header_read_write_utils.h b/native/jni/src/dictionary/header/header_read_write_utils.h
new file mode 100644
index 0000000..f67d614
--- /dev/null
+++ b/native/jni/src/dictionary/header/header_read_write_utils.h
@@ -0,0 +1,123 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_HEADER_READ_WRITE_UTILS_H
+#define LATINIME_HEADER_READ_WRITE_UTILS_H
+
+#include <cstdint>
+
+#include "defines.h"
+#include "dictionary/interface/dictionary_header_structure_policy.h"
+#include "dictionary/utils/format_utils.h"
+
+namespace latinime {
+
+class BufferWithExtendableBuffer;
+
+class HeaderReadWriteUtils {
+ public:
+    typedef uint16_t DictionaryFlags;
+
+    static int getHeaderSize(const uint8_t *const dictBuf);
+
+    static DictionaryFlags getFlags(const uint8_t *const dictBuf);
+
+    static AK_FORCE_INLINE int getHeaderOptionsPosition() {
+        return HEADER_MAGIC_NUMBER_SIZE + HEADER_DICTIONARY_VERSION_SIZE + HEADER_FLAG_SIZE
+                + HEADER_SIZE_FIELD_SIZE;
+    }
+
+    static DictionaryFlags createAndGetDictionaryFlagsUsingAttributeMap(
+            const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap);
+
+    static void fetchAllHeaderAttributes(const uint8_t *const dictBuf,
+            DictionaryHeaderStructurePolicy::AttributeMap *const headerAttributes);
+
+    static const int *readCodePointTable(
+            DictionaryHeaderStructurePolicy::AttributeMap *const headerAttributes);
+
+    static bool writeDictionaryVersion(BufferWithExtendableBuffer *const buffer,
+            const FormatUtils::FORMAT_VERSION version, int *const writingPos);
+
+    static bool writeDictionaryFlags(BufferWithExtendableBuffer *const buffer,
+            const DictionaryFlags flags, int *const writingPos);
+
+    static bool writeDictionaryHeaderSize(BufferWithExtendableBuffer *const buffer,
+            const int size, int *const writingPos);
+
+    static bool writeHeaderAttributes(BufferWithExtendableBuffer *const buffer,
+            const DictionaryHeaderStructurePolicy::AttributeMap *const headerAttributes,
+            int *const writingPos);
+
+    /**
+     * Methods for header attributes.
+     */
+    static void setCodePointVectorAttribute(
+            DictionaryHeaderStructurePolicy::AttributeMap *const headerAttributes,
+            const char *const key, const std::vector<int> &value);
+
+    static void setBoolAttribute(
+            DictionaryHeaderStructurePolicy::AttributeMap *const headerAttributes,
+            const char *const key, const bool value);
+
+    static void setIntAttribute(
+            DictionaryHeaderStructurePolicy::AttributeMap *const headerAttributes,
+            const char *const key, const int value);
+
+    static const std::vector<int> readCodePointVectorAttributeValue(
+            const DictionaryHeaderStructurePolicy::AttributeMap *const headerAttributes,
+            const char *const key);
+
+    static bool readBoolAttributeValue(
+            const DictionaryHeaderStructurePolicy::AttributeMap *const headerAttributes,
+            const char *const key, const bool defaultValue);
+
+    static int readIntAttributeValue(
+            const DictionaryHeaderStructurePolicy::AttributeMap *const headerAttributes,
+            const char *const key, const int defaultValue);
+
+    static void insertCharactersIntoVector(const char *const characters,
+            DictionaryHeaderStructurePolicy::AttributeMap::key_type *const key);
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(HeaderReadWriteUtils);
+
+    static const int LARGEST_INT_DIGIT_COUNT;
+    static const int MAX_ATTRIBUTE_KEY_LENGTH;
+    static const int MAX_ATTRIBUTE_VALUE_LENGTH;
+
+    static const int HEADER_MAGIC_NUMBER_SIZE;
+    static const int HEADER_DICTIONARY_VERSION_SIZE;
+    static const int HEADER_FLAG_SIZE;
+    static const int HEADER_SIZE_FIELD_SIZE;
+
+    static const char *const CODE_POINT_TABLE_KEY;
+
+    // Value for the "flags" field. It's unused at the moment.
+    static const DictionaryFlags NO_FLAGS;
+
+    static void setIntAttributeInner(
+            DictionaryHeaderStructurePolicy::AttributeMap *const headerAttributes,
+            const DictionaryHeaderStructurePolicy::AttributeMap::key_type *const key,
+            const int value);
+
+    static int readIntAttributeValueInner(
+            const DictionaryHeaderStructurePolicy::AttributeMap *const headerAttributes,
+            const DictionaryHeaderStructurePolicy::AttributeMap::key_type *const key,
+            const int defaultValue);
+};
+}
+#endif /* LATINIME_HEADER_READ_WRITE_UTILS_H */
diff --git a/native/jni/src/suggest/core/policy/dictionary_bigrams_structure_policy.h b/native/jni/src/dictionary/interface/dictionary_bigrams_structure_policy.h
similarity index 100%
rename from native/jni/src/suggest/core/policy/dictionary_bigrams_structure_policy.h
rename to native/jni/src/dictionary/interface/dictionary_bigrams_structure_policy.h
diff --git a/native/jni/src/suggest/core/policy/dictionary_header_structure_policy.h b/native/jni/src/dictionary/interface/dictionary_header_structure_policy.h
similarity index 100%
rename from native/jni/src/suggest/core/policy/dictionary_header_structure_policy.h
rename to native/jni/src/dictionary/interface/dictionary_header_structure_policy.h
diff --git a/native/jni/src/suggest/core/policy/dictionary_shortcuts_structure_policy.h b/native/jni/src/dictionary/interface/dictionary_shortcuts_structure_policy.h
similarity index 100%
rename from native/jni/src/suggest/core/policy/dictionary_shortcuts_structure_policy.h
rename to native/jni/src/dictionary/interface/dictionary_shortcuts_structure_policy.h
diff --git a/native/jni/src/dictionary/interface/dictionary_structure_with_buffer_policy.h b/native/jni/src/dictionary/interface/dictionary_structure_with_buffer_policy.h
new file mode 100644
index 0000000..ace4849
--- /dev/null
+++ b/native/jni/src/dictionary/interface/dictionary_structure_with_buffer_policy.h
@@ -0,0 +1,124 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_DICTIONARY_STRUCTURE_POLICY_H
+#define LATINIME_DICTIONARY_STRUCTURE_POLICY_H
+
+#include <memory>
+
+#include "defines.h"
+#include "dictionary/property/historical_info.h"
+#include "dictionary/property/word_attributes.h"
+#include "dictionary/property/word_property.h"
+#include "dictionary/utils/binary_dictionary_shortcut_iterator.h"
+#include "utils/int_array_view.h"
+
+namespace latinime {
+
+class DicNode;
+class DicNodeVector;
+class DictionaryHeaderStructurePolicy;
+class MultiBigramMap;
+class NgramListener;
+class NgramContext;
+class UnigramProperty;
+
+/*
+ * This class abstracts the structure of dictionaries.
+ * Implement this policy to support additional dictionaries.
+ */
+class DictionaryStructureWithBufferPolicy {
+ public:
+    typedef std::unique_ptr<DictionaryStructureWithBufferPolicy> StructurePolicyPtr;
+
+    virtual ~DictionaryStructureWithBufferPolicy() {}
+
+    virtual int getRootPosition() const = 0;
+
+    virtual void createAndGetAllChildDicNodes(const DicNode *const dicNode,
+            DicNodeVector *const childDicNodes) const = 0;
+
+    virtual int getCodePointsAndReturnCodePointCount(const int wordId, const int maxCodePointCount,
+            int *const outCodePoints) const = 0;
+
+    virtual int getWordId(const CodePointArrayView wordCodePoints,
+            const bool forceLowerCaseSearch) const = 0;
+
+    virtual const WordAttributes getWordAttributesInContext(const WordIdArrayView prevWordIds,
+            const int wordId, MultiBigramMap *const multiBigramMap) const = 0;
+
+    // TODO: Remove
+    virtual int getProbability(const int unigramProbability, const int bigramProbability) const = 0;
+
+    virtual int getProbabilityOfWord(const WordIdArrayView prevWordIds, const int wordId) const = 0;
+
+    virtual void iterateNgramEntries(const WordIdArrayView prevWordIds,
+            NgramListener *const listener) const = 0;
+
+    virtual BinaryDictionaryShortcutIterator getShortcutIterator(const int wordId) const = 0;
+
+    virtual const DictionaryHeaderStructurePolicy *getHeaderStructurePolicy() const = 0;
+
+    // Returns whether the update was success or not.
+    virtual bool addUnigramEntry(const CodePointArrayView wordCodePoints,
+            const UnigramProperty *const unigramProperty) = 0;
+
+    // Returns whether the update was success or not.
+    virtual bool removeUnigramEntry(const CodePointArrayView wordCodePoints) = 0;
+
+    // Returns whether the update was success or not.
+    virtual bool addNgramEntry(const NgramProperty *const ngramProperty) = 0;
+
+    // Returns whether the update was success or not.
+    virtual bool removeNgramEntry(const NgramContext *const ngramContext,
+            const CodePointArrayView wordCodePoints) = 0;
+
+    // Returns whether the update was success or not.
+    virtual bool updateEntriesForWordWithNgramContext(const NgramContext *const ngramContext,
+            const CodePointArrayView wordCodePoints, const bool isValidWord,
+            const HistoricalInfo historicalInfo) = 0;
+
+    // Returns whether the flush was success or not.
+    virtual bool flush(const char *const filePath) = 0;
+
+    // Returns whether the GC and flush were success or not.
+    virtual bool flushWithGC(const char *const filePath) = 0;
+
+    virtual bool needsToRunGC(const bool mindsBlockByGC) const = 0;
+
+    // Currently, this method is used only for testing. You may want to consider creating new
+    // dedicated method instead of this if you want to use this in the production.
+    virtual void getProperty(const char *const query, const int queryLength, char *const outResult,
+            const int maxResultLength) = 0;
+
+    virtual const WordProperty getWordProperty(const CodePointArrayView wordCodePoints) const = 0;
+
+    // Method to iterate all words in the dictionary.
+    // The returned token has to be used to get the next word. If token is 0, this method newly
+    // starts iterating the dictionary.
+    virtual int getNextWordAndNextToken(const int token, int *const outCodePoints,
+            int *const outCodePointCount) = 0;
+
+    virtual bool isCorrupted() const = 0;
+
+ protected:
+    DictionaryStructureWithBufferPolicy() {}
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(DictionaryStructureWithBufferPolicy);
+};
+} // namespace latinime
+#endif /* LATINIME_DICTIONARY_STRUCTURE_POLICY_H */
diff --git a/native/jni/src/dictionary/interface/ngram_listener.h b/native/jni/src/dictionary/interface/ngram_listener.h
new file mode 100644
index 0000000..2eb5e9f
--- /dev/null
+++ b/native/jni/src/dictionary/interface/ngram_listener.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2014, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_NGRAM_LISTENER_H
+#define LATINIME_NGRAM_LISTENER_H
+
+#include "defines.h"
+
+namespace latinime {
+
+/**
+ * Interface to iterate ngram entries.
+ */
+class NgramListener {
+ public:
+    // ngramProbability is always 0 for v403 decaying dictionary.
+    // TODO: Remove ngramProbability.
+    virtual void onVisitEntry(const int ngramProbability, const int targetWordId) = 0;
+    virtual ~NgramListener() {};
+
+ protected:
+    NgramListener() {}
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(NgramListener);
+
+};
+} // namespace latinime
+#endif /* LATINIME_NGRAM_LISTENER_H */
diff --git a/native/jni/src/dictionary/property/historical_info.h b/native/jni/src/dictionary/property/historical_info.h
new file mode 100644
index 0000000..e5ce1ea
--- /dev/null
+++ b/native/jni/src/dictionary/property/historical_info.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_HISTORICAL_INFO_H
+#define LATINIME_HISTORICAL_INFO_H
+
+#include "defines.h"
+
+namespace latinime {
+
+class HistoricalInfo {
+ public:
+    // Invalid historical info.
+    HistoricalInfo()
+            : mTimestamp(NOT_A_TIMESTAMP), mLevel(0), mCount(0) {}
+
+    HistoricalInfo(const int timestamp, const int level, const int count)
+            : mTimestamp(timestamp), mLevel(level), mCount(count) {}
+
+    bool isValid() const {
+        return mTimestamp != NOT_A_TIMESTAMP;
+    }
+
+    int getTimestamp() const {
+        return mTimestamp;
+    }
+
+    // TODO: Remove
+    int getLevel() const {
+        return mLevel;
+    }
+
+    int getCount() const {
+        return mCount;
+    }
+
+ private:
+    // Default copy constructor is used for using in std::vector.
+    DISALLOW_ASSIGNMENT_OPERATOR(HistoricalInfo);
+
+    const int mTimestamp;
+    const int mLevel;
+    const int mCount;
+};
+} // namespace latinime
+#endif /* LATINIME_HISTORICAL_INFO_H */
diff --git a/native/jni/src/dictionary/property/ngram_context.cpp b/native/jni/src/dictionary/property/ngram_context.cpp
new file mode 100644
index 0000000..7b9c3ef
--- /dev/null
+++ b/native/jni/src/dictionary/property/ngram_context.cpp
@@ -0,0 +1,123 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/property/ngram_context.h"
+
+#include "dictionary/interface/dictionary_structure_with_buffer_policy.h"
+#include "utils/char_utils.h"
+
+namespace latinime {
+
+NgramContext::NgramContext() : mPrevWordCount(0) {}
+
+NgramContext::NgramContext(const NgramContext &ngramContext)
+        : mPrevWordCount(ngramContext.mPrevWordCount) {
+    for (size_t i = 0; i < mPrevWordCount; ++i) {
+        mPrevWordCodePointCount[i] = ngramContext.mPrevWordCodePointCount[i];
+        memmove(mPrevWordCodePoints[i], ngramContext.mPrevWordCodePoints[i],
+                sizeof(mPrevWordCodePoints[i][0]) * mPrevWordCodePointCount[i]);
+        mIsBeginningOfSentence[i] = ngramContext.mIsBeginningOfSentence[i];
+    }
+}
+
+NgramContext::NgramContext(const int prevWordCodePoints[][MAX_WORD_LENGTH],
+        const int *const prevWordCodePointCount, const bool *const isBeginningOfSentence,
+        const size_t prevWordCount)
+        : mPrevWordCount(std::min(NELEMS(mPrevWordCodePoints), prevWordCount)) {
+    clear();
+    for (size_t i = 0; i < mPrevWordCount; ++i) {
+        if (prevWordCodePointCount[i] < 0 || prevWordCodePointCount[i] > MAX_WORD_LENGTH) {
+            continue;
+        }
+        memmove(mPrevWordCodePoints[i], prevWordCodePoints[i],
+                sizeof(mPrevWordCodePoints[i][0]) * prevWordCodePointCount[i]);
+        mPrevWordCodePointCount[i] = prevWordCodePointCount[i];
+        mIsBeginningOfSentence[i] = isBeginningOfSentence[i];
+    }
+}
+
+NgramContext::NgramContext(const int *const prevWordCodePoints, const int prevWordCodePointCount,
+        const bool isBeginningOfSentence) : mPrevWordCount(1) {
+    clear();
+    if (prevWordCodePointCount > MAX_WORD_LENGTH || !prevWordCodePoints) {
+        return;
+    }
+    memmove(mPrevWordCodePoints[0], prevWordCodePoints,
+            sizeof(mPrevWordCodePoints[0][0]) * prevWordCodePointCount);
+    mPrevWordCodePointCount[0] = prevWordCodePointCount;
+    mIsBeginningOfSentence[0] = isBeginningOfSentence;
+}
+
+bool NgramContext::isValid() const {
+    if (mPrevWordCodePointCount[0] > 0) {
+        return true;
+    }
+    if (mIsBeginningOfSentence[0]) {
+        return true;
+    }
+    return false;
+}
+
+const CodePointArrayView NgramContext::getNthPrevWordCodePoints(const size_t n) const {
+    if (n <= 0 || n > mPrevWordCount) {
+        return CodePointArrayView();
+    }
+    return CodePointArrayView(mPrevWordCodePoints[n - 1], mPrevWordCodePointCount[n - 1]);
+}
+
+bool NgramContext::isNthPrevWordBeginningOfSentence(const size_t n) const {
+    if (n <= 0 || n > mPrevWordCount) {
+        return false;
+    }
+    return mIsBeginningOfSentence[n - 1];
+}
+
+/* static */ int NgramContext::getWordId(
+        const DictionaryStructureWithBufferPolicy *const dictStructurePolicy,
+        const int *const wordCodePoints, const int wordCodePointCount,
+        const bool isBeginningOfSentence, const bool tryLowerCaseSearch) {
+    if (!dictStructurePolicy || !wordCodePoints || wordCodePointCount > MAX_WORD_LENGTH) {
+        return NOT_A_WORD_ID;
+    }
+    int codePoints[MAX_WORD_LENGTH];
+    int codePointCount = wordCodePointCount;
+    memmove(codePoints, wordCodePoints, sizeof(int) * codePointCount);
+    if (isBeginningOfSentence) {
+        codePointCount = CharUtils::attachBeginningOfSentenceMarker(codePoints, codePointCount,
+                MAX_WORD_LENGTH);
+        if (codePointCount <= 0) {
+            return NOT_A_WORD_ID;
+        }
+    }
+    const CodePointArrayView codePointArrayView(codePoints, codePointCount);
+    const int wordId = dictStructurePolicy->getWordId(codePointArrayView,
+            false /* forceLowerCaseSearch */);
+    if (wordId != NOT_A_WORD_ID || !tryLowerCaseSearch) {
+        // Return the id when when the word was found or doesn't try lower case search.
+        return wordId;
+    }
+    // Check bigrams for lower-cased previous word if original was not found. Useful for
+    // auto-capitalized words like "The [current_word]".
+    return dictStructurePolicy->getWordId(codePointArrayView, true /* forceLowerCaseSearch */);
+}
+
+void NgramContext::clear() {
+    for (size_t i = 0; i < NELEMS(mPrevWordCodePoints); ++i) {
+        mPrevWordCodePointCount[i] = 0;
+        mIsBeginningOfSentence[i] = false;
+    }
+}
+} // namespace latinime
diff --git a/native/jni/src/dictionary/property/ngram_context.h b/native/jni/src/dictionary/property/ngram_context.h
new file mode 100644
index 0000000..9b36199
--- /dev/null
+++ b/native/jni/src/dictionary/property/ngram_context.h
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_NGRAM_CONTEXT_H
+#define LATINIME_NGRAM_CONTEXT_H
+
+#include <array>
+
+#include "defines.h"
+#include "utils/int_array_view.h"
+
+namespace latinime {
+
+class DictionaryStructureWithBufferPolicy;
+
+class NgramContext {
+ public:
+    // No prev word information.
+    NgramContext();
+    // Copy constructor to use this class with std::vector and use this class as a return value.
+    NgramContext(const NgramContext &ngramContext);
+    // Construct from previous words.
+    NgramContext(const int prevWordCodePoints[][MAX_WORD_LENGTH],
+            const int *const prevWordCodePointCount, const bool *const isBeginningOfSentence,
+            const size_t prevWordCount);
+    // Construct from a previous word.
+    NgramContext(const int *const prevWordCodePoints, const int prevWordCodePointCount,
+            const bool isBeginningOfSentence);
+
+    size_t getPrevWordCount() const {
+        return mPrevWordCount;
+    }
+    bool isValid() const;
+
+    template<size_t N>
+    const WordIdArrayView getPrevWordIds(
+            const DictionaryStructureWithBufferPolicy *const dictStructurePolicy,
+            WordIdArray<N> *const prevWordIdBuffer, const bool tryLowerCaseSearch) const {
+        for (size_t i = 0; i < std::min(mPrevWordCount, N); ++i) {
+            prevWordIdBuffer->at(i) = getWordId(dictStructurePolicy, mPrevWordCodePoints[i],
+                    mPrevWordCodePointCount[i], mIsBeginningOfSentence[i], tryLowerCaseSearch);
+        }
+        return WordIdArrayView::fromArray(*prevWordIdBuffer).limit(mPrevWordCount);
+    }
+
+    // n is 1-indexed.
+    const CodePointArrayView getNthPrevWordCodePoints(const size_t n) const;
+    // n is 1-indexed.
+    bool isNthPrevWordBeginningOfSentence(const size_t n) const;
+
+ private:
+    DISALLOW_ASSIGNMENT_OPERATOR(NgramContext);
+
+    static int getWordId(const DictionaryStructureWithBufferPolicy *const dictStructurePolicy,
+            const int *const wordCodePoints, const int wordCodePointCount,
+            const bool isBeginningOfSentence, const bool tryLowerCaseSearch);
+    void clear();
+
+    const size_t mPrevWordCount;
+    int mPrevWordCodePoints[MAX_PREV_WORD_COUNT_FOR_N_GRAM][MAX_WORD_LENGTH];
+    int mPrevWordCodePointCount[MAX_PREV_WORD_COUNT_FOR_N_GRAM];
+    bool mIsBeginningOfSentence[MAX_PREV_WORD_COUNT_FOR_N_GRAM];
+};
+} // namespace latinime
+#endif // LATINIME_NGRAM_CONTEXT_H
diff --git a/native/jni/src/dictionary/property/ngram_property.h b/native/jni/src/dictionary/property/ngram_property.h
new file mode 100644
index 0000000..5f259ec
--- /dev/null
+++ b/native/jni/src/dictionary/property/ngram_property.h
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_NGRAM_PROPERTY_H
+#define LATINIME_NGRAM_PROPERTY_H
+
+#include <vector>
+
+#include "defines.h"
+#include "dictionary/property/historical_info.h"
+#include "dictionary/property/ngram_context.h"
+
+namespace latinime {
+
+class NgramProperty {
+ public:
+    NgramProperty(const NgramContext &ngramContext, const std::vector<int> &&targetCodePoints,
+            const int probability, const HistoricalInfo historicalInfo)
+            : mNgramContext(ngramContext), mTargetCodePoints(std::move(targetCodePoints)),
+              mProbability(probability), mHistoricalInfo(historicalInfo) {}
+
+    const NgramContext *getNgramContext() const {
+        return &mNgramContext;
+    }
+
+    const std::vector<int> *getTargetCodePoints() const {
+        return &mTargetCodePoints;
+    }
+
+    int getProbability() const {
+        return mProbability;
+    }
+
+    const HistoricalInfo getHistoricalInfo() const {
+        return mHistoricalInfo;
+    }
+
+ private:
+    // Default copy constructor is used for using in std::vector.
+    DISALLOW_DEFAULT_CONSTRUCTOR(NgramProperty);
+    DISALLOW_ASSIGNMENT_OPERATOR(NgramProperty);
+
+    const NgramContext mNgramContext;
+    const std::vector<int> mTargetCodePoints;
+    const int mProbability;
+    const HistoricalInfo mHistoricalInfo;
+};
+} // namespace latinime
+#endif // LATINIME_NGRAM_PROPERTY_H
diff --git a/native/jni/src/dictionary/property/unigram_property.h b/native/jni/src/dictionary/property/unigram_property.h
new file mode 100644
index 0000000..92f61b8
--- /dev/null
+++ b/native/jni/src/dictionary/property/unigram_property.h
@@ -0,0 +1,137 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_UNIGRAM_PROPERTY_H
+#define LATINIME_UNIGRAM_PROPERTY_H
+
+#include <vector>
+
+#include "defines.h"
+#include "dictionary/property/historical_info.h"
+
+namespace latinime {
+
+class UnigramProperty {
+ public:
+    class ShortcutProperty {
+     public:
+        ShortcutProperty(const std::vector<int> &&targetCodePoints, const int probability)
+                : mTargetCodePoints(std::move(targetCodePoints)),
+                  mProbability(probability) {}
+
+        const std::vector<int> *getTargetCodePoints() const {
+            return &mTargetCodePoints;
+        }
+
+        int getProbability() const {
+            return mProbability;
+        }
+
+     private:
+        // Default copy constructor is used for using in std::vector.
+        DISALLOW_DEFAULT_CONSTRUCTOR(ShortcutProperty);
+
+        const std::vector<int> mTargetCodePoints;
+        const int mProbability;
+    };
+
+    UnigramProperty()
+            : mRepresentsBeginningOfSentence(false), mIsNotAWord(false),
+              mIsBlacklisted(false), mIsPossiblyOffensive(false), mProbability(NOT_A_PROBABILITY),
+              mHistoricalInfo(), mShortcuts() {}
+
+    // In contexts which do not support the Blacklisted flag (v2, v4<403)
+    UnigramProperty(const bool representsBeginningOfSentence, const bool isNotAWord,
+            const bool isPossiblyOffensive, const int probability,
+            const HistoricalInfo historicalInfo, const std::vector<ShortcutProperty> &&shortcuts)
+            : mRepresentsBeginningOfSentence(representsBeginningOfSentence),
+              mIsNotAWord(isNotAWord), mIsBlacklisted(false),
+              mIsPossiblyOffensive(isPossiblyOffensive), mProbability(probability),
+              mHistoricalInfo(historicalInfo), mShortcuts(std::move(shortcuts)) {}
+
+    // Without shortcuts, in contexts which do not support the Blacklisted flag (v2, v4<403)
+    UnigramProperty(const bool representsBeginningOfSentence, const bool isNotAWord,
+            const bool isPossiblyOffensive, const int probability,
+            const HistoricalInfo historicalInfo)
+            : mRepresentsBeginningOfSentence(representsBeginningOfSentence),
+              mIsNotAWord(isNotAWord), mIsBlacklisted(false),
+              mIsPossiblyOffensive(isPossiblyOffensive), mProbability(probability),
+              mHistoricalInfo(historicalInfo), mShortcuts() {}
+
+    // In contexts which DO support the Blacklisted flag (v403)
+    UnigramProperty(const bool representsBeginningOfSentence, const bool isNotAWord,
+            const bool isBlacklisted, const bool isPossiblyOffensive, const int probability,
+            const HistoricalInfo historicalInfo, const std::vector<ShortcutProperty> &&shortcuts)
+            : mRepresentsBeginningOfSentence(representsBeginningOfSentence),
+              mIsNotAWord(isNotAWord), mIsBlacklisted(isBlacklisted),
+              mIsPossiblyOffensive(isPossiblyOffensive), mProbability(probability),
+              mHistoricalInfo(historicalInfo), mShortcuts(std::move(shortcuts)) {}
+
+    // Without shortcuts, in contexts which DO support the Blacklisted flag (v403)
+    UnigramProperty(const bool representsBeginningOfSentence, const bool isNotAWord,
+            const bool isBlacklisted, const bool isPossiblyOffensive, const int probability,
+            const HistoricalInfo historicalInfo)
+            : mRepresentsBeginningOfSentence(representsBeginningOfSentence),
+              mIsNotAWord(isNotAWord), mIsBlacklisted(isBlacklisted),
+              mIsPossiblyOffensive(isPossiblyOffensive), mProbability(probability),
+              mHistoricalInfo(historicalInfo), mShortcuts() {}
+
+    bool representsBeginningOfSentence() const {
+        return mRepresentsBeginningOfSentence;
+    }
+
+    bool isNotAWord() const {
+        return mIsNotAWord;
+    }
+
+    bool isPossiblyOffensive() const {
+        return mIsPossiblyOffensive;
+    }
+
+    bool isBlacklisted() const {
+        return mIsBlacklisted;
+    }
+
+    bool hasShortcuts() const {
+        return !mShortcuts.empty();
+    }
+
+    int getProbability() const {
+        return mProbability;
+    }
+
+    const HistoricalInfo getHistoricalInfo() const {
+        return mHistoricalInfo;
+    }
+
+    const std::vector<ShortcutProperty> &getShortcuts() const {
+        return mShortcuts;
+    }
+
+ private:
+    // Default copy constructor is used for using as a return value.
+    DISALLOW_ASSIGNMENT_OPERATOR(UnigramProperty);
+
+    const bool mRepresentsBeginningOfSentence;
+    const bool mIsNotAWord;
+    const bool mIsBlacklisted;
+    const bool mIsPossiblyOffensive;
+    const int mProbability;
+    const HistoricalInfo mHistoricalInfo;
+    const std::vector<ShortcutProperty> mShortcuts;
+};
+} // namespace latinime
+#endif // LATINIME_UNIGRAM_PROPERTY_H
diff --git a/native/jni/src/dictionary/property/word_attributes.h b/native/jni/src/dictionary/property/word_attributes.h
new file mode 100644
index 0000000..5351e7d
--- /dev/null
+++ b/native/jni/src/dictionary/property/word_attributes.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2014, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_WORD_ATTRIBUTES_H
+#define LATINIME_WORD_ATTRIBUTES_H
+
+#include "defines.h"
+
+class WordAttributes {
+ public:
+    // Invalid word attributes.
+    WordAttributes()
+            : mProbability(NOT_A_PROBABILITY), mIsBlacklisted(false), mIsNotAWord(false),
+              mIsPossiblyOffensive(false) {}
+
+    WordAttributes(const int probability, const bool isBlacklisted, const bool isNotAWord,
+            const bool isPossiblyOffensive)
+            : mProbability(probability), mIsBlacklisted(isBlacklisted), mIsNotAWord(isNotAWord),
+              mIsPossiblyOffensive(isPossiblyOffensive) {}
+
+    int getProbability() const {
+        return mProbability;
+    }
+
+    bool isBlacklisted() const {
+        return mIsBlacklisted;
+    }
+
+    bool isNotAWord() const {
+        return mIsNotAWord;
+    }
+
+    // Whether or not a word is possibly offensive.
+    // * Static dictionaries <v202, as well as dynamic dictionaries <v403, will set this based on
+    //   whether or not the probability of the word is zero.
+    // * Static dictionaries >=v203 will set this based on the IS_POSSIBLY_OFFENSIVE PtNode flag.
+    // * Dynamic dictionaries >=v403 will set this based on the IS_POSSIBLY_OFFENSIVE language model
+    //   flag (the PtNode flag IS_BLACKLISTED is ignored and kept as zero)
+    //
+    // See the ::getWordAttributes function for each of these dictionary policies for more details.
+    bool isPossiblyOffensive() const {
+        return mIsPossiblyOffensive;
+    }
+
+ private:
+    DISALLOW_ASSIGNMENT_OPERATOR(WordAttributes);
+
+    int mProbability;
+    bool mIsBlacklisted;
+    bool mIsNotAWord;
+    bool mIsPossiblyOffensive;
+};
+
+ // namespace
+#endif /* LATINIME_WORD_ATTRIBUTES_H */
diff --git a/native/jni/src/dictionary/property/word_property.h b/native/jni/src/dictionary/property/word_property.h
new file mode 100644
index 0000000..3028e02
--- /dev/null
+++ b/native/jni/src/dictionary/property/word_property.h
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_WORD_PROPERTY_H
+#define LATINIME_WORD_PROPERTY_H
+
+#include <vector>
+
+#include "defines.h"
+#include "dictionary/property/ngram_property.h"
+#include "dictionary/property/unigram_property.h"
+#include "utils/int_array_view.h"
+
+namespace latinime {
+
+// This class is used for returning information belonging to a word to java side.
+class WordProperty {
+ public:
+    // Default constructor is used to create an instance that indicates an invalid word.
+    WordProperty()
+            : mCodePoints(), mUnigramProperty(), mNgrams() {}
+
+    WordProperty(const std::vector<int> &&codePoints, const UnigramProperty &unigramProperty,
+            const std::vector<NgramProperty> &ngrams)
+            : mCodePoints(std::move(codePoints)), mUnigramProperty(unigramProperty),
+              mNgrams(ngrams) {}
+
+    const CodePointArrayView getCodePoints() const {
+        return CodePointArrayView(mCodePoints);
+    }
+
+    const UnigramProperty &getUnigramProperty() const {
+        return mUnigramProperty;
+    }
+
+    const std::vector<NgramProperty> &getNgramProperties() const {
+        return mNgrams;
+    }
+
+ private:
+    // Default copy constructor is used for using as a return value.
+    DISALLOW_ASSIGNMENT_OPERATOR(WordProperty);
+
+    const std::vector<int> mCodePoints;
+    const UnigramProperty mUnigramProperty;
+    const std::vector<NgramProperty> mNgrams;
+};
+} // namespace latinime
+#endif // LATINIME_WORD_PROPERTY_H
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/Readme.txt b/native/jni/src/dictionary/structure/backward/v402/Readme.txt
similarity index 100%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/Readme.txt
rename to native/jni/src/dictionary/structure/backward/v402/Readme.txt
diff --git a/native/jni/src/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.cpp b/native/jni/src/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.cpp
new file mode 100644
index 0000000..60749bc
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.cpp
@@ -0,0 +1,289 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT CHANGE THE LOGIC IN THIS FILE !!!!!
+ * Do not edit this file other than updating policy's interface.
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/bigram/ver4_bigram_list_policy.cpp
+ */
+
+#include "dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h"
+
+#include "dictionary/header/header_policy.h"
+#include "dictionary/property/ngram_property.h"
+#include "dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.h"
+#include "dictionary/structure/backward/v402/content/bigram_dict_content.h"
+#include "dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
+#include "dictionary/utils/forgetting_curve_utils.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+void Ver4BigramListPolicy::getNextBigram(int *const outBigramPos, int *const outProbability,
+        bool *const outHasNext, int *const bigramEntryPos) const {
+    const BigramEntry bigramEntry =
+            mBigramDictContent->getBigramEntryAndAdvancePosition(bigramEntryPos);
+    if (outBigramPos) {
+        // Lookup target PtNode position.
+        *outBigramPos = mTerminalPositionLookupTable->getTerminalPtNodePosition(
+                bigramEntry.getTargetTerminalId());
+    }
+    if (outProbability) {
+        if (bigramEntry.hasHistoricalInfo()) {
+            *outProbability =
+                    ForgettingCurveUtils::decodeProbability(bigramEntry.getHistoricalInfo(),
+                            mHeaderPolicy);
+        } else {
+            *outProbability = bigramEntry.getProbability();
+        }
+    }
+    if (outHasNext) {
+        *outHasNext = bigramEntry.hasNext();
+    }
+}
+
+bool Ver4BigramListPolicy::addNewEntry(const int terminalId, const int newTargetTerminalId,
+        const NgramProperty *const ngramProperty, bool *const outAddedNewEntry) {
+    // 1. The word has no bigrams yet.
+    // 2. The word has bigrams, and there is the target in the list.
+    // 3. The word has bigrams, and there is an invalid entry that can be reclaimed.
+    // 4. The word has bigrams. We have to append new bigram entry to the list.
+    // 5. Same as 4, but the list is the last entry of the content file.
+    if (outAddedNewEntry) {
+        *outAddedNewEntry = false;
+    }
+    const int bigramListPos = mBigramDictContent->getBigramListHeadPos(terminalId);
+    if (bigramListPos == NOT_A_DICT_POS) {
+        // Case 1. PtNode that doesn't have a bigram list.
+        // Create new bigram list.
+        if (!mBigramDictContent->createNewBigramList(terminalId)) {
+            return false;
+        }
+        const BigramEntry newBigramEntry(false /* hasNext */, NOT_A_PROBABILITY,
+                newTargetTerminalId);
+        const BigramEntry bigramEntryToWrite = createUpdatedBigramEntryFrom(&newBigramEntry,
+                ngramProperty);
+        // Write an entry.
+        const int writingPos =  mBigramDictContent->getBigramListHeadPos(terminalId);
+        if (!mBigramDictContent->writeBigramEntry(&bigramEntryToWrite, writingPos)) {
+            return false;
+        }
+        if (outAddedNewEntry) {
+            *outAddedNewEntry = true;
+        }
+        return true;
+    }
+
+    int tailEntryPos = NOT_A_DICT_POS;
+    const int entryPosToUpdate = getEntryPosToUpdate(newTargetTerminalId, bigramListPos,
+            &tailEntryPos);
+    if (tailEntryPos != NOT_A_DICT_POS || entryPosToUpdate == NOT_A_DICT_POS) {
+        // Case 4, 5.
+        // Add new entry to the bigram list.
+        if (tailEntryPos == NOT_A_DICT_POS) {
+            // Case 4. Create new bigram list.
+            if (!mBigramDictContent->createNewBigramList(terminalId)) {
+                return false;
+            }
+            const int destPos = mBigramDictContent->getBigramListHeadPos(terminalId);
+            // Copy existing bigram list.
+            if (!mBigramDictContent->copyBigramList(bigramListPos, destPos, &tailEntryPos)) {
+                return false;
+            }
+        }
+        // Write new entry at the tail position of the bigram content.
+        const BigramEntry newBigramEntry(false /* hasNext */, NOT_A_PROBABILITY,
+                newTargetTerminalId);
+        const BigramEntry bigramEntryToWrite = createUpdatedBigramEntryFrom(
+                &newBigramEntry, ngramProperty);
+        if (!mBigramDictContent->writeBigramEntryAtTail(&bigramEntryToWrite)) {
+            return false;
+        }
+        // Update has next flag of the tail entry.
+        if (!updateHasNextFlag(true /* hasNext */, tailEntryPos)) {
+            return false;
+        }
+        if (outAddedNewEntry) {
+            *outAddedNewEntry = true;
+        }
+        return true;
+    }
+
+    // Case 2. Overwrite the existing entry. Case 3. Reclaim and reuse the existing invalid entry.
+    const BigramEntry originalBigramEntry = mBigramDictContent->getBigramEntry(entryPosToUpdate);
+    if (!originalBigramEntry.isValid()) {
+        // Case 3. Reuse the existing invalid entry. outAddedNewEntry is false when an existing
+        // entry is updated.
+        if (outAddedNewEntry) {
+            *outAddedNewEntry = true;
+        }
+    }
+    const BigramEntry updatedBigramEntry =
+            originalBigramEntry.updateTargetTerminalIdAndGetEntry(newTargetTerminalId);
+    const BigramEntry bigramEntryToWrite = createUpdatedBigramEntryFrom(
+            &updatedBigramEntry, ngramProperty);
+    return mBigramDictContent->writeBigramEntry(&bigramEntryToWrite, entryPosToUpdate);
+}
+
+bool Ver4BigramListPolicy::removeEntry(const int terminalId, const int targetTerminalId) {
+    const int bigramListPos = mBigramDictContent->getBigramListHeadPos(terminalId);
+    if (bigramListPos == NOT_A_DICT_POS) {
+        // Bigram list doesn't exist.
+        return false;
+    }
+    const int entryPosToUpdate = getEntryPosToUpdate(targetTerminalId, bigramListPos,
+            nullptr /* outTailEntryPos */);
+    if (entryPosToUpdate == NOT_A_DICT_POS) {
+        // Bigram entry doesn't exist.
+        return false;
+    }
+    const BigramEntry bigramEntry = mBigramDictContent->getBigramEntry(entryPosToUpdate);
+    if (targetTerminalId != bigramEntry.getTargetTerminalId()) {
+        // Bigram entry doesn't exist.
+        return false;
+    }
+    // Remove bigram entry by marking it as invalid entry and overwriting the original entry.
+    const BigramEntry updatedBigramEntry = bigramEntry.getInvalidatedEntry();
+    return mBigramDictContent->writeBigramEntry(&updatedBigramEntry, entryPosToUpdate);
+}
+
+bool Ver4BigramListPolicy::updateAllBigramEntriesAndDeleteUselessEntries(const int terminalId,
+        int *const outBigramCount) {
+    const int bigramListPos = mBigramDictContent->getBigramListHeadPos(terminalId);
+    if (bigramListPos == NOT_A_DICT_POS) {
+        // Bigram list doesn't exist.
+        return true;
+    }
+    bool hasNext = true;
+    int readingPos = bigramListPos;
+    while (hasNext) {
+        const int entryPos = readingPos;
+        const BigramEntry bigramEntry =
+                mBigramDictContent->getBigramEntryAndAdvancePosition(&readingPos);
+        hasNext = bigramEntry.hasNext();
+        if (!bigramEntry.isValid()) {
+            continue;
+        }
+        const int targetPtNodePos = mTerminalPositionLookupTable->getTerminalPtNodePosition(
+                bigramEntry.getTargetTerminalId());
+        if (targetPtNodePos == NOT_A_DICT_POS) {
+            // Invalidate bigram entry.
+            const BigramEntry updatedBigramEntry = bigramEntry.getInvalidatedEntry();
+            if (!mBigramDictContent->writeBigramEntry(&updatedBigramEntry, entryPos)) {
+                return false;
+            }
+        } else if (bigramEntry.hasHistoricalInfo()) {
+            const HistoricalInfo historicalInfo = ForgettingCurveUtils::createHistoricalInfoToSave(
+                    bigramEntry.getHistoricalInfo(), mHeaderPolicy);
+            if (ForgettingCurveUtils::needsToKeep(&historicalInfo, mHeaderPolicy)) {
+                const BigramEntry updatedBigramEntry =
+                        bigramEntry.updateHistoricalInfoAndGetEntry(&historicalInfo);
+                if (!mBigramDictContent->writeBigramEntry(&updatedBigramEntry, entryPos)) {
+                    return false;
+                }
+                *outBigramCount += 1;
+            } else {
+                // Remove entry.
+                const BigramEntry updatedBigramEntry = bigramEntry.getInvalidatedEntry();
+                if (!mBigramDictContent->writeBigramEntry(&updatedBigramEntry, entryPos)) {
+                    return false;
+                }
+            }
+        } else {
+            *outBigramCount += 1;
+        }
+    }
+    return true;
+}
+
+int Ver4BigramListPolicy::getBigramEntryConut(const int terminalId) {
+    const int bigramListPos = mBigramDictContent->getBigramListHeadPos(terminalId);
+    if (bigramListPos == NOT_A_DICT_POS) {
+        // Bigram list doesn't exist.
+        return 0;
+    }
+    int bigramCount = 0;
+    bool hasNext = true;
+    int readingPos = bigramListPos;
+    while (hasNext) {
+        const BigramEntry bigramEntry =
+                mBigramDictContent->getBigramEntryAndAdvancePosition(&readingPos);
+        hasNext = bigramEntry.hasNext();
+        if (bigramEntry.isValid()) {
+            bigramCount++;
+        }
+    }
+    return bigramCount;
+}
+
+int Ver4BigramListPolicy::getEntryPosToUpdate(const int targetTerminalIdToFind,
+        const int bigramListPos, int *const outTailEntryPos) const {
+    if (outTailEntryPos) {
+        *outTailEntryPos = NOT_A_DICT_POS;
+    }
+    bool hasNext = true;
+    int invalidEntryPos = NOT_A_DICT_POS;
+    int readingPos = bigramListPos;
+    while (hasNext) {
+        const int entryPos = readingPos;
+        const BigramEntry bigramEntry =
+                mBigramDictContent->getBigramEntryAndAdvancePosition(&readingPos);
+        hasNext = bigramEntry.hasNext();
+        if (bigramEntry.getTargetTerminalId() == targetTerminalIdToFind) {
+            // Entry with same target is found.
+            return entryPos;
+        } else if (!bigramEntry.isValid()) {
+            // Invalid entry that can be reused is found.
+            invalidEntryPos = entryPos;
+        }
+        if (!hasNext && mBigramDictContent->isContentTailPos(readingPos)) {
+            if (outTailEntryPos) {
+                *outTailEntryPos = entryPos;
+            }
+        }
+    }
+    return invalidEntryPos;
+}
+
+const BigramEntry Ver4BigramListPolicy::createUpdatedBigramEntryFrom(
+        const BigramEntry *const originalBigramEntry,
+        const NgramProperty *const ngramProperty) const {
+    // TODO: Consolidate historical info and probability.
+    if (mHeaderPolicy->hasHistoricalInfoOfWords()) {
+        const HistoricalInfo &historicalInfoForUpdate = ngramProperty->getHistoricalInfo();
+        const HistoricalInfo updatedHistoricalInfo =
+                ForgettingCurveUtils::createUpdatedHistoricalInfo(
+                        originalBigramEntry->getHistoricalInfo(), ngramProperty->getProbability(),
+                        &historicalInfoForUpdate, mHeaderPolicy);
+        return originalBigramEntry->updateHistoricalInfoAndGetEntry(&updatedHistoricalInfo);
+    } else {
+        return originalBigramEntry->updateProbabilityAndGetEntry(ngramProperty->getProbability());
+    }
+}
+
+bool Ver4BigramListPolicy::updateHasNextFlag(const bool hasNext, const int bigramEntryPos) {
+    const BigramEntry bigramEntry = mBigramDictContent->getBigramEntry(bigramEntryPos);
+    const BigramEntry updatedBigramEntry = bigramEntry.updateHasNextAndGetEntry(hasNext);
+    return mBigramDictContent->writeBigramEntry(&updatedBigramEntry, bigramEntryPos);
+}
+
+} // namespace v402
+} // namespace backward
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h b/native/jni/src/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h
new file mode 100644
index 0000000..58c88ce
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT CHANGE THE LOGIC IN THIS FILE !!!!!
+ * Do not edit this file other than updating policy's interface.
+ *
+ * This file was generated from
+ *   suggest/policyimpl/dictionary/structure/v4/bigram/ver4_bigram_list_policy.h
+ */
+
+#ifndef LATINIME_BACKWARD_V402_VER4_BIGRAM_LIST_POLICY_H
+#define LATINIME_BACKWARD_V402_VER4_BIGRAM_LIST_POLICY_H
+
+#include "defines.h"
+#include "dictionary/interface/dictionary_bigrams_structure_policy.h"
+#include "dictionary/structure/backward/v402/content/bigram_entry.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+class BigramDictContent;
+} // namespace v402
+} // namespace backward
+class NgramProperty;
+namespace backward {
+namespace v402 {
+} // namespace v402
+} // namespace backward
+class HeaderPolicy;
+namespace backward {
+namespace v402 {
+class TerminalPositionLookupTable;
+
+class Ver4BigramListPolicy : public DictionaryBigramsStructurePolicy {
+ public:
+    Ver4BigramListPolicy(BigramDictContent *const bigramDictContent,
+            const TerminalPositionLookupTable *const terminalPositionLookupTable,
+            const HeaderPolicy *const headerPolicy)
+            : mBigramDictContent(bigramDictContent),
+              mTerminalPositionLookupTable(terminalPositionLookupTable),
+              mHeaderPolicy(headerPolicy) {}
+
+    void getNextBigram(int *const outBigramPos, int *const outProbability,
+            bool *const outHasNext, int *const bigramEntryPos) const;
+
+    bool skipAllBigrams(int *const pos) const {
+        // Do nothing because we don't need to skip bigram lists in ver4 dictionaries.
+        return true;
+    }
+
+    bool addNewEntry(const int terminalId, const int newTargetTerminalId,
+            const NgramProperty *const ngramProperty, bool *const outAddedNewEntry);
+
+    bool removeEntry(const int terminalId, const int targetTerminalId);
+
+    bool updateAllBigramEntriesAndDeleteUselessEntries(const int terminalId,
+            int *const outBigramCount);
+
+    int getBigramEntryConut(const int terminalId);
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(Ver4BigramListPolicy);
+
+    int getEntryPosToUpdate(const int targetTerminalIdToFind, const int bigramListPos,
+            int *const outTailEntryPos) const;
+
+    const BigramEntry createUpdatedBigramEntryFrom(const BigramEntry *const originalBigramEntry,
+            const NgramProperty *const ngramProperty) const;
+
+    bool updateHasNextFlag(const bool hasNext, const int bigramEntryPos);
+
+    BigramDictContent *const mBigramDictContent;
+    const TerminalPositionLookupTable *const mTerminalPositionLookupTable;
+    const HeaderPolicy *const mHeaderPolicy;
+};
+} // namespace v402
+} // namespace backward
+} // namespace latinime
+#endif /* LATINIME_BACKWARD_V402_VER4_BIGRAM_LIST_POLICY_H */
diff --git a/native/jni/src/dictionary/structure/backward/v402/content/bigram_dict_content.cpp b/native/jni/src/dictionary/structure/backward/v402/content/bigram_dict_content.cpp
new file mode 100644
index 0000000..7fa85de
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/content/bigram_dict_content.cpp
@@ -0,0 +1,226 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/content/bigram_dict_content.cpp
+ */
+
+#include "dictionary/structure/backward/v402/content/bigram_dict_content.h"
+
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+const BigramEntry BigramDictContent::getBigramEntryAndAdvancePosition(
+        int *const bigramEntryPos) const {
+    const BufferWithExtendableBuffer *const bigramListBuffer = getContentBuffer();
+    const int bigramEntryTailPos = (*bigramEntryPos) + getBigramEntrySize();
+    if (*bigramEntryPos < 0 || bigramEntryTailPos > bigramListBuffer->getTailPosition()) {
+        AKLOGE("Invalid bigram entry position. bigramEntryPos: %d, bigramEntryTailPos: %d, "
+                "bufSize: %d", *bigramEntryPos, bigramEntryTailPos,
+                        bigramListBuffer->getTailPosition());
+        ASSERT(false);
+        return BigramEntry(false /* hasNext */, NOT_A_PROBABILITY,
+                Ver4DictConstants::NOT_A_TERMINAL_ID);
+    }
+    const int bigramFlags = bigramListBuffer->readUintAndAdvancePosition(
+            Ver4DictConstants::BIGRAM_FLAGS_FIELD_SIZE, bigramEntryPos);
+    const bool hasNext = (bigramFlags & Ver4DictConstants::BIGRAM_HAS_NEXT_MASK) != 0;
+    int probability = NOT_A_PROBABILITY;
+    int timestamp = NOT_A_TIMESTAMP;
+    int level = 0;
+    int count = 0;
+    if (mHasHistoricalInfo) {
+        timestamp = bigramListBuffer->readUintAndAdvancePosition(
+                Ver4DictConstants::TIME_STAMP_FIELD_SIZE, bigramEntryPos);
+        level = bigramListBuffer->readUintAndAdvancePosition(
+                Ver4DictConstants::WORD_LEVEL_FIELD_SIZE, bigramEntryPos);
+        count = bigramListBuffer->readUintAndAdvancePosition(
+                Ver4DictConstants::WORD_COUNT_FIELD_SIZE, bigramEntryPos);
+    } else {
+        probability = bigramListBuffer->readUintAndAdvancePosition(
+                Ver4DictConstants::PROBABILITY_SIZE, bigramEntryPos);
+    }
+    const int encodedTargetTerminalId = bigramListBuffer->readUintAndAdvancePosition(
+            Ver4DictConstants::BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE, bigramEntryPos);
+    const int targetTerminalId =
+            (encodedTargetTerminalId == Ver4DictConstants::INVALID_BIGRAM_TARGET_TERMINAL_ID) ?
+                    Ver4DictConstants::NOT_A_TERMINAL_ID : encodedTargetTerminalId;
+    if (mHasHistoricalInfo) {
+        // Hack for better migration.
+        count += level;
+        const HistoricalInfo historicalInfo(timestamp, level, count);
+        return BigramEntry(hasNext, probability, &historicalInfo, targetTerminalId);
+    } else {
+        return BigramEntry(hasNext, probability, targetTerminalId);
+    }
+}
+
+bool BigramDictContent::writeBigramEntryAndAdvancePosition(
+        const BigramEntry *const bigramEntryToWrite, int *const entryWritingPos) {
+    BufferWithExtendableBuffer *const bigramListBuffer = getWritableContentBuffer();
+    const int bigramFlags = createAndGetBigramFlags(bigramEntryToWrite->hasNext());
+    if (!bigramListBuffer->writeUintAndAdvancePosition(bigramFlags,
+            Ver4DictConstants::BIGRAM_FLAGS_FIELD_SIZE, entryWritingPos)) {
+        AKLOGE("Cannot write bigram flags. pos: %d, flags: %x", *entryWritingPos, bigramFlags);
+        return false;
+    }
+    if (mHasHistoricalInfo) {
+        const HistoricalInfo *const historicalInfo = bigramEntryToWrite->getHistoricalInfo();
+        if (!bigramListBuffer->writeUintAndAdvancePosition(historicalInfo->getTimestamp(),
+                Ver4DictConstants::TIME_STAMP_FIELD_SIZE, entryWritingPos)) {
+            AKLOGE("Cannot write bigram timestamps. pos: %d, timestamp: %d", *entryWritingPos,
+                    historicalInfo->getTimestamp());
+            return false;
+        }
+        if (!bigramListBuffer->writeUintAndAdvancePosition(historicalInfo->getLevel(),
+                Ver4DictConstants::WORD_LEVEL_FIELD_SIZE, entryWritingPos)) {
+            AKLOGE("Cannot write bigram level. pos: %d, level: %d", *entryWritingPos,
+                    historicalInfo->getLevel());
+            return false;
+        }
+        if (!bigramListBuffer->writeUintAndAdvancePosition(historicalInfo->getCount(),
+                Ver4DictConstants::WORD_COUNT_FIELD_SIZE, entryWritingPos)) {
+            AKLOGE("Cannot write bigram count. pos: %d, count: %d", *entryWritingPos,
+                    historicalInfo->getCount());
+            return false;
+        }
+    } else {
+        if (!bigramListBuffer->writeUintAndAdvancePosition(bigramEntryToWrite->getProbability(),
+                Ver4DictConstants::PROBABILITY_SIZE, entryWritingPos)) {
+            AKLOGE("Cannot write bigram probability. pos: %d, probability: %d", *entryWritingPos,
+                    bigramEntryToWrite->getProbability());
+            return false;
+        }
+    }
+    const int targetTerminalIdToWrite =
+            (bigramEntryToWrite->getTargetTerminalId() == Ver4DictConstants::NOT_A_TERMINAL_ID) ?
+                    Ver4DictConstants::INVALID_BIGRAM_TARGET_TERMINAL_ID :
+                            bigramEntryToWrite->getTargetTerminalId();
+    if (!bigramListBuffer->writeUintAndAdvancePosition(targetTerminalIdToWrite,
+            Ver4DictConstants::BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE, entryWritingPos)) {
+        AKLOGE("Cannot write bigram target terminal id. pos: %d, target terminal id: %d",
+                *entryWritingPos, bigramEntryToWrite->getTargetTerminalId());
+        return false;
+    }
+    return true;
+}
+
+bool BigramDictContent::copyBigramList(const int bigramListPos, const int toPos,
+        int *const outTailEntryPos) {
+    int readingPos = bigramListPos;
+    int writingPos = toPos;
+    bool hasNext = true;
+    while (hasNext) {
+        const BigramEntry bigramEntry = getBigramEntryAndAdvancePosition(&readingPos);
+        hasNext = bigramEntry.hasNext();
+        if (!hasNext) {
+            *outTailEntryPos = writingPos;
+        }
+        if (!writeBigramEntryAndAdvancePosition(&bigramEntry, &writingPos)) {
+            AKLOGE("Cannot write bigram entry to copy. pos: %d", writingPos);
+            return false;
+        }
+    }
+    return true;
+}
+
+bool BigramDictContent::runGC(const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
+        const BigramDictContent *const originalBigramDictContent,
+        int *const outBigramEntryCount) {
+    for (TerminalPositionLookupTable::TerminalIdMap::const_iterator it = terminalIdMap->begin();
+            it != terminalIdMap->end(); ++it) {
+        const int originalBigramListPos =
+                originalBigramDictContent->getBigramListHeadPos(it->first);
+        if (originalBigramListPos == NOT_A_DICT_POS) {
+            // This terminal does not have a bigram list.
+            continue;
+        }
+        const int bigramListPos = getContentBuffer()->getTailPosition();
+        int bigramEntryCount = 0;
+        // Copy bigram list with GC from original content.
+        if (!runGCBigramList(originalBigramListPos, originalBigramDictContent, bigramListPos,
+                terminalIdMap, &bigramEntryCount)) {
+            AKLOGE("Cannot complete GC for the bigram list. original pos: %d, pos: %d",
+                    originalBigramListPos, bigramListPos);
+            return false;
+        }
+        if (bigramEntryCount == 0) {
+            // All bigram entries are useless. This terminal does not have a bigram list.
+            continue;
+        }
+        *outBigramEntryCount += bigramEntryCount;
+        // Set bigram list position to the lookup table.
+        if (!getUpdatableAddressLookupTable()->set(it->second, bigramListPos)) {
+            AKLOGE("Cannot set bigram list position. terminal id: %d, pos: %d",
+                    it->second, bigramListPos);
+            return false;
+        }
+    }
+    return true;
+}
+
+// Returns whether GC for the bigram list was succeeded or not.
+bool BigramDictContent::runGCBigramList(const int bigramListPos,
+        const BigramDictContent *const sourceBigramDictContent, const int toPos,
+        const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
+        int *const outEntrycount) {
+    bool hasNext = true;
+    int readingPos = bigramListPos;
+    int writingPos = toPos;
+    int lastEntryPos = NOT_A_DICT_POS;
+    while (hasNext) {
+        const BigramEntry originalBigramEntry =
+                sourceBigramDictContent->getBigramEntryAndAdvancePosition(&readingPos);
+        hasNext = originalBigramEntry.hasNext();
+        if (originalBigramEntry.getTargetTerminalId() == Ver4DictConstants::NOT_A_TERMINAL_ID) {
+            continue;
+        }
+        TerminalPositionLookupTable::TerminalIdMap::const_iterator it =
+                terminalIdMap->find(originalBigramEntry.getTargetTerminalId());
+        if (it == terminalIdMap->end()) {
+            // Target word has been removed.
+            continue;
+        }
+        lastEntryPos = hasNext ? writingPos : NOT_A_DICT_POS;
+        const BigramEntry updatedBigramEntry =
+                originalBigramEntry.updateTargetTerminalIdAndGetEntry(it->second);
+        if (!writeBigramEntryAndAdvancePosition(&updatedBigramEntry, &writingPos)) {
+            AKLOGE("Cannot write bigram entry to run GC. pos: %d", writingPos);
+            return false;
+        }
+        *outEntrycount += 1;
+    }
+    if (lastEntryPos != NOT_A_DICT_POS) {
+        // Update has next flag in the last written entry.
+        const BigramEntry bigramEntry = getBigramEntry(lastEntryPos).updateHasNextAndGetEntry(
+                false /* hasNext */);
+        if (!writeBigramEntry(&bigramEntry, lastEntryPos)) {
+            AKLOGE("Cannot write bigram entry to set hasNext flag after GC. pos: %d", writingPos);
+            return false;
+        }
+    }
+    return true;
+}
+
+} // namespace v402
+} // namespace backward
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/backward/v402/content/bigram_dict_content.h b/native/jni/src/dictionary/structure/backward/v402/content/bigram_dict_content.h
new file mode 100644
index 0000000..14f334a
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/content/bigram_dict_content.h
@@ -0,0 +1,135 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/content/bigram_dict_content.h
+ */
+
+#ifndef LATINIME_BACKWARD_V402_BIGRAM_DICT_CONTENT_H
+#define LATINIME_BACKWARD_V402_BIGRAM_DICT_CONTENT_H
+
+#include "defines.h"
+#include "dictionary/structure/backward/v402/content/bigram_entry.h"
+#include "dictionary/structure/backward/v402/content/sparse_table_dict_content.h"
+#include "dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+class BigramDictContent : public SparseTableDictContent {
+ public:
+    BigramDictContent(const char *const dictPath, const bool hasHistoricalInfo,
+            const bool isUpdatable)
+            : SparseTableDictContent(dictPath,
+                      Ver4DictConstants::BIGRAM_LOOKUP_TABLE_FILE_EXTENSION,
+                      Ver4DictConstants::BIGRAM_CONTENT_TABLE_FILE_EXTENSION,
+                      Ver4DictConstants::BIGRAM_FILE_EXTENSION, isUpdatable,
+                      Ver4DictConstants::BIGRAM_ADDRESS_TABLE_BLOCK_SIZE,
+                      Ver4DictConstants::BIGRAM_ADDRESS_TABLE_DATA_SIZE),
+              mHasHistoricalInfo(hasHistoricalInfo) {}
+
+    BigramDictContent(const bool hasHistoricalInfo)
+            : SparseTableDictContent(Ver4DictConstants::BIGRAM_ADDRESS_TABLE_BLOCK_SIZE,
+                      Ver4DictConstants::BIGRAM_ADDRESS_TABLE_DATA_SIZE),
+              mHasHistoricalInfo(hasHistoricalInfo) {}
+
+    const BigramEntry getBigramEntry(const int bigramEntryPos) const {
+        int readingPos = bigramEntryPos;
+        return getBigramEntryAndAdvancePosition(&readingPos);
+    }
+
+    const BigramEntry getBigramEntryAndAdvancePosition(int *const bigramEntryPos) const;
+
+    // Returns head position of bigram list for a PtNode specified by terminalId.
+    int getBigramListHeadPos(const int terminalId) const {
+        const SparseTable *const addressLookupTable = getAddressLookupTable();
+        if (!addressLookupTable->contains(terminalId)) {
+            return NOT_A_DICT_POS;
+        }
+        return addressLookupTable->get(terminalId);
+    }
+
+    bool writeBigramEntryAtTail(const BigramEntry *const bigramEntryToWrite) {
+        int writingPos = getContentBuffer()->getTailPosition();
+        return writeBigramEntryAndAdvancePosition(bigramEntryToWrite, &writingPos);
+    }
+
+    bool writeBigramEntry(const BigramEntry *const bigramEntryToWrite, const int entryWritingPos) {
+        int writingPos = entryWritingPos;
+        return writeBigramEntryAndAdvancePosition(bigramEntryToWrite, &writingPos);
+    }
+
+    bool writeBigramEntryAndAdvancePosition(const BigramEntry *const bigramEntryToWrite,
+            int *const entryWritingPos);
+
+    bool createNewBigramList(const int terminalId) {
+        const int bigramListPos = getContentBuffer()->getTailPosition();
+        return getUpdatableAddressLookupTable()->set(terminalId, bigramListPos);
+    }
+
+    bool copyBigramList(const int bigramListPos, const int toPos, int *const outTailEntryPos);
+
+    bool flushToFile(const char *const dictPath) const {
+        return flush(dictPath, Ver4DictConstants::BIGRAM_LOOKUP_TABLE_FILE_EXTENSION,
+                Ver4DictConstants::BIGRAM_CONTENT_TABLE_FILE_EXTENSION,
+                Ver4DictConstants::BIGRAM_FILE_EXTENSION);
+    }
+
+    bool runGC(const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
+            const BigramDictContent *const originalBigramDictContent,
+            int *const outBigramEntryCount);
+
+    bool isContentTailPos(const int pos) const {
+        return pos == getContentBuffer()->getTailPosition();
+    }
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(BigramDictContent);
+
+    int createAndGetBigramFlags(const bool hasNext) const {
+        return hasNext ? Ver4DictConstants::BIGRAM_HAS_NEXT_MASK : 0;
+    }
+
+    int getBigramEntrySize() const {
+        if (mHasHistoricalInfo) {
+            return Ver4DictConstants::BIGRAM_FLAGS_FIELD_SIZE
+                    + Ver4DictConstants::TIME_STAMP_FIELD_SIZE
+                    + Ver4DictConstants::WORD_LEVEL_FIELD_SIZE
+                    + Ver4DictConstants::WORD_COUNT_FIELD_SIZE
+                    + Ver4DictConstants::BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE;
+        } else {
+            return Ver4DictConstants::BIGRAM_FLAGS_FIELD_SIZE
+                    + Ver4DictConstants::PROBABILITY_SIZE
+                    + Ver4DictConstants::BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE;
+        }
+    }
+
+    bool runGCBigramList(const int bigramListPos,
+            const BigramDictContent *const sourceBigramDictContent, const int toPos,
+            const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
+            int *const outEntryCount);
+
+    bool mHasHistoricalInfo;
+};
+} // namespace v402
+} // namespace backward
+} // namespace latinime
+#endif /* LATINIME_BACKWARD_V402_BIGRAM_DICT_CONTENT_H */
diff --git a/native/jni/src/dictionary/structure/backward/v402/content/bigram_entry.h b/native/jni/src/dictionary/structure/backward/v402/content/bigram_entry.h
new file mode 100644
index 0000000..36ad855
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/content/bigram_entry.h
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/content/bigram_entry.h
+ */
+
+#ifndef LATINIME_BACKWARD_V402_BIGRAM_ENTRY_H
+#define LATINIME_BACKWARD_V402_BIGRAM_ENTRY_H
+
+#include "defines.h"
+#include "dictionary/property/historical_info.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+class BigramEntry {
+ public:
+    BigramEntry(const BigramEntry& bigramEntry)
+            : mHasNext(bigramEntry.mHasNext), mProbability(bigramEntry.mProbability),
+              mHistoricalInfo(), mTargetTerminalId(bigramEntry.mTargetTerminalId) {}
+
+    // Entry with historical information.
+    BigramEntry(const bool hasNext, const int probability, const int targetTerminalId)
+            : mHasNext(hasNext), mProbability(probability), mHistoricalInfo(),
+              mTargetTerminalId(targetTerminalId) {}
+
+    // Entry with historical information.
+    BigramEntry(const bool hasNext, const int probability,
+            const HistoricalInfo *const historicalInfo, const int targetTerminalId)
+            : mHasNext(hasNext), mProbability(probability), mHistoricalInfo(*historicalInfo),
+              mTargetTerminalId(targetTerminalId) {}
+
+    const BigramEntry getInvalidatedEntry() const {
+        return updateTargetTerminalIdAndGetEntry(Ver4DictConstants::NOT_A_TERMINAL_ID);
+    }
+
+    const BigramEntry updateHasNextAndGetEntry(const bool hasNext) const {
+        return BigramEntry(hasNext, mProbability, &mHistoricalInfo, mTargetTerminalId);
+    }
+
+    const BigramEntry updateTargetTerminalIdAndGetEntry(const int newTargetTerminalId) const {
+        return BigramEntry(mHasNext, mProbability, &mHistoricalInfo, newTargetTerminalId);
+    }
+
+    const BigramEntry updateProbabilityAndGetEntry(const int probability) const {
+        return BigramEntry(mHasNext, probability, &mHistoricalInfo, mTargetTerminalId);
+    }
+
+    const BigramEntry updateHistoricalInfoAndGetEntry(
+            const HistoricalInfo *const historicalInfo) const {
+        return BigramEntry(mHasNext, mProbability, historicalInfo, mTargetTerminalId);
+    }
+
+    bool isValid() const {
+        return mTargetTerminalId != Ver4DictConstants::NOT_A_TERMINAL_ID;
+    }
+
+    bool hasNext() const {
+        return mHasNext;
+    }
+
+    int getProbability() const {
+        return mProbability;
+    }
+
+    bool hasHistoricalInfo() const {
+        return mHistoricalInfo.isValid();
+    }
+
+    const HistoricalInfo *getHistoricalInfo() const {
+        return &mHistoricalInfo;
+    }
+
+    int getTargetTerminalId() const {
+        return mTargetTerminalId;
+    }
+
+ private:
+    // Copy constructor is public to use this class as a type of return value.
+    DISALLOW_DEFAULT_CONSTRUCTOR(BigramEntry);
+    DISALLOW_ASSIGNMENT_OPERATOR(BigramEntry);
+
+    const bool mHasNext;
+    const int mProbability;
+    const HistoricalInfo mHistoricalInfo;
+    const int mTargetTerminalId;
+};
+} // namespace v402
+} // namespace backward
+} // namespace latinime
+#endif /* LATINIME_BACKWARD_V402_BIGRAM_ENTRY_H */
diff --git a/native/jni/src/dictionary/structure/backward/v402/content/dict_content.h b/native/jni/src/dictionary/structure/backward/v402/content/dict_content.h
new file mode 100644
index 0000000..d3b84fa
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/content/dict_content.h
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/content/dict_content.h
+ */
+
+#ifndef LATINIME_BACKWARD_V402_DICT_CONTENT_H
+#define LATINIME_BACKWARD_V402_DICT_CONTENT_H
+
+#include "defines.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+class DictContent {
+ public:
+    virtual ~DictContent() {}
+    virtual bool isValid() const = 0;
+
+ protected:
+    DictContent() {}
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(DictContent);
+};
+} // namespace v402
+} // namespace backward
+} // namespace latinime
+#endif /* LATINIME_BACKWARD_V402_DICT_CONTENT_H */
diff --git a/native/jni/src/dictionary/structure/backward/v402/content/probability_dict_content.cpp b/native/jni/src/dictionary/structure/backward/v402/content/probability_dict_content.cpp
new file mode 100644
index 0000000..b167f0a
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/content/probability_dict_content.cpp
@@ -0,0 +1,170 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/content/probability_dict_content.cpp
+ */
+
+#include "dictionary/structure/backward/v402/content/probability_dict_content.h"
+
+#include "dictionary/structure/backward/v402/content/probability_entry.h"
+#include "dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+const ProbabilityEntry ProbabilityDictContent::getProbabilityEntry(const int terminalId) const {
+    if (terminalId < 0 || terminalId >= mSize) {
+        // This method can be called with invalid terminal id during GC.
+        return ProbabilityEntry(0 /* flags */, NOT_A_PROBABILITY);
+    }
+    const BufferWithExtendableBuffer *const buffer = getBuffer();
+    int entryPos = getEntryPos(terminalId);
+    const int flags = buffer->readUintAndAdvancePosition(
+            Ver4DictConstants::FLAGS_IN_PROBABILITY_FILE_SIZE, &entryPos);
+    const int probability = buffer->readUintAndAdvancePosition(
+            Ver4DictConstants::PROBABILITY_SIZE, &entryPos);
+    if (mHasHistoricalInfo) {
+        const int timestamp = buffer->readUintAndAdvancePosition(
+                Ver4DictConstants::TIME_STAMP_FIELD_SIZE, &entryPos);
+        const int level = buffer->readUintAndAdvancePosition(
+                Ver4DictConstants::WORD_LEVEL_FIELD_SIZE, &entryPos);
+        const int count = buffer->readUintAndAdvancePosition(
+                Ver4DictConstants::WORD_COUNT_FIELD_SIZE, &entryPos);
+        // Hack for better migration.
+        const HistoricalInfo historicalInfo(timestamp, level, count + level);
+        return ProbabilityEntry(flags, probability, &historicalInfo);
+    } else {
+        return ProbabilityEntry(flags, probability);
+    }
+}
+
+bool ProbabilityDictContent::setProbabilityEntry(const int terminalId,
+        const ProbabilityEntry *const probabilityEntry) {
+    if (terminalId < 0) {
+        return false;
+    }
+    const int entryPos = getEntryPos(terminalId);
+    if (terminalId >= mSize) {
+        ProbabilityEntry dummyEntry;
+        // Write new entry.
+        int writingPos = getBuffer()->getTailPosition();
+        while (writingPos <= entryPos) {
+            // Fulfilling with dummy entries until writingPos.
+            if (!writeEntry(&dummyEntry, writingPos)) {
+                AKLOGE("Cannot write dummy entry. pos: %d, mSize: %d", writingPos, mSize);
+                return false;
+            }
+            writingPos += getEntrySize();
+        }
+        mSize = terminalId + 1;
+    }
+    return writeEntry(probabilityEntry, entryPos);
+}
+
+bool ProbabilityDictContent::flushToFile(const char *const dictPath) const {
+    if (getEntryPos(mSize) < getBuffer()->getTailPosition()) {
+        ProbabilityDictContent probabilityDictContentToWrite(mHasHistoricalInfo);
+        for (int i = 0; i < mSize; ++i) {
+            const ProbabilityEntry probabilityEntry = getProbabilityEntry(i);
+            if (!probabilityDictContentToWrite.setProbabilityEntry(i, &probabilityEntry)) {
+                AKLOGE("Cannot set probability entry in flushToFile. terminalId: %d", i);
+                return false;
+            }
+        }
+        return probabilityDictContentToWrite.flush(dictPath,
+                Ver4DictConstants::FREQ_FILE_EXTENSION);
+    } else {
+        return flush(dictPath, Ver4DictConstants::FREQ_FILE_EXTENSION);
+    }
+}
+
+bool ProbabilityDictContent::runGC(
+        const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
+        const ProbabilityDictContent *const originalProbabilityDictContent) {
+    for (TerminalPositionLookupTable::TerminalIdMap::const_iterator it = terminalIdMap->begin();
+            it != terminalIdMap->end(); ++it) {
+        const ProbabilityEntry probabilityEntry =
+                originalProbabilityDictContent->getProbabilityEntry(it->first);
+        if (!setProbabilityEntry(it->second, &probabilityEntry)) {
+            AKLOGE("Cannot set probability entry in runGC. terminalId: %d", it->second);
+            return false;
+        }
+    }
+    return true;
+}
+
+int ProbabilityDictContent::getEntrySize() const {
+    if (mHasHistoricalInfo) {
+        return Ver4DictConstants::FLAGS_IN_PROBABILITY_FILE_SIZE
+                + Ver4DictConstants::PROBABILITY_SIZE
+                + Ver4DictConstants::TIME_STAMP_FIELD_SIZE
+                + Ver4DictConstants::WORD_LEVEL_FIELD_SIZE
+                + Ver4DictConstants::WORD_COUNT_FIELD_SIZE;
+    } else {
+        return Ver4DictConstants::FLAGS_IN_PROBABILITY_FILE_SIZE
+                + Ver4DictConstants::PROBABILITY_SIZE;
+    }
+}
+
+int ProbabilityDictContent::getEntryPos(const int terminalId) const {
+    return terminalId * getEntrySize();
+}
+
+bool ProbabilityDictContent::writeEntry(const ProbabilityEntry *const probabilityEntry,
+        const int entryPos) {
+    BufferWithExtendableBuffer *const bufferToWrite = getWritableBuffer();
+    int writingPos = entryPos;
+    if (!bufferToWrite->writeUintAndAdvancePosition(probabilityEntry->getFlags(),
+            Ver4DictConstants::FLAGS_IN_PROBABILITY_FILE_SIZE, &writingPos)) {
+        AKLOGE("Cannot write flags in probability dict content. pos: %d", writingPos);
+        return false;
+    }
+    if (!bufferToWrite->writeUintAndAdvancePosition(probabilityEntry->getProbability(),
+            Ver4DictConstants::PROBABILITY_SIZE, &writingPos)) {
+        AKLOGE("Cannot write probability in probability dict content. pos: %d", writingPos);
+        return false;
+    }
+    if (mHasHistoricalInfo) {
+        const HistoricalInfo *const historicalInfo = probabilityEntry->getHistoricalInfo();
+        if (!bufferToWrite->writeUintAndAdvancePosition(historicalInfo->getTimestamp(),
+                Ver4DictConstants::TIME_STAMP_FIELD_SIZE, &writingPos)) {
+            AKLOGE("Cannot write timestamp in probability dict content. pos: %d", writingPos);
+            return false;
+        }
+        if (!bufferToWrite->writeUintAndAdvancePosition(historicalInfo->getLevel(),
+                Ver4DictConstants::WORD_LEVEL_FIELD_SIZE, &writingPos)) {
+            AKLOGE("Cannot write level in probability dict content. pos: %d", writingPos);
+            return false;
+        }
+        if (!bufferToWrite->writeUintAndAdvancePosition(historicalInfo->getCount(),
+                Ver4DictConstants::WORD_COUNT_FIELD_SIZE, &writingPos)) {
+            AKLOGE("Cannot write count in probability dict content. pos: %d", writingPos);
+            return false;
+        }
+    }
+    return true;
+}
+
+} // namespace v402
+} // namespace backward
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/backward/v402/content/probability_dict_content.h b/native/jni/src/dictionary/structure/backward/v402/content/probability_dict_content.h
new file mode 100644
index 0000000..464b29f
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/content/probability_dict_content.h
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/content/probability_dict_content.h
+ */
+
+#ifndef LATINIME_BACKWARD_V402_PROBABILITY_DICT_CONTENT_H
+#define LATINIME_BACKWARD_V402_PROBABILITY_DICT_CONTENT_H
+
+#include "defines.h"
+#include "dictionary/structure/backward/v402/content/single_dict_content.h"
+#include "dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+class ProbabilityEntry;
+
+class ProbabilityDictContent : public SingleDictContent {
+ public:
+    ProbabilityDictContent(const char *const dictPath, const bool hasHistoricalInfo,
+            const bool isUpdatable)
+            : SingleDictContent(dictPath, Ver4DictConstants::FREQ_FILE_EXTENSION, isUpdatable),
+              mHasHistoricalInfo(hasHistoricalInfo),
+              mSize(getBuffer()->getTailPosition() / getEntrySize()) {}
+
+    ProbabilityDictContent(const bool hasHistoricalInfo)
+            : mHasHistoricalInfo(hasHistoricalInfo), mSize(0) {}
+
+    const ProbabilityEntry getProbabilityEntry(const int terminalId) const;
+
+    bool setProbabilityEntry(const int terminalId, const ProbabilityEntry *const probabilityEntry);
+
+    bool flushToFile(const char *const dictPath) const;
+
+    bool runGC(const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
+            const ProbabilityDictContent *const originalProbabilityDictContent);
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(ProbabilityDictContent);
+
+    int getEntrySize() const;
+
+    int getEntryPos(const int terminalId) const;
+
+    bool writeEntry(const ProbabilityEntry *const probabilityEntry, const int entryPos);
+
+    bool mHasHistoricalInfo;
+    int mSize;
+};
+} // namespace v402
+} // namespace backward
+} // namespace latinime
+#endif /* LATINIME_BACKWARD_V402_PROBABILITY_DICT_CONTENT_H */
diff --git a/native/jni/src/dictionary/structure/backward/v402/content/probability_entry.h b/native/jni/src/dictionary/structure/backward/v402/content/probability_entry.h
new file mode 100644
index 0000000..94e36bf
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/content/probability_entry.h
@@ -0,0 +1,90 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/content/probability_entry.h
+ */
+
+#ifndef LATINIME_BACKWARD_V402_PROBABILITY_ENTRY_H
+#define LATINIME_BACKWARD_V402_PROBABILITY_ENTRY_H
+
+#include "defines.h"
+#include "dictionary/property/historical_info.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+class ProbabilityEntry {
+ public:
+    ProbabilityEntry(const ProbabilityEntry &probabilityEntry)
+            : mFlags(probabilityEntry.mFlags), mProbability(probabilityEntry.mProbability),
+              mHistoricalInfo(probabilityEntry.mHistoricalInfo) {}
+
+    // Dummy entry
+    ProbabilityEntry()
+            : mFlags(0), mProbability(NOT_A_PROBABILITY), mHistoricalInfo() {}
+
+    // Entry without historical information
+    ProbabilityEntry(const int flags, const int probability)
+            : mFlags(flags), mProbability(probability), mHistoricalInfo() {}
+
+    // Entry with historical information.
+    ProbabilityEntry(const int flags, const int probability,
+            const HistoricalInfo *const historicalInfo)
+            : mFlags(flags), mProbability(probability), mHistoricalInfo(*historicalInfo) {}
+
+    const ProbabilityEntry createEntryWithUpdatedProbability(const int probability) const {
+        return ProbabilityEntry(mFlags, probability, &mHistoricalInfo);
+    }
+
+    const ProbabilityEntry createEntryWithUpdatedHistoricalInfo(
+            const HistoricalInfo *const historicalInfo) const {
+        return ProbabilityEntry(mFlags, mProbability, historicalInfo);
+    }
+
+    bool hasHistoricalInfo() const {
+        return mHistoricalInfo.isValid();
+    }
+
+    int getFlags() const {
+        return mFlags;
+    }
+
+    int getProbability() const {
+        return mProbability;
+    }
+
+    const HistoricalInfo *getHistoricalInfo() const {
+        return &mHistoricalInfo;
+    }
+
+ private:
+    // Copy constructor is public to use this class as a type of return value.
+    DISALLOW_ASSIGNMENT_OPERATOR(ProbabilityEntry);
+
+    const int mFlags;
+    const int mProbability;
+    const HistoricalInfo mHistoricalInfo;
+};
+} // namespace v402
+} // namespace backward
+} // namespace latinime
+#endif /* LATINIME_BACKWARD_V402_PROBABILITY_ENTRY_H */
diff --git a/native/jni/src/dictionary/structure/backward/v402/content/shortcut_dict_content.cpp b/native/jni/src/dictionary/structure/backward/v402/content/shortcut_dict_content.cpp
new file mode 100644
index 0000000..e538a02
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/content/shortcut_dict_content.cpp
@@ -0,0 +1,199 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/content/shortcut_dict_content.cpp
+ */
+
+#include "dictionary/structure/backward/v402/content/shortcut_dict_content.h"
+
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+void ShortcutDictContent::getShortcutEntryAndAdvancePosition(const int maxCodePointCount,
+        int *const outCodePoint, int *const outCodePointCount, int *const outProbability,
+        bool *const outhasNext, int *const shortcutEntryPos) const {
+    const BufferWithExtendableBuffer *const shortcutListBuffer = getContentBuffer();
+    if (*shortcutEntryPos < 0 || *shortcutEntryPos >=  shortcutListBuffer->getTailPosition()) {
+        AKLOGE("Invalid shortcut entry position. shortcutEntryPos: %d, bufSize: %d",
+                *shortcutEntryPos, shortcutListBuffer->getTailPosition());
+        ASSERT(false);
+        if (outhasNext) {
+            *outhasNext = false;
+        }
+        if (outCodePointCount) {
+            *outCodePointCount = 0;
+        }
+        return;
+    }
+
+    const int shortcutFlags = shortcutListBuffer->readUintAndAdvancePosition(
+            Ver4DictConstants::SHORTCUT_FLAGS_FIELD_SIZE, shortcutEntryPos);
+    if (outProbability) {
+        *outProbability = shortcutFlags & Ver4DictConstants::SHORTCUT_PROBABILITY_MASK;
+    }
+    if (outhasNext) {
+        *outhasNext = shortcutFlags & Ver4DictConstants::SHORTCUT_HAS_NEXT_MASK;
+    }
+    if (outCodePoint && outCodePointCount) {
+        shortcutListBuffer->readCodePointsAndAdvancePosition(
+                maxCodePointCount, outCodePoint, outCodePointCount, shortcutEntryPos);
+    }
+}
+
+int ShortcutDictContent::getShortcutListHeadPos(const int terminalId) const {
+    const SparseTable *const addressLookupTable = getAddressLookupTable();
+    if (!addressLookupTable->contains(terminalId)) {
+        return NOT_A_DICT_POS;
+    }
+    return addressLookupTable->get(terminalId);
+}
+
+bool ShortcutDictContent::flushToFile(const char *const dictPath) const {
+    return flush(dictPath, Ver4DictConstants::SHORTCUT_LOOKUP_TABLE_FILE_EXTENSION,
+            Ver4DictConstants::SHORTCUT_CONTENT_TABLE_FILE_EXTENSION,
+            Ver4DictConstants::SHORTCUT_FILE_EXTENSION);
+}
+
+bool ShortcutDictContent::runGC(
+        const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
+        const ShortcutDictContent *const originalShortcutDictContent) {
+   for (TerminalPositionLookupTable::TerminalIdMap::const_iterator it = terminalIdMap->begin();
+           it != terminalIdMap->end(); ++it) {
+       const int originalShortcutListPos =
+               originalShortcutDictContent->getShortcutListHeadPos(it->first);
+       if (originalShortcutListPos == NOT_A_DICT_POS) {
+           continue;
+       }
+       const int shortcutListPos = getContentBuffer()->getTailPosition();
+       // Copy shortcut list from original content.
+       if (!copyShortcutListFromDictContent(originalShortcutListPos, originalShortcutDictContent,
+               shortcutListPos)) {
+           AKLOGE("Cannot copy shortcut list during GC. original pos: %d, pos: %d",
+                   originalShortcutListPos, shortcutListPos);
+           return false;
+       }
+       // Set shortcut list position to the lookup table.
+       if (!getUpdatableAddressLookupTable()->set(it->second, shortcutListPos)) {
+           AKLOGE("Cannot set shortcut list position. terminal id: %d, pos: %d",
+                   it->second, shortcutListPos);
+           return false;
+       }
+   }
+   return true;
+}
+
+bool ShortcutDictContent::createNewShortcutList(const int terminalId) {
+    const int shortcutListListPos = getContentBuffer()->getTailPosition();
+    return getUpdatableAddressLookupTable()->set(terminalId, shortcutListListPos);
+}
+
+bool ShortcutDictContent::copyShortcutList(const int shortcutListPos, const int toPos) {
+    return copyShortcutListFromDictContent(shortcutListPos, this, toPos);
+}
+
+bool ShortcutDictContent::copyShortcutListFromDictContent(const int shortcutListPos,
+        const ShortcutDictContent *const sourceShortcutDictContent, const int toPos) {
+    bool hasNext = true;
+    int readingPos = shortcutListPos;
+    int writingPos = toPos;
+    int codePoints[MAX_WORD_LENGTH];
+    while (hasNext) {
+        int probability = 0;
+        int codePointCount = 0;
+        sourceShortcutDictContent->getShortcutEntryAndAdvancePosition(MAX_WORD_LENGTH,
+                codePoints, &codePointCount, &probability, &hasNext, &readingPos);
+        if (!writeShortcutEntryAndAdvancePosition(codePoints, codePointCount, probability,
+                hasNext, &writingPos)) {
+            AKLOGE("Cannot write shortcut entry to copy. pos: %d", writingPos);
+            return false;
+        }
+    }
+    return true;
+}
+
+bool ShortcutDictContent::setProbability(const int probability, const int shortcutEntryPos) {
+    BufferWithExtendableBuffer *const shortcutListBuffer = getWritableContentBuffer();
+    const int shortcutFlags = shortcutListBuffer->readUint(
+            Ver4DictConstants::SHORTCUT_FLAGS_FIELD_SIZE, shortcutEntryPos);
+    const bool hasNext = shortcutFlags & Ver4DictConstants::SHORTCUT_HAS_NEXT_MASK;
+    const int shortcutFlagsToWrite = createAndGetShortcutFlags(probability, hasNext);
+    return shortcutListBuffer->writeUint(shortcutFlagsToWrite,
+            Ver4DictConstants::SHORTCUT_FLAGS_FIELD_SIZE, shortcutEntryPos);
+}
+
+bool ShortcutDictContent::writeShortcutEntryAndAdvancePosition(const int *const codePoint,
+        const int codePointCount, const int probability, const bool hasNext,
+        int *const shortcutEntryPos) {
+    BufferWithExtendableBuffer *const shortcutListBuffer = getWritableContentBuffer();
+    const int shortcutFlags = createAndGetShortcutFlags(probability, hasNext);
+    if (!shortcutListBuffer->writeUintAndAdvancePosition(shortcutFlags,
+            Ver4DictConstants::SHORTCUT_FLAGS_FIELD_SIZE, shortcutEntryPos)) {
+        AKLOGE("Cannot write shortcut flags. flags; %x, pos: %d", shortcutFlags, *shortcutEntryPos);
+        return false;
+    }
+    if (!shortcutListBuffer->writeCodePointsAndAdvancePosition(codePoint, codePointCount,
+            true /* writesTerminator */, shortcutEntryPos)) {
+        AKLOGE("Cannot write shortcut target code points. pos: %d", *shortcutEntryPos);
+        return false;
+    }
+    return true;
+}
+
+// Find a shortcut entry that has specified target and return its position.
+int ShortcutDictContent::findShortcutEntryAndGetPos(const int shortcutListPos,
+        const int *const targetCodePointsToFind, const int codePointCount) const {
+    bool hasNext = true;
+    int readingPos = shortcutListPos;
+    int targetCodePoints[MAX_WORD_LENGTH];
+    while (hasNext) {
+        const int entryPos = readingPos;
+        int probability = 0;
+        int targetCodePointCount = 0;
+        getShortcutEntryAndAdvancePosition(MAX_WORD_LENGTH, targetCodePoints, &targetCodePointCount,
+                &probability, &hasNext, &readingPos);
+        if (targetCodePointCount != codePointCount) {
+            continue;
+        }
+        bool matched = true;
+        for (int i = 0; i < codePointCount; ++i) {
+            if (targetCodePointsToFind[i] != targetCodePoints[i]) {
+                matched = false;
+                break;
+            }
+        }
+        if (matched) {
+            return entryPos;
+        }
+    }
+    return NOT_A_DICT_POS;
+}
+
+int ShortcutDictContent::createAndGetShortcutFlags(const int probability,
+        const bool hasNext) const {
+    return (probability & Ver4DictConstants::SHORTCUT_PROBABILITY_MASK)
+            | (hasNext ? Ver4DictConstants::SHORTCUT_HAS_NEXT_MASK : 0);
+}
+
+} // namespace v402
+} // namespace backward
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/backward/v402/content/shortcut_dict_content.h b/native/jni/src/dictionary/structure/backward/v402/content/shortcut_dict_content.h
new file mode 100644
index 0000000..3b725e8
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/content/shortcut_dict_content.h
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/content/shortcut_dict_content.h
+ */
+
+#ifndef LATINIME_BACKWARD_V402_SHORTCUT_DICT_CONTENT_H
+#define LATINIME_BACKWARD_V402_SHORTCUT_DICT_CONTENT_H
+
+#include "defines.h"
+#include "dictionary/structure/backward/v402/content/sparse_table_dict_content.h"
+#include "dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+class ShortcutDictContent : public SparseTableDictContent {
+ public:
+    ShortcutDictContent(const char *const dictPath, const bool isUpdatable)
+            : SparseTableDictContent(dictPath,
+                      Ver4DictConstants::SHORTCUT_LOOKUP_TABLE_FILE_EXTENSION,
+                      Ver4DictConstants::SHORTCUT_CONTENT_TABLE_FILE_EXTENSION,
+                      Ver4DictConstants::SHORTCUT_FILE_EXTENSION, isUpdatable,
+                      Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_BLOCK_SIZE,
+                      Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_DATA_SIZE) {}
+
+    ShortcutDictContent()
+            : SparseTableDictContent(Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_BLOCK_SIZE,
+                      Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_DATA_SIZE) {}
+
+    void getShortcutEntry(const int maxCodePointCount, int *const outCodePoint,
+            int *const outCodePointCount, int *const outProbability, bool *const outhasNext,
+            const int shortcutEntryPos) {
+        int readingPos = shortcutEntryPos;
+        return getShortcutEntryAndAdvancePosition(maxCodePointCount, outCodePoint,
+                outCodePointCount, outProbability, outhasNext, &readingPos);
+    }
+
+    void getShortcutEntryAndAdvancePosition(const int maxCodePointCount,
+            int *const outCodePoint, int *const outCodePointCount, int *const outProbability,
+            bool *const outhasNext, int *const shortcutEntryPos) const;
+
+   // Returns head position of shortcut list for a PtNode specified by terminalId.
+   int getShortcutListHeadPos(const int terminalId) const;
+
+   bool flushToFile(const char *const dictPath) const;
+
+   bool runGC(const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
+           const ShortcutDictContent *const originalShortcutDictContent);
+
+   bool createNewShortcutList(const int terminalId);
+
+   bool copyShortcutList(const int shortcutListPos, const int toPos);
+
+   bool setProbability(const int probability, const int shortcutEntryPos);
+
+   bool writeShortcutEntry(const int *const codePoint, const int codePointCount,
+           const int probability, const bool hasNext, const int shortcutEntryPos) {
+       int writingPos = shortcutEntryPos;
+       return writeShortcutEntryAndAdvancePosition(codePoint, codePointCount, probability,
+               hasNext, &writingPos);
+   }
+
+   bool writeShortcutEntryAndAdvancePosition(const int *const codePoint,
+           const int codePointCount, const int probability, const bool hasNext,
+           int *const shortcutEntryPos);
+
+   int findShortcutEntryAndGetPos(const int shortcutListPos,
+           const int *const targetCodePointsToFind, const int codePointCount) const;
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(ShortcutDictContent);
+
+    bool copyShortcutListFromDictContent(const int shortcutListPos,
+            const ShortcutDictContent *const sourceShortcutDictContent, const int toPos);
+
+    int createAndGetShortcutFlags(const int probability, const bool hasNext) const;
+};
+} // namespace v402
+} // namespace backward
+} // namespace latinime
+#endif /* LATINIME_BACKWARD_V402_SHORTCUT_DICT_CONTENT_H */
diff --git a/native/jni/src/dictionary/structure/backward/v402/content/single_dict_content.h b/native/jni/src/dictionary/structure/backward/v402/content/single_dict_content.h
new file mode 100644
index 0000000..89df2a1
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/content/single_dict_content.h
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/content/single_dict_content.h
+ */
+
+#ifndef LATINIME_BACKWARD_V402_SINGLE_DICT_CONTENT_H
+#define LATINIME_BACKWARD_V402_SINGLE_DICT_CONTENT_H
+
+#include "defines.h"
+#include "dictionary/structure/backward/v402/content/dict_content.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/dict_file_writing_utils.h"
+#include "dictionary/utils/mmapped_buffer.h"
+#include "utils/byte_array_view.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+class SingleDictContent : public DictContent {
+ public:
+    SingleDictContent(const char *const dictPath, const char *const contentFileName,
+            const bool isUpdatable)
+            : mMmappedBuffer(MmappedBuffer::openBuffer(dictPath, contentFileName, isUpdatable)),
+              mExpandableContentBuffer(
+                      mMmappedBuffer ? mMmappedBuffer->getReadWriteByteArrayView() :
+                              ReadWriteByteArrayView(),
+                      BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
+              mIsValid(mMmappedBuffer) {}
+
+    SingleDictContent()
+            : mMmappedBuffer(nullptr),
+              mExpandableContentBuffer(Ver4DictConstants::MAX_DICTIONARY_SIZE), mIsValid(true) {}
+
+    virtual ~SingleDictContent() {}
+
+    virtual bool isValid() const {
+        return mIsValid;
+    }
+
+    bool isNearSizeLimit() const {
+        return mExpandableContentBuffer.isNearSizeLimit();
+    }
+
+ protected:
+    BufferWithExtendableBuffer *getWritableBuffer() {
+        return &mExpandableContentBuffer;
+    }
+
+    const BufferWithExtendableBuffer *getBuffer() const {
+        return &mExpandableContentBuffer;
+    }
+
+    bool flush(const char *const dictPath, const char *const contentFileNameSuffix) const {
+        return DictFileWritingUtils::flushBufferToFileWithSuffix(dictPath,
+                contentFileNameSuffix, &mExpandableContentBuffer);
+    }
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(SingleDictContent);
+
+    const MmappedBuffer::MmappedBufferPtr mMmappedBuffer;
+    BufferWithExtendableBuffer mExpandableContentBuffer;
+    const bool mIsValid;
+};
+} // namespace v402
+} // namespace backward
+} // namespace latinime
+#endif /* LATINIME_BACKWARD_V402_SINGLE_DICT_CONTENT_H */
diff --git a/native/jni/src/dictionary/structure/backward/v402/content/sparse_table_dict_content.cpp b/native/jni/src/dictionary/structure/backward/v402/content/sparse_table_dict_content.cpp
new file mode 100644
index 0000000..280f0f8
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/content/sparse_table_dict_content.cpp
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/content/sparse_table_dict_content.cpp
+ */
+
+#include "dictionary/structure/backward/v402/content/sparse_table_dict_content.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+bool SparseTableDictContent::flush(const char *const dictPath,
+        const char *const lookupTableFileNameSuffix, const char *const addressTableFileNameSuffix,
+        const char *const contentFileNameSuffix) const {
+    if (!DictFileWritingUtils::flushBufferToFileWithSuffix(dictPath, lookupTableFileNameSuffix,
+            &mExpandableLookupTableBuffer)){
+        return false;
+    }
+    if (!DictFileWritingUtils::flushBufferToFileWithSuffix(dictPath, addressTableFileNameSuffix,
+            &mExpandableAddressTableBuffer)) {
+        return false;
+    }
+    if (!DictFileWritingUtils::flushBufferToFileWithSuffix(dictPath, contentFileNameSuffix,
+            &mExpandableContentBuffer)) {
+        return false;
+    }
+    return true;
+}
+
+} // namespace v402
+} // namespace backward
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/backward/v402/content/sparse_table_dict_content.h b/native/jni/src/dictionary/structure/backward/v402/content/sparse_table_dict_content.h
new file mode 100644
index 0000000..4b5af87
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/content/sparse_table_dict_content.h
@@ -0,0 +1,124 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/content/sparse_table_dict_content.h
+ */
+
+#ifndef LATINIME_BACKWARD_V402_SPARSE_TABLE_DICT_CONTENT_H
+#define LATINIME_BACKWARD_V402_SPARSE_TABLE_DICT_CONTENT_H
+
+#include "defines.h"
+#include "dictionary/structure/backward/v402/content/dict_content.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/dict_file_writing_utils.h"
+#include "dictionary/utils/mmapped_buffer.h"
+#include "dictionary/utils/sparse_table.h"
+#include "utils/byte_array_view.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+// TODO: Support multiple contents.
+class SparseTableDictContent : public DictContent {
+ public:
+    AK_FORCE_INLINE SparseTableDictContent(const char *const dictPath,
+            const char *const lookupTableFileName, const char *const addressTableFileName,
+            const char *const contentFileName, const bool isUpdatable,
+            const int sparseTableBlockSize, const int sparseTableDataSize)
+            : mLookupTableBuffer(
+                      MmappedBuffer::openBuffer(dictPath, lookupTableFileName, isUpdatable)),
+              mAddressTableBuffer(
+                      MmappedBuffer::openBuffer(dictPath, addressTableFileName, isUpdatable)),
+              mContentBuffer(
+                      MmappedBuffer::openBuffer(dictPath, contentFileName, isUpdatable)),
+              mExpandableLookupTableBuffer(
+                      mLookupTableBuffer ? mLookupTableBuffer->getReadWriteByteArrayView() :
+                              ReadWriteByteArrayView(),
+                      BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
+              mExpandableAddressTableBuffer(
+                      mAddressTableBuffer ? mAddressTableBuffer->getReadWriteByteArrayView() :
+                              ReadWriteByteArrayView(),
+                      BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
+              mExpandableContentBuffer(
+                      mContentBuffer ? mContentBuffer->getReadWriteByteArrayView() :
+                              ReadWriteByteArrayView(),
+                      BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
+              mAddressLookupTable(&mExpandableLookupTableBuffer, &mExpandableAddressTableBuffer,
+                      sparseTableBlockSize, sparseTableDataSize),
+              mIsValid(mLookupTableBuffer && mAddressTableBuffer && mContentBuffer) {}
+
+    SparseTableDictContent(const int sparseTableBlockSize, const int sparseTableDataSize)
+            : mLookupTableBuffer(), mAddressTableBuffer(), mContentBuffer(),
+              mExpandableLookupTableBuffer(Ver4DictConstants::MAX_DICTIONARY_SIZE),
+              mExpandableAddressTableBuffer(Ver4DictConstants::MAX_DICTIONARY_SIZE),
+              mExpandableContentBuffer(Ver4DictConstants::MAX_DICTIONARY_SIZE),
+              mAddressLookupTable(&mExpandableLookupTableBuffer, &mExpandableAddressTableBuffer,
+                      sparseTableBlockSize, sparseTableDataSize), mIsValid(true) {}
+
+    virtual ~SparseTableDictContent() {}
+
+    virtual bool isValid() const {
+        return mIsValid;
+    }
+
+    bool isNearSizeLimit() const {
+        return mExpandableLookupTableBuffer.isNearSizeLimit()
+                || mExpandableAddressTableBuffer.isNearSizeLimit()
+                || mExpandableContentBuffer.isNearSizeLimit();
+    }
+
+ protected:
+    SparseTable *getUpdatableAddressLookupTable() {
+        return &mAddressLookupTable;
+    }
+
+    const SparseTable *getAddressLookupTable() const {
+        return &mAddressLookupTable;
+    }
+
+    BufferWithExtendableBuffer *getWritableContentBuffer() {
+        return &mExpandableContentBuffer;
+    }
+
+    const BufferWithExtendableBuffer *getContentBuffer() const {
+        return &mExpandableContentBuffer;
+    }
+
+    bool flush(const char *const dictDirPath, const char *const lookupTableFileName,
+            const char *const addressTableFileName, const char *const contentFileName) const;
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(SparseTableDictContent);
+
+    const MmappedBuffer::MmappedBufferPtr mLookupTableBuffer;
+    const MmappedBuffer::MmappedBufferPtr mAddressTableBuffer;
+    const MmappedBuffer::MmappedBufferPtr mContentBuffer;
+    BufferWithExtendableBuffer mExpandableLookupTableBuffer;
+    BufferWithExtendableBuffer mExpandableAddressTableBuffer;
+    BufferWithExtendableBuffer mExpandableContentBuffer;
+    SparseTable mAddressLookupTable;
+    const bool mIsValid;
+};
+} // namespace v402
+} // namespace backward
+} // namespace latinime
+#endif /* LATINIME_BACKWARD_V402_SPARSE_TABLE_DICT_CONTENT_H */
diff --git a/native/jni/src/dictionary/structure/backward/v402/content/terminal_position_lookup_table.cpp b/native/jni/src/dictionary/structure/backward/v402/content/terminal_position_lookup_table.cpp
new file mode 100644
index 0000000..30b72bb
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/content/terminal_position_lookup_table.cpp
@@ -0,0 +1,111 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/content/terminal_position_lookup_table.cpp
+ */
+
+#include "dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
+
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+int TerminalPositionLookupTable::getTerminalPtNodePosition(const int terminalId) const {
+    if (terminalId < 0 || terminalId >= mSize) {
+        return NOT_A_DICT_POS;
+    }
+    const int terminalPos = getBuffer()->readUint(
+            Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE, getEntryPos(terminalId));
+    return (terminalPos == Ver4DictConstants::NOT_A_TERMINAL_ADDRESS) ?
+            NOT_A_DICT_POS : terminalPos;
+}
+
+bool TerminalPositionLookupTable::setTerminalPtNodePosition(
+        const int terminalId, const int terminalPtNodePos) {
+    if (terminalId < 0) {
+        return NOT_A_DICT_POS;
+    }
+    while (terminalId >= mSize) {
+        // Write new entry.
+        if (!getWritableBuffer()->writeUint(Ver4DictConstants::NOT_A_TERMINAL_ADDRESS,
+                Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE, getEntryPos(mSize))) {
+            return false;
+        }
+        mSize++;
+    }
+    const int terminalPos = (terminalPtNodePos != NOT_A_DICT_POS) ?
+            terminalPtNodePos : Ver4DictConstants::NOT_A_TERMINAL_ADDRESS;
+    return getWritableBuffer()->writeUint(terminalPos,
+            Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE, getEntryPos(terminalId));
+}
+
+bool TerminalPositionLookupTable::flushToFile(const char *const dictPath) const {
+    // If the used buffer size is smaller than the actual buffer size, regenerate the lookup
+    // table and write the new table to the file.
+    if (getEntryPos(mSize) < getBuffer()->getTailPosition()) {
+        TerminalPositionLookupTable lookupTableToWrite;
+        for (int i = 0; i < mSize; ++i) {
+            const int terminalPtNodePosition = getTerminalPtNodePosition(i);
+            if (!lookupTableToWrite.setTerminalPtNodePosition(i, terminalPtNodePosition)) {
+                AKLOGE("Cannot set terminal position to lookupTableToWrite."
+                        " terminalId: %d, position: %d", i, terminalPtNodePosition);
+                return false;
+            }
+        }
+        return lookupTableToWrite.flush(dictPath,
+                Ver4DictConstants::TERMINAL_ADDRESS_TABLE_FILE_EXTENSION);
+    } else {
+        // We can simply use this lookup table because the buffer size has not been
+        // changed.
+        return flush(dictPath, Ver4DictConstants::TERMINAL_ADDRESS_TABLE_FILE_EXTENSION);
+    }
+}
+
+bool TerminalPositionLookupTable::runGCTerminalIds(TerminalIdMap *const terminalIdMap) {
+    int removedEntryCount = 0;
+    int nextNewTerminalId = 0;
+    for (int i = 0; i < mSize; ++i) {
+        const int terminalPos = getBuffer()->readUint(
+                Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE, getEntryPos(i));
+        if (terminalPos == Ver4DictConstants::NOT_A_TERMINAL_ADDRESS) {
+            // This entry is a garbage.
+            removedEntryCount++;
+        } else {
+            // Give a new terminal id to the entry.
+            if (!getWritableBuffer()->writeUint(terminalPos,
+                    Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE,
+                    getEntryPos(nextNewTerminalId))) {
+                return false;
+            }
+            // Memorize the mapping to the old terminal id to the new terminal id.
+            terminalIdMap->insert(TerminalIdMap::value_type(i, nextNewTerminalId));
+            nextNewTerminalId++;
+        }
+    }
+    mSize = nextNewTerminalId;
+    return true;
+}
+
+} // namespace v402
+} // namespace backward
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h b/native/jni/src/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h
new file mode 100644
index 0000000..641c749
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/content/terminal_position_lookup_table.h
+ */
+
+#ifndef LATINIME_BACKWARD_V402_TERMINAL_POSITION_LOOKUP_TABLE_H
+#define LATINIME_BACKWARD_V402_TERMINAL_POSITION_LOOKUP_TABLE_H
+
+#include <unordered_map>
+
+#include "defines.h"
+#include "dictionary/structure/backward/v402/content/single_dict_content.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+class TerminalPositionLookupTable : public SingleDictContent {
+ public:
+    typedef std::unordered_map<int, int> TerminalIdMap;
+
+    TerminalPositionLookupTable(const char *const dictPath, const bool isUpdatable)
+            : SingleDictContent(dictPath,
+                      Ver4DictConstants::TERMINAL_ADDRESS_TABLE_FILE_EXTENSION, isUpdatable),
+              mSize(getBuffer()->getTailPosition()
+                      / Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE) {}
+
+    TerminalPositionLookupTable() : mSize(0) {}
+
+    int getTerminalPtNodePosition(const int terminalId) const;
+
+    bool setTerminalPtNodePosition(const int terminalId, const int terminalPtNodePos);
+
+    int getNextTerminalId() const {
+        return mSize;
+    }
+
+    bool flushToFile(const char *const dictPath) const;
+
+    bool runGCTerminalIds(TerminalIdMap *const terminalIdMap);
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(TerminalPositionLookupTable);
+
+    int getEntryPos(const int terminalId) const {
+        return terminalId * Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE;
+    }
+
+    int mSize;
+};
+} // namespace v402
+} // namespace backward
+} // namespace latinime
+#endif // LATINIME_BACKWARD_V402_TERMINAL_POSITION_LOOKUP_TABLE_H
diff --git a/native/jni/src/dictionary/structure/backward/v402/shortcut/ver4_shortcut_list_policy.h b/native/jni/src/dictionary/structure/backward/v402/shortcut/ver4_shortcut_list_policy.h
new file mode 100644
index 0000000..8cda8c5
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/shortcut/ver4_shortcut_list_policy.h
@@ -0,0 +1,118 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT CHANGE THE LOGIC IN THIS FILE !!!!!
+ * Do not edit this file other than updating policy's interface.
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h
+ */
+
+#ifndef LATINIME_BACKWARD_V402_VER4_SHORTCUT_LIST_POLICY_H
+#define LATINIME_BACKWARD_V402_VER4_SHORTCUT_LIST_POLICY_H
+
+#include "defines.h"
+#include "dictionary/interface/dictionary_shortcuts_structure_policy.h"
+#include "dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.h"
+#include "dictionary/structure/backward/v402/content/shortcut_dict_content.h"
+#include "dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+class Ver4ShortcutListPolicy : public DictionaryShortcutsStructurePolicy {
+ public:
+    Ver4ShortcutListPolicy(ShortcutDictContent *const shortcutDictContent,
+            const TerminalPositionLookupTable *const terminalPositionLookupTable)
+            : mShortcutDictContent(shortcutDictContent) {}
+
+    ~Ver4ShortcutListPolicy() {}
+
+    int getStartPos(const int pos) const {
+        // The first shortcut entry is located at the head position of the shortcut list.
+        return pos;
+    }
+
+    void getNextShortcut(const int maxCodePointCount, int *const outCodePoint,
+            int *const outCodePointCount, bool *const outIsWhitelist, bool *const outHasNext,
+            int *const pos) const {
+        int probability = 0;
+        mShortcutDictContent->getShortcutEntryAndAdvancePosition(maxCodePointCount,
+                outCodePoint, outCodePointCount, &probability, outHasNext, pos);
+        if (outIsWhitelist) {
+            *outIsWhitelist = ShortcutListReadingUtils::isWhitelist(probability);
+        }
+    }
+
+    void skipAllShortcuts(int *const pos) const {
+        // Do nothing because we don't need to skip shortcut lists in ver4 dictionaries.
+    }
+
+    bool addNewShortcut(const int terminalId, const int *const codePoints, const int codePointCount,
+            const int probability) {
+        const int shortcutListPos = mShortcutDictContent->getShortcutListHeadPos(terminalId);
+        if (shortcutListPos == NOT_A_DICT_POS) {
+            // Create shortcut list.
+            if (!mShortcutDictContent->createNewShortcutList(terminalId)) {
+                AKLOGE("Cannot create new shortcut list. terminal id: %d", terminalId);
+                return false;
+            }
+            const int writingPos =  mShortcutDictContent->getShortcutListHeadPos(terminalId);
+            return mShortcutDictContent->writeShortcutEntry(codePoints, codePointCount, probability,
+                    false /* hasNext */, writingPos);
+        }
+        const int entryPos = mShortcutDictContent->findShortcutEntryAndGetPos(shortcutListPos,
+                codePoints, codePointCount);
+        if (entryPos == NOT_A_DICT_POS) {
+            // Add new entry to the shortcut list.
+            // Create new shortcut list.
+            if (!mShortcutDictContent->createNewShortcutList(terminalId)) {
+                AKLOGE("Cannot create new shortcut list. terminal id: %d", terminalId);
+                return false;
+            }
+            int writingPos =  mShortcutDictContent->getShortcutListHeadPos(terminalId);
+            if (!mShortcutDictContent->writeShortcutEntryAndAdvancePosition(codePoints,
+                    codePointCount, probability, true /* hasNext */, &writingPos)) {
+                AKLOGE("Cannot write shortcut entry. terminal id: %d, pos: %d", terminalId,
+                        writingPos);
+                return false;
+            }
+            return mShortcutDictContent->copyShortcutList(shortcutListPos, writingPos);
+        }
+        // Overwrite existing entry.
+        bool hasNext = false;
+        mShortcutDictContent->getShortcutEntry(MAX_WORD_LENGTH, 0 /* outCodePoint */,
+                0 /* outCodePointCount */ , 0 /* probability */, &hasNext, entryPos);
+        if (!mShortcutDictContent->writeShortcutEntry(codePoints,
+                codePointCount, probability, hasNext, entryPos)) {
+            AKLOGE("Cannot overwrite shortcut entry. terminal id: %d, pos: %d", terminalId,
+                    entryPos);
+            return false;
+        }
+        return true;
+    }
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(Ver4ShortcutListPolicy);
+
+    ShortcutDictContent *const mShortcutDictContent;
+};
+} // namespace v402
+} // namespace backward
+} // namespace latinime
+#endif // LATINIME_BACKWARD_V402_VER4_SHORTCUT_LIST_POLICY_H
diff --git a/native/jni/src/dictionary/structure/backward/v402/ver4_dict_buffers.cpp b/native/jni/src/dictionary/structure/backward/v402/ver4_dict_buffers.cpp
new file mode 100644
index 0000000..4a9704f
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_dict_buffers.cpp
@@ -0,0 +1,157 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/ver4_dict_buffers.cpp
+ */
+
+#include "dictionary/structure/backward/v402/ver4_dict_buffers.h"
+
+#include <cerrno>
+#include <cstring>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#include "dictionary/utils/dict_file_writing_utils.h"
+#include "dictionary/utils/file_utils.h"
+#include "utils/byte_array_view.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+/* static */ Ver4DictBuffers::Ver4DictBuffersPtr Ver4DictBuffers::openVer4DictBuffers(
+        const char *const dictPath, MmappedBuffer::MmappedBufferPtr headerBuffer,
+        const FormatUtils::FORMAT_VERSION formatVersion) {
+    if (!headerBuffer) {
+        ASSERT(false);
+        AKLOGE("The header buffer must be valid to open ver4 dict buffers.");
+        return Ver4DictBuffersPtr(nullptr);
+    }
+    // TODO: take only dictDirPath, and open both header and trie files in the constructor below
+    const bool isUpdatable = headerBuffer->isUpdatable();
+    return Ver4DictBuffersPtr(new Ver4DictBuffers(dictPath, std::move(headerBuffer), isUpdatable,
+            formatVersion));
+}
+
+bool Ver4DictBuffers::flushHeaderAndDictBuffers(const char *const dictDirPath,
+        const BufferWithExtendableBuffer *const headerBuffer) const {
+    // Create temporary directory.
+    const int tmpDirPathBufSize = FileUtils::getFilePathWithSuffixBufSize(dictDirPath,
+            DictFileWritingUtils::TEMP_FILE_SUFFIX_FOR_WRITING_DICT_FILE);
+    char tmpDirPath[tmpDirPathBufSize];
+    FileUtils::getFilePathWithSuffix(dictDirPath,
+            DictFileWritingUtils::TEMP_FILE_SUFFIX_FOR_WRITING_DICT_FILE, tmpDirPathBufSize,
+            tmpDirPath);
+    if (FileUtils::existsDir(tmpDirPath)) {
+        if (!FileUtils::removeDirAndFiles(tmpDirPath)) {
+            AKLOGE("Existing directory %s cannot be removed.", tmpDirPath);
+            ASSERT(false);
+            return false;
+        }
+    }
+    umask(S_IWGRP | S_IWOTH);
+    if (mkdir(tmpDirPath, S_IRWXU) == -1) {
+        AKLOGE("Cannot create directory: %s. errno: %d.", tmpDirPath, errno);
+        return false;
+    }
+    // Get dictionary base path.
+    const int dictNameBufSize = strlen(dictDirPath) + 1 /* terminator */;
+    char dictName[dictNameBufSize];
+    FileUtils::getBasename(dictDirPath, dictNameBufSize, dictName);
+    const int dictPathBufSize = FileUtils::getFilePathBufSize(tmpDirPath, dictName);
+    char dictPath[dictPathBufSize];
+    FileUtils::getFilePath(tmpDirPath, dictName, dictPathBufSize, dictPath);
+
+    // Write header file.
+    if (!DictFileWritingUtils::flushBufferToFileWithSuffix(dictPath,
+            Ver4DictConstants::HEADER_FILE_EXTENSION, headerBuffer)) {
+        AKLOGE("Dictionary header file %s%s cannot be written.", tmpDirPath,
+                Ver4DictConstants::HEADER_FILE_EXTENSION);
+        return false;
+    }
+    // Write trie file.
+    if (!DictFileWritingUtils::flushBufferToFileWithSuffix(dictPath,
+            Ver4DictConstants::TRIE_FILE_EXTENSION, &mExpandableTrieBuffer)) {
+        AKLOGE("Dictionary trie file %s%s cannot be written.", tmpDirPath,
+                Ver4DictConstants::TRIE_FILE_EXTENSION);
+        return false;
+    }
+    // Write dictionary contents.
+    if (!mTerminalPositionLookupTable.flushToFile(dictPath)) {
+        AKLOGE("Terminal position lookup table cannot be written. %s", tmpDirPath);
+        return false;
+    }
+    if (!mProbabilityDictContent.flushToFile(dictPath)) {
+        AKLOGE("Probability dict content cannot be written. %s", tmpDirPath);
+        return false;
+    }
+    if (!mBigramDictContent.flushToFile(dictPath)) {
+        AKLOGE("Bigram dict content cannot be written. %s", tmpDirPath);
+        return false;
+    }
+    if (!mShortcutDictContent.flushToFile(dictPath)) {
+        AKLOGE("Shortcut dict content cannot be written. %s", tmpDirPath);
+        return false;
+    }
+    // Remove existing dictionary.
+    if (!FileUtils::removeDirAndFiles(dictDirPath)) {
+        AKLOGE("Existing directory %s cannot be removed.", dictDirPath);
+        ASSERT(false);
+        return false;
+    }
+    // Rename temporary directory.
+    if (rename(tmpDirPath, dictDirPath) != 0) {
+        AKLOGE("%s cannot be renamed to %s", tmpDirPath, dictDirPath);
+        ASSERT(false);
+        return false;
+    }
+    return true;
+}
+
+Ver4DictBuffers::Ver4DictBuffers(const char *const dictPath,
+        MmappedBuffer::MmappedBufferPtr headerBuffer, const bool isUpdatable,
+        const FormatUtils::FORMAT_VERSION formatVersion)
+        : mHeaderBuffer(std::move(headerBuffer)),
+          mDictBuffer(MmappedBuffer::openBuffer(dictPath,
+                  Ver4DictConstants::TRIE_FILE_EXTENSION, isUpdatable)),
+          mHeaderPolicy(mHeaderBuffer->getReadOnlyByteArrayView().data(), formatVersion),
+          mExpandableHeaderBuffer(mHeaderBuffer->getReadWriteByteArrayView(),
+                  BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
+          mExpandableTrieBuffer(
+                  mDictBuffer ? mDictBuffer->getReadWriteByteArrayView() :
+                          ReadWriteByteArrayView(),
+                  BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
+          mTerminalPositionLookupTable(dictPath, isUpdatable),
+          mProbabilityDictContent(dictPath, mHeaderPolicy.hasHistoricalInfoOfWords(), isUpdatable),
+          mBigramDictContent(dictPath, mHeaderPolicy.hasHistoricalInfoOfWords(), isUpdatable),
+          mShortcutDictContent(dictPath, isUpdatable),
+          mIsUpdatable(isUpdatable) {}
+
+Ver4DictBuffers::Ver4DictBuffers(const HeaderPolicy *const headerPolicy, const int maxTrieSize)
+        : mHeaderBuffer(nullptr), mDictBuffer(nullptr), mHeaderPolicy(headerPolicy),
+          mExpandableHeaderBuffer(Ver4DictConstants::MAX_DICTIONARY_SIZE),
+          mExpandableTrieBuffer(maxTrieSize), mTerminalPositionLookupTable(),
+          mProbabilityDictContent(headerPolicy->hasHistoricalInfoOfWords()),
+          mBigramDictContent(headerPolicy->hasHistoricalInfoOfWords()), mShortcutDictContent(),
+          mIsUpdatable(true) {}
+
+} // namespace v402
+} // namespace backward
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/backward/v402/ver4_dict_buffers.h b/native/jni/src/dictionary/structure/backward/v402/ver4_dict_buffers.h
new file mode 100644
index 0000000..0d09fee
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_dict_buffers.h
@@ -0,0 +1,152 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/ver4_dict_buffers.h
+ */
+
+#ifndef LATINIME_BACKWARD_V402_VER4_DICT_BUFFER_H
+#define LATINIME_BACKWARD_V402_VER4_DICT_BUFFER_H
+
+#include <memory>
+
+#include "defines.h"
+#include "dictionary/header/header_policy.h"
+#include "dictionary/structure/backward/v402/content/bigram_dict_content.h"
+#include "dictionary/structure/backward/v402/content/probability_dict_content.h"
+#include "dictionary/structure/backward/v402/content/shortcut_dict_content.h"
+#include "dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/mmapped_buffer.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+class Ver4DictBuffers {
+ public:
+    typedef std::unique_ptr<Ver4DictBuffers> Ver4DictBuffersPtr;
+
+    static Ver4DictBuffersPtr openVer4DictBuffers(const char *const dictDirPath,
+            MmappedBuffer::MmappedBufferPtr headerBuffer,
+            const FormatUtils::FORMAT_VERSION formatVersion);
+
+    static AK_FORCE_INLINE Ver4DictBuffersPtr createVer4DictBuffers(
+            const HeaderPolicy *const headerPolicy, const int maxTrieSize) {
+        return Ver4DictBuffersPtr(new Ver4DictBuffers(headerPolicy, maxTrieSize));
+    }
+
+    AK_FORCE_INLINE bool isValid() const {
+        return mHeaderBuffer && mDictBuffer && mHeaderPolicy.isValid()
+                && mProbabilityDictContent.isValid() && mTerminalPositionLookupTable.isValid()
+                && mBigramDictContent.isValid() && mShortcutDictContent.isValid();
+    }
+
+    AK_FORCE_INLINE bool isNearSizeLimit() const {
+        return mExpandableTrieBuffer.isNearSizeLimit()
+                || mTerminalPositionLookupTable.isNearSizeLimit()
+                || mProbabilityDictContent.isNearSizeLimit()
+                || mBigramDictContent.isNearSizeLimit()
+                || mShortcutDictContent.isNearSizeLimit();
+    }
+
+    AK_FORCE_INLINE const HeaderPolicy *getHeaderPolicy() const {
+        return &mHeaderPolicy;
+    }
+
+    AK_FORCE_INLINE BufferWithExtendableBuffer *getWritableHeaderBuffer() {
+        return &mExpandableHeaderBuffer;
+    }
+
+    AK_FORCE_INLINE BufferWithExtendableBuffer *getWritableTrieBuffer() {
+        return &mExpandableTrieBuffer;
+    }
+
+    AK_FORCE_INLINE const BufferWithExtendableBuffer *getTrieBuffer() const {
+        return &mExpandableTrieBuffer;
+    }
+
+    AK_FORCE_INLINE TerminalPositionLookupTable *getMutableTerminalPositionLookupTable() {
+        return &mTerminalPositionLookupTable;
+    }
+
+    AK_FORCE_INLINE const TerminalPositionLookupTable *getTerminalPositionLookupTable() const {
+        return &mTerminalPositionLookupTable;
+    }
+
+    AK_FORCE_INLINE ProbabilityDictContent *getMutableProbabilityDictContent() {
+        return &mProbabilityDictContent;
+    }
+
+    AK_FORCE_INLINE const ProbabilityDictContent *getProbabilityDictContent() const {
+        return &mProbabilityDictContent;
+    }
+
+    AK_FORCE_INLINE BigramDictContent *getMutableBigramDictContent() {
+        return &mBigramDictContent;
+    }
+
+    AK_FORCE_INLINE const BigramDictContent *getBigramDictContent() const {
+        return &mBigramDictContent;
+    }
+
+    AK_FORCE_INLINE ShortcutDictContent *getMutableShortcutDictContent() {
+        return &mShortcutDictContent;
+    }
+
+    AK_FORCE_INLINE const ShortcutDictContent *getShortcutDictContent() const {
+        return &mShortcutDictContent;
+    }
+
+    AK_FORCE_INLINE bool isUpdatable() const {
+        return mIsUpdatable;
+    }
+
+    bool flush(const char *const dictDirPath) const {
+        return flushHeaderAndDictBuffers(dictDirPath, &mExpandableHeaderBuffer);
+    }
+
+    bool flushHeaderAndDictBuffers(const char *const dictDirPath,
+            const BufferWithExtendableBuffer *const headerBuffer) const;
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(Ver4DictBuffers);
+
+    Ver4DictBuffers(const char *const dictDirPath,
+            const MmappedBuffer::MmappedBufferPtr headerBuffer, const bool isUpdatable,
+            const FormatUtils::FORMAT_VERSION formatVersion);
+
+    Ver4DictBuffers(const HeaderPolicy *const headerPolicy, const int maxTrieSize);
+
+    const MmappedBuffer::MmappedBufferPtr mHeaderBuffer;
+    const MmappedBuffer::MmappedBufferPtr mDictBuffer;
+    const HeaderPolicy mHeaderPolicy;
+    BufferWithExtendableBuffer mExpandableHeaderBuffer;
+    BufferWithExtendableBuffer mExpandableTrieBuffer;
+    TerminalPositionLookupTable mTerminalPositionLookupTable;
+    ProbabilityDictContent mProbabilityDictContent;
+    BigramDictContent mBigramDictContent;
+    ShortcutDictContent mShortcutDictContent;
+    const int mIsUpdatable;
+};
+} // namespace v402
+} // namespace backward
+} // namespace latinime
+#endif /* LATINIME_BACKWARD_V402_VER4_DICT_BUFFER_H */
diff --git a/native/jni/src/dictionary/structure/backward/v402/ver4_dict_constants.cpp b/native/jni/src/dictionary/structure/backward/v402/ver4_dict_constants.cpp
new file mode 100644
index 0000000..2948d07
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_dict_constants.cpp
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/ver4_dict_constants.cpp
+ */
+
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+// These values MUST match the definitions in FormatSpec.java.
+const char *const Ver4DictConstants::TRIE_FILE_EXTENSION = ".trie";
+const char *const Ver4DictConstants::HEADER_FILE_EXTENSION = ".header";
+const char *const Ver4DictConstants::FREQ_FILE_EXTENSION = ".freq";
+// tat = Terminal Address Table
+const char *const Ver4DictConstants::TERMINAL_ADDRESS_TABLE_FILE_EXTENSION = ".tat";
+const char *const Ver4DictConstants::BIGRAM_FILE_EXTENSION = ".bigram_freq";
+const char *const Ver4DictConstants::BIGRAM_LOOKUP_TABLE_FILE_EXTENSION = ".bigram_lookup";
+const char *const Ver4DictConstants::BIGRAM_CONTENT_TABLE_FILE_EXTENSION = ".bigram_index_freq";
+const char *const Ver4DictConstants::SHORTCUT_FILE_EXTENSION = ".shortcut_shortcut";
+const char *const Ver4DictConstants::SHORTCUT_LOOKUP_TABLE_FILE_EXTENSION = ".shortcut_lookup";
+const char *const Ver4DictConstants::SHORTCUT_CONTENT_TABLE_FILE_EXTENSION =
+        ".shortcut_index_shortcut";
+
+// Version 4 dictionary size is implicitly limited to 8MB due to 3-byte offsets.
+const int Ver4DictConstants::MAX_DICTIONARY_SIZE = 8 * 1024 * 1024;
+// Extended region size, which is not GCed region size in dict file + additional buffer size, is
+// limited to 1MB to prevent from inefficient traversing.
+const int Ver4DictConstants::MAX_DICT_EXTENDED_REGION_SIZE = 1 * 1024 * 1024;
+
+const int Ver4DictConstants::NOT_A_TERMINAL_ID = -1;
+const int Ver4DictConstants::PROBABILITY_SIZE = 1;
+const int Ver4DictConstants::FLAGS_IN_PROBABILITY_FILE_SIZE = 1;
+const int Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE = 3;
+const int Ver4DictConstants::NOT_A_TERMINAL_ADDRESS = 0;
+const int Ver4DictConstants::TERMINAL_ID_FIELD_SIZE = 4;
+const int Ver4DictConstants::TIME_STAMP_FIELD_SIZE = 4;
+const int Ver4DictConstants::WORD_LEVEL_FIELD_SIZE = 1;
+const int Ver4DictConstants::WORD_COUNT_FIELD_SIZE = 1;
+
+const int Ver4DictConstants::BIGRAM_ADDRESS_TABLE_BLOCK_SIZE = 16;
+const int Ver4DictConstants::BIGRAM_ADDRESS_TABLE_DATA_SIZE = 4;
+const int Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_BLOCK_SIZE = 64;
+const int Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_DATA_SIZE = 4;
+
+const int Ver4DictConstants::BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE = 3;
+// Unsigned int max value of BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE-byte is used for representing
+// invalid terminal ID in bigram lists.
+const int Ver4DictConstants::INVALID_BIGRAM_TARGET_TERMINAL_ID =
+        (1 << (BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE * 8)) - 1;
+const int Ver4DictConstants::BIGRAM_FLAGS_FIELD_SIZE = 1;
+const int Ver4DictConstants::BIGRAM_PROBABILITY_MASK = 0x0F;
+const int Ver4DictConstants::BIGRAM_HAS_NEXT_MASK = 0x80;
+const int Ver4DictConstants::BIGRAM_LARGE_PROBABILITY_FIELD_SIZE = 1;
+
+const int Ver4DictConstants::SHORTCUT_FLAGS_FIELD_SIZE = 1;
+const int Ver4DictConstants::SHORTCUT_PROBABILITY_MASK = 0x0F;
+const int Ver4DictConstants::SHORTCUT_HAS_NEXT_MASK = 0x80;
+
+} // namespace v402
+} // namespace backward
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/backward/v402/ver4_dict_constants.h b/native/jni/src/dictionary/structure/backward/v402/ver4_dict_constants.h
new file mode 100644
index 0000000..15581d8
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_dict_constants.h
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/ver4_dict_constants.h
+ */
+
+#ifndef LATINIME_BACKWARD_V402_VER4_DICT_CONSTANTS_H
+#define LATINIME_BACKWARD_V402_VER4_DICT_CONSTANTS_H
+
+#include "defines.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+// TODO: Create PtConstants under the pt_common and move some constant values there.
+// Note that there are corresponding definitions in FormatSpec.java.
+class Ver4DictConstants {
+ public:
+    static const char *const TRIE_FILE_EXTENSION;
+    static const char *const HEADER_FILE_EXTENSION;
+    static const char *const FREQ_FILE_EXTENSION;
+    static const char *const TERMINAL_ADDRESS_TABLE_FILE_EXTENSION;
+    static const char *const BIGRAM_FILE_EXTENSION;
+    static const char *const BIGRAM_LOOKUP_TABLE_FILE_EXTENSION;
+    static const char *const BIGRAM_CONTENT_TABLE_FILE_EXTENSION;
+    static const char *const SHORTCUT_FILE_EXTENSION;
+    static const char *const SHORTCUT_LOOKUP_TABLE_FILE_EXTENSION;
+    static const char *const SHORTCUT_CONTENT_TABLE_FILE_EXTENSION;
+
+    static const int MAX_DICTIONARY_SIZE;
+    static const int MAX_DICT_EXTENDED_REGION_SIZE;
+
+    static const int NOT_A_TERMINAL_ID;
+    static const int PROBABILITY_SIZE;
+    static const int FLAGS_IN_PROBABILITY_FILE_SIZE;
+    static const int TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE;
+    static const int NOT_A_TERMINAL_ADDRESS;
+    static const int TERMINAL_ID_FIELD_SIZE;
+    static const int TIME_STAMP_FIELD_SIZE;
+    static const int WORD_LEVEL_FIELD_SIZE;
+    static const int WORD_COUNT_FIELD_SIZE;
+
+    static const int BIGRAM_ADDRESS_TABLE_BLOCK_SIZE;
+    static const int BIGRAM_ADDRESS_TABLE_DATA_SIZE;
+    static const int SHORTCUT_ADDRESS_TABLE_BLOCK_SIZE;
+    static const int SHORTCUT_ADDRESS_TABLE_DATA_SIZE;
+
+    static const int BIGRAM_FLAGS_FIELD_SIZE;
+    static const int BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE;
+    static const int INVALID_BIGRAM_TARGET_TERMINAL_ID;
+    static const int BIGRAM_PROBABILITY_MASK;
+    static const int BIGRAM_HAS_NEXT_MASK;
+    // Used when bigram list has time stamp.
+    static const int BIGRAM_LARGE_PROBABILITY_FIELD_SIZE;
+
+    static const int SHORTCUT_FLAGS_FIELD_SIZE;
+    static const int SHORTCUT_PROBABILITY_MASK;
+    static const int SHORTCUT_HAS_NEXT_MASK;
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(Ver4DictConstants);
+};
+} // namespace v402
+} // namespace backward
+} // namespace latinime
+#endif /* LATINIME_BACKWARD_V402_VER4_DICT_CONSTANTS_H */
diff --git a/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.cpp b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.cpp
new file mode 100644
index 0000000..871ef7a
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.cpp
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/ver4_patricia_trie_node_reader.cpp
+ */
+
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h"
+
+#include "dictionary/header/header_policy.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
+#include "dictionary/structure/pt_common/patricia_trie_reading_utils.h"
+#include "dictionary/structure/backward/v402/content/probability_dict_content.h"
+#include "dictionary/structure/backward/v402/content/probability_entry.h"
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/forgetting_curve_utils.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+const PtNodeParams Ver4PatriciaTrieNodeReader::fetchPtNodeInfoFromBufferAndProcessMovedPtNode(
+        const int ptNodePos, const int siblingNodePos) const {
+    if (ptNodePos < 0 || ptNodePos >= mBuffer->getTailPosition()) {
+        // Reading invalid position because of bug or broken dictionary.
+        AKLOGE("Fetching PtNode info from invalid dictionary position: %d, dictionary size: %d",
+                ptNodePos, mBuffer->getTailPosition());
+        ASSERT(false);
+        return PtNodeParams();
+    }
+    const bool usesAdditionalBuffer = mBuffer->isInAdditionalBuffer(ptNodePos);
+    const uint8_t *const dictBuf = mBuffer->getBuffer(usesAdditionalBuffer);
+    int pos = ptNodePos;
+    const int headPos = ptNodePos;
+    if (usesAdditionalBuffer) {
+        pos -= mBuffer->getOriginalBufferSize();
+    }
+    const PatriciaTrieReadingUtils::NodeFlags flags =
+            PatriciaTrieReadingUtils::getFlagsAndAdvancePosition(dictBuf, &pos);
+    const int parentPosOffset =
+            DynamicPtReadingUtils::getParentPtNodePosOffsetAndAdvancePosition(
+                    dictBuf, &pos);
+    const int parentPos =
+            DynamicPtReadingUtils::getParentPtNodePos(parentPosOffset, headPos);
+    int codePoints[MAX_WORD_LENGTH];
+    const int codePointCount = PatriciaTrieReadingUtils::getCharsAndAdvancePosition(
+            dictBuf, flags, MAX_WORD_LENGTH, mHeaderPolicy->getCodePointTable(), codePoints, &pos);
+    int terminalIdFieldPos = NOT_A_DICT_POS;
+    int terminalId = Ver4DictConstants::NOT_A_TERMINAL_ID;
+    int probability = NOT_A_PROBABILITY;
+    if (PatriciaTrieReadingUtils::isTerminal(flags)) {
+        terminalIdFieldPos = pos;
+        if (usesAdditionalBuffer) {
+            terminalIdFieldPos += mBuffer->getOriginalBufferSize();
+        }
+        terminalId = Ver4PatriciaTrieReadingUtils::getTerminalIdAndAdvancePosition(dictBuf, &pos);
+        const ProbabilityEntry probabilityEntry =
+                mProbabilityDictContent->getProbabilityEntry(terminalId);
+        if (probabilityEntry.hasHistoricalInfo()) {
+            probability = ForgettingCurveUtils::decodeProbability(
+                    probabilityEntry.getHistoricalInfo(), mHeaderPolicy);
+        } else {
+            probability = probabilityEntry.getProbability();
+        }
+    }
+    int childrenPosFieldPos = pos;
+    if (usesAdditionalBuffer) {
+        childrenPosFieldPos += mBuffer->getOriginalBufferSize();
+    }
+    int childrenPos = DynamicPtReadingUtils::readChildrenPositionAndAdvancePosition(
+            dictBuf, &pos);
+    if (usesAdditionalBuffer && childrenPos != NOT_A_DICT_POS) {
+        childrenPos += mBuffer->getOriginalBufferSize();
+    }
+    if (usesAdditionalBuffer) {
+        pos += mBuffer->getOriginalBufferSize();
+    }
+    // Sibling position is the tail position of original PtNode.
+    int newSiblingNodePos = (siblingNodePos == NOT_A_DICT_POS) ? pos : siblingNodePos;
+    // Read destination node if the read node is a moved node.
+    if (DynamicPtReadingUtils::isMoved(flags)) {
+        // The destination position is stored at the same place as the parent position.
+        return fetchPtNodeInfoFromBufferAndProcessMovedPtNode(parentPos, newSiblingNodePos);
+    } else {
+        return PtNodeParams(headPos, flags, parentPos, codePointCount, codePoints,
+                terminalIdFieldPos, terminalId, probability, childrenPosFieldPos, childrenPos,
+                newSiblingNodePos);
+    }
+}
+
+} // namespace v402
+} // namespace backward
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h
new file mode 100644
index 0000000..367d6f9
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/ver4_patricia_trie_node_reader.h
+ */
+
+#ifndef LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_NODE_READER_H
+#define LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_NODE_READER_H
+
+#include "defines.h"
+#include "dictionary/structure/pt_common/pt_node_params.h"
+#include "dictionary/structure/pt_common/pt_node_reader.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+} // namespace v402
+} // namespace backward
+class BufferWithExtendableBuffer;
+namespace backward {
+namespace v402 {
+} // namespace v402
+} // namespace backward
+class HeaderPolicy;
+namespace backward {
+namespace v402 {
+class ProbabilityDictContent;
+
+/*
+ * This class is used for helping to read nodes of ver4 patricia trie. This class handles moved
+ * node and reads node attributes including probability form probabilityBuffer.
+ */
+class Ver4PatriciaTrieNodeReader : public PtNodeReader {
+ public:
+    Ver4PatriciaTrieNodeReader(const BufferWithExtendableBuffer *const buffer,
+            const ProbabilityDictContent *const probabilityDictContent,
+            const HeaderPolicy *const headerPolicy)
+            : mBuffer(buffer), mProbabilityDictContent(probabilityDictContent),
+              mHeaderPolicy(headerPolicy) {}
+
+    ~Ver4PatriciaTrieNodeReader() {}
+
+    virtual const PtNodeParams fetchPtNodeParamsInBufferFromPtNodePos(const int ptNodePos) const {
+        return fetchPtNodeInfoFromBufferAndProcessMovedPtNode(ptNodePos,
+                NOT_A_DICT_POS /* siblingNodePos */);
+    }
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(Ver4PatriciaTrieNodeReader);
+
+    const BufferWithExtendableBuffer *const mBuffer;
+    const ProbabilityDictContent *const mProbabilityDictContent;
+    const HeaderPolicy *const mHeaderPolicy;
+
+    const PtNodeParams fetchPtNodeInfoFromBufferAndProcessMovedPtNode(const int ptNodePos,
+            const int siblingNodePos) const;
+};
+} // namespace v402
+} // namespace backward
+} // namespace latinime
+#endif /* LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_NODE_READER_H */
diff --git a/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.cpp b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.cpp
new file mode 100644
index 0000000..e3ab5ec
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.cpp
@@ -0,0 +1,442 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/ver4_patricia_trie_node_writer.cpp
+ */
+
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.h"
+
+#include "dictionary/header/header_policy.h"
+#include "dictionary/property/unigram_property.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
+#include "dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
+#include "dictionary/structure/pt_common/patricia_trie_reading_utils.h"
+#include "dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h"
+#include "dictionary/structure/backward/v402/content/probability_entry.h"
+#include "dictionary/structure/backward/v402/shortcut/ver4_shortcut_list_policy.h"
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h"
+#include "dictionary/structure/backward/v402/ver4_dict_buffers.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/forgetting_curve_utils.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+const int Ver4PatriciaTrieNodeWriter::CHILDREN_POSITION_FIELD_SIZE = 3;
+
+bool Ver4PatriciaTrieNodeWriter::markPtNodeAsDeleted(
+        const PtNodeParams *const toBeUpdatedPtNodeParams) {
+    int pos = toBeUpdatedPtNodeParams->getHeadPos();
+    const bool usesAdditionalBuffer = mTrieBuffer->isInAdditionalBuffer(pos);
+    const uint8_t *const dictBuf = mTrieBuffer->getBuffer(usesAdditionalBuffer);
+    if (usesAdditionalBuffer) {
+        pos -= mTrieBuffer->getOriginalBufferSize();
+    }
+    // Read original flags
+    const PatriciaTrieReadingUtils::NodeFlags originalFlags =
+            PatriciaTrieReadingUtils::getFlagsAndAdvancePosition(dictBuf, &pos);
+    const PatriciaTrieReadingUtils::NodeFlags updatedFlags =
+            DynamicPtReadingUtils::updateAndGetFlags(originalFlags, false /* isMoved */,
+                    true /* isDeleted */, false /* willBecomeNonTerminal */);
+    int writingPos = toBeUpdatedPtNodeParams->getHeadPos();
+    // Update flags.
+    if (!DynamicPtWritingUtils::writeFlagsAndAdvancePosition(mTrieBuffer, updatedFlags,
+            &writingPos)) {
+        return false;
+    }
+    if (toBeUpdatedPtNodeParams->isTerminal()) {
+        // The PtNode is a terminal. Delete entry from the terminal position lookup table.
+        return mBuffers->getMutableTerminalPositionLookupTable()->setTerminalPtNodePosition(
+                toBeUpdatedPtNodeParams->getTerminalId(), NOT_A_DICT_POS /* ptNodePos */);
+    } else {
+        return true;
+    }
+}
+
+bool Ver4PatriciaTrieNodeWriter::markPtNodeAsMoved(
+        const PtNodeParams *const toBeUpdatedPtNodeParams,
+        const int movedPos, const int bigramLinkedNodePos) {
+    int pos = toBeUpdatedPtNodeParams->getHeadPos();
+    const bool usesAdditionalBuffer = mTrieBuffer->isInAdditionalBuffer(pos);
+    const uint8_t *const dictBuf = mTrieBuffer->getBuffer(usesAdditionalBuffer);
+    if (usesAdditionalBuffer) {
+        pos -= mTrieBuffer->getOriginalBufferSize();
+    }
+    // Read original flags
+    const PatriciaTrieReadingUtils::NodeFlags originalFlags =
+            PatriciaTrieReadingUtils::getFlagsAndAdvancePosition(dictBuf, &pos);
+    const PatriciaTrieReadingUtils::NodeFlags updatedFlags =
+            DynamicPtReadingUtils::updateAndGetFlags(originalFlags, true /* isMoved */,
+                    false /* isDeleted */, false /* willBecomeNonTerminal */);
+    int writingPos = toBeUpdatedPtNodeParams->getHeadPos();
+    // Update flags.
+    if (!DynamicPtWritingUtils::writeFlagsAndAdvancePosition(mTrieBuffer, updatedFlags,
+            &writingPos)) {
+        return false;
+    }
+    // Update moved position, which is stored in the parent offset field.
+    if (!DynamicPtWritingUtils::writeParentPosOffsetAndAdvancePosition(
+            mTrieBuffer, movedPos, toBeUpdatedPtNodeParams->getHeadPos(), &writingPos)) {
+        return false;
+    }
+    if (toBeUpdatedPtNodeParams->hasChildren()) {
+        // Update children's parent position.
+        mReadingHelper.initWithPtNodeArrayPos(toBeUpdatedPtNodeParams->getChildrenPos());
+        while (!mReadingHelper.isEnd()) {
+            const PtNodeParams childPtNodeParams(mReadingHelper.getPtNodeParams());
+            int parentOffsetFieldPos = childPtNodeParams.getHeadPos()
+                    + DynamicPtWritingUtils::NODE_FLAG_FIELD_SIZE;
+            if (!DynamicPtWritingUtils::writeParentPosOffsetAndAdvancePosition(
+                    mTrieBuffer, bigramLinkedNodePos, childPtNodeParams.getHeadPos(),
+                    &parentOffsetFieldPos)) {
+                // Parent offset cannot be written because of a bug or a broken dictionary; thus,
+                // we give up to update dictionary.
+                return false;
+            }
+            mReadingHelper.readNextSiblingNode(childPtNodeParams);
+        }
+    }
+    return true;
+}
+
+bool Ver4PatriciaTrieNodeWriter::markPtNodeAsWillBecomeNonTerminal(
+        const PtNodeParams *const toBeUpdatedPtNodeParams) {
+    int pos = toBeUpdatedPtNodeParams->getHeadPos();
+    const bool usesAdditionalBuffer = mTrieBuffer->isInAdditionalBuffer(pos);
+    const uint8_t *const dictBuf = mTrieBuffer->getBuffer(usesAdditionalBuffer);
+    if (usesAdditionalBuffer) {
+        pos -= mTrieBuffer->getOriginalBufferSize();
+    }
+    // Read original flags
+    const PatriciaTrieReadingUtils::NodeFlags originalFlags =
+            PatriciaTrieReadingUtils::getFlagsAndAdvancePosition(dictBuf, &pos);
+    const PatriciaTrieReadingUtils::NodeFlags updatedFlags =
+            DynamicPtReadingUtils::updateAndGetFlags(originalFlags, false /* isMoved */,
+                    false /* isDeleted */, true /* willBecomeNonTerminal */);
+    if (!mBuffers->getMutableTerminalPositionLookupTable()->setTerminalPtNodePosition(
+            toBeUpdatedPtNodeParams->getTerminalId(), NOT_A_DICT_POS /* ptNodePos */)) {
+        AKLOGE("Cannot update terminal position lookup table. terminal id: %d",
+                toBeUpdatedPtNodeParams->getTerminalId());
+        return false;
+    }
+    // Update flags.
+    int writingPos = toBeUpdatedPtNodeParams->getHeadPos();
+    return DynamicPtWritingUtils::writeFlagsAndAdvancePosition(mTrieBuffer, updatedFlags,
+            &writingPos);
+}
+
+bool Ver4PatriciaTrieNodeWriter::updatePtNodeUnigramProperty(
+        const PtNodeParams *const toBeUpdatedPtNodeParams,
+        const UnigramProperty *const unigramProperty) {
+    // Update probability and historical information.
+    // TODO: Update other information in the unigram property.
+    if (!toBeUpdatedPtNodeParams->isTerminal()) {
+        return false;
+    }
+    const ProbabilityEntry originalProbabilityEntry =
+            mBuffers->getProbabilityDictContent()->getProbabilityEntry(
+                    toBeUpdatedPtNodeParams->getTerminalId());
+    const ProbabilityEntry probabilityEntry = createUpdatedEntryFrom(&originalProbabilityEntry,
+            unigramProperty);
+    return mBuffers->getMutableProbabilityDictContent()->setProbabilityEntry(
+            toBeUpdatedPtNodeParams->getTerminalId(), &probabilityEntry);
+}
+
+bool Ver4PatriciaTrieNodeWriter::updatePtNodeProbabilityAndGetNeedsToKeepPtNodeAfterGC(
+        const PtNodeParams *const toBeUpdatedPtNodeParams, bool *const outNeedsToKeepPtNode) {
+    if (!toBeUpdatedPtNodeParams->isTerminal()) {
+        AKLOGE("updatePtNodeProbabilityAndGetNeedsToSaveForGC is called for non-terminal PtNode.");
+        return false;
+    }
+    const ProbabilityEntry originalProbabilityEntry =
+            mBuffers->getProbabilityDictContent()->getProbabilityEntry(
+                    toBeUpdatedPtNodeParams->getTerminalId());
+    if (originalProbabilityEntry.hasHistoricalInfo()) {
+        const HistoricalInfo historicalInfo = ForgettingCurveUtils::createHistoricalInfoToSave(
+                originalProbabilityEntry.getHistoricalInfo(), mHeaderPolicy);
+        const ProbabilityEntry probabilityEntry =
+                originalProbabilityEntry.createEntryWithUpdatedHistoricalInfo(&historicalInfo);
+        if (!mBuffers->getMutableProbabilityDictContent()->setProbabilityEntry(
+                toBeUpdatedPtNodeParams->getTerminalId(), &probabilityEntry)) {
+            AKLOGE("Cannot write updated probability entry. terminalId: %d",
+                    toBeUpdatedPtNodeParams->getTerminalId());
+            return false;
+        }
+        const bool isValid = ForgettingCurveUtils::needsToKeep(&historicalInfo, mHeaderPolicy);
+        if (!isValid) {
+            if (!markPtNodeAsWillBecomeNonTerminal(toBeUpdatedPtNodeParams)) {
+                AKLOGE("Cannot mark PtNode as willBecomeNonTerminal.");
+                return false;
+            }
+        }
+        *outNeedsToKeepPtNode = isValid;
+    } else {
+        // No need to update probability.
+        *outNeedsToKeepPtNode = true;
+    }
+    return true;
+}
+
+bool Ver4PatriciaTrieNodeWriter::updateChildrenPosition(
+        const PtNodeParams *const toBeUpdatedPtNodeParams, const int newChildrenPosition) {
+    int childrenPosFieldPos = toBeUpdatedPtNodeParams->getChildrenPosFieldPos();
+    return DynamicPtWritingUtils::writeChildrenPositionAndAdvancePosition(mTrieBuffer,
+            newChildrenPosition, &childrenPosFieldPos);
+}
+
+bool Ver4PatriciaTrieNodeWriter::updateTerminalId(const PtNodeParams *const toBeUpdatedPtNodeParams,
+        const int newTerminalId) {
+    return mTrieBuffer->writeUint(newTerminalId, Ver4DictConstants::TERMINAL_ID_FIELD_SIZE,
+            toBeUpdatedPtNodeParams->getTerminalIdFieldPos());
+}
+
+bool Ver4PatriciaTrieNodeWriter::writePtNodeAndAdvancePosition(
+        const PtNodeParams *const ptNodeParams, int *const ptNodeWritingPos) {
+    return writePtNodeAndGetTerminalIdAndAdvancePosition(ptNodeParams, 0 /* outTerminalId */,
+            ptNodeWritingPos);
+}
+
+
+bool Ver4PatriciaTrieNodeWriter::writeNewTerminalPtNodeAndAdvancePosition(
+        const PtNodeParams *const ptNodeParams, const UnigramProperty *const unigramProperty,
+        int *const ptNodeWritingPos) {
+    int terminalId = Ver4DictConstants::NOT_A_TERMINAL_ID;
+    if (!writePtNodeAndGetTerminalIdAndAdvancePosition(ptNodeParams, &terminalId,
+            ptNodeWritingPos)) {
+        return false;
+    }
+    // Write probability.
+    ProbabilityEntry newProbabilityEntry;
+    const ProbabilityEntry probabilityEntryToWrite = createUpdatedEntryFrom(
+            &newProbabilityEntry, unigramProperty);
+    return mBuffers->getMutableProbabilityDictContent()->setProbabilityEntry(terminalId,
+            &probabilityEntryToWrite);
+}
+
+bool Ver4PatriciaTrieNodeWriter::addNgramEntry(const WordIdArrayView prevWordIds, const int wordId,
+        const NgramProperty *const ngramProperty, bool *const outAddedNewEntry) {
+    if (!mBigramPolicy->addNewEntry(prevWordIds[0], wordId, ngramProperty, outAddedNewEntry)) {
+        AKLOGE("Cannot add new bigram entry. prevWordId: %d, wordId: %d",
+                prevWordIds[0], wordId);
+        return false;
+    }
+    const int ptNodePos =
+            mBuffers->getTerminalPositionLookupTable()->getTerminalPtNodePosition(prevWordIds[0]);
+    const PtNodeParams sourcePtNodeParams =
+            mPtNodeReader->fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos);
+    if (!sourcePtNodeParams.hasBigrams()) {
+        // Update has bigrams flag.
+        return updatePtNodeFlags(sourcePtNodeParams.getHeadPos(),
+                sourcePtNodeParams.isPossiblyOffensive(), sourcePtNodeParams.isNotAWord(),
+                sourcePtNodeParams.isTerminal(), sourcePtNodeParams.hasShortcutTargets(),
+                true /* hasBigrams */,
+                sourcePtNodeParams.getCodePointCount() > 1 /* hasMultipleChars */);
+    }
+    return true;
+}
+
+bool Ver4PatriciaTrieNodeWriter::removeNgramEntry(const WordIdArrayView prevWordIds,
+        const int wordId) {
+    return mBigramPolicy->removeEntry(prevWordIds[0], wordId);
+}
+
+bool Ver4PatriciaTrieNodeWriter::updateAllBigramEntriesAndDeleteUselessEntries(
+            const PtNodeParams *const sourcePtNodeParams, int *const outBigramEntryCount) {
+    return mBigramPolicy->updateAllBigramEntriesAndDeleteUselessEntries(
+            sourcePtNodeParams->getTerminalId(), outBigramEntryCount);
+}
+
+bool Ver4PatriciaTrieNodeWriter::updateAllPositionFields(
+        const PtNodeParams *const toBeUpdatedPtNodeParams,
+        const DictPositionRelocationMap *const dictPositionRelocationMap,
+        int *const outBigramEntryCount) {
+    int parentPos = toBeUpdatedPtNodeParams->getParentPos();
+    if (parentPos != NOT_A_DICT_POS) {
+        PtNodeWriter::PtNodePositionRelocationMap::const_iterator it =
+                dictPositionRelocationMap->mPtNodePositionRelocationMap.find(parentPos);
+        if (it != dictPositionRelocationMap->mPtNodePositionRelocationMap.end()) {
+            parentPos = it->second;
+        }
+    }
+    int writingPos = toBeUpdatedPtNodeParams->getHeadPos()
+            + DynamicPtWritingUtils::NODE_FLAG_FIELD_SIZE;
+    // Write updated parent offset.
+    if (!DynamicPtWritingUtils::writeParentPosOffsetAndAdvancePosition(mTrieBuffer,
+            parentPos, toBeUpdatedPtNodeParams->getHeadPos(), &writingPos)) {
+        return false;
+    }
+
+    // Updates children position.
+    int childrenPos = toBeUpdatedPtNodeParams->getChildrenPos();
+    if (childrenPos != NOT_A_DICT_POS) {
+        PtNodeWriter::PtNodeArrayPositionRelocationMap::const_iterator it =
+                dictPositionRelocationMap->mPtNodeArrayPositionRelocationMap.find(childrenPos);
+        if (it != dictPositionRelocationMap->mPtNodeArrayPositionRelocationMap.end()) {
+            childrenPos = it->second;
+        }
+    }
+    if (!updateChildrenPosition(toBeUpdatedPtNodeParams, childrenPos)) {
+        return false;
+    }
+
+    // Counts bigram entries.
+    if (outBigramEntryCount) {
+        *outBigramEntryCount = mBigramPolicy->getBigramEntryConut(
+                toBeUpdatedPtNodeParams->getTerminalId());
+    }
+    return true;
+}
+
+bool Ver4PatriciaTrieNodeWriter::addShortcutTarget(const PtNodeParams *const ptNodeParams,
+        const int *const targetCodePoints, const int targetCodePointCount,
+        const int shortcutProbability) {
+    if (!mShortcutPolicy->addNewShortcut(ptNodeParams->getTerminalId(),
+            targetCodePoints, targetCodePointCount, shortcutProbability)) {
+        AKLOGE("Cannot add new shortcut entry. terminalId: %d", ptNodeParams->getTerminalId());
+        return false;
+    }
+    if (!ptNodeParams->hasShortcutTargets()) {
+        // Update has shortcut targets flag.
+        return updatePtNodeFlags(ptNodeParams->getHeadPos(),
+                ptNodeParams->isPossiblyOffensive(), ptNodeParams->isNotAWord(),
+                ptNodeParams->isTerminal(), true /* hasShortcutTargets */,
+                ptNodeParams->hasBigrams(),
+                ptNodeParams->getCodePointCount() > 1 /* hasMultipleChars */);
+    }
+    return true;
+}
+
+bool Ver4PatriciaTrieNodeWriter::updatePtNodeHasBigramsAndShortcutTargetsFlags(
+        const PtNodeParams *const ptNodeParams) {
+    const bool hasBigrams = mBuffers->getBigramDictContent()->getBigramListHeadPos(
+            ptNodeParams->getTerminalId()) != NOT_A_DICT_POS;
+    const bool hasShortcutTargets = mBuffers->getShortcutDictContent()->getShortcutListHeadPos(
+            ptNodeParams->getTerminalId()) != NOT_A_DICT_POS;
+    return updatePtNodeFlags(ptNodeParams->getHeadPos(), ptNodeParams->isPossiblyOffensive(),
+            ptNodeParams->isNotAWord(), ptNodeParams->isTerminal(), hasShortcutTargets,
+            hasBigrams, ptNodeParams->getCodePointCount() > 1 /* hasMultipleChars */);
+}
+
+bool Ver4PatriciaTrieNodeWriter::writePtNodeAndGetTerminalIdAndAdvancePosition(
+        const PtNodeParams *const ptNodeParams, int *const outTerminalId,
+        int *const ptNodeWritingPos) {
+    const int nodePos = *ptNodeWritingPos;
+    // Write dummy flags. The Node flags are updated with appropriate flags at the last step of the
+    // PtNode writing.
+    if (!DynamicPtWritingUtils::writeFlagsAndAdvancePosition(mTrieBuffer,
+            0 /* nodeFlags */, ptNodeWritingPos)) {
+        return false;
+    }
+    // Calculate a parent offset and write the offset.
+    if (!DynamicPtWritingUtils::writeParentPosOffsetAndAdvancePosition(mTrieBuffer,
+            ptNodeParams->getParentPos(), nodePos, ptNodeWritingPos)) {
+        return false;
+    }
+    // Write code points
+    if (!DynamicPtWritingUtils::writeCodePointsAndAdvancePosition(mTrieBuffer,
+            ptNodeParams->getCodePoints(), ptNodeParams->getCodePointCount(), ptNodeWritingPos)) {
+        return false;
+    }
+    int terminalId = Ver4DictConstants::NOT_A_TERMINAL_ID;
+    if (!ptNodeParams->willBecomeNonTerminal()) {
+        if (ptNodeParams->getTerminalId() != Ver4DictConstants::NOT_A_TERMINAL_ID) {
+            terminalId = ptNodeParams->getTerminalId();
+        } else if (ptNodeParams->isTerminal()) {
+            // Write terminal information using a new terminal id.
+            // Get a new unused terminal id.
+            terminalId = mBuffers->getTerminalPositionLookupTable()->getNextTerminalId();
+        }
+    }
+    const int isTerminal = terminalId != Ver4DictConstants::NOT_A_TERMINAL_ID;
+    if (isTerminal) {
+        // Update the lookup table.
+        if (!mBuffers->getMutableTerminalPositionLookupTable()->setTerminalPtNodePosition(
+                terminalId, nodePos)) {
+            return false;
+        }
+        // Write terminal Id.
+        if (!mTrieBuffer->writeUintAndAdvancePosition(terminalId,
+                Ver4DictConstants::TERMINAL_ID_FIELD_SIZE, ptNodeWritingPos)) {
+            return false;
+        }
+        if (outTerminalId) {
+            *outTerminalId = terminalId;
+        }
+    }
+    // Write children position
+    if (!DynamicPtWritingUtils::writeChildrenPositionAndAdvancePosition(mTrieBuffer,
+            ptNodeParams->getChildrenPos(), ptNodeWritingPos)) {
+        return false;
+    }
+    return updatePtNodeFlags(nodePos, ptNodeParams->isPossiblyOffensive(),
+            ptNodeParams->isNotAWord(), isTerminal, ptNodeParams->hasShortcutTargets(),
+            ptNodeParams->hasBigrams(),
+            ptNodeParams->getCodePointCount() > 1 /* hasMultipleChars */);
+}
+
+const ProbabilityEntry Ver4PatriciaTrieNodeWriter::createUpdatedEntryFrom(
+        const ProbabilityEntry *const originalProbabilityEntry,
+        const UnigramProperty *const unigramProperty) const {
+    // TODO: Consolidate historical info and probability.
+    if (mHeaderPolicy->hasHistoricalInfoOfWords()) {
+        const HistoricalInfo &historicalInfoForUpdate = unigramProperty->getHistoricalInfo();
+        const HistoricalInfo updatedHistoricalInfo =
+                ForgettingCurveUtils::createUpdatedHistoricalInfo(
+                        originalProbabilityEntry->getHistoricalInfo(),
+                        unigramProperty->getProbability(), &historicalInfoForUpdate, mHeaderPolicy);
+        return originalProbabilityEntry->createEntryWithUpdatedHistoricalInfo(
+                &updatedHistoricalInfo);
+    } else {
+        return originalProbabilityEntry->createEntryWithUpdatedProbability(
+                unigramProperty->getProbability());
+    }
+}
+
+bool Ver4PatriciaTrieNodeWriter::updatePtNodeFlags(const int ptNodePos,
+        const bool isBlacklisted, const bool isNotAWord, const bool isTerminal,
+        const bool hasShortcutTargets, const bool hasBigrams, const bool hasMultipleChars) {
+    // Create node flags and write them.
+    PatriciaTrieReadingUtils::NodeFlags nodeFlags =
+            PatriciaTrieReadingUtils::createAndGetFlags(isBlacklisted, isNotAWord, isTerminal,
+                    hasShortcutTargets, hasBigrams, hasMultipleChars,
+                    CHILDREN_POSITION_FIELD_SIZE);
+    if (!DynamicPtWritingUtils::writeFlags(mTrieBuffer, nodeFlags, ptNodePos)) {
+        AKLOGE("Cannot write PtNode flags. flags: %x, pos: %d", nodeFlags, ptNodePos);
+        return false;
+    }
+    return true;
+}
+
+bool Ver4PatriciaTrieNodeWriter::suppressUnigramEntry(const PtNodeParams *const ptNodeParams) {
+    if (!mHeaderPolicy->hasHistoricalInfoOfWords()) {
+        // Require historical info to suppress unigram entry.
+        return false;
+    }
+    const HistoricalInfo suppressedHistorycalInfo(0 /* timestamp */, 0 /* level */, 0 /* count */);
+    const ProbabilityEntry probabilityEntryToWrite =
+            ProbabilityEntry().createEntryWithUpdatedHistoricalInfo(&suppressedHistorycalInfo);
+    return mBuffers->getMutableProbabilityDictContent()->setProbabilityEntry(
+            ptNodeParams->getTerminalId(), &probabilityEntryToWrite);
+}
+
+} // namespace v402
+} // namespace backward
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.h b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.h
new file mode 100644
index 0000000..db3cea1
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.h
@@ -0,0 +1,150 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/ver4_patricia_trie_node_writer.h
+ */
+
+#ifndef LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_NODE_WRITER_H
+#define LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_NODE_WRITER_H
+
+#include "defines.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
+#include "dictionary/structure/pt_common/pt_node_params.h"
+#include "dictionary/structure/pt_common/pt_node_writer.h"
+#include "dictionary/structure/backward/v402/content/probability_entry.h"
+#include "utils/int_array_view.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+} // namespace v402
+} // namespace backward
+class BufferWithExtendableBuffer;
+namespace backward {
+namespace v402 {
+} // namespace v402
+} // namespace backward
+class HeaderPolicy;
+namespace backward {
+namespace v402 {
+class Ver4BigramListPolicy;
+class Ver4DictBuffers;
+class Ver4PatriciaTrieNodeReader;
+class Ver4PtNodeArrayReader;
+class Ver4ShortcutListPolicy;
+
+/*
+ * This class is used for helping to writes nodes of ver4 patricia trie.
+ */
+class Ver4PatriciaTrieNodeWriter : public PtNodeWriter {
+ public:
+    Ver4PatriciaTrieNodeWriter(BufferWithExtendableBuffer *const trieBuffer,
+            Ver4DictBuffers *const buffers, const HeaderPolicy *const headerPolicy,
+            const PtNodeReader *const ptNodeReader,
+            const PtNodeArrayReader *const ptNodeArrayReader,
+            Ver4BigramListPolicy *const bigramPolicy, Ver4ShortcutListPolicy *const shortcutPolicy)
+            : mTrieBuffer(trieBuffer), mBuffers(buffers), mHeaderPolicy(headerPolicy),
+              mPtNodeReader(ptNodeReader), mReadingHelper(ptNodeReader, ptNodeArrayReader),
+              mBigramPolicy(bigramPolicy), mShortcutPolicy(shortcutPolicy) {}
+
+    virtual ~Ver4PatriciaTrieNodeWriter() {}
+
+    virtual bool markPtNodeAsDeleted(const PtNodeParams *const toBeUpdatedPtNodeParams);
+
+    virtual bool markPtNodeAsMoved(const PtNodeParams *const toBeUpdatedPtNodeParams,
+            const int movedPos, const int bigramLinkedNodePos);
+
+    virtual bool markPtNodeAsWillBecomeNonTerminal(
+            const PtNodeParams *const toBeUpdatedPtNodeParams);
+
+    virtual bool updatePtNodeUnigramProperty(const PtNodeParams *const toBeUpdatedPtNodeParams,
+            const UnigramProperty *const unigramProperty);
+
+    virtual bool updatePtNodeProbabilityAndGetNeedsToKeepPtNodeAfterGC(
+            const PtNodeParams *const toBeUpdatedPtNodeParams, bool *const outNeedsToKeepPtNode);
+
+    virtual bool updateChildrenPosition(const PtNodeParams *const toBeUpdatedPtNodeParams,
+            const int newChildrenPosition);
+
+    bool updateTerminalId(const PtNodeParams *const toBeUpdatedPtNodeParams,
+            const int newTerminalId);
+
+    virtual bool writePtNodeAndAdvancePosition(const PtNodeParams *const ptNodeParams,
+            int *const ptNodeWritingPos);
+
+    virtual bool writeNewTerminalPtNodeAndAdvancePosition(const PtNodeParams *const ptNodeParams,
+            const UnigramProperty *const unigramProperty, int *const ptNodeWritingPos);
+
+    virtual bool addNgramEntry(const WordIdArrayView prevWordIds, const int wordId,
+            const NgramProperty *const ngramProperty, bool *const outAddedNewEntry);
+
+    virtual bool removeNgramEntry(const WordIdArrayView prevWordIds, const int wordId);
+
+    virtual bool updateAllBigramEntriesAndDeleteUselessEntries(
+            const PtNodeParams *const sourcePtNodeParams, int *const outBigramEntryCount);
+
+    virtual bool updateAllPositionFields(const PtNodeParams *const toBeUpdatedPtNodeParams,
+            const DictPositionRelocationMap *const dictPositionRelocationMap,
+            int *const outBigramEntryCount);
+
+    virtual bool addShortcutTarget(const PtNodeParams *const ptNodeParams,
+            const int *const targetCodePoints, const int targetCodePointCount,
+            const int shortcutProbability);
+
+    bool updatePtNodeHasBigramsAndShortcutTargetsFlags(const PtNodeParams *const ptNodeParams);
+
+    // Suppress unigram not to use the word for generating suggestions. So, this method can be used
+    // only for dictionaries with historical info. Also, suppressed entries are included in unigram
+    // count. They will be removed from the dictionary during GC.
+    bool suppressUnigramEntry(const PtNodeParams *const ptNodeParams);
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(Ver4PatriciaTrieNodeWriter);
+
+    bool writePtNodeAndGetTerminalIdAndAdvancePosition(
+            const PtNodeParams *const ptNodeParams, int *const outTerminalId,
+            int *const ptNodeWritingPos);
+
+    // Create updated probability entry using given unigram property. In addition to the
+    // probability, this method updates historical information if needed.
+    // TODO: Update flags belonging to the unigram property.
+    const ProbabilityEntry createUpdatedEntryFrom(
+            const ProbabilityEntry *const originalProbabilityEntry,
+            const UnigramProperty *const unigramProperty) const;
+
+    bool updatePtNodeFlags(const int ptNodePos, const bool isBlacklisted, const bool isNotAWord,
+            const bool isTerminal, const bool hasShortcutTargets, const bool hasBigrams,
+            const bool hasMultipleChars);
+
+    static const int CHILDREN_POSITION_FIELD_SIZE;
+
+    BufferWithExtendableBuffer *const mTrieBuffer;
+    Ver4DictBuffers *const mBuffers;
+    const HeaderPolicy *const mHeaderPolicy;
+    const PtNodeReader *const mPtNodeReader;
+    DynamicPtReadingHelper mReadingHelper;
+    Ver4BigramListPolicy *const mBigramPolicy;
+    Ver4ShortcutListPolicy *const mShortcutPolicy;
+};
+} // namespace v402
+} // namespace backward
+} // namespace latinime
+#endif /* LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_NODE_WRITER_H */
diff --git a/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp
new file mode 100644
index 0000000..6fb9cff
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp
@@ -0,0 +1,662 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT CHANGE THE LOGIC IN THIS FILE !!!!!
+ * Do not edit this file other than updating policy's interface.
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/ver4_patricia_trie_policy.cpp
+ */
+
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_policy.h"
+
+#include <vector>
+
+#include "suggest/core/dicnode/dic_node.h"
+#include "suggest/core/dicnode/dic_node_vector.h"
+#include "dictionary/interface/ngram_listener.h"
+#include "dictionary/property/ngram_context.h"
+#include "dictionary/property/ngram_property.h"
+#include "dictionary/property/unigram_property.h"
+#include "dictionary/property/word_property.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h"
+#include "dictionary/utils/forgetting_curve_utils.h"
+#include "dictionary/utils/multi_bigram_map.h"
+#include "dictionary/utils/probability_utils.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+// Note that there are corresponding definitions in Java side in BinaryDictionaryTests and
+// BinaryDictionaryDecayingTests.
+const char *const Ver4PatriciaTriePolicy::UNIGRAM_COUNT_QUERY = "UNIGRAM_COUNT";
+const char *const Ver4PatriciaTriePolicy::BIGRAM_COUNT_QUERY = "BIGRAM_COUNT";
+const char *const Ver4PatriciaTriePolicy::MAX_UNIGRAM_COUNT_QUERY = "MAX_UNIGRAM_COUNT";
+const char *const Ver4PatriciaTriePolicy::MAX_BIGRAM_COUNT_QUERY = "MAX_BIGRAM_COUNT";
+const int Ver4PatriciaTriePolicy::MARGIN_TO_REFUSE_DYNAMIC_OPERATIONS = 1024;
+const int Ver4PatriciaTriePolicy::MIN_DICT_SIZE_TO_REFUSE_DYNAMIC_OPERATIONS =
+        Ver4DictConstants::MAX_DICTIONARY_SIZE - MARGIN_TO_REFUSE_DYNAMIC_OPERATIONS;
+const int Ver4PatriciaTriePolicy::DUMMY_PROBABILITY_FOR_VALID_WORDS = 1;
+
+void Ver4PatriciaTriePolicy::createAndGetAllChildDicNodes(const DicNode *const dicNode,
+        DicNodeVector *const childDicNodes) const {
+    if (!dicNode->hasChildren()) {
+        return;
+    }
+    DynamicPtReadingHelper readingHelper(&mNodeReader, &mPtNodeArrayReader);
+    readingHelper.initWithPtNodeArrayPos(dicNode->getChildrenPtNodeArrayPos());
+    while (!readingHelper.isEnd()) {
+        const PtNodeParams ptNodeParams = readingHelper.getPtNodeParams();
+        if (!ptNodeParams.isValid()) {
+            break;
+        }
+        bool isTerminal = ptNodeParams.isTerminal() && !ptNodeParams.isDeleted();
+        if (isTerminal && mHeaderPolicy->isDecayingDict()) {
+            // A DecayingDict may have a terminal PtNode that has a terminal DicNode whose
+            // probability is NOT_A_PROBABILITY. In such case, we don't want to treat it as a
+            // valid terminal DicNode.
+            isTerminal = ptNodeParams.getProbability() != NOT_A_PROBABILITY;
+        }
+        readingHelper.readNextSiblingNode(ptNodeParams);
+        if (ptNodeParams.representsNonWordInfo()) {
+            // Skip PtNodes that represent non-word information.
+            continue;
+        }
+        const int wordId = isTerminal ? ptNodeParams.getHeadPos() : NOT_A_WORD_ID;
+        childDicNodes->pushLeavingChild(dicNode, ptNodeParams.getChildrenPos(),
+                wordId, ptNodeParams.getCodePointArrayView());
+    }
+    if (readingHelper.isError()) {
+        mIsCorrupted = true;
+        AKLOGE("Dictionary reading error in createAndGetAllChildDicNodes().");
+    }
+}
+
+int Ver4PatriciaTriePolicy::getCodePointsAndReturnCodePointCount(const int wordId,
+        const int maxCodePointCount, int *const outCodePoints) const {
+    DynamicPtReadingHelper readingHelper(&mNodeReader, &mPtNodeArrayReader);
+    const int ptNodePos = getTerminalPtNodePosFromWordId(wordId);
+    readingHelper.initWithPtNodePos(ptNodePos);
+    const int codePointCount =  readingHelper.getCodePointsAndReturnCodePointCount(
+            maxCodePointCount, outCodePoints);
+    if (readingHelper.isError()) {
+        mIsCorrupted = true;
+        AKLOGE("Dictionary reading error in getCodePointsAndProbabilityAndReturnCodePointCount().");
+    }
+    return codePointCount;
+}
+
+int Ver4PatriciaTriePolicy::getWordId(const CodePointArrayView wordCodePoints,
+        const bool forceLowerCaseSearch) const {
+    DynamicPtReadingHelper readingHelper(&mNodeReader, &mPtNodeArrayReader);
+    readingHelper.initWithPtNodeArrayPos(getRootPosition());
+    const int ptNodePos = readingHelper.getTerminalPtNodePositionOfWord(wordCodePoints.data(),
+            wordCodePoints.size(), forceLowerCaseSearch);
+    if (readingHelper.isError()) {
+        mIsCorrupted = true;
+        AKLOGE("Dictionary reading error in getWordId().");
+    }
+    return getWordIdFromTerminalPtNodePos(ptNodePos);
+}
+
+const WordAttributes Ver4PatriciaTriePolicy::getWordAttributesInContext(
+        const WordIdArrayView prevWordIds, const int wordId,
+        MultiBigramMap *const multiBigramMap) const {
+    if (wordId == NOT_A_WORD_ID) {
+        return WordAttributes();
+    }
+    const int ptNodePos = getTerminalPtNodePosFromWordId(wordId);
+    const PtNodeParams ptNodeParams(mNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos));
+    if (multiBigramMap) {
+        const int probability = multiBigramMap->getBigramProbability(this /* structurePolicy */,
+                prevWordIds, wordId, ptNodeParams.getProbability());
+        return getWordAttributes(probability, ptNodeParams);
+    }
+    if (!prevWordIds.empty()) {
+        const int probability = getProbabilityOfWord(prevWordIds, wordId);
+        if (probability != NOT_A_PROBABILITY) {
+            return getWordAttributes(probability, ptNodeParams);
+        }
+    }
+    return getWordAttributes(getProbability(ptNodeParams.getProbability(), NOT_A_PROBABILITY),
+            ptNodeParams);
+}
+
+const WordAttributes Ver4PatriciaTriePolicy::getWordAttributes(const int probability,
+        const PtNodeParams &ptNodeParams) const {
+    return WordAttributes(probability, false /* isBlacklisted */, ptNodeParams.isNotAWord(),
+            ptNodeParams.getProbability() == 0);
+}
+
+int Ver4PatriciaTriePolicy::getProbability(const int unigramProbability,
+        const int bigramProbability) const {
+    // In the v4 format, bigramProbability is a conditional probability.
+    const int bigramConditionalProbability = bigramProbability;
+    if (unigramProbability == NOT_A_PROBABILITY) {
+        return NOT_A_PROBABILITY;
+    }
+    if (bigramConditionalProbability == NOT_A_PROBABILITY) {
+        return ProbabilityUtils::backoff(unigramProbability);
+    }
+    return bigramConditionalProbability;
+}
+
+int Ver4PatriciaTriePolicy::getProbabilityOfWord(const WordIdArrayView prevWordIds,
+        const int wordId) const {
+    if (wordId == NOT_A_WORD_ID) {
+        return NOT_A_PROBABILITY;
+    }
+    const int ptNodePos = getTerminalPtNodePosFromWordId(wordId);
+    const PtNodeParams ptNodeParams(mNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos));
+    if (ptNodeParams.isDeleted() || ptNodeParams.isNotAWord()) {
+        return NOT_A_PROBABILITY;
+    }
+    if (prevWordIds.empty()) {
+        return getProbability(ptNodeParams.getProbability(), NOT_A_PROBABILITY);
+    }
+    if (prevWordIds[0] == NOT_A_WORD_ID) {
+        return NOT_A_PROBABILITY;
+    }
+    const PtNodeParams prevWordPtNodeParams =
+            mNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(prevWordIds[0]);
+    if (prevWordPtNodeParams.isDeleted()) {
+        return getProbability(ptNodeParams.getProbability(), NOT_A_PROBABILITY);
+    }
+    const int bigramsPosition = mBuffers->getBigramDictContent()->getBigramListHeadPos(
+            prevWordPtNodeParams.getTerminalId());
+    BinaryDictionaryBigramsIterator bigramsIt(&mBigramPolicy, bigramsPosition);
+    while (bigramsIt.hasNext()) {
+        bigramsIt.next();
+        if (bigramsIt.getBigramPos() == ptNodePos
+                && bigramsIt.getProbability() != NOT_A_PROBABILITY) {
+            const int bigramConditionalProbability = getBigramConditionalProbability(
+                    prevWordPtNodeParams.getProbability(),
+                    prevWordPtNodeParams.representsBeginningOfSentence(),
+                    bigramsIt.getProbability());
+            return getProbability(ptNodeParams.getProbability(), bigramConditionalProbability);
+        }
+    }
+    return NOT_A_PROBABILITY;
+}
+
+void Ver4PatriciaTriePolicy::iterateNgramEntries(const WordIdArrayView prevWordIds,
+        NgramListener *const listener) const {
+    if (prevWordIds.firstOrDefault(NOT_A_DICT_POS) == NOT_A_DICT_POS) {
+        return;
+    }
+    const PtNodeParams prevWordPtNodeParams =
+            mNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(prevWordIds[0]);
+    if (prevWordPtNodeParams.isDeleted()) {
+        return;
+    }
+    const int bigramsPosition = mBuffers->getBigramDictContent()->getBigramListHeadPos(
+            prevWordPtNodeParams.getTerminalId());
+    BinaryDictionaryBigramsIterator bigramsIt(&mBigramPolicy, bigramsPosition);
+    while (bigramsIt.hasNext()) {
+        bigramsIt.next();
+        const int bigramConditionalProbability = getBigramConditionalProbability(
+                prevWordPtNodeParams.getProbability(),
+                prevWordPtNodeParams.representsBeginningOfSentence(), bigramsIt.getProbability());
+        listener->onVisitEntry(bigramConditionalProbability,
+                getWordIdFromTerminalPtNodePos(bigramsIt.getBigramPos()));
+    }
+}
+
+int Ver4PatriciaTriePolicy::getBigramConditionalProbability(const int prevWordUnigramProbability,
+        const bool isInBeginningOfSentenceContext, const int bigramProbability) const {
+    if (mHeaderPolicy->hasHistoricalInfoOfWords()) {
+        if (isInBeginningOfSentenceContext) {
+            return bigramProbability;
+        }
+        // Calculate conditional probability.
+        return std::min(MAX_PROBABILITY - prevWordUnigramProbability + bigramProbability,
+                MAX_PROBABILITY);
+    } else {
+        // bigramProbability is a conditional probability.
+        return bigramProbability;
+    }
+}
+
+BinaryDictionaryShortcutIterator Ver4PatriciaTriePolicy::getShortcutIterator(
+        const int wordId) const {
+    const int shortcutPos = getShortcutPositionOfPtNode(getTerminalPtNodePosFromWordId(wordId));
+    return BinaryDictionaryShortcutIterator(&mShortcutPolicy, shortcutPos);
+}
+
+int Ver4PatriciaTriePolicy::getShortcutPositionOfPtNode(const int ptNodePos) const {
+    if (ptNodePos == NOT_A_DICT_POS) {
+        return NOT_A_DICT_POS;
+    }
+    const PtNodeParams ptNodeParams(mNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos));
+    if (ptNodeParams.isDeleted()) {
+        return NOT_A_DICT_POS;
+    }
+    return mBuffers->getShortcutDictContent()->getShortcutListHeadPos(
+            ptNodeParams.getTerminalId());
+}
+
+int Ver4PatriciaTriePolicy::getBigramsPositionOfPtNode(const int ptNodePos) const {
+    if (ptNodePos == NOT_A_DICT_POS) {
+        return NOT_A_DICT_POS;
+    }
+    const PtNodeParams ptNodeParams(mNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos));
+    if (ptNodeParams.isDeleted()) {
+        return NOT_A_DICT_POS;
+    }
+    return mBuffers->getBigramDictContent()->getBigramListHeadPos(
+            ptNodeParams.getTerminalId());
+}
+
+bool Ver4PatriciaTriePolicy::addUnigramEntry(const CodePointArrayView wordCodePoints,
+        const UnigramProperty *const unigramProperty) {
+    if (!mBuffers->isUpdatable()) {
+        AKLOGI("Warning: addUnigramEntry() is called for non-updatable dictionary.");
+        return false;
+    }
+    if (mDictBuffer->getTailPosition() >= MIN_DICT_SIZE_TO_REFUSE_DYNAMIC_OPERATIONS) {
+        AKLOGE("The dictionary is too large to dynamically update. Dictionary size: %d",
+                mDictBuffer->getTailPosition());
+        return false;
+    }
+    if (wordCodePoints.size() > MAX_WORD_LENGTH) {
+        AKLOGE("The word is too long to insert to the dictionary, length: %zd",
+                wordCodePoints.size());
+        return false;
+    }
+    for (const auto &shortcut : unigramProperty->getShortcuts()) {
+        if (shortcut.getTargetCodePoints()->size() > MAX_WORD_LENGTH) {
+            AKLOGE("One of shortcut targets is too long to insert to the dictionary, length: %zd",
+                    shortcut.getTargetCodePoints()->size());
+            return false;
+        }
+    }
+    DynamicPtReadingHelper readingHelper(&mNodeReader, &mPtNodeArrayReader);
+    readingHelper.initWithPtNodeArrayPos(getRootPosition());
+    bool addedNewUnigram = false;
+    int codePointsToAdd[MAX_WORD_LENGTH];
+    int codePointCountToAdd = wordCodePoints.size();
+    memmove(codePointsToAdd, wordCodePoints.data(), sizeof(int) * codePointCountToAdd);
+    if (unigramProperty->representsBeginningOfSentence()) {
+        codePointCountToAdd = CharUtils::attachBeginningOfSentenceMarker(codePointsToAdd,
+                codePointCountToAdd, MAX_WORD_LENGTH);
+    }
+    if (codePointCountToAdd <= 0) {
+        return false;
+    }
+    const CodePointArrayView codePointArrayView(codePointsToAdd, codePointCountToAdd);
+    if (mUpdatingHelper.addUnigramWord(&readingHelper, codePointArrayView, unigramProperty,
+            &addedNewUnigram)) {
+        if (addedNewUnigram && !unigramProperty->representsBeginningOfSentence()) {
+            mEntryCounters.incrementNgramCount(NgramType::Unigram);
+        }
+        if (unigramProperty->getShortcuts().size() > 0) {
+            // Add shortcut target.
+            const int wordPos = getTerminalPtNodePosFromWordId(
+                    getWordId(codePointArrayView, false /* forceLowerCaseSearch */));
+            if (wordPos == NOT_A_DICT_POS) {
+                AKLOGE("Cannot find terminal PtNode position to add shortcut target.");
+                return false;
+            }
+            for (const auto &shortcut : unigramProperty->getShortcuts()) {
+                if (!mUpdatingHelper.addShortcutTarget(wordPos,
+                        CodePointArrayView(*shortcut.getTargetCodePoints()),
+                        shortcut.getProbability())) {
+                    AKLOGE("Cannot add new shortcut target. PtNodePos: %d, length: %zd, "
+                            "probability: %d", wordPos, shortcut.getTargetCodePoints()->size(),
+                            shortcut.getProbability());
+                    return false;
+                }
+            }
+        }
+        return true;
+    } else {
+        return false;
+    }
+}
+
+bool Ver4PatriciaTriePolicy::removeUnigramEntry(const CodePointArrayView wordCodePoints) {
+    if (!mBuffers->isUpdatable()) {
+        AKLOGI("Warning: removeUnigramEntry() is called for non-updatable dictionary.");
+        return false;
+    }
+    const int ptNodePos = getTerminalPtNodePosFromWordId(
+            getWordId(wordCodePoints, false /* forceLowerCaseSearch */));
+    if (ptNodePos == NOT_A_DICT_POS) {
+        return false;
+    }
+    const PtNodeParams ptNodeParams = mNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos);
+    return mNodeWriter.suppressUnigramEntry(&ptNodeParams);
+}
+
+bool Ver4PatriciaTriePolicy::addNgramEntry(const NgramProperty *const ngramProperty) {
+    if (!mBuffers->isUpdatable()) {
+        AKLOGI("Warning: addNgramEntry() is called for non-updatable dictionary.");
+        return false;
+    }
+    if (mDictBuffer->getTailPosition() >= MIN_DICT_SIZE_TO_REFUSE_DYNAMIC_OPERATIONS) {
+        AKLOGE("The dictionary is too large to dynamically update. Dictionary size: %d",
+                mDictBuffer->getTailPosition());
+        return false;
+    }
+    const NgramContext *const ngramContext = ngramProperty->getNgramContext();
+    if (!ngramContext->isValid()) {
+        AKLOGE("Ngram context is not valid for adding n-gram entry to the dictionary.");
+        return false;
+    }
+    if (ngramProperty->getTargetCodePoints()->size() > MAX_WORD_LENGTH) {
+        AKLOGE("The word is too long to insert the ngram to the dictionary. "
+                "length: %zd", ngramProperty->getTargetCodePoints()->size());
+        return false;
+    }
+    WordIdArray<MAX_PREV_WORD_COUNT_FOR_N_GRAM> prevWordIdArray;
+    const WordIdArrayView prevWordIds = ngramContext->getPrevWordIds(this, &prevWordIdArray,
+            false /* tryLowerCaseSearch */);
+    if (prevWordIds.empty()) {
+        return false;
+    }
+    if (prevWordIds[0] == NOT_A_WORD_ID) {
+        if (ngramContext->isNthPrevWordBeginningOfSentence(1 /* n */)) {
+            const UnigramProperty beginningOfSentenceUnigramProperty(
+                    true /* representsBeginningOfSentence */, true /* isNotAWord */,
+                    false /* isBlacklisted */, MAX_PROBABILITY /* probability */, HistoricalInfo());
+            if (!addUnigramEntry(ngramContext->getNthPrevWordCodePoints(1 /* n */),
+                    &beginningOfSentenceUnigramProperty)) {
+                AKLOGE("Cannot add unigram entry for the beginning-of-sentence.");
+                return false;
+            }
+            // Refresh word ids.
+            ngramContext->getPrevWordIds(this, &prevWordIdArray, false /* tryLowerCaseSearch */);
+        } else {
+            return false;
+        }
+    }
+    const int wordPos = getTerminalPtNodePosFromWordId(getWordId(
+            CodePointArrayView(*ngramProperty->getTargetCodePoints()),
+                    false /* forceLowerCaseSearch */));
+    if (wordPos == NOT_A_DICT_POS) {
+        return false;
+    }
+    bool addedNewBigram = false;
+    const int prevWordPtNodePos = getTerminalPtNodePosFromWordId(prevWordIds[0]);
+    if (mUpdatingHelper.addNgramEntry(PtNodePosArrayView::singleElementView(&prevWordPtNodePos),
+            wordPos, ngramProperty, &addedNewBigram)) {
+        if (addedNewBigram) {
+            mEntryCounters.incrementNgramCount(NgramType::Bigram);
+        }
+        return true;
+    } else {
+        return false;
+    }
+}
+
+bool Ver4PatriciaTriePolicy::removeNgramEntry(const NgramContext *const ngramContext,
+        const CodePointArrayView wordCodePoints) {
+    if (!mBuffers->isUpdatable()) {
+        AKLOGI("Warning: removeNgramEntry() is called for non-updatable dictionary.");
+        return false;
+    }
+    if (mDictBuffer->getTailPosition() >= MIN_DICT_SIZE_TO_REFUSE_DYNAMIC_OPERATIONS) {
+        AKLOGE("The dictionary is too large to dynamically update. Dictionary size: %d",
+                mDictBuffer->getTailPosition());
+        return false;
+    }
+    if (!ngramContext->isValid()) {
+        AKLOGE("Ngram context is not valid for removing n-gram entry form the dictionary.");
+        return false;
+    }
+    if (wordCodePoints.size() > MAX_WORD_LENGTH) {
+        AKLOGE("word is too long to remove n-gram entry form the dictionary. length: %zd",
+                wordCodePoints.size());
+    }
+    WordIdArray<MAX_PREV_WORD_COUNT_FOR_N_GRAM> prevWordIdArray;
+    const WordIdArrayView prevWordIds = ngramContext->getPrevWordIds(this, &prevWordIdArray,
+            false /* tryLowerCaseSerch */);
+    if (prevWordIds.firstOrDefault(NOT_A_WORD_ID) == NOT_A_WORD_ID) {
+        return false;
+    }
+    const int wordPos = getTerminalPtNodePosFromWordId(getWordId(wordCodePoints,
+            false /* forceLowerCaseSearch */));
+    if (wordPos == NOT_A_DICT_POS) {
+        return false;
+    }
+    const int prevWordPtNodePos = getTerminalPtNodePosFromWordId(prevWordIds[0]);
+    if (mUpdatingHelper.removeNgramEntry(
+            PtNodePosArrayView::singleElementView(&prevWordPtNodePos), wordPos)) {
+        mEntryCounters.decrementNgramCount(NgramType::Bigram);
+        return true;
+    } else {
+        return false;
+    }
+}
+
+
+bool Ver4PatriciaTriePolicy::updateEntriesForWordWithNgramContext(
+        const NgramContext *const ngramContext, const CodePointArrayView wordCodePoints,
+        const bool isValidWord, const HistoricalInfo historicalInfo) {
+    if (!mBuffers->isUpdatable()) {
+        AKLOGI("Warning: updateEntriesForWordWithNgramContext() is called for non-updatable "
+                "dictionary.");
+        return false;
+    }
+    const int probability = isValidWord ? DUMMY_PROBABILITY_FOR_VALID_WORDS : NOT_A_PROBABILITY;
+    const UnigramProperty unigramProperty(false /* representsBeginningOfSentence */,
+            false /* isNotAWord */, false /*isBlacklisted*/, probability, historicalInfo);
+    if (!addUnigramEntry(wordCodePoints, &unigramProperty)) {
+        AKLOGE("Cannot update unigarm entry in updateEntriesForWordWithNgramContext().");
+        return false;
+    }
+    const int probabilityForNgram = ngramContext->isNthPrevWordBeginningOfSentence(1 /* n */)
+            ? NOT_A_PROBABILITY : probability;
+    const NgramProperty ngramProperty(*ngramContext, wordCodePoints.toVector(), probabilityForNgram,
+            historicalInfo);
+    if (!addNgramEntry(&ngramProperty)) {
+        AKLOGE("Cannot update unigarm entry in updateEntriesForWordWithNgramContext().");
+        return false;
+    }
+    return true;
+}
+
+bool Ver4PatriciaTriePolicy::flush(const char *const filePath) {
+    if (!mBuffers->isUpdatable()) {
+        AKLOGI("Warning: flush() is called for non-updatable dictionary. filePath: %s", filePath);
+        return false;
+    }
+    if (!mWritingHelper.writeToDictFile(filePath, mEntryCounters.getEntryCounts())) {
+        AKLOGE("Cannot flush the dictionary to file.");
+        mIsCorrupted = true;
+        return false;
+    }
+    return true;
+}
+
+bool Ver4PatriciaTriePolicy::flushWithGC(const char *const filePath) {
+    if (!mBuffers->isUpdatable()) {
+        AKLOGI("Warning: flushWithGC() is called for non-updatable dictionary.");
+        return false;
+    }
+    if (!mWritingHelper.writeToDictFileWithGC(getRootPosition(), filePath)) {
+        AKLOGE("Cannot flush the dictionary to file with GC.");
+        mIsCorrupted = true;
+        return false;
+    }
+    return true;
+}
+
+bool Ver4PatriciaTriePolicy::needsToRunGC(const bool mindsBlockByGC) const {
+    if (!mBuffers->isUpdatable()) {
+        AKLOGI("Warning: needsToRunGC() is called for non-updatable dictionary.");
+        return false;
+    }
+    if (mBuffers->isNearSizeLimit()) {
+        // Additional buffer size is near the limit.
+        return true;
+    } else if (mHeaderPolicy->getExtendedRegionSize() + mDictBuffer->getUsedAdditionalBufferSize()
+            > Ver4DictConstants::MAX_DICT_EXTENDED_REGION_SIZE) {
+        // Total extended region size of the trie exceeds the limit.
+        return true;
+    } else if (mDictBuffer->getTailPosition() >= MIN_DICT_SIZE_TO_REFUSE_DYNAMIC_OPERATIONS
+            && mDictBuffer->getUsedAdditionalBufferSize() > 0) {
+        // Needs to reduce dictionary size.
+        return true;
+    } else if (mHeaderPolicy->isDecayingDict()) {
+        return ForgettingCurveUtils::needsToDecay(mindsBlockByGC, mEntryCounters.getEntryCounts(),
+                mHeaderPolicy);
+    }
+    return false;
+}
+
+void Ver4PatriciaTriePolicy::getProperty(const char *const query, const int queryLength,
+        char *const outResult, const int maxResultLength) {
+    const int compareLength = queryLength + 1 /* terminator */;
+    if (strncmp(query, UNIGRAM_COUNT_QUERY, compareLength) == 0) {
+        snprintf(outResult, maxResultLength, "%d",
+                mEntryCounters.getNgramCount(NgramType::Unigram));
+    } else if (strncmp(query, BIGRAM_COUNT_QUERY, compareLength) == 0) {
+        snprintf(outResult, maxResultLength, "%d", mEntryCounters.getNgramCount(NgramType::Bigram));
+    } else if (strncmp(query, MAX_UNIGRAM_COUNT_QUERY, compareLength) == 0) {
+        snprintf(outResult, maxResultLength, "%d",
+                mHeaderPolicy->isDecayingDict() ?
+                        ForgettingCurveUtils::getEntryCountHardLimit(
+                                mHeaderPolicy->getMaxNgramCounts().getNgramCount(
+                                        NgramType::Unigram)) :
+                        static_cast<int>(Ver4DictConstants::MAX_DICTIONARY_SIZE));
+    } else if (strncmp(query, MAX_BIGRAM_COUNT_QUERY, compareLength) == 0) {
+        snprintf(outResult, maxResultLength, "%d",
+                mHeaderPolicy->isDecayingDict() ?
+                        ForgettingCurveUtils::getEntryCountHardLimit(
+                                mHeaderPolicy->getMaxNgramCounts().getNgramCount(
+                                        NgramType::Bigram)) :
+                        static_cast<int>(Ver4DictConstants::MAX_DICTIONARY_SIZE));
+    }
+}
+
+const WordProperty Ver4PatriciaTriePolicy::getWordProperty(
+        const CodePointArrayView wordCodePoints) const {
+    const int ptNodePos = getTerminalPtNodePosFromWordId(
+            getWordId(wordCodePoints, false /* forceLowerCaseSearch */));
+    if (ptNodePos == NOT_A_DICT_POS) {
+        AKLOGE("getWordProperty is called for invalid word.");
+        return WordProperty();
+    }
+    const PtNodeParams ptNodeParams = mNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos);
+    const ProbabilityEntry probabilityEntry =
+            mBuffers->getProbabilityDictContent()->getProbabilityEntry(
+                    ptNodeParams.getTerminalId());
+    const HistoricalInfo *const historicalInfo = probabilityEntry.getHistoricalInfo();
+    // Fetch bigram information.
+    std::vector<NgramProperty> ngrams;
+    const int bigramListPos = getBigramsPositionOfPtNode(ptNodePos);
+    if (bigramListPos != NOT_A_DICT_POS) {
+        int bigramWord1CodePoints[MAX_WORD_LENGTH];
+        const BigramDictContent *const bigramDictContent = mBuffers->getBigramDictContent();
+        const TerminalPositionLookupTable *const terminalPositionLookupTable =
+                mBuffers->getTerminalPositionLookupTable();
+        bool hasNext = true;
+        int readingPos = bigramListPos;
+        while (hasNext) {
+            const BigramEntry bigramEntry =
+                    bigramDictContent->getBigramEntryAndAdvancePosition(&readingPos);
+            hasNext = bigramEntry.hasNext();
+            const int word1TerminalId = bigramEntry.getTargetTerminalId();
+            const int word1TerminalPtNodePos =
+                    terminalPositionLookupTable->getTerminalPtNodePosition(word1TerminalId);
+            if (word1TerminalPtNodePos == NOT_A_DICT_POS) {
+                continue;
+            }
+            const int codePointCount = getCodePointsAndReturnCodePointCount(
+                    getWordIdFromTerminalPtNodePos(word1TerminalPtNodePos), MAX_WORD_LENGTH,
+                    bigramWord1CodePoints);
+            const HistoricalInfo *const historicalInfo = bigramEntry.getHistoricalInfo();
+            const int rawBigramProbability = bigramEntry.hasHistoricalInfo()
+                    ? ForgettingCurveUtils::decodeProbability(
+                            bigramEntry.getHistoricalInfo(), mHeaderPolicy)
+                    : bigramEntry.getProbability();
+            const int probability = getBigramConditionalProbability(ptNodeParams.getProbability(),
+                    ptNodeParams.representsBeginningOfSentence(), rawBigramProbability);
+            ngrams.emplace_back(
+                    NgramContext(wordCodePoints.data(), wordCodePoints.size(),
+                            ptNodeParams.representsBeginningOfSentence()),
+                    CodePointArrayView(bigramWord1CodePoints, codePointCount).toVector(),
+                    probability, *historicalInfo);
+        }
+    }
+    // Fetch shortcut information.
+    std::vector<UnigramProperty::ShortcutProperty> shortcuts;
+    int shortcutPos = getShortcutPositionOfPtNode(ptNodePos);
+    if (shortcutPos != NOT_A_DICT_POS) {
+        int shortcutTarget[MAX_WORD_LENGTH];
+        const ShortcutDictContent *const shortcutDictContent =
+                mBuffers->getShortcutDictContent();
+        bool hasNext = true;
+        while (hasNext) {
+            int shortcutTargetLength = 0;
+            int shortcutProbability = NOT_A_PROBABILITY;
+            shortcutDictContent->getShortcutEntryAndAdvancePosition(MAX_WORD_LENGTH, shortcutTarget,
+                    &shortcutTargetLength, &shortcutProbability, &hasNext, &shortcutPos);
+            shortcuts.emplace_back(
+                    CodePointArrayView(shortcutTarget, shortcutTargetLength).toVector(),
+                    shortcutProbability);
+        }
+    }
+    const UnigramProperty unigramProperty(ptNodeParams.representsBeginningOfSentence(),
+            ptNodeParams.isNotAWord(), ptNodeParams.isPossiblyOffensive(),
+            ptNodeParams.getProbability(), *historicalInfo, std::move(shortcuts));
+    return WordProperty(wordCodePoints.toVector(), unigramProperty, ngrams);
+}
+
+int Ver4PatriciaTriePolicy::getNextWordAndNextToken(const int token, int *const outCodePoints,
+        int *const outCodePointCount) {
+    *outCodePointCount = 0;
+    if (token == 0) {
+        mTerminalPtNodePositionsForIteratingWords.clear();
+        DynamicPtReadingHelper::TraversePolicyToGetAllTerminalPtNodePositions traversePolicy(
+                &mTerminalPtNodePositionsForIteratingWords);
+        DynamicPtReadingHelper readingHelper(&mNodeReader, &mPtNodeArrayReader);
+        readingHelper.initWithPtNodeArrayPos(getRootPosition());
+        readingHelper.traverseAllPtNodesInPostorderDepthFirstManner(&traversePolicy);
+    }
+    const int terminalPtNodePositionsVectorSize =
+            static_cast<int>(mTerminalPtNodePositionsForIteratingWords.size());
+    if (token < 0 || token >= terminalPtNodePositionsVectorSize) {
+        AKLOGE("Given token %d is invalid.", token);
+        return 0;
+    }
+    const int terminalPtNodePos = mTerminalPtNodePositionsForIteratingWords[token];
+    *outCodePointCount = getCodePointsAndReturnCodePointCount(
+            getWordIdFromTerminalPtNodePos(terminalPtNodePos), MAX_WORD_LENGTH, outCodePoints);
+    const int nextToken = token + 1;
+    if (nextToken >= terminalPtNodePositionsVectorSize) {
+        // All words have been iterated.
+        mTerminalPtNodePositionsForIteratingWords.clear();
+        return 0;
+    }
+    return nextToken;
+}
+
+int Ver4PatriciaTriePolicy::getWordIdFromTerminalPtNodePos(const int ptNodePos) const {
+    return ptNodePos == NOT_A_DICT_POS ? NOT_A_WORD_ID : ptNodePos;
+}
+
+int Ver4PatriciaTriePolicy::getTerminalPtNodePosFromWordId(const int wordId) const {
+    return wordId == NOT_A_WORD_ID ? NOT_A_DICT_POS : wordId;
+}
+
+} // namespace v402
+} // namespace backward
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_policy.h b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_policy.h
new file mode 100644
index 0000000..bce5f6b
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_policy.h
@@ -0,0 +1,181 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT CHANGE THE LOGIC IN THIS FILE !!!!!
+ * Do not edit this file other than updating policy's interface.
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/ver4_patricia_trie_policy.h
+ */
+
+#ifndef LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_POLICY_H
+#define LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_POLICY_H
+
+#include <vector>
+
+#include "defines.h"
+#include "dictionary/header/header_policy.h"
+#include "dictionary/interface/dictionary_structure_with_buffer_policy.h"
+#include "dictionary/structure/pt_common/dynamic_pt_updating_helper.h"
+#include "dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h"
+#include "dictionary/structure/backward/v402/shortcut/ver4_shortcut_list_policy.h"
+#include "dictionary/structure/backward/v402/ver4_dict_buffers.h"
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h"
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.h"
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.h"
+#include "dictionary/structure/backward/v402/ver4_pt_node_array_reader.h"
+#include "dictionary/utils/binary_dictionary_bigrams_iterator.h"
+#include "dictionary/utils/binary_dictionary_shortcut_iterator.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/entry_counters.h"
+#include "utils/int_array_view.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+} // namespace v402
+} // namespace backward
+class DicNode;
+namespace backward {
+namespace v402 {
+} // namespace v402
+} // namespace backward
+class DicNodeVector;
+namespace backward {
+namespace v402 {
+
+// Word id = Position of a PtNode that represents the word.
+// Max supported n-gram is bigram.
+class Ver4PatriciaTriePolicy : public DictionaryStructureWithBufferPolicy {
+ public:
+    Ver4PatriciaTriePolicy(Ver4DictBuffers::Ver4DictBuffersPtr buffers)
+            : mBuffers(std::move(buffers)), mHeaderPolicy(mBuffers->getHeaderPolicy()),
+              mDictBuffer(mBuffers->getWritableTrieBuffer()),
+              mBigramPolicy(mBuffers->getMutableBigramDictContent(),
+                      mBuffers->getTerminalPositionLookupTable(), mHeaderPolicy),
+              mShortcutPolicy(mBuffers->getMutableShortcutDictContent(),
+                      mBuffers->getTerminalPositionLookupTable()),
+              mNodeReader(mDictBuffer, mBuffers->getProbabilityDictContent(), mHeaderPolicy),
+              mPtNodeArrayReader(mDictBuffer),
+              mNodeWriter(mDictBuffer, mBuffers.get(), mHeaderPolicy, &mNodeReader,
+                      &mPtNodeArrayReader, &mBigramPolicy, &mShortcutPolicy),
+              mUpdatingHelper(mDictBuffer, &mNodeReader, &mNodeWriter),
+              mWritingHelper(mBuffers.get()),
+              mEntryCounters(mHeaderPolicy->getNgramCounts().getCountArray()),
+              mTerminalPtNodePositionsForIteratingWords(), mIsCorrupted(false) {};
+
+    virtual int getRootPosition() const {
+        return 0;
+    }
+
+    void createAndGetAllChildDicNodes(const DicNode *const dicNode,
+            DicNodeVector *const childDicNodes) const;
+
+    int getCodePointsAndReturnCodePointCount(const int wordId, const int maxCodePointCount,
+            int *const outCodePoints) const;
+
+    int getWordId(const CodePointArrayView wordCodePoints, const bool forceLowerCaseSearch) const;
+
+    const WordAttributes getWordAttributesInContext(const WordIdArrayView prevWordIds,
+            const int wordId, MultiBigramMap *const multiBigramMap) const;
+
+    int getProbability(const int unigramProbability, const int bigramProbability) const;
+
+    int getProbabilityOfWord(const WordIdArrayView prevWordIds, const int wordId) const;
+
+    void iterateNgramEntries(const WordIdArrayView prevWordIds,
+            NgramListener *const listener) const;
+
+    BinaryDictionaryShortcutIterator getShortcutIterator(const int wordId) const;
+
+    const DictionaryHeaderStructurePolicy *getHeaderStructurePolicy() const {
+        return mHeaderPolicy;
+    }
+
+    bool addUnigramEntry(const CodePointArrayView wordCodePoints,
+            const UnigramProperty *const unigramProperty);
+
+    bool removeUnigramEntry(const CodePointArrayView wordCodePoints);
+
+    bool addNgramEntry(const NgramProperty *const ngramProperty);
+
+    bool removeNgramEntry(const NgramContext *const ngramContext,
+            const CodePointArrayView wordCodePoints);
+
+    bool updateEntriesForWordWithNgramContext(const NgramContext *const ngramContext,
+            const CodePointArrayView wordCodePoints, const bool isValidWord,
+            const HistoricalInfo historicalInfo);
+
+    bool flush(const char *const filePath);
+
+    bool flushWithGC(const char *const filePath);
+
+    bool needsToRunGC(const bool mindsBlockByGC) const;
+
+    void getProperty(const char *const query, const int queryLength, char *const outResult,
+            const int maxResultLength);
+
+    const WordProperty getWordProperty(const CodePointArrayView wordCodePoints) const;
+
+    int getNextWordAndNextToken(const int token, int *const outCodePoints,
+            int *const outCodePointCount);
+
+    bool isCorrupted() const {
+        return mIsCorrupted;
+    }
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(Ver4PatriciaTriePolicy);
+
+    static const char *const UNIGRAM_COUNT_QUERY;
+    static const char *const BIGRAM_COUNT_QUERY;
+    static const char *const MAX_UNIGRAM_COUNT_QUERY;
+    static const char *const MAX_BIGRAM_COUNT_QUERY;
+    // When the dictionary size is near the maximum size, we have to refuse dynamic operations to
+    // prevent the dictionary from overflowing.
+    static const int MARGIN_TO_REFUSE_DYNAMIC_OPERATIONS;
+    static const int MIN_DICT_SIZE_TO_REFUSE_DYNAMIC_OPERATIONS;
+    static const int DUMMY_PROBABILITY_FOR_VALID_WORDS;
+
+    const Ver4DictBuffers::Ver4DictBuffersPtr mBuffers;
+    const HeaderPolicy *const mHeaderPolicy;
+    BufferWithExtendableBuffer *const mDictBuffer;
+    Ver4BigramListPolicy mBigramPolicy;
+    Ver4ShortcutListPolicy mShortcutPolicy;
+    Ver4PatriciaTrieNodeReader mNodeReader;
+    Ver4PtNodeArrayReader mPtNodeArrayReader;
+    Ver4PatriciaTrieNodeWriter mNodeWriter;
+    DynamicPtUpdatingHelper mUpdatingHelper;
+    Ver4PatriciaTrieWritingHelper mWritingHelper;
+    MutableEntryCounters mEntryCounters;
+    std::vector<int> mTerminalPtNodePositionsForIteratingWords;
+    mutable bool mIsCorrupted;
+
+    int getBigramsPositionOfPtNode(const int ptNodePos) const;
+    int getShortcutPositionOfPtNode(const int ptNodePos) const;
+    int getWordIdFromTerminalPtNodePos(const int ptNodePos) const;
+    int getTerminalPtNodePosFromWordId(const int wordId) const;
+    const WordAttributes getWordAttributes(const int probability,
+            const PtNodeParams &ptNodeParams) const;
+    int getBigramConditionalProbability(const int prevWordUnigramProbability,
+            const bool isInBeginningOfSentenceContext, const int bigramProbability) const;
+};
+} // namespace v402
+} // namespace backward
+} // namespace latinime
+#endif // LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_POLICY_H
diff --git a/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.cpp b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.cpp
new file mode 100644
index 0000000..b8a4cf8
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.cpp
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/ver4_patricia_trie_reading_utils.cpp
+ */
+
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.h"
+
+#include "dictionary/utils/byte_array_utils.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+/* static */ int Ver4PatriciaTrieReadingUtils::getTerminalIdAndAdvancePosition(
+        const uint8_t *const buffer, int *pos) {
+    return ByteArrayUtils::readUint32AndAdvancePosition(buffer, pos);
+}
+
+} // namespace v402
+} // namespace backward
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.h b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.h
new file mode 100644
index 0000000..c3e736b
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/ver4_patricia_trie_reading_utils.h
+ */
+
+#ifndef LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_READING_UTILS_H
+#define LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_READING_UTILS_H
+
+#include <cstdint>
+
+#include "defines.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+} // namespace v402
+} // namespace backward
+class BufferWithExtendableBuffer;
+namespace backward {
+namespace v402 {
+
+class Ver4PatriciaTrieReadingUtils {
+ public:
+    static int getTerminalIdAndAdvancePosition(const uint8_t *const buffer,
+            int *const pos);
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(Ver4PatriciaTrieReadingUtils);
+};
+} // namespace v402
+} // namespace backward
+} // namespace latinime
+#endif /* LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_READING_UTILS_H */
diff --git a/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.cpp b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.cpp
new file mode 100644
index 0000000..c0af9ea
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.cpp
@@ -0,0 +1,307 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/ver4_patricia_trie_writing_helper.cpp
+ */
+
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.h"
+
+#include <cstring>
+#include <queue>
+
+#include "dictionary/header/header_policy.h"
+#include "dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h"
+#include "dictionary/structure/backward/v402/shortcut/ver4_shortcut_list_policy.h"
+#include "dictionary/structure/backward/v402/ver4_dict_buffers.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h"
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.h"
+#include "dictionary/structure/backward/v402/ver4_pt_node_array_reader.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/file_utils.h"
+#include "dictionary/utils/forgetting_curve_utils.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+bool Ver4PatriciaTrieWritingHelper::writeToDictFile(const char *const dictDirPath,
+        const EntryCounts &entryCounts) const {
+    const HeaderPolicy *const headerPolicy = mBuffers->getHeaderPolicy();
+    BufferWithExtendableBuffer headerBuffer(
+            BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE);
+    const int extendedRegionSize = headerPolicy->getExtendedRegionSize()
+            + mBuffers->getTrieBuffer()->getUsedAdditionalBufferSize();
+    if (!headerPolicy->fillInAndWriteHeaderToBuffer(false /* updatesLastDecayedTime */,
+            entryCounts, extendedRegionSize, &headerBuffer)) {
+        AKLOGE("Cannot write header structure to buffer. "
+                "updatesLastDecayedTime: %d, unigramCount: %d, bigramCount: %d, "
+                "extendedRegionSize: %d", false, entryCounts.getNgramCount(NgramType::Unigram),
+                entryCounts.getNgramCount(NgramType::Bigram), extendedRegionSize);
+        return false;
+    }
+    return mBuffers->flushHeaderAndDictBuffers(dictDirPath, &headerBuffer);
+}
+
+bool Ver4PatriciaTrieWritingHelper::writeToDictFileWithGC(const int rootPtNodeArrayPos,
+        const char *const dictDirPath) {
+    const HeaderPolicy *const headerPolicy = mBuffers->getHeaderPolicy();
+    Ver4DictBuffers::Ver4DictBuffersPtr dictBuffers(
+            Ver4DictBuffers::createVer4DictBuffers(headerPolicy,
+                    Ver4DictConstants::MAX_DICTIONARY_SIZE));
+    int unigramCount = 0;
+    int bigramCount = 0;
+    if (!runGC(rootPtNodeArrayPos, headerPolicy, dictBuffers.get(), &unigramCount, &bigramCount)) {
+        return false;
+    }
+    BufferWithExtendableBuffer headerBuffer(
+            BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE);
+    MutableEntryCounters entryCounters;
+    entryCounters.setNgramCount(NgramType::Unigram, unigramCount);
+    entryCounters.setNgramCount(NgramType::Bigram, bigramCount);
+    if (!headerPolicy->fillInAndWriteHeaderToBuffer(true /* updatesLastDecayedTime */,
+            entryCounters.getEntryCounts(), 0 /* extendedRegionSize */, &headerBuffer)) {
+        return false;
+    }
+    return dictBuffers->flushHeaderAndDictBuffers(dictDirPath, &headerBuffer);
+}
+
+bool Ver4PatriciaTrieWritingHelper::runGC(const int rootPtNodeArrayPos,
+        const HeaderPolicy *const headerPolicy, Ver4DictBuffers *const buffersToWrite,
+        int *const outUnigramCount, int *const outBigramCount) {
+    Ver4PatriciaTrieNodeReader ptNodeReader(mBuffers->getTrieBuffer(),
+            mBuffers->getProbabilityDictContent(), headerPolicy);
+    Ver4PtNodeArrayReader ptNodeArrayReader(mBuffers->getTrieBuffer());
+    Ver4BigramListPolicy bigramPolicy(mBuffers->getMutableBigramDictContent(),
+            mBuffers->getTerminalPositionLookupTable(), headerPolicy);
+    Ver4ShortcutListPolicy shortcutPolicy(mBuffers->getMutableShortcutDictContent(),
+            mBuffers->getTerminalPositionLookupTable());
+    Ver4PatriciaTrieNodeWriter ptNodeWriter(mBuffers->getWritableTrieBuffer(),
+            mBuffers, headerPolicy, &ptNodeReader, &ptNodeArrayReader, &bigramPolicy,
+            &shortcutPolicy);
+
+    DynamicPtReadingHelper readingHelper(&ptNodeReader, &ptNodeArrayReader);
+    readingHelper.initWithPtNodeArrayPos(rootPtNodeArrayPos);
+    DynamicPtGcEventListeners
+            ::TraversePolicyToUpdateUnigramProbabilityAndMarkUselessPtNodesAsDeleted
+                    traversePolicyToUpdateUnigramProbabilityAndMarkUselessPtNodesAsDeleted(
+                            &ptNodeWriter);
+    if (!readingHelper.traverseAllPtNodesInPostorderDepthFirstManner(
+            &traversePolicyToUpdateUnigramProbabilityAndMarkUselessPtNodesAsDeleted)) {
+        return false;
+    }
+    const int unigramCount = traversePolicyToUpdateUnigramProbabilityAndMarkUselessPtNodesAsDeleted
+            .getValidUnigramCount();
+    const int maxUnigramCount = headerPolicy->getMaxNgramCounts().getNgramCount(NgramType::Unigram);
+    if (headerPolicy->isDecayingDict() && unigramCount > maxUnigramCount) {
+        if (!truncateUnigrams(&ptNodeReader, &ptNodeWriter, maxUnigramCount)) {
+            AKLOGE("Cannot remove unigrams. current: %d, max: %d", unigramCount,
+                    maxUnigramCount);
+            return false;
+        }
+    }
+
+    readingHelper.initWithPtNodeArrayPos(rootPtNodeArrayPos);
+    DynamicPtGcEventListeners::TraversePolicyToUpdateBigramProbability
+            traversePolicyToUpdateBigramProbability(&ptNodeWriter);
+    if (!readingHelper.traverseAllPtNodesInPostorderDepthFirstManner(
+            &traversePolicyToUpdateBigramProbability)) {
+        return false;
+    }
+    const int bigramCount = traversePolicyToUpdateBigramProbability.getValidBigramEntryCount();
+    const int maxBigramCount = headerPolicy->getMaxNgramCounts().getNgramCount(NgramType::Bigram);
+    if (headerPolicy->isDecayingDict() && bigramCount > maxBigramCount) {
+        if (!truncateBigrams(maxBigramCount)) {
+            AKLOGE("Cannot remove bigrams. current: %d, max: %d", bigramCount, maxBigramCount);
+            return false;
+        }
+    }
+
+    // Mapping from positions in mBuffer to positions in bufferToWrite.
+    PtNodeWriter::DictPositionRelocationMap dictPositionRelocationMap;
+    readingHelper.initWithPtNodeArrayPos(rootPtNodeArrayPos);
+    Ver4PatriciaTrieNodeWriter ptNodeWriterForNewBuffers(buffersToWrite->getWritableTrieBuffer(),
+            buffersToWrite, headerPolicy, &ptNodeReader, &ptNodeArrayReader, &bigramPolicy,
+            &shortcutPolicy);
+    DynamicPtGcEventListeners::TraversePolicyToPlaceAndWriteValidPtNodesToBuffer
+            traversePolicyToPlaceAndWriteValidPtNodesToBuffer(&ptNodeWriterForNewBuffers,
+                    buffersToWrite->getWritableTrieBuffer(), &dictPositionRelocationMap);
+    if (!readingHelper.traverseAllPtNodesInPtNodeArrayLevelPreorderDepthFirstManner(
+            &traversePolicyToPlaceAndWriteValidPtNodesToBuffer)) {
+        return false;
+    }
+
+    // Create policy instances for the GCed dictionary.
+    Ver4PatriciaTrieNodeReader newPtNodeReader(buffersToWrite->getTrieBuffer(),
+            buffersToWrite->getProbabilityDictContent(), headerPolicy);
+    Ver4PtNodeArrayReader newPtNodeArrayreader(buffersToWrite->getTrieBuffer());
+    Ver4BigramListPolicy newBigramPolicy(buffersToWrite->getMutableBigramDictContent(),
+            buffersToWrite->getTerminalPositionLookupTable(), headerPolicy);
+    Ver4ShortcutListPolicy newShortcutPolicy(buffersToWrite->getMutableShortcutDictContent(),
+            buffersToWrite->getTerminalPositionLookupTable());
+    Ver4PatriciaTrieNodeWriter newPtNodeWriter(buffersToWrite->getWritableTrieBuffer(),
+            buffersToWrite, headerPolicy, &newPtNodeReader, &newPtNodeArrayreader, &newBigramPolicy,
+            &newShortcutPolicy);
+    // Re-assign terminal IDs for valid terminal PtNodes.
+    TerminalPositionLookupTable::TerminalIdMap terminalIdMap;
+    if(!buffersToWrite->getMutableTerminalPositionLookupTable()->runGCTerminalIds(
+            &terminalIdMap)) {
+        return false;
+    }
+    // Run GC for probability dict content.
+    if (!buffersToWrite->getMutableProbabilityDictContent()->runGC(&terminalIdMap,
+            mBuffers->getProbabilityDictContent())) {
+        return false;
+    }
+    // Run GC for bigram dict content.
+    if(!buffersToWrite->getMutableBigramDictContent()->runGC(&terminalIdMap,
+            mBuffers->getBigramDictContent(), outBigramCount)) {
+        return false;
+    }
+    // Run GC for shortcut dict content.
+    if(!buffersToWrite->getMutableShortcutDictContent()->runGC(&terminalIdMap,
+            mBuffers->getShortcutDictContent())) {
+        return false;
+    }
+    DynamicPtReadingHelper newDictReadingHelper(&newPtNodeReader, &newPtNodeArrayreader);
+    newDictReadingHelper.initWithPtNodeArrayPos(rootPtNodeArrayPos);
+    DynamicPtGcEventListeners::TraversePolicyToUpdateAllPositionFields
+            traversePolicyToUpdateAllPositionFields(&newPtNodeWriter, &dictPositionRelocationMap);
+    if (!newDictReadingHelper.traverseAllPtNodesInPtNodeArrayLevelPreorderDepthFirstManner(
+            &traversePolicyToUpdateAllPositionFields)) {
+        return false;
+    }
+    newDictReadingHelper.initWithPtNodeArrayPos(rootPtNodeArrayPos);
+    TraversePolicyToUpdateAllPtNodeFlagsAndTerminalIds
+            traversePolicyToUpdateAllPtNodeFlagsAndTerminalIds(&newPtNodeWriter, &terminalIdMap);
+    if (!newDictReadingHelper.traverseAllPtNodesInPostorderDepthFirstManner(
+            &traversePolicyToUpdateAllPtNodeFlagsAndTerminalIds)) {
+        return false;
+    }
+    *outUnigramCount = traversePolicyToUpdateAllPositionFields.getUnigramCount();
+    return true;
+}
+
+bool Ver4PatriciaTrieWritingHelper::truncateUnigrams(
+        const Ver4PatriciaTrieNodeReader *const ptNodeReader,
+        Ver4PatriciaTrieNodeWriter *const ptNodeWriter, const int maxUnigramCount) {
+    const TerminalPositionLookupTable *const terminalPosLookupTable =
+            mBuffers->getTerminalPositionLookupTable();
+    const int nextTerminalId = terminalPosLookupTable->getNextTerminalId();
+    std::priority_queue<DictProbability, std::vector<DictProbability>, DictProbabilityComparator>
+            priorityQueue;
+    for (int i = 0; i < nextTerminalId; ++i) {
+        const int terminalPos = terminalPosLookupTable->getTerminalPtNodePosition(i);
+        if (terminalPos == NOT_A_DICT_POS) {
+            continue;
+        }
+        const ProbabilityEntry probabilityEntry =
+                mBuffers->getProbabilityDictContent()->getProbabilityEntry(i);
+        const int probability = probabilityEntry.hasHistoricalInfo() ?
+                ForgettingCurveUtils::decodeProbability(
+                        probabilityEntry.getHistoricalInfo(), mBuffers->getHeaderPolicy()) :
+                probabilityEntry.getProbability();
+        priorityQueue.push(DictProbability(terminalPos, probability,
+                probabilityEntry.getHistoricalInfo()->getTimestamp()));
+    }
+
+    // Delete unigrams.
+    while (static_cast<int>(priorityQueue.size()) > maxUnigramCount) {
+        const int ptNodePos = priorityQueue.top().getDictPos();
+        priorityQueue.pop();
+        const PtNodeParams ptNodeParams =
+                ptNodeReader->fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos);
+        if (ptNodeParams.representsNonWordInfo()) {
+            continue;
+        }
+        if (!ptNodeWriter->markPtNodeAsWillBecomeNonTerminal(&ptNodeParams)) {
+            AKLOGE("Cannot mark PtNode as willBecomeNonterminal. PtNode pos: %d", ptNodePos);
+            return false;
+        }
+    }
+    return true;
+}
+
+bool Ver4PatriciaTrieWritingHelper::truncateBigrams(const int maxBigramCount) {
+    const TerminalPositionLookupTable *const terminalPosLookupTable =
+            mBuffers->getTerminalPositionLookupTable();
+    const int nextTerminalId = terminalPosLookupTable->getNextTerminalId();
+    std::priority_queue<DictProbability, std::vector<DictProbability>, DictProbabilityComparator>
+            priorityQueue;
+    BigramDictContent *const bigramDictContent = mBuffers->getMutableBigramDictContent();
+    for (int i = 0; i < nextTerminalId; ++i) {
+        const int bigramListPos = bigramDictContent->getBigramListHeadPos(i);
+        if (bigramListPos == NOT_A_DICT_POS) {
+            continue;
+        }
+        bool hasNext = true;
+        int readingPos = bigramListPos;
+        while (hasNext) {
+            const int entryPos = readingPos;
+            const BigramEntry bigramEntry =
+                    bigramDictContent->getBigramEntryAndAdvancePosition(&readingPos);
+            hasNext = bigramEntry.hasNext();
+            if (!bigramEntry.isValid()) {
+                continue;
+            }
+            const int probability = bigramEntry.hasHistoricalInfo() ?
+                    ForgettingCurveUtils::decodeProbability(
+                            bigramEntry.getHistoricalInfo(), mBuffers->getHeaderPolicy()) :
+                    bigramEntry.getProbability();
+            priorityQueue.push(DictProbability(entryPos, probability,
+                    bigramEntry.getHistoricalInfo()->getTimestamp()));
+        }
+    }
+
+    // Delete bigrams.
+    while (static_cast<int>(priorityQueue.size()) > maxBigramCount) {
+        const int entryPos = priorityQueue.top().getDictPos();
+        const BigramEntry bigramEntry = bigramDictContent->getBigramEntry(entryPos);
+        const BigramEntry invalidatedBigramEntry = bigramEntry.getInvalidatedEntry();
+        if (!bigramDictContent->writeBigramEntry(&invalidatedBigramEntry, entryPos)) {
+            AKLOGE("Cannot write bigram entry to remove. pos: %d", entryPos);
+            return false;
+        }
+        priorityQueue.pop();
+    }
+    return true;
+}
+
+bool Ver4PatriciaTrieWritingHelper::TraversePolicyToUpdateAllPtNodeFlagsAndTerminalIds
+        ::onVisitingPtNode(const PtNodeParams *const ptNodeParams) {
+    if (!ptNodeParams->isTerminal()) {
+        return true;
+    }
+    TerminalPositionLookupTable::TerminalIdMap::const_iterator it =
+            mTerminalIdMap->find(ptNodeParams->getTerminalId());
+    if (it == mTerminalIdMap->end()) {
+        AKLOGE("terminal Id %d is not in the terminal position map. map size: %zd",
+                ptNodeParams->getTerminalId(), mTerminalIdMap->size());
+        return false;
+    }
+    if (!mPtNodeWriter->updateTerminalId(ptNodeParams, it->second)) {
+        AKLOGE("Cannot update terminal id. %d -> %d", it->first, it->second);
+    }
+    return mPtNodeWriter->updatePtNodeHasBigramsAndShortcutTargetsFlags(ptNodeParams);
+}
+
+} // namespace v402
+} // namespace backward
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.h b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.h
new file mode 100644
index 0000000..f2b8738
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.h
@@ -0,0 +1,140 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/ver4_patricia_trie_writing_helper.h
+ */
+
+#ifndef LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_WRITING_HELPER_H
+#define LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_WRITING_HELPER_H
+
+#include "defines.h"
+#include "dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.h"
+#include "dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
+#include "dictionary/utils/entry_counters.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+} // namespace v402
+} // namespace backward
+class HeaderPolicy;
+namespace backward {
+namespace v402 {
+class Ver4DictBuffers;
+class Ver4PatriciaTrieNodeReader;
+class Ver4PatriciaTrieNodeWriter;
+
+class Ver4PatriciaTrieWritingHelper {
+ public:
+    Ver4PatriciaTrieWritingHelper(Ver4DictBuffers *const buffers)
+            : mBuffers(buffers) {}
+
+    bool writeToDictFile(const char *const dictDirPath, const EntryCounts &entryCounts) const;
+
+    // This method cannot be const because the original dictionary buffer will be updated to detect
+    // useless PtNodes during GC.
+    bool writeToDictFileWithGC(const int rootPtNodeArrayPos, const char *const dictDirPath);
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(Ver4PatriciaTrieWritingHelper);
+
+    class TraversePolicyToUpdateAllPtNodeFlagsAndTerminalIds
+            : public DynamicPtReadingHelper::TraversingEventListener {
+     public:
+        TraversePolicyToUpdateAllPtNodeFlagsAndTerminalIds(
+                Ver4PatriciaTrieNodeWriter *const ptNodeWriter,
+                const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap)
+                : mPtNodeWriter(ptNodeWriter), mTerminalIdMap(terminalIdMap) {}
+
+        bool onAscend() { return true; }
+
+        bool onDescend(const int ptNodeArrayPos) { return true; }
+
+        bool onReadingPtNodeArrayTail() { return true; }
+
+        bool onVisitingPtNode(const PtNodeParams *const ptNodeParams);
+
+     private:
+        DISALLOW_IMPLICIT_CONSTRUCTORS(TraversePolicyToUpdateAllPtNodeFlagsAndTerminalIds);
+
+        Ver4PatriciaTrieNodeWriter *const mPtNodeWriter;
+        const TerminalPositionLookupTable::TerminalIdMap *const mTerminalIdMap;
+    };
+
+    // For truncateUnigrams() and truncateBigrams().
+    class DictProbability {
+     public:
+        DictProbability(const int dictPos, const int probability, const int timestamp)
+                : mDictPos(dictPos), mProbability(probability), mTimestamp(timestamp) {}
+
+        int getDictPos() const {
+            return mDictPos;
+        }
+
+        int getProbability() const {
+            return mProbability;
+        }
+
+        int getTimestamp() const {
+            return mTimestamp;
+        }
+
+     private:
+        DISALLOW_DEFAULT_CONSTRUCTOR(DictProbability);
+
+        int mDictPos;
+        int mProbability;
+        int mTimestamp;
+    };
+
+    // For truncateUnigrams() and truncateBigrams().
+    class DictProbabilityComparator {
+     public:
+        bool operator()(const DictProbability &left, const DictProbability &right) {
+            if (left.getProbability() != right.getProbability()) {
+                return left.getProbability() > right.getProbability();
+            }
+            if (left.getTimestamp() != right.getTimestamp()) {
+                return left.getTimestamp() < right.getTimestamp();
+            }
+            return left.getDictPos() > right.getDictPos();
+        }
+
+     private:
+        DISALLOW_ASSIGNMENT_OPERATOR(DictProbabilityComparator);
+    };
+
+    bool runGC(const int rootPtNodeArrayPos, const HeaderPolicy *const headerPolicy,
+            Ver4DictBuffers *const buffersToWrite, int *const outUnigramCount,
+            int *const outBigramCount);
+
+    bool truncateUnigrams(const Ver4PatriciaTrieNodeReader *const ptNodeReader,
+            Ver4PatriciaTrieNodeWriter *const ptNodeWriter, const int maxUnigramCount);
+
+    bool truncateBigrams(const int maxBigramCount);
+
+    Ver4DictBuffers *const mBuffers;
+};
+} // namespace v402
+} // namespace backward
+} // namespace latinime
+
+#endif /* LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_WRITING_HELPER_H */
diff --git a/native/jni/src/dictionary/structure/backward/v402/ver4_pt_node_array_reader.cpp b/native/jni/src/dictionary/structure/backward/v402/ver4_pt_node_array_reader.cpp
new file mode 100644
index 0000000..d27d708
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_pt_node_array_reader.cpp
@@ -0,0 +1,90 @@
+/*
+ * Copyright (C) 2014, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/ver4_pt_node_array_reader.cpp
+ */
+
+#include "dictionary/structure/backward/v402/ver4_pt_node_array_reader.h"
+
+#include "dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
+#include "dictionary/structure/pt_common/patricia_trie_reading_utils.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+bool Ver4PtNodeArrayReader::readPtNodeArrayInfoAndReturnIfValid(const int ptNodeArrayPos,
+        int *const outPtNodeCount, int *const outFirstPtNodePos) const {
+    if (ptNodeArrayPos < 0 || ptNodeArrayPos >= mBuffer->getTailPosition()) {
+        // Reading invalid position because of a bug or a broken dictionary.
+        AKLOGE("Reading PtNode array info from invalid dictionary position: %d, dict size: %d",
+                ptNodeArrayPos, mBuffer->getTailPosition());
+        ASSERT(false);
+        return false;
+    }
+    const bool usesAdditionalBuffer = mBuffer->isInAdditionalBuffer(ptNodeArrayPos);
+    const uint8_t *const dictBuf = mBuffer->getBuffer(usesAdditionalBuffer);
+    int readingPos = ptNodeArrayPos;
+    if (usesAdditionalBuffer) {
+        readingPos -= mBuffer->getOriginalBufferSize();
+    }
+    const int ptNodeCountInArray = PatriciaTrieReadingUtils::getPtNodeArraySizeAndAdvancePosition(
+            dictBuf, &readingPos);
+    if (usesAdditionalBuffer) {
+        readingPos += mBuffer->getOriginalBufferSize();
+    }
+    if (ptNodeCountInArray < 0) {
+        AKLOGE("Invalid PtNode count in an array: %d.", ptNodeCountInArray);
+        return false;
+    }
+    *outPtNodeCount = ptNodeCountInArray;
+    *outFirstPtNodePos = readingPos;
+    return true;
+}
+
+bool Ver4PtNodeArrayReader::readForwardLinkAndReturnIfValid(const int forwordLinkPos,
+        int *const outNextPtNodeArrayPos) const {
+    if (forwordLinkPos < 0 || forwordLinkPos >= mBuffer->getTailPosition()) {
+        // Reading invalid position because of bug or broken dictionary.
+        AKLOGE("Reading forward link from invalid dictionary position: %d, dict size: %d",
+                forwordLinkPos, mBuffer->getTailPosition());
+        ASSERT(false);
+        return false;
+    }
+    const bool usesAdditionalBuffer = mBuffer->isInAdditionalBuffer(forwordLinkPos);
+    const uint8_t *const dictBuf = mBuffer->getBuffer(usesAdditionalBuffer);
+    int readingPos = forwordLinkPos;
+    if (usesAdditionalBuffer) {
+        readingPos -= mBuffer->getOriginalBufferSize();
+    }
+    const int nextPtNodeArrayOffset =
+            DynamicPtReadingUtils::getForwardLinkPosition(dictBuf, readingPos);
+    if (DynamicPtReadingUtils::isValidForwardLinkPosition(nextPtNodeArrayOffset)) {
+        *outNextPtNodeArrayPos = forwordLinkPos + nextPtNodeArrayOffset;
+    } else {
+        *outNextPtNodeArrayPos = NOT_A_DICT_POS;
+    }
+    return true;
+}
+
+} // namespace v402
+} // namespace backward
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/backward/v402/ver4_pt_node_array_reader.h b/native/jni/src/dictionary/structure/backward/v402/ver4_pt_node_array_reader.h
new file mode 100644
index 0000000..0039bf8
--- /dev/null
+++ b/native/jni/src/dictionary/structure/backward/v402/ver4_pt_node_array_reader.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2014, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file was generated from
+ *   dictionary/structure/v4/ver4_pt_node_array_reader.h
+ */
+
+#ifndef LATINIME_BACKWARD_V402_VER4_PT_NODE_ARRAY_READER_H
+#define LATINIME_BACKWARD_V402_VER4_PT_NODE_ARRAY_READER_H
+
+#include "defines.h"
+#include "dictionary/structure/pt_common/pt_node_array_reader.h"
+
+namespace latinime {
+namespace backward {
+namespace v402 {
+
+} // namespace v402
+} // namespace backward
+class BufferWithExtendableBuffer;
+namespace backward {
+namespace v402 {
+
+class Ver4PtNodeArrayReader : public PtNodeArrayReader {
+ public:
+    Ver4PtNodeArrayReader(const BufferWithExtendableBuffer *const buffer) : mBuffer(buffer) {};
+
+    virtual bool readPtNodeArrayInfoAndReturnIfValid(const int ptNodeArrayPos,
+            int *const outPtNodeCount, int *const outFirstPtNodePos) const;
+    virtual bool readForwardLinkAndReturnIfValid(const int forwordLinkPos,
+            int *const outNextPtNodeArrayPos) const;
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(Ver4PtNodeArrayReader);
+
+    const BufferWithExtendableBuffer *const mBuffer;
+};
+} // namespace v402
+} // namespace backward
+} // namespace latinime
+#endif /* LATINIME_BACKWARD_V402_VER4_PT_NODE_ARRAY_READER_H */
diff --git a/native/jni/src/dictionary/structure/dictionary_structure_with_buffer_policy_factory.cpp b/native/jni/src/dictionary/structure/dictionary_structure_with_buffer_policy_factory.cpp
new file mode 100644
index 0000000..4470e85
--- /dev/null
+++ b/native/jni/src/dictionary/structure/dictionary_structure_with_buffer_policy_factory.cpp
@@ -0,0 +1,209 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/dictionary_structure_with_buffer_policy_factory.h"
+
+#include <climits>
+
+#include "defines.h"
+#include "dictionary/structure/backward/v402/ver4_dict_buffers.h"
+#include "dictionary/structure/backward/v402/ver4_dict_constants.h"
+#include "dictionary/structure/backward/v402/ver4_patricia_trie_policy.h"
+#include "dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
+#include "dictionary/structure/v2/patricia_trie_policy.h"
+#include "dictionary/structure/v4/ver4_dict_buffers.h"
+#include "dictionary/structure/v4/ver4_dict_constants.h"
+#include "dictionary/structure/v4/ver4_patricia_trie_policy.h"
+#include "dictionary/utils/dict_file_writing_utils.h"
+#include "dictionary/utils/file_utils.h"
+#include "dictionary/utils/format_utils.h"
+#include "dictionary/utils/mmapped_buffer.h"
+#include "utils/byte_array_view.h"
+
+namespace latinime {
+
+/* static */ DictionaryStructureWithBufferPolicy::StructurePolicyPtr
+        DictionaryStructureWithBufferPolicyFactory::newPolicyForExistingDictFile(
+                const char *const path, const int bufOffset, const int size,
+                const bool isUpdatable) {
+    if (FileUtils::existsDir(path)) {
+        // Given path represents a directory.
+        return newPolicyForDirectoryDict(path, isUpdatable);
+    } else {
+        if (isUpdatable) {
+            AKLOGE("One file dictionaries don't support updating. path: %s", path);
+            ASSERT(false);
+            return nullptr;
+        }
+        return newPolicyForFileDict(path, bufOffset, size);
+    }
+}
+
+/* static */ DictionaryStructureWithBufferPolicy::StructurePolicyPtr
+        DictionaryStructureWithBufferPolicyFactory:: newPolicyForOnMemoryDict(
+                const int formatVersion, const std::vector<int> &locale,
+                const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap) {
+    FormatUtils::FORMAT_VERSION dictFormatVersion = FormatUtils::getFormatVersion(formatVersion);
+    switch (dictFormatVersion) {
+        case FormatUtils::VERSION_402: {
+            return newPolicyForOnMemoryV4Dict<backward::v402::Ver4DictConstants,
+                    backward::v402::Ver4DictBuffers,
+                    backward::v402::Ver4DictBuffers::Ver4DictBuffersPtr,
+                    backward::v402::Ver4PatriciaTriePolicy>(
+                            dictFormatVersion, locale, attributeMap);
+        }
+        case FormatUtils::VERSION_4_ONLY_FOR_TESTING:
+        case FormatUtils::VERSION_403: {
+            return newPolicyForOnMemoryV4Dict<Ver4DictConstants, Ver4DictBuffers,
+                    Ver4DictBuffers::Ver4DictBuffersPtr, Ver4PatriciaTriePolicy>(
+                            dictFormatVersion, locale, attributeMap);
+        }
+        default:
+            AKLOGE("DICT: dictionary format %d is not supported for on memory dictionary",
+                    formatVersion);
+            break;
+    }
+    return nullptr;
+}
+
+template<class DictConstants, class DictBuffers, class DictBuffersPtr, class StructurePolicy>
+/* static */ DictionaryStructureWithBufferPolicy::StructurePolicyPtr
+        DictionaryStructureWithBufferPolicyFactory::newPolicyForOnMemoryV4Dict(
+                const FormatUtils::FORMAT_VERSION formatVersion,
+                const std::vector<int> &locale,
+                const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap) {
+    HeaderPolicy headerPolicy(formatVersion, locale, attributeMap);
+    DictBuffersPtr dictBuffers = DictBuffers::createVer4DictBuffers(&headerPolicy,
+            DictConstants::MAX_DICT_EXTENDED_REGION_SIZE);
+    if (!DynamicPtWritingUtils::writeEmptyDictionary(
+            dictBuffers->getWritableTrieBuffer(), 0 /* rootPos */)) {
+        AKLOGE("Empty ver4 dictionary structure cannot be created on memory.");
+        return nullptr;
+    }
+    return DictionaryStructureWithBufferPolicy::StructurePolicyPtr(
+            new StructurePolicy(std::move(dictBuffers)));
+}
+
+/* static */ DictionaryStructureWithBufferPolicy::StructurePolicyPtr
+        DictionaryStructureWithBufferPolicyFactory::newPolicyForDirectoryDict(
+                const char *const path, const bool isUpdatable) {
+    const int headerFilePathBufSize = PATH_MAX + 1 /* terminator */;
+    char headerFilePath[headerFilePathBufSize];
+    getHeaderFilePathInDictDir(path, headerFilePathBufSize, headerFilePath);
+    // Allocated buffer in MmapedBuffer::openBuffer() will be freed in the destructor of
+    // MmappedBufferPtr if the instance has the responsibility.
+    MmappedBuffer::MmappedBufferPtr mmappedBuffer =
+            MmappedBuffer::openBuffer(headerFilePath, isUpdatable);
+    if (!mmappedBuffer) {
+        return nullptr;
+    }
+    const FormatUtils::FORMAT_VERSION formatVersion = FormatUtils::detectFormatVersion(
+            mmappedBuffer->getReadOnlyByteArrayView());
+    switch (formatVersion) {
+        case FormatUtils::VERSION_2:
+        case FormatUtils::VERSION_201:
+        case FormatUtils::VERSION_202:
+            AKLOGE("Given path is a directory but the format is version 2xx. path: %s", path);
+            break;
+        case FormatUtils::VERSION_402: {
+            return newPolicyForV4Dict<backward::v402::Ver4DictConstants,
+                    backward::v402::Ver4DictBuffers,
+                    backward::v402::Ver4DictBuffers::Ver4DictBuffersPtr,
+                    backward::v402::Ver4PatriciaTriePolicy>(
+                            headerFilePath, formatVersion, std::move(mmappedBuffer));
+        }
+        case FormatUtils::VERSION_4_ONLY_FOR_TESTING:
+        case FormatUtils::VERSION_403: {
+            return newPolicyForV4Dict<Ver4DictConstants, Ver4DictBuffers,
+                    Ver4DictBuffers::Ver4DictBuffersPtr, Ver4PatriciaTriePolicy>(
+                            headerFilePath, formatVersion, std::move(mmappedBuffer));
+        }
+        default:
+            AKLOGE("DICT: dictionary format is unknown, bad magic number. path: %s", path);
+            break;
+    }
+    ASSERT(false);
+    return nullptr;
+}
+
+template<class DictConstants, class DictBuffers, class DictBuffersPtr, class StructurePolicy>
+/* static */ DictionaryStructureWithBufferPolicy::StructurePolicyPtr
+        DictionaryStructureWithBufferPolicyFactory::newPolicyForV4Dict(
+                const char *const headerFilePath, const FormatUtils::FORMAT_VERSION formatVersion,
+                MmappedBuffer::MmappedBufferPtr &&mmappedBuffer) {
+    const int dictDirPathBufSize = strlen(headerFilePath) + 1 /* terminator */;
+    char dictPath[dictDirPathBufSize];
+    if (!FileUtils::getFilePathWithoutSuffix(headerFilePath,
+            DictConstants::HEADER_FILE_EXTENSION, dictDirPathBufSize, dictPath)) {
+        AKLOGE("Dictionary file name is not valid as a ver4 dictionary. header path: %s",
+                headerFilePath);
+        ASSERT(false);
+        return nullptr;
+    }
+    DictBuffersPtr dictBuffers =
+            DictBuffers::openVer4DictBuffers(dictPath, std::move(mmappedBuffer), formatVersion);
+    if (!dictBuffers || !dictBuffers->isValid()) {
+        AKLOGE("DICT: The dictionary doesn't satisfy ver4 format requirements. path: %s",
+                dictPath);
+        ASSERT(false);
+        return nullptr;
+    }
+    return DictionaryStructureWithBufferPolicy::StructurePolicyPtr(
+            new StructurePolicy(std::move(dictBuffers)));
+}
+
+/* static */ DictionaryStructureWithBufferPolicy::StructurePolicyPtr
+        DictionaryStructureWithBufferPolicyFactory::newPolicyForFileDict(
+                const char *const path, const int bufOffset, const int size) {
+    // Allocated buffer in MmapedBuffer::openBuffer() will be freed in the destructor of
+    // MmappedBufferPtr if the instance has the responsibility.
+    MmappedBuffer::MmappedBufferPtr mmappedBuffer(
+            MmappedBuffer::openBuffer(path, bufOffset, size, false /* isUpdatable */));
+    if (!mmappedBuffer) {
+        return nullptr;
+    }
+    switch (FormatUtils::detectFormatVersion(mmappedBuffer->getReadOnlyByteArrayView())) {
+        case FormatUtils::VERSION_2:
+        case FormatUtils::VERSION_201:
+            AKLOGE("Dictionary versions 2 and 201 are incompatible with this version");
+            break;
+        case FormatUtils::VERSION_202:
+            return DictionaryStructureWithBufferPolicy::StructurePolicyPtr(
+                    new PatriciaTriePolicy(std::move(mmappedBuffer)));
+        case FormatUtils::VERSION_4_ONLY_FOR_TESTING:
+        case FormatUtils::VERSION_402:
+        case FormatUtils::VERSION_403:
+            AKLOGE("Given path is a file but the format is version 4. path: %s", path);
+            break;
+        default:
+            AKLOGE("DICT: dictionary format is unknown, bad magic number. path: %s", path);
+            break;
+    }
+    ASSERT(false);
+    return nullptr;
+}
+
+/* static */ void DictionaryStructureWithBufferPolicyFactory::getHeaderFilePathInDictDir(
+        const char *const dictDirPath, const int outHeaderFileBufSize,
+        char *const outHeaderFilePath) {
+    const int dictNameBufSize = strlen(dictDirPath) + 1 /* terminator */;
+    char dictName[dictNameBufSize];
+    FileUtils::getBasename(dictDirPath, dictNameBufSize, dictName);
+    snprintf(outHeaderFilePath, outHeaderFileBufSize, "%s/%s%s", dictDirPath,
+            dictName, Ver4DictConstants::HEADER_FILE_EXTENSION);
+}
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/dictionary_structure_with_buffer_policy_factory.h b/native/jni/src/dictionary/structure/dictionary_structure_with_buffer_policy_factory.h
new file mode 100644
index 0000000..b0c04c0
--- /dev/null
+++ b/native/jni/src/dictionary/structure/dictionary_structure_with_buffer_policy_factory.h
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_DICTIONARY_STRUCTURE_WITH_BUFFER_POLICY_FACTORY_H
+#define LATINIME_DICTIONARY_STRUCTURE_WITH_BUFFER_POLICY_FACTORY_H
+
+#include <vector>
+
+#include "defines.h"
+#include "dictionary/interface/dictionary_header_structure_policy.h"
+#include "dictionary/interface/dictionary_structure_with_buffer_policy.h"
+#include "dictionary/utils/format_utils.h"
+#include "dictionary/utils/mmapped_buffer.h"
+
+namespace latinime {
+
+class DictionaryStructureWithBufferPolicyFactory {
+ public:
+    static DictionaryStructureWithBufferPolicy::StructurePolicyPtr
+            newPolicyForExistingDictFile(const char *const path, const int bufOffset,
+                    const int size, const bool isUpdatable);
+
+    static DictionaryStructureWithBufferPolicy::StructurePolicyPtr
+            newPolicyForOnMemoryDict(const int formatVersion, const std::vector<int> &locale,
+                    const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap);
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(DictionaryStructureWithBufferPolicyFactory);
+
+    template<class DictConstants, class DictBuffers, class DictBuffersPtr, class StructurePolicy>
+    static DictionaryStructureWithBufferPolicy::StructurePolicyPtr
+            newPolicyForOnMemoryV4Dict(const FormatUtils::FORMAT_VERSION formatVersion,
+                    const std::vector<int> &locale,
+                    const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap);
+
+    static DictionaryStructureWithBufferPolicy::StructurePolicyPtr
+            newPolicyForDirectoryDict(const char *const path, const bool isUpdatable);
+
+    template<class DictConstants, class DictBuffers, class DictBuffersPtr, class StructurePolicy>
+    static DictionaryStructureWithBufferPolicy::StructurePolicyPtr newPolicyForV4Dict(
+            const char *const headerFilePath, const FormatUtils::FORMAT_VERSION formatVersion,
+                    MmappedBuffer::MmappedBufferPtr &&mmappedBuffer);
+
+    static DictionaryStructureWithBufferPolicy::StructurePolicyPtr
+            newPolicyForFileDict(const char *const path, const int bufOffset, const int size);
+
+    static void getHeaderFilePathInDictDir(const char *const dirPath,
+            const int outHeaderFileBufSize, char *const outHeaderFilePath);
+};
+} // namespace latinime
+#endif // LATINIME_DICTIONARY_STRUCTURE_WITH_BUFFER_POLICY_FACTORY_H
diff --git a/native/jni/src/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.cpp b/native/jni/src/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.cpp
new file mode 100644
index 0000000..64f9b66
--- /dev/null
+++ b/native/jni/src/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.cpp
@@ -0,0 +1,95 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.h"
+
+#include "dictionary/utils/byte_array_utils.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+
+namespace latinime {
+
+const BigramListReadWriteUtils::BigramFlags BigramListReadWriteUtils::MASK_ATTRIBUTE_ADDRESS_TYPE =
+        0x30;
+const BigramListReadWriteUtils::BigramFlags
+        BigramListReadWriteUtils::FLAG_ATTRIBUTE_ADDRESS_TYPE_ONEBYTE = 0x10;
+const BigramListReadWriteUtils::BigramFlags
+        BigramListReadWriteUtils::FLAG_ATTRIBUTE_ADDRESS_TYPE_TWOBYTES = 0x20;
+const BigramListReadWriteUtils::BigramFlags
+        BigramListReadWriteUtils::FLAG_ATTRIBUTE_ADDRESS_TYPE_THREEBYTES = 0x30;
+const BigramListReadWriteUtils::BigramFlags
+        BigramListReadWriteUtils::FLAG_ATTRIBUTE_OFFSET_NEGATIVE = 0x40;
+// Flag for presence of more attributes
+const BigramListReadWriteUtils::BigramFlags BigramListReadWriteUtils::FLAG_ATTRIBUTE_HAS_NEXT =
+        0x80;
+// Mask for attribute probability, stored on 4 bits inside the flags byte.
+const BigramListReadWriteUtils::BigramFlags
+        BigramListReadWriteUtils::MASK_ATTRIBUTE_PROBABILITY = 0x0F;
+
+/* static */ bool BigramListReadWriteUtils::getBigramEntryPropertiesAndAdvancePosition(
+        const ReadOnlyByteArrayView buffer, BigramFlags *const outBigramFlags,
+        int *const outTargetPtNodePos, int *const bigramEntryPos) {
+    if (static_cast<int>(buffer.size()) <= *bigramEntryPos) {
+        AKLOGE("Read invalid pos in getBigramEntryPropertiesAndAdvancePosition(). bufSize: %zd, "
+                "bigramEntryPos: %d.", buffer.size(), *bigramEntryPos);
+        return false;
+    }
+    const BigramFlags bigramFlags = ByteArrayUtils::readUint8AndAdvancePosition(buffer.data(),
+            bigramEntryPos);
+    if (outBigramFlags) {
+        *outBigramFlags = bigramFlags;
+    }
+    const int targetPos = getBigramAddressAndAdvancePosition(buffer, bigramFlags, bigramEntryPos);
+    if (outTargetPtNodePos) {
+        *outTargetPtNodePos = targetPos;
+    }
+    return true;
+}
+
+/* static */ bool BigramListReadWriteUtils::skipExistingBigrams(const ReadOnlyByteArrayView buffer,
+        int *const bigramListPos) {
+    BigramFlags flags;
+    do {
+        if (!getBigramEntryPropertiesAndAdvancePosition(buffer, &flags, 0 /* outTargetPtNodePos */,
+                bigramListPos)) {
+            return false;
+        }
+    } while(hasNext(flags));
+    return true;
+}
+
+/* static */ int BigramListReadWriteUtils::getBigramAddressAndAdvancePosition(
+        const ReadOnlyByteArrayView buffer, const BigramFlags flags, int *const pos) {
+    int offset = 0;
+    const int origin = *pos;
+    switch (MASK_ATTRIBUTE_ADDRESS_TYPE & flags) {
+        case FLAG_ATTRIBUTE_ADDRESS_TYPE_ONEBYTE:
+            offset = ByteArrayUtils::readUint8AndAdvancePosition(buffer.data(), pos);
+            break;
+        case FLAG_ATTRIBUTE_ADDRESS_TYPE_TWOBYTES:
+            offset = ByteArrayUtils::readUint16AndAdvancePosition(buffer.data(), pos);
+            break;
+        case FLAG_ATTRIBUTE_ADDRESS_TYPE_THREEBYTES:
+            offset = ByteArrayUtils::readUint24AndAdvancePosition(buffer.data(), pos);
+            break;
+    }
+    if (isOffsetNegative(flags)) {
+        return origin - offset;
+    } else {
+        return origin + offset;
+    }
+}
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.h b/native/jni/src/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.h
new file mode 100644
index 0000000..a0f7d5e
--- /dev/null
+++ b/native/jni/src/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_BIGRAM_LIST_READ_WRITE_UTILS_H
+#define LATINIME_BIGRAM_LIST_READ_WRITE_UTILS_H
+
+#include <cstdint>
+#include <cstdlib>
+
+#include "defines.h"
+#include "utils/byte_array_view.h"
+
+namespace latinime {
+
+class BufferWithExtendableBuffer;
+
+class BigramListReadWriteUtils {
+public:
+   typedef uint8_t BigramFlags;
+
+   static bool getBigramEntryPropertiesAndAdvancePosition(const ReadOnlyByteArrayView buffer,
+           BigramFlags *const outBigramFlags, int *const outTargetPtNodePos,
+           int *const bigramEntryPos);
+
+   static AK_FORCE_INLINE int getProbabilityFromFlags(const BigramFlags flags) {
+       return flags & MASK_ATTRIBUTE_PROBABILITY;
+   }
+
+   static AK_FORCE_INLINE bool hasNext(const BigramFlags flags) {
+       return (flags & FLAG_ATTRIBUTE_HAS_NEXT) != 0;
+   }
+
+   // Bigrams reading methods
+   static bool skipExistingBigrams(const ReadOnlyByteArrayView buffer, int *const bigramListPos);
+
+private:
+   DISALLOW_IMPLICIT_CONSTRUCTORS(BigramListReadWriteUtils);
+
+   static const BigramFlags MASK_ATTRIBUTE_ADDRESS_TYPE;
+   static const BigramFlags FLAG_ATTRIBUTE_ADDRESS_TYPE_ONEBYTE;
+   static const BigramFlags FLAG_ATTRIBUTE_ADDRESS_TYPE_TWOBYTES;
+   static const BigramFlags FLAG_ATTRIBUTE_ADDRESS_TYPE_THREEBYTES;
+   static const BigramFlags FLAG_ATTRIBUTE_OFFSET_NEGATIVE;
+   static const BigramFlags FLAG_ATTRIBUTE_HAS_NEXT;
+   static const BigramFlags MASK_ATTRIBUTE_PROBABILITY;
+
+   static AK_FORCE_INLINE bool isOffsetNegative(const BigramFlags flags) {
+       return (flags & FLAG_ATTRIBUTE_OFFSET_NEGATIVE) != 0;
+   }
+
+   static int getBigramAddressAndAdvancePosition(const ReadOnlyByteArrayView buffer,
+           const BigramFlags flags, int *const pos);
+};
+} // namespace latinime
+#endif // LATINIME_BIGRAM_LIST_READ_WRITE_UTILS_H
diff --git a/native/jni/src/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.cpp b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.cpp
new file mode 100644
index 0000000..b5e2e9d
--- /dev/null
+++ b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.cpp
@@ -0,0 +1,144 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.h"
+
+#include "dictionary/interface/dictionary_header_structure_policy.h"
+#include "dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
+#include "dictionary/structure/pt_common/pt_node_params.h"
+#include "dictionary/structure/pt_common/pt_node_writer.h"
+
+namespace latinime {
+
+bool DynamicPtGcEventListeners
+        ::TraversePolicyToUpdateUnigramProbabilityAndMarkUselessPtNodesAsDeleted
+                ::onVisitingPtNode(const PtNodeParams *const ptNodeParams) {
+    // PtNode is useless when the PtNode is not a terminal and doesn't have any not useless
+    // children.
+    bool isUselessPtNode = !ptNodeParams->isTerminal();
+    if (ptNodeParams->isTerminal() && !ptNodeParams->representsNonWordInfo()) {
+        bool needsToKeepPtNode = true;
+        if (!mPtNodeWriter->updatePtNodeProbabilityAndGetNeedsToKeepPtNodeAfterGC(
+                ptNodeParams, &needsToKeepPtNode)) {
+            AKLOGE("Cannot update PtNode probability or get needs to keep PtNode after GC.");
+            return false;
+        }
+        if (!needsToKeepPtNode) {
+            isUselessPtNode = true;
+        }
+    }
+    if (mChildrenValue > 0) {
+        isUselessPtNode = false;
+    } else if (ptNodeParams->isTerminal()) {
+        // Remove children as all children are useless.
+        if (!mPtNodeWriter->updateChildrenPosition(ptNodeParams,
+                NOT_A_DICT_POS /* newChildrenPosition */)) {
+            return false;
+        }
+    }
+    if (isUselessPtNode) {
+        // Current PtNode is no longer needed. Mark it as deleted.
+        if (!mPtNodeWriter->markPtNodeAsDeleted(ptNodeParams)) {
+            return false;
+        }
+    } else {
+        mValueStack.back() += 1;
+        if (ptNodeParams->isTerminal() && !ptNodeParams->representsNonWordInfo()) {
+            mValidUnigramCount += 1;
+        }
+    }
+    return true;
+}
+
+bool DynamicPtGcEventListeners::TraversePolicyToUpdateBigramProbability
+        ::onVisitingPtNode(const PtNodeParams *const ptNodeParams) {
+    if (!ptNodeParams->isDeleted()) {
+        int bigramEntryCount = 0;
+        if (!mPtNodeWriter->updateAllBigramEntriesAndDeleteUselessEntries(ptNodeParams,
+                &bigramEntryCount)) {
+            return false;
+        }
+        mValidBigramEntryCount += bigramEntryCount;
+    }
+    return true;
+}
+
+// Writes dummy PtNode array size when the head of PtNode array is read.
+bool DynamicPtGcEventListeners::TraversePolicyToPlaceAndWriteValidPtNodesToBuffer
+        ::onDescend(const int ptNodeArrayPos) {
+    mValidPtNodeCount = 0;
+    int writingPos = mBufferToWrite->getTailPosition();
+    mDictPositionRelocationMap->mPtNodeArrayPositionRelocationMap.insert(
+            PtNodeWriter::PtNodeArrayPositionRelocationMap::value_type(ptNodeArrayPos, writingPos));
+    // Writes dummy PtNode array size because arrays can have a forward link or needles PtNodes.
+    // This field will be updated later in onReadingPtNodeArrayTail() with actual PtNode count.
+    mPtNodeArraySizeFieldPos = writingPos;
+    return DynamicPtWritingUtils::writePtNodeArraySizeAndAdvancePosition(
+            mBufferToWrite, 0 /* arraySize */, &writingPos);
+}
+
+// Write PtNode array terminal and actual PtNode array size.
+bool DynamicPtGcEventListeners::TraversePolicyToPlaceAndWriteValidPtNodesToBuffer
+        ::onReadingPtNodeArrayTail() {
+    int writingPos = mBufferToWrite->getTailPosition();
+    // Write PtNode array terminal.
+    if (!DynamicPtWritingUtils::writeForwardLinkPositionAndAdvancePosition(
+            mBufferToWrite, NOT_A_DICT_POS /* forwardLinkPos */, &writingPos)) {
+        return false;
+    }
+    // Write actual PtNode array size.
+    if (!DynamicPtWritingUtils::writePtNodeArraySizeAndAdvancePosition(
+            mBufferToWrite, mValidPtNodeCount, &mPtNodeArraySizeFieldPos)) {
+        return false;
+    }
+    return true;
+}
+
+// Write valid PtNode to buffer and memorize mapping from the old position to the new position.
+bool DynamicPtGcEventListeners::TraversePolicyToPlaceAndWriteValidPtNodesToBuffer
+        ::onVisitingPtNode(const PtNodeParams *const ptNodeParams) {
+    if (ptNodeParams->isDeleted()) {
+        // Current PtNode is not written in new buffer because it has been deleted.
+        mDictPositionRelocationMap->mPtNodePositionRelocationMap.insert(
+                PtNodeWriter::PtNodePositionRelocationMap::value_type(
+                        ptNodeParams->getHeadPos(), NOT_A_DICT_POS));
+        return true;
+    }
+    int writingPos = mBufferToWrite->getTailPosition();
+    mDictPositionRelocationMap->mPtNodePositionRelocationMap.insert(
+            PtNodeWriter::PtNodePositionRelocationMap::value_type(
+                    ptNodeParams->getHeadPos(), writingPos));
+    mValidPtNodeCount++;
+    // Writes current PtNode.
+    return mPtNodeWriter->writePtNodeAndAdvancePosition(ptNodeParams, &writingPos);
+}
+
+bool DynamicPtGcEventListeners::TraversePolicyToUpdateAllPositionFields
+        ::onVisitingPtNode(const PtNodeParams *const ptNodeParams) {
+    // Updates parent position.
+    int bigramCount = 0;
+    if (!mPtNodeWriter->updateAllPositionFields(ptNodeParams, mDictPositionRelocationMap,
+            &bigramCount)) {
+        return false;
+    }
+    mBigramCount += bigramCount;
+    if (ptNodeParams->isTerminal()) {
+        mUnigramCount++;
+    }
+    return true;
+}
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.h b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.h
new file mode 100644
index 0000000..8c7ad96
--- /dev/null
+++ b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.h
@@ -0,0 +1,173 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_DYNAMIC_PT_GC_EVENT_LISTENERS_H
+#define LATINIME_DYNAMIC_PT_GC_EVENT_LISTENERS_H
+
+#include <vector>
+
+#include "defines.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
+#include "dictionary/structure/pt_common/pt_node_writer.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+
+namespace latinime {
+
+class PtNodeParams;
+
+class DynamicPtGcEventListeners {
+ public:
+    // Updates all PtNodes that can be reached from the root. Checks if each PtNode is useless or
+    // not and marks useless PtNodes as deleted. Such deleted PtNodes will be discarded in the GC.
+    // TODO: Concatenate non-terminal PtNodes.
+    class TraversePolicyToUpdateUnigramProbabilityAndMarkUselessPtNodesAsDeleted
+        : public DynamicPtReadingHelper::TraversingEventListener {
+     public:
+        TraversePolicyToUpdateUnigramProbabilityAndMarkUselessPtNodesAsDeleted(
+                PtNodeWriter *const ptNodeWriter)
+                : mPtNodeWriter(ptNodeWriter), mValueStack(), mChildrenValue(0),
+                  mValidUnigramCount(0) {}
+
+        ~TraversePolicyToUpdateUnigramProbabilityAndMarkUselessPtNodesAsDeleted() {};
+
+        bool onAscend() {
+            if (mValueStack.empty()) {
+                return false;
+            }
+            mChildrenValue = mValueStack.back();
+            mValueStack.pop_back();
+            return true;
+        }
+
+        bool onDescend(const int ptNodeArrayPos) {
+            mValueStack.push_back(0);
+            mChildrenValue = 0;
+            return true;
+        }
+
+        bool onReadingPtNodeArrayTail() { return true; }
+
+        bool onVisitingPtNode(const PtNodeParams *const ptNodeParams);
+
+        int getValidUnigramCount() const {
+            return mValidUnigramCount;
+        }
+
+     private:
+        DISALLOW_IMPLICIT_CONSTRUCTORS(
+                TraversePolicyToUpdateUnigramProbabilityAndMarkUselessPtNodesAsDeleted);
+
+        PtNodeWriter *const mPtNodeWriter;
+        std::vector<int> mValueStack;
+        int mChildrenValue;
+        int mValidUnigramCount;
+    };
+
+    // TODO: Remove when we stop supporting v402 format.
+    // Updates all bigram entries that are held by valid PtNodes. This removes useless bigram
+    // entries.
+    class TraversePolicyToUpdateBigramProbability
+            : public DynamicPtReadingHelper::TraversingEventListener {
+     public:
+        TraversePolicyToUpdateBigramProbability(PtNodeWriter *const ptNodeWriter)
+                : mPtNodeWriter(ptNodeWriter), mValidBigramEntryCount(0) {}
+
+        bool onAscend() { return true; }
+
+        bool onDescend(const int ptNodeArrayPos) { return true; }
+
+        bool onReadingPtNodeArrayTail() { return true; }
+
+        bool onVisitingPtNode(const PtNodeParams *const ptNodeParams);
+
+        int getValidBigramEntryCount() const {
+            return mValidBigramEntryCount;
+        }
+
+     private:
+        DISALLOW_IMPLICIT_CONSTRUCTORS(TraversePolicyToUpdateBigramProbability);
+
+        PtNodeWriter *const mPtNodeWriter;
+        int mValidBigramEntryCount;
+    };
+
+    class TraversePolicyToPlaceAndWriteValidPtNodesToBuffer
+            : public DynamicPtReadingHelper::TraversingEventListener {
+     public:
+        TraversePolicyToPlaceAndWriteValidPtNodesToBuffer(
+                PtNodeWriter *const ptNodeWriter, BufferWithExtendableBuffer *const bufferToWrite,
+                PtNodeWriter::DictPositionRelocationMap *const dictPositionRelocationMap)
+                : mPtNodeWriter(ptNodeWriter), mBufferToWrite(bufferToWrite),
+                  mDictPositionRelocationMap(dictPositionRelocationMap), mValidPtNodeCount(0),
+                  mPtNodeArraySizeFieldPos(NOT_A_DICT_POS) {};
+
+        bool onAscend() { return true; }
+
+        bool onDescend(const int ptNodeArrayPos);
+
+        bool onReadingPtNodeArrayTail();
+
+        bool onVisitingPtNode(const PtNodeParams *const ptNodeParams);
+
+     private:
+        DISALLOW_IMPLICIT_CONSTRUCTORS(TraversePolicyToPlaceAndWriteValidPtNodesToBuffer);
+
+        PtNodeWriter *const mPtNodeWriter;
+        BufferWithExtendableBuffer *const mBufferToWrite;
+        PtNodeWriter::DictPositionRelocationMap *const mDictPositionRelocationMap;
+        int mValidPtNodeCount;
+        int mPtNodeArraySizeFieldPos;
+    };
+
+    class TraversePolicyToUpdateAllPositionFields
+            : public DynamicPtReadingHelper::TraversingEventListener {
+     public:
+        TraversePolicyToUpdateAllPositionFields(PtNodeWriter *const ptNodeWriter,
+                const PtNodeWriter::DictPositionRelocationMap *const dictPositionRelocationMap)
+                : mPtNodeWriter(ptNodeWriter),
+                  mDictPositionRelocationMap(dictPositionRelocationMap), mUnigramCount(0),
+                  mBigramCount(0) {};
+
+        bool onAscend() { return true; }
+
+        bool onDescend(const int ptNodeArrayPos) { return true; }
+
+        bool onReadingPtNodeArrayTail() { return true; }
+
+        bool onVisitingPtNode(const PtNodeParams *const ptNodeParams);
+
+        int getUnigramCount() const {
+            return mUnigramCount;
+        }
+
+        int getBigramCount() const {
+            return mBigramCount;
+        }
+
+     private:
+        DISALLOW_IMPLICIT_CONSTRUCTORS(TraversePolicyToUpdateAllPositionFields);
+
+        PtNodeWriter *const mPtNodeWriter;
+        const PtNodeWriter::DictPositionRelocationMap *const mDictPositionRelocationMap;
+        int mUnigramCount;
+        int mBigramCount;
+    };
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(DynamicPtGcEventListeners);
+};
+} // namespace latinime
+#endif /* LATINIME_DYNAMIC_PT_GC_EVENT_LISTENERS_H */
diff --git a/native/jni/src/dictionary/structure/pt_common/dynamic_pt_reading_helper.cpp b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_reading_helper.cpp
new file mode 100644
index 0000000..294bc6e
--- /dev/null
+++ b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_reading_helper.cpp
@@ -0,0 +1,321 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
+
+#include "dictionary/structure/pt_common/pt_node_array_reader.h"
+#include "utils/char_utils.h"
+
+namespace latinime {
+
+// To avoid infinite loop caused by invalid or malicious forward links.
+const int DynamicPtReadingHelper::MAX_CHILD_COUNT_TO_AVOID_INFINITE_LOOP = 100000;
+const int DynamicPtReadingHelper::MAX_PT_NODE_ARRAY_COUNT_TO_AVOID_INFINITE_LOOP = 100000;
+const size_t DynamicPtReadingHelper::MAX_READING_STATE_STACK_SIZE = MAX_WORD_LENGTH;
+
+bool DynamicPtReadingHelper::TraversePolicyToGetAllTerminalPtNodePositions::onVisitingPtNode(
+        const PtNodeParams *const ptNodeParams) {
+    if (ptNodeParams->isTerminal() && !ptNodeParams->isDeleted()) {
+        mTerminalPositions->push_back(ptNodeParams->getHeadPos());
+    }
+    return true;
+}
+
+// Visits all PtNodes in post-order depth first manner.
+// For example, visits c -> b -> y -> x -> a for the following dictionary:
+// a _ b _ c
+//   \ x _ y
+bool DynamicPtReadingHelper::traverseAllPtNodesInPostorderDepthFirstManner(
+        TraversingEventListener *const listener) {
+    bool alreadyVisitedChildren = false;
+    // Descend from the root to the root PtNode array.
+    if (!listener->onDescend(getPosOfLastPtNodeArrayHead())) {
+        return false;
+    }
+    while (!isEnd()) {
+        const PtNodeParams ptNodeParams(getPtNodeParams());
+        if (!ptNodeParams.isValid()) {
+            break;
+        }
+        if (!alreadyVisitedChildren) {
+            if (ptNodeParams.hasChildren()) {
+                // Move to the first child.
+                if (!listener->onDescend(ptNodeParams.getChildrenPos())) {
+                    return false;
+                }
+                pushReadingStateToStack();
+                readChildNode(ptNodeParams);
+            } else {
+                alreadyVisitedChildren = true;
+            }
+        } else {
+            if (!listener->onVisitingPtNode(&ptNodeParams)) {
+                return false;
+            }
+            readNextSiblingNode(ptNodeParams);
+            if (isEnd()) {
+                // All PtNodes in current linked PtNode arrays have been visited.
+                // Return to the parent.
+                if (!listener->onReadingPtNodeArrayTail()) {
+                    return false;
+                }
+                if (mReadingStateStack.size() <= 0) {
+                    break;
+                }
+                if (!listener->onAscend()) {
+                    return false;
+                }
+                popReadingStateFromStack();
+                alreadyVisitedChildren = true;
+            } else {
+                // Process sibling PtNode.
+                alreadyVisitedChildren = false;
+            }
+        }
+    }
+    // Ascend from the root PtNode array to the root.
+    if (!listener->onAscend()) {
+        return false;
+    }
+    return !isError();
+}
+
+// Visits all PtNodes in PtNode array level pre-order depth first manner, which is the same order
+// that PtNodes are written in the dictionary buffer.
+// For example, visits a -> b -> x -> c -> y for the following dictionary:
+// a _ b _ c
+//   \ x _ y
+bool DynamicPtReadingHelper::traverseAllPtNodesInPtNodeArrayLevelPreorderDepthFirstManner(
+        TraversingEventListener *const listener) {
+    bool alreadyVisitedAllPtNodesInArray = false;
+    bool alreadyVisitedChildren = false;
+    // Descend from the root to the root PtNode array.
+    if (!listener->onDescend(getPosOfLastPtNodeArrayHead())) {
+        return false;
+    }
+    if (isEnd()) {
+        // Empty dictionary. Needs to notify the listener of the tail of empty PtNode array.
+        if (!listener->onReadingPtNodeArrayTail()) {
+            return false;
+        }
+    }
+    pushReadingStateToStack();
+    while (!isEnd()) {
+        const PtNodeParams ptNodeParams(getPtNodeParams());
+        if (!ptNodeParams.isValid()) {
+            break;
+        }
+        if (alreadyVisitedAllPtNodesInArray) {
+            if (alreadyVisitedChildren) {
+                // Move to next sibling PtNode's children.
+                readNextSiblingNode(ptNodeParams);
+                if (isEnd()) {
+                    // Return to the parent PTNode.
+                    if (!listener->onAscend()) {
+                        return false;
+                    }
+                    if (mReadingStateStack.size() <= 0) {
+                        break;
+                    }
+                    popReadingStateFromStack();
+                    alreadyVisitedChildren = true;
+                    alreadyVisitedAllPtNodesInArray = true;
+                } else {
+                    alreadyVisitedChildren = false;
+                }
+            } else {
+                if (ptNodeParams.hasChildren()) {
+                    // Move to the first child.
+                    if (!listener->onDescend(ptNodeParams.getChildrenPos())) {
+                        return false;
+                    }
+                    pushReadingStateToStack();
+                    readChildNode(ptNodeParams);
+                    // Push state to return the head of PtNode array.
+                    pushReadingStateToStack();
+                    alreadyVisitedAllPtNodesInArray = false;
+                    alreadyVisitedChildren = false;
+                } else {
+                    alreadyVisitedChildren = true;
+                }
+            }
+        } else {
+            if (!listener->onVisitingPtNode(&ptNodeParams)) {
+                return false;
+            }
+            readNextSiblingNode(ptNodeParams);
+            if (isEnd()) {
+                if (!listener->onReadingPtNodeArrayTail()) {
+                    return false;
+                }
+                // Return to the head of current PtNode array.
+                popReadingStateFromStack();
+                alreadyVisitedAllPtNodesInArray = true;
+            }
+        }
+    }
+    popReadingStateFromStack();
+    // Ascend from the root PtNode array to the root.
+    if (!listener->onAscend()) {
+        return false;
+    }
+    return !isError();
+}
+
+int DynamicPtReadingHelper::getCodePointsAndReturnCodePointCount(const int maxCodePointCount,
+        int *const outCodePoints) {
+    // This method traverses parent nodes from the terminal by following parent pointers; thus,
+    // node code points are stored in the buffer in the reverse order.
+    int reverseCodePoints[maxCodePointCount];
+    const PtNodeParams terminalPtNodeParams(getPtNodeParams());
+    // First, read the terminal node and get its probability.
+    if (!isValidTerminalNode(terminalPtNodeParams)) {
+        // Node at the ptNodePos is not a valid terminal node.
+        return 0;
+    }
+    // Then, following parent node link to the dictionary root and fetch node code points.
+    int totalCodePointCount = 0;
+    while (!isEnd()) {
+        const PtNodeParams ptNodeParams(getPtNodeParams());
+        totalCodePointCount = getTotalCodePointCount(ptNodeParams);
+        if (!ptNodeParams.isValid() || totalCodePointCount > maxCodePointCount) {
+            // The ptNodePos is not a valid terminal node position in the dictionary.
+            return 0;
+        }
+        // Store node code points to buffer in the reverse order.
+        fetchMergedNodeCodePointsInReverseOrder(ptNodeParams, getPrevTotalCodePointCount(),
+                reverseCodePoints);
+        // Follow parent node toward the root node.
+        readParentNode(ptNodeParams);
+    }
+    if (isError()) {
+        // The node position or the dictionary is invalid.
+        return 0;
+    }
+    // Reverse the stored code points to output them.
+    for (int i = 0; i < totalCodePointCount; ++i) {
+        outCodePoints[i] = reverseCodePoints[totalCodePointCount - i - 1];
+    }
+    return totalCodePointCount;
+}
+
+int DynamicPtReadingHelper::getTerminalPtNodePositionOfWord(const int *const inWord,
+        const size_t length, const bool forceLowerCaseSearch) {
+    int searchCodePoints[length];
+    for (size_t i = 0; i < length; ++i) {
+        searchCodePoints[i] = forceLowerCaseSearch ? CharUtils::toLowerCase(inWord[i]) : inWord[i];
+    }
+    while (!isEnd()) {
+        const PtNodeParams ptNodeParams(getPtNodeParams());
+        const int matchedCodePointCount = getPrevTotalCodePointCount();
+        if (getTotalCodePointCount(ptNodeParams) > length
+                || !isMatchedCodePoint(ptNodeParams, 0 /* index */,
+                        searchCodePoints[matchedCodePointCount])) {
+            // Current node has too many code points or its first code point is different from
+            // target code point. Skip this node and read the next sibling node.
+            readNextSiblingNode(ptNodeParams);
+            continue;
+        }
+        // Check following merged node code points.
+        const int nodeCodePointCount = ptNodeParams.getCodePointCount();
+        for (int j = 1; j < nodeCodePointCount; ++j) {
+            if (!isMatchedCodePoint(ptNodeParams, j, searchCodePoints[matchedCodePointCount + j])) {
+                // Different code point is found. The given word is not included in the dictionary.
+                return NOT_A_DICT_POS;
+            }
+        }
+        // All characters are matched.
+        if (length == getTotalCodePointCount(ptNodeParams)) {
+            if (!ptNodeParams.isTerminal()) {
+                return NOT_A_DICT_POS;
+            }
+            // Terminal position is found.
+            return ptNodeParams.getHeadPos();
+        }
+        if (!ptNodeParams.hasChildren()) {
+            return NOT_A_DICT_POS;
+        }
+        // Advance to the children nodes.
+        readChildNode(ptNodeParams);
+    }
+    // If we already traversed the tree further than the word is long, there means
+    // there was no match (or we would have found it).
+    return NOT_A_DICT_POS;
+}
+
+// Read node array size and process empty node arrays. Nodes and arrays are counted up in this
+// method to avoid an infinite loop.
+void DynamicPtReadingHelper::nextPtNodeArray() {
+    int ptNodeCountInArray = 0;
+    int firstPtNodePos = NOT_A_DICT_POS;
+    if (!mPtNodeArrayReader->readPtNodeArrayInfoAndReturnIfValid(
+            mReadingState.mPos, &ptNodeCountInArray, &firstPtNodePos)) {
+        mIsError = true;
+        mReadingState.mPos = NOT_A_DICT_POS;
+        return;
+    }
+    mReadingState.mPosOfThisPtNodeArrayHead = mReadingState.mPos;
+    mReadingState.mRemainingPtNodeCountInThisArray = ptNodeCountInArray;
+    mReadingState.mPos = firstPtNodePos;
+    // Count up nodes and node arrays to avoid infinite loop.
+    mReadingState.mTotalPtNodeIndexInThisArrayChain +=
+            mReadingState.mRemainingPtNodeCountInThisArray;
+    mReadingState.mPtNodeArrayIndexInThisArrayChain++;
+    if (mReadingState.mRemainingPtNodeCountInThisArray < 0
+            || mReadingState.mTotalPtNodeIndexInThisArrayChain
+                    > MAX_CHILD_COUNT_TO_AVOID_INFINITE_LOOP
+            || mReadingState.mPtNodeArrayIndexInThisArrayChain
+                    > MAX_PT_NODE_ARRAY_COUNT_TO_AVOID_INFINITE_LOOP) {
+        // Invalid dictionary.
+        AKLOGI("Invalid dictionary. nodeCount: %d, totalNodeCount: %d, MAX_CHILD_COUNT: %d"
+                "nodeArrayCount: %d, MAX_NODE_ARRAY_COUNT: %d",
+                mReadingState.mRemainingPtNodeCountInThisArray,
+                mReadingState.mTotalPtNodeIndexInThisArrayChain,
+                MAX_CHILD_COUNT_TO_AVOID_INFINITE_LOOP,
+                mReadingState.mPtNodeArrayIndexInThisArrayChain,
+                MAX_PT_NODE_ARRAY_COUNT_TO_AVOID_INFINITE_LOOP);
+        ASSERT(false);
+        mIsError = true;
+        mReadingState.mPos = NOT_A_DICT_POS;
+        return;
+    }
+    if (mReadingState.mRemainingPtNodeCountInThisArray == 0) {
+        // Empty node array. Try following forward link.
+        followForwardLink();
+    }
+}
+
+// Follow the forward link and read the next node array if exists.
+void DynamicPtReadingHelper::followForwardLink() {
+    int nextPtNodeArrayPos = NOT_A_DICT_POS;
+    if (!mPtNodeArrayReader->readForwardLinkAndReturnIfValid(
+            mReadingState.mPos, &nextPtNodeArrayPos)) {
+        mIsError = true;
+        mReadingState.mPos = NOT_A_DICT_POS;
+        return;
+    }
+    mReadingState.mPosOfLastForwardLinkField = mReadingState.mPos;
+    if (nextPtNodeArrayPos != NOT_A_DICT_POS) {
+        // Follow the forward link.
+        mReadingState.mPos = nextPtNodeArrayPos;
+        nextPtNodeArray();
+    } else {
+        // All node arrays have been read.
+        mReadingState.mPos = NOT_A_DICT_POS;
+    }
+}
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/pt_common/dynamic_pt_reading_helper.h b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_reading_helper.h
new file mode 100644
index 0000000..d8ddc7c
--- /dev/null
+++ b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_reading_helper.h
@@ -0,0 +1,282 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_DYNAMIC_PT_READING_HELPER_H
+#define LATINIME_DYNAMIC_PT_READING_HELPER_H
+
+#include <cstddef>
+#include <vector>
+
+#include "defines.h"
+#include "dictionary/structure/pt_common/pt_node_params.h"
+#include "dictionary/structure/pt_common/pt_node_reader.h"
+
+namespace latinime {
+
+class DictionaryShortcutsStructurePolicy;
+class PtNodeArrayReader;
+
+/*
+ * This class is used for traversing dynamic patricia trie. This class supports iterating nodes and
+ * dealing with additional buffer. This class counts nodes and node arrays to avoid infinite loop.
+ */
+class DynamicPtReadingHelper {
+ public:
+    class TraversingEventListener {
+     public:
+        virtual ~TraversingEventListener() {};
+
+        // Returns whether the event handling was succeeded or not.
+        virtual bool onAscend() = 0;
+
+        // Returns whether the event handling was succeeded or not.
+        virtual bool onDescend(const int ptNodeArrayPos) = 0;
+
+        // Returns whether the event handling was succeeded or not.
+        virtual bool onReadingPtNodeArrayTail() = 0;
+
+        // Returns whether the event handling was succeeded or not.
+        virtual bool onVisitingPtNode(const PtNodeParams *const node) = 0;
+
+     protected:
+        TraversingEventListener() {};
+
+     private:
+        DISALLOW_COPY_AND_ASSIGN(TraversingEventListener);
+    };
+
+    class TraversePolicyToGetAllTerminalPtNodePositions : public TraversingEventListener {
+     public:
+        TraversePolicyToGetAllTerminalPtNodePositions(std::vector<int> *const terminalPositions)
+                : mTerminalPositions(terminalPositions) {}
+        bool onAscend() { return true; }
+        bool onDescend(const int ptNodeArrayPos) { return true; }
+        bool onReadingPtNodeArrayTail() { return true; }
+        bool onVisitingPtNode(const PtNodeParams *const ptNodeParams);
+
+     private:
+        DISALLOW_IMPLICIT_CONSTRUCTORS(TraversePolicyToGetAllTerminalPtNodePositions);
+
+        std::vector<int> *const mTerminalPositions;
+    };
+
+    DynamicPtReadingHelper(const PtNodeReader *const ptNodeReader,
+            const PtNodeArrayReader *const ptNodeArrayReader)
+            : mIsError(false), mReadingState(), mPtNodeReader(ptNodeReader),
+              mPtNodeArrayReader(ptNodeArrayReader), mReadingStateStack() {}
+
+    ~DynamicPtReadingHelper() {}
+
+    AK_FORCE_INLINE bool isError() const {
+        return mIsError;
+    }
+
+    AK_FORCE_INLINE bool isEnd() const {
+        return mReadingState.mPos == NOT_A_DICT_POS;
+    }
+
+    // Initialize reading state with the head position of a PtNode array.
+    AK_FORCE_INLINE void initWithPtNodeArrayPos(const int ptNodeArrayPos) {
+        if (ptNodeArrayPos == NOT_A_DICT_POS) {
+            mReadingState.mPos = NOT_A_DICT_POS;
+        } else {
+            mIsError = false;
+            mReadingState.mPos = ptNodeArrayPos;
+            mReadingState.mTotalCodePointCountSinceInitialization = 0;
+            mReadingState.mTotalPtNodeIndexInThisArrayChain = 0;
+            mReadingState.mPtNodeArrayIndexInThisArrayChain = 0;
+            mReadingState.mPosOfLastForwardLinkField = NOT_A_DICT_POS;
+            mReadingStateStack.clear();
+            nextPtNodeArray();
+        }
+    }
+
+    // Initialize reading state with the head position of a node.
+    AK_FORCE_INLINE void initWithPtNodePos(const int ptNodePos) {
+        if (ptNodePos == NOT_A_DICT_POS) {
+            mReadingState.mPos = NOT_A_DICT_POS;
+        } else {
+            mIsError = false;
+            mReadingState.mPos = ptNodePos;
+            mReadingState.mRemainingPtNodeCountInThisArray = 1;
+            mReadingState.mTotalCodePointCountSinceInitialization = 0;
+            mReadingState.mTotalPtNodeIndexInThisArrayChain = 1;
+            mReadingState.mPtNodeArrayIndexInThisArrayChain = 1;
+            mReadingState.mPosOfLastForwardLinkField = NOT_A_DICT_POS;
+            mReadingState.mPosOfThisPtNodeArrayHead = NOT_A_DICT_POS;
+            mReadingStateStack.clear();
+        }
+    }
+
+    AK_FORCE_INLINE const PtNodeParams getPtNodeParams() const {
+        if (isEnd()) {
+            return PtNodeParams();
+        }
+        return mPtNodeReader->fetchPtNodeParamsInBufferFromPtNodePos(mReadingState.mPos);
+    }
+
+    AK_FORCE_INLINE bool isValidTerminalNode(const PtNodeParams &ptNodeParams) const {
+        return !isEnd() && !ptNodeParams.isDeleted() && ptNodeParams.isTerminal();
+    }
+
+    AK_FORCE_INLINE bool isMatchedCodePoint(const PtNodeParams &ptNodeParams, const int index,
+            const int codePoint) const {
+        return ptNodeParams.getCodePoints()[index] == codePoint;
+    }
+
+    // Return code point count exclude the last read node's code points.
+    AK_FORCE_INLINE size_t getPrevTotalCodePointCount() const {
+        return mReadingState.mTotalCodePointCountSinceInitialization;
+    }
+
+    // Return code point count include the last read node's code points.
+    AK_FORCE_INLINE size_t getTotalCodePointCount(const PtNodeParams &ptNodeParams) const {
+        return mReadingState.mTotalCodePointCountSinceInitialization
+                + ptNodeParams.getCodePointCount();
+    }
+
+    AK_FORCE_INLINE void fetchMergedNodeCodePointsInReverseOrder(const PtNodeParams &ptNodeParams,
+            const int index, int *const outCodePoints) const {
+        const int nodeCodePointCount = ptNodeParams.getCodePointCount();
+        const int *const nodeCodePoints = ptNodeParams.getCodePoints();
+        for (int i =  0; i < nodeCodePointCount; ++i) {
+            outCodePoints[index + i] = nodeCodePoints[nodeCodePointCount - 1 - i];
+        }
+    }
+
+    AK_FORCE_INLINE void readNextSiblingNode(const PtNodeParams &ptNodeParams) {
+        mReadingState.mRemainingPtNodeCountInThisArray -= 1;
+        mReadingState.mPos = ptNodeParams.getSiblingNodePos();
+        if (mReadingState.mRemainingPtNodeCountInThisArray <= 0) {
+            // All nodes in the current node array have been read.
+            followForwardLink();
+        }
+    }
+
+    // Read the first child node of the current node.
+    AK_FORCE_INLINE void readChildNode(const PtNodeParams &ptNodeParams) {
+        if (ptNodeParams.hasChildren()) {
+            mReadingState.mTotalCodePointCountSinceInitialization +=
+                    ptNodeParams.getCodePointCount();
+            mReadingState.mTotalPtNodeIndexInThisArrayChain = 0;
+            mReadingState.mPtNodeArrayIndexInThisArrayChain = 0;
+            mReadingState.mPos = ptNodeParams.getChildrenPos();
+            mReadingState.mPosOfLastForwardLinkField = NOT_A_DICT_POS;
+            // Read children node array.
+            nextPtNodeArray();
+        } else {
+            mReadingState.mPos = NOT_A_DICT_POS;
+        }
+    }
+
+    // Read the parent node of the current node.
+    AK_FORCE_INLINE void readParentNode(const PtNodeParams &ptNodeParams) {
+        if (ptNodeParams.getParentPos() != NOT_A_DICT_POS) {
+            mReadingState.mTotalCodePointCountSinceInitialization +=
+                    ptNodeParams.getCodePointCount();
+            mReadingState.mTotalPtNodeIndexInThisArrayChain = 1;
+            mReadingState.mPtNodeArrayIndexInThisArrayChain = 1;
+            mReadingState.mRemainingPtNodeCountInThisArray = 1;
+            mReadingState.mPos = ptNodeParams.getParentPos();
+            mReadingState.mPosOfLastForwardLinkField = NOT_A_DICT_POS;
+            mReadingState.mPosOfThisPtNodeArrayHead = NOT_A_DICT_POS;
+        } else {
+            mReadingState.mPos = NOT_A_DICT_POS;
+        }
+    }
+
+    AK_FORCE_INLINE int getPosOfLastForwardLinkField() const {
+        return mReadingState.mPosOfLastForwardLinkField;
+    }
+
+    AK_FORCE_INLINE int getPosOfLastPtNodeArrayHead() const {
+        return mReadingState.mPosOfThisPtNodeArrayHead;
+    }
+
+    bool traverseAllPtNodesInPostorderDepthFirstManner(TraversingEventListener *const listener);
+
+    bool traverseAllPtNodesInPtNodeArrayLevelPreorderDepthFirstManner(
+            TraversingEventListener *const listener);
+
+    int getCodePointsAndReturnCodePointCount(const int maxCodePointCount, int *const outCodePoints);
+
+    int getTerminalPtNodePositionOfWord(const int *const inWord, const size_t length,
+            const bool forceLowerCaseSearch);
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(DynamicPtReadingHelper);
+
+    // This class encapsulates the reading state of a position in the dictionary. It points at a
+    // specific PtNode in the dictionary.
+    class PtNodeReadingState {
+     public:
+        // Note that copy constructor and assignment operator are used for this class to use
+        // std::vector.
+        PtNodeReadingState() : mPos(NOT_A_DICT_POS), mRemainingPtNodeCountInThisArray(0),
+                mTotalCodePointCountSinceInitialization(0), mTotalPtNodeIndexInThisArrayChain(0),
+                mPtNodeArrayIndexInThisArrayChain(0), mPosOfLastForwardLinkField(NOT_A_DICT_POS),
+                mPosOfThisPtNodeArrayHead(NOT_A_DICT_POS) {}
+
+        int mPos;
+        // Remaining node count in the current array.
+        int mRemainingPtNodeCountInThisArray;
+        size_t mTotalCodePointCountSinceInitialization;
+        // Counter of PtNodes used to avoid infinite loops caused by broken or malicious links.
+        int mTotalPtNodeIndexInThisArrayChain;
+        // Counter of PtNode arrays used to avoid infinite loops caused by cyclic links of empty
+        // PtNode arrays.
+        int mPtNodeArrayIndexInThisArrayChain;
+        int mPosOfLastForwardLinkField;
+        int mPosOfThisPtNodeArrayHead;
+    };
+
+    static const int MAX_CHILD_COUNT_TO_AVOID_INFINITE_LOOP;
+    static const int MAX_PT_NODE_ARRAY_COUNT_TO_AVOID_INFINITE_LOOP;
+    static const size_t MAX_READING_STATE_STACK_SIZE;
+
+    // TODO: Introduce error code to track what caused the error.
+    bool mIsError;
+    PtNodeReadingState mReadingState;
+    const PtNodeReader *const mPtNodeReader;
+    const PtNodeArrayReader *const mPtNodeArrayReader;
+    std::vector<PtNodeReadingState> mReadingStateStack;
+
+    void nextPtNodeArray();
+
+    void followForwardLink();
+
+    AK_FORCE_INLINE void pushReadingStateToStack() {
+        if (mReadingStateStack.size() > MAX_READING_STATE_STACK_SIZE) {
+            AKLOGI("Reading state stack overflow. Max size: %zd", MAX_READING_STATE_STACK_SIZE);
+            ASSERT(false);
+            mIsError = true;
+            mReadingState.mPos = NOT_A_DICT_POS;
+        } else {
+            mReadingStateStack.push_back(mReadingState);
+        }
+    }
+
+    AK_FORCE_INLINE void popReadingStateFromStack() {
+        if (mReadingStateStack.empty()) {
+            mReadingState.mPos = NOT_A_DICT_POS;
+        } else {
+            mReadingState = mReadingStateStack.back();
+            mReadingStateStack.pop_back();
+        }
+    }
+};
+} // namespace latinime
+#endif /* LATINIME_DYNAMIC_PT_READING_HELPER_H */
diff --git a/native/jni/src/dictionary/structure/pt_common/dynamic_pt_reading_utils.cpp b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_reading_utils.cpp
new file mode 100644
index 0000000..3eb55ed
--- /dev/null
+++ b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_reading_utils.cpp
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
+
+#include "defines.h"
+#include "dictionary/utils/byte_array_utils.h"
+
+namespace latinime {
+
+const DynamicPtReadingUtils::NodeFlags DynamicPtReadingUtils::MASK_MOVED = 0xC0;
+const DynamicPtReadingUtils::NodeFlags DynamicPtReadingUtils::FLAG_IS_NOT_MOVED = 0xC0;
+const DynamicPtReadingUtils::NodeFlags DynamicPtReadingUtils::FLAG_IS_MOVED = 0x40;
+const DynamicPtReadingUtils::NodeFlags DynamicPtReadingUtils::FLAG_IS_DELETED = 0x80;
+const DynamicPtReadingUtils::NodeFlags DynamicPtReadingUtils::FLAG_WILL_BECOME_NON_TERMINAL = 0x00;
+
+// TODO: Make DICT_OFFSET_ZERO_OFFSET = 0.
+// Currently, DICT_OFFSET_INVALID is 0 in Java side but offset can be 0 during GC. So, the maximum
+// value of offsets, which is 0x7FFFFF is used to represent 0 offset.
+const int DynamicPtReadingUtils::DICT_OFFSET_INVALID = 0;
+const int DynamicPtReadingUtils::DICT_OFFSET_ZERO_OFFSET = 0x7FFFFF;
+
+/* static */ int DynamicPtReadingUtils::getForwardLinkPosition(const uint8_t *const buffer,
+        const int pos) {
+    int linkAddressPos = pos;
+    return ByteArrayUtils::readSint24AndAdvancePosition(buffer, &linkAddressPos);
+}
+
+/* static */ int DynamicPtReadingUtils::getParentPtNodePosOffsetAndAdvancePosition(
+        const uint8_t *const buffer, int *const pos) {
+    return ByteArrayUtils::readSint24AndAdvancePosition(buffer, pos);
+}
+
+/* static */ int DynamicPtReadingUtils::getParentPtNodePos(const int parentOffset,
+        const int ptNodePos) {
+    if (parentOffset == DICT_OFFSET_INVALID) {
+        return NOT_A_DICT_POS;
+    } else if (parentOffset == DICT_OFFSET_ZERO_OFFSET) {
+        return ptNodePos;
+    } else {
+        return parentOffset + ptNodePos;
+    }
+}
+
+/* static */ int DynamicPtReadingUtils::readChildrenPositionAndAdvancePosition(
+        const uint8_t *const buffer, int *const pos) {
+    const int base = *pos;
+    const int offset = ByteArrayUtils::readSint24AndAdvancePosition(buffer, pos);
+    if (offset == DICT_OFFSET_INVALID) {
+        // The PtNode does not have children.
+        return NOT_A_DICT_POS;
+    } else if (offset == DICT_OFFSET_ZERO_OFFSET) {
+        return base;
+    } else {
+        return base + offset;
+    }
+}
+
+} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.h b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_reading_utils.h
similarity index 100%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.h
rename to native/jni/src/dictionary/structure/pt_common/dynamic_pt_reading_utils.h
diff --git a/native/jni/src/dictionary/structure/pt_common/dynamic_pt_updating_helper.cpp b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_updating_helper.cpp
new file mode 100644
index 0000000..ccad345
--- /dev/null
+++ b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_updating_helper.cpp
@@ -0,0 +1,299 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/pt_common/dynamic_pt_updating_helper.h"
+
+#include "dictionary/property/unigram_property.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
+#include "dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
+#include "dictionary/structure/pt_common/patricia_trie_reading_utils.h"
+#include "dictionary/structure/pt_common/pt_node_reader.h"
+#include "dictionary/structure/pt_common/pt_node_writer.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+
+namespace latinime {
+
+const int DynamicPtUpdatingHelper::CHILDREN_POSITION_FIELD_SIZE = 3;
+
+bool DynamicPtUpdatingHelper::addUnigramWord(DynamicPtReadingHelper *const readingHelper,
+        const CodePointArrayView wordCodePoints, const UnigramProperty *const unigramProperty,
+        bool *const outAddedNewUnigram) {
+    int parentPos = NOT_A_DICT_POS;
+    while (!readingHelper->isEnd()) {
+        const PtNodeParams ptNodeParams(readingHelper->getPtNodeParams());
+        if (!ptNodeParams.isValid()) {
+            break;
+        }
+        const size_t matchedCodePointCount = readingHelper->getPrevTotalCodePointCount();
+        if (!readingHelper->isMatchedCodePoint(ptNodeParams, 0 /* index */,
+                wordCodePoints[matchedCodePointCount])) {
+            // The first code point is different from target code point. Skip this node and read
+            // the next sibling node.
+            readingHelper->readNextSiblingNode(ptNodeParams);
+            continue;
+        }
+        // Check following merged node code points.
+        const size_t nodeCodePointCount = ptNodeParams.getCodePointArrayView().size();
+        for (size_t j = 1; j < nodeCodePointCount; ++j) {
+            const size_t nextIndex = matchedCodePointCount + j;
+            if (nextIndex >= wordCodePoints.size()
+                    || !readingHelper->isMatchedCodePoint(ptNodeParams, j,
+                            wordCodePoints[matchedCodePointCount + j])) {
+                *outAddedNewUnigram = true;
+                return reallocatePtNodeAndAddNewPtNodes(&ptNodeParams, j, unigramProperty,
+                        wordCodePoints.skip(matchedCodePointCount));
+            }
+        }
+        // All characters are matched.
+        if (wordCodePoints.size() == readingHelper->getTotalCodePointCount(ptNodeParams)) {
+            return setPtNodeProbability(&ptNodeParams, unigramProperty, outAddedNewUnigram);
+        }
+        if (!ptNodeParams.hasChildren()) {
+            *outAddedNewUnigram = true;
+            return createChildrenPtNodeArrayAndAChildPtNode(&ptNodeParams, unigramProperty,
+                    wordCodePoints.skip(readingHelper->getTotalCodePointCount(ptNodeParams)));
+        }
+        // Advance to the children nodes.
+        parentPos = ptNodeParams.getHeadPos();
+        readingHelper->readChildNode(ptNodeParams);
+    }
+    if (readingHelper->isError()) {
+        // The dictionary is invalid.
+        return false;
+    }
+    int pos = readingHelper->getPosOfLastForwardLinkField();
+    *outAddedNewUnigram = true;
+    return createAndInsertNodeIntoPtNodeArray(parentPos,
+            wordCodePoints.skip(readingHelper->getPrevTotalCodePointCount()), unigramProperty,
+            &pos);
+}
+
+bool DynamicPtUpdatingHelper::addNgramEntry(const PtNodePosArrayView prevWordsPtNodePos,
+        const int wordPos, const NgramProperty *const ngramProperty,
+        bool *const outAddedNewEntry) {
+    if (prevWordsPtNodePos.empty()) {
+        return false;
+    }
+    ASSERT(prevWordsPtNodePos.size() <= MAX_PREV_WORD_COUNT_FOR_N_GRAM);
+    int prevWordTerminalIds[MAX_PREV_WORD_COUNT_FOR_N_GRAM];
+    for (size_t i = 0; i < prevWordsPtNodePos.size(); ++i) {
+        prevWordTerminalIds[i] = mPtNodeReader->fetchPtNodeParamsInBufferFromPtNodePos(
+                prevWordsPtNodePos[i]).getTerminalId();
+    }
+    const WordIdArrayView prevWordIds(prevWordTerminalIds, prevWordsPtNodePos.size());
+    const int wordId =
+            mPtNodeReader->fetchPtNodeParamsInBufferFromPtNodePos(wordPos).getTerminalId();
+    return mPtNodeWriter->addNgramEntry(prevWordIds, wordId, ngramProperty, outAddedNewEntry);
+}
+
+bool DynamicPtUpdatingHelper::removeNgramEntry(const PtNodePosArrayView prevWordsPtNodePos,
+        const int wordPos) {
+    if (prevWordsPtNodePos.empty()) {
+        return false;
+    }
+    ASSERT(prevWordsPtNodePos.size() <= MAX_PREV_WORD_COUNT_FOR_N_GRAM);
+    int prevWordTerminalIds[MAX_PREV_WORD_COUNT_FOR_N_GRAM];
+    for (size_t i = 0; i < prevWordsPtNodePos.size(); ++i) {
+        prevWordTerminalIds[i] = mPtNodeReader->fetchPtNodeParamsInBufferFromPtNodePos(
+                prevWordsPtNodePos[i]).getTerminalId();
+    }
+    const WordIdArrayView prevWordIds(prevWordTerminalIds, prevWordsPtNodePos.size());
+    const int wordId =
+            mPtNodeReader->fetchPtNodeParamsInBufferFromPtNodePos(wordPos).getTerminalId();
+    return mPtNodeWriter->removeNgramEntry(prevWordIds, wordId);
+}
+
+bool DynamicPtUpdatingHelper::addShortcutTarget(const int wordPos,
+        const CodePointArrayView targetCodePoints, const int shortcutProbability) {
+    const PtNodeParams ptNodeParams(mPtNodeReader->fetchPtNodeParamsInBufferFromPtNodePos(wordPos));
+    return mPtNodeWriter->addShortcutTarget(&ptNodeParams, targetCodePoints.data(),
+            targetCodePoints.size(), shortcutProbability);
+}
+
+bool DynamicPtUpdatingHelper::createAndInsertNodeIntoPtNodeArray(const int parentPos,
+        const CodePointArrayView ptNodeCodePoints, const UnigramProperty *const unigramProperty,
+        int *const forwardLinkFieldPos) {
+    const int newPtNodeArrayPos = mBuffer->getTailPosition();
+    if (!DynamicPtWritingUtils::writeForwardLinkPositionAndAdvancePosition(mBuffer,
+            newPtNodeArrayPos, forwardLinkFieldPos)) {
+        return false;
+    }
+    return createNewPtNodeArrayWithAChildPtNode(parentPos, ptNodeCodePoints, unigramProperty);
+}
+
+bool DynamicPtUpdatingHelper::setPtNodeProbability(const PtNodeParams *const originalPtNodeParams,
+        const UnigramProperty *const unigramProperty, bool *const outAddedNewUnigram) {
+    if (originalPtNodeParams->isTerminal() && !originalPtNodeParams->isDeleted()) {
+        // Overwrites the probability.
+        *outAddedNewUnigram = false;
+        return mPtNodeWriter->updatePtNodeUnigramProperty(originalPtNodeParams, unigramProperty);
+    } else {
+        // Make the node terminal and write the probability.
+        *outAddedNewUnigram = true;
+        const int movedPos = mBuffer->getTailPosition();
+        int writingPos = movedPos;
+        const PtNodeParams ptNodeParamsToWrite(getUpdatedPtNodeParams(originalPtNodeParams,
+                unigramProperty->isNotAWord(), unigramProperty->isPossiblyOffensive(),
+                true /* isTerminal */, originalPtNodeParams->getParentPos(),
+                originalPtNodeParams->getCodePointArrayView(), unigramProperty->getProbability()));
+        if (!mPtNodeWriter->writeNewTerminalPtNodeAndAdvancePosition(&ptNodeParamsToWrite,
+                unigramProperty, &writingPos)) {
+            return false;
+        }
+        if (!mPtNodeWriter->markPtNodeAsMoved(originalPtNodeParams, movedPos, movedPos)) {
+            return false;
+        }
+    }
+    return true;
+}
+
+bool DynamicPtUpdatingHelper::createChildrenPtNodeArrayAndAChildPtNode(
+        const PtNodeParams *const parentPtNodeParams, const UnigramProperty *const unigramProperty,
+        const CodePointArrayView codePoints) {
+    const int newPtNodeArrayPos = mBuffer->getTailPosition();
+    if (!mPtNodeWriter->updateChildrenPosition(parentPtNodeParams, newPtNodeArrayPos)) {
+        return false;
+    }
+    return createNewPtNodeArrayWithAChildPtNode(parentPtNodeParams->getHeadPos(), codePoints,
+            unigramProperty);
+}
+
+bool DynamicPtUpdatingHelper::createNewPtNodeArrayWithAChildPtNode(
+        const int parentPtNodePos, const CodePointArrayView ptNodeCodePoints,
+        const UnigramProperty *const unigramProperty) {
+    int writingPos = mBuffer->getTailPosition();
+    if (!DynamicPtWritingUtils::writePtNodeArraySizeAndAdvancePosition(mBuffer,
+            1 /* arraySize */, &writingPos)) {
+        return false;
+    }
+    const PtNodeParams ptNodeParamsToWrite(getPtNodeParamsForNewPtNode(
+            unigramProperty->isNotAWord(), unigramProperty->isPossiblyOffensive(),
+            true /* isTerminal */, parentPtNodePos, ptNodeCodePoints,
+            unigramProperty->getProbability()));
+    if (!mPtNodeWriter->writeNewTerminalPtNodeAndAdvancePosition(&ptNodeParamsToWrite,
+            unigramProperty, &writingPos)) {
+        return false;
+    }
+    if (!DynamicPtWritingUtils::writeForwardLinkPositionAndAdvancePosition(mBuffer,
+            NOT_A_DICT_POS /* forwardLinkPos */, &writingPos)) {
+        return false;
+    }
+    return true;
+}
+
+// Returns whether the dictionary updating was succeeded or not.
+bool DynamicPtUpdatingHelper::reallocatePtNodeAndAddNewPtNodes(
+        const PtNodeParams *const reallocatingPtNodeParams, const size_t overlappingCodePointCount,
+        const UnigramProperty *const unigramProperty,
+        const CodePointArrayView newPtNodeCodePoints) {
+    // When addsExtraChild is true, split the reallocating PtNode and add new child.
+    // Reallocating PtNode: abcde, newNode: abcxy.
+    // abc (1st, not terminal) __ de (2nd)
+    //                         \_ xy (extra child, terminal)
+    // Otherwise, this method makes 1st part terminal and write information in unigramProperty.
+    // Reallocating PtNode: abcde, newNode: abc.
+    // abc (1st, terminal) __ de (2nd)
+    const bool addsExtraChild = newPtNodeCodePoints.size() > overlappingCodePointCount;
+    const int firstPartOfReallocatedPtNodePos = mBuffer->getTailPosition();
+    int writingPos = firstPartOfReallocatedPtNodePos;
+    // Write the 1st part of the reallocating node. The children position will be updated later
+    // with actual children position.
+    const CodePointArrayView firstPtNodeCodePoints =
+            reallocatingPtNodeParams->getCodePointArrayView().limit(overlappingCodePointCount);
+    if (addsExtraChild) {
+        const PtNodeParams ptNodeParamsToWrite(getPtNodeParamsForNewPtNode(
+                false /* isNotAWord */, false /* isPossiblyOffensive */, false /* isTerminal */,
+                reallocatingPtNodeParams->getParentPos(), firstPtNodeCodePoints,
+                NOT_A_PROBABILITY));
+        if (!mPtNodeWriter->writePtNodeAndAdvancePosition(&ptNodeParamsToWrite, &writingPos)) {
+            return false;
+        }
+    } else {
+        const PtNodeParams ptNodeParamsToWrite(getPtNodeParamsForNewPtNode(
+                unigramProperty->isNotAWord(), unigramProperty->isPossiblyOffensive(),
+                true /* isTerminal */, reallocatingPtNodeParams->getParentPos(),
+                firstPtNodeCodePoints, unigramProperty->getProbability()));
+        if (!mPtNodeWriter->writeNewTerminalPtNodeAndAdvancePosition(&ptNodeParamsToWrite,
+                unigramProperty, &writingPos)) {
+            return false;
+        }
+    }
+    const int actualChildrenPos = writingPos;
+    // Create new children PtNode array.
+    const size_t newPtNodeCount = addsExtraChild ? 2 : 1;
+    if (!DynamicPtWritingUtils::writePtNodeArraySizeAndAdvancePosition(mBuffer,
+            newPtNodeCount, &writingPos)) {
+        return false;
+    }
+    // Write the 2nd part of the reallocating node.
+    const int secondPartOfReallocatedPtNodePos = writingPos;
+    const PtNodeParams childPartPtNodeParams(getUpdatedPtNodeParams(reallocatingPtNodeParams,
+            reallocatingPtNodeParams->isNotAWord(), reallocatingPtNodeParams->isPossiblyOffensive(),
+            reallocatingPtNodeParams->isTerminal(), firstPartOfReallocatedPtNodePos,
+            reallocatingPtNodeParams->getCodePointArrayView().skip(overlappingCodePointCount),
+            reallocatingPtNodeParams->getProbability()));
+    if (!mPtNodeWriter->writePtNodeAndAdvancePosition(&childPartPtNodeParams, &writingPos)) {
+        return false;
+    }
+    if (addsExtraChild) {
+        const PtNodeParams extraChildPtNodeParams(getPtNodeParamsForNewPtNode(
+                unigramProperty->isNotAWord(), unigramProperty->isPossiblyOffensive(),
+                true /* isTerminal */, firstPartOfReallocatedPtNodePos,
+                newPtNodeCodePoints.skip(overlappingCodePointCount),
+                unigramProperty->getProbability()));
+        if (!mPtNodeWriter->writeNewTerminalPtNodeAndAdvancePosition(&extraChildPtNodeParams,
+                unigramProperty, &writingPos)) {
+            return false;
+        }
+    }
+    if (!DynamicPtWritingUtils::writeForwardLinkPositionAndAdvancePosition(mBuffer,
+            NOT_A_DICT_POS /* forwardLinkPos */, &writingPos)) {
+        return false;
+    }
+    // Update original reallocating PtNode as moved.
+    if (!mPtNodeWriter->markPtNodeAsMoved(reallocatingPtNodeParams, firstPartOfReallocatedPtNodePos,
+            secondPartOfReallocatedPtNodePos)) {
+        return false;
+    }
+    // Load node info. Information of the 1st part will be fetched.
+    const PtNodeParams ptNodeParams(
+            mPtNodeReader->fetchPtNodeParamsInBufferFromPtNodePos(firstPartOfReallocatedPtNodePos));
+    // Update children position.
+    return mPtNodeWriter->updateChildrenPosition(&ptNodeParams, actualChildrenPos);
+}
+
+const PtNodeParams DynamicPtUpdatingHelper::getUpdatedPtNodeParams(
+        const PtNodeParams *const originalPtNodeParams, const bool isNotAWord,
+        const bool isPossiblyOffensive, const bool isTerminal, const int parentPos,
+        const CodePointArrayView codePoints, const int probability) const {
+    const PatriciaTrieReadingUtils::NodeFlags flags = PatriciaTrieReadingUtils::createAndGetFlags(
+            isPossiblyOffensive, isNotAWord, isTerminal, false /* hasShortcutTargets */,
+            false /* hasBigrams */, codePoints.size() > 1u /* hasMultipleChars */,
+            CHILDREN_POSITION_FIELD_SIZE);
+    return PtNodeParams(originalPtNodeParams, flags, parentPos, codePoints, probability);
+}
+
+const PtNodeParams DynamicPtUpdatingHelper::getPtNodeParamsForNewPtNode(const bool isNotAWord,
+        const bool isPossiblyOffensive, const bool isTerminal, const int parentPos,
+        const CodePointArrayView codePoints, const int probability) const {
+    const PatriciaTrieReadingUtils::NodeFlags flags = PatriciaTrieReadingUtils::createAndGetFlags(
+            isPossiblyOffensive, isNotAWord, isTerminal, false /* hasShortcutTargets */,
+            false /* hasBigrams */, codePoints.size() > 1u /* hasMultipleChars */,
+            CHILDREN_POSITION_FIELD_SIZE);
+    return PtNodeParams(flags, parentPos, codePoints, probability);
+}
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/pt_common/dynamic_pt_updating_helper.h b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_updating_helper.h
new file mode 100644
index 0000000..e8cf98c
--- /dev/null
+++ b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_updating_helper.h
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_DYNAMIC_PT_UPDATING_HELPER_H
+#define LATINIME_DYNAMIC_PT_UPDATING_HELPER_H
+
+#include "defines.h"
+#include "dictionary/structure/pt_common/pt_node_params.h"
+#include "utils/int_array_view.h"
+
+namespace latinime {
+
+class NgramProperty;
+class BufferWithExtendableBuffer;
+class DynamicPtReadingHelper;
+class PtNodeReader;
+class PtNodeWriter;
+class UnigramProperty;
+
+class DynamicPtUpdatingHelper {
+ public:
+    DynamicPtUpdatingHelper(BufferWithExtendableBuffer *const buffer,
+            const PtNodeReader *const ptNodeReader, PtNodeWriter *const ptNodeWriter)
+            : mBuffer(buffer), mPtNodeReader(ptNodeReader), mPtNodeWriter(ptNodeWriter) {}
+
+    ~DynamicPtUpdatingHelper() {}
+
+    // Add a word to the dictionary. If the word already exists, update the probability.
+    bool addUnigramWord(DynamicPtReadingHelper *const readingHelper,
+            const CodePointArrayView wordCodePoints, const UnigramProperty *const unigramProperty,
+            bool *const outAddedNewUnigram);
+
+    // TODO: Remove after stopping supporting v402.
+    // Add an n-gram entry.
+    bool addNgramEntry(const PtNodePosArrayView prevWordsPtNodePos, const int wordPos,
+            const NgramProperty *const ngramProperty, bool *const outAddedNewEntry);
+
+    // TODO: Remove after stopping supporting v402.
+    // Remove an n-gram entry.
+    bool removeNgramEntry(const PtNodePosArrayView prevWordsPtNodePos, const int wordPos);
+
+    // Add a shortcut target.
+    bool addShortcutTarget(const int wordPos, const CodePointArrayView targetCodePoints,
+            const int shortcutProbability);
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(DynamicPtUpdatingHelper);
+
+    static const int CHILDREN_POSITION_FIELD_SIZE;
+
+    BufferWithExtendableBuffer *const mBuffer;
+    const PtNodeReader *const mPtNodeReader;
+    PtNodeWriter *const mPtNodeWriter;
+
+    bool createAndInsertNodeIntoPtNodeArray(const int parentPos,
+            const CodePointArrayView ptNodeCodePoints, const UnigramProperty *const unigramProperty,
+            int *const forwardLinkFieldPos);
+
+    bool setPtNodeProbability(const PtNodeParams *const originalPtNodeParams,
+            const UnigramProperty *const unigramProperty, bool *const outAddedNewUnigram);
+
+    bool createChildrenPtNodeArrayAndAChildPtNode(const PtNodeParams *const parentPtNodeParams,
+            const UnigramProperty *const unigramProperty,
+            const CodePointArrayView remainingCodePoints);
+
+    bool createNewPtNodeArrayWithAChildPtNode(const int parentPos,
+            const CodePointArrayView ptNodeCodePoints,
+            const UnigramProperty *const unigramProperty);
+
+    bool reallocatePtNodeAndAddNewPtNodes(const PtNodeParams *const reallocatingPtNodeParams,
+            const size_t overlappingCodePointCount, const UnigramProperty *const unigramProperty,
+            const CodePointArrayView newPtNodeCodePoints);
+
+    const PtNodeParams getUpdatedPtNodeParams(const PtNodeParams *const originalPtNodeParams,
+            const bool isNotAWord, const bool isPossiblyOffensive, const bool isTerminal,
+            const int parentPos, const CodePointArrayView codePoints, const int probability) const;
+
+    const PtNodeParams getPtNodeParamsForNewPtNode(const bool isNotAWord,
+            const bool isPossiblyOffensive, const bool isTerminal, const int parentPos,
+            const CodePointArrayView codePoints, const int probability) const;
+};
+} // namespace latinime
+#endif /* LATINIME_DYNAMIC_PATRICIA_TRIE_UPDATING_HELPER_H */
diff --git a/native/jni/src/dictionary/structure/pt_common/dynamic_pt_writing_utils.cpp b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_writing_utils.cpp
new file mode 100644
index 0000000..ea760a5
--- /dev/null
+++ b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_writing_utils.cpp
@@ -0,0 +1,132 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
+
+#include <cstddef>
+#include <cstdint>
+#include <cstdlib>
+
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+
+namespace latinime {
+
+const size_t DynamicPtWritingUtils::MAX_PTNODE_ARRAY_SIZE_TO_USE_SMALL_SIZE_FIELD = 0x7F;
+const size_t DynamicPtWritingUtils::MAX_PTNODE_ARRAY_SIZE = 0x7FFF;
+const int DynamicPtWritingUtils::SMALL_PTNODE_ARRAY_SIZE_FIELD_SIZE = 1;
+const int DynamicPtWritingUtils::LARGE_PTNODE_ARRAY_SIZE_FIELD_SIZE = 2;
+const int DynamicPtWritingUtils::LARGE_PTNODE_ARRAY_SIZE_FIELD_SIZE_FLAG = 0x8000;
+const int DynamicPtWritingUtils::DICT_OFFSET_FIELD_SIZE = 3;
+const int DynamicPtWritingUtils::MAX_DICT_OFFSET_VALUE = 0x7FFFFF;
+const int DynamicPtWritingUtils::MIN_DICT_OFFSET_VALUE = -0x7FFFFF;
+const int DynamicPtWritingUtils::DICT_OFFSET_NEGATIVE_FLAG = 0x800000;
+const int DynamicPtWritingUtils::NODE_FLAG_FIELD_SIZE = 1;
+
+/* static */ bool DynamicPtWritingUtils::writeEmptyDictionary(
+        BufferWithExtendableBuffer *const buffer, const int rootPos) {
+    int writingPos = rootPos;
+    if (!writePtNodeArraySizeAndAdvancePosition(buffer, 0 /* arraySize */, &writingPos)) {
+        return false;
+    }
+    return writeForwardLinkPositionAndAdvancePosition(buffer, NOT_A_DICT_POS /* forwardLinkPos */,
+            &writingPos);
+}
+
+/* static */ bool DynamicPtWritingUtils::writeForwardLinkPositionAndAdvancePosition(
+        BufferWithExtendableBuffer *const buffer, const int forwardLinkPos,
+        int *const forwardLinkFieldPos) {
+    return writeDictOffset(buffer, forwardLinkPos, (*forwardLinkFieldPos), forwardLinkFieldPos);
+}
+
+/* static */ bool DynamicPtWritingUtils::writePtNodeArraySizeAndAdvancePosition(
+        BufferWithExtendableBuffer *const buffer, const size_t arraySize,
+        int *const arraySizeFieldPos) {
+    // Currently, all array size field to be created has LARGE_PTNODE_ARRAY_SIZE_FIELD_SIZE to
+    // simplify updating process.
+    // TODO: Use SMALL_PTNODE_ARRAY_SIZE_FIELD_SIZE for small arrays.
+    /*if (arraySize <= MAX_PTNODE_ARRAY_SIZE_TO_USE_SMALL_SIZE_FIELD) {
+        return buffer->writeUintAndAdvancePosition(arraySize, SMALL_PTNODE_ARRAY_SIZE_FIELD_SIZE,
+                arraySizeFieldPos);
+    } else */
+    if (arraySize <= MAX_PTNODE_ARRAY_SIZE) {
+        uint32_t data = arraySize | LARGE_PTNODE_ARRAY_SIZE_FIELD_SIZE_FLAG;
+        return buffer->writeUintAndAdvancePosition(data, LARGE_PTNODE_ARRAY_SIZE_FIELD_SIZE,
+                arraySizeFieldPos);
+    } else {
+        AKLOGI("PtNode array size cannot be written because arraySize is too large: %zd",
+                arraySize);
+        ASSERT(false);
+        return false;
+    }
+}
+
+/* static */ bool DynamicPtWritingUtils::writeFlagsAndAdvancePosition(
+        BufferWithExtendableBuffer *const buffer,
+        const DynamicPtReadingUtils::NodeFlags nodeFlags, int *const nodeFlagsFieldPos) {
+    return buffer->writeUintAndAdvancePosition(nodeFlags, NODE_FLAG_FIELD_SIZE, nodeFlagsFieldPos);
+}
+
+// Note that parentOffset is offset from node's head position.
+/* static */ bool DynamicPtWritingUtils::writeParentPosOffsetAndAdvancePosition(
+        BufferWithExtendableBuffer *const buffer, const int parentPos, const int basePos,
+        int *const parentPosFieldPos) {
+    return writeDictOffset(buffer, parentPos, basePos, parentPosFieldPos);
+}
+
+/* static */ bool DynamicPtWritingUtils::writeCodePointsAndAdvancePosition(
+        BufferWithExtendableBuffer *const buffer, const int *const codePoints,
+        const int codePointCount, int *const codePointFieldPos) {
+    if (codePointCount <= 0) {
+        AKLOGI("code points cannot be written because codePointCount is invalid: %d",
+                codePointCount);
+        ASSERT(false);
+        return false;
+    }
+    const bool hasMultipleCodePoints = codePointCount > 1;
+    return buffer->writeCodePointsAndAdvancePosition(codePoints, codePointCount,
+            hasMultipleCodePoints, codePointFieldPos);
+}
+
+/* static */ bool DynamicPtWritingUtils::writeChildrenPositionAndAdvancePosition(
+        BufferWithExtendableBuffer *const buffer, const int childrenPosition,
+        int *const childrenPositionFieldPos) {
+    return writeDictOffset(buffer, childrenPosition, (*childrenPositionFieldPos),
+            childrenPositionFieldPos);
+}
+
+/* static */ bool DynamicPtWritingUtils::writeDictOffset(BufferWithExtendableBuffer *const buffer,
+        const int targetPos, const int basePos, int *const offsetFieldPos) {
+    int offset = targetPos - basePos;
+    if (targetPos == NOT_A_DICT_POS) {
+        offset = DynamicPtReadingUtils::DICT_OFFSET_INVALID;
+    } else if (offset == 0) {
+        offset = DynamicPtReadingUtils::DICT_OFFSET_ZERO_OFFSET;
+    }
+    if (offset > MAX_DICT_OFFSET_VALUE || offset < MIN_DICT_OFFSET_VALUE) {
+        AKLOGI("offset cannot be written because the offset is too large or too small: %d",
+                offset);
+        ASSERT(false);
+        return false;
+    }
+    uint32_t data = 0;
+    if (offset >= 0) {
+        data = offset;
+    } else {
+        data = abs(offset) | DICT_OFFSET_NEGATIVE_FLAG;
+    }
+    return buffer->writeUintAndAdvancePosition(data, DICT_OFFSET_FIELD_SIZE, offsetFieldPos);
+}
+}
diff --git a/native/jni/src/dictionary/structure/pt_common/dynamic_pt_writing_utils.h b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_writing_utils.h
new file mode 100644
index 0000000..b4817af
--- /dev/null
+++ b/native/jni/src/dictionary/structure/pt_common/dynamic_pt_writing_utils.h
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_DYNAMIC_PT_WRITING_UTILS_H
+#define LATINIME_DYNAMIC_PT_WRITING_UTILS_H
+
+#include <cstddef>
+
+#include "defines.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
+
+namespace latinime {
+
+class BufferWithExtendableBuffer;
+
+class DynamicPtWritingUtils {
+ public:
+    static const int NODE_FLAG_FIELD_SIZE;
+
+    static bool writeEmptyDictionary(BufferWithExtendableBuffer *const buffer, const int rootPos);
+
+    static bool writeForwardLinkPositionAndAdvancePosition(
+            BufferWithExtendableBuffer *const buffer, const int forwardLinkPos,
+            int *const forwardLinkFieldPos);
+
+    static bool writePtNodeArraySizeAndAdvancePosition(BufferWithExtendableBuffer *const buffer,
+            const size_t arraySize, int *const arraySizeFieldPos);
+
+    static bool writeFlags(BufferWithExtendableBuffer *const buffer,
+            const DynamicPtReadingUtils::NodeFlags nodeFlags,
+            const int nodeFlagsFieldPos) {
+        int writingPos = nodeFlagsFieldPos;
+        return writeFlagsAndAdvancePosition(buffer, nodeFlags, &writingPos);
+    }
+
+    static bool writeFlagsAndAdvancePosition(BufferWithExtendableBuffer *const buffer,
+            const DynamicPtReadingUtils::NodeFlags nodeFlags,
+            int *const nodeFlagsFieldPos);
+
+    static bool writeParentPosOffsetAndAdvancePosition(BufferWithExtendableBuffer *const buffer,
+            const int parentPosition, const int basePos, int *const parentPosFieldPos);
+
+    static bool writeCodePointsAndAdvancePosition(BufferWithExtendableBuffer *const buffer,
+            const int *const codePoints, const int codePointCount, int *const codePointFieldPos);
+
+    static bool writeChildrenPositionAndAdvancePosition(BufferWithExtendableBuffer *const buffer,
+            const int childrenPosition, int *const childrenPositionFieldPos);
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(DynamicPtWritingUtils);
+
+    static const size_t MAX_PTNODE_ARRAY_SIZE_TO_USE_SMALL_SIZE_FIELD;
+    static const size_t MAX_PTNODE_ARRAY_SIZE;
+    static const int SMALL_PTNODE_ARRAY_SIZE_FIELD_SIZE;
+    static const int LARGE_PTNODE_ARRAY_SIZE_FIELD_SIZE;
+    static const int LARGE_PTNODE_ARRAY_SIZE_FIELD_SIZE_FLAG;
+    static const int DICT_OFFSET_FIELD_SIZE;
+    static const int MAX_DICT_OFFSET_VALUE;
+    static const int MIN_DICT_OFFSET_VALUE;
+    static const int DICT_OFFSET_NEGATIVE_FLAG;
+
+    static bool writeDictOffset(BufferWithExtendableBuffer *const buffer, const int targetPos,
+            const int basePos, int *const offsetFieldPos);
+};
+} // namespace latinime
+#endif /* LATINIME_DYNAMIC_PT_WRITING_UTILS_H */
diff --git a/native/jni/src/dictionary/structure/pt_common/patricia_trie_reading_utils.cpp b/native/jni/src/dictionary/structure/pt_common/patricia_trie_reading_utils.cpp
new file mode 100644
index 0000000..e2807c4
--- /dev/null
+++ b/native/jni/src/dictionary/structure/pt_common/patricia_trie_reading_utils.cpp
@@ -0,0 +1,164 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/pt_common/patricia_trie_reading_utils.h"
+
+#include "defines.h"
+#include "dictionary/interface/dictionary_bigrams_structure_policy.h"
+#include "dictionary/interface/dictionary_shortcuts_structure_policy.h"
+#include "dictionary/utils/byte_array_utils.h"
+
+namespace latinime {
+
+typedef PatriciaTrieReadingUtils PtReadingUtils;
+
+const PtReadingUtils::NodeFlags PtReadingUtils::MASK_CHILDREN_POSITION_TYPE = 0xC0;
+const PtReadingUtils::NodeFlags PtReadingUtils::FLAG_CHILDREN_POSITION_TYPE_NOPOSITION = 0x00;
+const PtReadingUtils::NodeFlags PtReadingUtils::FLAG_CHILDREN_POSITION_TYPE_ONEBYTE = 0x40;
+const PtReadingUtils::NodeFlags PtReadingUtils::FLAG_CHILDREN_POSITION_TYPE_TWOBYTES = 0x80;
+const PtReadingUtils::NodeFlags PtReadingUtils::FLAG_CHILDREN_POSITION_TYPE_THREEBYTES = 0xC0;
+
+// Flag for single/multiple char group
+const PtReadingUtils::NodeFlags PtReadingUtils::FLAG_HAS_MULTIPLE_CHARS = 0x20;
+// Flag for terminal PtNodes
+const PtReadingUtils::NodeFlags PtReadingUtils::FLAG_IS_TERMINAL = 0x10;
+// Flag for shortcut targets presence
+const PtReadingUtils::NodeFlags PtReadingUtils::FLAG_HAS_SHORTCUT_TARGETS = 0x08;
+// Flag for bigram presence
+const PtReadingUtils::NodeFlags PtReadingUtils::FLAG_HAS_BIGRAMS = 0x04;
+// Flag for non-words (typically, shortcut only entries)
+const PtReadingUtils::NodeFlags PtReadingUtils::FLAG_IS_NOT_A_WORD = 0x02;
+// Flag for possibly offensive words
+const PtReadingUtils::NodeFlags PtReadingUtils::FLAG_IS_POSSIBLY_OFFENSIVE = 0x01;
+
+/* static */ int PtReadingUtils::getPtNodeArraySizeAndAdvancePosition(
+        const uint8_t *const buffer, int *const pos) {
+    const uint8_t firstByte = ByteArrayUtils::readUint8AndAdvancePosition(buffer, pos);
+    if (firstByte < 0x80) {
+        return firstByte;
+    } else {
+        return ((firstByte & 0x7F) << 8) ^ ByteArrayUtils::readUint8AndAdvancePosition(
+                buffer, pos);
+    }
+}
+
+/* static */ PtReadingUtils::NodeFlags PtReadingUtils::getFlagsAndAdvancePosition(
+        const uint8_t *const buffer, int *const pos) {
+    return ByteArrayUtils::readUint8AndAdvancePosition(buffer, pos);
+}
+
+/* static */ int PtReadingUtils::getCodePointAndAdvancePosition(const uint8_t *const buffer,
+        const int *const codePointTable, int *const pos) {
+    return ByteArrayUtils::readCodePointAndAdvancePosition(buffer, codePointTable, pos);
+}
+
+// Returns the number of read characters.
+/* static */ int PtReadingUtils::getCharsAndAdvancePosition(const uint8_t *const buffer,
+        const NodeFlags flags, const int maxLength, const int *const codePointTable,
+        int *const outBuffer, int *const pos) {
+    int length = 0;
+    if (hasMultipleChars(flags)) {
+        length = ByteArrayUtils::readStringAndAdvancePosition(buffer, maxLength, codePointTable,
+                outBuffer, pos);
+    } else {
+        const int codePoint = getCodePointAndAdvancePosition(buffer, codePointTable, pos);
+        if (codePoint == NOT_A_CODE_POINT) {
+            // CAVEAT: codePoint == NOT_A_CODE_POINT means the code point is
+            // CHARACTER_ARRAY_TERMINATOR. The code point must not be CHARACTER_ARRAY_TERMINATOR
+            // when the PtNode has a single code point.
+            length = 0;
+            AKLOGE("codePoint is NOT_A_CODE_POINT. pos: %d, codePoint: 0x%x, buffer[pos - 1]: 0x%x",
+                    *pos - 1, codePoint, buffer[*pos - 1]);
+            ASSERT(false);
+        } else if (maxLength > 0) {
+            outBuffer[0] = codePoint;
+            length = 1;
+        }
+    }
+    return length;
+}
+
+// Returns the number of skipped characters.
+/* static */ int PtReadingUtils::skipCharacters(const uint8_t *const buffer, const NodeFlags flags,
+        const int maxLength, const int *const codePointTable, int *const pos) {
+    if (hasMultipleChars(flags)) {
+        return ByteArrayUtils::advancePositionToBehindString(buffer, maxLength, pos);
+    } else {
+        if (maxLength > 0) {
+            getCodePointAndAdvancePosition(buffer, codePointTable, pos);
+            return 1;
+        } else {
+            return 0;
+        }
+    }
+}
+
+/* static */ int PtReadingUtils::readProbabilityAndAdvancePosition(const uint8_t *const buffer,
+        int *const pos) {
+    return ByteArrayUtils::readUint8AndAdvancePosition(buffer, pos);
+}
+
+/* static */ int PtReadingUtils::readChildrenPositionAndAdvancePosition(
+        const uint8_t *const buffer, const NodeFlags flags, int *const pos) {
+    const int base = *pos;
+    int offset = 0;
+    switch (MASK_CHILDREN_POSITION_TYPE & flags) {
+        case FLAG_CHILDREN_POSITION_TYPE_ONEBYTE:
+            offset = ByteArrayUtils::readUint8AndAdvancePosition(buffer, pos);
+            break;
+        case FLAG_CHILDREN_POSITION_TYPE_TWOBYTES:
+            offset = ByteArrayUtils::readUint16AndAdvancePosition(buffer, pos);
+            break;
+        case FLAG_CHILDREN_POSITION_TYPE_THREEBYTES:
+            offset = ByteArrayUtils::readUint24AndAdvancePosition(buffer, pos);
+            break;
+        default:
+            // If we come here, it means we asked for the children of a word with
+            // no children.
+            return NOT_A_DICT_POS;
+    }
+    return base + offset;
+}
+
+/* static */ void PtReadingUtils::readPtNodeInfo(const uint8_t *const dictBuf, const int ptNodePos,
+        const DictionaryShortcutsStructurePolicy *const shortcutPolicy,
+        const DictionaryBigramsStructurePolicy *const bigramPolicy, const int *const codePointTable,
+        NodeFlags *const outFlags, int *const outCodePointCount, int *const outCodePoint,
+        int *const outProbability, int *const outChildrenPos, int *const outShortcutPos,
+        int *const outBigramPos, int *const outSiblingPos) {
+    int readingPos = ptNodePos;
+    const NodeFlags flags = getFlagsAndAdvancePosition(dictBuf, &readingPos);
+    *outFlags = flags;
+    *outCodePointCount = getCharsAndAdvancePosition(
+            dictBuf, flags, MAX_WORD_LENGTH, codePointTable, outCodePoint, &readingPos);
+    *outProbability = isTerminal(flags) ?
+            readProbabilityAndAdvancePosition(dictBuf, &readingPos) : NOT_A_PROBABILITY;
+    *outChildrenPos = hasChildrenInFlags(flags) ?
+            readChildrenPositionAndAdvancePosition(dictBuf, flags, &readingPos) : NOT_A_DICT_POS;
+    *outShortcutPos = NOT_A_DICT_POS;
+    if (hasShortcutTargets(flags)) {
+        *outShortcutPos = readingPos;
+        shortcutPolicy->skipAllShortcuts(&readingPos);
+    }
+    *outBigramPos = NOT_A_DICT_POS;
+    if (hasBigrams(flags)) {
+        *outBigramPos = readingPos;
+        bigramPolicy->skipAllBigrams(&readingPos);
+    }
+    *outSiblingPos = readingPos;
+}
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/pt_common/patricia_trie_reading_utils.h b/native/jni/src/dictionary/structure/pt_common/patricia_trie_reading_utils.h
new file mode 100644
index 0000000..6a2bf5d
--- /dev/null
+++ b/native/jni/src/dictionary/structure/pt_common/patricia_trie_reading_utils.h
@@ -0,0 +1,133 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_PATRICIA_TRIE_READING_UTILS_H
+#define LATINIME_PATRICIA_TRIE_READING_UTILS_H
+
+#include <cstdint>
+
+#include "defines.h"
+
+namespace latinime {
+
+class DictionaryShortcutsStructurePolicy;
+class DictionaryBigramsStructurePolicy;
+
+class PatriciaTrieReadingUtils {
+ public:
+    typedef uint8_t NodeFlags;
+
+    static int getPtNodeArraySizeAndAdvancePosition(const uint8_t *const buffer, int *const pos);
+
+    static NodeFlags getFlagsAndAdvancePosition(const uint8_t *const buffer, int *const pos);
+
+    static int getCodePointAndAdvancePosition(const uint8_t *const buffer,
+            const int *const codePointTable, int *const pos);
+
+    // Returns the number of read characters.
+    static int getCharsAndAdvancePosition(const uint8_t *const buffer, const NodeFlags flags,
+            const int maxLength, const int *const codePointTable, int *const outBuffer,
+            int *const pos);
+
+    // Returns the number of skipped characters.
+    static int skipCharacters(const uint8_t *const buffer, const NodeFlags flags,
+            const int maxLength, const int *const codePointTable, int *const pos);
+
+    static int readProbabilityAndAdvancePosition(const uint8_t *const buffer, int *const pos);
+
+    static int readChildrenPositionAndAdvancePosition(const uint8_t *const buffer,
+            const NodeFlags flags, int *const pos);
+
+    /**
+     * Node Flags
+     */
+    static AK_FORCE_INLINE bool isPossiblyOffensive(const NodeFlags flags) {
+        return (flags & FLAG_IS_POSSIBLY_OFFENSIVE) != 0;
+    }
+
+    static AK_FORCE_INLINE bool isNotAWord(const NodeFlags flags) {
+        return (flags & FLAG_IS_NOT_A_WORD) != 0;
+    }
+
+    static AK_FORCE_INLINE bool isTerminal(const NodeFlags flags) {
+        return (flags & FLAG_IS_TERMINAL) != 0;
+    }
+
+    static AK_FORCE_INLINE bool hasShortcutTargets(const NodeFlags flags) {
+        return (flags & FLAG_HAS_SHORTCUT_TARGETS) != 0;
+    }
+
+    static AK_FORCE_INLINE bool hasBigrams(const NodeFlags flags) {
+        return (flags & FLAG_HAS_BIGRAMS) != 0;
+    }
+
+    static AK_FORCE_INLINE bool hasMultipleChars(const NodeFlags flags) {
+        return (flags & FLAG_HAS_MULTIPLE_CHARS) != 0;
+    }
+
+    static AK_FORCE_INLINE bool hasChildrenInFlags(const NodeFlags flags) {
+        return FLAG_CHILDREN_POSITION_TYPE_NOPOSITION != (MASK_CHILDREN_POSITION_TYPE & flags);
+    }
+
+    static AK_FORCE_INLINE NodeFlags createAndGetFlags(const bool isPossiblyOffensive,
+            const bool isNotAWord, const bool isTerminal, const bool hasShortcutTargets,
+            const bool hasBigrams, const bool hasMultipleChars,
+            const int childrenPositionFieldSize) {
+        NodeFlags nodeFlags = 0;
+        nodeFlags = isPossiblyOffensive ? (nodeFlags | FLAG_IS_POSSIBLY_OFFENSIVE) : nodeFlags;
+        nodeFlags = isNotAWord ? (nodeFlags | FLAG_IS_NOT_A_WORD) : nodeFlags;
+        nodeFlags = isTerminal ? (nodeFlags | FLAG_IS_TERMINAL) : nodeFlags;
+        nodeFlags = hasShortcutTargets ? (nodeFlags | FLAG_HAS_SHORTCUT_TARGETS) : nodeFlags;
+        nodeFlags = hasBigrams ? (nodeFlags | FLAG_HAS_BIGRAMS) : nodeFlags;
+        nodeFlags = hasMultipleChars ? (nodeFlags | FLAG_HAS_MULTIPLE_CHARS) : nodeFlags;
+        if (childrenPositionFieldSize == 1) {
+            nodeFlags |= FLAG_CHILDREN_POSITION_TYPE_ONEBYTE;
+        } else if (childrenPositionFieldSize == 2) {
+            nodeFlags |= FLAG_CHILDREN_POSITION_TYPE_TWOBYTES;
+        } else if (childrenPositionFieldSize == 3) {
+            nodeFlags |= FLAG_CHILDREN_POSITION_TYPE_THREEBYTES;
+        } else {
+            nodeFlags |= FLAG_CHILDREN_POSITION_TYPE_NOPOSITION;
+        }
+        return nodeFlags;
+    }
+
+    static void readPtNodeInfo(const uint8_t *const dictBuf, const int ptNodePos,
+            const DictionaryShortcutsStructurePolicy *const shortcutPolicy,
+            const DictionaryBigramsStructurePolicy *const bigramPolicy,
+            const int *const codePointTable, NodeFlags *const outFlags,
+            int *const outCodePointCount, int *const outCodePoint, int *const outProbability,
+            int *const outChildrenPos, int *const outShortcutPos, int *const outBigramPos,
+            int *const outSiblingPos);
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(PatriciaTrieReadingUtils);
+
+    static const NodeFlags MASK_CHILDREN_POSITION_TYPE;
+    static const NodeFlags FLAG_CHILDREN_POSITION_TYPE_NOPOSITION;
+    static const NodeFlags FLAG_CHILDREN_POSITION_TYPE_ONEBYTE;
+    static const NodeFlags FLAG_CHILDREN_POSITION_TYPE_TWOBYTES;
+    static const NodeFlags FLAG_CHILDREN_POSITION_TYPE_THREEBYTES;
+
+    static const NodeFlags FLAG_HAS_MULTIPLE_CHARS;
+    static const NodeFlags FLAG_IS_TERMINAL;
+    static const NodeFlags FLAG_HAS_SHORTCUT_TARGETS;
+    static const NodeFlags FLAG_HAS_BIGRAMS;
+    static const NodeFlags FLAG_IS_NOT_A_WORD;
+    static const NodeFlags FLAG_IS_POSSIBLY_OFFENSIVE;
+};
+} // namespace latinime
+#endif /* LATINIME_PATRICIA_TRIE_NODE_READING_UTILS_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_array_reader.h b/native/jni/src/dictionary/structure/pt_common/pt_node_array_reader.h
similarity index 100%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_array_reader.h
rename to native/jni/src/dictionary/structure/pt_common/pt_node_array_reader.h
diff --git a/native/jni/src/dictionary/structure/pt_common/pt_node_params.h b/native/jni/src/dictionary/structure/pt_common/pt_node_params.h
new file mode 100644
index 0000000..905deb1
--- /dev/null
+++ b/native/jni/src/dictionary/structure/pt_common/pt_node_params.h
@@ -0,0 +1,262 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_PT_NODE_PARAMS_H
+#define LATINIME_PT_NODE_PARAMS_H
+
+#include <cstring>
+
+#include "defines.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
+#include "dictionary/structure/pt_common/patricia_trie_reading_utils.h"
+#include "dictionary/structure/v4/ver4_dict_constants.h"
+#include "utils/char_utils.h"
+#include "utils/int_array_view.h"
+
+namespace latinime {
+
+// This class has information of a PtNode. This class is immutable.
+class PtNodeParams {
+ public:
+    // Invalid PtNode.
+    PtNodeParams() : mHeadPos(NOT_A_DICT_POS), mFlags(0), mHasMovedFlag(false),
+            mParentPos(NOT_A_DICT_POS), mCodePointCount(0), mCodePoints(),
+            mTerminalIdFieldPos(NOT_A_DICT_POS), mTerminalId(Ver4DictConstants::NOT_A_TERMINAL_ID),
+            mProbabilityFieldPos(NOT_A_DICT_POS), mProbability(NOT_A_PROBABILITY),
+            mChildrenPosFieldPos(NOT_A_DICT_POS), mChildrenPos(NOT_A_DICT_POS),
+            mBigramLinkedNodePos(NOT_A_DICT_POS), mShortcutPos(NOT_A_DICT_POS),
+            mBigramPos(NOT_A_DICT_POS), mSiblingPos(NOT_A_DICT_POS) {}
+
+    PtNodeParams(const PtNodeParams& ptNodeParams)
+            : mHeadPos(ptNodeParams.mHeadPos), mFlags(ptNodeParams.mFlags),
+              mHasMovedFlag(ptNodeParams.mHasMovedFlag), mParentPos(ptNodeParams.mParentPos),
+              mCodePointCount(ptNodeParams.mCodePointCount), mCodePoints(),
+              mTerminalIdFieldPos(ptNodeParams.mTerminalIdFieldPos),
+              mTerminalId(ptNodeParams.mTerminalId),
+              mProbabilityFieldPos(ptNodeParams.mProbabilityFieldPos),
+              mProbability(ptNodeParams.mProbability),
+              mChildrenPosFieldPos(ptNodeParams.mChildrenPosFieldPos),
+              mChildrenPos(ptNodeParams.mChildrenPos),
+              mBigramLinkedNodePos(ptNodeParams.mBigramLinkedNodePos),
+              mShortcutPos(ptNodeParams.mShortcutPos), mBigramPos(ptNodeParams.mBigramPos),
+              mSiblingPos(ptNodeParams.mSiblingPos) {
+        memcpy(mCodePoints, ptNodeParams.getCodePoints(), sizeof(int) * mCodePointCount);
+    }
+
+    // PtNode read from version 2 dictionary.
+    PtNodeParams(const int headPos, const PatriciaTrieReadingUtils::NodeFlags flags,
+            const int codePointCount, const int *const codePoints, const int probability,
+            const int childrenPos, const int shortcutPos, const int bigramPos,
+            const int siblingPos)
+            : mHeadPos(headPos), mFlags(flags), mHasMovedFlag(false), mParentPos(NOT_A_DICT_POS),
+              mCodePointCount(codePointCount), mCodePoints(), mTerminalIdFieldPos(NOT_A_DICT_POS),
+              mTerminalId(Ver4DictConstants::NOT_A_TERMINAL_ID),
+              mProbabilityFieldPos(NOT_A_DICT_POS), mProbability(probability),
+              mChildrenPosFieldPos(NOT_A_DICT_POS), mChildrenPos(childrenPos),
+              mBigramLinkedNodePos(NOT_A_DICT_POS), mShortcutPos(shortcutPos),
+              mBigramPos(bigramPos), mSiblingPos(siblingPos) {
+        memcpy(mCodePoints, codePoints, sizeof(int) * mCodePointCount);
+    }
+
+    // PtNode with a terminal id.
+    PtNodeParams(const int headPos, const PatriciaTrieReadingUtils::NodeFlags flags,
+            const int parentPos, const int codePointCount, const int *const codePoints,
+            const int terminalIdFieldPos, const int terminalId, const int probability,
+            const int childrenPosFieldPos, const int childrenPos, const int siblingPos)
+            : mHeadPos(headPos), mFlags(flags), mHasMovedFlag(true), mParentPos(parentPos),
+              mCodePointCount(codePointCount), mCodePoints(),
+              mTerminalIdFieldPos(terminalIdFieldPos), mTerminalId(terminalId),
+              mProbabilityFieldPos(NOT_A_DICT_POS), mProbability(probability),
+              mChildrenPosFieldPos(childrenPosFieldPos), mChildrenPos(childrenPos),
+              mBigramLinkedNodePos(NOT_A_DICT_POS), mShortcutPos(terminalId),
+              mBigramPos(terminalId), mSiblingPos(siblingPos) {
+        memcpy(mCodePoints, codePoints, sizeof(int) * mCodePointCount);
+    }
+
+    // Construct new params by updating existing PtNode params.
+    PtNodeParams(const PtNodeParams *const ptNodeParams,
+            const PatriciaTrieReadingUtils::NodeFlags flags, const int parentPos,
+            const CodePointArrayView codePoints, const int probability)
+            : mHeadPos(ptNodeParams->getHeadPos()), mFlags(flags), mHasMovedFlag(true),
+              mParentPos(parentPos), mCodePointCount(codePoints.size()), mCodePoints(),
+              mTerminalIdFieldPos(ptNodeParams->getTerminalIdFieldPos()),
+              mTerminalId(ptNodeParams->getTerminalId()),
+              mProbabilityFieldPos(ptNodeParams->getProbabilityFieldPos()),
+              mProbability(probability),
+              mChildrenPosFieldPos(ptNodeParams->getChildrenPosFieldPos()),
+              mChildrenPos(ptNodeParams->getChildrenPos()),
+              mBigramLinkedNodePos(ptNodeParams->getBigramLinkedNodePos()),
+              mShortcutPos(ptNodeParams->getShortcutPos()),
+              mBigramPos(ptNodeParams->getBigramsPos()),
+              mSiblingPos(ptNodeParams->getSiblingNodePos()) {
+        memcpy(mCodePoints, codePoints.data(), sizeof(int) * mCodePointCount);
+    }
+
+    PtNodeParams(const PatriciaTrieReadingUtils::NodeFlags flags, const int parentPos,
+            const CodePointArrayView codePoints, const int probability)
+            : mHeadPos(NOT_A_DICT_POS), mFlags(flags), mHasMovedFlag(true), mParentPos(parentPos),
+              mCodePointCount(codePoints.size()), mCodePoints(),
+              mTerminalIdFieldPos(NOT_A_DICT_POS),
+              mTerminalId(Ver4DictConstants::NOT_A_TERMINAL_ID),
+              mProbabilityFieldPos(NOT_A_DICT_POS), mProbability(probability),
+              mChildrenPosFieldPos(NOT_A_DICT_POS), mChildrenPos(NOT_A_DICT_POS),
+              mBigramLinkedNodePos(NOT_A_DICT_POS), mShortcutPos(NOT_A_DICT_POS),
+              mBigramPos(NOT_A_DICT_POS), mSiblingPos(NOT_A_DICT_POS) {
+        memcpy(mCodePoints, codePoints.data(), sizeof(int) * mCodePointCount);
+    }
+
+    AK_FORCE_INLINE bool isValid() const {
+        return mCodePointCount > 0;
+    }
+
+    // Head position of the PtNode
+    AK_FORCE_INLINE int getHeadPos() const {
+        return mHeadPos;
+    }
+
+    // Flags
+    AK_FORCE_INLINE bool isDeleted() const {
+        return mHasMovedFlag && DynamicPtReadingUtils::isDeleted(mFlags);
+    }
+
+    AK_FORCE_INLINE bool willBecomeNonTerminal() const {
+        return mHasMovedFlag && DynamicPtReadingUtils::willBecomeNonTerminal(mFlags);
+    }
+
+    AK_FORCE_INLINE bool hasChildren() const {
+        return mChildrenPos != NOT_A_DICT_POS;
+    }
+
+    AK_FORCE_INLINE bool isTerminal() const {
+        return PatriciaTrieReadingUtils::isTerminal(mFlags);
+    }
+
+    AK_FORCE_INLINE bool isPossiblyOffensive() const {
+        return PatriciaTrieReadingUtils::isPossiblyOffensive(mFlags);
+    }
+
+    AK_FORCE_INLINE bool isNotAWord() const {
+        return PatriciaTrieReadingUtils::isNotAWord(mFlags);
+    }
+
+    AK_FORCE_INLINE bool hasBigrams() const {
+        return PatriciaTrieReadingUtils::hasBigrams(mFlags);
+    }
+
+    AK_FORCE_INLINE bool hasShortcutTargets() const {
+        return PatriciaTrieReadingUtils::hasShortcutTargets(mFlags);
+    }
+
+    AK_FORCE_INLINE bool representsNonWordInfo() const {
+        return getCodePointCount() > 0 && !CharUtils::isInUnicodeSpace(getCodePoints()[0])
+                && isNotAWord();
+    }
+
+    AK_FORCE_INLINE int representsBeginningOfSentence() const {
+        return getCodePointCount() > 0 && getCodePoints()[0] == CODE_POINT_BEGINNING_OF_SENTENCE
+                && isNotAWord();
+    }
+
+    // Parent node position
+    AK_FORCE_INLINE int getParentPos() const {
+        return mParentPos;
+    }
+
+    AK_FORCE_INLINE const CodePointArrayView getCodePointArrayView() const {
+        return CodePointArrayView(mCodePoints, mCodePointCount);
+    }
+
+    // TODO: Remove
+    // Number of code points
+    AK_FORCE_INLINE uint8_t getCodePointCount() const {
+        return mCodePointCount;
+    }
+
+    // TODO: Remove
+    AK_FORCE_INLINE const int *getCodePoints() const {
+        return mCodePoints;
+    }
+
+    // Probability
+    AK_FORCE_INLINE int getTerminalIdFieldPos() const {
+        return mTerminalIdFieldPos;
+    }
+
+    AK_FORCE_INLINE int getTerminalId() const {
+        return mTerminalId;
+    }
+
+    // Probability
+    AK_FORCE_INLINE int getProbabilityFieldPos() const {
+        return mProbabilityFieldPos;
+    }
+
+    AK_FORCE_INLINE int getProbability() const {
+        return mProbability;
+    }
+
+    // Children PtNode array position
+    AK_FORCE_INLINE int getChildrenPosFieldPos() const {
+        return mChildrenPosFieldPos;
+    }
+
+    AK_FORCE_INLINE int getChildrenPos() const {
+        return mChildrenPos;
+    }
+
+    // Bigram linked node position.
+    AK_FORCE_INLINE int getBigramLinkedNodePos() const {
+        return mBigramLinkedNodePos;
+    }
+
+    // Shortcutlist position
+    AK_FORCE_INLINE int getShortcutPos() const {
+        return mShortcutPos;
+    }
+
+    // Bigrams position
+    AK_FORCE_INLINE int getBigramsPos() const {
+        return mBigramPos;
+    }
+
+    // Sibling node position
+    AK_FORCE_INLINE int getSiblingNodePos() const {
+        return mSiblingPos;
+    }
+
+ private:
+    // This class have a public copy constructor to be used as a return value.
+    DISALLOW_ASSIGNMENT_OPERATOR(PtNodeParams);
+
+    const int mHeadPos;
+    const PatriciaTrieReadingUtils::NodeFlags mFlags;
+    const bool mHasMovedFlag;
+    const int mParentPos;
+    const uint8_t mCodePointCount;
+    int mCodePoints[MAX_WORD_LENGTH];
+    const int mTerminalIdFieldPos;
+    const int mTerminalId;
+    const int mProbabilityFieldPos;
+    const int mProbability;
+    const int mChildrenPosFieldPos;
+    const int mChildrenPos;
+    const int mBigramLinkedNodePos;
+    const int mShortcutPos;
+    const int mBigramPos;
+    const int mSiblingPos;
+};
+} // namespace latinime
+#endif /* LATINIME_PT_NODE_PARAMS_H */
diff --git a/native/jni/src/dictionary/structure/pt_common/pt_node_reader.h b/native/jni/src/dictionary/structure/pt_common/pt_node_reader.h
new file mode 100644
index 0000000..15da19e
--- /dev/null
+++ b/native/jni/src/dictionary/structure/pt_common/pt_node_reader.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_PT_NODE_READER_H
+#define LATINIME_PT_NODE_READER_H
+
+#include "defines.h"
+
+#include "dictionary/structure/pt_common/pt_node_params.h"
+
+namespace latinime {
+
+// Interface class used to read PtNode information.
+class PtNodeReader {
+ public:
+    virtual ~PtNodeReader() {}
+    virtual const PtNodeParams fetchPtNodeParamsInBufferFromPtNodePos(
+            const int ptNodePos) const = 0;
+
+ protected:
+    PtNodeReader() {};
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(PtNodeReader);
+};
+} // namespace latinime
+#endif /* LATINIME_PT_NODE_READER_H */
diff --git a/native/jni/src/dictionary/structure/pt_common/pt_node_writer.h b/native/jni/src/dictionary/structure/pt_common/pt_node_writer.h
new file mode 100644
index 0000000..e6cad25
--- /dev/null
+++ b/native/jni/src/dictionary/structure/pt_common/pt_node_writer.h
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_PT_NODE_WRITER_H
+#define LATINIME_PT_NODE_WRITER_H
+
+#include <unordered_map>
+
+#include "defines.h"
+#include "dictionary/structure/pt_common/pt_node_params.h"
+#include "utils/int_array_view.h"
+
+namespace latinime {
+
+class NgramProperty;
+class UnigramProperty;
+
+// Interface class used to write PtNode information.
+class PtNodeWriter {
+ public:
+    typedef std::unordered_map<int, int> PtNodeArrayPositionRelocationMap;
+    typedef std::unordered_map<int, int> PtNodePositionRelocationMap;
+    struct DictPositionRelocationMap {
+     public:
+        DictPositionRelocationMap()
+                : mPtNodeArrayPositionRelocationMap(), mPtNodePositionRelocationMap() {}
+
+        PtNodeArrayPositionRelocationMap mPtNodeArrayPositionRelocationMap;
+        PtNodePositionRelocationMap mPtNodePositionRelocationMap;
+
+     private:
+        DISALLOW_COPY_AND_ASSIGN(DictPositionRelocationMap);
+    };
+
+    virtual ~PtNodeWriter() {}
+
+    virtual bool markPtNodeAsDeleted(const PtNodeParams *const toBeUpdatedPtNodeParams) = 0;
+
+    virtual bool markPtNodeAsMoved(const PtNodeParams *const toBeUpdatedPtNodeParams,
+            const int movedPos, const int bigramLinkedNodePos) = 0;
+
+    virtual bool markPtNodeAsWillBecomeNonTerminal(
+            const PtNodeParams *const toBeUpdatedPtNodeParams) = 0;
+
+    virtual bool updatePtNodeUnigramProperty(const PtNodeParams *const toBeUpdatedPtNodeParams,
+            const UnigramProperty *const unigramProperty) = 0;
+
+    virtual bool updatePtNodeProbabilityAndGetNeedsToKeepPtNodeAfterGC(
+            const PtNodeParams *const toBeUpdatedPtNodeParams,
+            bool *const outNeedsToKeepPtNode) = 0;
+
+    virtual bool updateChildrenPosition(const PtNodeParams *const toBeUpdatedPtNodeParams,
+                const int newChildrenPosition) = 0;
+
+    virtual bool writePtNodeAndAdvancePosition(const PtNodeParams *const ptNodeParams,
+            int *const ptNodeWritingPos) = 0;
+
+    virtual bool writeNewTerminalPtNodeAndAdvancePosition(const PtNodeParams *const ptNodeParams,
+            const UnigramProperty *const unigramProperty, int *const ptNodeWritingPos) = 0;
+
+    virtual bool addNgramEntry(const WordIdArrayView prevWordIds, const int wordId,
+            const NgramProperty *const ngramProperty, bool *const outAddedNewEntry) = 0;
+
+    virtual bool removeNgramEntry(const WordIdArrayView prevWordIds, const int wordId) = 0;
+
+    virtual bool updateAllBigramEntriesAndDeleteUselessEntries(
+            const PtNodeParams *const sourcePtNodeParams, int *const outBigramEntryCount) = 0;
+
+    virtual bool updateAllPositionFields(const PtNodeParams *const toBeUpdatedPtNodeParams,
+            const DictPositionRelocationMap *const dictPositionRelocationMap,
+            int *const outBigramEntryCount) = 0;
+
+    virtual bool addShortcutTarget(const PtNodeParams *const ptNodeParams,
+            const int *const targetCodePoints, const int targetCodePointCount,
+            const int shortcutProbability) = 0;
+
+ protected:
+    PtNodeWriter() {};
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(PtNodeWriter);
+};
+} // namespace latinime
+#endif /* LATINIME_PT_NODE_WRITER_H */
diff --git a/native/jni/src/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.cpp b/native/jni/src/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.cpp
new file mode 100644
index 0000000..14428ed
--- /dev/null
+++ b/native/jni/src/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.cpp
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.h"
+
+#include "dictionary/utils/byte_array_utils.h"
+
+namespace latinime {
+
+// Flag for presence of more attributes
+const ShortcutListReadingUtils::ShortcutFlags
+        ShortcutListReadingUtils::FLAG_ATTRIBUTE_HAS_NEXT = 0x80;
+// Mask for attribute probability, stored on 4 bits inside the flags byte.
+const ShortcutListReadingUtils::ShortcutFlags
+        ShortcutListReadingUtils::MASK_ATTRIBUTE_PROBABILITY = 0x0F;
+const int ShortcutListReadingUtils::SHORTCUT_LIST_SIZE_FIELD_SIZE = 2;
+// The numeric value of the shortcut probability that means 'whitelist'.
+const int ShortcutListReadingUtils::WHITELIST_SHORTCUT_PROBABILITY = 15;
+
+/* static */ ShortcutListReadingUtils::ShortcutFlags
+        ShortcutListReadingUtils::getFlagsAndForwardPointer(const ReadOnlyByteArrayView buffer,
+                int *const pos) {
+    return ByteArrayUtils::readUint8AndAdvancePosition(buffer.data(), pos);
+}
+
+/* static */ int ShortcutListReadingUtils::getShortcutListSizeAndForwardPointer(
+        const ReadOnlyByteArrayView buffer, int *const pos) {
+    // readUint16andAdvancePosition() returns an offset *including* the uint16 field itself.
+    return ByteArrayUtils::readUint16AndAdvancePosition(buffer.data(), pos)
+            - SHORTCUT_LIST_SIZE_FIELD_SIZE;
+}
+
+/* static */ int ShortcutListReadingUtils::readShortcutTarget(const ReadOnlyByteArrayView buffer,
+        const int maxLength, int *const outWord, int *const pos) {
+    // TODO: Use codePointTable for shortcuts.
+    return ByteArrayUtils::readStringAndAdvancePosition(buffer.data(), maxLength,
+            nullptr /* codePointTable */, outWord, pos);
+}
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.h b/native/jni/src/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.h
new file mode 100644
index 0000000..71cb8cc
--- /dev/null
+++ b/native/jni/src/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.h
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_SHORTCUT_LIST_READING_UTILS_H
+#define LATINIME_SHORTCUT_LIST_READING_UTILS_H
+
+#include <cstdint>
+
+#include "defines.h"
+#include "utils/byte_array_view.h"
+
+namespace latinime {
+
+class ShortcutListReadingUtils {
+ public:
+    typedef uint8_t ShortcutFlags;
+
+    static ShortcutFlags getFlagsAndForwardPointer(const ReadOnlyByteArrayView buffer,
+            int *const pos);
+
+    static AK_FORCE_INLINE int getProbabilityFromFlags(const ShortcutFlags flags) {
+        return flags & MASK_ATTRIBUTE_PROBABILITY;
+    }
+
+    static AK_FORCE_INLINE bool hasNext(const ShortcutFlags flags) {
+        return (flags & FLAG_ATTRIBUTE_HAS_NEXT) != 0;
+    }
+
+    // This method returns the size of the shortcut list region excluding the shortcut list size
+    // field at the beginning.
+    static int getShortcutListSizeAndForwardPointer(const ReadOnlyByteArrayView buffer,
+            int *const pos);
+
+    static AK_FORCE_INLINE int getShortcutListSizeFieldSize() {
+        return SHORTCUT_LIST_SIZE_FIELD_SIZE;
+    }
+
+    static AK_FORCE_INLINE void skipShortcuts(const ReadOnlyByteArrayView buffer, int *const pos) {
+        const int shortcutListSize = getShortcutListSizeAndForwardPointer(buffer, pos);
+        *pos += shortcutListSize;
+    }
+
+    static AK_FORCE_INLINE bool isWhitelist(const ShortcutFlags flags) {
+        return getProbabilityFromFlags(flags) == WHITELIST_SHORTCUT_PROBABILITY;
+    }
+
+    static int readShortcutTarget(const ReadOnlyByteArrayView buffer, const int maxLength,
+            int *const outWord, int *const pos);
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(ShortcutListReadingUtils);
+
+    static const ShortcutFlags FLAG_ATTRIBUTE_HAS_NEXT;
+    static const ShortcutFlags MASK_ATTRIBUTE_PROBABILITY;
+    static const int SHORTCUT_LIST_SIZE_FIELD_SIZE;
+    static const int WHITELIST_SHORTCUT_PROBABILITY;
+};
+} // namespace latinime
+#endif // LATINIME_SHORTCUT_LIST_READING_UTILS_H
diff --git a/native/jni/src/dictionary/structure/v2/bigram/bigram_list_policy.h b/native/jni/src/dictionary/structure/v2/bigram/bigram_list_policy.h
new file mode 100644
index 0000000..25081fa
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v2/bigram/bigram_list_policy.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_BIGRAM_LIST_POLICY_H
+#define LATINIME_BIGRAM_LIST_POLICY_H
+
+#include <cstdint>
+
+#include "defines.h"
+#include "dictionary/interface/dictionary_bigrams_structure_policy.h"
+#include "dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.h"
+#include "utils/byte_array_view.h"
+
+namespace latinime {
+
+class BigramListPolicy : public DictionaryBigramsStructurePolicy {
+ public:
+    BigramListPolicy(const ReadOnlyByteArrayView buffer) : mBuffer(buffer) {}
+
+    ~BigramListPolicy() {}
+
+    void getNextBigram(int *const outBigramPos, int *const outProbability, bool *const outHasNext,
+            int *const pos) const {
+        BigramListReadWriteUtils::BigramFlags flags;
+        if (!BigramListReadWriteUtils::getBigramEntryPropertiesAndAdvancePosition(mBuffer, &flags,
+                outBigramPos, pos)) {
+            AKLOGE("Cannot read bigram entry. bufSize: %zd, pos: %d. ", mBuffer.size(), *pos);
+            *outProbability = NOT_A_PROBABILITY;
+            *outHasNext = false;
+            return;
+        }
+        *outProbability = BigramListReadWriteUtils::getProbabilityFromFlags(flags);
+        *outHasNext = BigramListReadWriteUtils::hasNext(flags);
+    }
+
+    bool skipAllBigrams(int *const pos) const {
+        return BigramListReadWriteUtils::skipExistingBigrams(mBuffer, pos);
+    }
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(BigramListPolicy);
+
+    const ReadOnlyByteArrayView mBuffer;
+};
+} // namespace latinime
+#endif // LATINIME_BIGRAM_LIST_POLICY_H
diff --git a/native/jni/src/dictionary/structure/v2/patricia_trie_policy.cpp b/native/jni/src/dictionary/structure/v2/patricia_trie_policy.cpp
new file mode 100644
index 0000000..4e8b96b
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v2/patricia_trie_policy.cpp
@@ -0,0 +1,526 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/v2/patricia_trie_policy.h"
+
+#include "defines.h"
+#include "suggest/core/dicnode/dic_node.h"
+#include "suggest/core/dicnode/dic_node_vector.h"
+#include "dictionary/interface/ngram_listener.h"
+#include "dictionary/property/ngram_context.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
+#include "dictionary/structure/pt_common/patricia_trie_reading_utils.h"
+#include "dictionary/utils/binary_dictionary_bigrams_iterator.h"
+#include "dictionary/utils/multi_bigram_map.h"
+#include "dictionary/utils/probability_utils.h"
+#include "utils/char_utils.h"
+
+namespace latinime {
+
+void PatriciaTriePolicy::createAndGetAllChildDicNodes(const DicNode *const dicNode,
+        DicNodeVector *const childDicNodes) const {
+    if (!dicNode->hasChildren()) {
+        return;
+    }
+    int nextPos = dicNode->getChildrenPtNodeArrayPos();
+    if (!isValidPos(nextPos)) {
+        AKLOGE("Children PtNode array position is invalid. pos: %d, dict size: %zd",
+                nextPos, mBuffer.size());
+        mIsCorrupted = true;
+        ASSERT(false);
+        return;
+    }
+    const int childCount = PatriciaTrieReadingUtils::getPtNodeArraySizeAndAdvancePosition(
+            mBuffer.data(), &nextPos);
+    for (int i = 0; i < childCount; i++) {
+        if (!isValidPos(nextPos)) {
+            AKLOGE("Child PtNode position is invalid. pos: %d, dict size: %zd, childCount: %d / %d",
+                    nextPos, mBuffer.size(), i, childCount);
+            mIsCorrupted = true;
+            ASSERT(false);
+            return;
+        }
+        nextPos = createAndGetLeavingChildNode(dicNode, nextPos, childDicNodes);
+    }
+}
+
+int PatriciaTriePolicy::getCodePointsAndReturnCodePointCount(const int wordId,
+        const int maxCodePointCount, int *const outCodePoints) const {
+    return getCodePointsAndProbabilityAndReturnCodePointCount(wordId, maxCodePointCount,
+            outCodePoints, nullptr /* outUnigramProbability */);
+}
+// This retrieves code points and the probability of the word by its id.
+// Due to the fact that words are ordered in the dictionary in a strict breadth-first order,
+// it is possible to check for this with advantageous complexity. For each PtNode array, we search
+// for PtNodes with children and compare the children position with the position we look for.
+// When we shoot the position we look for, it means the word we look for is in the children
+// of the previous PtNode. The only tricky part is the fact that if we arrive at the end of a
+// PtNode array with the last PtNode's children position still less than what we are searching for,
+// we must descend the last PtNode's children (for example, if the word we are searching for starts
+// with a z, it's the last PtNode of the root array, so all children addresses will be smaller
+// than the position we look for, and we have to descend the z PtNode).
+/* Parameters :
+ * wordId: Id of the word we are searching for.
+ * outCodePoints: an array to write the found word, with MAX_WORD_LENGTH size.
+ * outUnigramProbability: a pointer to an int to write the probability into.
+ * Return value : the code point count, of 0 if the word was not found.
+ */
+// TODO: Split this function to be more readable
+int PatriciaTriePolicy::getCodePointsAndProbabilityAndReturnCodePointCount(
+        const int wordId, const int maxCodePointCount, int *const outCodePoints,
+        int *const outUnigramProbability) const {
+    const int ptNodePos = getTerminalPtNodePosFromWordId(wordId);
+    int pos = getRootPosition();
+    int wordPos = 0;
+    const int *const codePointTable = mHeaderPolicy.getCodePointTable();
+    if (outUnigramProbability) {
+        *outUnigramProbability = NOT_A_PROBABILITY;
+    }
+    // One iteration of the outer loop iterates through PtNode arrays. As stated above, we will
+    // only traverse PtNodes that are actually a part of the terminal we are searching, so each
+    // time we enter this loop we are one depth level further than last time.
+    // The only reason we count PtNodes is because we want to reduce the probability of infinite
+    // looping in case there is a bug. Since we know there is an upper bound to the depth we are
+    // supposed to traverse, it does not hurt to count iterations.
+    for (int loopCount = maxCodePointCount; loopCount > 0; --loopCount) {
+        int lastCandidatePtNodePos = 0;
+        // Let's loop through PtNodes in this PtNode array searching for either the terminal
+        // or one of its ascendants.
+        if (!isValidPos(pos)) {
+            AKLOGE("PtNode array position is invalid. pos: %d, dict size: %zd",
+                    pos, mBuffer.size());
+            mIsCorrupted = true;
+            ASSERT(false);
+            return 0;
+        }
+        for (int ptNodeCount = PatriciaTrieReadingUtils::getPtNodeArraySizeAndAdvancePosition(
+                mBuffer.data(), &pos); ptNodeCount > 0; --ptNodeCount) {
+            const int startPos = pos;
+            if (!isValidPos(pos)) {
+                AKLOGE("PtNode position is invalid. pos: %d, dict size: %zd", pos, mBuffer.size());
+                mIsCorrupted = true;
+                ASSERT(false);
+                return 0;
+            }
+            const PatriciaTrieReadingUtils::NodeFlags flags =
+                    PatriciaTrieReadingUtils::getFlagsAndAdvancePosition(mBuffer.data(), &pos);
+            const int character = PatriciaTrieReadingUtils::getCodePointAndAdvancePosition(
+                    mBuffer.data(), codePointTable, &pos);
+            if (ptNodePos == startPos) {
+                // We found the position. Copy the rest of the code points in the buffer and return
+                // the length.
+                outCodePoints[wordPos] = character;
+                if (PatriciaTrieReadingUtils::hasMultipleChars(flags)) {
+                    int nextChar = PatriciaTrieReadingUtils::getCodePointAndAdvancePosition(
+                            mBuffer.data(), codePointTable, &pos);
+                    // We count code points in order to avoid infinite loops if the file is broken
+                    // or if there is some other bug
+                    int charCount = maxCodePointCount;
+                    while (NOT_A_CODE_POINT != nextChar && --charCount > 0) {
+                        outCodePoints[++wordPos] = nextChar;
+                        nextChar = PatriciaTrieReadingUtils::getCodePointAndAdvancePosition(
+                                mBuffer.data(), codePointTable, &pos);
+                    }
+                }
+                if (outUnigramProbability) {
+                    *outUnigramProbability =
+                            PatriciaTrieReadingUtils::readProbabilityAndAdvancePosition(
+                                    mBuffer.data(), &pos);
+                }
+                return ++wordPos;
+            }
+            // We need to skip past this PtNode, so skip any remaining code points after the
+            // first and possibly the probability.
+            if (PatriciaTrieReadingUtils::hasMultipleChars(flags)) {
+                PatriciaTrieReadingUtils::skipCharacters(mBuffer.data(), flags, MAX_WORD_LENGTH,
+                        codePointTable, &pos);
+            }
+            if (PatriciaTrieReadingUtils::isTerminal(flags)) {
+                PatriciaTrieReadingUtils::readProbabilityAndAdvancePosition(mBuffer.data(), &pos);
+            }
+            // The fact that this PtNode has children is very important. Since we already know
+            // that this PtNode does not match, if it has no children we know it is irrelevant
+            // to what we are searching for.
+            const bool hasChildren = PatriciaTrieReadingUtils::hasChildrenInFlags(flags);
+            // We will write in `found' whether we have passed the children position we are
+            // searching for. For example if we search for "beer", the children of b are less
+            // than the address we are searching for and the children of c are greater. When we
+            // come here for c, we realize this is too big, and that we should descend b.
+            bool found;
+            if (hasChildren) {
+                int currentPos = pos;
+                // Here comes the tricky part. First, read the children position.
+                const int childrenPos = PatriciaTrieReadingUtils
+                        ::readChildrenPositionAndAdvancePosition(mBuffer.data(), flags,
+                                &currentPos);
+                if (childrenPos > ptNodePos) {
+                    // If the children pos is greater than the position, it means the previous
+                    // PtNode, which position is stored in lastCandidatePtNodePos, was the right
+                    // one.
+                    found = true;
+                } else if (1 >= ptNodeCount) {
+                    // However if we are on the LAST PtNode of this array, and we have NOT shot the
+                    // position we should descend THIS PtNode. So we trick the
+                    // lastCandidatePtNodePos so that we will descend this PtNode, not the previous
+                    // one.
+                    lastCandidatePtNodePos = startPos;
+                    found = true;
+                } else {
+                    // Else, we should continue looking.
+                    found = false;
+                }
+            } else {
+                // Even if we don't have children here, we could still be on the last PtNode of
+                // this array. If this is the case, we should descend the last PtNode that had
+                // children, and their position is already in lastCandidatePtNodePos.
+                found = (1 >= ptNodeCount);
+            }
+
+            if (found) {
+                // Okay, we found the PtNode we should descend. Its position is in
+                // the lastCandidatePtNodePos variable, so we just re-read it.
+                if (0 != lastCandidatePtNodePos) {
+                    const PatriciaTrieReadingUtils::NodeFlags lastFlags =
+                            PatriciaTrieReadingUtils::getFlagsAndAdvancePosition(
+                                    mBuffer.data(), &lastCandidatePtNodePos);
+                    const int lastChar = PatriciaTrieReadingUtils::getCodePointAndAdvancePosition(
+                            mBuffer.data(), codePointTable, &lastCandidatePtNodePos);
+                    // We copy all the characters in this PtNode to the buffer
+                    outCodePoints[wordPos] = lastChar;
+                    if (PatriciaTrieReadingUtils::hasMultipleChars(lastFlags)) {
+                        int nextChar = PatriciaTrieReadingUtils::getCodePointAndAdvancePosition(
+                                mBuffer.data(), codePointTable, &lastCandidatePtNodePos);
+                        int charCount = maxCodePointCount;
+                        while (-1 != nextChar && --charCount > 0) {
+                            outCodePoints[++wordPos] = nextChar;
+                            nextChar = PatriciaTrieReadingUtils::getCodePointAndAdvancePosition(
+                                    mBuffer.data(), codePointTable, &lastCandidatePtNodePos);
+                        }
+                    }
+                    ++wordPos;
+                    // Now we only need to branch to the children address. Skip the probability if
+                    // it's there, read pos, and break to resume the search at pos.
+                    if (PatriciaTrieReadingUtils::isTerminal(lastFlags)) {
+                        PatriciaTrieReadingUtils::readProbabilityAndAdvancePosition(mBuffer.data(),
+                                &lastCandidatePtNodePos);
+                    }
+                    pos = PatriciaTrieReadingUtils::readChildrenPositionAndAdvancePosition(
+                            mBuffer.data(), lastFlags, &lastCandidatePtNodePos);
+                    break;
+                } else {
+                    // Here is a little tricky part: we come here if we found out that all children
+                    // addresses in this PtNode are bigger than the address we are searching for.
+                    // Should we conclude the word is not in the dictionary? No! It could still be
+                    // one of the remaining PtNodes in this array, so we have to keep looking in
+                    // this array until we find it (or we realize it's not there either, in which
+                    // case it's actually not in the dictionary). Pass the end of this PtNode,
+                    // ready to start the next one.
+                    if (PatriciaTrieReadingUtils::hasChildrenInFlags(flags)) {
+                        PatriciaTrieReadingUtils::readChildrenPositionAndAdvancePosition(
+                                mBuffer.data(), flags, &pos);
+                    }
+                    if (PatriciaTrieReadingUtils::hasShortcutTargets(flags)) {
+                        mShortcutListPolicy.skipAllShortcuts(&pos);
+                    }
+                    if (PatriciaTrieReadingUtils::hasBigrams(flags)) {
+                        if (!mBigramListPolicy.skipAllBigrams(&pos)) {
+                            AKLOGE("Cannot skip bigrams. BufSize: %zd, pos: %d.", mBuffer.size(),
+                                    pos);
+                            mIsCorrupted = true;
+                            ASSERT(false);
+                            return 0;
+                        }
+                    }
+                }
+            } else {
+                // If we did not find it, we should record the last children address for the next
+                // iteration.
+                if (hasChildren) lastCandidatePtNodePos = startPos;
+                // Now skip the end of this PtNode (children pos and the attributes if any) so that
+                // our pos is after the end of this PtNode, at the start of the next one.
+                if (PatriciaTrieReadingUtils::hasChildrenInFlags(flags)) {
+                    PatriciaTrieReadingUtils::readChildrenPositionAndAdvancePosition(
+                            mBuffer.data(), flags, &pos);
+                }
+                if (PatriciaTrieReadingUtils::hasShortcutTargets(flags)) {
+                    mShortcutListPolicy.skipAllShortcuts(&pos);
+                }
+                if (PatriciaTrieReadingUtils::hasBigrams(flags)) {
+                    if (!mBigramListPolicy.skipAllBigrams(&pos)) {
+                        AKLOGE("Cannot skip bigrams. BufSize: %zd, pos: %d.", mBuffer.size(), pos);
+                        mIsCorrupted = true;
+                        ASSERT(false);
+                        return 0;
+                    }
+                }
+            }
+
+        }
+    }
+    // If we have looked through all the PtNodes and found no match, the ptNodePos is
+    // not the position of a terminal in this dictionary.
+    return 0;
+}
+
+// This function gets the position of the terminal PtNode of the exact matching word in the
+// dictionary. If no match is found, it returns NOT_A_WORD_ID.
+int PatriciaTriePolicy::getWordId(const CodePointArrayView wordCodePoints,
+        const bool forceLowerCaseSearch) const {
+    DynamicPtReadingHelper readingHelper(&mPtNodeReader, &mPtNodeArrayReader);
+    readingHelper.initWithPtNodeArrayPos(getRootPosition());
+    const int ptNodePos = readingHelper.getTerminalPtNodePositionOfWord(wordCodePoints.data(),
+            wordCodePoints.size(), forceLowerCaseSearch);
+    if (readingHelper.isError()) {
+        mIsCorrupted = true;
+        AKLOGE("Dictionary reading error in getWordId().");
+    }
+    return getWordIdFromTerminalPtNodePos(ptNodePos);
+}
+
+const WordAttributes PatriciaTriePolicy::getWordAttributesInContext(
+        const WordIdArrayView prevWordIds, const int wordId,
+        MultiBigramMap *const multiBigramMap) const {
+    if (wordId == NOT_A_WORD_ID) {
+        return WordAttributes();
+    }
+    const int ptNodePos = getTerminalPtNodePosFromWordId(wordId);
+    const PtNodeParams ptNodeParams =
+            mPtNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos);
+    if (multiBigramMap) {
+        const int probability =  multiBigramMap->getBigramProbability(this /* structurePolicy */,
+                prevWordIds, wordId, ptNodeParams.getProbability());
+        return getWordAttributes(probability, ptNodeParams);
+    }
+    if (!prevWordIds.empty()) {
+        const int bigramProbability = getProbabilityOfWord(prevWordIds, wordId);
+        if (bigramProbability != NOT_A_PROBABILITY) {
+            return getWordAttributes(bigramProbability, ptNodeParams);
+        }
+    }
+    return getWordAttributes(getProbability(ptNodeParams.getProbability(), NOT_A_PROBABILITY),
+            ptNodeParams);
+}
+
+const WordAttributes PatriciaTriePolicy::getWordAttributes(const int probability,
+        const PtNodeParams &ptNodeParams) const {
+    return WordAttributes(probability, false /* isBlacklisted */, ptNodeParams.isNotAWord(),
+            ptNodeParams.isPossiblyOffensive());
+}
+
+int PatriciaTriePolicy::getProbability(const int unigramProbability,
+        const int bigramProbability) const {
+    // Due to space constraints, the probability for bigrams is approximate - the lower the unigram
+    // probability, the worse the precision. The theoritical maximum error in resulting probability
+    // is 8 - although in the practice it's never bigger than 3 or 4 in very bad cases. This means
+    // that sometimes, we'll see some bigrams interverted here, but it can't get too bad.
+    if (unigramProbability == NOT_A_PROBABILITY) {
+        return NOT_A_PROBABILITY;
+    } else if (bigramProbability == NOT_A_PROBABILITY) {
+        return ProbabilityUtils::backoff(unigramProbability);
+    } else {
+        return ProbabilityUtils::computeProbabilityForBigram(unigramProbability,
+                bigramProbability);
+    }
+}
+
+int PatriciaTriePolicy::getProbabilityOfWord(const WordIdArrayView prevWordIds,
+        const int wordId) const {
+    if (wordId == NOT_A_WORD_ID) {
+        return NOT_A_PROBABILITY;
+    }
+    const int ptNodePos = getTerminalPtNodePosFromWordId(wordId);
+    const PtNodeParams ptNodeParams =
+            mPtNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos);
+    if (ptNodeParams.isNotAWord()) {
+        // If this is not a word, it should behave as having no probability outside of the
+        // suggestion process (where it should be used for shortcuts).
+        return NOT_A_PROBABILITY;
+    }
+    if (!prevWordIds.empty()) {
+        const int bigramsPosition = getBigramsPositionOfPtNode(
+                getTerminalPtNodePosFromWordId(prevWordIds[0]));
+        BinaryDictionaryBigramsIterator bigramsIt(&mBigramListPolicy, bigramsPosition);
+        while (bigramsIt.hasNext()) {
+            bigramsIt.next();
+            if (bigramsIt.getBigramPos() == ptNodePos
+                    && bigramsIt.getProbability() != NOT_A_PROBABILITY) {
+                return getProbability(ptNodeParams.getProbability(), bigramsIt.getProbability());
+            }
+        }
+        return NOT_A_PROBABILITY;
+    }
+    return getProbability(ptNodeParams.getProbability(), NOT_A_PROBABILITY);
+}
+
+void PatriciaTriePolicy::iterateNgramEntries(const WordIdArrayView prevWordIds,
+        NgramListener *const listener) const {
+    if (prevWordIds.empty()) {
+        return;
+    }
+    const int bigramsPosition = getBigramsPositionOfPtNode(
+            getTerminalPtNodePosFromWordId(prevWordIds[0]));
+    BinaryDictionaryBigramsIterator bigramsIt(&mBigramListPolicy, bigramsPosition);
+    while (bigramsIt.hasNext()) {
+        bigramsIt.next();
+        listener->onVisitEntry(bigramsIt.getProbability(),
+                getWordIdFromTerminalPtNodePos(bigramsIt.getBigramPos()));
+    }
+}
+
+BinaryDictionaryShortcutIterator PatriciaTriePolicy::getShortcutIterator(const int wordId) const {
+    const int shortcutPos = getShortcutPositionOfPtNode(getTerminalPtNodePosFromWordId(wordId));
+    return BinaryDictionaryShortcutIterator(&mShortcutListPolicy, shortcutPos);
+}
+
+int PatriciaTriePolicy::getShortcutPositionOfPtNode(const int ptNodePos) const {
+    if (ptNodePos == NOT_A_DICT_POS) {
+        return NOT_A_DICT_POS;
+    }
+    return mPtNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos).getShortcutPos();
+}
+
+int PatriciaTriePolicy::getBigramsPositionOfPtNode(const int ptNodePos) const {
+    if (ptNodePos == NOT_A_DICT_POS) {
+        return NOT_A_DICT_POS;
+    }
+    return mPtNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos).getBigramsPos();
+}
+
+int PatriciaTriePolicy::createAndGetLeavingChildNode(const DicNode *const dicNode,
+        const int ptNodePos, DicNodeVector *childDicNodes) const {
+    PatriciaTrieReadingUtils::NodeFlags flags;
+    int mergedNodeCodePointCount = 0;
+    int mergedNodeCodePoints[MAX_WORD_LENGTH];
+    int probability = NOT_A_PROBABILITY;
+    int childrenPos = NOT_A_DICT_POS;
+    int shortcutPos = NOT_A_DICT_POS;
+    int bigramPos = NOT_A_DICT_POS;
+    int siblingPos = NOT_A_DICT_POS;
+    const int *const codePointTable = mHeaderPolicy.getCodePointTable();
+    PatriciaTrieReadingUtils::readPtNodeInfo(mBuffer.data(), ptNodePos, &mShortcutListPolicy,
+            &mBigramListPolicy, codePointTable, &flags, &mergedNodeCodePointCount,
+            mergedNodeCodePoints, &probability, &childrenPos, &shortcutPos, &bigramPos,
+            &siblingPos);
+    // Skip PtNodes don't start with Unicode code point because they represent non-word information.
+    if (CharUtils::isInUnicodeSpace(mergedNodeCodePoints[0])) {
+        const int wordId = PatriciaTrieReadingUtils::isTerminal(flags) ? ptNodePos : NOT_A_WORD_ID;
+        childDicNodes->pushLeavingChild(dicNode, childrenPos, wordId,
+                CodePointArrayView(mergedNodeCodePoints, mergedNodeCodePointCount));
+    }
+    return siblingPos;
+}
+
+const WordProperty PatriciaTriePolicy::getWordProperty(
+        const CodePointArrayView wordCodePoints) const {
+    const int wordId = getWordId(wordCodePoints, false /* forceLowerCaseSearch */);
+    if (wordId == NOT_A_WORD_ID) {
+        AKLOGE("getWordProperty was called for invalid word.");
+        return WordProperty();
+    }
+    const int ptNodePos = getTerminalPtNodePosFromWordId(wordId);
+    const PtNodeParams ptNodeParams =
+            mPtNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos);
+    // Fetch bigram information.
+    std::vector<NgramProperty> ngrams;
+    const int bigramListPos = getBigramsPositionOfPtNode(ptNodePos);
+    int bigramWord1CodePoints[MAX_WORD_LENGTH];
+    BinaryDictionaryBigramsIterator bigramsIt(&mBigramListPolicy, bigramListPos);
+    while (bigramsIt.hasNext()) {
+        // Fetch the next bigram information and forward the iterator.
+        bigramsIt.next();
+        // Skip the entry if the entry has been deleted. This never happens for ver2 dicts.
+        if (bigramsIt.getBigramPos() != NOT_A_DICT_POS) {
+            int word1Probability = NOT_A_PROBABILITY;
+            const int word1CodePointCount = getCodePointsAndProbabilityAndReturnCodePointCount(
+                    getWordIdFromTerminalPtNodePos(bigramsIt.getBigramPos()), MAX_WORD_LENGTH,
+                    bigramWord1CodePoints, &word1Probability);
+            const int probability = getProbability(word1Probability, bigramsIt.getProbability());
+            ngrams.emplace_back(
+                    NgramContext(wordCodePoints.data(), wordCodePoints.size(),
+                            ptNodeParams.representsBeginningOfSentence()),
+                    CodePointArrayView(bigramWord1CodePoints, word1CodePointCount).toVector(),
+                    probability, HistoricalInfo());
+        }
+    }
+    // Fetch shortcut information.
+    std::vector<UnigramProperty::ShortcutProperty> shortcuts;
+    int shortcutPos = getShortcutPositionOfPtNode(ptNodePos);
+    if (shortcutPos != NOT_A_DICT_POS) {
+        int shortcutTargetCodePoints[MAX_WORD_LENGTH];
+        ShortcutListReadingUtils::getShortcutListSizeAndForwardPointer(mBuffer, &shortcutPos);
+        bool hasNext = true;
+        while (hasNext) {
+            const ShortcutListReadingUtils::ShortcutFlags shortcutFlags =
+                    ShortcutListReadingUtils::getFlagsAndForwardPointer(mBuffer, &shortcutPos);
+            hasNext = ShortcutListReadingUtils::hasNext(shortcutFlags);
+            const int shortcutTargetLength = ShortcutListReadingUtils::readShortcutTarget(
+                    mBuffer, MAX_WORD_LENGTH, shortcutTargetCodePoints, &shortcutPos);
+            const int shortcutProbability =
+                    ShortcutListReadingUtils::getProbabilityFromFlags(shortcutFlags);
+            shortcuts.emplace_back(
+                    CodePointArrayView(shortcutTargetCodePoints, shortcutTargetLength).toVector(),
+                    shortcutProbability);
+        }
+    }
+    const UnigramProperty unigramProperty(ptNodeParams.representsBeginningOfSentence(),
+            ptNodeParams.isNotAWord(), ptNodeParams.isPossiblyOffensive(),
+            ptNodeParams.getProbability(), HistoricalInfo(), std::move(shortcuts));
+    return WordProperty(wordCodePoints.toVector(), unigramProperty, ngrams);
+}
+
+int PatriciaTriePolicy::getNextWordAndNextToken(const int token, int *const outCodePoints,
+        int *const outCodePointCount) {
+    *outCodePointCount = 0;
+    if (token == 0) {
+        // Start iterating the dictionary.
+        mTerminalPtNodePositionsForIteratingWords.clear();
+        DynamicPtReadingHelper::TraversePolicyToGetAllTerminalPtNodePositions traversePolicy(
+                &mTerminalPtNodePositionsForIteratingWords);
+        DynamicPtReadingHelper readingHelper(&mPtNodeReader, &mPtNodeArrayReader);
+        readingHelper.initWithPtNodeArrayPos(getRootPosition());
+        readingHelper.traverseAllPtNodesInPostorderDepthFirstManner(&traversePolicy);
+    }
+    const int terminalPtNodePositionsVectorSize =
+            static_cast<int>(mTerminalPtNodePositionsForIteratingWords.size());
+    if (token < 0 || token >= terminalPtNodePositionsVectorSize) {
+        AKLOGE("Given token %d is invalid.", token);
+        return 0;
+    }
+    const int terminalPtNodePos = mTerminalPtNodePositionsForIteratingWords[token];
+    *outCodePointCount = getCodePointsAndReturnCodePointCount(
+            getWordIdFromTerminalPtNodePos(terminalPtNodePos), MAX_WORD_LENGTH, outCodePoints);
+    const int nextToken = token + 1;
+    if (nextToken >= terminalPtNodePositionsVectorSize) {
+        // All words have been iterated.
+        mTerminalPtNodePositionsForIteratingWords.clear();
+        return 0;
+    }
+    return nextToken;
+}
+
+int PatriciaTriePolicy::getWordIdFromTerminalPtNodePos(const int ptNodePos) const {
+    return ptNodePos == NOT_A_DICT_POS ? NOT_A_WORD_ID : ptNodePos;
+}
+
+int PatriciaTriePolicy::getTerminalPtNodePosFromWordId(const int wordId) const {
+    return wordId == NOT_A_WORD_ID ? NOT_A_DICT_POS : wordId;
+}
+
+bool PatriciaTriePolicy::isValidPos(const int pos) const {
+    return pos >= 0 && pos < static_cast<int>(mBuffer.size());
+}
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/v2/patricia_trie_policy.h b/native/jni/src/dictionary/structure/v2/patricia_trie_policy.h
new file mode 100644
index 0000000..8edfa7d
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v2/patricia_trie_policy.h
@@ -0,0 +1,180 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_PATRICIA_TRIE_POLICY_H
+#define LATINIME_PATRICIA_TRIE_POLICY_H
+
+#include <cstdint>
+#include <vector>
+
+#include "defines.h"
+#include "dictionary/header/header_policy.h"
+#include "dictionary/interface/dictionary_structure_with_buffer_policy.h"
+#include "dictionary/structure/v2/bigram/bigram_list_policy.h"
+#include "dictionary/structure/v2/shortcut/shortcut_list_policy.h"
+#include "dictionary/structure/v2/ver2_patricia_trie_node_reader.h"
+#include "dictionary/structure/v2/ver2_pt_node_array_reader.h"
+#include "dictionary/utils/format_utils.h"
+#include "dictionary/utils/mmapped_buffer.h"
+#include "utils/byte_array_view.h"
+#include "utils/int_array_view.h"
+
+namespace latinime {
+
+class DicNode;
+class DicNodeVector;
+
+// Word id = Position of a PtNode that represents the word.
+// Max supported n-gram is bigram.
+class PatriciaTriePolicy : public DictionaryStructureWithBufferPolicy {
+ public:
+    PatriciaTriePolicy(MmappedBuffer::MmappedBufferPtr mmappedBuffer)
+            : mMmappedBuffer(std::move(mmappedBuffer)),
+              mHeaderPolicy(mMmappedBuffer->getReadOnlyByteArrayView().data(),
+                      FormatUtils::detectFormatVersion(mMmappedBuffer->getReadOnlyByteArrayView())),
+              mBuffer(mMmappedBuffer->getReadOnlyByteArrayView().skip(mHeaderPolicy.getSize())),
+              mBigramListPolicy(mBuffer), mShortcutListPolicy(mBuffer),
+              mPtNodeReader(mBuffer, &mBigramListPolicy, &mShortcutListPolicy,
+                      mHeaderPolicy.getCodePointTable()),
+              mPtNodeArrayReader(mBuffer), mTerminalPtNodePositionsForIteratingWords(),
+              mIsCorrupted(false) {}
+
+    AK_FORCE_INLINE int getRootPosition() const {
+        return 0;
+    }
+
+    void createAndGetAllChildDicNodes(const DicNode *const dicNode,
+            DicNodeVector *const childDicNodes) const;
+
+    int getCodePointsAndReturnCodePointCount(const int wordId, const int maxCodePointCount,
+            int *const outCodePoints) const;
+
+    int getWordId(const CodePointArrayView wordCodePoints, const bool forceLowerCaseSearch) const;
+
+    const WordAttributes getWordAttributesInContext(const WordIdArrayView prevWordIds,
+            const int wordId, MultiBigramMap *const multiBigramMap) const;
+
+    int getProbability(const int unigramProbability, const int bigramProbability) const;
+
+    int getProbabilityOfWord(const WordIdArrayView prevWordIds, const int wordId) const;
+
+    void iterateNgramEntries(const WordIdArrayView prevWordIds,
+            NgramListener *const listener) const;
+
+    BinaryDictionaryShortcutIterator getShortcutIterator(const int wordId) const;
+
+    const DictionaryHeaderStructurePolicy *getHeaderStructurePolicy() const {
+        return &mHeaderPolicy;
+    }
+
+    bool addUnigramEntry(const CodePointArrayView wordCodePoints,
+            const UnigramProperty *const unigramProperty) {
+        // This method should not be called for non-updatable dictionary.
+        AKLOGI("Warning: addUnigramEntry() is called for non-updatable dictionary.");
+        return false;
+    }
+
+    bool removeUnigramEntry(const CodePointArrayView wordCodePoints) {
+        // This method should not be called for non-updatable dictionary.
+        AKLOGI("Warning: removeUnigramEntry() is called for non-updatable dictionary.");
+        return false;
+    }
+
+    bool addNgramEntry(const NgramProperty *const ngramProperty) {
+        // This method should not be called for non-updatable dictionary.
+        AKLOGI("Warning: addNgramEntry() is called for non-updatable dictionary.");
+        return false;
+    }
+
+    bool removeNgramEntry(const NgramContext *const ngramContext,
+            const CodePointArrayView wordCodePoints) {
+        // This method should not be called for non-updatable dictionary.
+        AKLOGI("Warning: removeNgramEntry() is called for non-updatable dictionary.");
+        return false;
+    }
+
+    bool updateEntriesForWordWithNgramContext(const NgramContext *const ngramContext,
+            const CodePointArrayView wordCodePoints, const bool isValidWord,
+            const HistoricalInfo historicalInfo) {
+        // This method should not be called for non-updatable dictionary.
+        AKLOGI("Warning: updateEntriesForWordWithNgramContext() is called for non-updatable "
+                "dictionary.");
+        return false;
+    }
+
+    bool flush(const char *const filePath) {
+        // This method should not be called for non-updatable dictionary.
+        AKLOGI("Warning: flush() is called for non-updatable dictionary.");
+        return false;
+    }
+
+    bool flushWithGC(const char *const filePath) {
+        // This method should not be called for non-updatable dictionary.
+        AKLOGI("Warning: flushWithGC() is called for non-updatable dictionary.");
+        return false;
+    }
+
+    bool needsToRunGC(const bool mindsBlockByGC) const {
+        // This method should not be called for non-updatable dictionary.
+        AKLOGI("Warning: needsToRunGC() is called for non-updatable dictionary.");
+        return false;
+    }
+
+    void getProperty(const char *const query, const int queryLength, char *const outResult,
+            const int maxResultLength) {
+        // getProperty is not supported for this class.
+        if (maxResultLength > 0) {
+            outResult[0] = '\0';
+        }
+    }
+
+    const WordProperty getWordProperty(const CodePointArrayView wordCodePoints) const;
+
+    int getNextWordAndNextToken(const int token, int *const outCodePoints,
+            int *const outCodePointCount);
+
+    bool isCorrupted() const {
+        return mIsCorrupted;
+    }
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(PatriciaTriePolicy);
+
+    const MmappedBuffer::MmappedBufferPtr mMmappedBuffer;
+    const HeaderPolicy mHeaderPolicy;
+    const ReadOnlyByteArrayView mBuffer;
+    const BigramListPolicy mBigramListPolicy;
+    const ShortcutListPolicy mShortcutListPolicy;
+    const Ver2ParticiaTrieNodeReader mPtNodeReader;
+    const Ver2PtNodeArrayReader mPtNodeArrayReader;
+    std::vector<int> mTerminalPtNodePositionsForIteratingWords;
+    mutable bool mIsCorrupted;
+
+    int getCodePointsAndProbabilityAndReturnCodePointCount(const int wordId,
+            const int maxCodePointCount, int *const outCodePoints,
+            int *const outUnigramProbability) const;
+    int getShortcutPositionOfPtNode(const int ptNodePos) const;
+    int getBigramsPositionOfPtNode(const int ptNodePos) const;
+    int createAndGetLeavingChildNode(const DicNode *const dicNode, const int ptNodePos,
+            DicNodeVector *const childDicNodes) const;
+    int getWordIdFromTerminalPtNodePos(const int ptNodePos) const;
+    int getTerminalPtNodePosFromWordId(const int wordId) const;
+    const WordAttributes getWordAttributes(const int probability,
+            const PtNodeParams &ptNodeParams) const;
+    bool isValidPos(const int pos) const;
+};
+} // namespace latinime
+#endif // LATINIME_PATRICIA_TRIE_POLICY_H
diff --git a/native/jni/src/dictionary/structure/v2/shortcut/shortcut_list_policy.h b/native/jni/src/dictionary/structure/v2/shortcut/shortcut_list_policy.h
new file mode 100644
index 0000000..995b1ed
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v2/shortcut/shortcut_list_policy.h
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_SHORTCUT_LIST_POLICY_H
+#define LATINIME_SHORTCUT_LIST_POLICY_H
+
+#include <cstdint>
+
+#include "defines.h"
+#include "dictionary/interface/dictionary_shortcuts_structure_policy.h"
+#include "dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.h"
+#include "utils/byte_array_view.h"
+
+namespace latinime {
+
+class ShortcutListPolicy : public DictionaryShortcutsStructurePolicy {
+ public:
+    explicit ShortcutListPolicy(const ReadOnlyByteArrayView buffer) : mBuffer(buffer) {}
+
+    ~ShortcutListPolicy() {}
+
+    int getStartPos(const int pos) const {
+        if (pos == NOT_A_DICT_POS) {
+            return NOT_A_DICT_POS;
+        }
+        int listPos = pos;
+        ShortcutListReadingUtils::getShortcutListSizeAndForwardPointer(mBuffer, &listPos);
+        return listPos;
+    }
+
+    void getNextShortcut(const int maxCodePointCount, int *const outCodePoint,
+            int *const outCodePointCount, bool *const outIsWhitelist, bool *const outHasNext,
+            int *const pos) const {
+        const ShortcutListReadingUtils::ShortcutFlags flags =
+                ShortcutListReadingUtils::getFlagsAndForwardPointer(mBuffer, pos);
+        if (outHasNext) {
+            *outHasNext = ShortcutListReadingUtils::hasNext(flags);
+        }
+        if (outIsWhitelist) {
+            *outIsWhitelist = ShortcutListReadingUtils::isWhitelist(flags);
+        }
+        if (outCodePoint) {
+            *outCodePointCount = ShortcutListReadingUtils::readShortcutTarget(
+                    mBuffer, maxCodePointCount, outCodePoint, pos);
+        }
+    }
+
+    void skipAllShortcuts(int *const pos) const {
+        const int shortcutListSize = ShortcutListReadingUtils
+                ::getShortcutListSizeAndForwardPointer(mBuffer, pos);
+        *pos += shortcutListSize;
+    }
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(ShortcutListPolicy);
+
+    const ReadOnlyByteArrayView mBuffer;
+};
+} // namespace latinime
+#endif // LATINIME_SHORTCUT_LIST_POLICY_H
diff --git a/native/jni/src/dictionary/structure/v2/ver2_patricia_trie_node_reader.cpp b/native/jni/src/dictionary/structure/v2/ver2_patricia_trie_node_reader.cpp
new file mode 100644
index 0000000..cbb8ead
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v2/ver2_patricia_trie_node_reader.cpp
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2014, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/v2/ver2_patricia_trie_node_reader.h"
+
+#include "dictionary/structure/pt_common/patricia_trie_reading_utils.h"
+
+namespace latinime {
+
+const PtNodeParams Ver2ParticiaTrieNodeReader::fetchPtNodeParamsInBufferFromPtNodePos(
+        const int ptNodePos) const {
+    if (ptNodePos < 0 || ptNodePos >= static_cast<int>(mBuffer.size())) {
+        // Reading invalid position because of bug or broken dictionary.
+        AKLOGE("Fetching PtNode info from invalid dictionary position: %d, dictionary size: %zd",
+                ptNodePos, mBuffer.size());
+        ASSERT(false);
+        return PtNodeParams();
+    }
+    PatriciaTrieReadingUtils::NodeFlags flags;
+    int mergedNodeCodePointCount = 0;
+    int mergedNodeCodePoints[MAX_WORD_LENGTH];
+    int probability = NOT_A_PROBABILITY;
+    int childrenPos = NOT_A_DICT_POS;
+    int shortcutPos = NOT_A_DICT_POS;
+    int bigramPos = NOT_A_DICT_POS;
+    int siblingPos = NOT_A_DICT_POS;
+    PatriciaTrieReadingUtils::readPtNodeInfo(mBuffer.data(), ptNodePos, mShortcutPolicy,
+            mBigramPolicy, mCodePointTable, &flags, &mergedNodeCodePointCount, mergedNodeCodePoints,
+            &probability, &childrenPos, &shortcutPos, &bigramPos, &siblingPos);
+    if (mergedNodeCodePointCount <= 0) {
+        AKLOGE("Empty PtNode is not allowed. Code point count: %d", mergedNodeCodePointCount);
+        ASSERT(false);
+        return PtNodeParams();
+    }
+    return PtNodeParams(ptNodePos, flags, mergedNodeCodePointCount, mergedNodeCodePoints,
+            probability, childrenPos, shortcutPos, bigramPos, siblingPos);
+}
+
+}
diff --git a/native/jni/src/dictionary/structure/v2/ver2_patricia_trie_node_reader.h b/native/jni/src/dictionary/structure/v2/ver2_patricia_trie_node_reader.h
new file mode 100644
index 0000000..dc87c7c
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v2/ver2_patricia_trie_node_reader.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2014, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_VER2_PATRICIA_TRIE_NODE_READER_H
+#define LATINIME_VER2_PATRICIA_TRIE_NODE_READER_H
+
+#include <cstdint>
+
+#include "defines.h"
+#include "dictionary/structure/pt_common/pt_node_params.h"
+#include "dictionary/structure/pt_common/pt_node_reader.h"
+#include "utils/byte_array_view.h"
+
+namespace latinime {
+
+class DictionaryBigramsStructurePolicy;
+class DictionaryShortcutsStructurePolicy;
+
+class Ver2ParticiaTrieNodeReader : public PtNodeReader {
+ public:
+    Ver2ParticiaTrieNodeReader(const ReadOnlyByteArrayView buffer,
+            const DictionaryBigramsStructurePolicy *const bigramPolicy,
+            const DictionaryShortcutsStructurePolicy *const shortcutPolicy,
+            const int *const codePointTable)
+            : mBuffer(buffer), mBigramPolicy(bigramPolicy), mShortcutPolicy(shortcutPolicy),
+              mCodePointTable(codePointTable) {}
+
+    virtual const PtNodeParams fetchPtNodeParamsInBufferFromPtNodePos(const int ptNodePos) const;
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(Ver2ParticiaTrieNodeReader);
+
+    const ReadOnlyByteArrayView mBuffer;
+    const DictionaryBigramsStructurePolicy *const mBigramPolicy;
+    const DictionaryShortcutsStructurePolicy *const mShortcutPolicy;
+    const int *const mCodePointTable;
+};
+} // namespace latinime
+#endif /* LATINIME_VER2_PATRICIA_TRIE_NODE_READER_H */
diff --git a/native/jni/src/dictionary/structure/v2/ver2_pt_node_array_reader.cpp b/native/jni/src/dictionary/structure/v2/ver2_pt_node_array_reader.cpp
new file mode 100644
index 0000000..8b9b02d
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v2/ver2_pt_node_array_reader.cpp
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2014, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/v2/ver2_pt_node_array_reader.h"
+
+#include "dictionary/structure/pt_common/patricia_trie_reading_utils.h"
+
+namespace latinime {
+
+bool Ver2PtNodeArrayReader::readPtNodeArrayInfoAndReturnIfValid(const int ptNodeArrayPos,
+        int *const outPtNodeCount, int *const outFirstPtNodePos) const {
+    if (ptNodeArrayPos < 0 || ptNodeArrayPos >= static_cast<int>(mBuffer.size())) {
+        // Reading invalid position because of a bug or a broken dictionary.
+        AKLOGE("Reading PtNode array info from invalid dictionary position: %d, dict size: %zd",
+                ptNodeArrayPos, mBuffer.size());
+        ASSERT(false);
+        return false;
+    }
+    int readingPos = ptNodeArrayPos;
+    const int ptNodeCountInArray = PatriciaTrieReadingUtils::getPtNodeArraySizeAndAdvancePosition(
+            mBuffer.data(), &readingPos);
+    *outPtNodeCount = ptNodeCountInArray;
+    *outFirstPtNodePos = readingPos;
+    return true;
+}
+
+bool Ver2PtNodeArrayReader::readForwardLinkAndReturnIfValid(const int forwordLinkPos,
+        int *const outNextPtNodeArrayPos) const {
+    if (forwordLinkPos < 0 || forwordLinkPos >=  static_cast<int>(mBuffer.size())) {
+        // Reading invalid position because of bug or broken dictionary.
+        AKLOGE("Reading forward link from invalid dictionary position: %d, dict size: %zd",
+                forwordLinkPos, mBuffer.size());
+        ASSERT(false);
+        return false;
+    }
+    // Ver2 dicts don't have forward links.
+    *outNextPtNodeArrayPos = NOT_A_DICT_POS;
+    return true;
+}
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/v2/ver2_pt_node_array_reader.h b/native/jni/src/dictionary/structure/v2/ver2_pt_node_array_reader.h
new file mode 100644
index 0000000..32fa96d
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v2/ver2_pt_node_array_reader.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2014, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_VER2_PT_NODE_ARRAY_READER_H
+#define LATINIME_VER2_PT_NODE_ARRAY_READER_H
+
+#include <cstdint>
+
+#include "defines.h"
+#include "dictionary/structure/pt_common/pt_node_array_reader.h"
+#include "utils/byte_array_view.h"
+
+namespace latinime {
+
+class Ver2PtNodeArrayReader : public PtNodeArrayReader {
+ public:
+    Ver2PtNodeArrayReader(const ReadOnlyByteArrayView buffer) : mBuffer(buffer) {};
+
+    virtual bool readPtNodeArrayInfoAndReturnIfValid(const int ptNodeArrayPos,
+            int *const outPtNodeCount, int *const outFirstPtNodePos) const;
+    virtual bool readForwardLinkAndReturnIfValid(const int forwordLinkPos,
+            int *const outNextPtNodeArrayPos) const;
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(Ver2PtNodeArrayReader);
+
+    const ReadOnlyByteArrayView mBuffer;
+};
+} // namespace latinime
+#endif /* LATINIME_VER2_PT_NODE_ARRAY_READER_H */
diff --git a/native/jni/src/dictionary/structure/v4/content/dynamic_language_model_probability_utils.cpp b/native/jni/src/dictionary/structure/v4/content/dynamic_language_model_probability_utils.cpp
new file mode 100644
index 0000000..165947f
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/content/dynamic_language_model_probability_utils.cpp
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2014, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/v4/content/dynamic_language_model_probability_utils.h"
+
+namespace latinime {
+
+// Used to provide stable probabilities even if the user's input count is small.
+const int DynamicLanguageModelProbabilityUtils::ASSUMED_MIN_COUNTS[] = {8192, 2, 2, 1};
+
+// Encoded backoff weights.
+// Note that we give positive values for trigrams and quadgrams that means the weight is more than
+// 1.
+// TODO: Apply backoff for main dictionaries and quit giving a positive backoff weight.
+const int DynamicLanguageModelProbabilityUtils::ENCODED_BACKOFF_WEIGHTS[] = {-32, -4, 2, 8};
+
+// This value is used to remove too old entries from the dictionary.
+const int DynamicLanguageModelProbabilityUtils::DURATION_TO_DISCARD_ENTRY_IN_SECONDS =
+        300 * 24 * 60 * 60; // 300 days
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/v4/content/dynamic_language_model_probability_utils.h b/native/jni/src/dictionary/structure/v4/content/dynamic_language_model_probability_utils.h
new file mode 100644
index 0000000..71824c9
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/content/dynamic_language_model_probability_utils.h
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2014, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_DYNAMIC_LANGUAGE_MODEL_PROBABILITY_UTILS_H
+#define LATINIME_DYNAMIC_LANGUAGE_MODEL_PROBABILITY_UTILS_H
+
+#include <algorithm>
+
+#include "defines.h"
+#include "dictionary/property/historical_info.h"
+#include "utils/ngram_utils.h"
+#include "utils/time_keeper.h"
+
+namespace latinime {
+
+class DynamicLanguageModelProbabilityUtils {
+ public:
+    static float computeRawProbabilityFromCounts(const int count, const int contextCount,
+            const NgramType ngramType) {
+        const int minCount = ASSUMED_MIN_COUNTS[static_cast<int>(ngramType)];
+        return static_cast<float>(count) / static_cast<float>(std::max(contextCount, minCount));
+    }
+
+    static float backoff(const int ngramProbability, const NgramType ngramType) {
+        const int probability =
+                ngramProbability + ENCODED_BACKOFF_WEIGHTS[static_cast<int>(ngramType)];
+        return std::min(std::max(probability, NOT_A_PROBABILITY), MAX_PROBABILITY);
+    }
+
+    static int getDecayedProbability(const int probability, const HistoricalInfo historicalInfo) {
+        const int elapsedTime = TimeKeeper::peekCurrentTime() - historicalInfo.getTimestamp();
+        if (elapsedTime < 0) {
+            AKLOGE("The elapsed time is negatime value. Timestamp overflow?");
+            return NOT_A_PROBABILITY;
+        }
+        // TODO: Improve this logic.
+        // We don't modify probability depending on the elapsed time.
+        return probability;
+    }
+
+    static int shouldRemoveEntryDuringGC(const HistoricalInfo historicalInfo) {
+        // TODO: Improve this logic.
+        const int elapsedTime = TimeKeeper::peekCurrentTime() - historicalInfo.getTimestamp();
+        return elapsedTime > DURATION_TO_DISCARD_ENTRY_IN_SECONDS;
+    }
+
+    static int getPriorityToPreventFromEviction(const HistoricalInfo historicalInfo) {
+        // TODO: Improve this logic.
+        // More recently input entries get higher priority.
+        return historicalInfo.getTimestamp();
+    }
+
+private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(DynamicLanguageModelProbabilityUtils);
+
+    static_assert(MAX_PREV_WORD_COUNT_FOR_N_GRAM <= 3, "Max supported Ngram is Quadgram.");
+
+    static const int ASSUMED_MIN_COUNTS[];
+    static const int ENCODED_BACKOFF_WEIGHTS[];
+    static const int DURATION_TO_DISCARD_ENTRY_IN_SECONDS;
+};
+
+} // namespace latinime
+#endif /* LATINIME_DYNAMIC_LANGUAGE_MODEL_PROBABILITY_UTILS_H */
diff --git a/native/jni/src/dictionary/structure/v4/content/language_model_dict_content.cpp b/native/jni/src/dictionary/structure/v4/content/language_model_dict_content.cpp
new file mode 100644
index 0000000..c10e490
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/content/language_model_dict_content.cpp
@@ -0,0 +1,478 @@
+/*
+ * Copyright (C) 2014, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/v4/content/language_model_dict_content.h"
+
+#include <algorithm>
+#include <cstring>
+
+#include "dictionary/structure/v4/content/dynamic_language_model_probability_utils.h"
+#include "dictionary/utils/probability_utils.h"
+#include "utils/ngram_utils.h"
+
+namespace latinime {
+
+const int LanguageModelDictContent::TRIE_MAP_BUFFER_INDEX = 0;
+const int LanguageModelDictContent::GLOBAL_COUNTERS_BUFFER_INDEX = 1;
+
+bool LanguageModelDictContent::save(FILE *const file) const {
+    return mTrieMap.save(file) && mGlobalCounters.save(file);
+}
+
+bool LanguageModelDictContent::runGC(
+        const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
+        const LanguageModelDictContent *const originalContent) {
+    return runGCInner(terminalIdMap, originalContent->mTrieMap.getEntriesInRootLevel(),
+            0 /* nextLevelBitmapEntryIndex */);
+}
+
+const WordAttributes LanguageModelDictContent::getWordAttributes(const WordIdArrayView prevWordIds,
+        const int wordId, const bool mustMatchAllPrevWords,
+        const HeaderPolicy *const headerPolicy) const {
+    int bitmapEntryIndices[MAX_PREV_WORD_COUNT_FOR_N_GRAM + 1];
+    bitmapEntryIndices[0] = mTrieMap.getRootBitmapEntryIndex();
+    int maxPrevWordCount = 0;
+    for (size_t i = 0; i < prevWordIds.size(); ++i) {
+        const int nextBitmapEntryIndex =
+                mTrieMap.get(prevWordIds[i], bitmapEntryIndices[i]).mNextLevelBitmapEntryIndex;
+        if (nextBitmapEntryIndex == TrieMap::INVALID_INDEX) {
+            break;
+        }
+        maxPrevWordCount = i + 1;
+        bitmapEntryIndices[i + 1] = nextBitmapEntryIndex;
+    }
+
+    const ProbabilityEntry unigramProbabilityEntry = getProbabilityEntry(wordId);
+    if (mHasHistoricalInfo && unigramProbabilityEntry.getHistoricalInfo()->getCount() == 0) {
+        // The word should be treated as a invalid word.
+        return WordAttributes();
+    }
+    for (int i = maxPrevWordCount; i >= 0; --i) {
+        if (mustMatchAllPrevWords && prevWordIds.size() > static_cast<size_t>(i)) {
+            break;
+        }
+        const TrieMap::Result result = mTrieMap.get(wordId, bitmapEntryIndices[i]);
+        if (!result.mIsValid) {
+            continue;
+        }
+        const ProbabilityEntry probabilityEntry =
+                ProbabilityEntry::decode(result.mValue, mHasHistoricalInfo);
+        int probability = NOT_A_PROBABILITY;
+        if (mHasHistoricalInfo) {
+            const HistoricalInfo *const historicalInfo = probabilityEntry.getHistoricalInfo();
+            int contextCount = 0;
+            if (i == 0) {
+                // unigram
+                contextCount = mGlobalCounters.getTotalCount();
+            } else {
+                const ProbabilityEntry prevWordProbabilityEntry = getNgramProbabilityEntry(
+                        prevWordIds.skip(1 /* n */).limit(i - 1), prevWordIds[0]);
+                if (!prevWordProbabilityEntry.isValid()) {
+                    continue;
+                }
+                if (prevWordProbabilityEntry.representsBeginningOfSentence()
+                        && historicalInfo->getCount() == 1) {
+                    // BoS ngram requires multiple contextCount.
+                    continue;
+                }
+                contextCount = prevWordProbabilityEntry.getHistoricalInfo()->getCount();
+            }
+            const NgramType ngramType = NgramUtils::getNgramTypeFromWordCount(i + 1);
+            const float rawProbability =
+                    DynamicLanguageModelProbabilityUtils::computeRawProbabilityFromCounts(
+                            historicalInfo->getCount(), contextCount, ngramType);
+            const int encodedRawProbability =
+                    ProbabilityUtils::encodeRawProbability(rawProbability);
+            const int decayedProbability =
+                    DynamicLanguageModelProbabilityUtils::getDecayedProbability(
+                            encodedRawProbability, *historicalInfo);
+            probability = DynamicLanguageModelProbabilityUtils::backoff(
+                    decayedProbability, ngramType);
+        } else {
+            probability = probabilityEntry.getProbability();
+        }
+        // TODO: Some flags in unigramProbabilityEntry should be overwritten by flags in
+        // probabilityEntry.
+        return WordAttributes(probability, unigramProbabilityEntry.isBlacklisted(),
+                unigramProbabilityEntry.isNotAWord(),
+                unigramProbabilityEntry.isPossiblyOffensive());
+    }
+    // Cannot find the word.
+    return WordAttributes();
+}
+
+ProbabilityEntry LanguageModelDictContent::getNgramProbabilityEntry(
+        const WordIdArrayView prevWordIds, const int wordId) const {
+    const int bitmapEntryIndex = getBitmapEntryIndex(prevWordIds);
+    if (bitmapEntryIndex == TrieMap::INVALID_INDEX) {
+        return ProbabilityEntry();
+    }
+    const TrieMap::Result result = mTrieMap.get(wordId, bitmapEntryIndex);
+    if (!result.mIsValid) {
+        // Not found.
+        return ProbabilityEntry();
+    }
+    return ProbabilityEntry::decode(result.mValue, mHasHistoricalInfo);
+}
+
+bool LanguageModelDictContent::setNgramProbabilityEntry(const WordIdArrayView prevWordIds,
+        const int wordId, const ProbabilityEntry *const probabilityEntry) {
+    if (wordId == Ver4DictConstants::NOT_A_TERMINAL_ID) {
+        return false;
+    }
+    const int bitmapEntryIndex = createAndGetBitmapEntryIndex(prevWordIds);
+    if (bitmapEntryIndex == TrieMap::INVALID_INDEX) {
+        return false;
+    }
+    return mTrieMap.put(wordId, probabilityEntry->encode(mHasHistoricalInfo), bitmapEntryIndex);
+}
+
+bool LanguageModelDictContent::removeNgramProbabilityEntry(const WordIdArrayView prevWordIds,
+        const int wordId) {
+    const int bitmapEntryIndex = getBitmapEntryIndex(prevWordIds);
+    if (bitmapEntryIndex == TrieMap::INVALID_INDEX) {
+        // Cannot find bitmap entry for the probability entry. The entry doesn't exist.
+        return false;
+    }
+    return mTrieMap.remove(wordId, bitmapEntryIndex);
+}
+
+LanguageModelDictContent::EntryRange LanguageModelDictContent::getProbabilityEntries(
+        const WordIdArrayView prevWordIds) const {
+    const int bitmapEntryIndex = getBitmapEntryIndex(prevWordIds);
+    return EntryRange(mTrieMap.getEntriesInSpecifiedLevel(bitmapEntryIndex), mHasHistoricalInfo);
+}
+
+std::vector<LanguageModelDictContent::DumppedFullEntryInfo>
+        LanguageModelDictContent::exportAllNgramEntriesRelatedToWord(
+                const HeaderPolicy *const headerPolicy, const int wordId) const {
+    const TrieMap::Result result = mTrieMap.getRoot(wordId);
+    if (!result.mIsValid || result.mNextLevelBitmapEntryIndex == TrieMap::INVALID_INDEX) {
+        // The word doesn't have any related ngram entries.
+        return std::vector<DumppedFullEntryInfo>();
+    }
+    std::vector<int> prevWordIds = { wordId };
+    std::vector<DumppedFullEntryInfo> entries;
+    exportAllNgramEntriesRelatedToWordInner(headerPolicy, result.mNextLevelBitmapEntryIndex,
+            &prevWordIds, &entries);
+    return entries;
+}
+
+void LanguageModelDictContent::exportAllNgramEntriesRelatedToWordInner(
+        const HeaderPolicy *const headerPolicy, const int bitmapEntryIndex,
+        std::vector<int> *const prevWordIds,
+        std::vector<DumppedFullEntryInfo> *const outBummpedFullEntryInfo) const {
+    for (const auto &entry : mTrieMap.getEntriesInSpecifiedLevel(bitmapEntryIndex)) {
+        const int wordId = entry.key();
+        const ProbabilityEntry probabilityEntry =
+                ProbabilityEntry::decode(entry.value(), mHasHistoricalInfo);
+        if (probabilityEntry.isValid()) {
+            const WordAttributes wordAttributes = getWordAttributes(
+                    WordIdArrayView(*prevWordIds), wordId, true /* mustMatchAllPrevWords */,
+                    headerPolicy);
+            outBummpedFullEntryInfo->emplace_back(*prevWordIds, wordId,
+                    wordAttributes, probabilityEntry);
+        }
+        if (entry.hasNextLevelMap()) {
+            prevWordIds->push_back(wordId);
+            exportAllNgramEntriesRelatedToWordInner(headerPolicy,
+                    entry.getNextLevelBitmapEntryIndex(), prevWordIds, outBummpedFullEntryInfo);
+            prevWordIds->pop_back();
+        }
+    }
+}
+
+bool LanguageModelDictContent::truncateEntries(const EntryCounts &currentEntryCounts,
+        const EntryCounts &maxEntryCounts, const HeaderPolicy *const headerPolicy,
+        MutableEntryCounters *const outEntryCounters) {
+    for (int prevWordCount = 0; prevWordCount <= MAX_PREV_WORD_COUNT_FOR_N_GRAM; ++prevWordCount) {
+        const int totalWordCount = prevWordCount + 1;
+        const NgramType ngramType = NgramUtils::getNgramTypeFromWordCount(totalWordCount);
+        if (currentEntryCounts.getNgramCount(ngramType)
+                <= maxEntryCounts.getNgramCount(ngramType)) {
+            outEntryCounters->setNgramCount(ngramType,
+                    currentEntryCounts.getNgramCount(ngramType));
+            continue;
+        }
+        int entryCount = 0;
+        if (!turncateEntriesInSpecifiedLevel(headerPolicy,
+                maxEntryCounts.getNgramCount(ngramType), prevWordCount, &entryCount)) {
+            return false;
+        }
+        outEntryCounters->setNgramCount(ngramType, entryCount);
+    }
+    return true;
+}
+
+bool LanguageModelDictContent::updateAllEntriesOnInputWord(const WordIdArrayView prevWordIds,
+        const int wordId, const bool isValid, const HistoricalInfo historicalInfo,
+        const HeaderPolicy *const headerPolicy, MutableEntryCounters *const entryCountersToUpdate) {
+    if (!mHasHistoricalInfo) {
+        AKLOGE("updateAllEntriesOnInputWord is called for dictionary without historical info.");
+        return false;
+    }
+    const ProbabilityEntry originalUnigramProbabilityEntry = getProbabilityEntry(wordId);
+    const ProbabilityEntry updatedUnigramProbabilityEntry = createUpdatedEntryFrom(
+            originalUnigramProbabilityEntry, isValid, historicalInfo, headerPolicy);
+    if (!setProbabilityEntry(wordId, &updatedUnigramProbabilityEntry)) {
+        return false;
+    }
+    mGlobalCounters.incrementTotalCount();
+    mGlobalCounters.updateMaxValueOfCounters(
+            updatedUnigramProbabilityEntry.getHistoricalInfo()->getCount());
+    for (size_t i = 0; i < prevWordIds.size(); ++i) {
+        if (prevWordIds[i] == NOT_A_WORD_ID) {
+            break;
+        }
+        // TODO: Optimize this code.
+        const WordIdArrayView limitedPrevWordIds = prevWordIds.limit(i + 1);
+        const ProbabilityEntry originalNgramProbabilityEntry = getNgramProbabilityEntry(
+                limitedPrevWordIds, wordId);
+        const ProbabilityEntry updatedNgramProbabilityEntry = createUpdatedEntryFrom(
+                originalNgramProbabilityEntry, isValid, historicalInfo, headerPolicy);
+        if (!setNgramProbabilityEntry(limitedPrevWordIds, wordId, &updatedNgramProbabilityEntry)) {
+            return false;
+        }
+        mGlobalCounters.updateMaxValueOfCounters(
+                updatedNgramProbabilityEntry.getHistoricalInfo()->getCount());
+        if (!originalNgramProbabilityEntry.isValid()) {
+            // (i + 2) words are used in total because the prevWords consists of (i + 1) words when
+            // looking at its i-th element.
+            entryCountersToUpdate->incrementNgramCount(
+                    NgramUtils::getNgramTypeFromWordCount(i + 2));
+        }
+    }
+    return true;
+}
+
+const ProbabilityEntry LanguageModelDictContent::createUpdatedEntryFrom(
+        const ProbabilityEntry &originalProbabilityEntry, const bool isValid,
+        const HistoricalInfo historicalInfo, const HeaderPolicy *const headerPolicy) const {
+    const HistoricalInfo updatedHistoricalInfo = HistoricalInfo(historicalInfo.getTimestamp(),
+            0 /* level */, originalProbabilityEntry.getHistoricalInfo()->getCount()
+                    + historicalInfo.getCount());
+    if (originalProbabilityEntry.isValid()) {
+        return ProbabilityEntry(originalProbabilityEntry.getFlags(), &updatedHistoricalInfo);
+    } else {
+        return ProbabilityEntry(0 /* flags */, &updatedHistoricalInfo);
+    }
+}
+
+bool LanguageModelDictContent::runGCInner(
+        const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
+        const TrieMap::TrieMapRange trieMapRange, const int nextLevelBitmapEntryIndex) {
+    for (auto &entry : trieMapRange) {
+        const auto it = terminalIdMap->find(entry.key());
+        if (it == terminalIdMap->end() || it->second == Ver4DictConstants::NOT_A_TERMINAL_ID) {
+            // The word has been removed.
+            continue;
+        }
+        if (!mTrieMap.put(it->second, entry.value(), nextLevelBitmapEntryIndex)) {
+            return false;
+        }
+        if (entry.hasNextLevelMap()) {
+            if (!runGCInner(terminalIdMap, entry.getEntriesInNextLevel(),
+                    mTrieMap.getNextLevelBitmapEntryIndex(it->second, nextLevelBitmapEntryIndex))) {
+                return false;
+            }
+        }
+    }
+    return true;
+}
+
+int LanguageModelDictContent::createAndGetBitmapEntryIndex(const WordIdArrayView prevWordIds) {
+    int lastBitmapEntryIndex = mTrieMap.getRootBitmapEntryIndex();
+    for (const int wordId : prevWordIds) {
+        const TrieMap::Result result = mTrieMap.get(wordId, lastBitmapEntryIndex);
+        if (result.mIsValid && result.mNextLevelBitmapEntryIndex != TrieMap::INVALID_INDEX) {
+            lastBitmapEntryIndex = result.mNextLevelBitmapEntryIndex;
+            continue;
+        }
+        if (!result.mIsValid) {
+            if (!mTrieMap.put(wordId, ProbabilityEntry().encode(mHasHistoricalInfo),
+                    lastBitmapEntryIndex)) {
+                AKLOGE("Failed to update trie map. wordId: %d, lastBitmapEntryIndex %d", wordId,
+                        lastBitmapEntryIndex);
+                return TrieMap::INVALID_INDEX;
+            }
+        }
+        lastBitmapEntryIndex = mTrieMap.getNextLevelBitmapEntryIndex(wordId,
+                lastBitmapEntryIndex);
+    }
+    return lastBitmapEntryIndex;
+}
+
+int LanguageModelDictContent::getBitmapEntryIndex(const WordIdArrayView prevWordIds) const {
+    int bitmapEntryIndex = mTrieMap.getRootBitmapEntryIndex();
+    for (const int wordId : prevWordIds) {
+        const TrieMap::Result result = mTrieMap.get(wordId, bitmapEntryIndex);
+        if (!result.mIsValid) {
+            return TrieMap::INVALID_INDEX;
+        }
+        bitmapEntryIndex = result.mNextLevelBitmapEntryIndex;
+    }
+    return bitmapEntryIndex;
+}
+
+bool LanguageModelDictContent::updateAllProbabilityEntriesForGCInner(const int bitmapEntryIndex,
+        const int prevWordCount, const HeaderPolicy *const headerPolicy,
+        const bool needsToHalveCounters, MutableEntryCounters *const outEntryCounters) {
+    for (const auto &entry : mTrieMap.getEntriesInSpecifiedLevel(bitmapEntryIndex)) {
+        if (prevWordCount > MAX_PREV_WORD_COUNT_FOR_N_GRAM) {
+            AKLOGE("Invalid prevWordCount. prevWordCount: %d, MAX_PREV_WORD_COUNT_FOR_N_GRAM: %d.",
+                    prevWordCount, MAX_PREV_WORD_COUNT_FOR_N_GRAM);
+            return false;
+        }
+        const ProbabilityEntry probabilityEntry =
+                ProbabilityEntry::decode(entry.value(), mHasHistoricalInfo);
+        if (prevWordCount > 0 && probabilityEntry.isValid()
+                && !mTrieMap.getRoot(entry.key()).mIsValid) {
+            // The entry is related to a word that has been removed. Remove the entry.
+            if (!mTrieMap.remove(entry.key(), bitmapEntryIndex)) {
+                return false;
+            }
+            continue;
+        }
+        if (mHasHistoricalInfo && probabilityEntry.isValid()) {
+            const HistoricalInfo *originalHistoricalInfo = probabilityEntry.getHistoricalInfo();
+            if (DynamicLanguageModelProbabilityUtils::shouldRemoveEntryDuringGC(
+                    *originalHistoricalInfo)) {
+                // Remove the entry.
+                if (!mTrieMap.remove(entry.key(), bitmapEntryIndex)) {
+                    return false;
+                }
+                continue;
+            }
+            if (needsToHalveCounters) {
+                const int updatedCount = originalHistoricalInfo->getCount() / 2;
+                if (updatedCount == 0) {
+                    // Remove the entry.
+                    if (!mTrieMap.remove(entry.key(), bitmapEntryIndex)) {
+                        return false;
+                    }
+                    continue;
+                }
+                const HistoricalInfo historicalInfoToSave(originalHistoricalInfo->getTimestamp(),
+                        originalHistoricalInfo->getLevel(), updatedCount);
+                const ProbabilityEntry updatedEntry(probabilityEntry.getFlags(),
+                        &historicalInfoToSave);
+                if (!mTrieMap.put(entry.key(), updatedEntry.encode(mHasHistoricalInfo),
+                        bitmapEntryIndex)) {
+                    return false;
+                }
+            }
+        }
+        outEntryCounters->incrementNgramCount(
+                NgramUtils::getNgramTypeFromWordCount(prevWordCount + 1));
+        if (!entry.hasNextLevelMap()) {
+            continue;
+        }
+        if (!updateAllProbabilityEntriesForGCInner(entry.getNextLevelBitmapEntryIndex(),
+                prevWordCount + 1, headerPolicy, needsToHalveCounters, outEntryCounters)) {
+            return false;
+        }
+    }
+    return true;
+}
+
+bool LanguageModelDictContent::turncateEntriesInSpecifiedLevel(
+        const HeaderPolicy *const headerPolicy, const int maxEntryCount, const int targetLevel,
+        int *const outEntryCount) {
+    std::vector<int> prevWordIds;
+    std::vector<EntryInfoToTurncate> entryInfoVector;
+    if (!getEntryInfo(headerPolicy, targetLevel, mTrieMap.getRootBitmapEntryIndex(),
+            &prevWordIds, &entryInfoVector)) {
+        return false;
+    }
+    if (static_cast<int>(entryInfoVector.size()) <= maxEntryCount) {
+        *outEntryCount = static_cast<int>(entryInfoVector.size());
+        return true;
+    }
+    *outEntryCount = maxEntryCount;
+    const int entryCountToRemove = static_cast<int>(entryInfoVector.size()) - maxEntryCount;
+    std::partial_sort(entryInfoVector.begin(), entryInfoVector.begin() + entryCountToRemove,
+            entryInfoVector.end(),
+            EntryInfoToTurncate::Comparator());
+    for (int i = 0; i < entryCountToRemove; ++i) {
+        const EntryInfoToTurncate &entryInfo = entryInfoVector[i];
+        if (!removeNgramProbabilityEntry(
+                WordIdArrayView(entryInfo.mPrevWordIds, entryInfo.mPrevWordCount),
+                entryInfo.mKey)) {
+            return false;
+        }
+    }
+    return true;
+}
+
+bool LanguageModelDictContent::getEntryInfo(const HeaderPolicy *const headerPolicy,
+        const int targetLevel, const int bitmapEntryIndex,  std::vector<int> *const prevWordIds,
+        std::vector<EntryInfoToTurncate> *const outEntryInfo) const {
+    const int prevWordCount = prevWordIds->size();
+    for (const auto &entry : mTrieMap.getEntriesInSpecifiedLevel(bitmapEntryIndex)) {
+        if (prevWordCount < targetLevel) {
+            if (!entry.hasNextLevelMap()) {
+                continue;
+            }
+            prevWordIds->push_back(entry.key());
+            if (!getEntryInfo(headerPolicy, targetLevel, entry.getNextLevelBitmapEntryIndex(),
+                    prevWordIds, outEntryInfo)) {
+                return false;
+            }
+            prevWordIds->pop_back();
+            continue;
+        }
+        const ProbabilityEntry probabilityEntry =
+                ProbabilityEntry::decode(entry.value(), mHasHistoricalInfo);
+        const int priority = mHasHistoricalInfo
+                ? DynamicLanguageModelProbabilityUtils::getPriorityToPreventFromEviction(
+                        *probabilityEntry.getHistoricalInfo())
+                : probabilityEntry.getProbability();
+        outEntryInfo->emplace_back(priority, probabilityEntry.getHistoricalInfo()->getCount(),
+                entry.key(), targetLevel, prevWordIds->data());
+    }
+    return true;
+}
+
+bool LanguageModelDictContent::EntryInfoToTurncate::Comparator::operator()(
+        const EntryInfoToTurncate &left, const EntryInfoToTurncate &right) const {
+    if (left.mPriority != right.mPriority) {
+        return left.mPriority < right.mPriority;
+    }
+    if (left.mCount != right.mCount) {
+        return left.mCount < right.mCount;
+    }
+    if (left.mKey != right.mKey) {
+        return left.mKey < right.mKey;
+    }
+    if (left.mPrevWordCount != right.mPrevWordCount) {
+        return left.mPrevWordCount > right.mPrevWordCount;
+    }
+    for (int i = 0; i < left.mPrevWordCount; ++i) {
+        if (left.mPrevWordIds[i] != right.mPrevWordIds[i]) {
+            return left.mPrevWordIds[i] < right.mPrevWordIds[i];
+        }
+    }
+    // left and rigth represent the same entry.
+    return false;
+}
+
+LanguageModelDictContent::EntryInfoToTurncate::EntryInfoToTurncate(const int priority,
+        const int count, const int key, const int prevWordCount, const int *const prevWordIds)
+        : mPriority(priority), mCount(count), mKey(key), mPrevWordCount(prevWordCount) {
+    memmove(mPrevWordIds, prevWordIds, mPrevWordCount * sizeof(mPrevWordIds[0]));
+}
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/v4/content/language_model_dict_content.h b/native/jni/src/dictionary/structure/v4/content/language_model_dict_content.h
new file mode 100644
index 0000000..db8c6e1
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/content/language_model_dict_content.h
@@ -0,0 +1,258 @@
+/*
+ * Copyright (C) 2014, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_LANGUAGE_MODEL_DICT_CONTENT_H
+#define LATINIME_LANGUAGE_MODEL_DICT_CONTENT_H
+
+#include <cstdio>
+#include <vector>
+
+#include "defines.h"
+#include "dictionary/property/word_attributes.h"
+#include "dictionary/structure/v4/content/language_model_dict_content_global_counters.h"
+#include "dictionary/structure/v4/content/probability_entry.h"
+#include "dictionary/structure/v4/content/terminal_position_lookup_table.h"
+#include "dictionary/structure/v4/ver4_dict_constants.h"
+#include "dictionary/utils/entry_counters.h"
+#include "dictionary/utils/trie_map.h"
+#include "utils/byte_array_view.h"
+#include "utils/int_array_view.h"
+
+namespace latinime {
+
+class HeaderPolicy;
+
+/**
+ * Class representing language model.
+ *
+ * This class provides methods to get and store unigram/n-gram probability information and flags.
+ */
+class LanguageModelDictContent {
+ public:
+    // Pair of word id and probability entry used for iteration.
+    class WordIdAndProbabilityEntry {
+     public:
+        WordIdAndProbabilityEntry(const int wordId, const ProbabilityEntry &probabilityEntry)
+                : mWordId(wordId), mProbabilityEntry(probabilityEntry) {}
+
+        int getWordId() const { return mWordId; }
+        const ProbabilityEntry getProbabilityEntry() const { return mProbabilityEntry; }
+
+     private:
+        DISALLOW_DEFAULT_CONSTRUCTOR(WordIdAndProbabilityEntry);
+        DISALLOW_ASSIGNMENT_OPERATOR(WordIdAndProbabilityEntry);
+
+        const int mWordId;
+        const ProbabilityEntry mProbabilityEntry;
+    };
+
+    // Iterator.
+    class EntryIterator {
+     public:
+        EntryIterator(const TrieMap::TrieMapIterator &trieMapIterator,
+                const bool hasHistoricalInfo)
+                : mTrieMapIterator(trieMapIterator), mHasHistoricalInfo(hasHistoricalInfo) {}
+
+        const WordIdAndProbabilityEntry operator*() const {
+            const TrieMap::TrieMapIterator::IterationResult &result = *mTrieMapIterator;
+            return WordIdAndProbabilityEntry(
+                    result.key(), ProbabilityEntry::decode(result.value(), mHasHistoricalInfo));
+        }
+
+        bool operator!=(const EntryIterator &other) const {
+            return mTrieMapIterator != other.mTrieMapIterator;
+        }
+
+        const EntryIterator &operator++() {
+            ++mTrieMapIterator;
+            return *this;
+        }
+
+     private:
+        DISALLOW_DEFAULT_CONSTRUCTOR(EntryIterator);
+        DISALLOW_ASSIGNMENT_OPERATOR(EntryIterator);
+
+        TrieMap::TrieMapIterator mTrieMapIterator;
+        const bool mHasHistoricalInfo;
+    };
+
+    // Class represents range to use range base for loops.
+    class EntryRange {
+     public:
+        EntryRange(const TrieMap::TrieMapRange trieMapRange, const bool hasHistoricalInfo)
+                : mTrieMapRange(trieMapRange), mHasHistoricalInfo(hasHistoricalInfo) {}
+
+        EntryIterator begin() const {
+            return EntryIterator(mTrieMapRange.begin(), mHasHistoricalInfo);
+        }
+
+        EntryIterator end() const {
+            return EntryIterator(mTrieMapRange.end(), mHasHistoricalInfo);
+        }
+
+     private:
+        DISALLOW_DEFAULT_CONSTRUCTOR(EntryRange);
+        DISALLOW_ASSIGNMENT_OPERATOR(EntryRange);
+
+        const TrieMap::TrieMapRange mTrieMapRange;
+        const bool mHasHistoricalInfo;
+    };
+
+    class DumppedFullEntryInfo {
+     public:
+        DumppedFullEntryInfo(std::vector<int> &prevWordIds, const int targetWordId,
+                const WordAttributes &wordAttributes, const ProbabilityEntry &probabilityEntry)
+                : mPrevWordIds(prevWordIds), mTargetWordId(targetWordId),
+                  mWordAttributes(wordAttributes), mProbabilityEntry(probabilityEntry) {}
+
+        const WordIdArrayView getPrevWordIds() const { return WordIdArrayView(mPrevWordIds); }
+        int getTargetWordId() const { return mTargetWordId; }
+        const WordAttributes &getWordAttributes() const { return mWordAttributes; }
+        const ProbabilityEntry &getProbabilityEntry() const { return mProbabilityEntry; }
+
+     private:
+        DISALLOW_ASSIGNMENT_OPERATOR(DumppedFullEntryInfo);
+
+        const std::vector<int> mPrevWordIds;
+        const int mTargetWordId;
+        const WordAttributes mWordAttributes;
+        const ProbabilityEntry mProbabilityEntry;
+    };
+
+    LanguageModelDictContent(const ReadWriteByteArrayView *const buffers,
+            const bool hasHistoricalInfo)
+            : mTrieMap(buffers[TRIE_MAP_BUFFER_INDEX]),
+              mGlobalCounters(buffers[GLOBAL_COUNTERS_BUFFER_INDEX]),
+              mHasHistoricalInfo(hasHistoricalInfo) {}
+
+    explicit LanguageModelDictContent(const bool hasHistoricalInfo)
+            : mTrieMap(), mGlobalCounters(), mHasHistoricalInfo(hasHistoricalInfo) {}
+
+    bool isNearSizeLimit() const {
+        return mTrieMap.isNearSizeLimit() || mGlobalCounters.needsToHalveCounters();
+    }
+
+    bool save(FILE *const file) const;
+
+    bool runGC(const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
+            const LanguageModelDictContent *const originalContent);
+
+    const WordAttributes getWordAttributes(const WordIdArrayView prevWordIds, const int wordId,
+            const bool mustMatchAllPrevWords, const HeaderPolicy *const headerPolicy) const;
+
+    ProbabilityEntry getProbabilityEntry(const int wordId) const {
+        return getNgramProbabilityEntry(WordIdArrayView(), wordId);
+    }
+
+    bool setProbabilityEntry(const int wordId, const ProbabilityEntry *const probabilityEntry) {
+        mGlobalCounters.addToTotalCount(probabilityEntry->getHistoricalInfo()->getCount());
+        return setNgramProbabilityEntry(WordIdArrayView(), wordId, probabilityEntry);
+    }
+
+    bool removeProbabilityEntry(const int wordId) {
+        return removeNgramProbabilityEntry(WordIdArrayView(), wordId);
+    }
+
+    ProbabilityEntry getNgramProbabilityEntry(const WordIdArrayView prevWordIds,
+            const int wordId) const;
+
+    bool setNgramProbabilityEntry(const WordIdArrayView prevWordIds, const int wordId,
+            const ProbabilityEntry *const probabilityEntry);
+
+    bool removeNgramProbabilityEntry(const WordIdArrayView prevWordIds, const int wordId);
+
+    EntryRange getProbabilityEntries(const WordIdArrayView prevWordIds) const;
+
+    std::vector<DumppedFullEntryInfo> exportAllNgramEntriesRelatedToWord(
+            const HeaderPolicy *const headerPolicy, const int wordId) const;
+
+    bool updateAllProbabilityEntriesForGC(const HeaderPolicy *const headerPolicy,
+            MutableEntryCounters *const outEntryCounters) {
+        if (!updateAllProbabilityEntriesForGCInner(mTrieMap.getRootBitmapEntryIndex(),
+                0 /* prevWordCount */, headerPolicy, mGlobalCounters.needsToHalveCounters(),
+                outEntryCounters)) {
+            return false;
+        }
+        if (mGlobalCounters.needsToHalveCounters()) {
+            mGlobalCounters.halveCounters();
+        }
+        return true;
+    }
+
+    // entryCounts should be created by updateAllProbabilityEntries.
+    bool truncateEntries(const EntryCounts &currentEntryCounts, const EntryCounts &maxEntryCounts,
+            const HeaderPolicy *const headerPolicy, MutableEntryCounters *const outEntryCounters);
+
+    bool updateAllEntriesOnInputWord(const WordIdArrayView prevWordIds, const int wordId,
+            const bool isValid, const HistoricalInfo historicalInfo,
+            const HeaderPolicy *const headerPolicy,
+            MutableEntryCounters *const entryCountersToUpdate);
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(LanguageModelDictContent);
+
+    class EntryInfoToTurncate {
+     public:
+        class Comparator {
+         public:
+            bool operator()(const EntryInfoToTurncate &left,
+                    const EntryInfoToTurncate &right) const;
+         private:
+            DISALLOW_ASSIGNMENT_OPERATOR(Comparator);
+        };
+
+        EntryInfoToTurncate(const int priority, const int count, const int key,
+                const int prevWordCount, const int *const prevWordIds);
+
+        int mPriority;
+        // TODO: Remove.
+        int mCount;
+        int mKey;
+        int mPrevWordCount;
+        int mPrevWordIds[MAX_PREV_WORD_COUNT_FOR_N_GRAM + 1];
+
+     private:
+        DISALLOW_DEFAULT_CONSTRUCTOR(EntryInfoToTurncate);
+    };
+
+    static const int TRIE_MAP_BUFFER_INDEX;
+    static const int GLOBAL_COUNTERS_BUFFER_INDEX;
+
+    TrieMap mTrieMap;
+    LanguageModelDictContentGlobalCounters mGlobalCounters;
+    const bool mHasHistoricalInfo;
+
+    bool runGCInner(const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
+            const TrieMap::TrieMapRange trieMapRange, const int nextLevelBitmapEntryIndex);
+    int createAndGetBitmapEntryIndex(const WordIdArrayView prevWordIds);
+    int getBitmapEntryIndex(const WordIdArrayView prevWordIds) const;
+    bool updateAllProbabilityEntriesForGCInner(const int bitmapEntryIndex, const int prevWordCount,
+            const HeaderPolicy *const headerPolicy, const bool needsToHalveCounters,
+            MutableEntryCounters *const outEntryCounters);
+    bool turncateEntriesInSpecifiedLevel(const HeaderPolicy *const headerPolicy,
+            const int maxEntryCount, const int targetLevel, int *const outEntryCount);
+    bool getEntryInfo(const HeaderPolicy *const headerPolicy, const int targetLevel,
+            const int bitmapEntryIndex, std::vector<int> *const prevWordIds,
+            std::vector<EntryInfoToTurncate> *const outEntryInfo) const;
+    const ProbabilityEntry createUpdatedEntryFrom(const ProbabilityEntry &originalProbabilityEntry,
+            const bool isValid, const HistoricalInfo historicalInfo,
+            const HeaderPolicy *const headerPolicy) const;
+    void exportAllNgramEntriesRelatedToWordInner(const HeaderPolicy *const headerPolicy,
+            const int bitmapEntryIndex, std::vector<int> *const prevWordIds,
+            std::vector<DumppedFullEntryInfo> *const outBummpedFullEntryInfo) const;
+};
+} // namespace latinime
+#endif /* LATINIME_LANGUAGE_MODEL_DICT_CONTENT_H */
diff --git a/native/jni/src/dictionary/structure/v4/content/language_model_dict_content_global_counters.cpp b/native/jni/src/dictionary/structure/v4/content/language_model_dict_content_global_counters.cpp
new file mode 100644
index 0000000..89cf0e3
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/content/language_model_dict_content_global_counters.cpp
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2014, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/v4/content/language_model_dict_content_global_counters.h"
+
+#include <climits>
+
+#include "dictionary/structure/v4/ver4_dict_constants.h"
+
+namespace latinime {
+
+const int LanguageModelDictContentGlobalCounters::COUNTER_VALUE_NEAR_LIMIT_THRESHOLD =
+        (1 << (Ver4DictConstants::WORD_COUNT_FIELD_SIZE * CHAR_BIT)) - 64;
+const int LanguageModelDictContentGlobalCounters::TOTAL_COUNT_VALUE_NEAR_LIMIT_THRESHOLD = 1 << 30;
+const int LanguageModelDictContentGlobalCounters::COUNTER_SIZE_IN_BYTES = 4;
+const int LanguageModelDictContentGlobalCounters::TOTAL_COUNT_INDEX = 0;
+const int LanguageModelDictContentGlobalCounters::MAX_VALUE_OF_COUNTERS_INDEX = 1;
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/v4/content/language_model_dict_content_global_counters.h b/native/jni/src/dictionary/structure/v4/content/language_model_dict_content_global_counters.h
new file mode 100644
index 0000000..3f87c0e
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/content/language_model_dict_content_global_counters.h
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2014, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_LANGUAGE_MODEL_DICT_CONTENT_GLOBAL_COUNTERS_H
+#define LATINIME_LANGUAGE_MODEL_DICT_CONTENT_GLOBAL_COUNTERS_H
+
+#include <cstdio>
+
+#include "defines.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/dict_file_writing_utils.h"
+#include "utils/byte_array_view.h"
+
+namespace latinime {
+
+class LanguageModelDictContentGlobalCounters {
+ public:
+    explicit LanguageModelDictContentGlobalCounters(const ReadWriteByteArrayView buffer)
+            : mBuffer(buffer, 0 /* maxAdditionalBufferSize */),
+              mTotalCount(readValue(mBuffer, TOTAL_COUNT_INDEX)),
+              mMaxValueOfCounters(readValue(mBuffer, MAX_VALUE_OF_COUNTERS_INDEX)) {}
+
+    LanguageModelDictContentGlobalCounters()
+            : mBuffer(0 /* maxAdditionalBufferSize */), mTotalCount(0), mMaxValueOfCounters(0) {}
+
+    bool needsToHalveCounters() const {
+        return mMaxValueOfCounters >= COUNTER_VALUE_NEAR_LIMIT_THRESHOLD
+                || mTotalCount >= TOTAL_COUNT_VALUE_NEAR_LIMIT_THRESHOLD;
+    }
+
+    int getTotalCount() const {
+        return mTotalCount;
+    }
+
+    bool save(FILE *const file) const {
+        BufferWithExtendableBuffer bufferToWrite(
+                BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE);
+        if (!bufferToWrite.writeUint(mTotalCount, COUNTER_SIZE_IN_BYTES,
+                TOTAL_COUNT_INDEX * COUNTER_SIZE_IN_BYTES)) {
+            return false;
+        }
+        if (!bufferToWrite.writeUint(mMaxValueOfCounters, COUNTER_SIZE_IN_BYTES,
+                MAX_VALUE_OF_COUNTERS_INDEX * COUNTER_SIZE_IN_BYTES)) {
+            return false;
+        }
+        return DictFileWritingUtils::writeBufferToFileTail(file, &bufferToWrite);
+    }
+
+    void incrementTotalCount() {
+        mTotalCount += 1;
+    }
+
+    void addToTotalCount(const int count) {
+        mTotalCount += count;
+    }
+
+    void updateMaxValueOfCounters(const int count) {
+        mMaxValueOfCounters = std::max(count, mMaxValueOfCounters);
+    }
+
+    void halveCounters() {
+        mMaxValueOfCounters /= 2;
+        mTotalCount /= 2;
+    }
+
+private:
+    DISALLOW_COPY_AND_ASSIGN(LanguageModelDictContentGlobalCounters);
+
+    const static int COUNTER_VALUE_NEAR_LIMIT_THRESHOLD;
+    const static int TOTAL_COUNT_VALUE_NEAR_LIMIT_THRESHOLD;
+    const static int COUNTER_SIZE_IN_BYTES;
+    const static int TOTAL_COUNT_INDEX;
+    const static int MAX_VALUE_OF_COUNTERS_INDEX;
+
+    BufferWithExtendableBuffer mBuffer;
+    int mTotalCount;
+    int mMaxValueOfCounters;
+
+    static int readValue(const BufferWithExtendableBuffer &buffer, const int index) {
+        const int pos = COUNTER_SIZE_IN_BYTES * index;
+        if (pos + COUNTER_SIZE_IN_BYTES > buffer.getTailPosition()) {
+            return 0;
+        }
+        return buffer.readUint(COUNTER_SIZE_IN_BYTES, pos);
+    }
+};
+} // namespace latinime
+#endif /* LATINIME_LANGUAGE_MODEL_DICT_CONTENT_GLOBAL_COUNTERS_H */
diff --git a/native/jni/src/dictionary/structure/v4/content/probability_entry.h b/native/jni/src/dictionary/structure/v4/content/probability_entry.h
new file mode 100644
index 0000000..473354b
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/content/probability_entry.h
@@ -0,0 +1,176 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_PROBABILITY_ENTRY_H
+#define LATINIME_PROBABILITY_ENTRY_H
+
+#include <climits>
+#include <cstdint>
+
+#include "defines.h"
+#include "dictionary/property/historical_info.h"
+#include "dictionary/property/ngram_property.h"
+#include "dictionary/property/unigram_property.h"
+#include "dictionary/structure/v4/ver4_dict_constants.h"
+
+namespace latinime {
+
+class ProbabilityEntry {
+ public:
+    ProbabilityEntry(const ProbabilityEntry &probabilityEntry)
+            : mFlags(probabilityEntry.mFlags), mProbability(probabilityEntry.mProbability),
+              mHistoricalInfo(probabilityEntry.mHistoricalInfo) {}
+
+    // Dummy entry
+    ProbabilityEntry()
+            : mFlags(Ver4DictConstants::FLAG_NOT_A_VALID_ENTRY), mProbability(NOT_A_PROBABILITY),
+              mHistoricalInfo() {}
+
+    // Entry without historical information
+    ProbabilityEntry(const int flags, const int probability)
+            : mFlags(flags), mProbability(probability), mHistoricalInfo() {}
+
+    // Entry with historical information.
+    ProbabilityEntry(const int flags, const HistoricalInfo *const historicalInfo)
+            : mFlags(flags), mProbability(NOT_A_PROBABILITY), mHistoricalInfo(*historicalInfo) {}
+
+    // Create from unigram property.
+    ProbabilityEntry(const UnigramProperty *const unigramProperty)
+            : mFlags(createFlags(unigramProperty->representsBeginningOfSentence(),
+                    unigramProperty->isNotAWord(), unigramProperty->isBlacklisted(),
+                    unigramProperty->isPossiblyOffensive())),
+              mProbability(unigramProperty->getProbability()),
+              mHistoricalInfo(unigramProperty->getHistoricalInfo()) {}
+
+    // Create from ngram property.
+    // TODO: Set flags.
+    ProbabilityEntry(const NgramProperty *const ngramProperty)
+            : mFlags(0), mProbability(ngramProperty->getProbability()),
+              mHistoricalInfo(ngramProperty->getHistoricalInfo()) {}
+
+    bool isValid() const {
+        return (mFlags & Ver4DictConstants::FLAG_NOT_A_VALID_ENTRY) == 0;
+    }
+
+    bool hasHistoricalInfo() const {
+        return mHistoricalInfo.isValid();
+    }
+
+    uint8_t getFlags() const {
+        return mFlags;
+    }
+
+    int getProbability() const {
+        return mProbability;
+    }
+
+    const HistoricalInfo *getHistoricalInfo() const {
+        return &mHistoricalInfo;
+    }
+
+    bool representsBeginningOfSentence() const {
+        return (mFlags & Ver4DictConstants::FLAG_REPRESENTS_BEGINNING_OF_SENTENCE) != 0;
+    }
+
+    bool isNotAWord() const {
+        return (mFlags & Ver4DictConstants::FLAG_NOT_A_WORD) != 0;
+    }
+
+    bool isBlacklisted() const {
+        return (mFlags & Ver4DictConstants::FLAG_BLACKLISTED) != 0;
+    }
+
+    bool isPossiblyOffensive() const {
+        return (mFlags & Ver4DictConstants::FLAG_POSSIBLY_OFFENSIVE) != 0;
+    }
+
+    uint64_t encode(const bool hasHistoricalInfo) const {
+        uint64_t encodedEntry = static_cast<uint8_t>(mFlags);
+        if (hasHistoricalInfo) {
+            encodedEntry = (encodedEntry << (Ver4DictConstants::TIME_STAMP_FIELD_SIZE * CHAR_BIT))
+                    | static_cast<uint32_t>(mHistoricalInfo.getTimestamp());
+            encodedEntry = (encodedEntry << (Ver4DictConstants::WORD_LEVEL_FIELD_SIZE * CHAR_BIT))
+                    | static_cast<uint8_t>(mHistoricalInfo.getLevel());
+            encodedEntry = (encodedEntry << (Ver4DictConstants::WORD_COUNT_FIELD_SIZE * CHAR_BIT))
+                    | static_cast<uint16_t>(mHistoricalInfo.getCount());
+        } else {
+            encodedEntry = (encodedEntry << (Ver4DictConstants::PROBABILITY_SIZE * CHAR_BIT))
+                    | static_cast<uint8_t>(mProbability);
+        }
+        return encodedEntry;
+    }
+
+    static ProbabilityEntry decode(const uint64_t encodedEntry, const bool hasHistoricalInfo) {
+        if (hasHistoricalInfo) {
+            const int flags = readFromEncodedEntry(encodedEntry,
+                    Ver4DictConstants::FLAGS_IN_LANGUAGE_MODEL_SIZE,
+                    Ver4DictConstants::TIME_STAMP_FIELD_SIZE
+                            + Ver4DictConstants::WORD_LEVEL_FIELD_SIZE
+                            + Ver4DictConstants::WORD_COUNT_FIELD_SIZE);
+            const int timestamp = readFromEncodedEntry(encodedEntry,
+                    Ver4DictConstants::TIME_STAMP_FIELD_SIZE,
+                    Ver4DictConstants::WORD_LEVEL_FIELD_SIZE
+                            + Ver4DictConstants::WORD_COUNT_FIELD_SIZE);
+            const int level = readFromEncodedEntry(encodedEntry,
+                    Ver4DictConstants::WORD_LEVEL_FIELD_SIZE,
+                    Ver4DictConstants::WORD_COUNT_FIELD_SIZE);
+            const int count = readFromEncodedEntry(encodedEntry,
+                    Ver4DictConstants::WORD_COUNT_FIELD_SIZE, 0 /* pos */);
+            const HistoricalInfo historicalInfo(timestamp, level, count);
+            return ProbabilityEntry(flags, &historicalInfo);
+        } else {
+            const int flags = readFromEncodedEntry(encodedEntry,
+                    Ver4DictConstants::FLAGS_IN_LANGUAGE_MODEL_SIZE,
+                    Ver4DictConstants::PROBABILITY_SIZE);
+            const int probability = readFromEncodedEntry(encodedEntry,
+                    Ver4DictConstants::PROBABILITY_SIZE, 0 /* pos */);
+            return ProbabilityEntry(flags, probability);
+        }
+    }
+
+ private:
+    // Copy constructor is public to use this class as a type of return value.
+    DISALLOW_ASSIGNMENT_OPERATOR(ProbabilityEntry);
+
+    const uint8_t mFlags;
+    const int mProbability;
+    const HistoricalInfo mHistoricalInfo;
+
+    static int readFromEncodedEntry(const uint64_t encodedEntry, const int size, const int pos) {
+        return static_cast<int>(
+                (encodedEntry >> (pos * CHAR_BIT)) & ((1ull << (size * CHAR_BIT)) - 1));
+    }
+
+    static uint8_t createFlags(const bool representsBeginningOfSentence,
+            const bool isNotAWord, const bool isBlacklisted, const bool isPossiblyOffensive) {
+        uint8_t flags = 0;
+        if (representsBeginningOfSentence) {
+            flags |= Ver4DictConstants::FLAG_REPRESENTS_BEGINNING_OF_SENTENCE;
+        }
+        if (isNotAWord) {
+            flags |= Ver4DictConstants::FLAG_NOT_A_WORD;
+        }
+        if (isBlacklisted) {
+            flags |= Ver4DictConstants::FLAG_BLACKLISTED;
+        }
+        if (isPossiblyOffensive) {
+            flags |= Ver4DictConstants::FLAG_POSSIBLY_OFFENSIVE;
+        }
+        return flags;
+    }
+};
+} // namespace latinime
+#endif /* LATINIME_PROBABILITY_ENTRY_H */
diff --git a/native/jni/src/dictionary/structure/v4/content/shortcut_dict_content.cpp b/native/jni/src/dictionary/structure/v4/content/shortcut_dict_content.cpp
new file mode 100644
index 0000000..e3b4194
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/content/shortcut_dict_content.cpp
@@ -0,0 +1,182 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/v4/content/shortcut_dict_content.h"
+
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+
+namespace latinime {
+
+void ShortcutDictContent::getShortcutEntryAndAdvancePosition(const int maxCodePointCount,
+        int *const outCodePoint, int *const outCodePointCount, int *const outProbability,
+        bool *const outhasNext, int *const shortcutEntryPos) const {
+    const BufferWithExtendableBuffer *const shortcutListBuffer = getContentBuffer();
+    if (*shortcutEntryPos < 0 || *shortcutEntryPos >=  shortcutListBuffer->getTailPosition()) {
+        AKLOGE("Invalid shortcut entry position. shortcutEntryPos: %d, bufSize: %d",
+                *shortcutEntryPos, shortcutListBuffer->getTailPosition());
+        ASSERT(false);
+        if (outhasNext) {
+            *outhasNext = false;
+        }
+        if (outCodePointCount) {
+            *outCodePointCount = 0;
+        }
+        return;
+    }
+
+    const int shortcutFlags = shortcutListBuffer->readUintAndAdvancePosition(
+            Ver4DictConstants::SHORTCUT_FLAGS_FIELD_SIZE, shortcutEntryPos);
+    if (outProbability) {
+        *outProbability = shortcutFlags & Ver4DictConstants::SHORTCUT_PROBABILITY_MASK;
+    }
+    if (outhasNext) {
+        *outhasNext = shortcutFlags & Ver4DictConstants::SHORTCUT_HAS_NEXT_MASK;
+    }
+    if (outCodePoint && outCodePointCount) {
+        shortcutListBuffer->readCodePointsAndAdvancePosition(
+                maxCodePointCount, outCodePoint, outCodePointCount, shortcutEntryPos);
+    }
+}
+
+int ShortcutDictContent::getShortcutListHeadPos(const int terminalId) const {
+    const SparseTable *const addressLookupTable = getAddressLookupTable();
+    if (!addressLookupTable->contains(terminalId)) {
+        return NOT_A_DICT_POS;
+    }
+    return addressLookupTable->get(terminalId);
+}
+
+bool ShortcutDictContent::runGC(
+        const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
+        const ShortcutDictContent *const originalShortcutDictContent) {
+   for (TerminalPositionLookupTable::TerminalIdMap::const_iterator it = terminalIdMap->begin();
+           it != terminalIdMap->end(); ++it) {
+       const int originalShortcutListPos =
+               originalShortcutDictContent->getShortcutListHeadPos(it->first);
+       if (originalShortcutListPos == NOT_A_DICT_POS) {
+           continue;
+       }
+       const int shortcutListPos = getContentBuffer()->getTailPosition();
+       // Copy shortcut list from original content.
+       if (!copyShortcutListFromDictContent(originalShortcutListPos, originalShortcutDictContent,
+               shortcutListPos)) {
+           AKLOGE("Cannot copy shortcut list during GC. original pos: %d, pos: %d",
+                   originalShortcutListPos, shortcutListPos);
+           return false;
+       }
+       // Set shortcut list position to the lookup table.
+       if (!getUpdatableAddressLookupTable()->set(it->second, shortcutListPos)) {
+           AKLOGE("Cannot set shortcut list position. terminal id: %d, pos: %d",
+                   it->second, shortcutListPos);
+           return false;
+       }
+   }
+   return true;
+}
+
+bool ShortcutDictContent::createNewShortcutList(const int terminalId) {
+    const int shortcutListListPos = getContentBuffer()->getTailPosition();
+    return getUpdatableAddressLookupTable()->set(terminalId, shortcutListListPos);
+}
+
+bool ShortcutDictContent::copyShortcutList(const int shortcutListPos, const int toPos) {
+    return copyShortcutListFromDictContent(shortcutListPos, this, toPos);
+}
+
+bool ShortcutDictContent::copyShortcutListFromDictContent(const int shortcutListPos,
+        const ShortcutDictContent *const sourceShortcutDictContent, const int toPos) {
+    bool hasNext = true;
+    int readingPos = shortcutListPos;
+    int writingPos = toPos;
+    int codePoints[MAX_WORD_LENGTH];
+    while (hasNext) {
+        int probability = 0;
+        int codePointCount = 0;
+        sourceShortcutDictContent->getShortcutEntryAndAdvancePosition(MAX_WORD_LENGTH,
+                codePoints, &codePointCount, &probability, &hasNext, &readingPos);
+        if (!writeShortcutEntryAndAdvancePosition(codePoints, codePointCount, probability,
+                hasNext, &writingPos)) {
+            AKLOGE("Cannot write shortcut entry to copy. pos: %d", writingPos);
+            return false;
+        }
+    }
+    return true;
+}
+
+bool ShortcutDictContent::setProbability(const int probability, const int shortcutEntryPos) {
+    BufferWithExtendableBuffer *const shortcutListBuffer = getWritableContentBuffer();
+    const int shortcutFlags = shortcutListBuffer->readUint(
+            Ver4DictConstants::SHORTCUT_FLAGS_FIELD_SIZE, shortcutEntryPos);
+    const bool hasNext = shortcutFlags & Ver4DictConstants::SHORTCUT_HAS_NEXT_MASK;
+    const int shortcutFlagsToWrite = createAndGetShortcutFlags(probability, hasNext);
+    return shortcutListBuffer->writeUint(shortcutFlagsToWrite,
+            Ver4DictConstants::SHORTCUT_FLAGS_FIELD_SIZE, shortcutEntryPos);
+}
+
+bool ShortcutDictContent::writeShortcutEntryAndAdvancePosition(const int *const codePoint,
+        const int codePointCount, const int probability, const bool hasNext,
+        int *const shortcutEntryPos) {
+    BufferWithExtendableBuffer *const shortcutListBuffer = getWritableContentBuffer();
+    const int shortcutFlags = createAndGetShortcutFlags(probability, hasNext);
+    if (!shortcutListBuffer->writeUintAndAdvancePosition(shortcutFlags,
+            Ver4DictConstants::SHORTCUT_FLAGS_FIELD_SIZE, shortcutEntryPos)) {
+        AKLOGE("Cannot write shortcut flags. flags; %x, pos: %d", shortcutFlags, *shortcutEntryPos);
+        return false;
+    }
+    if (!shortcutListBuffer->writeCodePointsAndAdvancePosition(codePoint, codePointCount,
+            true /* writesTerminator */, shortcutEntryPos)) {
+        AKLOGE("Cannot write shortcut target code points. pos: %d", *shortcutEntryPos);
+        return false;
+    }
+    return true;
+}
+
+// Find a shortcut entry that has specified target and return its position.
+int ShortcutDictContent::findShortcutEntryAndGetPos(const int shortcutListPos,
+        const int *const targetCodePointsToFind, const int codePointCount) const {
+    bool hasNext = true;
+    int readingPos = shortcutListPos;
+    int targetCodePoints[MAX_WORD_LENGTH];
+    while (hasNext) {
+        const int entryPos = readingPos;
+        int probability = 0;
+        int targetCodePointCount = 0;
+        getShortcutEntryAndAdvancePosition(MAX_WORD_LENGTH, targetCodePoints, &targetCodePointCount,
+                &probability, &hasNext, &readingPos);
+        if (targetCodePointCount != codePointCount) {
+            continue;
+        }
+        bool matched = true;
+        for (int i = 0; i < codePointCount; ++i) {
+            if (targetCodePointsToFind[i] != targetCodePoints[i]) {
+                matched = false;
+                break;
+            }
+        }
+        if (matched) {
+            return entryPos;
+        }
+    }
+    return NOT_A_DICT_POS;
+}
+
+int ShortcutDictContent::createAndGetShortcutFlags(const int probability,
+        const bool hasNext) const {
+    return (probability & Ver4DictConstants::SHORTCUT_PROBABILITY_MASK)
+            | (hasNext ? Ver4DictConstants::SHORTCUT_HAS_NEXT_MASK : 0);
+}
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/v4/content/shortcut_dict_content.h b/native/jni/src/dictionary/structure/v4/content/shortcut_dict_content.h
new file mode 100644
index 0000000..27de4e7
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/content/shortcut_dict_content.h
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_SHORTCUT_DICT_CONTENT_H
+#define LATINIME_SHORTCUT_DICT_CONTENT_H
+
+#include <cstdio>
+
+#include "defines.h"
+#include "dictionary/structure/v4/content/sparse_table_dict_content.h"
+#include "dictionary/structure/v4/content/terminal_position_lookup_table.h"
+#include "dictionary/structure/v4/ver4_dict_constants.h"
+
+namespace latinime {
+
+class ReadWriteByteArrayView;
+
+class ShortcutDictContent : public SparseTableDictContent {
+ public:
+    ShortcutDictContent(const ReadWriteByteArrayView *const buffers)
+            : SparseTableDictContent(buffers, Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_BLOCK_SIZE,
+                      Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_DATA_SIZE) {}
+
+    ShortcutDictContent()
+            : SparseTableDictContent(Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_BLOCK_SIZE,
+                      Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_DATA_SIZE) {}
+
+    void getShortcutEntry(const int maxCodePointCount, int *const outCodePoint,
+            int *const outCodePointCount, int *const outProbability, bool *const outhasNext,
+            const int shortcutEntryPos) {
+        int readingPos = shortcutEntryPos;
+        return getShortcutEntryAndAdvancePosition(maxCodePointCount, outCodePoint,
+                outCodePointCount, outProbability, outhasNext, &readingPos);
+    }
+
+    void getShortcutEntryAndAdvancePosition(const int maxCodePointCount,
+            int *const outCodePoint, int *const outCodePointCount, int *const outProbability,
+            bool *const outhasNext, int *const shortcutEntryPos) const;
+
+   // Returns head position of shortcut list for a PtNode specified by terminalId.
+   int getShortcutListHeadPos(const int terminalId) const;
+
+   bool flushToFile(FILE *const file) const {
+       return flush(file);
+   }
+
+   bool runGC(const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
+           const ShortcutDictContent *const originalShortcutDictContent);
+
+   bool createNewShortcutList(const int terminalId);
+
+   bool copyShortcutList(const int shortcutListPos, const int toPos);
+
+   bool setProbability(const int probability, const int shortcutEntryPos);
+
+   bool writeShortcutEntry(const int *const codePoint, const int codePointCount,
+           const int probability, const bool hasNext, const int shortcutEntryPos) {
+       int writingPos = shortcutEntryPos;
+       return writeShortcutEntryAndAdvancePosition(codePoint, codePointCount, probability,
+               hasNext, &writingPos);
+   }
+
+   bool writeShortcutEntryAndAdvancePosition(const int *const codePoint,
+           const int codePointCount, const int probability, const bool hasNext,
+           int *const shortcutEntryPos);
+
+   int findShortcutEntryAndGetPos(const int shortcutListPos,
+           const int *const targetCodePointsToFind, const int codePointCount) const;
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(ShortcutDictContent);
+
+    bool copyShortcutListFromDictContent(const int shortcutListPos,
+            const ShortcutDictContent *const sourceShortcutDictContent, const int toPos);
+
+    int createAndGetShortcutFlags(const int probability, const bool hasNext) const;
+};
+} // namespace latinime
+#endif /* LATINIME_SHORTCUT_DICT_CONTENT_H */
diff --git a/native/jni/src/dictionary/structure/v4/content/single_dict_content.h b/native/jni/src/dictionary/structure/v4/content/single_dict_content.h
new file mode 100644
index 0000000..6faa9a2
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/content/single_dict_content.h
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_SINGLE_DICT_CONTENT_H
+#define LATINIME_SINGLE_DICT_CONTENT_H
+
+#include <cstdio>
+
+#include "defines.h"
+#include "dictionary/structure/v4/ver4_dict_constants.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/dict_file_writing_utils.h"
+#include "utils/byte_array_view.h"
+
+namespace latinime {
+
+class SingleDictContent {
+ public:
+    SingleDictContent(const ReadWriteByteArrayView buffer)
+            : mExpandableContentBuffer(buffer,
+                    BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE) {}
+
+    SingleDictContent()
+            : mExpandableContentBuffer(Ver4DictConstants::MAX_DICTIONARY_SIZE) {}
+
+    virtual ~SingleDictContent() {}
+
+    bool isNearSizeLimit() const {
+        return mExpandableContentBuffer.isNearSizeLimit();
+    }
+
+ protected:
+    BufferWithExtendableBuffer *getWritableBuffer() {
+        return &mExpandableContentBuffer;
+    }
+
+    const BufferWithExtendableBuffer *getBuffer() const {
+        return &mExpandableContentBuffer;
+    }
+
+    bool flush(FILE *const file) const {
+        return DictFileWritingUtils::writeBufferToFileTail(file, &mExpandableContentBuffer);
+    }
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(SingleDictContent);
+
+    BufferWithExtendableBuffer mExpandableContentBuffer;
+};
+} // namespace latinime
+#endif /* LATINIME_SINGLE_DICT_CONTENT_H */
diff --git a/native/jni/src/dictionary/structure/v4/content/sparse_table_dict_content.cpp b/native/jni/src/dictionary/structure/v4/content/sparse_table_dict_content.cpp
new file mode 100644
index 0000000..685365f
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/content/sparse_table_dict_content.cpp
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/v4/content/sparse_table_dict_content.h"
+
+#include "dictionary/utils/dict_file_writing_utils.h"
+
+namespace latinime {
+
+const int SparseTableDictContent::LOOKUP_TABLE_BUFFER_INDEX = 0;
+const int SparseTableDictContent::ADDRESS_TABLE_BUFFER_INDEX = 1;
+const int SparseTableDictContent::CONTENT_BUFFER_INDEX = 2;
+
+bool SparseTableDictContent::flush(FILE *const file) const {
+    if (!DictFileWritingUtils::writeBufferToFileTail(file, &mExpandableLookupTableBuffer)) {
+        return false;
+    }
+    if (!DictFileWritingUtils::writeBufferToFileTail(file, &mExpandableAddressTableBuffer)) {
+        return false;
+    }
+    if (!DictFileWritingUtils::writeBufferToFileTail(file, &mExpandableContentBuffer)) {
+        return false;
+    }
+    return true;
+}
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/v4/content/sparse_table_dict_content.h b/native/jni/src/dictionary/structure/v4/content/sparse_table_dict_content.h
new file mode 100644
index 0000000..6245abc
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/content/sparse_table_dict_content.h
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_SPARSE_TABLE_DICT_CONTENT_H
+#define LATINIME_SPARSE_TABLE_DICT_CONTENT_H
+
+#include <cstdio>
+
+#include "defines.h"
+#include "dictionary/structure/v4/ver4_dict_constants.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/sparse_table.h"
+#include "utils/byte_array_view.h"
+
+namespace latinime {
+
+// TODO: Support multiple contents.
+class SparseTableDictContent {
+ public:
+    AK_FORCE_INLINE SparseTableDictContent(const ReadWriteByteArrayView *const buffers,
+            const int sparseTableBlockSize, const int sparseTableDataSize)
+            : mExpandableLookupTableBuffer(buffers[LOOKUP_TABLE_BUFFER_INDEX],
+                      BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
+              mExpandableAddressTableBuffer(buffers[ADDRESS_TABLE_BUFFER_INDEX],
+                      BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
+              mExpandableContentBuffer(buffers[CONTENT_BUFFER_INDEX],
+                      BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
+              mAddressLookupTable(&mExpandableLookupTableBuffer, &mExpandableAddressTableBuffer,
+                      sparseTableBlockSize, sparseTableDataSize) {}
+
+    SparseTableDictContent(const int sparseTableBlockSize, const int sparseTableDataSize)
+            : mExpandableLookupTableBuffer(Ver4DictConstants::MAX_DICTIONARY_SIZE),
+              mExpandableAddressTableBuffer(Ver4DictConstants::MAX_DICTIONARY_SIZE),
+              mExpandableContentBuffer(Ver4DictConstants::MAX_DICTIONARY_SIZE),
+              mAddressLookupTable(&mExpandableLookupTableBuffer, &mExpandableAddressTableBuffer,
+                      sparseTableBlockSize, sparseTableDataSize) {}
+
+    virtual ~SparseTableDictContent() {}
+
+    bool isNearSizeLimit() const {
+        return mExpandableLookupTableBuffer.isNearSizeLimit()
+                || mExpandableAddressTableBuffer.isNearSizeLimit()
+                || mExpandableContentBuffer.isNearSizeLimit();
+    }
+
+ protected:
+    SparseTable *getUpdatableAddressLookupTable() {
+        return &mAddressLookupTable;
+    }
+
+    const SparseTable *getAddressLookupTable() const {
+        return &mAddressLookupTable;
+    }
+
+    BufferWithExtendableBuffer *getWritableContentBuffer() {
+        return &mExpandableContentBuffer;
+    }
+
+    const BufferWithExtendableBuffer *getContentBuffer() const {
+        return &mExpandableContentBuffer;
+    }
+
+    bool flush(FILE *const file) const;
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(SparseTableDictContent);
+
+    static const int LOOKUP_TABLE_BUFFER_INDEX;
+    static const int ADDRESS_TABLE_BUFFER_INDEX;
+    static const int CONTENT_BUFFER_INDEX;
+
+    BufferWithExtendableBuffer mExpandableLookupTableBuffer;
+    BufferWithExtendableBuffer mExpandableAddressTableBuffer;
+    BufferWithExtendableBuffer mExpandableContentBuffer;
+    SparseTable mAddressLookupTable;
+};
+} // namespace latinime
+#endif /* LATINIME_SPARSE_TABLE_DICT_CONTENT_H */
diff --git a/native/jni/src/dictionary/structure/v4/content/terminal_position_lookup_table.cpp b/native/jni/src/dictionary/structure/v4/content/terminal_position_lookup_table.cpp
new file mode 100644
index 0000000..5503151
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/content/terminal_position_lookup_table.cpp
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/v4/content/terminal_position_lookup_table.h"
+
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+
+namespace latinime {
+
+int TerminalPositionLookupTable::getTerminalPtNodePosition(const int terminalId) const {
+    if (terminalId < 0 || terminalId >= mSize) {
+        return NOT_A_DICT_POS;
+    }
+    const int terminalPos = getBuffer()->readUint(
+            Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE, getEntryPos(terminalId));
+    return (terminalPos == Ver4DictConstants::NOT_A_TERMINAL_ADDRESS) ?
+            NOT_A_DICT_POS : terminalPos;
+}
+
+bool TerminalPositionLookupTable::setTerminalPtNodePosition(
+        const int terminalId, const int terminalPtNodePos) {
+    if (terminalId < 0) {
+        return false;
+    }
+    while (terminalId >= mSize) {
+        // Write new entry.
+        if (!getWritableBuffer()->writeUint(Ver4DictConstants::NOT_A_TERMINAL_ADDRESS,
+                Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE, getEntryPos(mSize))) {
+            return false;
+        }
+        mSize++;
+    }
+    const int terminalPos = (terminalPtNodePos != NOT_A_DICT_POS) ?
+            terminalPtNodePos : Ver4DictConstants::NOT_A_TERMINAL_ADDRESS;
+    return getWritableBuffer()->writeUint(terminalPos,
+            Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE, getEntryPos(terminalId));
+}
+
+bool TerminalPositionLookupTable::flushToFile(FILE *const file) const {
+    // If the used buffer size is smaller than the actual buffer size, regenerate the lookup
+    // table and write the new table to the file.
+    if (getEntryPos(mSize) < getBuffer()->getTailPosition()) {
+        TerminalPositionLookupTable lookupTableToWrite;
+        for (int i = 0; i < mSize; ++i) {
+            const int terminalPtNodePosition = getTerminalPtNodePosition(i);
+            if (!lookupTableToWrite.setTerminalPtNodePosition(i, terminalPtNodePosition)) {
+                AKLOGE("Cannot set terminal position to lookupTableToWrite."
+                        " terminalId: %d, position: %d", i, terminalPtNodePosition);
+                return false;
+            }
+        }
+        return lookupTableToWrite.flush(file);
+    } else {
+        // We can simply use this lookup table because the buffer size has not been
+        // changed.
+        return flush(file);
+    }
+}
+
+bool TerminalPositionLookupTable::runGCTerminalIds(TerminalIdMap *const terminalIdMap) {
+    int removedEntryCount = 0;
+    int nextNewTerminalId = 0;
+    for (int i = 0; i < mSize; ++i) {
+        const int terminalPos = getBuffer()->readUint(
+                Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE, getEntryPos(i));
+        if (terminalPos == Ver4DictConstants::NOT_A_TERMINAL_ADDRESS) {
+            // This entry is a garbage.
+            removedEntryCount++;
+        } else {
+            // Give a new terminal id to the entry.
+            if (!getWritableBuffer()->writeUint(terminalPos,
+                    Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE,
+                    getEntryPos(nextNewTerminalId))) {
+                return false;
+            }
+            // Memorize the mapping to the old terminal id to the new terminal id.
+            terminalIdMap->insert(TerminalIdMap::value_type(i, nextNewTerminalId));
+            nextNewTerminalId++;
+        }
+    }
+    mSize = nextNewTerminalId;
+    return true;
+}
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/v4/content/terminal_position_lookup_table.h b/native/jni/src/dictionary/structure/v4/content/terminal_position_lookup_table.h
new file mode 100644
index 0000000..f45ceb5
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/content/terminal_position_lookup_table.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_TERMINAL_POSITION_LOOKUP_TABLE_H
+#define LATINIME_TERMINAL_POSITION_LOOKUP_TABLE_H
+
+#include <cstdio>
+#include <unordered_map>
+
+#include "defines.h"
+#include "dictionary/structure/v4/content/single_dict_content.h"
+#include "dictionary/structure/v4/ver4_dict_constants.h"
+#include "utils/byte_array_view.h"
+
+namespace latinime {
+
+class TerminalPositionLookupTable : public SingleDictContent {
+ public:
+    typedef std::unordered_map<int, int> TerminalIdMap;
+
+    TerminalPositionLookupTable(const ReadWriteByteArrayView buffer)
+            : SingleDictContent(buffer),
+              mSize(getBuffer()->getTailPosition()
+                      / Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE) {}
+
+    TerminalPositionLookupTable() : mSize(0) {}
+
+    int getTerminalPtNodePosition(const int terminalId) const;
+
+    bool setTerminalPtNodePosition(const int terminalId, const int terminalPtNodePos);
+
+    int getNextTerminalId() const {
+        return mSize;
+    }
+
+    bool flushToFile(FILE *const file) const;
+
+    bool runGCTerminalIds(TerminalIdMap *const terminalIdMap);
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(TerminalPositionLookupTable);
+
+    int getEntryPos(const int terminalId) const {
+        return terminalId * Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE;
+    }
+
+    int mSize;
+};
+} // namespace latinime
+#endif // LATINIME_TERMINAL_POSITION_LOOKUP_TABLE_H
diff --git a/native/jni/src/dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h b/native/jni/src/dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h
new file mode 100644
index 0000000..25ab225
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_VER4_SHORTCUT_LIST_POLICY_H
+#define LATINIME_VER4_SHORTCUT_LIST_POLICY_H
+
+#include "defines.h"
+#include "dictionary/interface/dictionary_shortcuts_structure_policy.h"
+#include "dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.h"
+#include "dictionary/structure/v4/content/shortcut_dict_content.h"
+#include "dictionary/structure/v4/content/terminal_position_lookup_table.h"
+
+namespace latinime {
+
+class Ver4ShortcutListPolicy : public DictionaryShortcutsStructurePolicy {
+ public:
+    Ver4ShortcutListPolicy(ShortcutDictContent *const shortcutDictContent,
+            const TerminalPositionLookupTable *const terminalPositionLookupTable)
+            : mShortcutDictContent(shortcutDictContent) {}
+
+    ~Ver4ShortcutListPolicy() {}
+
+    int getStartPos(const int pos) const {
+        // The first shortcut entry is located at the head position of the shortcut list.
+        return pos;
+    }
+
+    void getNextShortcut(const int maxCodePointCount, int *const outCodePoint,
+            int *const outCodePointCount, bool *const outIsWhitelist, bool *const outHasNext,
+            int *const pos) const {
+        int probability = 0;
+        mShortcutDictContent->getShortcutEntryAndAdvancePosition(maxCodePointCount,
+                outCodePoint, outCodePointCount, &probability, outHasNext, pos);
+        if (outIsWhitelist) {
+            *outIsWhitelist = ShortcutListReadingUtils::isWhitelist(probability);
+        }
+    }
+
+    void skipAllShortcuts(int *const pos) const {
+        // Do nothing because we don't need to skip shortcut lists in ver4 dictionaries.
+    }
+
+    bool addNewShortcut(const int terminalId, const int *const codePoints, const int codePointCount,
+            const int probability) {
+        const int shortcutListPos = mShortcutDictContent->getShortcutListHeadPos(terminalId);
+        if (shortcutListPos == NOT_A_DICT_POS) {
+            // Create shortcut list.
+            if (!mShortcutDictContent->createNewShortcutList(terminalId)) {
+                AKLOGE("Cannot create new shortcut list. terminal id: %d", terminalId);
+                return false;
+            }
+            const int writingPos =  mShortcutDictContent->getShortcutListHeadPos(terminalId);
+            return mShortcutDictContent->writeShortcutEntry(codePoints, codePointCount, probability,
+                    false /* hasNext */, writingPos);
+        }
+        const int entryPos = mShortcutDictContent->findShortcutEntryAndGetPos(shortcutListPos,
+                codePoints, codePointCount);
+        if (entryPos == NOT_A_DICT_POS) {
+            // Add new entry to the shortcut list.
+            // Create new shortcut list.
+            if (!mShortcutDictContent->createNewShortcutList(terminalId)) {
+                AKLOGE("Cannot create new shortcut list. terminal id: %d", terminalId);
+                return false;
+            }
+            int writingPos =  mShortcutDictContent->getShortcutListHeadPos(terminalId);
+            if (!mShortcutDictContent->writeShortcutEntryAndAdvancePosition(codePoints,
+                    codePointCount, probability, true /* hasNext */, &writingPos)) {
+                AKLOGE("Cannot write shortcut entry. terminal id: %d, pos: %d", terminalId,
+                        writingPos);
+                return false;
+            }
+            return mShortcutDictContent->copyShortcutList(shortcutListPos, writingPos);
+        }
+        // Overwrite existing entry.
+        bool hasNext = false;
+        mShortcutDictContent->getShortcutEntry(MAX_WORD_LENGTH, 0 /* outCodePoint */,
+                0 /* outCodePointCount */ , 0 /* probability */, &hasNext, entryPos);
+        if (!mShortcutDictContent->writeShortcutEntry(codePoints,
+                codePointCount, probability, hasNext, entryPos)) {
+            AKLOGE("Cannot overwrite shortcut entry. terminal id: %d, pos: %d", terminalId,
+                    entryPos);
+            return false;
+        }
+        return true;
+    }
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(Ver4ShortcutListPolicy);
+
+    ShortcutDictContent *const mShortcutDictContent;
+};
+} // namespace latinime
+#endif // LATINIME_VER4_SHORTCUT_LIST_POLICY_H
diff --git a/native/jni/src/dictionary/structure/v4/ver4_dict_buffers.cpp b/native/jni/src/dictionary/structure/v4/ver4_dict_buffers.cpp
new file mode 100644
index 0000000..b0a8283
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/ver4_dict_buffers.cpp
@@ -0,0 +1,194 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/v4/ver4_dict_buffers.h"
+
+#include <cerrno>
+#include <cstring>
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <vector>
+
+#include "dictionary/utils/byte_array_utils.h"
+#include "dictionary/utils/dict_file_writing_utils.h"
+#include "dictionary/utils/file_utils.h"
+#include "utils/byte_array_view.h"
+
+namespace latinime {
+
+/* static */ Ver4DictBuffers::Ver4DictBuffersPtr Ver4DictBuffers::openVer4DictBuffers(
+        const char *const dictPath, MmappedBuffer::MmappedBufferPtr &&headerBuffer,
+        const FormatUtils::FORMAT_VERSION formatVersion) {
+    if (!headerBuffer) {
+        ASSERT(false);
+        AKLOGE("The header buffer must be valid to open ver4 dict buffers.");
+        return Ver4DictBuffersPtr(nullptr);
+    }
+    // TODO: take only dictDirPath, and open both header and trie files in the constructor below
+    const bool isUpdatable = headerBuffer->isUpdatable();
+    MmappedBuffer::MmappedBufferPtr bodyBuffer = MmappedBuffer::openBuffer(dictPath,
+            Ver4DictConstants::BODY_FILE_EXTENSION, isUpdatable);
+    if (!bodyBuffer) {
+        return Ver4DictBuffersPtr(nullptr);
+    }
+    std::vector<ReadWriteByteArrayView> buffers;
+    const ReadWriteByteArrayView buffer = bodyBuffer->getReadWriteByteArrayView();
+    int position = 0;
+    while (position < static_cast<int>(buffer.size())) {
+        const int bufferSize = ByteArrayUtils::readUint32AndAdvancePosition(
+                buffer.data(), &position);
+        buffers.push_back(buffer.subView(position, bufferSize));
+        position += bufferSize;
+        if (bufferSize < 0 || position < 0 || position > static_cast<int>(buffer.size())) {
+            AKLOGE("The dict body file is corrupted.");
+            return Ver4DictBuffersPtr(nullptr);
+        }
+    }
+    if (buffers.size() != Ver4DictConstants::NUM_OF_CONTENT_BUFFERS_IN_BODY_FILE) {
+        AKLOGE("The dict body file is corrupted.");
+        return Ver4DictBuffersPtr(nullptr);
+    }
+    return Ver4DictBuffersPtr(new Ver4DictBuffers(std::move(headerBuffer), std::move(bodyBuffer),
+            formatVersion, buffers));
+}
+
+bool Ver4DictBuffers::flushHeaderAndDictBuffers(const char *const dictDirPath,
+        const BufferWithExtendableBuffer *const headerBuffer) const {
+    // Create temporary directory.
+    const int tmpDirPathBufSize = FileUtils::getFilePathWithSuffixBufSize(dictDirPath,
+            DictFileWritingUtils::TEMP_FILE_SUFFIX_FOR_WRITING_DICT_FILE);
+    char tmpDirPath[tmpDirPathBufSize];
+    FileUtils::getFilePathWithSuffix(dictDirPath,
+            DictFileWritingUtils::TEMP_FILE_SUFFIX_FOR_WRITING_DICT_FILE, tmpDirPathBufSize,
+            tmpDirPath);
+    if (FileUtils::existsDir(tmpDirPath)) {
+        if (!FileUtils::removeDirAndFiles(tmpDirPath)) {
+            AKLOGE("Existing directory %s cannot be removed.", tmpDirPath);
+            ASSERT(false);
+            return false;
+        }
+    }
+    umask(S_IWGRP | S_IWOTH);
+    if (mkdir(tmpDirPath, S_IRWXU) == -1) {
+        AKLOGE("Cannot create directory: %s. errno: %d.", tmpDirPath, errno);
+        return false;
+    }
+    // Get dictionary base path.
+    const int dictNameBufSize = strlen(dictDirPath) + 1 /* terminator */;
+    char dictName[dictNameBufSize];
+    FileUtils::getBasename(dictDirPath, dictNameBufSize, dictName);
+    const int dictPathBufSize = FileUtils::getFilePathBufSize(tmpDirPath, dictName);
+    char dictPath[dictPathBufSize];
+    FileUtils::getFilePath(tmpDirPath, dictName, dictPathBufSize, dictPath);
+
+    // Write header file.
+    if (!DictFileWritingUtils::flushBufferToFileWithSuffix(dictPath,
+            Ver4DictConstants::HEADER_FILE_EXTENSION, headerBuffer)) {
+        AKLOGE("Dictionary header file %s%s cannot be written.", tmpDirPath,
+                Ver4DictConstants::HEADER_FILE_EXTENSION);
+        return false;
+    }
+
+    // Write body file.
+    const int bodyFilePathBufSize = FileUtils::getFilePathWithSuffixBufSize(dictPath,
+            Ver4DictConstants::BODY_FILE_EXTENSION);
+    char bodyFilePath[bodyFilePathBufSize];
+    FileUtils::getFilePathWithSuffix(dictPath, Ver4DictConstants::BODY_FILE_EXTENSION,
+            bodyFilePathBufSize, bodyFilePath);
+
+    const int fd = open(bodyFilePath, O_WRONLY | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR);
+    if (fd == -1) {
+        AKLOGE("File %s cannot be opened. errno: %d", bodyFilePath, errno);
+        ASSERT(false);
+        return false;
+    }
+    FILE *const file = fdopen(fd, "wb");
+    if (!file) {
+        AKLOGE("fdopen failed for the file %s. errno: %d", bodyFilePath, errno);
+        ASSERT(false);
+        return false;
+    }
+
+    if (!flushDictBuffers(file)) {
+        fclose(file);
+        return false;
+    }
+    fclose(file);
+    // Remove existing dictionary.
+    if (!FileUtils::removeDirAndFiles(dictDirPath)) {
+        AKLOGE("Existing directory %s cannot be removed.", dictDirPath);
+        ASSERT(false);
+        return false;
+    }
+    // Rename temporary directory.
+    if (rename(tmpDirPath, dictDirPath) != 0) {
+        AKLOGE("%s cannot be renamed to %s", tmpDirPath, dictDirPath);
+        ASSERT(false);
+        return false;
+    }
+    return true;
+}
+
+bool Ver4DictBuffers::flushDictBuffers(FILE *const file) const {
+    // Write trie.
+    if (!DictFileWritingUtils::writeBufferToFileTail(file, &mExpandableTrieBuffer)) {
+        AKLOGE("Trie cannot be written.");
+        return false;
+    }
+    // Write terminal position lookup table.
+    if (!mTerminalPositionLookupTable.flushToFile(file)) {
+        AKLOGE("Terminal position lookup table cannot be written.");
+        return false;
+    }
+    // Write language model content.
+    if (!mLanguageModelDictContent.save(file)) {
+        AKLOGE("Language model dict content cannot be written.");
+        return false;
+    }
+    // Write shortcut dict content.
+    if (!mShortcutDictContent.flushToFile(file)) {
+        AKLOGE("Shortcut dict content cannot be written.");
+        return false;
+    }
+    return true;
+}
+
+Ver4DictBuffers::Ver4DictBuffers(MmappedBuffer::MmappedBufferPtr &&headerBuffer,
+        MmappedBuffer::MmappedBufferPtr &&bodyBuffer,
+        const FormatUtils::FORMAT_VERSION formatVersion,
+        const std::vector<ReadWriteByteArrayView> &contentBuffers)
+        : mHeaderBuffer(std::move(headerBuffer)), mDictBuffer(std::move(bodyBuffer)),
+          mHeaderPolicy(mHeaderBuffer->getReadOnlyByteArrayView().data(), formatVersion),
+          mExpandableHeaderBuffer(mHeaderBuffer->getReadWriteByteArrayView(),
+                  BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
+          mExpandableTrieBuffer(contentBuffers[Ver4DictConstants::TRIE_BUFFER_INDEX],
+                  BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
+          mTerminalPositionLookupTable(
+                  contentBuffers[Ver4DictConstants::TERMINAL_ADDRESS_LOOKUP_TABLE_BUFFER_INDEX]),
+          mLanguageModelDictContent(&contentBuffers[Ver4DictConstants::LANGUAGE_MODEL_BUFFER_INDEX],
+                  mHeaderPolicy.hasHistoricalInfoOfWords()),
+          mShortcutDictContent(&contentBuffers[Ver4DictConstants::SHORTCUT_BUFFERS_INDEX]),
+          mIsUpdatable(mDictBuffer->isUpdatable()) {}
+
+Ver4DictBuffers::Ver4DictBuffers(const HeaderPolicy *const headerPolicy, const int maxTrieSize)
+        : mHeaderBuffer(nullptr), mDictBuffer(nullptr), mHeaderPolicy(headerPolicy),
+          mExpandableHeaderBuffer(Ver4DictConstants::MAX_DICTIONARY_SIZE),
+          mExpandableTrieBuffer(maxTrieSize), mTerminalPositionLookupTable(),
+          mLanguageModelDictContent(headerPolicy->hasHistoricalInfoOfWords()),
+          mShortcutDictContent(),  mIsUpdatable(true) {}
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/v4/ver4_dict_buffers.h b/native/jni/src/dictionary/structure/v4/ver4_dict_buffers.h
new file mode 100644
index 0000000..c8270c9
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/ver4_dict_buffers.h
@@ -0,0 +1,132 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_VER4_DICT_BUFFER_H
+#define LATINIME_VER4_DICT_BUFFER_H
+
+#include <cstdio>
+#include <memory>
+
+#include "defines.h"
+#include "dictionary/header/header_policy.h"
+#include "dictionary/structure/v4/content/language_model_dict_content.h"
+#include "dictionary/structure/v4/content/shortcut_dict_content.h"
+#include "dictionary/structure/v4/content/terminal_position_lookup_table.h"
+#include "dictionary/structure/v4/ver4_dict_constants.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/mmapped_buffer.h"
+
+namespace latinime {
+
+class Ver4DictBuffers {
+ public:
+    typedef std::unique_ptr<Ver4DictBuffers> Ver4DictBuffersPtr;
+
+    static Ver4DictBuffersPtr openVer4DictBuffers(const char *const dictDirPath,
+            MmappedBuffer::MmappedBufferPtr &&headerBuffer,
+            const FormatUtils::FORMAT_VERSION formatVersion);
+
+    static AK_FORCE_INLINE Ver4DictBuffersPtr createVer4DictBuffers(
+            const HeaderPolicy *const headerPolicy, const int maxTrieSize) {
+        return Ver4DictBuffersPtr(new Ver4DictBuffers(headerPolicy, maxTrieSize));
+    }
+
+    AK_FORCE_INLINE bool isValid() const {
+        return mHeaderBuffer && mDictBuffer && mHeaderPolicy.isValid();
+    }
+
+    AK_FORCE_INLINE bool isNearSizeLimit() const {
+        return mExpandableTrieBuffer.isNearSizeLimit()
+                || mTerminalPositionLookupTable.isNearSizeLimit()
+                || mLanguageModelDictContent.isNearSizeLimit()
+                || mShortcutDictContent.isNearSizeLimit();
+    }
+
+    AK_FORCE_INLINE const HeaderPolicy *getHeaderPolicy() const {
+        return &mHeaderPolicy;
+    }
+
+    AK_FORCE_INLINE BufferWithExtendableBuffer *getWritableHeaderBuffer() {
+        return &mExpandableHeaderBuffer;
+    }
+
+    AK_FORCE_INLINE BufferWithExtendableBuffer *getWritableTrieBuffer() {
+        return &mExpandableTrieBuffer;
+    }
+
+    AK_FORCE_INLINE const BufferWithExtendableBuffer *getTrieBuffer() const {
+        return &mExpandableTrieBuffer;
+    }
+
+    AK_FORCE_INLINE TerminalPositionLookupTable *getMutableTerminalPositionLookupTable() {
+        return &mTerminalPositionLookupTable;
+    }
+
+    AK_FORCE_INLINE const TerminalPositionLookupTable *getTerminalPositionLookupTable() const {
+        return &mTerminalPositionLookupTable;
+    }
+
+    AK_FORCE_INLINE LanguageModelDictContent *getMutableLanguageModelDictContent() {
+        return &mLanguageModelDictContent;
+    }
+
+    AK_FORCE_INLINE const LanguageModelDictContent *getLanguageModelDictContent() const {
+        return &mLanguageModelDictContent;
+    }
+
+    AK_FORCE_INLINE ShortcutDictContent *getMutableShortcutDictContent() {
+        return &mShortcutDictContent;
+    }
+
+    AK_FORCE_INLINE const ShortcutDictContent *getShortcutDictContent() const {
+        return &mShortcutDictContent;
+    }
+
+    AK_FORCE_INLINE bool isUpdatable() const {
+        return mIsUpdatable;
+    }
+
+    bool flush(const char *const dictDirPath) const {
+        return flushHeaderAndDictBuffers(dictDirPath, &mExpandableHeaderBuffer);
+    }
+
+    bool flushHeaderAndDictBuffers(const char *const dictDirPath,
+            const BufferWithExtendableBuffer *const headerBuffer) const;
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(Ver4DictBuffers);
+
+    Ver4DictBuffers(MmappedBuffer::MmappedBufferPtr &&headerBuffer,
+            MmappedBuffer::MmappedBufferPtr &&bodyBuffer,
+            const FormatUtils::FORMAT_VERSION formatVersion,
+            const std::vector<ReadWriteByteArrayView> &contentBuffers);
+
+    Ver4DictBuffers(const HeaderPolicy *const headerPolicy, const int maxTrieSize);
+
+    bool flushDictBuffers(FILE *const file) const;
+
+    const MmappedBuffer::MmappedBufferPtr mHeaderBuffer;
+    const MmappedBuffer::MmappedBufferPtr mDictBuffer;
+    const HeaderPolicy mHeaderPolicy;
+    BufferWithExtendableBuffer mExpandableHeaderBuffer;
+    BufferWithExtendableBuffer mExpandableTrieBuffer;
+    TerminalPositionLookupTable mTerminalPositionLookupTable;
+    LanguageModelDictContent mLanguageModelDictContent;
+    ShortcutDictContent mShortcutDictContent;
+    const int mIsUpdatable;
+};
+} // namespace latinime
+#endif /* LATINIME_VER4_DICT_BUFFER_H */
diff --git a/native/jni/src/dictionary/structure/v4/ver4_dict_constants.cpp b/native/jni/src/dictionary/structure/v4/ver4_dict_constants.cpp
new file mode 100644
index 0000000..fd69078
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/ver4_dict_constants.cpp
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/v4/ver4_dict_constants.h"
+
+namespace latinime {
+
+const char *const Ver4DictConstants::BODY_FILE_EXTENSION = ".body";
+const char *const Ver4DictConstants::HEADER_FILE_EXTENSION = ".header";
+
+// Version 4 dictionary size is implicitly limited to 8MB due to 3-byte offsets.
+const int Ver4DictConstants::MAX_DICTIONARY_SIZE = 8 * 1024 * 1024;
+// Extended region size, which is not GCed region size in dict file + additional buffer size, is
+// limited to 1MB to prevent from inefficient traversing.
+const int Ver4DictConstants::MAX_DICT_EXTENDED_REGION_SIZE = 1 * 1024 * 1024;
+
+// NUM_OF_BUFFERS_FOR_SINGLE_DICT_CONTENT for Trie and TerminalAddressLookupTable.
+// NUM_OF_BUFFERS_FOR_LANGUAGE_MODEL_DICT_CONTENT for language model.
+// NUM_OF_BUFFERS_FOR_SPARSE_TABLE_DICT_CONTENT for shortcut.
+const size_t Ver4DictConstants::NUM_OF_CONTENT_BUFFERS_IN_BODY_FILE =
+        NUM_OF_BUFFERS_FOR_SINGLE_DICT_CONTENT * 2
+                + NUM_OF_BUFFERS_FOR_LANGUAGE_MODEL_DICT_CONTENT
+                + NUM_OF_BUFFERS_FOR_SPARSE_TABLE_DICT_CONTENT;
+const int Ver4DictConstants::TRIE_BUFFER_INDEX = 0;
+const int Ver4DictConstants::TERMINAL_ADDRESS_LOOKUP_TABLE_BUFFER_INDEX =
+        TRIE_BUFFER_INDEX + NUM_OF_BUFFERS_FOR_SINGLE_DICT_CONTENT;
+const int Ver4DictConstants::LANGUAGE_MODEL_BUFFER_INDEX =
+        TERMINAL_ADDRESS_LOOKUP_TABLE_BUFFER_INDEX + NUM_OF_BUFFERS_FOR_SINGLE_DICT_CONTENT;
+const int Ver4DictConstants::SHORTCUT_BUFFERS_INDEX =
+        LANGUAGE_MODEL_BUFFER_INDEX + NUM_OF_BUFFERS_FOR_LANGUAGE_MODEL_DICT_CONTENT;
+
+const int Ver4DictConstants::NOT_A_TERMINAL_ID = -1;
+const int Ver4DictConstants::PROBABILITY_SIZE = 1;
+const int Ver4DictConstants::FLAGS_IN_LANGUAGE_MODEL_SIZE = 1;
+const int Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE = 3;
+const int Ver4DictConstants::NOT_A_TERMINAL_ADDRESS = 0;
+const int Ver4DictConstants::TERMINAL_ID_FIELD_SIZE = 4;
+const int Ver4DictConstants::TIME_STAMP_FIELD_SIZE = 4;
+const int Ver4DictConstants::WORD_LEVEL_FIELD_SIZE = 0;
+const int Ver4DictConstants::WORD_COUNT_FIELD_SIZE = 2;
+
+const uint8_t Ver4DictConstants::FLAG_REPRESENTS_BEGINNING_OF_SENTENCE = 0x1;
+const uint8_t Ver4DictConstants::FLAG_NOT_A_VALID_ENTRY = 0x2;
+const uint8_t Ver4DictConstants::FLAG_NOT_A_WORD = 0x4;
+const uint8_t Ver4DictConstants::FLAG_BLACKLISTED = 0x8;
+const uint8_t Ver4DictConstants::FLAG_POSSIBLY_OFFENSIVE = 0x10;
+
+const int Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_BLOCK_SIZE = 64;
+const int Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_DATA_SIZE = 4;
+
+const int Ver4DictConstants::SHORTCUT_FLAGS_FIELD_SIZE = 1;
+const int Ver4DictConstants::SHORTCUT_PROBABILITY_MASK = 0x0F;
+const int Ver4DictConstants::SHORTCUT_HAS_NEXT_MASK = 0x80;
+
+const size_t Ver4DictConstants::NUM_OF_BUFFERS_FOR_SINGLE_DICT_CONTENT = 1;
+const size_t Ver4DictConstants::NUM_OF_BUFFERS_FOR_SPARSE_TABLE_DICT_CONTENT = 3;
+const size_t Ver4DictConstants::NUM_OF_BUFFERS_FOR_LANGUAGE_MODEL_DICT_CONTENT = 2;
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/v4/ver4_dict_constants.h b/native/jni/src/dictionary/structure/v4/ver4_dict_constants.h
new file mode 100644
index 0000000..13d7a57
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/ver4_dict_constants.h
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_VER4_DICT_CONSTANTS_H
+#define LATINIME_VER4_DICT_CONSTANTS_H
+
+#include "defines.h"
+
+#include <cstddef>
+#include <cstdint>
+
+namespace latinime {
+
+// TODO: Create PtConstants under the pt_common and move some constant values there.
+// Note that there are corresponding definitions in FormatSpec.java.
+class Ver4DictConstants {
+ public:
+    static const char *const BODY_FILE_EXTENSION;
+    static const char *const HEADER_FILE_EXTENSION;
+    static const int MAX_DICTIONARY_SIZE;
+    static const int MAX_DICT_EXTENDED_REGION_SIZE;
+
+    static const size_t NUM_OF_CONTENT_BUFFERS_IN_BODY_FILE;
+    static const int TRIE_BUFFER_INDEX;
+    static const int TERMINAL_ADDRESS_LOOKUP_TABLE_BUFFER_INDEX;
+    static const int LANGUAGE_MODEL_BUFFER_INDEX;
+    static const int BIGRAM_BUFFERS_INDEX;
+    static const int SHORTCUT_BUFFERS_INDEX;
+
+    static const int NOT_A_TERMINAL_ID;
+    static const int PROBABILITY_SIZE;
+    static const int FLAGS_IN_LANGUAGE_MODEL_SIZE;
+    static const int TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE;
+    static const int NOT_A_TERMINAL_ADDRESS;
+    static const int TERMINAL_ID_FIELD_SIZE;
+    static const int TIME_STAMP_FIELD_SIZE;
+    // TODO: Remove
+    static const int WORD_LEVEL_FIELD_SIZE;
+    static const int WORD_COUNT_FIELD_SIZE;
+    // Flags in probability entry.
+    static const uint8_t FLAG_REPRESENTS_BEGINNING_OF_SENTENCE;
+    static const uint8_t FLAG_NOT_A_VALID_ENTRY;
+    static const uint8_t FLAG_NOT_A_WORD;
+    static const uint8_t FLAG_BLACKLISTED;
+    static const uint8_t FLAG_POSSIBLY_OFFENSIVE;
+
+    static const int SHORTCUT_ADDRESS_TABLE_BLOCK_SIZE;
+    static const int SHORTCUT_ADDRESS_TABLE_DATA_SIZE;
+
+    static const int SHORTCUT_FLAGS_FIELD_SIZE;
+    static const int SHORTCUT_PROBABILITY_MASK;
+    static const int SHORTCUT_HAS_NEXT_MASK;
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(Ver4DictConstants);
+
+    static const size_t NUM_OF_BUFFERS_FOR_SINGLE_DICT_CONTENT;
+    static const size_t NUM_OF_BUFFERS_FOR_SPARSE_TABLE_DICT_CONTENT;
+    static const size_t NUM_OF_BUFFERS_FOR_LANGUAGE_MODEL_DICT_CONTENT;
+};
+} // namespace latinime
+#endif /* LATINIME_VER4_DICT_CONSTANTS_H */
diff --git a/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_node_reader.cpp b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_node_reader.cpp
new file mode 100644
index 0000000..b38b03d
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_node_reader.cpp
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/v4/ver4_patricia_trie_node_reader.h"
+
+#include "dictionary/header/header_policy.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
+#include "dictionary/structure/pt_common/patricia_trie_reading_utils.h"
+#include "dictionary/structure/v4/content/language_model_dict_content.h"
+#include "dictionary/structure/v4/content/probability_entry.h"
+#include "dictionary/structure/v4/ver4_patricia_trie_reading_utils.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/forgetting_curve_utils.h"
+
+namespace latinime {
+
+const PtNodeParams Ver4PatriciaTrieNodeReader::fetchPtNodeInfoFromBufferAndProcessMovedPtNode(
+        const int ptNodePos, const int siblingNodePos) const {
+    if (ptNodePos < 0 || ptNodePos >= mBuffer->getTailPosition()) {
+        // Reading invalid position because of bug or broken dictionary.
+        AKLOGE("Fetching PtNode info from invalid dictionary position: %d, dictionary size: %d",
+                ptNodePos, mBuffer->getTailPosition());
+        ASSERT(false);
+        return PtNodeParams();
+    }
+    const bool usesAdditionalBuffer = mBuffer->isInAdditionalBuffer(ptNodePos);
+    const uint8_t *const dictBuf = mBuffer->getBuffer(usesAdditionalBuffer);
+    int pos = ptNodePos;
+    const int headPos = ptNodePos;
+    if (usesAdditionalBuffer) {
+        pos -= mBuffer->getOriginalBufferSize();
+    }
+    const PatriciaTrieReadingUtils::NodeFlags flags =
+            PatriciaTrieReadingUtils::getFlagsAndAdvancePosition(dictBuf, &pos);
+    const int parentPosOffset =
+            DynamicPtReadingUtils::getParentPtNodePosOffsetAndAdvancePosition(
+                    dictBuf, &pos);
+    const int parentPos =
+            DynamicPtReadingUtils::getParentPtNodePos(parentPosOffset, headPos);
+    int codePoints[MAX_WORD_LENGTH];
+    // Code point table is not used for ver4 dictionaries.
+    const int codePointCount = PatriciaTrieReadingUtils::getCharsAndAdvancePosition(
+            dictBuf, flags, MAX_WORD_LENGTH, nullptr /* codePointTable */, codePoints, &pos);
+    int terminalIdFieldPos = NOT_A_DICT_POS;
+    int terminalId = Ver4DictConstants::NOT_A_TERMINAL_ID;
+    if (PatriciaTrieReadingUtils::isTerminal(flags)) {
+        terminalIdFieldPos = pos;
+        if (usesAdditionalBuffer) {
+            terminalIdFieldPos += mBuffer->getOriginalBufferSize();
+        }
+        terminalId = Ver4PatriciaTrieReadingUtils::getTerminalIdAndAdvancePosition(dictBuf, &pos);
+    }
+    int childrenPosFieldPos = pos;
+    if (usesAdditionalBuffer) {
+        childrenPosFieldPos += mBuffer->getOriginalBufferSize();
+    }
+    int childrenPos = DynamicPtReadingUtils::readChildrenPositionAndAdvancePosition(
+            dictBuf, &pos);
+    if (usesAdditionalBuffer && childrenPos != NOT_A_DICT_POS) {
+        childrenPos += mBuffer->getOriginalBufferSize();
+    }
+    if (usesAdditionalBuffer) {
+        pos += mBuffer->getOriginalBufferSize();
+    }
+    // Sibling position is the tail position of original PtNode.
+    int newSiblingNodePos = (siblingNodePos == NOT_A_DICT_POS) ? pos : siblingNodePos;
+    // Read destination node if the read node is a moved node.
+    if (DynamicPtReadingUtils::isMoved(flags)) {
+        // The destination position is stored at the same place as the parent position.
+        return fetchPtNodeInfoFromBufferAndProcessMovedPtNode(parentPos, newSiblingNodePos);
+    } else {
+        return PtNodeParams(headPos, flags, parentPos, codePointCount, codePoints,
+                terminalIdFieldPos, terminalId, NOT_A_PROBABILITY, childrenPosFieldPos, childrenPos,
+                newSiblingNodePos);
+    }
+}
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_node_reader.h b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_node_reader.h
new file mode 100644
index 0000000..4e5ae3a
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_node_reader.h
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_VER4_PATRICIA_TRIE_NODE_READER_H
+#define LATINIME_VER4_PATRICIA_TRIE_NODE_READER_H
+
+#include "defines.h"
+#include "dictionary/structure/pt_common/pt_node_params.h"
+#include "dictionary/structure/pt_common/pt_node_reader.h"
+
+namespace latinime {
+
+class BufferWithExtendableBuffer;
+class HeaderPolicy;
+class LanguageModelDictContent;
+
+/*
+ * This class is used for helping to read nodes of ver4 patricia trie. This class handles moved
+ * node and reads node attributes.
+ */
+class Ver4PatriciaTrieNodeReader : public PtNodeReader {
+ public:
+    explicit Ver4PatriciaTrieNodeReader(const BufferWithExtendableBuffer *const buffer)
+            : mBuffer(buffer) {}
+
+    ~Ver4PatriciaTrieNodeReader() {}
+
+    virtual const PtNodeParams fetchPtNodeParamsInBufferFromPtNodePos(const int ptNodePos) const {
+        return fetchPtNodeInfoFromBufferAndProcessMovedPtNode(ptNodePos,
+                NOT_A_DICT_POS /* siblingNodePos */);
+    }
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(Ver4PatriciaTrieNodeReader);
+
+    const BufferWithExtendableBuffer *const mBuffer;
+
+    const PtNodeParams fetchPtNodeInfoFromBufferAndProcessMovedPtNode(const int ptNodePos,
+            const int siblingNodePos) const;
+};
+} // namespace latinime
+#endif /* LATINIME_VER4_PATRICIA_TRIE_NODE_READER_H */
diff --git a/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_node_writer.cpp b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_node_writer.cpp
new file mode 100644
index 0000000..d974b50
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_node_writer.cpp
@@ -0,0 +1,354 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/v4/ver4_patricia_trie_node_writer.h"
+
+#include "dictionary/header/header_policy.h"
+#include "dictionary/property/unigram_property.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
+#include "dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
+#include "dictionary/structure/pt_common/patricia_trie_reading_utils.h"
+#include "dictionary/structure/v4/content/probability_entry.h"
+#include "dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h"
+#include "dictionary/structure/v4/ver4_patricia_trie_node_reader.h"
+#include "dictionary/structure/v4/ver4_dict_buffers.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/forgetting_curve_utils.h"
+
+namespace latinime {
+
+const int Ver4PatriciaTrieNodeWriter::CHILDREN_POSITION_FIELD_SIZE = 3;
+
+bool Ver4PatriciaTrieNodeWriter::markPtNodeAsDeleted(
+        const PtNodeParams *const toBeUpdatedPtNodeParams) {
+    int pos = toBeUpdatedPtNodeParams->getHeadPos();
+    const bool usesAdditionalBuffer = mTrieBuffer->isInAdditionalBuffer(pos);
+    const uint8_t *const dictBuf = mTrieBuffer->getBuffer(usesAdditionalBuffer);
+    if (usesAdditionalBuffer) {
+        pos -= mTrieBuffer->getOriginalBufferSize();
+    }
+    // Read original flags
+    const PatriciaTrieReadingUtils::NodeFlags originalFlags =
+            PatriciaTrieReadingUtils::getFlagsAndAdvancePosition(dictBuf, &pos);
+    const PatriciaTrieReadingUtils::NodeFlags updatedFlags =
+            DynamicPtReadingUtils::updateAndGetFlags(originalFlags, false /* isMoved */,
+                    true /* isDeleted */, false /* willBecomeNonTerminal */);
+    int writingPos = toBeUpdatedPtNodeParams->getHeadPos();
+    // Update flags.
+    if (!DynamicPtWritingUtils::writeFlagsAndAdvancePosition(mTrieBuffer, updatedFlags,
+            &writingPos)) {
+        return false;
+    }
+    if (toBeUpdatedPtNodeParams->isTerminal()) {
+        // The PtNode is a terminal. Delete entry from the terminal position lookup table.
+        return mBuffers->getMutableTerminalPositionLookupTable()->setTerminalPtNodePosition(
+                toBeUpdatedPtNodeParams->getTerminalId(), NOT_A_DICT_POS /* ptNodePos */);
+    } else {
+        return true;
+    }
+}
+
+// TODO: Quit using bigramLinkedNodePos.
+bool Ver4PatriciaTrieNodeWriter::markPtNodeAsMoved(
+        const PtNodeParams *const toBeUpdatedPtNodeParams,
+        const int movedPos, const int bigramLinkedNodePos) {
+    int pos = toBeUpdatedPtNodeParams->getHeadPos();
+    const bool usesAdditionalBuffer = mTrieBuffer->isInAdditionalBuffer(pos);
+    const uint8_t *const dictBuf = mTrieBuffer->getBuffer(usesAdditionalBuffer);
+    if (usesAdditionalBuffer) {
+        pos -= mTrieBuffer->getOriginalBufferSize();
+    }
+    // Read original flags
+    const PatriciaTrieReadingUtils::NodeFlags originalFlags =
+            PatriciaTrieReadingUtils::getFlagsAndAdvancePosition(dictBuf, &pos);
+    const PatriciaTrieReadingUtils::NodeFlags updatedFlags =
+            DynamicPtReadingUtils::updateAndGetFlags(originalFlags, true /* isMoved */,
+                    false /* isDeleted */, false /* willBecomeNonTerminal */);
+    int writingPos = toBeUpdatedPtNodeParams->getHeadPos();
+    // Update flags.
+    if (!DynamicPtWritingUtils::writeFlagsAndAdvancePosition(mTrieBuffer, updatedFlags,
+            &writingPos)) {
+        return false;
+    }
+    // Update moved position, which is stored in the parent offset field.
+    if (!DynamicPtWritingUtils::writeParentPosOffsetAndAdvancePosition(
+            mTrieBuffer, movedPos, toBeUpdatedPtNodeParams->getHeadPos(), &writingPos)) {
+        return false;
+    }
+    if (toBeUpdatedPtNodeParams->hasChildren()) {
+        // Update children's parent position.
+        mReadingHelper.initWithPtNodeArrayPos(toBeUpdatedPtNodeParams->getChildrenPos());
+        while (!mReadingHelper.isEnd()) {
+            const PtNodeParams childPtNodeParams(mReadingHelper.getPtNodeParams());
+            int parentOffsetFieldPos = childPtNodeParams.getHeadPos()
+                    + DynamicPtWritingUtils::NODE_FLAG_FIELD_SIZE;
+            if (!DynamicPtWritingUtils::writeParentPosOffsetAndAdvancePosition(
+                    mTrieBuffer, bigramLinkedNodePos, childPtNodeParams.getHeadPos(),
+                    &parentOffsetFieldPos)) {
+                // Parent offset cannot be written because of a bug or a broken dictionary; thus,
+                // we give up to update dictionary.
+                return false;
+            }
+            mReadingHelper.readNextSiblingNode(childPtNodeParams);
+        }
+    }
+    return true;
+}
+
+bool Ver4PatriciaTrieNodeWriter::markPtNodeAsWillBecomeNonTerminal(
+        const PtNodeParams *const toBeUpdatedPtNodeParams) {
+    int pos = toBeUpdatedPtNodeParams->getHeadPos();
+    const bool usesAdditionalBuffer = mTrieBuffer->isInAdditionalBuffer(pos);
+    const uint8_t *const dictBuf = mTrieBuffer->getBuffer(usesAdditionalBuffer);
+    if (usesAdditionalBuffer) {
+        pos -= mTrieBuffer->getOriginalBufferSize();
+    }
+    // Read original flags
+    const PatriciaTrieReadingUtils::NodeFlags originalFlags =
+            PatriciaTrieReadingUtils::getFlagsAndAdvancePosition(dictBuf, &pos);
+    const PatriciaTrieReadingUtils::NodeFlags updatedFlags =
+            DynamicPtReadingUtils::updateAndGetFlags(originalFlags, false /* isMoved */,
+                    false /* isDeleted */, true /* willBecomeNonTerminal */);
+    if (!mBuffers->getMutableTerminalPositionLookupTable()->setTerminalPtNodePosition(
+            toBeUpdatedPtNodeParams->getTerminalId(), NOT_A_DICT_POS /* ptNodePos */)) {
+        AKLOGE("Cannot update terminal position lookup table. terminal id: %d",
+                toBeUpdatedPtNodeParams->getTerminalId());
+        return false;
+    }
+    // Update flags.
+    int writingPos = toBeUpdatedPtNodeParams->getHeadPos();
+    return DynamicPtWritingUtils::writeFlagsAndAdvancePosition(mTrieBuffer, updatedFlags,
+            &writingPos);
+}
+
+bool Ver4PatriciaTrieNodeWriter::updatePtNodeUnigramProperty(
+        const PtNodeParams *const toBeUpdatedPtNodeParams,
+        const UnigramProperty *const unigramProperty) {
+    // Update probability and historical information.
+    // TODO: Update other information in the unigram property.
+    if (!toBeUpdatedPtNodeParams->isTerminal()) {
+        return false;
+    }
+    const ProbabilityEntry probabilityEntryOfUnigramProperty = ProbabilityEntry(unigramProperty);
+    return mBuffers->getMutableLanguageModelDictContent()->setProbabilityEntry(
+            toBeUpdatedPtNodeParams->getTerminalId(), &probabilityEntryOfUnigramProperty);
+}
+
+bool Ver4PatriciaTrieNodeWriter::updatePtNodeProbabilityAndGetNeedsToKeepPtNodeAfterGC(
+        const PtNodeParams *const toBeUpdatedPtNodeParams, bool *const outNeedsToKeepPtNode) {
+    if (!toBeUpdatedPtNodeParams->isTerminal()) {
+        AKLOGE("updatePtNodeProbabilityAndGetNeedsToSaveForGC is called for non-terminal PtNode.");
+        return false;
+    }
+    const ProbabilityEntry originalProbabilityEntry =
+            mBuffers->getLanguageModelDictContent()->getProbabilityEntry(
+                    toBeUpdatedPtNodeParams->getTerminalId());
+    if (originalProbabilityEntry.isValid()) {
+        *outNeedsToKeepPtNode = true;
+        return true;
+    }
+    if (!markPtNodeAsWillBecomeNonTerminal(toBeUpdatedPtNodeParams)) {
+        AKLOGE("Cannot mark PtNode as willBecomeNonTerminal.");
+        return false;
+    }
+    *outNeedsToKeepPtNode = false;
+    return true;
+}
+
+bool Ver4PatriciaTrieNodeWriter::updateChildrenPosition(
+        const PtNodeParams *const toBeUpdatedPtNodeParams, const int newChildrenPosition) {
+    int childrenPosFieldPos = toBeUpdatedPtNodeParams->getChildrenPosFieldPos();
+    return DynamicPtWritingUtils::writeChildrenPositionAndAdvancePosition(mTrieBuffer,
+            newChildrenPosition, &childrenPosFieldPos);
+}
+
+bool Ver4PatriciaTrieNodeWriter::updateTerminalId(const PtNodeParams *const toBeUpdatedPtNodeParams,
+        const int newTerminalId) {
+    return mTrieBuffer->writeUint(newTerminalId, Ver4DictConstants::TERMINAL_ID_FIELD_SIZE,
+            toBeUpdatedPtNodeParams->getTerminalIdFieldPos());
+}
+
+bool Ver4PatriciaTrieNodeWriter::writePtNodeAndAdvancePosition(
+        const PtNodeParams *const ptNodeParams, int *const ptNodeWritingPos) {
+    return writePtNodeAndGetTerminalIdAndAdvancePosition(ptNodeParams, 0 /* outTerminalId */,
+            ptNodeWritingPos);
+}
+
+bool Ver4PatriciaTrieNodeWriter::writeNewTerminalPtNodeAndAdvancePosition(
+        const PtNodeParams *const ptNodeParams, const UnigramProperty *const unigramProperty,
+        int *const ptNodeWritingPos) {
+    int terminalId = Ver4DictConstants::NOT_A_TERMINAL_ID;
+    if (!writePtNodeAndGetTerminalIdAndAdvancePosition(ptNodeParams, &terminalId,
+            ptNodeWritingPos)) {
+        return false;
+    }
+    // Write probability.
+    ProbabilityEntry newProbabilityEntry;
+    const ProbabilityEntry probabilityEntryOfUnigramProperty = ProbabilityEntry(unigramProperty);
+    return mBuffers->getMutableLanguageModelDictContent()->setProbabilityEntry(
+            terminalId, &probabilityEntryOfUnigramProperty);
+}
+
+// TODO: Support counting ngram entries.
+bool Ver4PatriciaTrieNodeWriter::addNgramEntry(const WordIdArrayView prevWordIds, const int wordId,
+        const NgramProperty *const ngramProperty, bool *const outAddedNewBigram) {
+    LanguageModelDictContent *const languageModelDictContent =
+            mBuffers->getMutableLanguageModelDictContent();
+    const ProbabilityEntry probabilityEntry =
+            languageModelDictContent->getNgramProbabilityEntry(prevWordIds, wordId);
+    const ProbabilityEntry probabilityEntryOfNgramProperty(ngramProperty);
+    if (!languageModelDictContent->setNgramProbabilityEntry(
+            prevWordIds, wordId, &probabilityEntryOfNgramProperty)) {
+        AKLOGE("Cannot add new ngram entry. prevWordId[0]: %d, prevWordId.size(): %zd, wordId: %d",
+                prevWordIds[0], prevWordIds.size(), wordId);
+        return false;
+    }
+    if (!probabilityEntry.isValid() && outAddedNewBigram) {
+        *outAddedNewBigram = true;
+    }
+    return true;
+}
+
+bool Ver4PatriciaTrieNodeWriter::removeNgramEntry(const WordIdArrayView prevWordIds,
+        const int wordId) {
+    LanguageModelDictContent *const languageModelDictContent =
+            mBuffers->getMutableLanguageModelDictContent();
+    return languageModelDictContent->removeNgramProbabilityEntry(prevWordIds, wordId);
+}
+
+// TODO: Remove when we stop supporting v402 format.
+bool Ver4PatriciaTrieNodeWriter::updateAllBigramEntriesAndDeleteUselessEntries(
+            const PtNodeParams *const sourcePtNodeParams, int *const outBigramEntryCount) {
+    // Do nothing.
+    return true;
+}
+
+bool Ver4PatriciaTrieNodeWriter::updateAllPositionFields(
+        const PtNodeParams *const toBeUpdatedPtNodeParams,
+        const DictPositionRelocationMap *const dictPositionRelocationMap,
+        int *const outBigramEntryCount) {
+    int parentPos = toBeUpdatedPtNodeParams->getParentPos();
+    if (parentPos != NOT_A_DICT_POS) {
+        PtNodeWriter::PtNodePositionRelocationMap::const_iterator it =
+                dictPositionRelocationMap->mPtNodePositionRelocationMap.find(parentPos);
+        if (it != dictPositionRelocationMap->mPtNodePositionRelocationMap.end()) {
+            parentPos = it->second;
+        }
+    }
+    int writingPos = toBeUpdatedPtNodeParams->getHeadPos()
+            + DynamicPtWritingUtils::NODE_FLAG_FIELD_SIZE;
+    // Write updated parent offset.
+    if (!DynamicPtWritingUtils::writeParentPosOffsetAndAdvancePosition(mTrieBuffer,
+            parentPos, toBeUpdatedPtNodeParams->getHeadPos(), &writingPos)) {
+        return false;
+    }
+
+    // Updates children position.
+    int childrenPos = toBeUpdatedPtNodeParams->getChildrenPos();
+    if (childrenPos != NOT_A_DICT_POS) {
+        PtNodeWriter::PtNodeArrayPositionRelocationMap::const_iterator it =
+                dictPositionRelocationMap->mPtNodeArrayPositionRelocationMap.find(childrenPos);
+        if (it != dictPositionRelocationMap->mPtNodeArrayPositionRelocationMap.end()) {
+            childrenPos = it->second;
+        }
+    }
+    if (!updateChildrenPosition(toBeUpdatedPtNodeParams, childrenPos)) {
+        return false;
+    }
+    return true;
+}
+
+bool Ver4PatriciaTrieNodeWriter::addShortcutTarget(const PtNodeParams *const ptNodeParams,
+        const int *const targetCodePoints, const int targetCodePointCount,
+        const int shortcutProbability) {
+    if (!mShortcutPolicy->addNewShortcut(ptNodeParams->getTerminalId(),
+            targetCodePoints, targetCodePointCount, shortcutProbability)) {
+        AKLOGE("Cannot add new shortcut entry. terminalId: %d", ptNodeParams->getTerminalId());
+        return false;
+    }
+    return true;
+}
+
+bool Ver4PatriciaTrieNodeWriter::writePtNodeAndGetTerminalIdAndAdvancePosition(
+        const PtNodeParams *const ptNodeParams, int *const outTerminalId,
+        int *const ptNodeWritingPos) {
+    const int nodePos = *ptNodeWritingPos;
+    // Write dummy flags. The Node flags are updated with appropriate flags at the last step of the
+    // PtNode writing.
+    if (!DynamicPtWritingUtils::writeFlagsAndAdvancePosition(mTrieBuffer,
+            0 /* nodeFlags */, ptNodeWritingPos)) {
+        return false;
+    }
+    // Calculate a parent offset and write the offset.
+    if (!DynamicPtWritingUtils::writeParentPosOffsetAndAdvancePosition(mTrieBuffer,
+            ptNodeParams->getParentPos(), nodePos, ptNodeWritingPos)) {
+        return false;
+    }
+    // Write code points
+    if (!DynamicPtWritingUtils::writeCodePointsAndAdvancePosition(mTrieBuffer,
+            ptNodeParams->getCodePoints(), ptNodeParams->getCodePointCount(), ptNodeWritingPos)) {
+        return false;
+    }
+    int terminalId = Ver4DictConstants::NOT_A_TERMINAL_ID;
+    if (!ptNodeParams->willBecomeNonTerminal()) {
+        if (ptNodeParams->getTerminalId() != Ver4DictConstants::NOT_A_TERMINAL_ID) {
+            terminalId = ptNodeParams->getTerminalId();
+        } else if (ptNodeParams->isTerminal()) {
+            // Write terminal information using a new terminal id.
+            // Get a new unused terminal id.
+            terminalId = mBuffers->getTerminalPositionLookupTable()->getNextTerminalId();
+        }
+    }
+    const int isTerminal = terminalId != Ver4DictConstants::NOT_A_TERMINAL_ID;
+    if (isTerminal) {
+        // Update the lookup table.
+        if (!mBuffers->getMutableTerminalPositionLookupTable()->setTerminalPtNodePosition(
+                terminalId, nodePos)) {
+            return false;
+        }
+        // Write terminal Id.
+        if (!mTrieBuffer->writeUintAndAdvancePosition(terminalId,
+                Ver4DictConstants::TERMINAL_ID_FIELD_SIZE, ptNodeWritingPos)) {
+            return false;
+        }
+        if (outTerminalId) {
+            *outTerminalId = terminalId;
+        }
+    }
+    // Write children position
+    if (!DynamicPtWritingUtils::writeChildrenPositionAndAdvancePosition(mTrieBuffer,
+            ptNodeParams->getChildrenPos(), ptNodeWritingPos)) {
+        return false;
+    }
+    return updatePtNodeFlags(nodePos, isTerminal,
+            ptNodeParams->getCodePointCount() > 1 /* hasMultipleChars */);
+}
+
+bool Ver4PatriciaTrieNodeWriter::updatePtNodeFlags(const int ptNodePos, const bool isTerminal,
+        const bool hasMultipleChars) {
+    // Create node flags and write them.
+    PatriciaTrieReadingUtils::NodeFlags nodeFlags =
+            PatriciaTrieReadingUtils::createAndGetFlags(false /* isNotAWord */,
+                    false /* isPossiblyOffensive */, isTerminal, false /* hasShortcutTargets */,
+                    false /* hasBigrams */, hasMultipleChars, CHILDREN_POSITION_FIELD_SIZE);
+    if (!DynamicPtWritingUtils::writeFlags(mTrieBuffer, nodeFlags, ptNodePos)) {
+        AKLOGE("Cannot write PtNode flags. flags: %x, pos: %d", nodeFlags, ptNodePos);
+        return false;
+    }
+    return true;
+}
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_node_writer.h b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_node_writer.h
new file mode 100644
index 0000000..5585611
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_node_writer.h
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_VER4_PATRICIA_TRIE_NODE_WRITER_H
+#define LATINIME_VER4_PATRICIA_TRIE_NODE_WRITER_H
+
+#include "defines.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
+#include "dictionary/structure/pt_common/pt_node_params.h"
+#include "dictionary/structure/pt_common/pt_node_writer.h"
+#include "dictionary/structure/v4/content/probability_entry.h"
+
+namespace latinime {
+
+class BufferWithExtendableBuffer;
+class HeaderPolicy;
+class Ver4DictBuffers;
+class Ver4PatriciaTrieNodeReader;
+class Ver4PtNodeArrayReader;
+class Ver4ShortcutListPolicy;
+
+/*
+ * This class is used for helping to writes nodes of ver4 patricia trie.
+ */
+class Ver4PatriciaTrieNodeWriter : public PtNodeWriter {
+ public:
+    Ver4PatriciaTrieNodeWriter(BufferWithExtendableBuffer *const trieBuffer,
+            Ver4DictBuffers *const buffers, const PtNodeReader *const ptNodeReader,
+            const PtNodeArrayReader *const ptNodeArrayReader,
+            Ver4ShortcutListPolicy *const shortcutPolicy)
+            : mTrieBuffer(trieBuffer), mBuffers(buffers),
+              mReadingHelper(ptNodeReader, ptNodeArrayReader), mShortcutPolicy(shortcutPolicy) {}
+
+    virtual ~Ver4PatriciaTrieNodeWriter() {}
+
+    virtual bool markPtNodeAsDeleted(const PtNodeParams *const toBeUpdatedPtNodeParams);
+
+    virtual bool markPtNodeAsMoved(const PtNodeParams *const toBeUpdatedPtNodeParams,
+            const int movedPos, const int bigramLinkedNodePos);
+
+    virtual bool markPtNodeAsWillBecomeNonTerminal(
+            const PtNodeParams *const toBeUpdatedPtNodeParams);
+
+    virtual bool updatePtNodeUnigramProperty(const PtNodeParams *const toBeUpdatedPtNodeParams,
+            const UnigramProperty *const unigramProperty);
+
+    virtual bool updatePtNodeProbabilityAndGetNeedsToKeepPtNodeAfterGC(
+            const PtNodeParams *const toBeUpdatedPtNodeParams, bool *const outNeedsToKeepPtNode);
+
+    virtual bool updateChildrenPosition(const PtNodeParams *const toBeUpdatedPtNodeParams,
+            const int newChildrenPosition);
+
+    bool updateTerminalId(const PtNodeParams *const toBeUpdatedPtNodeParams,
+            const int newTerminalId);
+
+    virtual bool writePtNodeAndAdvancePosition(const PtNodeParams *const ptNodeParams,
+            int *const ptNodeWritingPos);
+
+    virtual bool writeNewTerminalPtNodeAndAdvancePosition(const PtNodeParams *const ptNodeParams,
+            const UnigramProperty *const unigramProperty, int *const ptNodeWritingPos);
+
+    virtual bool addNgramEntry(const WordIdArrayView prevWordIds, const int wordId,
+            const NgramProperty *const ngramProperty, bool *const outAddedNewEntry);
+
+    virtual bool removeNgramEntry(const WordIdArrayView prevWordIds, const int wordId);
+
+    virtual bool updateAllBigramEntriesAndDeleteUselessEntries(
+            const PtNodeParams *const sourcePtNodeParams, int *const outBigramEntryCount);
+
+    virtual bool updateAllPositionFields(const PtNodeParams *const toBeUpdatedPtNodeParams,
+            const DictPositionRelocationMap *const dictPositionRelocationMap,
+            int *const outBigramEntryCount);
+
+    virtual bool addShortcutTarget(const PtNodeParams *const ptNodeParams,
+            const int *const targetCodePoints, const int targetCodePointCount,
+            const int shortcutProbability);
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(Ver4PatriciaTrieNodeWriter);
+
+    bool writePtNodeAndGetTerminalIdAndAdvancePosition(
+            const PtNodeParams *const ptNodeParams, int *const outTerminalId,
+            int *const ptNodeWritingPos);
+
+    bool updatePtNodeFlags(const int ptNodePos, const bool isTerminal, const bool hasMultipleChars);
+
+    static const int CHILDREN_POSITION_FIELD_SIZE;
+
+    BufferWithExtendableBuffer *const mTrieBuffer;
+    Ver4DictBuffers *const mBuffers;
+    DynamicPtReadingHelper mReadingHelper;
+    Ver4ShortcutListPolicy *const mShortcutPolicy;
+};
+} // namespace latinime
+#endif /* LATINIME_VER4_PATRICIA_TRIE_NODE_WRITER_H */
diff --git a/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_policy.cpp b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_policy.cpp
new file mode 100644
index 0000000..1dbec55
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_policy.cpp
@@ -0,0 +1,603 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/v4/ver4_patricia_trie_policy.h"
+
+#include <array>
+#include <vector>
+
+#include "suggest/core/dicnode/dic_node.h"
+#include "suggest/core/dicnode/dic_node_vector.h"
+#include "dictionary/interface/ngram_listener.h"
+#include "dictionary/property/ngram_context.h"
+#include "dictionary/property/ngram_property.h"
+#include "dictionary/property/unigram_property.h"
+#include "dictionary/property/word_property.h"
+#include "dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
+#include "dictionary/structure/v4/ver4_patricia_trie_node_reader.h"
+#include "dictionary/utils/forgetting_curve_utils.h"
+#include "dictionary/utils/multi_bigram_map.h"
+#include "dictionary/utils/probability_utils.h"
+#include "utils/ngram_utils.h"
+
+namespace latinime {
+
+// Note that there are corresponding definitions in Java side in BinaryDictionaryTests and
+// BinaryDictionaryDecayingTests.
+const char *const Ver4PatriciaTriePolicy::UNIGRAM_COUNT_QUERY = "UNIGRAM_COUNT";
+const char *const Ver4PatriciaTriePolicy::BIGRAM_COUNT_QUERY = "BIGRAM_COUNT";
+const char *const Ver4PatriciaTriePolicy::MAX_UNIGRAM_COUNT_QUERY = "MAX_UNIGRAM_COUNT";
+const char *const Ver4PatriciaTriePolicy::MAX_BIGRAM_COUNT_QUERY = "MAX_BIGRAM_COUNT";
+const int Ver4PatriciaTriePolicy::MARGIN_TO_REFUSE_DYNAMIC_OPERATIONS = 1024;
+const int Ver4PatriciaTriePolicy::MIN_DICT_SIZE_TO_REFUSE_DYNAMIC_OPERATIONS =
+        Ver4DictConstants::MAX_DICTIONARY_SIZE - MARGIN_TO_REFUSE_DYNAMIC_OPERATIONS;
+
+void Ver4PatriciaTriePolicy::createAndGetAllChildDicNodes(const DicNode *const dicNode,
+        DicNodeVector *const childDicNodes) const {
+    if (!dicNode->hasChildren()) {
+        return;
+    }
+    DynamicPtReadingHelper readingHelper(&mNodeReader, &mPtNodeArrayReader);
+    readingHelper.initWithPtNodeArrayPos(dicNode->getChildrenPtNodeArrayPos());
+    while (!readingHelper.isEnd()) {
+        const PtNodeParams ptNodeParams = readingHelper.getPtNodeParams();
+        if (!ptNodeParams.isValid()) {
+            break;
+        }
+        const bool isTerminal = ptNodeParams.isTerminal() && !ptNodeParams.isDeleted();
+        const int wordId = isTerminal ? ptNodeParams.getTerminalId() : NOT_A_WORD_ID;
+        childDicNodes->pushLeavingChild(dicNode, ptNodeParams.getChildrenPos(),
+                wordId, ptNodeParams.getCodePointArrayView());
+        readingHelper.readNextSiblingNode(ptNodeParams);
+    }
+    if (readingHelper.isError()) {
+        mIsCorrupted = true;
+        AKLOGE("Dictionary reading error in createAndGetAllChildDicNodes().");
+    }
+}
+
+int Ver4PatriciaTriePolicy::getCodePointsAndReturnCodePointCount(const int wordId,
+        const int maxCodePointCount, int *const outCodePoints) const {
+    DynamicPtReadingHelper readingHelper(&mNodeReader, &mPtNodeArrayReader);
+    const int ptNodePos =
+            mBuffers->getTerminalPositionLookupTable()->getTerminalPtNodePosition(wordId);
+    readingHelper.initWithPtNodePos(ptNodePos);
+    const int codePointCount =  readingHelper.getCodePointsAndReturnCodePointCount(
+            maxCodePointCount, outCodePoints);
+    if (readingHelper.isError()) {
+        mIsCorrupted = true;
+        AKLOGE("Dictionary reading error in getCodePointsAndProbabilityAndReturnCodePointCount().");
+    }
+    return codePointCount;
+}
+
+int Ver4PatriciaTriePolicy::getWordId(const CodePointArrayView wordCodePoints,
+        const bool forceLowerCaseSearch) const {
+    DynamicPtReadingHelper readingHelper(&mNodeReader, &mPtNodeArrayReader);
+    readingHelper.initWithPtNodeArrayPos(getRootPosition());
+    const int ptNodePos = readingHelper.getTerminalPtNodePositionOfWord(wordCodePoints.data(),
+            wordCodePoints.size(), forceLowerCaseSearch);
+    if (readingHelper.isError()) {
+        mIsCorrupted = true;
+        AKLOGE("Dictionary reading error in createAndGetAllChildDicNodes().");
+    }
+    if (ptNodePos == NOT_A_DICT_POS) {
+        return NOT_A_WORD_ID;
+    }
+    const PtNodeParams ptNodeParams = mNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos);
+    if (ptNodeParams.isDeleted()) {
+        return NOT_A_WORD_ID;
+    }
+    return ptNodeParams.getTerminalId();
+}
+
+const WordAttributes Ver4PatriciaTriePolicy::getWordAttributesInContext(
+        const WordIdArrayView prevWordIds, const int wordId,
+        MultiBigramMap *const multiBigramMap) const {
+    if (wordId == NOT_A_WORD_ID) {
+        return WordAttributes();
+    }
+    return mBuffers->getLanguageModelDictContent()->getWordAttributes(prevWordIds, wordId,
+            false /* mustMatchAllPrevWords */, mHeaderPolicy);
+}
+
+int Ver4PatriciaTriePolicy::getProbabilityOfWord(const WordIdArrayView prevWordIds,
+        const int wordId) const {
+    if (wordId == NOT_A_WORD_ID || prevWordIds.contains(NOT_A_WORD_ID)) {
+        return NOT_A_PROBABILITY;
+    }
+    const WordAttributes wordAttributes =
+            mBuffers->getLanguageModelDictContent()->getWordAttributes(prevWordIds, wordId,
+                    true /* mustMatchAllPrevWords */, mHeaderPolicy);
+    if (wordAttributes.isBlacklisted() || wordAttributes.isNotAWord()) {
+        return NOT_A_PROBABILITY;
+    }
+    return wordAttributes.getProbability();
+}
+
+BinaryDictionaryShortcutIterator Ver4PatriciaTriePolicy::getShortcutIterator(
+        const int wordId) const {
+    const int shortcutPos = getShortcutPositionOfWord(wordId);
+    return BinaryDictionaryShortcutIterator(&mShortcutPolicy, shortcutPos);
+}
+
+void Ver4PatriciaTriePolicy::iterateNgramEntries(const WordIdArrayView prevWordIds,
+        NgramListener *const listener) const {
+    if (prevWordIds.empty()) {
+        return;
+    }
+    const auto languageModelDictContent = mBuffers->getLanguageModelDictContent();
+    for (size_t i = 1; i <= prevWordIds.size(); ++i) {
+        for (const auto entry : languageModelDictContent->getProbabilityEntries(
+                prevWordIds.limit(i))) {
+            const ProbabilityEntry &probabilityEntry = entry.getProbabilityEntry();
+            if (!probabilityEntry.isValid()) {
+                continue;
+            }
+            int probability = NOT_A_PROBABILITY;
+            if (probabilityEntry.hasHistoricalInfo()) {
+                // TODO: Quit checking count here.
+                // If count <= 1, the word can be an invaild word. The actual probability should
+                // be checked using getWordAttributesInContext() in onVisitEntry().
+                probability = probabilityEntry.getHistoricalInfo()->getCount() <= 1 ?
+                        NOT_A_PROBABILITY : 0;
+            } else {
+                probability = probabilityEntry.getProbability();
+            }
+            listener->onVisitEntry(probability, entry.getWordId());
+        }
+    }
+}
+
+int Ver4PatriciaTriePolicy::getShortcutPositionOfWord(const int wordId) const {
+    if (wordId == NOT_A_WORD_ID) {
+        return NOT_A_DICT_POS;
+    }
+    const int ptNodePos =
+            mBuffers->getTerminalPositionLookupTable()->getTerminalPtNodePosition(wordId);
+    const PtNodeParams ptNodeParams(mNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos));
+    if (ptNodeParams.isDeleted()) {
+        return NOT_A_DICT_POS;
+    }
+    return mBuffers->getShortcutDictContent()->getShortcutListHeadPos(
+            ptNodeParams.getTerminalId());
+}
+
+bool Ver4PatriciaTriePolicy::addUnigramEntry(const CodePointArrayView wordCodePoints,
+        const UnigramProperty *const unigramProperty) {
+    if (!mBuffers->isUpdatable()) {
+        AKLOGI("Warning: addUnigramEntry() is called for non-updatable dictionary.");
+        return false;
+    }
+    if (mDictBuffer->getTailPosition() >= MIN_DICT_SIZE_TO_REFUSE_DYNAMIC_OPERATIONS) {
+        AKLOGE("The dictionary is too large to dynamically update. Dictionary size: %d",
+                mDictBuffer->getTailPosition());
+        return false;
+    }
+    if (wordCodePoints.size() > MAX_WORD_LENGTH) {
+        AKLOGE("The word is too long to insert to the dictionary, length: %zd",
+                wordCodePoints.size());
+        return false;
+    }
+    for (const auto &shortcut : unigramProperty->getShortcuts()) {
+        if (shortcut.getTargetCodePoints()->size() > MAX_WORD_LENGTH) {
+            AKLOGE("One of shortcut targets is too long to insert to the dictionary, length: %zd",
+                    shortcut.getTargetCodePoints()->size());
+            return false;
+        }
+    }
+    DynamicPtReadingHelper readingHelper(&mNodeReader, &mPtNodeArrayReader);
+    readingHelper.initWithPtNodeArrayPos(getRootPosition());
+    bool addedNewUnigram = false;
+    int codePointsToAdd[MAX_WORD_LENGTH];
+    int codePointCountToAdd = wordCodePoints.size();
+    memmove(codePointsToAdd, wordCodePoints.data(), sizeof(int) * codePointCountToAdd);
+    if (unigramProperty->representsBeginningOfSentence()) {
+        codePointCountToAdd = CharUtils::attachBeginningOfSentenceMarker(codePointsToAdd,
+                codePointCountToAdd, MAX_WORD_LENGTH);
+    }
+    if (codePointCountToAdd <= 0) {
+        return false;
+    }
+    const CodePointArrayView codePointArrayView(codePointsToAdd, codePointCountToAdd);
+    if (mUpdatingHelper.addUnigramWord(&readingHelper, codePointArrayView, unigramProperty,
+            &addedNewUnigram)) {
+        if (addedNewUnigram && !unigramProperty->representsBeginningOfSentence()) {
+            mEntryCounters.incrementNgramCount(NgramType::Unigram);
+        }
+        if (unigramProperty->getShortcuts().size() > 0) {
+            // Add shortcut target.
+            const int wordId = getWordId(codePointArrayView, false /* forceLowerCaseSearch */);
+            if (wordId == NOT_A_WORD_ID) {
+                AKLOGE("Cannot find word id to add shortcut target.");
+                return false;
+            }
+            const int wordPos =
+                    mBuffers->getTerminalPositionLookupTable()->getTerminalPtNodePosition(wordId);
+            for (const auto &shortcut : unigramProperty->getShortcuts()) {
+                if (!mUpdatingHelper.addShortcutTarget(wordPos,
+                        CodePointArrayView(*shortcut.getTargetCodePoints()),
+                        shortcut.getProbability())) {
+                    AKLOGE("Cannot add new shortcut target. PtNodePos: %d, length: %zd, "
+                            "probability: %d", wordPos, shortcut.getTargetCodePoints()->size(),
+                            shortcut.getProbability());
+                    return false;
+                }
+            }
+        }
+        return true;
+    } else {
+        return false;
+    }
+}
+
+bool Ver4PatriciaTriePolicy::removeUnigramEntry(const CodePointArrayView wordCodePoints) {
+    if (!mBuffers->isUpdatable()) {
+        AKLOGI("Warning: removeUnigramEntry() is called for non-updatable dictionary.");
+        return false;
+    }
+    const int wordId = getWordId(wordCodePoints, false /* forceLowerCaseSearch */);
+    if (wordId == NOT_A_WORD_ID) {
+        return false;
+    }
+    const int ptNodePos =
+            mBuffers->getTerminalPositionLookupTable()->getTerminalPtNodePosition(wordId);
+    const PtNodeParams ptNodeParams = mNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos);
+    if (!mNodeWriter.markPtNodeAsDeleted(&ptNodeParams)) {
+        AKLOGE("Cannot remove unigram. ptNodePos: %d", ptNodePos);
+        return false;
+    }
+    if (!mBuffers->getMutableLanguageModelDictContent()->removeProbabilityEntry(wordId)) {
+        return false;
+    }
+    if (!ptNodeParams.representsNonWordInfo()) {
+        mEntryCounters.decrementNgramCount(NgramType::Unigram);
+    }
+    return true;
+}
+
+bool Ver4PatriciaTriePolicy::addNgramEntry(const NgramProperty *const ngramProperty) {
+    if (!mBuffers->isUpdatable()) {
+        AKLOGI("Warning: addNgramEntry() is called for non-updatable dictionary.");
+        return false;
+    }
+    if (mDictBuffer->getTailPosition() >= MIN_DICT_SIZE_TO_REFUSE_DYNAMIC_OPERATIONS) {
+        AKLOGE("The dictionary is too large to dynamically update. Dictionary size: %d",
+                mDictBuffer->getTailPosition());
+        return false;
+    }
+    const NgramContext *const ngramContext = ngramProperty->getNgramContext();
+    if (!ngramContext->isValid()) {
+        AKLOGE("Ngram context is not valid for adding n-gram entry to the dictionary.");
+        return false;
+    }
+    if (ngramProperty->getTargetCodePoints()->size() > MAX_WORD_LENGTH) {
+        AKLOGE("The word is too long to insert the ngram to the dictionary. "
+                "length: %zd", ngramProperty->getTargetCodePoints()->size());
+        return false;
+    }
+    WordIdArray<MAX_PREV_WORD_COUNT_FOR_N_GRAM> prevWordIdArray;
+    const WordIdArrayView prevWordIds = ngramContext->getPrevWordIds(this, &prevWordIdArray,
+            false /* tryLowerCaseSearch */);
+    if (prevWordIds.empty()) {
+        return false;
+    }
+    for (size_t i = 0; i < prevWordIds.size(); ++i) {
+        if (prevWordIds[i] != NOT_A_WORD_ID) {
+            continue;
+        }
+        if (!ngramContext->isNthPrevWordBeginningOfSentence(i + 1 /* n */)) {
+            return false;
+        }
+        const UnigramProperty beginningOfSentenceUnigramProperty(
+                true /* representsBeginningOfSentence */, true /* isNotAWord */,
+                false /* isBlacklisted */, false /* isPossiblyOffensive */,
+                MAX_PROBABILITY /* probability */, HistoricalInfo());
+        if (!addUnigramEntry(ngramContext->getNthPrevWordCodePoints(1 /* n */),
+                &beginningOfSentenceUnigramProperty)) {
+            AKLOGE("Cannot add unigram entry for the beginning-of-sentence.");
+            return false;
+        }
+        // Refresh word ids.
+        ngramContext->getPrevWordIds(this, &prevWordIdArray, false /* tryLowerCaseSearch */);
+    }
+    const int wordId = getWordId(CodePointArrayView(*ngramProperty->getTargetCodePoints()),
+            false /* forceLowerCaseSearch */);
+    if (wordId == NOT_A_WORD_ID) {
+        return false;
+    }
+    bool addedNewEntry = false;
+    if (mNodeWriter.addNgramEntry(prevWordIds, wordId, ngramProperty, &addedNewEntry)) {
+        if (addedNewEntry) {
+            mEntryCounters.incrementNgramCount(
+                    NgramUtils::getNgramTypeFromWordCount(prevWordIds.size() + 1));
+        }
+        return true;
+    } else {
+        return false;
+    }
+}
+
+bool Ver4PatriciaTriePolicy::removeNgramEntry(const NgramContext *const ngramContext,
+        const CodePointArrayView wordCodePoints) {
+    if (!mBuffers->isUpdatable()) {
+        AKLOGI("Warning: removeNgramEntry() is called for non-updatable dictionary.");
+        return false;
+    }
+    if (mDictBuffer->getTailPosition() >= MIN_DICT_SIZE_TO_REFUSE_DYNAMIC_OPERATIONS) {
+        AKLOGE("The dictionary is too large to dynamically update. Dictionary size: %d",
+                mDictBuffer->getTailPosition());
+        return false;
+    }
+    if (!ngramContext->isValid()) {
+        AKLOGE("Ngram context is not valid for removing n-gram entry form the dictionary.");
+        return false;
+    }
+    if (wordCodePoints.size() > MAX_WORD_LENGTH) {
+        AKLOGE("word is too long to remove n-gram entry form the dictionary. length: %zd",
+                wordCodePoints.size());
+    }
+    WordIdArray<MAX_PREV_WORD_COUNT_FOR_N_GRAM> prevWordIdArray;
+    const WordIdArrayView prevWordIds = ngramContext->getPrevWordIds(this, &prevWordIdArray,
+            false /* tryLowerCaseSerch */);
+    if (prevWordIds.empty() || prevWordIds.contains(NOT_A_WORD_ID)) {
+        return false;
+    }
+    const int wordId = getWordId(wordCodePoints, false /* forceLowerCaseSearch */);
+    if (wordId == NOT_A_WORD_ID) {
+        return false;
+    }
+    if (mNodeWriter.removeNgramEntry(prevWordIds, wordId)) {
+        mEntryCounters.decrementNgramCount(
+                NgramUtils::getNgramTypeFromWordCount(prevWordIds.size() + 1));
+        return true;
+    } else {
+        return false;
+    }
+}
+
+bool Ver4PatriciaTriePolicy::updateEntriesForWordWithNgramContext(
+        const NgramContext *const ngramContext, const CodePointArrayView wordCodePoints,
+        const bool isValidWord, const HistoricalInfo historicalInfo) {
+    if (!mBuffers->isUpdatable()) {
+        AKLOGI("Warning: updateEntriesForWordWithNgramContext() is called for non-updatable "
+                "dictionary.");
+        return false;
+    }
+    const bool updateAsAValidWord = ngramContext->isNthPrevWordBeginningOfSentence(1 /* n */) ?
+            false : isValidWord;
+    int wordId = getWordId(wordCodePoints, false /* tryLowerCaseSearch */);
+    if (wordId == NOT_A_WORD_ID) {
+        // The word is not in the dictionary.
+        const UnigramProperty unigramProperty(false /* representsBeginningOfSentence */,
+                false /* isNotAWord */, false /* isBlacklisted */, false /* isPossiblyOffensive */,
+                NOT_A_PROBABILITY, HistoricalInfo(historicalInfo.getTimestamp(), 0 /* level */,
+                0 /* count */));
+        if (!addUnigramEntry(wordCodePoints, &unigramProperty)) {
+            AKLOGE("Cannot add unigarm entry in updateEntriesForWordWithNgramContext().");
+            return false;
+        }
+        if (!isValidWord) {
+            return true;
+        }
+        wordId = getWordId(wordCodePoints, false /* tryLowerCaseSearch */);
+    }
+
+    WordIdArray<MAX_PREV_WORD_COUNT_FOR_N_GRAM> prevWordIdArray;
+    const WordIdArrayView prevWordIds = ngramContext->getPrevWordIds(this, &prevWordIdArray,
+            false /* tryLowerCaseSearch */);
+    if (ngramContext->isNthPrevWordBeginningOfSentence(1 /* n */)) {
+        if (prevWordIds.firstOrDefault(NOT_A_WORD_ID) == NOT_A_WORD_ID) {
+            const UnigramProperty beginningOfSentenceUnigramProperty(
+                    true /* representsBeginningOfSentence */,
+                    true /* isNotAWord */, false /* isPossiblyOffensive */, NOT_A_PROBABILITY,
+                    HistoricalInfo(historicalInfo.getTimestamp(), 0 /* level */, 0 /* count */));
+            if (!addUnigramEntry(ngramContext->getNthPrevWordCodePoints(1 /* n */),
+                    &beginningOfSentenceUnigramProperty)) {
+                AKLOGE("Cannot add BoS entry in updateEntriesForWordWithNgramContext().");
+                return false;
+            }
+            // Refresh word ids.
+            ngramContext->getPrevWordIds(this, &prevWordIdArray, false /* tryLowerCaseSearch */);
+        }
+        // Update entries for beginning of sentence.
+        if (!mBuffers->getMutableLanguageModelDictContent()->updateAllEntriesOnInputWord(
+                prevWordIds.skip(1 /* n */), prevWordIds[0], true /* isVaild */, historicalInfo,
+                mHeaderPolicy, &mEntryCounters)) {
+            return false;
+        }
+    }
+    if (!mBuffers->getMutableLanguageModelDictContent()->updateAllEntriesOnInputWord(prevWordIds,
+            wordId, updateAsAValidWord, historicalInfo, mHeaderPolicy, &mEntryCounters)) {
+        return false;
+    }
+    return true;
+}
+
+bool Ver4PatriciaTriePolicy::flush(const char *const filePath) {
+    if (!mBuffers->isUpdatable()) {
+        AKLOGI("Warning: flush() is called for non-updatable dictionary. filePath: %s", filePath);
+        return false;
+    }
+    if (!mWritingHelper.writeToDictFile(filePath, mEntryCounters.getEntryCounts())) {
+        AKLOGE("Cannot flush the dictionary to file.");
+        mIsCorrupted = true;
+        return false;
+    }
+    return true;
+}
+
+bool Ver4PatriciaTriePolicy::flushWithGC(const char *const filePath) {
+    if (!mBuffers->isUpdatable()) {
+        AKLOGI("Warning: flushWithGC() is called for non-updatable dictionary.");
+        return false;
+    }
+    if (!mWritingHelper.writeToDictFileWithGC(getRootPosition(), filePath)) {
+        AKLOGE("Cannot flush the dictionary to file with GC.");
+        mIsCorrupted = true;
+        return false;
+    }
+    return true;
+}
+
+bool Ver4PatriciaTriePolicy::needsToRunGC(const bool mindsBlockByGC) const {
+    if (!mBuffers->isUpdatable()) {
+        AKLOGI("Warning: needsToRunGC() is called for non-updatable dictionary.");
+        return false;
+    }
+    if (mBuffers->isNearSizeLimit()) {
+        // Additional buffer size is near the limit.
+        return true;
+    } else if (mHeaderPolicy->getExtendedRegionSize() + mDictBuffer->getUsedAdditionalBufferSize()
+            > Ver4DictConstants::MAX_DICT_EXTENDED_REGION_SIZE) {
+        // Total extended region size of the trie exceeds the limit.
+        return true;
+    } else if (mDictBuffer->getTailPosition() >= MIN_DICT_SIZE_TO_REFUSE_DYNAMIC_OPERATIONS
+            && mDictBuffer->getUsedAdditionalBufferSize() > 0) {
+        // Needs to reduce dictionary size.
+        return true;
+    } else if (mHeaderPolicy->isDecayingDict()) {
+        return ForgettingCurveUtils::needsToDecay(mindsBlockByGC, mEntryCounters.getEntryCounts(),
+                mHeaderPolicy);
+    }
+    return false;
+}
+
+void Ver4PatriciaTriePolicy::getProperty(const char *const query, const int queryLength,
+        char *const outResult, const int maxResultLength) {
+    const int compareLength = queryLength + 1 /* terminator */;
+    if (strncmp(query, UNIGRAM_COUNT_QUERY, compareLength) == 0) {
+        snprintf(outResult, maxResultLength, "%d",
+                mEntryCounters.getNgramCount(NgramType::Unigram));
+    } else if (strncmp(query, BIGRAM_COUNT_QUERY, compareLength) == 0) {
+        snprintf(outResult, maxResultLength, "%d", mEntryCounters.getNgramCount(NgramType::Bigram));
+    } else if (strncmp(query, MAX_UNIGRAM_COUNT_QUERY, compareLength) == 0) {
+        snprintf(outResult, maxResultLength, "%d",
+                mHeaderPolicy->isDecayingDict() ?
+                        ForgettingCurveUtils::getEntryCountHardLimit(
+                                mHeaderPolicy->getMaxNgramCounts().getNgramCount(
+                                        NgramType::Unigram)) :
+                        static_cast<int>(Ver4DictConstants::MAX_DICTIONARY_SIZE));
+    } else if (strncmp(query, MAX_BIGRAM_COUNT_QUERY, compareLength) == 0) {
+        snprintf(outResult, maxResultLength, "%d",
+                mHeaderPolicy->isDecayingDict() ?
+                        ForgettingCurveUtils::getEntryCountHardLimit(
+                                mHeaderPolicy->getMaxNgramCounts().getNgramCount(
+                                        NgramType::Bigram)) :
+                        static_cast<int>(Ver4DictConstants::MAX_DICTIONARY_SIZE));
+    }
+}
+
+const WordProperty Ver4PatriciaTriePolicy::getWordProperty(
+        const CodePointArrayView wordCodePoints) const {
+    const int wordId = getWordId(wordCodePoints, false /* forceLowerCaseSearch */);
+    if (wordId == NOT_A_WORD_ID) {
+        AKLOGE("getWordProperty is called for invalid word.");
+        return WordProperty();
+    }
+    const LanguageModelDictContent *const languageModelDictContent =
+            mBuffers->getLanguageModelDictContent();
+    // Fetch ngram information.
+    std::vector<NgramProperty> ngrams;
+    int ngramTargetCodePoints[MAX_WORD_LENGTH];
+    int ngramPrevWordsCodePoints[MAX_PREV_WORD_COUNT_FOR_N_GRAM][MAX_WORD_LENGTH];
+    int ngramPrevWordsCodePointCount[MAX_PREV_WORD_COUNT_FOR_N_GRAM];
+    bool ngramPrevWordIsBeginningOfSentense[MAX_PREV_WORD_COUNT_FOR_N_GRAM];
+    for (const auto entry : languageModelDictContent->exportAllNgramEntriesRelatedToWord(
+            mHeaderPolicy, wordId)) {
+        const int codePointCount = getCodePointsAndReturnCodePointCount(entry.getTargetWordId(),
+                MAX_WORD_LENGTH, ngramTargetCodePoints);
+        const WordIdArrayView prevWordIds = entry.getPrevWordIds();
+        for (size_t i = 0; i < prevWordIds.size(); ++i) {
+            ngramPrevWordsCodePointCount[i] = getCodePointsAndReturnCodePointCount(prevWordIds[i],
+                       MAX_WORD_LENGTH, ngramPrevWordsCodePoints[i]);
+            ngramPrevWordIsBeginningOfSentense[i] = languageModelDictContent->getProbabilityEntry(
+                    prevWordIds[i]).representsBeginningOfSentence();
+            if (ngramPrevWordIsBeginningOfSentense[i]) {
+                ngramPrevWordsCodePointCount[i] = CharUtils::removeBeginningOfSentenceMarker(
+                        ngramPrevWordsCodePoints[i], ngramPrevWordsCodePointCount[i]);
+            }
+        }
+        const NgramContext ngramContext(ngramPrevWordsCodePoints, ngramPrevWordsCodePointCount,
+                ngramPrevWordIsBeginningOfSentense, prevWordIds.size());
+        const ProbabilityEntry ngramProbabilityEntry = entry.getProbabilityEntry();
+        const HistoricalInfo *const historicalInfo = ngramProbabilityEntry.getHistoricalInfo();
+        // TODO: Output flags in WordAttributes.
+        ngrams.emplace_back(ngramContext,
+                CodePointArrayView(ngramTargetCodePoints, codePointCount).toVector(),
+                entry.getWordAttributes().getProbability(), *historicalInfo);
+    }
+    // Fetch shortcut information.
+    std::vector<UnigramProperty::ShortcutProperty> shortcuts;
+    int shortcutPos = getShortcutPositionOfWord(wordId);
+    if (shortcutPos != NOT_A_DICT_POS) {
+        int shortcutTarget[MAX_WORD_LENGTH];
+        const ShortcutDictContent *const shortcutDictContent =
+                mBuffers->getShortcutDictContent();
+        bool hasNext = true;
+        while (hasNext) {
+            int shortcutTargetLength = 0;
+            int shortcutProbability = NOT_A_PROBABILITY;
+            shortcutDictContent->getShortcutEntryAndAdvancePosition(MAX_WORD_LENGTH, shortcutTarget,
+                    &shortcutTargetLength, &shortcutProbability, &hasNext, &shortcutPos);
+            shortcuts.emplace_back(
+                    CodePointArrayView(shortcutTarget, shortcutTargetLength).toVector(),
+                    shortcutProbability);
+        }
+    }
+    const WordAttributes wordAttributes = languageModelDictContent->getWordAttributes(
+            WordIdArrayView(), wordId, true /* mustMatchAllPrevWords */, mHeaderPolicy);
+    const ProbabilityEntry probabilityEntry = languageModelDictContent->getProbabilityEntry(wordId);
+    const HistoricalInfo *const historicalInfo = probabilityEntry.getHistoricalInfo();
+    const UnigramProperty unigramProperty(probabilityEntry.representsBeginningOfSentence(),
+            wordAttributes.isNotAWord(), wordAttributes.isBlacklisted(),
+            wordAttributes.isPossiblyOffensive(), wordAttributes.getProbability(),
+            *historicalInfo, std::move(shortcuts));
+    return WordProperty(wordCodePoints.toVector(), unigramProperty, ngrams);
+}
+
+int Ver4PatriciaTriePolicy::getNextWordAndNextToken(const int token, int *const outCodePoints,
+        int *const outCodePointCount) {
+    *outCodePointCount = 0;
+    if (token == 0) {
+        mTerminalPtNodePositionsForIteratingWords.clear();
+        DynamicPtReadingHelper::TraversePolicyToGetAllTerminalPtNodePositions traversePolicy(
+                &mTerminalPtNodePositionsForIteratingWords);
+        DynamicPtReadingHelper readingHelper(&mNodeReader, &mPtNodeArrayReader);
+        readingHelper.initWithPtNodeArrayPos(getRootPosition());
+        readingHelper.traverseAllPtNodesInPostorderDepthFirstManner(&traversePolicy);
+    }
+    const int terminalPtNodePositionsVectorSize =
+            static_cast<int>(mTerminalPtNodePositionsForIteratingWords.size());
+    if (token < 0 || token >= terminalPtNodePositionsVectorSize) {
+        AKLOGE("Given token %d is invalid.", token);
+        return 0;
+    }
+    const int terminalPtNodePos = mTerminalPtNodePositionsForIteratingWords[token];
+    const PtNodeParams ptNodeParams =
+            mNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(terminalPtNodePos);
+    *outCodePointCount = getCodePointsAndReturnCodePointCount(ptNodeParams.getTerminalId(),
+            MAX_WORD_LENGTH, outCodePoints);
+    const int nextToken = token + 1;
+    if (nextToken >= terminalPtNodePositionsVectorSize) {
+        // All words have been iterated.
+        mTerminalPtNodePositionsForIteratingWords.clear();
+        return 0;
+    }
+    return nextToken;
+}
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_policy.h b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_policy.h
new file mode 100644
index 0000000..d130a4e
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_policy.h
@@ -0,0 +1,149 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_VER4_PATRICIA_TRIE_POLICY_H
+#define LATINIME_VER4_PATRICIA_TRIE_POLICY_H
+
+#include <vector>
+
+#include "defines.h"
+#include "dictionary/header/header_policy.h"
+#include "dictionary/interface/dictionary_structure_with_buffer_policy.h"
+#include "dictionary/structure/pt_common/dynamic_pt_updating_helper.h"
+#include "dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h"
+#include "dictionary/structure/v4/ver4_dict_buffers.h"
+#include "dictionary/structure/v4/ver4_patricia_trie_node_reader.h"
+#include "dictionary/structure/v4/ver4_patricia_trie_node_writer.h"
+#include "dictionary/structure/v4/ver4_patricia_trie_writing_helper.h"
+#include "dictionary/structure/v4/ver4_pt_node_array_reader.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/entry_counters.h"
+#include "utils/int_array_view.h"
+
+namespace latinime {
+
+class DicNode;
+class DicNodeVector;
+
+// Word id = Artificial id that is stored in the PtNode looked up by the word.
+class Ver4PatriciaTriePolicy : public DictionaryStructureWithBufferPolicy {
+ public:
+    Ver4PatriciaTriePolicy(Ver4DictBuffers::Ver4DictBuffersPtr buffers)
+            : mBuffers(std::move(buffers)), mHeaderPolicy(mBuffers->getHeaderPolicy()),
+              mDictBuffer(mBuffers->getWritableTrieBuffer()),
+              mShortcutPolicy(mBuffers->getMutableShortcutDictContent(),
+                      mBuffers->getTerminalPositionLookupTable()),
+              mNodeReader(mDictBuffer), mPtNodeArrayReader(mDictBuffer),
+              mNodeWriter(mDictBuffer, mBuffers.get(), &mNodeReader, &mPtNodeArrayReader,
+                      &mShortcutPolicy),
+              mUpdatingHelper(mDictBuffer, &mNodeReader, &mNodeWriter),
+              mWritingHelper(mBuffers.get()),
+              mEntryCounters(mHeaderPolicy->getNgramCounts().getCountArray()),
+              mTerminalPtNodePositionsForIteratingWords(), mIsCorrupted(false) {};
+
+    AK_FORCE_INLINE int getRootPosition() const {
+        return 0;
+    }
+
+    void createAndGetAllChildDicNodes(const DicNode *const dicNode,
+            DicNodeVector *const childDicNodes) const;
+
+    int getCodePointsAndReturnCodePointCount(const int wordId, const int maxCodePointCount,
+            int *const outCodePoints) const;
+
+    int getWordId(const CodePointArrayView wordCodePoints, const bool forceLowerCaseSearch) const;
+
+    const WordAttributes getWordAttributesInContext(const WordIdArrayView prevWordIds,
+            const int wordId, MultiBigramMap *const multiBigramMap) const;
+
+    // TODO: Remove
+    int getProbability(const int unigramProbability, const int bigramProbability) const {
+        // Not used.
+        return NOT_A_PROBABILITY;
+    }
+
+    int getProbabilityOfWord(const WordIdArrayView prevWordIds, const int wordId) const;
+
+    void iterateNgramEntries(const WordIdArrayView prevWordIds,
+            NgramListener *const listener) const;
+
+    BinaryDictionaryShortcutIterator getShortcutIterator(const int wordId) const;
+
+    const DictionaryHeaderStructurePolicy *getHeaderStructurePolicy() const {
+        return mHeaderPolicy;
+    }
+
+    bool addUnigramEntry(const CodePointArrayView wordCodePoints,
+            const UnigramProperty *const unigramProperty);
+
+    bool removeUnigramEntry(const CodePointArrayView wordCodePoints);
+
+    bool addNgramEntry(const NgramProperty *const ngramProperty);
+
+    bool removeNgramEntry(const NgramContext *const ngramContext,
+            const CodePointArrayView wordCodePoints);
+
+    bool updateEntriesForWordWithNgramContext(const NgramContext *const ngramContext,
+            const CodePointArrayView wordCodePoints, const bool isValidWord,
+            const HistoricalInfo historicalInfo);
+
+    bool flush(const char *const filePath);
+
+    bool flushWithGC(const char *const filePath);
+
+    bool needsToRunGC(const bool mindsBlockByGC) const;
+
+    void getProperty(const char *const query, const int queryLength, char *const outResult,
+            const int maxResultLength);
+
+    const WordProperty getWordProperty(const CodePointArrayView wordCodePoints) const;
+
+    int getNextWordAndNextToken(const int token, int *const outCodePoints,
+            int *const outCodePointCount);
+
+    bool isCorrupted() const {
+        return mIsCorrupted;
+    }
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(Ver4PatriciaTriePolicy);
+
+    static const char *const UNIGRAM_COUNT_QUERY;
+    static const char *const BIGRAM_COUNT_QUERY;
+    static const char *const MAX_UNIGRAM_COUNT_QUERY;
+    static const char *const MAX_BIGRAM_COUNT_QUERY;
+    // When the dictionary size is near the maximum size, we have to refuse dynamic operations to
+    // prevent the dictionary from overflowing.
+    static const int MARGIN_TO_REFUSE_DYNAMIC_OPERATIONS;
+    static const int MIN_DICT_SIZE_TO_REFUSE_DYNAMIC_OPERATIONS;
+
+    const Ver4DictBuffers::Ver4DictBuffersPtr mBuffers;
+    const HeaderPolicy *const mHeaderPolicy;
+    BufferWithExtendableBuffer *const mDictBuffer;
+    Ver4ShortcutListPolicy mShortcutPolicy;
+    Ver4PatriciaTrieNodeReader mNodeReader;
+    Ver4PtNodeArrayReader mPtNodeArrayReader;
+    Ver4PatriciaTrieNodeWriter mNodeWriter;
+    DynamicPtUpdatingHelper mUpdatingHelper;
+    Ver4PatriciaTrieWritingHelper mWritingHelper;
+    MutableEntryCounters mEntryCounters;
+    std::vector<int> mTerminalPtNodePositionsForIteratingWords;
+    mutable bool mIsCorrupted;
+
+    int getShortcutPositionOfWord(const int wordId) const;
+};
+} // namespace latinime
+#endif // LATINIME_VER4_PATRICIA_TRIE_POLICY_H
diff --git a/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_reading_utils.cpp b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_reading_utils.cpp
new file mode 100644
index 0000000..ccb70cd
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_reading_utils.cpp
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/v4/ver4_patricia_trie_reading_utils.h"
+
+#include "dictionary/utils/byte_array_utils.h"
+
+namespace latinime {
+
+/* static */ int Ver4PatriciaTrieReadingUtils::getTerminalIdAndAdvancePosition(
+        const uint8_t *const buffer, int *pos) {
+    return ByteArrayUtils::readUint32AndAdvancePosition(buffer, pos);
+}
+
+} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_reading_utils.h b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_reading_utils.h
similarity index 100%
rename from native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_reading_utils.h
rename to native/jni/src/dictionary/structure/v4/ver4_patricia_trie_reading_utils.h
diff --git a/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_writing_helper.cpp b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_writing_helper.cpp
new file mode 100644
index 0000000..6dfdf4d
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_writing_helper.cpp
@@ -0,0 +1,185 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/v4/ver4_patricia_trie_writing_helper.h"
+
+#include <cstring>
+#include <queue>
+
+#include "dictionary/header/header_policy.h"
+#include "dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h"
+#include "dictionary/structure/v4/ver4_dict_buffers.h"
+#include "dictionary/structure/v4/ver4_dict_constants.h"
+#include "dictionary/structure/v4/ver4_patricia_trie_node_reader.h"
+#include "dictionary/structure/v4/ver4_patricia_trie_node_writer.h"
+#include "dictionary/structure/v4/ver4_pt_node_array_reader.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/file_utils.h"
+#include "dictionary/utils/forgetting_curve_utils.h"
+#include "utils/ngram_utils.h"
+
+namespace latinime {
+
+bool Ver4PatriciaTrieWritingHelper::writeToDictFile(const char *const dictDirPath,
+        const EntryCounts &entryCounts) const {
+    const HeaderPolicy *const headerPolicy = mBuffers->getHeaderPolicy();
+    BufferWithExtendableBuffer headerBuffer(
+            BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE);
+    const int extendedRegionSize = headerPolicy->getExtendedRegionSize()
+            + mBuffers->getTrieBuffer()->getUsedAdditionalBufferSize();
+    if (!headerPolicy->fillInAndWriteHeaderToBuffer(false /* updatesLastDecayedTime */,
+            entryCounts, extendedRegionSize, &headerBuffer)) {
+        AKLOGE("Cannot write header structure to buffer. "
+                "updatesLastDecayedTime: %d, unigramCount: %d, bigramCount: %d, trigramCount: %d,"
+                "extendedRegionSize: %d", false, entryCounts.getNgramCount(NgramType::Unigram),
+                entryCounts.getNgramCount(NgramType::Bigram),
+                entryCounts.getNgramCount(NgramType::Trigram),
+                extendedRegionSize);
+        return false;
+    }
+    return mBuffers->flushHeaderAndDictBuffers(dictDirPath, &headerBuffer);
+}
+
+bool Ver4PatriciaTrieWritingHelper::writeToDictFileWithGC(const int rootPtNodeArrayPos,
+        const char *const dictDirPath) {
+    const HeaderPolicy *const headerPolicy = mBuffers->getHeaderPolicy();
+    Ver4DictBuffers::Ver4DictBuffersPtr dictBuffers(
+            Ver4DictBuffers::createVer4DictBuffers(headerPolicy,
+                    Ver4DictConstants::MAX_DICTIONARY_SIZE));
+    MutableEntryCounters entryCounters;
+    if (!runGC(rootPtNodeArrayPos, headerPolicy, dictBuffers.get(), &entryCounters)) {
+        return false;
+    }
+    BufferWithExtendableBuffer headerBuffer(
+            BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE);
+    if (!headerPolicy->fillInAndWriteHeaderToBuffer(true /* updatesLastDecayedTime */,
+            entryCounters.getEntryCounts(), 0 /* extendedRegionSize */, &headerBuffer)) {
+        return false;
+    }
+    return dictBuffers->flushHeaderAndDictBuffers(dictDirPath, &headerBuffer);
+}
+
+bool Ver4PatriciaTrieWritingHelper::runGC(const int rootPtNodeArrayPos,
+        const HeaderPolicy *const headerPolicy, Ver4DictBuffers *const buffersToWrite,
+        MutableEntryCounters *const outEntryCounters) {
+    Ver4PatriciaTrieNodeReader ptNodeReader(mBuffers->getTrieBuffer());
+    Ver4PtNodeArrayReader ptNodeArrayReader(mBuffers->getTrieBuffer());
+    Ver4ShortcutListPolicy shortcutPolicy(mBuffers->getMutableShortcutDictContent(),
+            mBuffers->getTerminalPositionLookupTable());
+    Ver4PatriciaTrieNodeWriter ptNodeWriter(mBuffers->getWritableTrieBuffer(),
+            mBuffers, &ptNodeReader, &ptNodeArrayReader, &shortcutPolicy);
+
+    if (!mBuffers->getMutableLanguageModelDictContent()->updateAllProbabilityEntriesForGC(
+            headerPolicy, outEntryCounters)) {
+        AKLOGE("Failed to update probabilities in language model dict content.");
+        return false;
+    }
+    if (headerPolicy->isDecayingDict()) {
+        const EntryCounts &maxEntryCounts = headerPolicy->getMaxNgramCounts();
+        if (!mBuffers->getMutableLanguageModelDictContent()->truncateEntries(
+                outEntryCounters->getEntryCounts(), maxEntryCounts, headerPolicy,
+                outEntryCounters)) {
+            AKLOGE("Failed to truncate entries in language model dict content.");
+            return false;
+        }
+    }
+
+    DynamicPtReadingHelper readingHelper(&ptNodeReader, &ptNodeArrayReader);
+    readingHelper.initWithPtNodeArrayPos(rootPtNodeArrayPos);
+    DynamicPtGcEventListeners
+            ::TraversePolicyToUpdateUnigramProbabilityAndMarkUselessPtNodesAsDeleted
+                    traversePolicyToUpdateUnigramProbabilityAndMarkUselessPtNodesAsDeleted(
+                            &ptNodeWriter);
+    if (!readingHelper.traverseAllPtNodesInPostorderDepthFirstManner(
+            &traversePolicyToUpdateUnigramProbabilityAndMarkUselessPtNodesAsDeleted)) {
+        return false;
+    }
+
+    // Mapping from positions in mBuffer to positions in bufferToWrite.
+    PtNodeWriter::DictPositionRelocationMap dictPositionRelocationMap;
+    readingHelper.initWithPtNodeArrayPos(rootPtNodeArrayPos);
+    Ver4PatriciaTrieNodeWriter ptNodeWriterForNewBuffers(buffersToWrite->getWritableTrieBuffer(),
+            buffersToWrite, &ptNodeReader, &ptNodeArrayReader, &shortcutPolicy);
+    DynamicPtGcEventListeners::TraversePolicyToPlaceAndWriteValidPtNodesToBuffer
+            traversePolicyToPlaceAndWriteValidPtNodesToBuffer(&ptNodeWriterForNewBuffers,
+                    buffersToWrite->getWritableTrieBuffer(), &dictPositionRelocationMap);
+    if (!readingHelper.traverseAllPtNodesInPtNodeArrayLevelPreorderDepthFirstManner(
+            &traversePolicyToPlaceAndWriteValidPtNodesToBuffer)) {
+        return false;
+    }
+
+    // Create policy instances for the GCed dictionary.
+    Ver4PatriciaTrieNodeReader newPtNodeReader(buffersToWrite->getTrieBuffer());
+    Ver4PtNodeArrayReader newPtNodeArrayreader(buffersToWrite->getTrieBuffer());
+    Ver4ShortcutListPolicy newShortcutPolicy(buffersToWrite->getMutableShortcutDictContent(),
+            buffersToWrite->getTerminalPositionLookupTable());
+    Ver4PatriciaTrieNodeWriter newPtNodeWriter(buffersToWrite->getWritableTrieBuffer(),
+            buffersToWrite, &newPtNodeReader, &newPtNodeArrayreader,
+            &newShortcutPolicy);
+    // Re-assign terminal IDs for valid terminal PtNodes.
+    TerminalPositionLookupTable::TerminalIdMap terminalIdMap;
+    if(!buffersToWrite->getMutableTerminalPositionLookupTable()->runGCTerminalIds(
+            &terminalIdMap)) {
+        return false;
+    }
+    // Run GC for language model dict content.
+    if (!buffersToWrite->getMutableLanguageModelDictContent()->runGC(&terminalIdMap,
+            mBuffers->getLanguageModelDictContent())) {
+        return false;
+    }
+    // Run GC for shortcut dict content.
+    if(!buffersToWrite->getMutableShortcutDictContent()->runGC(&terminalIdMap,
+            mBuffers->getShortcutDictContent())) {
+        return false;
+    }
+    DynamicPtReadingHelper newDictReadingHelper(&newPtNodeReader, &newPtNodeArrayreader);
+    newDictReadingHelper.initWithPtNodeArrayPos(rootPtNodeArrayPos);
+    DynamicPtGcEventListeners::TraversePolicyToUpdateAllPositionFields
+            traversePolicyToUpdateAllPositionFields(&newPtNodeWriter, &dictPositionRelocationMap);
+    if (!newDictReadingHelper.traverseAllPtNodesInPtNodeArrayLevelPreorderDepthFirstManner(
+            &traversePolicyToUpdateAllPositionFields)) {
+        return false;
+    }
+    newDictReadingHelper.initWithPtNodeArrayPos(rootPtNodeArrayPos);
+    TraversePolicyToUpdateAllPtNodeFlagsAndTerminalIds
+            traversePolicyToUpdateAllPtNodeFlagsAndTerminalIds(&newPtNodeWriter, &terminalIdMap);
+    if (!newDictReadingHelper.traverseAllPtNodesInPostorderDepthFirstManner(
+            &traversePolicyToUpdateAllPtNodeFlagsAndTerminalIds)) {
+        return false;
+    }
+    return true;
+}
+
+bool Ver4PatriciaTrieWritingHelper::TraversePolicyToUpdateAllPtNodeFlagsAndTerminalIds
+        ::onVisitingPtNode(const PtNodeParams *const ptNodeParams) {
+    if (!ptNodeParams->isTerminal()) {
+        return true;
+    }
+    TerminalPositionLookupTable::TerminalIdMap::const_iterator it =
+            mTerminalIdMap->find(ptNodeParams->getTerminalId());
+    if (it == mTerminalIdMap->end()) {
+        AKLOGE("terminal Id %d is not in the terminal position map. map size: %zd",
+                ptNodeParams->getTerminalId(), mTerminalIdMap->size());
+        return false;
+    }
+    if (!mPtNodeWriter->updateTerminalId(ptNodeParams, it->second)) {
+        AKLOGE("Cannot update terminal id. %d -> %d", it->first, it->second);
+        return false;
+    }
+    return true;
+}
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_writing_helper.h b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_writing_helper.h
new file mode 100644
index 0000000..68dd1ca
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/ver4_patricia_trie_writing_helper.h
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_VER4_PATRICIA_TRIE_WRITING_HELPER_H
+#define LATINIME_VER4_PATRICIA_TRIE_WRITING_HELPER_H
+
+#include "defines.h"
+#include "dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.h"
+#include "dictionary/structure/v4/content/terminal_position_lookup_table.h"
+#include "dictionary/utils/entry_counters.h"
+
+namespace latinime {
+
+class HeaderPolicy;
+class Ver4DictBuffers;
+class Ver4PatriciaTrieNodeReader;
+class Ver4PatriciaTrieNodeWriter;
+
+class Ver4PatriciaTrieWritingHelper {
+ public:
+    Ver4PatriciaTrieWritingHelper(Ver4DictBuffers *const buffers)
+            : mBuffers(buffers) {}
+
+    bool writeToDictFile(const char *const dictDirPath, const EntryCounts &entryCounts) const;
+
+    // This method cannot be const because the original dictionary buffer will be updated to detect
+    // useless PtNodes during GC.
+    bool writeToDictFileWithGC(const int rootPtNodeArrayPos, const char *const dictDirPath);
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(Ver4PatriciaTrieWritingHelper);
+
+    class TraversePolicyToUpdateAllPtNodeFlagsAndTerminalIds
+            : public DynamicPtReadingHelper::TraversingEventListener {
+     public:
+        TraversePolicyToUpdateAllPtNodeFlagsAndTerminalIds(
+                Ver4PatriciaTrieNodeWriter *const ptNodeWriter,
+                const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap)
+                : mPtNodeWriter(ptNodeWriter), mTerminalIdMap(terminalIdMap) {}
+
+        bool onAscend() { return true; }
+
+        bool onDescend(const int ptNodeArrayPos) { return true; }
+
+        bool onReadingPtNodeArrayTail() { return true; }
+
+        bool onVisitingPtNode(const PtNodeParams *const ptNodeParams);
+
+     private:
+        DISALLOW_IMPLICIT_CONSTRUCTORS(TraversePolicyToUpdateAllPtNodeFlagsAndTerminalIds);
+
+        Ver4PatriciaTrieNodeWriter *const mPtNodeWriter;
+        const TerminalPositionLookupTable::TerminalIdMap *const mTerminalIdMap;
+    };
+
+    bool runGC(const int rootPtNodeArrayPos, const HeaderPolicy *const headerPolicy,
+            Ver4DictBuffers *const buffersToWrite, MutableEntryCounters *const outEntryCounters);
+
+    Ver4DictBuffers *const mBuffers;
+};
+} // namespace latinime
+
+#endif /* LATINIME_VER4_PATRICIA_TRIE_WRITING_HELPER_H */
diff --git a/native/jni/src/dictionary/structure/v4/ver4_pt_node_array_reader.cpp b/native/jni/src/dictionary/structure/v4/ver4_pt_node_array_reader.cpp
new file mode 100644
index 0000000..63d0b4a
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/ver4_pt_node_array_reader.cpp
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2014, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/v4/ver4_pt_node_array_reader.h"
+
+#include "dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
+#include "dictionary/structure/pt_common/patricia_trie_reading_utils.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+
+namespace latinime {
+
+bool Ver4PtNodeArrayReader::readPtNodeArrayInfoAndReturnIfValid(const int ptNodeArrayPos,
+        int *const outPtNodeCount, int *const outFirstPtNodePos) const {
+    if (ptNodeArrayPos < 0 || ptNodeArrayPos >= mBuffer->getTailPosition()) {
+        // Reading invalid position because of a bug or a broken dictionary.
+        AKLOGE("Reading PtNode array info from invalid dictionary position: %d, dict size: %d",
+                ptNodeArrayPos, mBuffer->getTailPosition());
+        ASSERT(false);
+        return false;
+    }
+    const bool usesAdditionalBuffer = mBuffer->isInAdditionalBuffer(ptNodeArrayPos);
+    const uint8_t *const dictBuf = mBuffer->getBuffer(usesAdditionalBuffer);
+    int readingPos = ptNodeArrayPos;
+    if (usesAdditionalBuffer) {
+        readingPos -= mBuffer->getOriginalBufferSize();
+    }
+    const int ptNodeCountInArray = PatriciaTrieReadingUtils::getPtNodeArraySizeAndAdvancePosition(
+            dictBuf, &readingPos);
+    if (usesAdditionalBuffer) {
+        readingPos += mBuffer->getOriginalBufferSize();
+    }
+    if (ptNodeCountInArray < 0) {
+        AKLOGE("Invalid PtNode count in an array: %d.", ptNodeCountInArray);
+        return false;
+    }
+    *outPtNodeCount = ptNodeCountInArray;
+    *outFirstPtNodePos = readingPos;
+    return true;
+}
+
+bool Ver4PtNodeArrayReader::readForwardLinkAndReturnIfValid(const int forwordLinkPos,
+        int *const outNextPtNodeArrayPos) const {
+    if (forwordLinkPos < 0 || forwordLinkPos >= mBuffer->getTailPosition()) {
+        // Reading invalid position because of bug or broken dictionary.
+        AKLOGE("Reading forward link from invalid dictionary position: %d, dict size: %d",
+                forwordLinkPos, mBuffer->getTailPosition());
+        ASSERT(false);
+        return false;
+    }
+    const bool usesAdditionalBuffer = mBuffer->isInAdditionalBuffer(forwordLinkPos);
+    const uint8_t *const dictBuf = mBuffer->getBuffer(usesAdditionalBuffer);
+    int readingPos = forwordLinkPos;
+    if (usesAdditionalBuffer) {
+        readingPos -= mBuffer->getOriginalBufferSize();
+    }
+    const int nextPtNodeArrayOffset =
+            DynamicPtReadingUtils::getForwardLinkPosition(dictBuf, readingPos);
+    if (DynamicPtReadingUtils::isValidForwardLinkPosition(nextPtNodeArrayOffset)) {
+        *outNextPtNodeArrayPos = forwordLinkPos + nextPtNodeArrayOffset;
+    } else {
+        *outNextPtNodeArrayPos = NOT_A_DICT_POS;
+    }
+    return true;
+}
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/structure/v4/ver4_pt_node_array_reader.h b/native/jni/src/dictionary/structure/v4/ver4_pt_node_array_reader.h
new file mode 100644
index 0000000..ccb760b
--- /dev/null
+++ b/native/jni/src/dictionary/structure/v4/ver4_pt_node_array_reader.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2014, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_VER4_PT_NODE_ARRAY_READER_H
+#define LATINIME_VER4_PT_NODE_ARRAY_READER_H
+
+#include "defines.h"
+#include "dictionary/structure/pt_common/pt_node_array_reader.h"
+
+namespace latinime {
+
+class BufferWithExtendableBuffer;
+
+class Ver4PtNodeArrayReader : public PtNodeArrayReader {
+ public:
+    Ver4PtNodeArrayReader(const BufferWithExtendableBuffer *const buffer) : mBuffer(buffer) {};
+
+    virtual bool readPtNodeArrayInfoAndReturnIfValid(const int ptNodeArrayPos,
+            int *const outPtNodeCount, int *const outFirstPtNodePos) const;
+    virtual bool readForwardLinkAndReturnIfValid(const int forwordLinkPos,
+            int *const outNextPtNodeArrayPos) const;
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(Ver4PtNodeArrayReader);
+
+    const BufferWithExtendableBuffer *const mBuffer;
+};
+} // namespace latinime
+#endif /* LATINIME_VER4_PT_NODE_ARRAY_READER_H */
diff --git a/native/jni/src/dictionary/utils/binary_dictionary_bigrams_iterator.h b/native/jni/src/dictionary/utils/binary_dictionary_bigrams_iterator.h
new file mode 100644
index 0000000..8a61473
--- /dev/null
+++ b/native/jni/src/dictionary/utils/binary_dictionary_bigrams_iterator.h
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_BINARY_DICTIONARY_BIGRAMS_ITERATOR_H
+#define LATINIME_BINARY_DICTIONARY_BIGRAMS_ITERATOR_H
+
+#include "defines.h"
+#include "dictionary/interface/dictionary_bigrams_structure_policy.h"
+
+namespace latinime {
+
+class BinaryDictionaryBigramsIterator {
+ public:
+    // Empty iterator.
+    BinaryDictionaryBigramsIterator()
+           : mBigramsStructurePolicy(nullptr), mPos(NOT_A_DICT_POS),
+             mBigramPos(NOT_A_DICT_POS), mProbability(NOT_A_PROBABILITY), mHasNext(false) {}
+
+    BinaryDictionaryBigramsIterator(
+            const DictionaryBigramsStructurePolicy *const bigramsStructurePolicy, const int pos)
+            : mBigramsStructurePolicy(bigramsStructurePolicy), mPos(pos),
+              mBigramPos(NOT_A_DICT_POS), mProbability(NOT_A_PROBABILITY),
+              mHasNext(pos != NOT_A_DICT_POS) {}
+
+    BinaryDictionaryBigramsIterator(BinaryDictionaryBigramsIterator &&bigramsIterator)
+            : mBigramsStructurePolicy(bigramsIterator.mBigramsStructurePolicy),
+              mPos(bigramsIterator.mPos), mBigramPos(bigramsIterator.mBigramPos),
+              mProbability(bigramsIterator.mProbability), mHasNext(bigramsIterator.mHasNext) {}
+
+    AK_FORCE_INLINE bool hasNext() const {
+        return mHasNext;
+    }
+
+    AK_FORCE_INLINE void next() {
+        mBigramsStructurePolicy->getNextBigram(&mBigramPos, &mProbability, &mHasNext, &mPos);
+    }
+
+    AK_FORCE_INLINE int getProbability() const {
+        return mProbability;
+    }
+
+    AK_FORCE_INLINE int getBigramPos() const {
+        return mBigramPos;
+    }
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(BinaryDictionaryBigramsIterator);
+
+    const DictionaryBigramsStructurePolicy *const mBigramsStructurePolicy;
+    int mPos;
+    int mBigramPos;
+    int mProbability;
+    bool mHasNext;
+};
+} // namespace latinime
+#endif // LATINIME_BINARY_DICTIONARY_BIGRAMS_ITERATOR_H
diff --git a/native/jni/src/dictionary/utils/binary_dictionary_shortcut_iterator.h b/native/jni/src/dictionary/utils/binary_dictionary_shortcut_iterator.h
new file mode 100644
index 0000000..a4ddd58
--- /dev/null
+++ b/native/jni/src/dictionary/utils/binary_dictionary_shortcut_iterator.h
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_BINARY_DICTIONARY_SHORTCUT_ITERATOR_H
+#define LATINIME_BINARY_DICTIONARY_SHORTCUT_ITERATOR_H
+
+#include "defines.h"
+#include "dictionary/interface/dictionary_shortcuts_structure_policy.h"
+
+namespace latinime {
+
+class BinaryDictionaryShortcutIterator {
+ public:
+    BinaryDictionaryShortcutIterator(
+            const DictionaryShortcutsStructurePolicy *const shortcutStructurePolicy,
+            const int shortcutPos)
+            : mShortcutStructurePolicy(shortcutStructurePolicy),
+              mPos(shortcutStructurePolicy->getStartPos(shortcutPos)),
+              mHasNextShortcutTarget(shortcutPos != NOT_A_DICT_POS) {}
+
+    BinaryDictionaryShortcutIterator(const BinaryDictionaryShortcutIterator &&shortcutIterator)
+            : mShortcutStructurePolicy(shortcutIterator.mShortcutStructurePolicy),
+              mPos(shortcutIterator.mPos),
+              mHasNextShortcutTarget(shortcutIterator.mHasNextShortcutTarget) {}
+
+    AK_FORCE_INLINE bool hasNextShortcutTarget() const {
+        return mHasNextShortcutTarget;
+    }
+
+    // Gets the shortcut target itself as an int string and put it to outTarget, put its length
+    // to outTargetLength, put whether it is whitelist to outIsWhitelist.
+    AK_FORCE_INLINE void nextShortcutTarget(
+            const int maxDepth, int *const outTarget, int *const outTargetLength,
+            bool *const outIsWhitelist) {
+        mShortcutStructurePolicy->getNextShortcut(maxDepth, outTarget, outTargetLength,
+                outIsWhitelist, &mHasNextShortcutTarget, &mPos);
+    }
+
+ private:
+    DISALLOW_DEFAULT_CONSTRUCTOR(BinaryDictionaryShortcutIterator);
+    DISALLOW_ASSIGNMENT_OPERATOR(BinaryDictionaryShortcutIterator);
+
+    const DictionaryShortcutsStructurePolicy *const mShortcutStructurePolicy;
+    int mPos;
+    bool mHasNextShortcutTarget;
+};
+} // namespace latinime
+#endif // LATINIME_BINARY_DICTIONARY_SHORTCUT_ITERATOR_H
diff --git a/native/jni/src/suggest/core/dictionary/bloom_filter.h b/native/jni/src/dictionary/utils/bloom_filter.h
similarity index 100%
rename from native/jni/src/suggest/core/dictionary/bloom_filter.h
rename to native/jni/src/dictionary/utils/bloom_filter.h
diff --git a/native/jni/src/dictionary/utils/buffer_with_extendable_buffer.cpp b/native/jni/src/dictionary/utils/buffer_with_extendable_buffer.cpp
new file mode 100644
index 0000000..2175696
--- /dev/null
+++ b/native/jni/src/dictionary/utils/buffer_with_extendable_buffer.cpp
@@ -0,0 +1,170 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+
+namespace latinime {
+
+const size_t BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE = 1024 * 1024;
+const int BufferWithExtendableBuffer::NEAR_BUFFER_LIMIT_THRESHOLD_PERCENTILE = 90;
+// TODO: Needs to allocate larger memory corresponding to the current vector size.
+const size_t BufferWithExtendableBuffer::EXTEND_ADDITIONAL_BUFFER_SIZE_STEP = 128 * 1024;
+
+uint32_t BufferWithExtendableBuffer::readUint(const int size, const int pos) const {
+    const bool readingPosIsInAdditionalBuffer = isInAdditionalBuffer(pos);
+    const int posInBuffer = readingPosIsInAdditionalBuffer ? pos - mOriginalBuffer.size() : pos;
+    return ByteArrayUtils::readUint(getBuffer(readingPosIsInAdditionalBuffer), size, posInBuffer);
+}
+
+uint32_t BufferWithExtendableBuffer::readUintAndAdvancePosition(const int size,
+        int *const pos) const {
+    const uint32_t value = readUint(size, *pos);
+    *pos += size;
+    return value;
+}
+
+void BufferWithExtendableBuffer::readCodePointsAndAdvancePosition(const int maxCodePointCount,
+        int *const outCodePoints, int *outCodePointCount, int *const pos) const {
+    const bool readingPosIsInAdditionalBuffer = isInAdditionalBuffer(*pos);
+    if (readingPosIsInAdditionalBuffer) {
+        *pos -= mOriginalBuffer.size();
+    }
+    // Code point table is not used for dynamic format.
+    *outCodePointCount = ByteArrayUtils::readStringAndAdvancePosition(
+            getBuffer(readingPosIsInAdditionalBuffer), maxCodePointCount,
+            nullptr /* codePointTable */, outCodePoints, pos);
+    if (readingPosIsInAdditionalBuffer) {
+        *pos += mOriginalBuffer.size();
+    }
+}
+
+bool BufferWithExtendableBuffer::extend(const int size) {
+    return checkAndPrepareWriting(getTailPosition(), size);
+}
+
+bool BufferWithExtendableBuffer::writeUint(const uint32_t data, const int size, const int pos) {
+    int writingPos = pos;
+    return writeUintAndAdvancePosition(data, size, &writingPos);
+}
+
+bool BufferWithExtendableBuffer::writeUintAndAdvancePosition(const uint32_t data, const int size,
+        int *const pos) {
+    if (!(size >= 1 && size <= 4)) {
+        AKLOGI("writeUintAndAdvancePosition() is called with invalid size: %d", size);
+        ASSERT(false);
+        return false;
+    }
+    if (!checkAndPrepareWriting(*pos, size)) {
+        return false;
+    }
+    const bool usesAdditionalBuffer = isInAdditionalBuffer(*pos);
+    uint8_t *const buffer =
+            usesAdditionalBuffer ? mAdditionalBuffer.data() : mOriginalBuffer.data();
+    if (usesAdditionalBuffer) {
+        *pos -= mOriginalBuffer.size();
+    }
+    ByteArrayUtils::writeUintAndAdvancePosition(buffer, data, size, pos);
+    if (usesAdditionalBuffer) {
+        *pos += mOriginalBuffer.size();
+    }
+    return true;
+}
+
+bool BufferWithExtendableBuffer::writeCodePointsAndAdvancePosition(const int *const codePoints,
+        const int codePointCount, const bool writesTerminator, int *const pos) {
+    const size_t size = ByteArrayUtils::calculateRequiredByteCountToStoreCodePoints(
+            codePoints, codePointCount, writesTerminator);
+    if (!checkAndPrepareWriting(*pos, size)) {
+        return false;
+    }
+    const bool usesAdditionalBuffer = isInAdditionalBuffer(*pos);
+    uint8_t *const buffer =
+            usesAdditionalBuffer ? mAdditionalBuffer.data() : mOriginalBuffer.data();
+    if (usesAdditionalBuffer) {
+        *pos -= mOriginalBuffer.size();
+    }
+    ByteArrayUtils::writeCodePointsAndAdvancePosition(buffer, codePoints, codePointCount,
+            writesTerminator, pos);
+    if (usesAdditionalBuffer) {
+        *pos += mOriginalBuffer.size();
+    }
+    return true;
+}
+
+bool BufferWithExtendableBuffer::extendBuffer(const size_t size) {
+    const size_t extendSize = std::max(EXTEND_ADDITIONAL_BUFFER_SIZE_STEP, size);
+    const size_t sizeAfterExtending =
+            std::min(mAdditionalBuffer.size() + extendSize, mMaxAdditionalBufferSize);
+    if (sizeAfterExtending < mAdditionalBuffer.size() + size) {
+        return false;
+    }
+    mAdditionalBuffer.resize(sizeAfterExtending);
+    return true;
+}
+
+bool BufferWithExtendableBuffer::checkAndPrepareWriting(const int pos, const int size) {
+    if (pos < 0 || size < 0) {
+        // Invalid position or size.
+        return false;
+    }
+    const size_t totalRequiredSize = static_cast<size_t>(pos + size);
+    if (!isInAdditionalBuffer(pos)) {
+        // Here don't need to care about the additional buffer.
+        if (mOriginalBuffer.size() < totalRequiredSize) {
+            // Violate the boundary.
+            return false;
+        }
+        // The buffer has sufficient capacity.
+        return true;
+    }
+    // Hereafter, pos is in the additional buffer.
+    const size_t tailPosition = static_cast<size_t>(getTailPosition());
+    if (totalRequiredSize <= tailPosition) {
+        // The buffer has sufficient capacity.
+        return true;
+    }
+    if (static_cast<size_t>(pos) != tailPosition) {
+        // The additional buffer must be extended from the tail position.
+        return false;
+    }
+    const size_t extendSize = totalRequiredSize -
+            std::min(mAdditionalBuffer.size() + mOriginalBuffer.size(), totalRequiredSize);
+    if (extendSize > 0 && !extendBuffer(extendSize)) {
+        // Failed to extend the buffer.
+        return false;
+    }
+    mUsedAdditionalBufferSize += size;
+    return true;
+}
+
+bool BufferWithExtendableBuffer::copy(const BufferWithExtendableBuffer *const sourceBuffer) {
+    int copyingPos = 0;
+    const int tailPos = sourceBuffer->getTailPosition();
+    const int maxDataChunkSize = sizeof(uint32_t);
+    while (copyingPos < tailPos) {
+        const int remainingSize = tailPos - copyingPos;
+        const int copyingSize = (remainingSize >= maxDataChunkSize) ?
+                maxDataChunkSize : remainingSize;
+        const uint32_t data = sourceBuffer->readUint(copyingSize, copyingPos);
+        if (!writeUint(data, copyingSize, copyingPos)) {
+            return false;
+        }
+        copyingPos += copyingSize;
+    }
+    return true;
+}
+
+}
diff --git a/native/jni/src/dictionary/utils/buffer_with_extendable_buffer.h b/native/jni/src/dictionary/utils/buffer_with_extendable_buffer.h
new file mode 100644
index 0000000..0a141d4
--- /dev/null
+++ b/native/jni/src/dictionary/utils/buffer_with_extendable_buffer.h
@@ -0,0 +1,125 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_BUFFER_WITH_EXTENDABLE_BUFFER_H
+#define LATINIME_BUFFER_WITH_EXTENDABLE_BUFFER_H
+
+#include <cstddef>
+#include <cstdint>
+#include <vector>
+
+#include "defines.h"
+#include "dictionary/utils/byte_array_utils.h"
+#include "utils/byte_array_view.h"
+
+namespace latinime {
+
+// This is used as a buffer that can be extended for updatable dictionaries.
+// To optimize performance, raw pointer is directly used for reading buffer. The position has to be
+// adjusted to access additional buffer. On the other hand, this class does not provide writable
+// raw pointer but provides several methods that handle boundary checking for writing data.
+class BufferWithExtendableBuffer {
+ public:
+    static const size_t DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE;
+
+    BufferWithExtendableBuffer(const ReadWriteByteArrayView originalBuffer,
+            const int maxAdditionalBufferSize)
+            : mOriginalBuffer(originalBuffer), mAdditionalBuffer(), mUsedAdditionalBufferSize(0),
+              mMaxAdditionalBufferSize(maxAdditionalBufferSize) {}
+
+    // Without original buffer.
+    BufferWithExtendableBuffer(const int maxAdditionalBufferSize)
+            : mOriginalBuffer(), mAdditionalBuffer(), mUsedAdditionalBufferSize(0),
+              mMaxAdditionalBufferSize(maxAdditionalBufferSize) {}
+
+    AK_FORCE_INLINE int getTailPosition() const {
+        return mOriginalBuffer.size() + mUsedAdditionalBufferSize;
+    }
+
+    AK_FORCE_INLINE int getUsedAdditionalBufferSize() const {
+        return mUsedAdditionalBufferSize;
+    }
+
+    /**
+     * For reading.
+     */
+    AK_FORCE_INLINE bool isInAdditionalBuffer(const int position) const {
+        return position >= static_cast<int>(mOriginalBuffer.size());
+    }
+
+    // TODO: Resolve the issue that the address can be changed when the vector is resized.
+    // CAVEAT!: Be careful about array out of bound access with buffers
+    AK_FORCE_INLINE const uint8_t *getBuffer(const bool usesAdditionalBuffer) const {
+        if (usesAdditionalBuffer) {
+            return mAdditionalBuffer.data();
+        } else {
+            return mOriginalBuffer.data();
+        }
+    }
+
+    uint32_t readUint(const int size, const int pos) const;
+
+    uint32_t readUintAndAdvancePosition(const int size, int *const pos) const;
+
+    void readCodePointsAndAdvancePosition(const int maxCodePointCount,
+            int *const outCodePoints, int *outCodePointCount, int *const pos) const;
+
+    AK_FORCE_INLINE int getOriginalBufferSize() const {
+        return mOriginalBuffer.size();
+    }
+
+    AK_FORCE_INLINE bool isNearSizeLimit() const {
+        return mAdditionalBuffer.size() >= ((mMaxAdditionalBufferSize
+                * NEAR_BUFFER_LIMIT_THRESHOLD_PERCENTILE) / 100);
+    }
+
+    bool extend(const int size);
+
+    /**
+     * For writing.
+     *
+     * Writing is allowed for original buffer, already written region of additional buffer and the
+     * tail of additional buffer.
+     */
+    bool writeUint(const uint32_t data, const int size, const int pos);
+
+    bool writeUintAndAdvancePosition(const uint32_t data, const int size, int *const pos);
+
+    bool writeCodePointsAndAdvancePosition(const int *const codePoints, const int codePointCount,
+            const bool writesTerminator, int *const pos);
+
+    bool copy(const BufferWithExtendableBuffer *const sourceBuffer);
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(BufferWithExtendableBuffer);
+
+    static const int NEAR_BUFFER_LIMIT_THRESHOLD_PERCENTILE;
+    static const size_t EXTEND_ADDITIONAL_BUFFER_SIZE_STEP;
+
+    const ReadWriteByteArrayView mOriginalBuffer;
+    std::vector<uint8_t> mAdditionalBuffer;
+    int mUsedAdditionalBufferSize;
+    const size_t mMaxAdditionalBufferSize;
+
+    // Return if the buffer is successfully extended or not.
+    bool extendBuffer(const size_t size);
+
+    // Returns if it is possible to write size-bytes from pos. When pos is at the tail position of
+    // the additional buffer, try extending the buffer.
+    bool checkAndPrepareWriting(const int pos, const int size);
+};
+}
+#endif /* LATINIME_BUFFER_WITH_EXTENDABLE_BUFFER_H */
diff --git a/native/jni/src/dictionary/utils/byte_array_utils.cpp b/native/jni/src/dictionary/utils/byte_array_utils.cpp
new file mode 100644
index 0000000..d38f082
--- /dev/null
+++ b/native/jni/src/dictionary/utils/byte_array_utils.cpp
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/utils/byte_array_utils.h"
+
+namespace latinime {
+
+const uint8_t ByteArrayUtils::MINIMUM_ONE_BYTE_CHARACTER_VALUE = 0x20;
+const uint8_t ByteArrayUtils::MAXIMUM_ONE_BYTE_CHARACTER_VALUE = 0xFF;
+const uint8_t ByteArrayUtils::CHARACTER_ARRAY_TERMINATOR = 0x1F;
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/utils/byte_array_utils.h b/native/jni/src/dictionary/utils/byte_array_utils.h
new file mode 100644
index 0000000..abb9790
--- /dev/null
+++ b/native/jni/src/dictionary/utils/byte_array_utils.h
@@ -0,0 +1,290 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_BYTE_ARRAY_UTILS_H
+#define LATINIME_BYTE_ARRAY_UTILS_H
+
+#include <cstdint>
+
+#include "defines.h"
+
+namespace latinime {
+
+/**
+ * Utility methods for reading byte arrays.
+ */
+class ByteArrayUtils {
+ public:
+    /**
+     * Integer writing
+     *
+     * Each method write a corresponding size integer in a big endian manner.
+     */
+    static AK_FORCE_INLINE void writeUintAndAdvancePosition(uint8_t *const buffer,
+            const uint32_t data, const int size, int *const pos) {
+        // size must be in 1 to 4.
+        ASSERT(size >= 1 && size <= 4);
+        switch (size) {
+            case 1:
+                ByteArrayUtils::writeUint8AndAdvancePosition(buffer, data, pos);
+                return;
+            case 2:
+                ByteArrayUtils::writeUint16AndAdvancePosition(buffer, data, pos);
+                return;
+            case 3:
+                ByteArrayUtils::writeUint24AndAdvancePosition(buffer, data, pos);
+                return;
+            case 4:
+                ByteArrayUtils::writeUint32AndAdvancePosition(buffer, data, pos);
+                return;
+            default:
+                break;
+        }
+    }
+
+    /**
+     * Integer reading
+     *
+     * Each method read a corresponding size integer in a big endian manner.
+     */
+    static AK_FORCE_INLINE uint32_t readUint32(const uint8_t *const buffer, const int pos) {
+        return (buffer[pos] << 24) ^ (buffer[pos + 1] << 16)
+                ^ (buffer[pos + 2] << 8) ^ buffer[pos + 3];
+    }
+
+    static AK_FORCE_INLINE uint32_t readUint24(const uint8_t *const buffer, const int pos) {
+        return (buffer[pos] << 16) ^ (buffer[pos + 1] << 8) ^ buffer[pos + 2];
+    }
+
+    static AK_FORCE_INLINE uint16_t readUint16(const uint8_t *const buffer, const int pos) {
+        return (buffer[pos] << 8) ^ buffer[pos + 1];
+    }
+
+    static AK_FORCE_INLINE uint8_t readUint8(const uint8_t *const buffer, const int pos) {
+        return buffer[pos];
+    }
+
+    static AK_FORCE_INLINE uint32_t readUint32AndAdvancePosition(
+            const uint8_t *const buffer, int *const pos) {
+        const uint32_t value = readUint32(buffer, *pos);
+        *pos += 4;
+        return value;
+    }
+
+    static AK_FORCE_INLINE int readSint24AndAdvancePosition(
+            const uint8_t *const buffer, int *const pos) {
+        const uint8_t value = readUint8(buffer, *pos);
+        if (value < 0x80) {
+            return readUint24AndAdvancePosition(buffer, pos);
+        } else {
+            (*pos)++;
+            return -(((value & 0x7F) << 16) ^ readUint16AndAdvancePosition(buffer, pos));
+        }
+    }
+
+    static AK_FORCE_INLINE uint32_t readUint24AndAdvancePosition(
+            const uint8_t *const buffer, int *const pos) {
+        const uint32_t value = readUint24(buffer, *pos);
+        *pos += 3;
+        return value;
+    }
+
+    static AK_FORCE_INLINE uint16_t readUint16AndAdvancePosition(
+            const uint8_t *const buffer, int *const pos) {
+        const uint16_t value = readUint16(buffer, *pos);
+        *pos += 2;
+        return value;
+    }
+
+    static AK_FORCE_INLINE uint8_t readUint8AndAdvancePosition(
+            const uint8_t *const buffer, int *const pos) {
+        return buffer[(*pos)++];
+    }
+
+    static AK_FORCE_INLINE uint32_t readUint(const uint8_t *const buffer,
+            const int size, const int pos) {
+        // size must be in 1 to 4.
+        ASSERT(size >= 1 && size <= 4);
+        switch (size) {
+            case 1:
+                return ByteArrayUtils::readUint8(buffer, pos);
+            case 2:
+                return ByteArrayUtils::readUint16(buffer, pos);
+            case 3:
+                return ByteArrayUtils::readUint24(buffer, pos);
+            case 4:
+                return ByteArrayUtils::readUint32(buffer, pos);
+            default:
+                return 0;
+        }
+    }
+
+    /**
+     * Code Point Reading
+     *
+     * 1 byte = bbbbbbbb match
+     * case 000xxxxx: xxxxx << 16 + next byte << 8 + next byte
+     * else: if 00011111 (= 0x1F) : this is the terminator. This is a relevant choice because
+     *       unicode code points range from 0 to 0x10FFFF, so any 3-byte value starting with
+     *       00011111 would be outside unicode.
+     * else: iso-latin-1 code
+     * This allows for the whole unicode range to be encoded, including chars outside of
+     * the BMP. Also everything in the iso-latin-1 charset is only 1 byte, except control
+     * characters which should never happen anyway (and still work, but take 3 bytes).
+     */
+    static AK_FORCE_INLINE int readCodePoint(const uint8_t *const buffer, const int pos) {
+        int p = pos;
+        return readCodePointAndAdvancePosition(buffer, nullptr /* codePointTable */, &p);
+    }
+
+    static AK_FORCE_INLINE int readCodePointAndAdvancePosition(
+            const uint8_t *const buffer, const int *const codePointTable, int *const pos) {
+        /*
+         * codePointTable is an array to convert the most frequent characters in this dictionary to
+         * 1 byte code points. It is only made of the original code points of the most frequent
+         * characters used in this dictionary. 0x20 - 0xFF is used for the 1 byte characters.
+         * The original code points are restored by picking the code points at the indices of the
+         * codePointTable. The indices are calculated by subtracting 0x20 from the firstByte.
+         */
+        const uint8_t firstByte = readUint8(buffer, *pos);
+        if (firstByte < MINIMUM_ONE_BYTE_CHARACTER_VALUE) {
+            if (firstByte == CHARACTER_ARRAY_TERMINATOR) {
+                *pos += 1;
+                return NOT_A_CODE_POINT;
+            } else {
+                return readUint24AndAdvancePosition(buffer, pos);
+            }
+        } else {
+            *pos += 1;
+            if (codePointTable) {
+                return codePointTable[firstByte - MINIMUM_ONE_BYTE_CHARACTER_VALUE];
+            }
+            return firstByte;
+        }
+    }
+
+    /**
+     * String (array of code points) Reading
+     *
+     * Reads code points until the terminator is found.
+     */
+    // Returns the length of the string.
+    static int readStringAndAdvancePosition(const uint8_t *const buffer,
+            const int maxLength, const int *const codePointTable, int *const outBuffer,
+            int *const pos) {
+        int length = 0;
+        int codePoint = readCodePointAndAdvancePosition(buffer, codePointTable, pos);
+        while (NOT_A_CODE_POINT != codePoint && length < maxLength) {
+            outBuffer[length++] = codePoint;
+            codePoint = readCodePointAndAdvancePosition(buffer, codePointTable, pos);
+        }
+        return length;
+    }
+
+    // Advances the position and returns the length of the string.
+    static int advancePositionToBehindString(
+            const uint8_t *const buffer, const int maxLength, int *const pos) {
+        int length = 0;
+        int codePoint = readCodePointAndAdvancePosition(buffer, nullptr /* codePointTable */, pos);
+        while (NOT_A_CODE_POINT != codePoint && length < maxLength) {
+            codePoint = readCodePointAndAdvancePosition(buffer, nullptr /* codePointTable */, pos);
+            length++;
+        }
+        return length;
+    }
+
+    /**
+     * String (array of code points) Writing
+     */
+    static void writeCodePointsAndAdvancePosition(uint8_t *const buffer,
+            const int *const codePoints, const int codePointCount, const bool writesTerminator,
+            int *const pos) {
+        for (int i = 0; i < codePointCount; ++i) {
+            const int codePoint = codePoints[i];
+            if (codePoint == NOT_A_CODE_POINT || codePoint == CHARACTER_ARRAY_TERMINATOR) {
+                break;
+            } else if (codePoint < MINIMUM_ONE_BYTE_CHARACTER_VALUE
+                    || codePoint > MAXIMUM_ONE_BYTE_CHARACTER_VALUE) {
+                // three bytes character.
+                writeUint24AndAdvancePosition(buffer, codePoint, pos);
+            } else {
+                // one byte character.
+                writeUint8AndAdvancePosition(buffer, codePoint, pos);
+            }
+        }
+        if (writesTerminator) {
+            writeUint8AndAdvancePosition(buffer, CHARACTER_ARRAY_TERMINATOR, pos);
+        }
+    }
+
+    static int calculateRequiredByteCountToStoreCodePoints(const int *const codePoints,
+            const int codePointCount, const bool writesTerminator) {
+        int byteCount = 0;
+        for (int i = 0; i < codePointCount; ++i) {
+            const int codePoint = codePoints[i];
+            if (codePoint == NOT_A_CODE_POINT || codePoint == CHARACTER_ARRAY_TERMINATOR) {
+                break;
+            } else if (codePoint < MINIMUM_ONE_BYTE_CHARACTER_VALUE
+                    || codePoint > MAXIMUM_ONE_BYTE_CHARACTER_VALUE) {
+                // three bytes character.
+                byteCount += 3;
+            } else {
+                // one byte character.
+                byteCount += 1;
+            }
+        }
+        if (writesTerminator) {
+            // The terminator is one byte.
+            byteCount += 1;
+        }
+        return byteCount;
+    }
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(ByteArrayUtils);
+
+    static const uint8_t MINIMUM_ONE_BYTE_CHARACTER_VALUE;
+    static const uint8_t MAXIMUM_ONE_BYTE_CHARACTER_VALUE;
+    static const uint8_t CHARACTER_ARRAY_TERMINATOR;
+
+    static AK_FORCE_INLINE void writeUint32AndAdvancePosition(uint8_t *const buffer,
+            const uint32_t data, int *const pos) {
+        buffer[(*pos)++] = (data >> 24) & 0xFF;
+        buffer[(*pos)++] = (data >> 16) & 0xFF;
+        buffer[(*pos)++] = (data >> 8) & 0xFF;
+        buffer[(*pos)++] = data & 0xFF;
+    }
+
+    static AK_FORCE_INLINE void writeUint24AndAdvancePosition(uint8_t *const buffer,
+            const uint32_t data, int *const pos) {
+        buffer[(*pos)++] = (data >> 16) & 0xFF;
+        buffer[(*pos)++] = (data >> 8) & 0xFF;
+        buffer[(*pos)++] = data & 0xFF;
+    }
+
+    static AK_FORCE_INLINE void writeUint16AndAdvancePosition(uint8_t *const buffer,
+            const uint16_t data, int *const pos) {
+        buffer[(*pos)++] = (data >> 8) & 0xFF;
+        buffer[(*pos)++] = data & 0xFF;
+    }
+
+    static AK_FORCE_INLINE void writeUint8AndAdvancePosition(uint8_t *const buffer,
+            const uint8_t data, int *const pos) {
+        buffer[(*pos)++] = data & 0xFF;
+    }
+};
+} // namespace latinime
+#endif /* LATINIME_BYTE_ARRAY_UTILS_H */
diff --git a/native/jni/src/dictionary/utils/dict_file_writing_utils.cpp b/native/jni/src/dictionary/utils/dict_file_writing_utils.cpp
new file mode 100644
index 0000000..033a758
--- /dev/null
+++ b/native/jni/src/dictionary/utils/dict_file_writing_utils.cpp
@@ -0,0 +1,144 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/utils/dict_file_writing_utils.h"
+
+#include <cstdio>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#include "dictionary/header/header_policy.h"
+#include "dictionary/structure/backward/v402/ver4_dict_buffers.h"
+#include "dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
+#include "dictionary/structure/v4/ver4_dict_buffers.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "dictionary/utils/entry_counters.h"
+#include "dictionary/utils/file_utils.h"
+#include "dictionary/utils/format_utils.h"
+#include "utils/time_keeper.h"
+
+namespace latinime {
+
+const char *const DictFileWritingUtils::TEMP_FILE_SUFFIX_FOR_WRITING_DICT_FILE = ".tmp";
+// Enough size to describe buffer size.
+const int DictFileWritingUtils::SIZE_OF_BUFFER_SIZE_FIELD = 4;
+
+/* static */ bool DictFileWritingUtils::createEmptyDictFile(const char *const filePath,
+        const int dictVersion, const std::vector<int> localeAsCodePointVector,
+        const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap) {
+    TimeKeeper::setCurrentTime();
+    const FormatUtils::FORMAT_VERSION formatVersion = FormatUtils::getFormatVersion(dictVersion);
+    switch (formatVersion) {
+        case FormatUtils::VERSION_402:
+            return createEmptyV4DictFile<backward::v402::Ver4DictConstants,
+                    backward::v402::Ver4DictBuffers,
+                    backward::v402::Ver4DictBuffers::Ver4DictBuffersPtr>(
+                            filePath, localeAsCodePointVector, attributeMap, formatVersion);
+        case FormatUtils::VERSION_4_ONLY_FOR_TESTING:
+        case FormatUtils::VERSION_403:
+            return createEmptyV4DictFile<Ver4DictConstants, Ver4DictBuffers,
+                    Ver4DictBuffers::Ver4DictBuffersPtr>(
+                            filePath, localeAsCodePointVector, attributeMap, formatVersion);
+        default:
+            AKLOGE("Cannot create dictionary %s because format version %d is not supported.",
+                    filePath, dictVersion);
+            return false;
+    }
+}
+
+template<class DictConstants, class DictBuffers, class DictBuffersPtr>
+/* static */ bool DictFileWritingUtils::createEmptyV4DictFile(const char *const dirPath,
+        const std::vector<int> localeAsCodePointVector,
+        const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap,
+        const FormatUtils::FORMAT_VERSION formatVersion) {
+    HeaderPolicy headerPolicy(formatVersion, localeAsCodePointVector, attributeMap);
+    DictBuffersPtr dictBuffers = DictBuffers::createVer4DictBuffers(&headerPolicy,
+            DictConstants::MAX_DICT_EXTENDED_REGION_SIZE);
+    headerPolicy.fillInAndWriteHeaderToBuffer(true /* updatesLastDecayedTime */,
+            EntryCounts(), 0 /* extendedRegionSize */, dictBuffers->getWritableHeaderBuffer());
+    if (!DynamicPtWritingUtils::writeEmptyDictionary(
+            dictBuffers->getWritableTrieBuffer(), 0 /* rootPos */)) {
+        AKLOGE("Empty ver4 dictionary structure cannot be created on memory.");
+        return false;
+    }
+    return dictBuffers->flush(dirPath);
+}
+
+/* static */ bool DictFileWritingUtils::flushBufferToFileWithSuffix(const char *const basePath,
+        const char *const suffix, const BufferWithExtendableBuffer *const buffer) {
+    const int filePathBufSize = FileUtils::getFilePathWithSuffixBufSize(basePath, suffix);
+    char filePath[filePathBufSize];
+    FileUtils::getFilePathWithSuffix(basePath, suffix, filePathBufSize, filePath);
+    return flushBufferToFile(filePath, buffer);
+}
+
+/* static */ bool DictFileWritingUtils::writeBufferToFileTail(FILE *const file,
+        const BufferWithExtendableBuffer *const buffer) {
+    uint8_t bufferSize[SIZE_OF_BUFFER_SIZE_FIELD];
+    int writingPos = 0;
+    ByteArrayUtils::writeUintAndAdvancePosition(bufferSize, buffer->getTailPosition(),
+            SIZE_OF_BUFFER_SIZE_FIELD, &writingPos);
+    if (fwrite(bufferSize, SIZE_OF_BUFFER_SIZE_FIELD, 1 /* count */, file) < 1) {
+        return false;
+    }
+    return writeBufferToFile(file, buffer);
+}
+
+/* static */ bool DictFileWritingUtils::flushBufferToFile(const char *const filePath,
+        const BufferWithExtendableBuffer *const buffer) {
+    const int fd = open(filePath, O_WRONLY | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR);
+    if (fd == -1) {
+        AKLOGE("File %s cannot be opened. errno: %d", filePath, errno);
+        ASSERT(false);
+        return false;
+    }
+    FILE *const file = fdopen(fd, "wb");
+    if (!file) {
+        AKLOGE("fdopen failed for the file %s. errno: %d", filePath, errno);
+        ASSERT(false);
+        return false;
+    }
+    if (!writeBufferToFile(file, buffer)) {
+        fclose(file);
+        remove(filePath);
+        AKLOGE("Buffer cannot be written to the file %s. size: %d", filePath,
+                buffer->getTailPosition());
+        ASSERT(false);
+        return false;
+    }
+    fclose(file);
+    return true;
+}
+
+// Returns whether the writing was succeeded or not.
+/* static */ bool DictFileWritingUtils::writeBufferToFile(FILE *const file,
+        const BufferWithExtendableBuffer *const buffer) {
+    const int originalBufSize = buffer->getOriginalBufferSize();
+    if (originalBufSize > 0 && fwrite(buffer->getBuffer(false /* usesAdditionalBuffer */),
+            originalBufSize, 1, file) < 1) {
+        return false;
+    }
+    const int additionalBufSize = buffer->getUsedAdditionalBufferSize();
+    if (additionalBufSize > 0 && fwrite(buffer->getBuffer(true /* usesAdditionalBuffer */),
+            additionalBufSize, 1, file) < 1) {
+        return false;
+    }
+    return true;
+}
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/utils/dict_file_writing_utils.h b/native/jni/src/dictionary/utils/dict_file_writing_utils.h
new file mode 100644
index 0000000..102a89d
--- /dev/null
+++ b/native/jni/src/dictionary/utils/dict_file_writing_utils.h
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_DICT_FILE_WRITING_UTILS_H
+#define LATINIME_DICT_FILE_WRITING_UTILS_H
+
+#include <cstdio>
+
+#include "defines.h"
+#include "dictionary/header/header_read_write_utils.h"
+#include "dictionary/utils/format_utils.h"
+
+namespace latinime {
+
+class BufferWithExtendableBuffer;
+
+class DictFileWritingUtils {
+ public:
+    static const char *const TEMP_FILE_SUFFIX_FOR_WRITING_DICT_FILE;
+
+    static bool createEmptyDictFile(const char *const filePath, const int dictVersion,
+            const std::vector<int> localeAsCodePointVector,
+            const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap);
+
+    static bool flushBufferToFileWithSuffix(const char *const basePath, const char *const suffix,
+            const BufferWithExtendableBuffer *const buffer);
+
+    static bool writeBufferToFileTail(FILE *const file,
+            const BufferWithExtendableBuffer *const buffer);
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(DictFileWritingUtils);
+
+    static const int SIZE_OF_BUFFER_SIZE_FIELD;
+
+    static bool createEmptyV401DictFile(const char *const filePath,
+            const std::vector<int> localeAsCodePointVector,
+            const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap,
+            const FormatUtils::FORMAT_VERSION formatVersion);
+
+    template<class DictConstants, class DictBuffers, class DictBuffersPtr>
+    static bool createEmptyV4DictFile(const char *const filePath,
+            const std::vector<int> localeAsCodePointVector,
+            const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap,
+            const FormatUtils::FORMAT_VERSION formatVersion);
+
+    static bool flushBufferToFile(const char *const filePath,
+            const BufferWithExtendableBuffer *const buffer);
+
+    static bool writeBufferToFile(FILE *const file,
+            const BufferWithExtendableBuffer *const buffer);
+};
+} // namespace latinime
+#endif /* LATINIME_DICT_FILE_WRITING_UTILS_H */
diff --git a/native/jni/src/dictionary/utils/entry_counters.h b/native/jni/src/dictionary/utils/entry_counters.h
new file mode 100644
index 0000000..5e44302
--- /dev/null
+++ b/native/jni/src/dictionary/utils/entry_counters.h
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2014, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_ENTRY_COUNTERS_H
+#define LATINIME_ENTRY_COUNTERS_H
+
+#include <array>
+
+#include "defines.h"
+#include "utils/ngram_utils.h"
+
+namespace latinime {
+
+// Copyable but immutable
+class EntryCounts final {
+ public:
+    EntryCounts() : mEntryCounts({{0, 0, 0, 0}}) {}
+
+    explicit EntryCounts(const std::array<int, MAX_PREV_WORD_COUNT_FOR_N_GRAM + 1> &counters)
+            : mEntryCounts(counters) {}
+
+    int getNgramCount(const NgramType ngramType) const {
+        return mEntryCounts[static_cast<int>(ngramType)];
+    }
+
+    const std::array<int, MAX_PREV_WORD_COUNT_FOR_N_GRAM + 1> &getCountArray() const {
+        return mEntryCounts;
+    }
+
+ private:
+    DISALLOW_ASSIGNMENT_OPERATOR(EntryCounts);
+
+    // Counts from Unigram (0-th element) to (MAX_PREV_WORD_COUNT_FOR_N_GRAM + 1)-gram
+    // (MAX_PREV_WORD_COUNT_FOR_N_GRAM-th element)
+    const std::array<int, MAX_PREV_WORD_COUNT_FOR_N_GRAM + 1> mEntryCounts;
+};
+
+class MutableEntryCounters final {
+ public:
+    MutableEntryCounters() {
+        mEntryCounters.fill(0);
+    }
+
+    explicit MutableEntryCounters(
+            const std::array<int, MAX_PREV_WORD_COUNT_FOR_N_GRAM + 1> &counters)
+            : mEntryCounters(counters) {}
+
+    const EntryCounts getEntryCounts() const {
+        return EntryCounts(mEntryCounters);
+    }
+
+    void incrementNgramCount(const NgramType ngramType) {
+        ++mEntryCounters[static_cast<int>(ngramType)];
+    }
+
+    void decrementNgramCount(const NgramType ngramType) {
+        --mEntryCounters[static_cast<int>(ngramType)];
+    }
+
+    int getNgramCount(const NgramType ngramType) const {
+        return mEntryCounters[static_cast<int>(ngramType)];
+    }
+
+    void setNgramCount(const NgramType ngramType, const int count) {
+        mEntryCounters[static_cast<int>(ngramType)] = count;
+    }
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(MutableEntryCounters);
+
+    // Counters from Unigram (0-th element) to (MAX_PREV_WORD_COUNT_FOR_N_GRAM + 1)-gram
+    // (MAX_PREV_WORD_COUNT_FOR_N_GRAM-th element)
+    std::array<int, MAX_PREV_WORD_COUNT_FOR_N_GRAM + 1> mEntryCounters;
+};
+} // namespace latinime
+#endif /* LATINIME_ENTRY_COUNTERS_H */
diff --git a/native/jni/src/dictionary/utils/file_utils.cpp b/native/jni/src/dictionary/utils/file_utils.cpp
new file mode 100644
index 0000000..bb392fb
--- /dev/null
+++ b/native/jni/src/dictionary/utils/file_utils.cpp
@@ -0,0 +1,171 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/utils/file_utils.h"
+
+#include <cstdio>
+#include <cstring>
+#include <dirent.h>
+#include <fcntl.h>
+#include <libgen.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+namespace latinime {
+
+// Returns -1 on error.
+/* static */ int FileUtils::getFileSize(const char *const filePath) {
+    const int fd = open(filePath, O_RDONLY);
+    if (fd == -1) {
+        return -1;
+    }
+    struct stat statBuf;
+    if (fstat(fd, &statBuf) != 0) {
+        close(fd);
+        return -1;
+    }
+    close(fd);
+    return static_cast<int>(statBuf.st_size);
+}
+
+/* static */ bool FileUtils::existsDir(const char *const dirPath) {
+    DIR *const dir = opendir(dirPath);
+    if (dir == NULL) {
+        return false;
+    }
+    closedir(dir);
+    return true;
+}
+
+// Remove a directory and all files in the directory.
+/* static */ bool FileUtils::removeDirAndFiles(const char *const dirPath) {
+    return removeDirAndFiles(dirPath, 5 /* maxTries */);
+}
+
+// Remove a directory and all files in the directory, trying up to maxTimes.
+/* static */ bool FileUtils::removeDirAndFiles(const char *const dirPath, const int maxTries) {
+    DIR *const dir = opendir(dirPath);
+    if (dir == NULL) {
+        AKLOGE("Cannot open dir %s.", dirPath);
+        return true;
+    }
+    struct dirent *dirent;
+    while ((dirent = readdir(dir)) != NULL) {
+        if (dirent->d_type == DT_DIR) {
+            continue;
+        }
+        if (strcmp(dirent->d_name, ".") == 0 || strcmp(dirent->d_name, "..") == 0) {
+            continue;
+        }
+        const int filePathBufSize = getFilePathBufSize(dirPath, dirent->d_name);
+        char filePath[filePathBufSize];
+        getFilePath(dirPath, dirent->d_name, filePathBufSize, filePath);
+        if (remove(filePath) != 0) {
+            AKLOGE("Cannot remove file %s.", filePath);
+            closedir(dir);
+            return false;
+        }
+    }
+    closedir(dir);
+    if (remove(dirPath) != 0) {
+        if (maxTries > 0) {
+            // On NFS, deleting files sometimes creates new files. I'm not sure what the
+            // correct way of dealing with this is, but for the time being, this seems to work.
+            removeDirAndFiles(dirPath, maxTries - 1);
+        } else {
+            AKLOGE("Cannot remove directory %s.", dirPath);
+            return false;
+        }
+    }
+    return true;
+}
+
+/* static */ int FileUtils::getFilePathWithSuffixBufSize(const char *const filePath,
+        const char *const suffix) {
+    return strlen(filePath) + strlen(suffix) + 1 /* terminator */;
+}
+
+/* static */ void FileUtils::getFilePathWithSuffix(const char *const filePath,
+        const char *const suffix, const int filePathBufSize, char *const outFilePath) {
+    snprintf(outFilePath, filePathBufSize, "%s%s", filePath, suffix);
+}
+
+/* static */ int FileUtils::getFilePathBufSize(const char *const dirPath,
+        const char *const fileName) {
+    return strlen(dirPath) + 1 /* '/' */ + strlen(fileName) + 1 /* terminator */;
+}
+
+/* static */ void FileUtils::getFilePath(const char *const dirPath, const char *const fileName,
+        const int filePathBufSize, char *const outFilePath) {
+    snprintf(outFilePath, filePathBufSize, "%s/%s", dirPath, fileName);
+}
+
+/* static */ bool FileUtils::getFilePathWithoutSuffix(const char *const filePath,
+        const char *const suffix, const int outDirPathBufSize, char *const outDirPath) {
+    const int filePathLength = strlen(filePath);
+    const int suffixLength = strlen(suffix);
+    if (filePathLength <= suffixLength) {
+        AKLOGE("File path length (%s:%d) is shorter that suffix length (%s:%d).",
+                filePath, filePathLength, suffix, suffixLength);
+        return false;
+    }
+    const int resultFilePathLength = filePathLength - suffixLength;
+    if (outDirPathBufSize <= resultFilePathLength) {
+        AKLOGE("outDirPathBufSize is too small. filePath: %s, suffix: %s, outDirPathBufSize: %d",
+                filePath, suffix, outDirPathBufSize);
+        return false;
+    }
+    if (strncmp(filePath + resultFilePathLength, suffix, suffixLength) != 0) {
+        AKLOGE("File Path %s does not have %s as a suffix", filePath, suffix);
+        return false;
+    }
+    snprintf(outDirPath, resultFilePathLength + 1 /* terminator */, "%s", filePath);
+    return true;
+}
+
+/* static */ void FileUtils::getDirPath(const char *const filePath, const int outDirPathBufSize,
+        char *const outDirPath) {
+    for (int i = strlen(filePath) - 1; i >= 0; --i) {
+        if (filePath[i] == '/') {
+            if (i >= outDirPathBufSize) {
+                AKLOGE("outDirPathBufSize is too small. filePath: %s, outDirPathBufSize: %d",
+                        filePath, outDirPathBufSize);
+                ASSERT(false);
+                return;
+            }
+            snprintf(outDirPath, i + 1 /* terminator */, "%s", filePath);
+            return;
+        }
+    }
+}
+
+/* static */ void FileUtils::getBasename(const char *const filePath,
+        const int outNameBufSize, char *const outName) {
+    const int filePathBufSize = strlen(filePath) + 1 /* terminator */;
+    char filePathBuf[filePathBufSize];
+    snprintf(filePathBuf, filePathBufSize, "%s", filePath);
+    const char *const baseName = basename(filePathBuf);
+    const int baseNameLength = strlen(baseName);
+    if (baseNameLength >= outNameBufSize) {
+        AKLOGE("outNameBufSize is too small. filePath: %s, outNameBufSize: %d",
+                filePath, outNameBufSize);
+        return;
+    }
+    snprintf(outName, baseNameLength + 1 /* terminator */, "%s", baseName);
+}
+
+} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/file_utils.h b/native/jni/src/dictionary/utils/file_utils.h
similarity index 100%
rename from native/jni/src/suggest/policyimpl/dictionary/utils/file_utils.h
rename to native/jni/src/dictionary/utils/file_utils.h
diff --git a/native/jni/src/dictionary/utils/forgetting_curve_utils.cpp b/native/jni/src/dictionary/utils/forgetting_curve_utils.cpp
new file mode 100644
index 0000000..d79ed91
--- /dev/null
+++ b/native/jni/src/dictionary/utils/forgetting_curve_utils.cpp
@@ -0,0 +1,234 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/utils/forgetting_curve_utils.h"
+
+#include <algorithm>
+#include <cmath>
+#include <stdlib.h>
+
+#include "dictionary/header/header_policy.h"
+#include "dictionary/utils/probability_utils.h"
+#include "utils/time_keeper.h"
+
+namespace latinime {
+
+const int ForgettingCurveUtils::MULTIPLIER_TWO_IN_PROBABILITY_SCALE = 8;
+const int ForgettingCurveUtils::DECAY_INTERVAL_SECONDS = 2 * 60 * 60;
+
+const int ForgettingCurveUtils::MAX_LEVEL = 15;
+const int ForgettingCurveUtils::MIN_VISIBLE_LEVEL = 2;
+const int ForgettingCurveUtils::MAX_ELAPSED_TIME_STEP_COUNT = 31;
+const int ForgettingCurveUtils::DISCARD_LEVEL_ZERO_ENTRY_TIME_STEP_COUNT_THRESHOLD = 30;
+const int ForgettingCurveUtils::OCCURRENCES_TO_RAISE_THE_LEVEL = 1;
+// TODO: Evaluate whether this should be 7.5 days.
+// 15 days
+const int ForgettingCurveUtils::DURATION_TO_LOWER_THE_LEVEL_IN_SECONDS = 15 * 24 * 60 * 60;
+
+const float ForgettingCurveUtils::ENTRY_COUNT_HARD_LIMIT_WEIGHT = 1.2;
+
+const ForgettingCurveUtils::ProbabilityTable ForgettingCurveUtils::sProbabilityTable;
+
+// TODO: Revise the logic to decide the initial probability depending on the given probability.
+/* static */ const HistoricalInfo ForgettingCurveUtils::createUpdatedHistoricalInfo(
+        const HistoricalInfo *const originalHistoricalInfo, const int newProbability,
+        const HistoricalInfo *const newHistoricalInfo, const HeaderPolicy *const headerPolicy) {
+    const int timestamp = newHistoricalInfo->getTimestamp();
+    if (newProbability != NOT_A_PROBABILITY && originalHistoricalInfo->getLevel() == 0) {
+        // Add entry as a valid word.
+        const int level = clampToVisibleEntryLevelRange(newHistoricalInfo->getLevel());
+        const int count = clampToValidCountRange(newHistoricalInfo->getCount(), headerPolicy);
+        return HistoricalInfo(timestamp, level, count);
+    } else if (!originalHistoricalInfo->isValid()
+            || originalHistoricalInfo->getLevel() < newHistoricalInfo->getLevel()
+            || (originalHistoricalInfo->getLevel() == newHistoricalInfo->getLevel()
+                    && originalHistoricalInfo->getCount() < newHistoricalInfo->getCount())) {
+        // Initial information.
+        int count = newHistoricalInfo->getCount();
+        if (count >= OCCURRENCES_TO_RAISE_THE_LEVEL) {
+            const int level = clampToValidLevelRange(newHistoricalInfo->getLevel() + 1);
+            return HistoricalInfo(timestamp, level, 0 /* count */);
+        }
+        const int level = clampToValidLevelRange(newHistoricalInfo->getLevel());
+        return HistoricalInfo(timestamp, level, clampToValidCountRange(count, headerPolicy));
+    } else {
+        const int updatedCount = originalHistoricalInfo->getCount() + 1;
+        if (updatedCount >= OCCURRENCES_TO_RAISE_THE_LEVEL) {
+            // The count exceeds the max value the level can be incremented.
+            if (originalHistoricalInfo->getLevel() >= MAX_LEVEL) {
+                // The level is already max.
+                return HistoricalInfo(timestamp,
+                        originalHistoricalInfo->getLevel(), originalHistoricalInfo->getCount());
+            } else {
+                // Raise the level.
+                return HistoricalInfo(timestamp,
+                        originalHistoricalInfo->getLevel() + 1, 0 /* count */);
+            }
+        } else {
+            return HistoricalInfo(timestamp, originalHistoricalInfo->getLevel(), updatedCount);
+        }
+    }
+}
+
+/* static */ int ForgettingCurveUtils::decodeProbability(
+        const HistoricalInfo *const historicalInfo, const HeaderPolicy *const headerPolicy) {
+    const int elapsedTimeStepCount = getElapsedTimeStepCount(historicalInfo->getTimestamp(),
+            DURATION_TO_LOWER_THE_LEVEL_IN_SECONDS);
+    return sProbabilityTable.getProbability(
+            headerPolicy->getForgettingCurveProbabilityValuesTableId(),
+            clampToValidLevelRange(historicalInfo->getLevel()),
+            clampToValidTimeStepCountRange(elapsedTimeStepCount));
+}
+
+/* static */ bool ForgettingCurveUtils::needsToKeep(const HistoricalInfo *const historicalInfo,
+        const HeaderPolicy *const headerPolicy) {
+    return historicalInfo->getLevel() > 0
+            || getElapsedTimeStepCount(historicalInfo->getTimestamp(),
+                    DURATION_TO_LOWER_THE_LEVEL_IN_SECONDS)
+                            < DISCARD_LEVEL_ZERO_ENTRY_TIME_STEP_COUNT_THRESHOLD;
+}
+
+/* static */ const HistoricalInfo ForgettingCurveUtils::createHistoricalInfoToSave(
+        const HistoricalInfo *const originalHistoricalInfo,
+        const HeaderPolicy *const headerPolicy) {
+    if (originalHistoricalInfo->getTimestamp() == NOT_A_TIMESTAMP) {
+        return HistoricalInfo();
+    }
+    const int durationToLevelDownInSeconds = DURATION_TO_LOWER_THE_LEVEL_IN_SECONDS;
+    const int elapsedTimeStep = getElapsedTimeStepCount(
+            originalHistoricalInfo->getTimestamp(), durationToLevelDownInSeconds);
+    if (elapsedTimeStep <= MAX_ELAPSED_TIME_STEP_COUNT) {
+        // No need to update historical info.
+        return *originalHistoricalInfo;
+    }
+    // Lower the level.
+    const int maxLevelDownAmonut = elapsedTimeStep / (MAX_ELAPSED_TIME_STEP_COUNT + 1);
+    const int levelDownAmount = (maxLevelDownAmonut >= originalHistoricalInfo->getLevel()) ?
+            originalHistoricalInfo->getLevel() : maxLevelDownAmonut;
+    const int adjustedTimestampInSeconds = originalHistoricalInfo->getTimestamp() +
+            levelDownAmount * durationToLevelDownInSeconds;
+    return HistoricalInfo(adjustedTimestampInSeconds,
+            originalHistoricalInfo->getLevel() - levelDownAmount, 0 /* count */);
+}
+
+/* static */ bool ForgettingCurveUtils::needsToDecay(const bool mindsBlockByDecay,
+        const EntryCounts &entryCounts, const HeaderPolicy *const headerPolicy) {
+    const EntryCounts &maxNgramCounts = headerPolicy->getMaxNgramCounts();
+    for (const auto ngramType : AllNgramTypes::ASCENDING) {
+        if (entryCounts.getNgramCount(ngramType)
+                >= getEntryCountHardLimit(maxNgramCounts.getNgramCount(ngramType))) {
+            // Unigram count exceeds the limit.
+            return true;
+        }
+    }
+    if (mindsBlockByDecay) {
+        return false;
+    }
+    if (headerPolicy->getLastDecayedTime() + DECAY_INTERVAL_SECONDS
+            < TimeKeeper::peekCurrentTime()) {
+        // Time to decay.
+        return true;
+    }
+    return false;
+}
+
+// See comments in ProbabilityUtils::backoff().
+/* static */ int ForgettingCurveUtils::backoff(const int unigramProbability) {
+    // See TODO comments in ForgettingCurveUtils::getProbability().
+    return unigramProbability;
+}
+
+/* static */ int ForgettingCurveUtils::getElapsedTimeStepCount(const int timestamp,
+        const int durationToLevelDownInSeconds) {
+    const int elapsedTimeInSeconds = TimeKeeper::peekCurrentTime() - timestamp;
+    const int timeStepDurationInSeconds =
+            durationToLevelDownInSeconds / (MAX_ELAPSED_TIME_STEP_COUNT + 1);
+    return elapsedTimeInSeconds / timeStepDurationInSeconds;
+}
+
+/* static */ int ForgettingCurveUtils::clampToVisibleEntryLevelRange(const int level) {
+    return std::min(std::max(level, MIN_VISIBLE_LEVEL), MAX_LEVEL);
+}
+
+/* static */ int ForgettingCurveUtils::clampToValidCountRange(const int count,
+        const HeaderPolicy *const headerPolicy) {
+    return std::min(std::max(count, 0), OCCURRENCES_TO_RAISE_THE_LEVEL - 1);
+}
+
+/* static */ int ForgettingCurveUtils::clampToValidLevelRange(const int level) {
+    return std::min(std::max(level, 0), MAX_LEVEL);
+}
+
+/* static */ int ForgettingCurveUtils::clampToValidTimeStepCountRange(const int timeStepCount) {
+    return std::min(std::max(timeStepCount, 0), MAX_ELAPSED_TIME_STEP_COUNT);
+}
+
+const int ForgettingCurveUtils::ProbabilityTable::PROBABILITY_TABLE_COUNT = 4;
+const int ForgettingCurveUtils::ProbabilityTable::WEAK_PROBABILITY_TABLE_ID = 0;
+const int ForgettingCurveUtils::ProbabilityTable::MODEST_PROBABILITY_TABLE_ID = 1;
+const int ForgettingCurveUtils::ProbabilityTable::STRONG_PROBABILITY_TABLE_ID = 2;
+const int ForgettingCurveUtils::ProbabilityTable::AGGRESSIVE_PROBABILITY_TABLE_ID = 3;
+const int ForgettingCurveUtils::ProbabilityTable::WEAK_MAX_PROBABILITY = 127;
+const int ForgettingCurveUtils::ProbabilityTable::MODEST_BASE_PROBABILITY = 8;
+const int ForgettingCurveUtils::ProbabilityTable::STRONG_BASE_PROBABILITY = 9;
+const int ForgettingCurveUtils::ProbabilityTable::AGGRESSIVE_BASE_PROBABILITY = 10;
+
+
+ForgettingCurveUtils::ProbabilityTable::ProbabilityTable() : mTables() {
+    mTables.resize(PROBABILITY_TABLE_COUNT);
+    for (int tableId = 0; tableId < PROBABILITY_TABLE_COUNT; ++tableId) {
+        mTables[tableId].resize(MAX_LEVEL + 1);
+        for (int level = 0; level <= MAX_LEVEL; ++level) {
+            mTables[tableId][level].resize(MAX_ELAPSED_TIME_STEP_COUNT + 1);
+            const float initialProbability = getBaseProbabilityForLevel(tableId, level);
+            const float endProbability = getBaseProbabilityForLevel(tableId, level - 1);
+            for (int timeStepCount = 0; timeStepCount <= MAX_ELAPSED_TIME_STEP_COUNT;
+                    ++timeStepCount) {
+                if (level < MIN_VISIBLE_LEVEL) {
+                    mTables[tableId][level][timeStepCount] = NOT_A_PROBABILITY;
+                    continue;
+                }
+                const float probability = initialProbability
+                        * powf(initialProbability / endProbability,
+                                -1.0f * static_cast<float>(timeStepCount)
+                                        / static_cast<float>(MAX_ELAPSED_TIME_STEP_COUNT + 1));
+                mTables[tableId][level][timeStepCount] =
+                        std::min(std::max(static_cast<int>(probability), 1), MAX_PROBABILITY);
+            }
+        }
+    }
+}
+
+/* static */ int ForgettingCurveUtils::ProbabilityTable::getBaseProbabilityForLevel(
+        const int tableId, const int level) {
+    if (tableId == WEAK_PROBABILITY_TABLE_ID) {
+        // Max probability is 127.
+        return static_cast<float>(WEAK_MAX_PROBABILITY / (1 << (MAX_LEVEL - level)));
+    } else if (tableId == MODEST_PROBABILITY_TABLE_ID) {
+        // Max probability is 128.
+        return static_cast<float>(MODEST_BASE_PROBABILITY * (level + 1));
+    } else if (tableId == STRONG_PROBABILITY_TABLE_ID) {
+        // Max probability is 140.
+        return static_cast<float>(STRONG_BASE_PROBABILITY * (level + 1));
+    } else if (tableId == AGGRESSIVE_PROBABILITY_TABLE_ID) {
+        // Max probability is 160.
+        return static_cast<float>(AGGRESSIVE_BASE_PROBABILITY * (level + 1));
+    } else {
+        return NOT_A_PROBABILITY;
+    }
+}
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/utils/forgetting_curve_utils.h b/native/jni/src/dictionary/utils/forgetting_curve_utils.h
new file mode 100644
index 0000000..ddaac7e
--- /dev/null
+++ b/native/jni/src/dictionary/utils/forgetting_curve_utils.h
@@ -0,0 +1,112 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_FORGETTING_CURVE_UTILS_H
+#define LATINIME_FORGETTING_CURVE_UTILS_H
+
+#include <vector>
+
+#include "defines.h"
+#include "dictionary/property/historical_info.h"
+#include "dictionary/utils/entry_counters.h"
+
+namespace latinime {
+
+class HeaderPolicy;
+
+class ForgettingCurveUtils {
+ public:
+    static const HistoricalInfo createUpdatedHistoricalInfo(
+            const HistoricalInfo *const originalHistoricalInfo, const int newProbability,
+            const HistoricalInfo *const newHistoricalInfo, const HeaderPolicy *const headerPolicy);
+
+    static const HistoricalInfo createHistoricalInfoToSave(
+            const HistoricalInfo *const originalHistoricalInfo,
+            const HeaderPolicy *const headerPolicy);
+
+    static int decodeProbability(const HistoricalInfo *const historicalInfo,
+            const HeaderPolicy *const headerPolicy);
+
+    static bool needsToKeep(const HistoricalInfo *const historicalInfo,
+            const HeaderPolicy *const headerPolicy);
+
+    static bool needsToDecay(const bool mindsBlockByDecay, const EntryCounts &entryCounters,
+            const HeaderPolicy *const headerPolicy);
+
+    // TODO: Improve probability computation method and remove this.
+    static int getProbabilityBiasForNgram(const int n) {
+        return (n - 1) * MULTIPLIER_TWO_IN_PROBABILITY_SCALE;
+    }
+
+    AK_FORCE_INLINE static int getEntryCountHardLimit(const int maxEntryCount) {
+        return static_cast<int>(static_cast<float>(maxEntryCount)
+                * ENTRY_COUNT_HARD_LIMIT_WEIGHT);
+    }
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(ForgettingCurveUtils);
+
+    class ProbabilityTable {
+     public:
+        ProbabilityTable();
+
+        int getProbability(const int tableId, const int level,
+                const int elapsedTimeStepCount) const {
+            return mTables[tableId][level][elapsedTimeStepCount];
+        }
+
+     private:
+        DISALLOW_COPY_AND_ASSIGN(ProbabilityTable);
+
+        static const int PROBABILITY_TABLE_COUNT;
+        static const int WEAK_PROBABILITY_TABLE_ID;
+        static const int MODEST_PROBABILITY_TABLE_ID;
+        static const int STRONG_PROBABILITY_TABLE_ID;
+        static const int AGGRESSIVE_PROBABILITY_TABLE_ID;
+
+        static const int WEAK_MAX_PROBABILITY;
+        static const int MODEST_BASE_PROBABILITY;
+        static const int STRONG_BASE_PROBABILITY;
+        static const int AGGRESSIVE_BASE_PROBABILITY;
+
+        std::vector<std::vector<std::vector<int>>> mTables;
+
+        static int getBaseProbabilityForLevel(const int tableId, const int level);
+    };
+
+    static const int MULTIPLIER_TWO_IN_PROBABILITY_SCALE;
+    static const int DECAY_INTERVAL_SECONDS;
+
+    static const int MAX_LEVEL;
+    static const int MIN_VISIBLE_LEVEL;
+    static const int MAX_ELAPSED_TIME_STEP_COUNT;
+    static const int DISCARD_LEVEL_ZERO_ENTRY_TIME_STEP_COUNT_THRESHOLD;
+    static const int OCCURRENCES_TO_RAISE_THE_LEVEL;
+    static const int DURATION_TO_LOWER_THE_LEVEL_IN_SECONDS;
+
+    static const float ENTRY_COUNT_HARD_LIMIT_WEIGHT;
+
+    static const ProbabilityTable sProbabilityTable;
+
+    static int backoff(const int unigramProbability);
+    static int getElapsedTimeStepCount(const int timestamp, const int durationToLevelDown);
+    static int clampToVisibleEntryLevelRange(const int level);
+    static int clampToValidLevelRange(const int level);
+    static int clampToValidCountRange(const int count, const HeaderPolicy *const headerPolicy);
+    static int clampToValidTimeStepCountRange(const int timeStepCount);
+};
+} // namespace latinime
+#endif /* LATINIME_FORGETTING_CURVE_UTILS_H */
diff --git a/native/jni/src/dictionary/utils/format_utils.cpp b/native/jni/src/dictionary/utils/format_utils.cpp
new file mode 100644
index 0000000..cef3b09
--- /dev/null
+++ b/native/jni/src/dictionary/utils/format_utils.cpp
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/utils/format_utils.h"
+
+#include "dictionary/utils/byte_array_utils.h"
+
+namespace latinime {
+
+const uint32_t FormatUtils::MAGIC_NUMBER = 0x9BC13AFE;
+
+// Magic number (4 bytes), version (2 bytes), flags (2 bytes), header size (4 bytes) = 12
+const size_t FormatUtils::DICTIONARY_MINIMUM_SIZE = 12;
+
+/* static */ FormatUtils::FORMAT_VERSION FormatUtils::getFormatVersion(const int formatVersion) {
+    switch (formatVersion) {
+        case VERSION_2:
+        case VERSION_201:
+            AKLOGE("Dictionary versions 2 and 201 are incompatible with this version");
+            return UNKNOWN_VERSION;
+        case VERSION_202:
+            return VERSION_202;
+        case VERSION_4_ONLY_FOR_TESTING:
+            return VERSION_4_ONLY_FOR_TESTING;
+        case VERSION_402:
+            return VERSION_402;
+        case VERSION_403:
+            return VERSION_403;
+        default:
+            return UNKNOWN_VERSION;
+    }
+}
+/* static */ FormatUtils::FORMAT_VERSION FormatUtils::detectFormatVersion(
+        const ReadOnlyByteArrayView dictBuffer) {
+    // The magic number is stored big-endian.
+    // If the dictionary is less than 4 bytes, we can't even read the magic number, so we don't
+    // understand this format.
+    if (dictBuffer.size() < DICTIONARY_MINIMUM_SIZE) {
+        return UNKNOWN_VERSION;
+    }
+    const uint32_t magicNumber = ByteArrayUtils::readUint32(dictBuffer.data(), 0);
+    switch (magicNumber) {
+        case MAGIC_NUMBER:
+            // The layout of the header is as follows:
+            // Magic number (4 bytes) 0x9B 0xC1 0x3A 0xFE
+            // Dictionary format version number (2 bytes)
+            // Options (2 bytes)
+            // Header size (4 bytes) : integer, big endian
+            // Conceptually this converts the hardcoded value of the bytes in the file into
+            // the symbolic value we use in the code. But we want the constants to be the
+            // same so we use them for both here.
+            return getFormatVersion(ByteArrayUtils::readUint16(dictBuffer.data(), 4));
+        default:
+            return UNKNOWN_VERSION;
+    }
+}
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/utils/format_utils.h b/native/jni/src/dictionary/utils/format_utils.h
new file mode 100644
index 0000000..1616efc
--- /dev/null
+++ b/native/jni/src/dictionary/utils/format_utils.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_FORMAT_UTILS_H
+#define LATINIME_FORMAT_UTILS_H
+
+#include <cstdint>
+
+#include "defines.h"
+#include "utils/byte_array_view.h"
+
+namespace latinime {
+
+/**
+ * Methods to handle binary dictionary format version.
+ */
+class FormatUtils {
+ public:
+    enum FORMAT_VERSION {
+        // These MUST have the same values as the relevant constants in FormatSpec.java.
+        // TODO: Remove VERSION_2 and VERSION_201 when we:
+        // * Confirm that old versions of LatinIME download old-format dictionaries
+        // * We no longer need the corresponding constants on the Java side for dicttool
+        VERSION_2 = 2,
+        VERSION_201 = 201,
+        VERSION_202 = 202,
+        VERSION_4_ONLY_FOR_TESTING = 399,
+        VERSION_402 = 402,
+        VERSION_403 = 403,
+        UNKNOWN_VERSION = -1
+    };
+
+    // 32 bit magic number is stored at the beginning of the dictionary header to reject
+    // unsupported or obsolete dictionary formats.
+    static const uint32_t MAGIC_NUMBER;
+
+    static FORMAT_VERSION getFormatVersion(const int formatVersion);
+    static FORMAT_VERSION detectFormatVersion(const ReadOnlyByteArrayView dictBuffer);
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(FormatUtils);
+
+    static const size_t DICTIONARY_MINIMUM_SIZE;
+};
+} // namespace latinime
+#endif /* LATINIME_FORMAT_UTILS_H */
diff --git a/native/jni/src/dictionary/utils/mmapped_buffer.cpp b/native/jni/src/dictionary/utils/mmapped_buffer.cpp
new file mode 100644
index 0000000..c5259de
--- /dev/null
+++ b/native/jni/src/dictionary/utils/mmapped_buffer.cpp
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/utils/mmapped_buffer.h"
+
+#include <cerrno>
+#include <climits>
+#include <cstdio>
+#include <fcntl.h>
+#include <sys/mman.h>
+#include <unistd.h>
+
+#include "dictionary/utils/file_utils.h"
+
+namespace latinime {
+
+/* static */ MmappedBuffer::MmappedBufferPtr MmappedBuffer::openBuffer(
+        const char *const path, const int bufferOffset, const int bufferSize,
+        const bool isUpdatable) {
+    const int mmapFd = open(path, O_RDONLY);
+    if (mmapFd < 0) {
+        AKLOGE("DICT: Can't open the source. path=%s errno=%d", path, errno);
+        return nullptr;
+    }
+    const int pagesize = sysconf(_SC_PAGESIZE);
+    const int offset = bufferOffset % pagesize;
+    int alignedOffset = bufferOffset - offset;
+    int alignedSize = bufferSize + offset;
+    const int protMode = isUpdatable ? PROT_READ | PROT_WRITE : PROT_READ;
+    void *const mmappedBuffer = mmap(0, alignedSize, protMode, MAP_PRIVATE, mmapFd,
+            alignedOffset);
+    if (mmappedBuffer == MAP_FAILED) {
+        AKLOGE("DICT: Can't mmap dictionary. errno=%d", errno);
+        close(mmapFd);
+        return nullptr;
+    }
+    uint8_t *const buffer = static_cast<uint8_t *>(mmappedBuffer) + offset;
+    if (!buffer) {
+        AKLOGE("DICT: buffer is null");
+        close(mmapFd);
+        return nullptr;
+    }
+    return MmappedBufferPtr(new MmappedBuffer(buffer, bufferSize, mmappedBuffer, alignedSize,
+            mmapFd, isUpdatable));
+}
+
+/* static */ MmappedBuffer::MmappedBufferPtr MmappedBuffer::openBuffer(
+        const char *const path, const bool isUpdatable) {
+    const int fileSize = FileUtils::getFileSize(path);
+    if (fileSize == -1) {
+        return nullptr;
+    } else if (fileSize == 0) {
+        return MmappedBufferPtr(new MmappedBuffer(isUpdatable));
+    } else {
+        return openBuffer(path, 0 /* bufferOffset */, fileSize, isUpdatable);
+    }
+}
+
+/* static */ MmappedBuffer::MmappedBufferPtr MmappedBuffer::openBuffer(
+        const char *const dirPath, const char *const fileName, const bool isUpdatable) {
+    const int filePathBufferSize = PATH_MAX + 1 /* terminator */;
+    char filePath[filePathBufferSize];
+    const int filePathLength = snprintf(filePath, filePathBufferSize, "%s%s", dirPath,
+            fileName);
+    if (filePathLength >= filePathBufferSize) {
+        return nullptr;
+    }
+    return openBuffer(filePath, isUpdatable);
+}
+
+MmappedBuffer::~MmappedBuffer() {
+    if (mAlignedSize == 0) {
+        return;
+    }
+    int ret = munmap(mMmappedBuffer, mAlignedSize);
+    if (ret != 0) {
+        AKLOGE("DICT: Failure in munmap. ret=%d errno=%d", ret, errno);
+    }
+    ret = close(mMmapFd);
+    if (ret != 0) {
+        AKLOGE("DICT: Failure in close. ret=%d errno=%d", ret, errno);
+    }
+}
+
+} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/mmapped_buffer.h b/native/jni/src/dictionary/utils/mmapped_buffer.h
similarity index 100%
rename from native/jni/src/suggest/policyimpl/dictionary/utils/mmapped_buffer.h
rename to native/jni/src/dictionary/utils/mmapped_buffer.h
diff --git a/native/jni/src/dictionary/utils/multi_bigram_map.cpp b/native/jni/src/dictionary/utils/multi_bigram_map.cpp
new file mode 100644
index 0000000..e730fff
--- /dev/null
+++ b/native/jni/src/dictionary/utils/multi_bigram_map.cpp
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/utils/multi_bigram_map.h"
+
+#include <cstddef>
+#include <unordered_map>
+
+namespace latinime {
+
+// Max number of bigram maps (previous word contexts) to be cached. Increasing this number
+// could improve bigram lookup speed for multi-word suggestions, but at the cost of more memory
+// usage. Also, there are diminishing returns since the most frequently used bigrams are
+// typically near the beginning of the input and are thus the first ones to be cached. Note
+// that these bigrams are reset for each new composing word.
+const size_t MultiBigramMap::MAX_CACHED_PREV_WORDS_IN_BIGRAM_MAP = 25;
+
+// Most common previous word contexts currently have 100 bigrams
+const int MultiBigramMap::BigramMap::DEFAULT_HASH_MAP_SIZE_FOR_EACH_BIGRAM_MAP = 100;
+
+// Look up the bigram probability for the given word pair from the cached bigram maps.
+// Also caches the bigrams if there is space remaining and they have not been cached already.
+int MultiBigramMap::getBigramProbability(
+        const DictionaryStructureWithBufferPolicy *const structurePolicy,
+        const WordIdArrayView prevWordIds, const int nextWordId,
+        const int unigramProbability) {
+    if (prevWordIds.empty() || prevWordIds[0] == NOT_A_WORD_ID) {
+        return structurePolicy->getProbability(unigramProbability, NOT_A_PROBABILITY);
+    }
+    const auto mapPosition = mBigramMaps.find(prevWordIds[0]);
+    if (mapPosition != mBigramMaps.end()) {
+        return mapPosition->second.getBigramProbability(structurePolicy, nextWordId,
+                unigramProbability);
+    }
+    if (mBigramMaps.size() < MAX_CACHED_PREV_WORDS_IN_BIGRAM_MAP) {
+        addBigramsForWord(structurePolicy, prevWordIds);
+        return mBigramMaps[prevWordIds[0]].getBigramProbability(structurePolicy,
+                nextWordId, unigramProbability);
+    }
+    return readBigramProbabilityFromBinaryDictionary(structurePolicy, prevWordIds,
+            nextWordId, unigramProbability);
+}
+
+void MultiBigramMap::BigramMap::init(
+        const DictionaryStructureWithBufferPolicy *const structurePolicy,
+        const WordIdArrayView prevWordIds) {
+    structurePolicy->iterateNgramEntries(prevWordIds, this /* listener */);
+}
+
+int MultiBigramMap::BigramMap::getBigramProbability(
+        const DictionaryStructureWithBufferPolicy *const structurePolicy,
+        const int nextWordId, const int unigramProbability) const {
+    int bigramProbability = NOT_A_PROBABILITY;
+    if (mBloomFilter.isInFilter(nextWordId)) {
+        const auto bigramProbabilityIt = mBigramMap.find(nextWordId);
+        if (bigramProbabilityIt != mBigramMap.end()) {
+            bigramProbability = bigramProbabilityIt->second;
+        }
+    }
+    return structurePolicy->getProbability(unigramProbability, bigramProbability);
+}
+
+void MultiBigramMap::BigramMap::onVisitEntry(const int ngramProbability, const int targetWordId) {
+    if (targetWordId == NOT_A_WORD_ID) {
+        return;
+    }
+    mBigramMap[targetWordId] = ngramProbability;
+    mBloomFilter.setInFilter(targetWordId);
+}
+
+void MultiBigramMap::addBigramsForWord(
+        const DictionaryStructureWithBufferPolicy *const structurePolicy,
+        const WordIdArrayView prevWordIds) {
+    mBigramMaps[prevWordIds[0]].init(structurePolicy, prevWordIds);
+}
+
+int MultiBigramMap::readBigramProbabilityFromBinaryDictionary(
+        const DictionaryStructureWithBufferPolicy *const structurePolicy,
+        const WordIdArrayView prevWordIds, const int nextWordId, const int unigramProbability) {
+    const int bigramProbability = structurePolicy->getProbabilityOfWord(prevWordIds, nextWordId);
+    if (bigramProbability != NOT_A_PROBABILITY) {
+        return bigramProbability;
+    }
+    return structurePolicy->getProbability(unigramProbability, NOT_A_PROBABILITY);
+}
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/utils/multi_bigram_map.h b/native/jni/src/dictionary/utils/multi_bigram_map.h
new file mode 100644
index 0000000..6f23d98
--- /dev/null
+++ b/native/jni/src/dictionary/utils/multi_bigram_map.h
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_MULTI_BIGRAM_MAP_H
+#define LATINIME_MULTI_BIGRAM_MAP_H
+
+#include <cstddef>
+#include <unordered_map>
+
+#include "defines.h"
+#include "dictionary/interface/dictionary_structure_with_buffer_policy.h"
+#include "dictionary/interface/ngram_listener.h"
+#include "dictionary/utils/binary_dictionary_bigrams_iterator.h"
+#include "dictionary/utils/bloom_filter.h"
+#include "utils/int_array_view.h"
+
+namespace latinime {
+
+// Class for caching bigram maps for multiple previous word contexts. This is useful since the
+// algorithm needs to look up the set of bigrams for every word pair that occurs in every
+// multi-word suggestion.
+class MultiBigramMap {
+ public:
+    MultiBigramMap() : mBigramMaps() {}
+    ~MultiBigramMap() {}
+
+    // Look up the bigram probability for the given word pair from the cached bigram maps.
+    // Also caches the bigrams if there is space remaining and they have not been cached already.
+    int getBigramProbability(const DictionaryStructureWithBufferPolicy *const structurePolicy,
+            const WordIdArrayView prevWordIds, const int nextWordId, const int unigramProbability);
+
+    void clear() {
+        mBigramMaps.clear();
+    }
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(MultiBigramMap);
+
+    class BigramMap : public NgramListener {
+     public:
+        BigramMap() : mBigramMap(DEFAULT_HASH_MAP_SIZE_FOR_EACH_BIGRAM_MAP), mBloomFilter() {}
+        // Copy constructor needed for std::unordered_map.
+        BigramMap(const BigramMap &bigramMap)
+                : mBigramMap(bigramMap.mBigramMap), mBloomFilter(bigramMap.mBloomFilter) {}
+        virtual ~BigramMap() {}
+
+        void init(const DictionaryStructureWithBufferPolicy *const structurePolicy,
+                const WordIdArrayView prevWordIds);
+        int getBigramProbability(
+                const DictionaryStructureWithBufferPolicy *const structurePolicy,
+                const int nextWordId, const int unigramProbability) const;
+        virtual void onVisitEntry(const int ngramProbability, const int targetWordId);
+
+     private:
+        static const int DEFAULT_HASH_MAP_SIZE_FOR_EACH_BIGRAM_MAP;
+        std::unordered_map<int, int> mBigramMap;
+        BloomFilter mBloomFilter;
+    };
+
+    void addBigramsForWord(const DictionaryStructureWithBufferPolicy *const structurePolicy,
+            const WordIdArrayView prevWordIds);
+
+    int readBigramProbabilityFromBinaryDictionary(
+            const DictionaryStructureWithBufferPolicy *const structurePolicy,
+            const WordIdArrayView prevWordIds, const int nextWordId, const int unigramProbability);
+
+    static const size_t MAX_CACHED_PREV_WORDS_IN_BIGRAM_MAP;
+    std::unordered_map<int, BigramMap> mBigramMaps;
+};
+} // namespace latinime
+#endif // LATINIME_MULTI_BIGRAM_MAP_H
diff --git a/native/jni/src/dictionary/utils/probability_utils.cpp b/native/jni/src/dictionary/utils/probability_utils.cpp
new file mode 100644
index 0000000..426a0e7
--- /dev/null
+++ b/native/jni/src/dictionary/utils/probability_utils.cpp
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2014, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/utils/probability_utils.h"
+
+namespace latinime {
+
+const float ProbabilityUtils::PROBABILITY_ENCODING_SCALER = 8.58923700372f;
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/utils/probability_utils.h b/native/jni/src/dictionary/utils/probability_utils.h
new file mode 100644
index 0000000..2050af1
--- /dev/null
+++ b/native/jni/src/dictionary/utils/probability_utils.h
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_PROBABILITY_UTILS_H
+#define LATINIME_PROBABILITY_UTILS_H
+
+#include <algorithm>
+#include <cmath>
+
+#include "defines.h"
+
+namespace latinime {
+
+// TODO: Quit using bigram probability to indicate the delta.
+class ProbabilityUtils {
+ public:
+    static AK_FORCE_INLINE int backoff(const int unigramProbability) {
+        return unigramProbability;
+        // For some reason, applying the backoff weight gives bad results in tests. To apply the
+        // backoff weight, we divide the probability by 2, which in our storing format means
+        // decreasing the score by 8.
+        // TODO: figure out what's wrong with this.
+        // return unigramProbability > 8 ?
+        //         unigramProbability - 8 : (0 == unigramProbability ? 0 : 8);
+    }
+
+    static AK_FORCE_INLINE int computeProbabilityForBigram(
+            const int unigramProbability, const int bigramProbability) {
+        // We divide the range [unigramProbability..255] in 16.5 steps - in other words, we want
+        // the unigram probability to be the median value of the 17th step from the top. A value of
+        // 0 for the bigram probability represents the middle of the 16th step from the top,
+        // while a value of 15 represents the middle of the top step.
+        // See makedict.BinaryDictEncoder#makeBigramFlags for details.
+        const float stepSize = static_cast<float>(MAX_PROBABILITY - unigramProbability)
+                / (1.5f + MAX_BIGRAM_ENCODED_PROBABILITY);
+        return unigramProbability
+                + static_cast<int>(static_cast<float>(bigramProbability + 1) * stepSize);
+    }
+
+    // Encode probability using the same way as we are doing for main dictionaries.
+    static AK_FORCE_INLINE int encodeRawProbability(const float rawProbability) {
+        const float probability = static_cast<float>(MAX_PROBABILITY)
+                + log2f(rawProbability) * PROBABILITY_ENCODING_SCALER;
+        if (probability < 0.0f) {
+            return 0;
+        }
+        return std::min(static_cast<int>(probability + 0.5f), MAX_PROBABILITY);
+    }
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(ProbabilityUtils);
+
+    static const float PROBABILITY_ENCODING_SCALER;
+};
+}
+#endif /* LATINIME_PROBABILITY_UTILS_H */
diff --git a/native/jni/src/dictionary/utils/sparse_table.cpp b/native/jni/src/dictionary/utils/sparse_table.cpp
new file mode 100644
index 0000000..029329f
--- /dev/null
+++ b/native/jni/src/dictionary/utils/sparse_table.cpp
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/utils/sparse_table.h"
+
+namespace latinime {
+
+const int SparseTable::NOT_EXIST = -1;
+const int SparseTable::INDEX_SIZE = 4;
+
+bool SparseTable::contains(const int id) const {
+    const int readingPos = getPosInIndexTable(id);
+    if (id < 0 || mIndexTableBuffer->getTailPosition() <= readingPos) {
+        return false;
+    }
+    const int index = mIndexTableBuffer->readUint(INDEX_SIZE, readingPos);
+    return index != NOT_EXIST;
+}
+
+uint32_t SparseTable::get(const int id) const {
+    const int indexTableReadingPos = getPosInIndexTable(id);
+    const int index = mIndexTableBuffer->readUint(INDEX_SIZE, indexTableReadingPos);
+    const int contentTableReadingPos = getPosInContentTable(id, index);
+    if (contentTableReadingPos < 0
+            || contentTableReadingPos >= mContentTableBuffer->getTailPosition()) {
+        AKLOGE("contentTableReadingPos(%d) is invalid. id: %d, index: %d",
+                contentTableReadingPos, id, index);
+        return NOT_A_DICT_POS;
+    }
+    const int contentValue = mContentTableBuffer->readUint(mDataSize, contentTableReadingPos);
+    return contentValue == NOT_EXIST ? NOT_A_DICT_POS : contentValue;
+}
+
+bool SparseTable::set(const int id, const uint32_t value) {
+    const int posInIndexTable = getPosInIndexTable(id);
+    // Extends the index table if needed.
+    int tailPos = mIndexTableBuffer->getTailPosition();
+    while (tailPos <= posInIndexTable) {
+        if (!mIndexTableBuffer->writeUintAndAdvancePosition(NOT_EXIST, INDEX_SIZE, &tailPos)) {
+            AKLOGE("cannot extend index table. tailPos: %d to: %d", tailPos, posInIndexTable);
+            return false;
+        }
+    }
+    if (contains(id)) {
+        // The entry is already in the content table.
+        const int index = mIndexTableBuffer->readUint(INDEX_SIZE, posInIndexTable);
+        if (!mContentTableBuffer->writeUint(value, mDataSize, getPosInContentTable(id, index))) {
+            AKLOGE("cannot update value %d. pos: %d, tailPos: %d, mDataSize: %d", value,
+                    getPosInContentTable(id, index), mContentTableBuffer->getTailPosition(),
+                    mDataSize);
+            return false;
+        }
+        return true;
+    }
+    // The entry is not in the content table.
+    // Create new entry in the content table.
+    const int index = getIndexFromContentTablePos(mContentTableBuffer->getTailPosition());
+    if (!mIndexTableBuffer->writeUint(index, INDEX_SIZE, posInIndexTable)) {
+        AKLOGE("cannot write index %d. pos %d", index, posInIndexTable);
+        return false;
+    }
+    // Write a new block that containing the entry to be set.
+    int writingPos = getPosInContentTable(0 /* id */, index);
+    for (int i = 0; i < mBlockSize; ++i) {
+        if (!mContentTableBuffer->writeUintAndAdvancePosition(NOT_EXIST, mDataSize,
+                &writingPos)) {
+            AKLOGE("cannot write content table to extend. writingPos: %d, tailPos: %d, "
+                    "mDataSize: %d", writingPos, mContentTableBuffer->getTailPosition(), mDataSize);
+            return false;
+        }
+    }
+    return mContentTableBuffer->writeUint(value, mDataSize, getPosInContentTable(id, index));
+}
+
+int SparseTable::getIndexFromContentTablePos(const int contentTablePos) const {
+    return contentTablePos / mDataSize / mBlockSize;
+}
+
+int SparseTable::getPosInIndexTable(const int id) const {
+    return (id / mBlockSize) * INDEX_SIZE;
+}
+
+int SparseTable::getPosInContentTable(const int id, const int index) const {
+    const int offset = id % mBlockSize;
+    return (index * mBlockSize + offset) * mDataSize;
+}
+
+} // namespace latinime
diff --git a/native/jni/src/dictionary/utils/sparse_table.h b/native/jni/src/dictionary/utils/sparse_table.h
new file mode 100644
index 0000000..bd1190e
--- /dev/null
+++ b/native/jni/src/dictionary/utils/sparse_table.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_SPARSE_TABLE_H
+#define LATINIME_SPARSE_TABLE_H
+
+#include <cstdint>
+
+#include "defines.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+
+namespace latinime {
+
+// TODO: Support multiple content buffers.
+class SparseTable {
+ public:
+    SparseTable(BufferWithExtendableBuffer *const indexTableBuffer,
+            BufferWithExtendableBuffer *const contentTableBuffer, const int blockSize,
+            const int dataSize)
+            : mIndexTableBuffer(indexTableBuffer), mContentTableBuffer(contentTableBuffer),
+              mBlockSize(blockSize), mDataSize(dataSize) {}
+
+    bool contains(const int id) const;
+
+    uint32_t get(const int id) const;
+
+    bool set(const int id, const uint32_t value);
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(SparseTable);
+
+    int getIndexFromContentTablePos(const int contentTablePos) const;
+
+    int getPosInIndexTable(const int id) const;
+
+    int getPosInContentTable(const int id, const int index) const;
+
+    static const int NOT_EXIST;
+    static const int INDEX_SIZE;
+
+    BufferWithExtendableBuffer *const mIndexTableBuffer;
+    BufferWithExtendableBuffer *const mContentTableBuffer;
+    const int mBlockSize;
+    const int mDataSize;
+};
+} // namespace latinime
+#endif /* LATINIME_SPARSE_TABLE_H */
diff --git a/native/jni/src/dictionary/utils/trie_map.cpp b/native/jni/src/dictionary/utils/trie_map.cpp
new file mode 100644
index 0000000..0bef8c7
--- /dev/null
+++ b/native/jni/src/dictionary/utils/trie_map.cpp
@@ -0,0 +1,460 @@
+/*
+ * Copyright (C) 2014, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/utils/trie_map.h"
+
+#include "dictionary/utils/dict_file_writing_utils.h"
+
+namespace latinime {
+
+const int TrieMap::INVALID_INDEX = -1;
+const int TrieMap::FIELD0_SIZE = 4;
+const int TrieMap::FIELD1_SIZE = 3;
+const int TrieMap::ENTRY_SIZE = FIELD0_SIZE + FIELD1_SIZE;
+const uint32_t TrieMap::VALUE_FLAG = 0x400000;
+const uint32_t TrieMap::VALUE_MASK = 0x3FFFFF;
+const uint32_t TrieMap::INVALID_VALUE_IN_KEY_VALUE_ENTRY = VALUE_MASK;
+const uint32_t TrieMap::TERMINAL_LINK_FLAG = 0x800000;
+const uint32_t TrieMap::TERMINAL_LINK_MASK = 0x7FFFFF;
+const int TrieMap::NUM_OF_BITS_USED_FOR_ONE_LEVEL = 5;
+const uint32_t TrieMap::LABEL_MASK = 0x1F;
+const int TrieMap::MAX_NUM_OF_ENTRIES_IN_ONE_LEVEL = 1 << NUM_OF_BITS_USED_FOR_ONE_LEVEL;
+const int TrieMap::ROOT_BITMAP_ENTRY_INDEX = 0;
+const int TrieMap::ROOT_BITMAP_ENTRY_POS = MAX_NUM_OF_ENTRIES_IN_ONE_LEVEL * FIELD0_SIZE;
+const TrieMap::Entry TrieMap::EMPTY_BITMAP_ENTRY = TrieMap::Entry(0, 0);
+const int TrieMap::TERMINAL_LINKED_ENTRY_COUNT = 2; // Value entry and bitmap entry.
+const uint64_t TrieMap::MAX_VALUE =
+        (static_cast<uint64_t>(1) << ((FIELD0_SIZE + FIELD1_SIZE) * CHAR_BIT)) - 1;
+const int TrieMap::MAX_BUFFER_SIZE = TERMINAL_LINK_MASK * ENTRY_SIZE;
+
+TrieMap::TrieMap() : mBuffer(MAX_BUFFER_SIZE) {
+    mBuffer.extend(ROOT_BITMAP_ENTRY_POS);
+    writeEntry(EMPTY_BITMAP_ENTRY, ROOT_BITMAP_ENTRY_INDEX);
+}
+
+TrieMap::TrieMap(const ReadWriteByteArrayView buffer)
+        : mBuffer(buffer, BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE) {}
+
+void TrieMap::dump(const int from, const int to) const {
+    AKLOGI("BufSize: %d", mBuffer.getTailPosition());
+    for (int i = from; i < to; ++i) {
+        AKLOGI("Entry[%d]: %x, %x", i, readField0(i), readField1(i));
+    }
+    int unusedRegionSize = 0;
+    for (int i = 1; i <= MAX_NUM_OF_ENTRIES_IN_ONE_LEVEL; ++i) {
+        int index = readEmptyTableLink(i);
+        while (index != ROOT_BITMAP_ENTRY_INDEX) {
+            index = readField0(index);
+            unusedRegionSize += i;
+        }
+    }
+    AKLOGI("Unused Size: %d", unusedRegionSize);
+}
+
+int TrieMap::getNextLevelBitmapEntryIndex(const int key, const int bitmapEntryIndex) {
+    const Entry bitmapEntry = readEntry(bitmapEntryIndex);
+    const uint32_t unsignedKey = static_cast<uint32_t>(key);
+    const int terminalEntryIndex = getTerminalEntryIndex(
+            unsignedKey, getBitShuffledKey(unsignedKey), bitmapEntry, 0 /* level */);
+    if (terminalEntryIndex == INVALID_INDEX) {
+        // Not found.
+        return INVALID_INDEX;
+    }
+    const Entry terminalEntry = readEntry(terminalEntryIndex);
+    if (terminalEntry.hasTerminalLink()) {
+        return terminalEntry.getValueEntryIndex() + 1;
+    }
+    // Create a value entry and a bitmap entry.
+    const int valueEntryIndex = allocateTable(TERMINAL_LINKED_ENTRY_COUNT);
+    if (valueEntryIndex == INVALID_INDEX) {
+        return INVALID_INDEX;
+    }
+    if (!writeEntry(Entry(0, terminalEntry.getValue()), valueEntryIndex)) {
+        return INVALID_INDEX;
+    }
+    if (!writeEntry(EMPTY_BITMAP_ENTRY, valueEntryIndex + 1)) {
+        return INVALID_INDEX;
+    }
+    if (!writeField1(valueEntryIndex | TERMINAL_LINK_FLAG, terminalEntryIndex)) {
+        return INVALID_INDEX;
+    }
+    return valueEntryIndex + 1;
+}
+
+const TrieMap::Result TrieMap::get(const int key, const int bitmapEntryIndex) const {
+    const uint32_t unsignedKey = static_cast<uint32_t>(key);
+    return getInternal(unsignedKey, getBitShuffledKey(unsignedKey), bitmapEntryIndex,
+            0 /* level */);
+}
+
+bool TrieMap::put(const int key, const uint64_t value, const int bitmapEntryIndex) {
+    if (value > MAX_VALUE) {
+        return false;
+    }
+    const uint32_t unsignedKey = static_cast<uint32_t>(key);
+    return putInternal(unsignedKey, value, getBitShuffledKey(unsignedKey), bitmapEntryIndex,
+            readEntry(bitmapEntryIndex), 0 /* level */);
+}
+
+bool TrieMap::save(FILE *const file) const {
+    return DictFileWritingUtils::writeBufferToFileTail(file, &mBuffer);
+}
+
+bool TrieMap::remove(const int key, const int bitmapEntryIndex) {
+    const Entry bitmapEntry = readEntry(bitmapEntryIndex);
+    const uint32_t unsignedKey = static_cast<uint32_t>(key);
+    const int terminalEntryIndex = getTerminalEntryIndex(
+            unsignedKey, getBitShuffledKey(unsignedKey), bitmapEntry, 0 /* level */);
+    if (terminalEntryIndex == INVALID_INDEX) {
+        // Not found.
+        return false;
+    }
+    const Entry terminalEntry = readEntry(terminalEntryIndex);
+    if (!writeField1(VALUE_FLAG ^ INVALID_VALUE_IN_KEY_VALUE_ENTRY , terminalEntryIndex)) {
+        return false;
+    }
+    if (terminalEntry.hasTerminalLink()) {
+        const Entry nextLevelBitmapEntry = readEntry(terminalEntry.getValueEntryIndex() + 1);
+        if (!freeTable(terminalEntry.getValueEntryIndex(), TERMINAL_LINKED_ENTRY_COUNT)) {
+            return false;
+        }
+        if (!removeInner(nextLevelBitmapEntry)){
+            return false;
+        }
+    }
+    return true;
+}
+
+/**
+ * Iterate next entry in a certain level.
+ *
+ * @param iterationState the iteration state that will be read and updated in this method.
+ * @param outKey the output key
+ * @return Result instance. mIsValid is false when all entries are iterated.
+ */
+const TrieMap::Result TrieMap::iterateNext(std::vector<TableIterationState> *const iterationState,
+        int *const outKey) const {
+    while (!iterationState->empty()) {
+        TableIterationState &state = iterationState->back();
+        if (state.mTableSize <= state.mCurrentIndex) {
+            // Move to parent.
+            iterationState->pop_back();
+        } else {
+            const int entryIndex = state.mTableIndex + state.mCurrentIndex;
+            state.mCurrentIndex += 1;
+            const Entry entry = readEntry(entryIndex);
+            if (entry.isBitmapEntry()) {
+                // Move to child.
+                iterationState->emplace_back(popCount(entry.getBitmap()), entry.getTableIndex());
+            } else if (entry.isValidTerminalEntry()) {
+                if (outKey) {
+                    *outKey = entry.getKey();
+                }
+                if (!entry.hasTerminalLink()) {
+                    return Result(entry.getValue(), true, INVALID_INDEX);
+                }
+                const int valueEntryIndex = entry.getValueEntryIndex();
+                const Entry valueEntry = readEntry(valueEntryIndex);
+                return Result(valueEntry.getValueOfValueEntry(), true, valueEntryIndex + 1);
+            }
+        }
+    }
+    // Visited all entries.
+    return Result(0, false, INVALID_INDEX);
+}
+
+/**
+ * Shuffle bits of the key in the fixed order.
+ *
+ * This method is used as a hash function. This returns different values for different inputs.
+ */
+uint32_t TrieMap::getBitShuffledKey(const uint32_t key) const {
+    uint32_t shuffledKey = 0;
+    for (int i = 0; i < 4; ++i) {
+        const uint32_t keyPiece = (key >> (i * 8)) & 0xFF;
+        shuffledKey ^= ((keyPiece ^ (keyPiece << 7) ^ (keyPiece << 14) ^ (keyPiece << 21))
+                & 0x11111111) << i;
+    }
+    return shuffledKey;
+}
+
+bool TrieMap::writeValue(const uint64_t value, const int terminalEntryIndex) {
+    if (value < VALUE_MASK) {
+        // Write value into the terminal entry.
+        return writeField1(value | VALUE_FLAG, terminalEntryIndex);
+    }
+    // Create value entry and write value.
+    const int valueEntryIndex = allocateTable(TERMINAL_LINKED_ENTRY_COUNT);
+    if (valueEntryIndex == INVALID_INDEX) {
+        return false;
+    }
+    if (!writeEntry(Entry(value >> (FIELD1_SIZE * CHAR_BIT), value), valueEntryIndex)) {
+        return false;
+    }
+    if (!writeEntry(EMPTY_BITMAP_ENTRY, valueEntryIndex + 1)) {
+        return false;
+    }
+    return writeField1(valueEntryIndex | TERMINAL_LINK_FLAG, terminalEntryIndex);
+}
+
+bool TrieMap::updateValue(const Entry &terminalEntry, const uint64_t value,
+        const int terminalEntryIndex) {
+    if (!terminalEntry.hasTerminalLink()) {
+        return writeValue(value, terminalEntryIndex);
+    }
+    const int valueEntryIndex = terminalEntry.getValueEntryIndex();
+    return writeEntry(Entry(value >> (FIELD1_SIZE * CHAR_BIT), value), valueEntryIndex);
+}
+
+bool TrieMap::freeTable(const int tableIndex, const int entryCount) {
+    if (!writeField0(readEmptyTableLink(entryCount), tableIndex)) {
+        return false;
+    }
+    return writeEmptyTableLink(tableIndex, entryCount);
+}
+
+/**
+ * Allocate table with entryCount-entries. Reuse freed table if possible.
+ */
+int TrieMap::allocateTable(const int entryCount) {
+    if (entryCount > 0 && entryCount <= MAX_NUM_OF_ENTRIES_IN_ONE_LEVEL) {
+        const int tableIndex = readEmptyTableLink(entryCount);
+        if (tableIndex > 0) {
+            if (!writeEmptyTableLink(readField0(tableIndex), entryCount)) {
+                return INVALID_INDEX;
+            }
+            // Reuse the table.
+            return tableIndex;
+        }
+    }
+    // Allocate memory space at tail position of the buffer.
+    const int mapIndex = getTailEntryIndex();
+    if (!mBuffer.extend(entryCount * ENTRY_SIZE)) {
+        return INVALID_INDEX;
+    }
+    return mapIndex;
+}
+
+int TrieMap::getTerminalEntryIndex(const uint32_t key, const uint32_t hashedKey,
+        const Entry &bitmapEntry, const int level) const {
+    const int label = getLabel(hashedKey, level);
+    if (!exists(bitmapEntry.getBitmap(), label)) {
+        return INVALID_INDEX;
+    }
+    const int entryIndex = bitmapEntry.getTableIndex() + popCount(bitmapEntry.getBitmap(), label);
+    const Entry entry = readEntry(entryIndex);
+    if (entry.isBitmapEntry()) {
+        // Move to the next level.
+        return getTerminalEntryIndex(key, hashedKey, entry, level + 1);
+    }
+    if (!entry.isValidTerminalEntry()) {
+        return INVALID_INDEX;
+    }
+    if (entry.getKey() == key) {
+        // Terminal entry is found.
+        return entryIndex;
+    }
+    return INVALID_INDEX;
+}
+
+/**
+ * Get Result corresponding to the key.
+ *
+ * @param key the key.
+ * @param hashedKey the hashed key.
+ * @param bitmapEntryIndex the index of bitmap entry
+ * @param level current level
+ * @return Result instance corresponding to the key. mIsValid indicates whether the key is in the
+ * map.
+ */
+const TrieMap::Result TrieMap::getInternal(const uint32_t key, const uint32_t hashedKey,
+        const int bitmapEntryIndex, const int level) const {
+    const int terminalEntryIndex = getTerminalEntryIndex(key, hashedKey,
+            readEntry(bitmapEntryIndex), level);
+    if (terminalEntryIndex == INVALID_INDEX) {
+        // Not found.
+        return Result(0, false, INVALID_INDEX);
+    }
+    const Entry terminalEntry = readEntry(terminalEntryIndex);
+    if (!terminalEntry.hasTerminalLink()) {
+        return Result(terminalEntry.getValue(), true, INVALID_INDEX);
+    }
+    const int valueEntryIndex = terminalEntry.getValueEntryIndex();
+    const Entry valueEntry = readEntry(valueEntryIndex);
+    return Result(valueEntry.getValueOfValueEntry(), true, valueEntryIndex + 1);
+}
+
+/**
+ * Put key to value mapping to the map.
+ *
+ * @param key the key.
+ * @param value the value
+ * @param hashedKey the hashed key.
+ * @param bitmapEntryIndex the index of bitmap entry
+ * @param bitmapEntry the bitmap entry
+ * @param level current level
+ * @return whether the key-value has been correctly inserted to the map or not.
+ */
+bool TrieMap::putInternal(const uint32_t key, const uint64_t value, const uint32_t hashedKey,
+        const int bitmapEntryIndex, const Entry &bitmapEntry, const int level) {
+    const int label = getLabel(hashedKey, level);
+    const uint32_t bitmap = bitmapEntry.getBitmap();
+    const int mapIndex = bitmapEntry.getTableIndex();
+    if (!exists(bitmap, label)) {
+        // Current map doesn't contain the label.
+        return addNewEntryByExpandingTable(key, value, mapIndex, bitmap, bitmapEntryIndex, label);
+    }
+    const int entryIndex = mapIndex + popCount(bitmap, label);
+    const Entry entry = readEntry(entryIndex);
+    if (entry.isBitmapEntry()) {
+        // Bitmap entry is found. Go to the next level.
+        return putInternal(key, value, hashedKey, entryIndex, entry, level + 1);
+    }
+    if (!entry.isValidTerminalEntry()) {
+        // Overwrite invalid terminal entry.
+        return writeTerminalEntry(key, value, entryIndex);
+    }
+    if (entry.getKey() == key) {
+        // Terminal entry for the key is found. Update the value.
+        return updateValue(entry, value, entryIndex);
+    }
+    // Conflict with the existing key.
+    return addNewEntryByResolvingConflict(key, value, hashedKey, entry, entryIndex, level);
+}
+
+/**
+ * Resolve a conflict in the current level and add new entry.
+ *
+ * @param key the key
+ * @param value the value
+ * @param hashedKey the hashed key
+ * @param conflictedEntry the existing conflicted entry
+ * @param conflictedEntryIndex the index of existing conflicted entry
+ * @param level current level
+ * @return whether the key-value has been correctly inserted to the map or not.
+ */
+bool TrieMap::addNewEntryByResolvingConflict(const uint32_t key, const uint64_t value,
+        const uint32_t hashedKey, const Entry &conflictedEntry, const int conflictedEntryIndex,
+        const int level) {
+    const int conflictedKeyNextLabel =
+            getLabel(getBitShuffledKey(conflictedEntry.getKey()), level + 1);
+    const int nextLabel = getLabel(hashedKey, level + 1);
+    if (conflictedKeyNextLabel == nextLabel) {
+        // Conflicted again in the next level.
+        const int newTableIndex = allocateTable(1 /* entryCount */);
+        if (newTableIndex == INVALID_INDEX) {
+            return false;
+        }
+        if (!writeEntry(conflictedEntry, newTableIndex)) {
+            return false;
+        }
+        const Entry newBitmapEntry(setExist(0 /* bitmap */, nextLabel), newTableIndex);
+        if (!writeEntry(newBitmapEntry, conflictedEntryIndex)) {
+            return false;
+        }
+        return putInternal(key, value, hashedKey, conflictedEntryIndex, newBitmapEntry, level + 1);
+    }
+    // The conflict has been resolved. Create a table that contains 2 entries.
+    const int newTableIndex = allocateTable(2 /* entryCount */);
+    if (newTableIndex == INVALID_INDEX) {
+        return false;
+    }
+    if (nextLabel < conflictedKeyNextLabel) {
+        if (!writeTerminalEntry(key, value, newTableIndex)) {
+            return false;
+        }
+        if (!writeEntry(conflictedEntry, newTableIndex + 1)) {
+            return false;
+        }
+    } else { // nextLabel > conflictedKeyNextLabel
+        if (!writeEntry(conflictedEntry, newTableIndex)) {
+            return false;
+        }
+        if (!writeTerminalEntry(key, value, newTableIndex + 1)) {
+            return false;
+        }
+    }
+    const uint32_t updatedBitmap =
+            setExist(setExist(0 /* bitmap */, nextLabel), conflictedKeyNextLabel);
+    return writeEntry(Entry(updatedBitmap, newTableIndex), conflictedEntryIndex);
+}
+
+/**
+ * Add new entry to the existing table.
+ */
+bool TrieMap::addNewEntryByExpandingTable(const uint32_t key, const uint64_t value,
+        const int tableIndex, const uint32_t bitmap, const int bitmapEntryIndex, const int label) {
+    // Current map doesn't contain the label.
+    const int entryCount = popCount(bitmap);
+    const int newTableIndex = allocateTable(entryCount + 1);
+    if (newTableIndex == INVALID_INDEX) {
+        return false;
+    }
+    const int newEntryIndexInTable = popCount(bitmap, label);
+    // Copy from existing table to the new table.
+    for (int i = 0; i < entryCount; ++i) {
+        if (!copyEntry(tableIndex + i, newTableIndex + i + (i >= newEntryIndexInTable ? 1 : 0))) {
+            return false;
+        }
+    }
+    // Write new terminal entry.
+    if (!writeTerminalEntry(key, value, newTableIndex + newEntryIndexInTable)) {
+        return false;
+    }
+    // Update bitmap.
+    if (!writeEntry(Entry(setExist(bitmap, label), newTableIndex), bitmapEntryIndex)) {
+        return false;
+    }
+    if (entryCount > 0) {
+        return freeTable(tableIndex, entryCount);
+    }
+    return true;
+}
+
+bool TrieMap::removeInner(const Entry &bitmapEntry) {
+    const int tableSize = popCount(bitmapEntry.getBitmap());
+    if (tableSize <= 0) {
+        // The table is empty. No need to remove any entries.
+        return true;
+    }
+    for (int i = 0; i < tableSize; ++i) {
+        const int entryIndex = bitmapEntry.getTableIndex() + i;
+        const Entry entry = readEntry(entryIndex);
+        if (entry.isBitmapEntry()) {
+            // Delete next bitmap entry recursively.
+            if (!removeInner(entry)) {
+                return false;
+            }
+        } else {
+            // Invalidate terminal entry just in case.
+            if (!writeField1(VALUE_FLAG ^ INVALID_VALUE_IN_KEY_VALUE_ENTRY , entryIndex)) {
+                return false;
+            }
+            if (entry.hasTerminalLink()) {
+                const Entry nextLevelBitmapEntry = readEntry(entry.getValueEntryIndex() + 1);
+                if (!freeTable(entry.getValueEntryIndex(), TERMINAL_LINKED_ENTRY_COUNT)) {
+                    return false;
+                }
+                if (!removeInner(nextLevelBitmapEntry)) {
+                    return false;
+                }
+            }
+        }
+    }
+    return true;
+}
+
+}  // namespace latinime
diff --git a/native/jni/src/dictionary/utils/trie_map.h b/native/jni/src/dictionary/utils/trie_map.h
new file mode 100644
index 0000000..5fc6c26
--- /dev/null
+++ b/native/jni/src/dictionary/utils/trie_map.h
@@ -0,0 +1,399 @@
+/*
+ * Copyright (C) 2014, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_TRIE_MAP_H
+#define LATINIME_TRIE_MAP_H
+
+#include <climits>
+#include <cstdint>
+#include <cstdio>
+#include <vector>
+
+#include "defines.h"
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+#include "utils/byte_array_view.h"
+
+namespace latinime {
+
+/**
+ * Trie map derived from Phil Bagwell's Hash Array Mapped Trie.
+ * key is int and value is uint64_t.
+ * This supports multiple level map. Terminal entries can have a bitmap for the next level map.
+ * This doesn't support root map resizing.
+ */
+class TrieMap {
+ public:
+    struct Result {
+        const uint64_t mValue;
+        const bool mIsValid;
+        const int mNextLevelBitmapEntryIndex;
+
+        Result(const uint64_t value, const bool isValid, const int nextLevelBitmapEntryIndex)
+                : mValue(value), mIsValid(isValid),
+                  mNextLevelBitmapEntryIndex(nextLevelBitmapEntryIndex) {}
+    };
+
+    /**
+     * Struct to record iteration state in a table.
+     */
+    struct TableIterationState {
+        int mTableSize;
+        int mTableIndex;
+        int mCurrentIndex;
+
+        TableIterationState(const int tableSize, const int tableIndex)
+                : mTableSize(tableSize), mTableIndex(tableIndex), mCurrentIndex(0) {}
+    };
+
+    class TrieMapRange;
+    class TrieMapIterator {
+     public:
+        class IterationResult {
+         public:
+            IterationResult(const TrieMap *const trieMap, const int key, const uint64_t value,
+                    const int nextLeveBitmapEntryIndex)
+                    : mTrieMap(trieMap), mKey(key), mValue(value),
+                      mNextLevelBitmapEntryIndex(nextLeveBitmapEntryIndex) {}
+
+            const TrieMapRange getEntriesInNextLevel() const {
+                return TrieMapRange(mTrieMap, mNextLevelBitmapEntryIndex);
+            }
+
+            bool hasNextLevelMap() const {
+                return mNextLevelBitmapEntryIndex != INVALID_INDEX;
+            }
+
+            AK_FORCE_INLINE int key() const {
+                return mKey;
+            }
+
+            AK_FORCE_INLINE uint64_t value() const {
+                return mValue;
+            }
+
+            AK_FORCE_INLINE int getNextLevelBitmapEntryIndex() const {
+                return mNextLevelBitmapEntryIndex;
+            }
+
+         private:
+            const TrieMap *const mTrieMap;
+            const int mKey;
+            const uint64_t mValue;
+            const int mNextLevelBitmapEntryIndex;
+        };
+
+        TrieMapIterator(const TrieMap *const trieMap, const int bitmapEntryIndex)
+                : mTrieMap(trieMap), mStateStack(), mBaseBitmapEntryIndex(bitmapEntryIndex),
+                  mKey(0), mValue(0), mIsValid(false), mNextLevelBitmapEntryIndex(INVALID_INDEX) {
+            if (!trieMap || mBaseBitmapEntryIndex == INVALID_INDEX) {
+                return;
+            }
+            const Entry bitmapEntry = mTrieMap->readEntry(mBaseBitmapEntryIndex);
+            mStateStack.emplace_back(
+                    mTrieMap->popCount(bitmapEntry.getBitmap()), bitmapEntry.getTableIndex());
+            this->operator++();
+        }
+
+        const IterationResult operator*() const {
+            return IterationResult(mTrieMap, mKey, mValue, mNextLevelBitmapEntryIndex);
+        }
+
+        bool operator!=(const TrieMapIterator &other) const {
+            // Caveat: This works only for for loops.
+            return mIsValid || other.mIsValid;
+        }
+
+        const TrieMapIterator &operator++() {
+            const Result result = mTrieMap->iterateNext(&mStateStack, &mKey);
+            mValue = result.mValue;
+            mIsValid = result.mIsValid;
+            mNextLevelBitmapEntryIndex = result.mNextLevelBitmapEntryIndex;
+            return *this;
+        }
+
+     private:
+        DISALLOW_DEFAULT_CONSTRUCTOR(TrieMapIterator);
+        DISALLOW_ASSIGNMENT_OPERATOR(TrieMapIterator);
+
+        const TrieMap *const mTrieMap;
+        std::vector<TrieMap::TableIterationState> mStateStack;
+        const int mBaseBitmapEntryIndex;
+        int mKey;
+        uint64_t mValue;
+        bool mIsValid;
+        int mNextLevelBitmapEntryIndex;
+    };
+
+    /**
+     * Class to support iterating entries in TrieMap by range base for loops.
+     */
+    class TrieMapRange {
+     public:
+        TrieMapRange(const TrieMap *const trieMap, const int bitmapEntryIndex)
+                : mTrieMap(trieMap), mBaseBitmapEntryIndex(bitmapEntryIndex) {};
+
+        TrieMapIterator begin() const {
+            return TrieMapIterator(mTrieMap, mBaseBitmapEntryIndex);
+        }
+
+        const TrieMapIterator end() const {
+            return TrieMapIterator(nullptr, INVALID_INDEX);
+        }
+
+     private:
+        DISALLOW_DEFAULT_CONSTRUCTOR(TrieMapRange);
+        DISALLOW_ASSIGNMENT_OPERATOR(TrieMapRange);
+
+        const TrieMap *const mTrieMap;
+        const int mBaseBitmapEntryIndex;
+    };
+
+    static const int INVALID_INDEX;
+    static const uint64_t MAX_VALUE;
+
+    TrieMap();
+    // Construct TrieMap using existing data in the memory region written by save().
+    TrieMap(const ReadWriteByteArrayView buffer);
+    void dump(const int from = 0, const int to = 0) const;
+
+    bool isNearSizeLimit() const {
+        return mBuffer.isNearSizeLimit();
+    }
+
+    int getRootBitmapEntryIndex() const {
+        return ROOT_BITMAP_ENTRY_INDEX;
+    }
+
+    // Returns bitmapEntryIndex. Create the next level map if it doesn't exist.
+    int getNextLevelBitmapEntryIndex(const int key) {
+        return getNextLevelBitmapEntryIndex(key, ROOT_BITMAP_ENTRY_INDEX);
+    }
+
+    int getNextLevelBitmapEntryIndex(const int key, const int bitmapEntryIndex);
+
+    const Result getRoot(const int key) const {
+        return get(key, ROOT_BITMAP_ENTRY_INDEX);
+    }
+
+    const Result get(const int key, const int bitmapEntryIndex) const;
+
+    bool putRoot(const int key, const uint64_t value) {
+        return put(key, value, ROOT_BITMAP_ENTRY_INDEX);
+    }
+
+    bool put(const int key, const uint64_t value, const int bitmapEntryIndex);
+
+    const TrieMapRange getEntriesInRootLevel() const {
+        return getEntriesInSpecifiedLevel(ROOT_BITMAP_ENTRY_INDEX);
+    }
+
+    const TrieMapRange getEntriesInSpecifiedLevel(const int bitmapEntryIndex) const {
+        return TrieMapRange(this, bitmapEntryIndex);
+    }
+
+    bool save(FILE *const file) const;
+
+    bool remove(const int key, const int bitmapEntryIndex);
+
+ private:
+    DISALLOW_COPY_AND_ASSIGN(TrieMap);
+
+    /**
+     * Struct represents an entry.
+     *
+     * Entry is one of these entry types. All entries are fixed size and have 2 fields FIELD_0 and
+     * FIELD_1.
+     * 1. bitmap entry. bitmap entry contains bitmap and the link to hash table.
+     *   FIELD_0(bitmap) FIELD_1(LINK_TO_HASH_TABLE)
+     * 2. terminal entry. terminal entry contains hashed key and value or terminal link. terminal
+     * entry have terminal link when the value is not fit to FIELD_1 or there is a next level map
+     * for the key.
+     *   FIELD_0(hashed key) (FIELD_1(VALUE_FLAG VALUE) | FIELD_1(TERMINAL_LINK_FLAG TERMINAL_LINK))
+     * 3. value entry. value entry represents a value. Upper order bytes are stored in FIELD_0 and
+     * lower order bytes are stored in FIELD_1.
+     *   FIELD_0(value (upper order bytes)) FIELD_1(value (lower order bytes))
+     */
+    struct Entry {
+        const uint32_t mData0;
+        const uint32_t mData1;
+
+        Entry(const uint32_t data0, const uint32_t data1) : mData0(data0), mData1(data1) {}
+
+        AK_FORCE_INLINE bool isBitmapEntry() const {
+            return (mData1 & VALUE_FLAG) == 0 && (mData1 & TERMINAL_LINK_FLAG) == 0;
+        }
+
+        AK_FORCE_INLINE bool hasTerminalLink() const {
+            return (mData1 & TERMINAL_LINK_FLAG) != 0;
+        }
+
+        // For terminal entry.
+        AK_FORCE_INLINE uint32_t getKey() const {
+            return mData0;
+        }
+
+        // For terminal entry.
+        AK_FORCE_INLINE uint32_t getValue() const {
+            return mData1 & VALUE_MASK;
+        }
+
+        // For terminal entry.
+        AK_FORCE_INLINE bool isValidTerminalEntry() const {
+            return hasTerminalLink() || ((mData1 & VALUE_MASK) != INVALID_VALUE_IN_KEY_VALUE_ENTRY);
+        }
+
+        // For terminal entry.
+        AK_FORCE_INLINE uint32_t getValueEntryIndex() const {
+            return mData1 & TERMINAL_LINK_MASK;
+        }
+
+        // For bitmap entry.
+        AK_FORCE_INLINE uint32_t getBitmap() const {
+            return mData0;
+        }
+
+        // For bitmap entry.
+        AK_FORCE_INLINE int getTableIndex() const {
+            return static_cast<int>(mData1);
+        }
+
+        // For value entry.
+        AK_FORCE_INLINE uint64_t getValueOfValueEntry() const {
+            return ((static_cast<uint64_t>(mData0) << (FIELD1_SIZE * CHAR_BIT)) ^ mData1);
+        }
+    };
+
+    BufferWithExtendableBuffer mBuffer;
+
+    static const int FIELD0_SIZE;
+    static const int FIELD1_SIZE;
+    static const int ENTRY_SIZE;
+    static const uint32_t VALUE_FLAG;
+    static const uint32_t VALUE_MASK;
+    static const uint32_t INVALID_VALUE_IN_KEY_VALUE_ENTRY;
+    static const uint32_t TERMINAL_LINK_FLAG;
+    static const uint32_t TERMINAL_LINK_MASK;
+    static const int NUM_OF_BITS_USED_FOR_ONE_LEVEL;
+    static const uint32_t LABEL_MASK;
+    static const int MAX_NUM_OF_ENTRIES_IN_ONE_LEVEL;
+    static const int ROOT_BITMAP_ENTRY_INDEX;
+    static const int ROOT_BITMAP_ENTRY_POS;
+    static const Entry EMPTY_BITMAP_ENTRY;
+    static const int TERMINAL_LINKED_ENTRY_COUNT;
+    static const int MAX_BUFFER_SIZE;
+
+    uint32_t getBitShuffledKey(const uint32_t key) const;
+    bool writeValue(const uint64_t value, const int terminalEntryIndex);
+    bool updateValue(const Entry &terminalEntry, const uint64_t value,
+            const int terminalEntryIndex);
+    bool freeTable(const int tableIndex, const int entryCount);
+    int allocateTable(const int entryCount);
+    int getTerminalEntryIndex(const uint32_t key, const uint32_t hashedKey,
+            const Entry &bitmapEntry, const int level) const;
+    const Result getInternal(const uint32_t key, const uint32_t hashedKey,
+            const int bitmapEntryIndex, const int level) const;
+    bool putInternal(const uint32_t key, const uint64_t value, const uint32_t hashedKey,
+            const int bitmapEntryIndex, const Entry &bitmapEntry, const int level);
+    bool addNewEntryByResolvingConflict(const uint32_t key, const uint64_t value,
+            const uint32_t hashedKey, const Entry &conflictedEntry, const int conflictedEntryIndex,
+            const int level);
+    bool addNewEntryByExpandingTable(const uint32_t key, const uint64_t value,
+            const int tableIndex, const uint32_t bitmap, const int bitmapEntryIndex,
+            const int label);
+    const Result iterateNext(std::vector<TableIterationState> *const iterationState,
+            int *const outKey) const;
+
+    AK_FORCE_INLINE const Entry readEntry(const int entryIndex) const {
+        return Entry(readField0(entryIndex), readField1(entryIndex));
+    }
+
+    // Returns whether an entry for the index is existing by testing if the index-th bit in the
+    // bitmap is set or not.
+    AK_FORCE_INLINE bool exists(const uint32_t bitmap, const int index) const {
+        return (bitmap & (1 << index)) != 0;
+    }
+
+    // Set index-th bit in the bitmap.
+    AK_FORCE_INLINE uint32_t setExist(const uint32_t bitmap, const int index) const {
+        return bitmap | (1 << index);
+    }
+
+    // Count set bits before index in the bitmap.
+    AK_FORCE_INLINE int popCount(const uint32_t bitmap, const int index) const {
+        return popCount(bitmap & ((1 << index) - 1));
+    }
+
+    // Count set bits in the bitmap.
+    AK_FORCE_INLINE int popCount(const uint32_t bitmap) const {
+        return __builtin_popcount(bitmap);
+        // int v = bitmap - ((bitmap >> 1) & 0x55555555);
+        // v = (v & 0x33333333) + ((v >> 2) & 0x33333333);
+        // return (((v + (v >> 4)) & 0x0F0F0F0F) * 0x01010101) >> 24;
+    }
+
+    AK_FORCE_INLINE int getLabel(const uint32_t hashedKey, const int level) const {
+        return (hashedKey >> (level * NUM_OF_BITS_USED_FOR_ONE_LEVEL)) & LABEL_MASK;
+    }
+
+    AK_FORCE_INLINE uint32_t readField0(const int entryIndex) const {
+        return mBuffer.readUint(FIELD0_SIZE, ROOT_BITMAP_ENTRY_POS + entryIndex * ENTRY_SIZE);
+    }
+
+    AK_FORCE_INLINE uint32_t readField1(const int entryIndex) const {
+        return mBuffer.readUint(FIELD1_SIZE,
+                ROOT_BITMAP_ENTRY_POS + entryIndex * ENTRY_SIZE + FIELD0_SIZE);
+    }
+
+    AK_FORCE_INLINE int readEmptyTableLink(const int entryCount) const {
+        return mBuffer.readUint(FIELD1_SIZE, (entryCount - 1) * FIELD1_SIZE);
+    }
+
+    AK_FORCE_INLINE bool writeEmptyTableLink(const int tableIndex, const int entryCount) {
+        return mBuffer.writeUint(tableIndex, FIELD1_SIZE, (entryCount - 1) * FIELD1_SIZE);
+    }
+
+    AK_FORCE_INLINE bool writeField0(const uint32_t data, const int entryIndex) {
+        return mBuffer.writeUint(data, FIELD0_SIZE,
+                ROOT_BITMAP_ENTRY_POS + entryIndex * ENTRY_SIZE);
+    }
+
+    AK_FORCE_INLINE bool writeField1(const uint32_t data, const int entryIndex) {
+        return mBuffer.writeUint(data, FIELD1_SIZE,
+                ROOT_BITMAP_ENTRY_POS + entryIndex * ENTRY_SIZE + FIELD0_SIZE);
+    }
+
+    AK_FORCE_INLINE bool writeEntry(const Entry &entry, const int entryIndex) {
+        return writeField0(entry.mData0, entryIndex) && writeField1(entry.mData1, entryIndex);
+    }
+
+    AK_FORCE_INLINE bool writeTerminalEntry(const uint32_t key, const uint64_t value,
+            const int entryIndex) {
+        return writeField0(key, entryIndex) && writeValue(value, entryIndex);
+    }
+
+    AK_FORCE_INLINE bool copyEntry(const int originalEntryIndex, const int newEntryIndex) {
+        return writeEntry(readEntry(originalEntryIndex), newEntryIndex);
+    }
+
+    AK_FORCE_INLINE int getTailEntryIndex() const {
+        return (mBuffer.getTailPosition() - ROOT_BITMAP_ENTRY_POS) / ENTRY_SIZE;
+    }
+
+    bool removeInner(const Entry &bitmapEntry);
+};
+
+} // namespace latinime
+#endif /* LATINIME_TRIE_MAP_H */
diff --git a/native/jni/src/suggest/core/dicnode/dic_node.h b/native/jni/src/suggest/core/dicnode/dic_node.h
index d1b2c87..5214077 100644
--- a/native/jni/src/suggest/core/dicnode/dic_node.h
+++ b/native/jni/src/suggest/core/dicnode/dic_node.h
@@ -26,6 +26,7 @@
 #include "suggest/core/dictionary/error_type_utils.h"
 #include "suggest/core/layout/proximity_info_state.h"
 #include "utils/char_utils.h"
+#include "utils/int_array_view.h"
 
 #if DEBUG_DICT
 #define LOGI_SHOW_ADD_COST_PROP \
@@ -103,10 +104,10 @@
         PROF_NODE_COPY(&dicNode->mProfiler, mProfiler);
     }
 
-    // Init for root with prevWordsPtNodePos which is used for n-gram
-    void initAsRoot(const int rootPtNodeArrayPos, const int *const prevWordsPtNodePos) {
+    // Init for root with prevWordIds which is used for n-gram
+    void initAsRoot(const int rootPtNodeArrayPos, const WordIdArrayView prevWordIds) {
         mIsCachedForNextSuggestion = false;
-        mDicNodeProperties.init(rootPtNodeArrayPos, prevWordsPtNodePos);
+        mDicNodeProperties.init(rootPtNodeArrayPos, prevWordIds);
         mDicNodeState.init();
         PROF_NODE_RESET(mProfiler);
     }
@@ -114,12 +115,11 @@
     // Init for root with previous word
     void initAsRootWithPreviousWord(const DicNode *const dicNode, const int rootPtNodeArrayPos) {
         mIsCachedForNextSuggestion = dicNode->mIsCachedForNextSuggestion;
-        int newPrevWordsPtNodePos[MAX_PREV_WORD_COUNT_FOR_N_GRAM];
-        newPrevWordsPtNodePos[0] = dicNode->mDicNodeProperties.getPtNodePos();
-        for (size_t i = 1; i < NELEMS(newPrevWordsPtNodePos); ++i) {
-            newPrevWordsPtNodePos[i] = dicNode->getPrevWordsTerminalPtNodePos()[i - 1];
-        }
-        mDicNodeProperties.init(rootPtNodeArrayPos, newPrevWordsPtNodePos);
+        WordIdArray<MAX_PREV_WORD_COUNT_FOR_N_GRAM> newPrevWordIds;
+        newPrevWordIds[0] = dicNode->mDicNodeProperties.getWordId();
+        dicNode->getPrevWordIds().limit(newPrevWordIds.size() - 1)
+                .copyToArray(&newPrevWordIds, 1 /* offset */);
+        mDicNodeProperties.init(rootPtNodeArrayPos, WordIdArrayView::fromArray(newPrevWordIds));
         mDicNodeState.initAsRootWithPreviousWord(&dicNode->mDicNodeState,
                 dicNode->mDicNodeProperties.getDepth());
         PROF_NODE_COPY(&dicNode->mProfiler, mProfiler);
@@ -135,19 +135,16 @@
         PROF_NODE_COPY(&parentDicNode->mProfiler, mProfiler);
     }
 
-    void initAsChild(const DicNode *const dicNode, const int ptNodePos,
-            const int childrenPtNodeArrayPos, const int probability, const bool isTerminal,
-            const bool hasChildren, const bool isBlacklistedOrNotAWord,
-            const uint16_t mergedNodeCodePointCount, const int *const mergedNodeCodePoints) {
+    void initAsChild(const DicNode *const dicNode, const int childrenPtNodeArrayPos,
+            const int wordId, const CodePointArrayView mergedCodePoints) {
         uint16_t newDepth = static_cast<uint16_t>(dicNode->getNodeCodePointCount() + 1);
         mIsCachedForNextSuggestion = dicNode->mIsCachedForNextSuggestion;
         const uint16_t newLeavingDepth = static_cast<uint16_t>(
-                dicNode->mDicNodeProperties.getLeavingDepth() + mergedNodeCodePointCount);
-        mDicNodeProperties.init(ptNodePos, childrenPtNodeArrayPos, mergedNodeCodePoints[0],
-                probability, isTerminal, hasChildren, isBlacklistedOrNotAWord, newDepth,
-                newLeavingDepth, dicNode->mDicNodeProperties.getPrevWordsTerminalPtNodePos());
-        mDicNodeState.init(&dicNode->mDicNodeState, mergedNodeCodePointCount,
-                mergedNodeCodePoints);
+                dicNode->mDicNodeProperties.getLeavingDepth() + mergedCodePoints.size());
+        mDicNodeProperties.init(childrenPtNodeArrayPos, mergedCodePoints[0],
+                wordId, newDepth, newLeavingDepth, dicNode->mDicNodeProperties.getPrevWordIds());
+        mDicNodeState.init(&dicNode->mDicNodeState, mergedCodePoints.size(),
+                mergedCodePoints.data());
         PROF_NODE_COPY(&dicNode->mProfiler, mProfiler);
     }
 
@@ -179,9 +176,6 @@
     // Check if the current word and the previous word can be considered as a valid multiple word
     // suggestion.
     bool isValidMultipleWordSuggestion() const {
-        if (isBlacklistedOrNotAWord()) {
-            return false;
-        }
         // Treat suggestion as invalid if the current and the previous word are single character
         // words.
         const int prevWordLen = mDicNodeState.mDicNodeStateOutput.getPrevWordsLength()
@@ -204,13 +198,12 @@
     }
 
     // Used to get n-gram probability in DicNodeUtils.
-    int getPtNodePos() const {
-        return mDicNodeProperties.getPtNodePos();
+    int getWordId() const {
+        return mDicNodeProperties.getWordId();
     }
 
-    // TODO: Use view class to return PtNodePos array.
-    const int *getPrevWordsTerminalPtNodePos() const {
-        return mDicNodeProperties.getPrevWordsTerminalPtNodePos();
+    const WordIdArrayView getPrevWordIds() const {
+        return mDicNodeProperties.getPrevWordIds();
     }
 
     // Used in DicNodeUtils
@@ -218,10 +211,6 @@
         return mDicNodeProperties.getChildrenPtNodeArrayPos();
     }
 
-    int getProbability() const {
-        return mDicNodeProperties.getProbability();
-    }
-
     AK_FORCE_INLINE bool isTerminalDicNode() const {
         const bool isTerminalPtNode = mDicNodeProperties.isTerminal();
         const int currentDicNodeDepth = getNodeCodePointCount();
@@ -306,8 +295,9 @@
     }
 
     // Used to prune nodes
-    float getCompoundDistance(const float languageWeight) const {
-        return mDicNodeState.mDicNodeStateScoring.getCompoundDistance(languageWeight);
+    float getCompoundDistance(const float weightOfLangModelVsSpatialModel) const {
+        return mDicNodeState.mDicNodeStateScoring.getCompoundDistance(
+                weightOfLangModelVsSpatialModel);
     }
 
     AK_FORCE_INLINE const int *getOutputWordBuf() const {
@@ -404,10 +394,6 @@
         return mDicNodeState.mDicNodeStateScoring.getContainedErrorTypes();
     }
 
-    bool isBlacklistedOrNotAWord() const {
-        return mDicNodeProperties.isBlacklistedOrNotAWord();
-    }
-
     inline uint16_t getNodeCodePointCount() const {
         return mDicNodeProperties.getDepth();
     }
diff --git a/native/jni/src/suggest/core/dicnode/dic_node_utils.cpp b/native/jni/src/suggest/core/dicnode/dic_node_utils.cpp
index 69ea674..a20252c 100644
--- a/native/jni/src/suggest/core/dicnode/dic_node_utils.cpp
+++ b/native/jni/src/suggest/core/dicnode/dic_node_utils.cpp
@@ -16,10 +16,9 @@
 
 #include "suggest/core/dicnode/dic_node_utils.h"
 
+#include "dictionary/interface/dictionary_structure_with_buffer_policy.h"
 #include "suggest/core/dicnode/dic_node.h"
 #include "suggest/core/dicnode/dic_node_vector.h"
-#include "suggest/core/dictionary/multi_bigram_map.h"
-#include "suggest/core/policy/dictionary_structure_with_buffer_policy.h"
 
 namespace latinime {
 
@@ -29,8 +28,8 @@
 
 /* static */ void DicNodeUtils::initAsRoot(
         const DictionaryStructureWithBufferPolicy *const dictionaryStructurePolicy,
-        const int *const prevWordsPtNodePos, DicNode *const newRootDicNode) {
-    newRootDicNode->initAsRoot(dictionaryStructurePolicy->getRootPosition(), prevWordsPtNodePos);
+        const WordIdArrayView prevWordIds, DicNode *const newRootDicNode) {
+    newRootDicNode->initAsRoot(dictionaryStructurePolicy->getRootPosition(), prevWordIds);
 }
 
 /*static */ void DicNodeUtils::initAsRootWithPreviousWord(
@@ -73,25 +72,17 @@
     if (dicNode->hasMultipleWords() && !dicNode->isValidMultipleWordSuggestion()) {
         return static_cast<float>(MAX_VALUE_FOR_WEIGHTING);
     }
-    const int probability = getBigramNodeProbability(dictionaryStructurePolicy, dicNode,
-            multiBigramMap);
+    const WordAttributes wordAttributes = dictionaryStructurePolicy->getWordAttributesInContext(
+            dicNode->getPrevWordIds(), dicNode->getWordId(), multiBigramMap);
+    if (wordAttributes.getProbability() == NOT_A_PROBABILITY
+            || (dicNode->hasMultipleWords()
+                    && (wordAttributes.isBlacklisted() || wordAttributes.isNotAWord()))) {
+        return static_cast<float>(MAX_VALUE_FOR_WEIGHTING);
+    }
     // TODO: This equation to calculate the improbability looks unreasonable.  Investigate this.
-    const float cost = static_cast<float>(MAX_PROBABILITY - probability)
+    const float cost = static_cast<float>(MAX_PROBABILITY - wordAttributes.getProbability())
             / static_cast<float>(MAX_PROBABILITY);
     return cost;
 }
 
-/* static */ int DicNodeUtils::getBigramNodeProbability(
-        const DictionaryStructureWithBufferPolicy *const dictionaryStructurePolicy,
-        const DicNode *const dicNode, MultiBigramMap *const multiBigramMap) {
-    const int unigramProbability = dicNode->getProbability();
-    if (multiBigramMap) {
-        const int *const prevWordsPtNodePos = dicNode->getPrevWordsTerminalPtNodePos();
-        return multiBigramMap->getBigramProbability(dictionaryStructurePolicy,
-                prevWordsPtNodePos, dicNode->getPtNodePos(), unigramProbability);
-    }
-    return dictionaryStructurePolicy->getProbability(unigramProbability,
-            NOT_A_PROBABILITY);
-}
-
 } // namespace latinime
diff --git a/native/jni/src/suggest/core/dicnode/dic_node_utils.h b/native/jni/src/suggest/core/dicnode/dic_node_utils.h
index 00e80c6..b891a84 100644
--- a/native/jni/src/suggest/core/dicnode/dic_node_utils.h
+++ b/native/jni/src/suggest/core/dicnode/dic_node_utils.h
@@ -18,6 +18,7 @@
 #define LATINIME_DIC_NODE_UTILS_H
 
 #include "defines.h"
+#include "utils/int_array_view.h"
 
 namespace latinime {
 
@@ -30,7 +31,7 @@
  public:
     static void initAsRoot(
             const DictionaryStructureWithBufferPolicy *const dictionaryStructurePolicy,
-            const int *const prevWordPtNodePos, DicNode *const newRootDicNode);
+            const WordIdArrayView prevWordIds, DicNode *const newRootDicNode);
     static void initAsRootWithPreviousWord(
             const DictionaryStructureWithBufferPolicy *const dictionaryStructurePolicy,
             const DicNode *const prevWordLastDicNode, DicNode *const newRootDicNode);
@@ -46,10 +47,6 @@
     DISALLOW_IMPLICIT_CONSTRUCTORS(DicNodeUtils);
     // Max number of bigrams to look up
     static const int MAX_BIGRAMS_CONSIDERED_PER_CONTEXT = 500;
-
-    static int getBigramNodeProbability(
-            const DictionaryStructureWithBufferPolicy *const dictionaryStructurePolicy,
-            const DicNode *const dicNode, MultiBigramMap *const multiBigramMap);
 };
 } // namespace latinime
 #endif // LATINIME_DIC_NODE_UTILS_H
diff --git a/native/jni/src/suggest/core/dicnode/dic_node_vector.h b/native/jni/src/suggest/core/dicnode/dic_node_vector.h
index 54cde19..e6b7589 100644
--- a/native/jni/src/suggest/core/dicnode/dic_node_vector.h
+++ b/native/jni/src/suggest/core/dicnode/dic_node_vector.h
@@ -21,6 +21,7 @@
 
 #include "defines.h"
 #include "suggest/core/dicnode/dic_node.h"
+#include "utils/int_array_view.h"
 
 namespace latinime {
 
@@ -58,15 +59,11 @@
         mDicNodes.back().initAsPassingChild(dicNode);
     }
 
-    void pushLeavingChild(const DicNode *const dicNode, const int ptNodePos,
-            const int childrenPtNodeArrayPos, const int probability, const bool isTerminal,
-            const bool hasChildren, const bool isBlacklistedOrNotAWord,
-            const uint16_t mergedNodeCodePointCount, const int *const mergedNodeCodePoints) {
+    void pushLeavingChild(const DicNode *const dicNode, const int childrenPtNodeArrayPos,
+            const int wordId, const CodePointArrayView mergedCodePoints) {
         ASSERT(!mLock);
         mDicNodes.emplace_back();
-        mDicNodes.back().initAsChild(dicNode, ptNodePos, childrenPtNodeArrayPos, probability,
-                isTerminal, hasChildren, isBlacklistedOrNotAWord, mergedNodeCodePointCount,
-                mergedNodeCodePoints);
+        mDicNodes.back().initAsChild(dicNode, childrenPtNodeArrayPos, wordId, mergedCodePoints);
     }
 
     DicNode *operator[](const int id) {
diff --git a/native/jni/src/suggest/core/dicnode/internal/dic_node_properties.h b/native/jni/src/suggest/core/dicnode/internal/dic_node_properties.h
index 8202176..1b796b5 100644
--- a/native/jni/src/suggest/core/dicnode/internal/dic_node_properties.h
+++ b/native/jni/src/suggest/core/dicnode/internal/dic_node_properties.h
@@ -18,8 +18,10 @@
 #define LATINIME_DIC_NODE_PROPERTIES_H
 
 #include <cstdint>
+#include <cstdlib>
 
 #include "defines.h"
+#include "utils/int_array_view.h"
 
 namespace latinime {
 
@@ -29,84 +31,61 @@
 class DicNodeProperties {
  public:
     AK_FORCE_INLINE DicNodeProperties()
-            : mPtNodePos(NOT_A_DICT_POS), mChildrenPtNodeArrayPos(NOT_A_DICT_POS),
-              mProbability(NOT_A_PROBABILITY), mDicNodeCodePoint(NOT_A_CODE_POINT),
-              mIsTerminal(false), mHasChildrenPtNodes(false),
-              mIsBlacklistedOrNotAWord(false), mDepth(0), mLeavingDepth(0) {}
+            : mChildrenPtNodeArrayPos(NOT_A_DICT_POS), mDicNodeCodePoint(NOT_A_CODE_POINT),
+              mWordId(NOT_A_WORD_ID), mDepth(0), mLeavingDepth(0), mPrevWordCount(0) {}
 
     ~DicNodeProperties() {}
 
     // Should be called only once per DicNode is initialized.
-    void init(const int pos, const int childrenPos, const int nodeCodePoint, const int probability,
-            const bool isTerminal, const bool hasChildren, const bool isBlacklistedOrNotAWord,
-            const uint16_t depth, const uint16_t leavingDepth, const int *const prevWordsNodePos) {
-        mPtNodePos = pos;
+    void init(const int childrenPos, const int nodeCodePoint, const int wordId,
+            const uint16_t depth, const uint16_t leavingDepth, const WordIdArrayView prevWordIds) {
         mChildrenPtNodeArrayPos = childrenPos;
         mDicNodeCodePoint = nodeCodePoint;
-        mProbability = probability;
-        mIsTerminal = isTerminal;
-        mHasChildrenPtNodes = hasChildren;
-        mIsBlacklistedOrNotAWord = isBlacklistedOrNotAWord;
+        mWordId = wordId;
         mDepth = depth;
         mLeavingDepth = leavingDepth;
-        memmove(mPrevWordsTerminalPtNodePos, prevWordsNodePos, sizeof(mPrevWordsTerminalPtNodePos));
+        prevWordIds.copyToArray(&mPrevWordIds, 0 /* offset */);
+        mPrevWordCount = prevWordIds.size();
     }
 
     // Init for root with prevWordsPtNodePos which is used for n-gram
-    void init(const int rootPtNodeArrayPos, const int *const prevWordsNodePos) {
-        mPtNodePos = NOT_A_DICT_POS;
+    void init(const int rootPtNodeArrayPos, const WordIdArrayView prevWordIds) {
         mChildrenPtNodeArrayPos = rootPtNodeArrayPos;
         mDicNodeCodePoint = NOT_A_CODE_POINT;
-        mProbability = NOT_A_PROBABILITY;
-        mIsTerminal = false;
-        mHasChildrenPtNodes = true;
-        mIsBlacklistedOrNotAWord = false;
+        mWordId = NOT_A_WORD_ID;
         mDepth = 0;
         mLeavingDepth = 0;
-        memmove(mPrevWordsTerminalPtNodePos, prevWordsNodePos, sizeof(mPrevWordsTerminalPtNodePos));
+        prevWordIds.copyToArray(&mPrevWordIds, 0 /* offset */);
+        mPrevWordCount = prevWordIds.size();
     }
 
     void initByCopy(const DicNodeProperties *const dicNodeProp) {
-        mPtNodePos = dicNodeProp->mPtNodePos;
         mChildrenPtNodeArrayPos = dicNodeProp->mChildrenPtNodeArrayPos;
         mDicNodeCodePoint = dicNodeProp->mDicNodeCodePoint;
-        mProbability = dicNodeProp->mProbability;
-        mIsTerminal = dicNodeProp->mIsTerminal;
-        mHasChildrenPtNodes = dicNodeProp->mHasChildrenPtNodes;
-        mIsBlacklistedOrNotAWord = dicNodeProp->mIsBlacklistedOrNotAWord;
+        mWordId = dicNodeProp->mWordId;
         mDepth = dicNodeProp->mDepth;
         mLeavingDepth = dicNodeProp->mLeavingDepth;
-        memmove(mPrevWordsTerminalPtNodePos, dicNodeProp->mPrevWordsTerminalPtNodePos,
-                sizeof(mPrevWordsTerminalPtNodePos));
+        const WordIdArrayView prevWordIdArrayView = dicNodeProp->getPrevWordIds();
+        prevWordIdArrayView.copyToArray(&mPrevWordIds, 0 /* offset */);
+        mPrevWordCount = prevWordIdArrayView.size();
     }
 
     // Init as passing child
     void init(const DicNodeProperties *const dicNodeProp, const int codePoint) {
-        mPtNodePos = dicNodeProp->mPtNodePos;
         mChildrenPtNodeArrayPos = dicNodeProp->mChildrenPtNodeArrayPos;
         mDicNodeCodePoint = codePoint; // Overwrite the node char of a passing child
-        mProbability = dicNodeProp->mProbability;
-        mIsTerminal = dicNodeProp->mIsTerminal;
-        mHasChildrenPtNodes = dicNodeProp->mHasChildrenPtNodes;
-        mIsBlacklistedOrNotAWord = dicNodeProp->mIsBlacklistedOrNotAWord;
+        mWordId = dicNodeProp->mWordId;
         mDepth = dicNodeProp->mDepth + 1; // Increment the depth of a passing child
         mLeavingDepth = dicNodeProp->mLeavingDepth;
-        memmove(mPrevWordsTerminalPtNodePos, dicNodeProp->mPrevWordsTerminalPtNodePos,
-                sizeof(mPrevWordsTerminalPtNodePos));
-    }
-
-    int getPtNodePos() const {
-        return mPtNodePos;
+        const WordIdArrayView prevWordIdArrayView = dicNodeProp->getPrevWordIds();
+        prevWordIdArrayView.copyToArray(&mPrevWordIds, 0 /* offset */);
+        mPrevWordCount = prevWordIdArrayView.size();
     }
 
     int getChildrenPtNodeArrayPos() const {
         return mChildrenPtNodeArrayPos;
     }
 
-    int getProbability() const {
-        return mProbability;
-    }
-
     int getDicNodeCodePoint() const {
         return mDicNodeCodePoint;
     }
@@ -121,35 +100,32 @@
     }
 
     bool isTerminal() const {
-        return mIsTerminal;
+        return mWordId != NOT_A_WORD_ID;
     }
 
     bool hasChildren() const {
-        return mHasChildrenPtNodes || mDepth != mLeavingDepth;
+        return (mChildrenPtNodeArrayPos != NOT_A_DICT_POS) || mDepth != mLeavingDepth;
     }
 
-    bool isBlacklistedOrNotAWord() const {
-        return mIsBlacklistedOrNotAWord;
+    const WordIdArrayView getPrevWordIds() const {
+        return WordIdArrayView::fromArray(mPrevWordIds).limit(mPrevWordCount);
     }
 
-    const int *getPrevWordsTerminalPtNodePos() const {
-        return mPrevWordsTerminalPtNodePos;
+    int getWordId() const {
+        return mWordId;
     }
 
  private:
     // Caution!!!
     // Use a default copy constructor and an assign operator because shallow copies are ok
     // for this class
-    int mPtNodePos;
     int mChildrenPtNodeArrayPos;
-    int mProbability;
     int mDicNodeCodePoint;
-    bool mIsTerminal;
-    bool mHasChildrenPtNodes;
-    bool mIsBlacklistedOrNotAWord;
+    int mWordId;
     uint16_t mDepth;
     uint16_t mLeavingDepth;
-    int mPrevWordsTerminalPtNodePos[MAX_PREV_WORD_COUNT_FOR_N_GRAM];
+    WordIdArray<MAX_PREV_WORD_COUNT_FOR_N_GRAM> mPrevWordIds;
+    size_t mPrevWordCount;
 };
 } // namespace latinime
 #endif // LATINIME_DIC_NODE_PROPERTIES_H
diff --git a/native/jni/src/suggest/core/dicnode/internal/dic_node_state_scoring.h b/native/jni/src/suggest/core/dicnode/internal/dic_node_state_scoring.h
index c19d48e..3a54c25 100644
--- a/native/jni/src/suggest/core/dicnode/internal/dic_node_state_scoring.h
+++ b/native/jni/src/suggest/core/dicnode/internal/dic_node_state_scoring.h
@@ -103,8 +103,10 @@
         return getCompoundDistance(1.0f);
     }
 
-    float getCompoundDistance(const float languageWeight) const {
-        return mSpatialDistance + mLanguageDistance * languageWeight;
+    float getCompoundDistance(
+            const float weightOfLangModelVsSpatialModel) const {
+        return mSpatialDistance
+                + mLanguageDistance * weightOfLangModelVsSpatialModel;
     }
 
     float getNormalizedCompoundDistance() const {
diff --git a/native/jni/src/suggest/core/dictionary/binary_dictionary_bigrams_iterator.h b/native/jni/src/suggest/core/dictionary/binary_dictionary_bigrams_iterator.h
deleted file mode 100644
index 178b065..0000000
--- a/native/jni/src/suggest/core/dictionary/binary_dictionary_bigrams_iterator.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_BINARY_DICTIONARY_BIGRAMS_ITERATOR_H
-#define LATINIME_BINARY_DICTIONARY_BIGRAMS_ITERATOR_H
-
-#include "defines.h"
-#include "suggest/core/policy/dictionary_bigrams_structure_policy.h"
-
-namespace latinime {
-
-class BinaryDictionaryBigramsIterator {
- public:
-    // Empty iterator.
-    BinaryDictionaryBigramsIterator()
-           : mBigramsStructurePolicy(nullptr), mPos(NOT_A_DICT_POS),
-             mBigramPos(NOT_A_DICT_POS), mProbability(NOT_A_PROBABILITY), mHasNext(false) {}
-
-    BinaryDictionaryBigramsIterator(
-            const DictionaryBigramsStructurePolicy *const bigramsStructurePolicy, const int pos)
-            : mBigramsStructurePolicy(bigramsStructurePolicy), mPos(pos),
-              mBigramPos(NOT_A_DICT_POS), mProbability(NOT_A_PROBABILITY),
-              mHasNext(pos != NOT_A_DICT_POS) {}
-
-    BinaryDictionaryBigramsIterator(BinaryDictionaryBigramsIterator &&bigramsIterator)
-            : mBigramsStructurePolicy(bigramsIterator.mBigramsStructurePolicy),
-              mPos(bigramsIterator.mPos), mBigramPos(bigramsIterator.mBigramPos),
-              mProbability(bigramsIterator.mProbability), mHasNext(bigramsIterator.mHasNext) {}
-
-    AK_FORCE_INLINE bool hasNext() const {
-        return mHasNext;
-    }
-
-    AK_FORCE_INLINE void next() {
-        mBigramsStructurePolicy->getNextBigram(&mBigramPos, &mProbability, &mHasNext, &mPos);
-    }
-
-    AK_FORCE_INLINE int getProbability() const {
-        return mProbability;
-    }
-
-    AK_FORCE_INLINE int getBigramPos() const {
-        return mBigramPos;
-    }
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(BinaryDictionaryBigramsIterator);
-
-    const DictionaryBigramsStructurePolicy *const mBigramsStructurePolicy;
-    int mPos;
-    int mBigramPos;
-    int mProbability;
-    bool mHasNext;
-};
-} // namespace latinime
-#endif // LATINIME_BINARY_DICTIONARY_BIGRAMS_ITERATOR_H
diff --git a/native/jni/src/suggest/core/dictionary/binary_dictionary_shortcut_iterator.h b/native/jni/src/suggest/core/dictionary/binary_dictionary_shortcut_iterator.h
deleted file mode 100644
index 558e0a5..0000000
--- a/native/jni/src/suggest/core/dictionary/binary_dictionary_shortcut_iterator.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_BINARY_DICTIONARY_SHORTCUT_ITERATOR_H
-#define LATINIME_BINARY_DICTIONARY_SHORTCUT_ITERATOR_H
-
-#include "defines.h"
-#include "suggest/core/policy/dictionary_shortcuts_structure_policy.h"
-
-namespace latinime {
-
-class BinaryDictionaryShortcutIterator {
- public:
-    BinaryDictionaryShortcutIterator(
-            const DictionaryShortcutsStructurePolicy *const shortcutStructurePolicy,
-            const int shortcutPos)
-            : mShortcutStructurePolicy(shortcutStructurePolicy),
-              mPos(shortcutStructurePolicy->getStartPos(shortcutPos)),
-              mHasNextShortcutTarget(shortcutPos != NOT_A_DICT_POS) {}
-
-    AK_FORCE_INLINE bool hasNextShortcutTarget() const {
-        return mHasNextShortcutTarget;
-    }
-
-    // Gets the shortcut target itself as an int string and put it to outTarget, put its length
-    // to outTargetLength, put whether it is whitelist to outIsWhitelist.
-    AK_FORCE_INLINE void nextShortcutTarget(
-            const int maxDepth, int *const outTarget, int *const outTargetLength,
-            bool *const outIsWhitelist) {
-        mShortcutStructurePolicy->getNextShortcut(maxDepth, outTarget, outTargetLength,
-                outIsWhitelist, &mHasNextShortcutTarget, &mPos);
-    }
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(BinaryDictionaryShortcutIterator);
-
-    const DictionaryShortcutsStructurePolicy *const mShortcutStructurePolicy;
-    int mPos;
-    bool mHasNextShortcutTarget;
-};
-} // namespace latinime
-#endif // LATINIME_BINARY_DICTIONARY_SHORTCUT_ITERATOR_H
diff --git a/native/jni/src/suggest/core/dictionary/dictionary.cpp b/native/jni/src/suggest/core/dictionary/dictionary.cpp
index d625739..5c9a139 100644
--- a/native/jni/src/suggest/core/dictionary/dictionary.cpp
+++ b/native/jni/src/suggest/core/dictionary/dictionary.cpp
@@ -19,15 +19,16 @@
 #include "suggest/core/dictionary/dictionary.h"
 
 #include "defines.h"
+#include "dictionary/interface/dictionary_header_structure_policy.h"
+#include "dictionary/property/ngram_context.h"
 #include "suggest/core/dictionary/dictionary_utils.h"
-#include "suggest/core/policy/dictionary_header_structure_policy.h"
 #include "suggest/core/result/suggestion_results.h"
 #include "suggest/core/session/dic_traverse_session.h"
-#include "suggest/core/session/prev_words_info.h"
 #include "suggest/core/suggest.h"
 #include "suggest/core/suggest_options.h"
 #include "suggest/policyimpl/gesture/gesture_suggest_policy_factory.h"
 #include "suggest/policyimpl/typing/typing_suggest_policy_factory.h"
+#include "utils/int_array_view.h"
 #include "utils/log_utils.h"
 #include "utils/time_keeper.h"
 
@@ -45,88 +46,87 @@
 
 void Dictionary::getSuggestions(ProximityInfo *proximityInfo, DicTraverseSession *traverseSession,
         int *xcoordinates, int *ycoordinates, int *times, int *pointerIds, int *inputCodePoints,
-        int inputSize, const PrevWordsInfo *const prevWordsInfo,
-        const SuggestOptions *const suggestOptions, const float languageWeight,
+        int inputSize, const NgramContext *const ngramContext,
+        const SuggestOptions *const suggestOptions, const float weightOfLangModelVsSpatialModel,
         SuggestionResults *const outSuggestionResults) const {
     TimeKeeper::setCurrentTime();
-    traverseSession->init(this, prevWordsInfo, suggestOptions);
+    traverseSession->init(this, ngramContext, suggestOptions);
     const auto &suggest = suggestOptions->isGesture() ? mGestureSuggest : mTypingSuggest;
     suggest->getSuggestions(proximityInfo, traverseSession, xcoordinates,
             ycoordinates, times, pointerIds, inputCodePoints, inputSize,
-            languageWeight, outSuggestionResults);
-    if (DEBUG_DICT) {
-        outSuggestionResults->dumpSuggestions();
-    }
+            weightOfLangModelVsSpatialModel, outSuggestionResults);
 }
 
 Dictionary::NgramListenerForPrediction::NgramListenerForPrediction(
-        const PrevWordsInfo *const prevWordsInfo, SuggestionResults *const suggestionResults,
+        const NgramContext *const ngramContext, const WordIdArrayView prevWordIds,
+        SuggestionResults *const suggestionResults,
         const DictionaryStructureWithBufferPolicy *const dictStructurePolicy)
-    : mPrevWordsInfo(prevWordsInfo), mSuggestionResults(suggestionResults),
-      mDictStructurePolicy(dictStructurePolicy) {}
+    : mNgramContext(ngramContext), mPrevWordIds(prevWordIds),
+      mSuggestionResults(suggestionResults), mDictStructurePolicy(dictStructurePolicy) {}
 
 void Dictionary::NgramListenerForPrediction::onVisitEntry(const int ngramProbability,
-        const int targetPtNodePos) {
-    if (targetPtNodePos == NOT_A_DICT_POS) {
+        const int targetWordId) {
+    if (targetWordId == NOT_A_WORD_ID) {
         return;
     }
-    if (mPrevWordsInfo->isNthPrevWordBeginningOfSentence(1 /* n */)
+    if (mNgramContext->isNthPrevWordBeginningOfSentence(1 /* n */)
             && ngramProbability == NOT_A_PROBABILITY) {
         return;
     }
     int targetWordCodePoints[MAX_WORD_LENGTH];
-    int unigramProbability = 0;
-    const int codePointCount = mDictStructurePolicy->
-            getCodePointsAndProbabilityAndReturnCodePointCount(targetPtNodePos,
-                    MAX_WORD_LENGTH, targetWordCodePoints, &unigramProbability);
+    const int codePointCount = mDictStructurePolicy->getCodePointsAndReturnCodePointCount(
+            targetWordId, MAX_WORD_LENGTH, targetWordCodePoints);
     if (codePointCount <= 0) {
         return;
     }
-    const int probability = mDictStructurePolicy->getProbability(
-            unigramProbability, ngramProbability);
-    mSuggestionResults->addPrediction(targetWordCodePoints, codePointCount, probability);
+    const WordAttributes wordAttributes = mDictStructurePolicy->getWordAttributesInContext(
+            mPrevWordIds, targetWordId, nullptr /* multiBigramMap */);
+    if (wordAttributes.getProbability() == NOT_A_PROBABILITY) {
+        return;
+    }
+    mSuggestionResults->addPrediction(targetWordCodePoints, codePointCount,
+            wordAttributes.getProbability());
 }
 
-void Dictionary::getPredictions(const PrevWordsInfo *const prevWordsInfo,
+void Dictionary::getPredictions(const NgramContext *const ngramContext,
         SuggestionResults *const outSuggestionResults) const {
     TimeKeeper::setCurrentTime();
-    NgramListenerForPrediction listener(prevWordsInfo, outSuggestionResults,
-            mDictionaryStructureWithBufferPolicy.get());
-    int prevWordsPtNodePos[MAX_PREV_WORD_COUNT_FOR_N_GRAM];
-    prevWordsInfo->getPrevWordsTerminalPtNodePos(
-            mDictionaryStructureWithBufferPolicy.get(), prevWordsPtNodePos,
+    WordIdArray<MAX_PREV_WORD_COUNT_FOR_N_GRAM> prevWordIdArray;
+    const WordIdArrayView prevWordIds = ngramContext->getPrevWordIds(
+            mDictionaryStructureWithBufferPolicy.get(), &prevWordIdArray,
             true /* tryLowerCaseSearch */);
-    mDictionaryStructureWithBufferPolicy->iterateNgramEntries(prevWordsPtNodePos, &listener);
+    NgramListenerForPrediction listener(ngramContext, prevWordIds, outSuggestionResults,
+            mDictionaryStructureWithBufferPolicy.get());
+    mDictionaryStructureWithBufferPolicy->iterateNgramEntries(prevWordIds, &listener);
 }
 
-int Dictionary::getProbability(const int *word, int length) const {
-    return getNgramProbability(nullptr /* prevWordsInfo */, word, length);
+int Dictionary::getProbability(const CodePointArrayView codePoints) const {
+    return getNgramProbability(nullptr /* ngramContext */, codePoints);
 }
 
-int Dictionary::getMaxProbabilityOfExactMatches(const int *word, int length) const {
+int Dictionary::getMaxProbabilityOfExactMatches(const CodePointArrayView codePoints) const {
     TimeKeeper::setCurrentTime();
     return DictionaryUtils::getMaxProbabilityOfExactMatches(
-            mDictionaryStructureWithBufferPolicy.get(), word, length);
+            mDictionaryStructureWithBufferPolicy.get(), codePoints);
 }
 
-int Dictionary::getNgramProbability(const PrevWordsInfo *const prevWordsInfo, const int *word,
-        int length) const {
+int Dictionary::getNgramProbability(const NgramContext *const ngramContext,
+        const CodePointArrayView codePoints) const {
     TimeKeeper::setCurrentTime();
-    int nextWordPos = mDictionaryStructureWithBufferPolicy->getTerminalPtNodePositionOfWord(word,
-            length, false /* forceLowerCaseSearch */);
-    if (NOT_A_DICT_POS == nextWordPos) return NOT_A_PROBABILITY;
-    if (!prevWordsInfo) {
-        return getDictionaryStructurePolicy()->getProbabilityOfPtNode(
-                nullptr /* prevWordsPtNodePos */, nextWordPos);
+    const int wordId = mDictionaryStructureWithBufferPolicy->getWordId(codePoints,
+            false /* forceLowerCaseSearch */);
+    if (wordId == NOT_A_WORD_ID) return NOT_A_PROBABILITY;
+    if (!ngramContext) {
+        return getDictionaryStructurePolicy()->getProbabilityOfWord(WordIdArrayView(), wordId);
     }
-    int prevWordsPtNodePos[MAX_PREV_WORD_COUNT_FOR_N_GRAM];
-    prevWordsInfo->getPrevWordsTerminalPtNodePos(
-            mDictionaryStructureWithBufferPolicy.get(), prevWordsPtNodePos,
+    WordIdArray<MAX_PREV_WORD_COUNT_FOR_N_GRAM> prevWordIdArray;
+    const WordIdArrayView prevWordIds = ngramContext->getPrevWordIds(
+            mDictionaryStructureWithBufferPolicy.get(), &prevWordIdArray,
             true /* tryLowerCaseSearch */);
-    return getDictionaryStructurePolicy()->getProbabilityOfPtNode(prevWordsPtNodePos, nextWordPos);
+    return getDictionaryStructurePolicy()->getProbabilityOfWord(prevWordIds, wordId);
 }
 
-bool Dictionary::addUnigramEntry(const int *const word, const int length,
+bool Dictionary::addUnigramEntry(const CodePointArrayView codePoints,
         const UnigramProperty *const unigramProperty) {
     if (unigramProperty->representsBeginningOfSentence()
             && !mDictionaryStructureWithBufferPolicy->getHeaderStructurePolicy()
@@ -135,24 +135,31 @@
         return false;
     }
     TimeKeeper::setCurrentTime();
-    return mDictionaryStructureWithBufferPolicy->addUnigramEntry(word, length, unigramProperty);
+    return mDictionaryStructureWithBufferPolicy->addUnigramEntry(codePoints, unigramProperty);
 }
 
-bool Dictionary::removeUnigramEntry(const int *const codePoints, const int codePointCount) {
+bool Dictionary::removeUnigramEntry(const CodePointArrayView codePoints) {
     TimeKeeper::setCurrentTime();
-    return mDictionaryStructureWithBufferPolicy->removeUnigramEntry(codePoints, codePointCount);
+    return mDictionaryStructureWithBufferPolicy->removeUnigramEntry(codePoints);
 }
 
-bool Dictionary::addNgramEntry(const PrevWordsInfo *const prevWordsInfo,
-        const BigramProperty *const bigramProperty) {
+bool Dictionary::addNgramEntry(const NgramProperty *const ngramProperty) {
     TimeKeeper::setCurrentTime();
-    return mDictionaryStructureWithBufferPolicy->addNgramEntry(prevWordsInfo, bigramProperty);
+    return mDictionaryStructureWithBufferPolicy->addNgramEntry(ngramProperty);
 }
 
-bool Dictionary::removeNgramEntry(const PrevWordsInfo *const prevWordsInfo,
-        const int *const word, const int length) {
+bool Dictionary::removeNgramEntry(const NgramContext *const ngramContext,
+        const CodePointArrayView codePoints) {
     TimeKeeper::setCurrentTime();
-    return mDictionaryStructureWithBufferPolicy->removeNgramEntry(prevWordsInfo, word, length);
+    return mDictionaryStructureWithBufferPolicy->removeNgramEntry(ngramContext, codePoints);
+}
+
+bool Dictionary::updateEntriesForWordWithNgramContext(const NgramContext *const ngramContext,
+        const CodePointArrayView codePoints, const bool isValidWord,
+        const HistoricalInfo historicalInfo) {
+    TimeKeeper::setCurrentTime();
+    return mDictionaryStructureWithBufferPolicy->updateEntriesForWordWithNgramContext(ngramContext,
+            codePoints, isValidWord, historicalInfo);
 }
 
 bool Dictionary::flush(const char *const filePath) {
@@ -177,11 +184,9 @@
             maxResultLength);
 }
 
-const WordProperty Dictionary::getWordProperty(const int *const codePoints,
-        const int codePointCount) {
+const WordProperty Dictionary::getWordProperty(const CodePointArrayView codePoints) {
     TimeKeeper::setCurrentTime();
-    return mDictionaryStructureWithBufferPolicy->getWordProperty(
-            codePoints, codePointCount);
+    return mDictionaryStructureWithBufferPolicy->getWordProperty(codePoints);
 }
 
 int Dictionary::getNextWordAndNextToken(const int token, int *const outCodePoints,
diff --git a/native/jni/src/suggest/core/dictionary/dictionary.h b/native/jni/src/suggest/core/dictionary/dictionary.h
index 732d3b1..9e224eb 100644
--- a/native/jni/src/suggest/core/dictionary/dictionary.h
+++ b/native/jni/src/suggest/core/dictionary/dictionary.h
@@ -21,17 +21,19 @@
 
 #include "defines.h"
 #include "jni.h"
-#include "suggest/core/dictionary/ngram_listener.h"
-#include "suggest/core/dictionary/property/word_property.h"
-#include "suggest/core/policy/dictionary_header_structure_policy.h"
-#include "suggest/core/policy/dictionary_structure_with_buffer_policy.h"
+#include "dictionary/interface/dictionary_header_structure_policy.h"
+#include "dictionary/interface/dictionary_structure_with_buffer_policy.h"
+#include "dictionary/interface/ngram_listener.h"
+#include "dictionary/property/historical_info.h"
+#include "dictionary/property/word_property.h"
 #include "suggest/core/suggest_interface.h"
+#include "utils/int_array_view.h"
 
 namespace latinime {
 
 class DictionaryStructureWithBufferPolicy;
 class DicTraverseSession;
-class PrevWordsInfo;
+class NgramContext;
 class ProximityInfo;
 class SuggestionResults;
 class SuggestOptions;
@@ -58,36 +60,40 @@
     static const int KIND_FLAG_POSSIBLY_OFFENSIVE = 0x80000000;
     static const int KIND_FLAG_EXACT_MATCH = 0x40000000;
     static const int KIND_FLAG_EXACT_MATCH_WITH_INTENTIONAL_OMISSION = 0x20000000;
+    static const int KIND_FLAG_APPROPRIATE_FOR_AUTOCORRECTION = 0x10000000;
 
     Dictionary(JNIEnv *env, DictionaryStructureWithBufferPolicy::StructurePolicyPtr
             dictionaryStructureWithBufferPolicy);
 
     void getSuggestions(ProximityInfo *proximityInfo, DicTraverseSession *traverseSession,
             int *xcoordinates, int *ycoordinates, int *times, int *pointerIds, int *inputCodePoints,
-            int inputSize, const PrevWordsInfo *const prevWordsInfo,
-            const SuggestOptions *const suggestOptions, const float languageWeight,
+            int inputSize, const NgramContext *const ngramContext,
+            const SuggestOptions *const suggestOptions, const float weightOfLangModelVsSpatialModel,
             SuggestionResults *const outSuggestionResults) const;
 
-    void getPredictions(const PrevWordsInfo *const prevWordsInfo,
+    void getPredictions(const NgramContext *const ngramContext,
             SuggestionResults *const outSuggestionResults) const;
 
-    int getProbability(const int *word, int length) const;
+    int getProbability(const CodePointArrayView codePoints) const;
 
-    int getMaxProbabilityOfExactMatches(const int *word, int length) const;
+    int getMaxProbabilityOfExactMatches(const CodePointArrayView codePoints) const;
 
-    int getNgramProbability(const PrevWordsInfo *const prevWordsInfo,
-            const int *word, int length) const;
+    int getNgramProbability(const NgramContext *const ngramContext,
+            const CodePointArrayView codePoints) const;
 
-    bool addUnigramEntry(const int *const codePoints, const int codePointCount,
+    bool addUnigramEntry(const CodePointArrayView codePoints,
             const UnigramProperty *const unigramProperty);
 
-    bool removeUnigramEntry(const int *const codePoints, const int codePointCount);
+    bool removeUnigramEntry(const CodePointArrayView codePoints);
 
-    bool addNgramEntry(const PrevWordsInfo *const prevWordsInfo,
-            const BigramProperty *const bigramProperty);
+    bool addNgramEntry(const NgramProperty *const ngramProperty);
 
-    bool removeNgramEntry(const PrevWordsInfo *const prevWordsInfo, const int *const word,
-            const int length);
+    bool removeNgramEntry(const NgramContext *const ngramContext,
+            const CodePointArrayView codePoints);
+
+    bool updateEntriesForWordWithNgramContext(const NgramContext *const ngramContext,
+            const CodePointArrayView codePoints, const bool isValidWord,
+            const HistoricalInfo historicalInfo);
 
     bool flush(const char *const filePath);
 
@@ -98,7 +104,7 @@
     void getProperty(const char *const query, const int queryLength, char *const outResult,
             const int maxResultLength);
 
-    const WordProperty getWordProperty(const int *const codePoints, const int codePointCount);
+    const WordProperty getWordProperty(const CodePointArrayView codePoints);
 
     // Method to iterate all words in the dictionary.
     // The returned token has to be used to get the next word. If token is 0, this method newly
@@ -117,15 +123,16 @@
 
     class NgramListenerForPrediction : public NgramListener {
      public:
-        NgramListenerForPrediction(const PrevWordsInfo *const prevWordsInfo,
-                SuggestionResults *const suggestionResults,
+        NgramListenerForPrediction(const NgramContext *const ngramContext,
+                const WordIdArrayView prevWordIds, SuggestionResults *const suggestionResults,
                 const DictionaryStructureWithBufferPolicy *const dictStructurePolicy);
-        virtual void onVisitEntry(const int ngramProbability, const int targetPtNodePos);
+        virtual void onVisitEntry(const int ngramProbability, const int targetWordId);
 
      private:
         DISALLOW_IMPLICIT_CONSTRUCTORS(NgramListenerForPrediction);
 
-        const PrevWordsInfo *const mPrevWordsInfo;
+        const NgramContext *const mNgramContext;
+        const WordIdArrayView mPrevWordIds;
         SuggestionResults *const mSuggestionResults;
         const DictionaryStructureWithBufferPolicy *const mDictStructurePolicy;
     };
diff --git a/native/jni/src/suggest/core/dictionary/dictionary_utils.cpp b/native/jni/src/suggest/core/dictionary/dictionary_utils.cpp
index b94966c..7de5500 100644
--- a/native/jni/src/suggest/core/dictionary/dictionary_utils.cpp
+++ b/native/jni/src/suggest/core/dictionary/dictionary_utils.cpp
@@ -16,39 +16,40 @@
 
 #include "suggest/core/dictionary/dictionary_utils.h"
 
+#include "dictionary/interface/dictionary_structure_with_buffer_policy.h"
+#include "dictionary/property/ngram_context.h"
 #include "suggest/core/dicnode/dic_node.h"
 #include "suggest/core/dicnode/dic_node_priority_queue.h"
 #include "suggest/core/dicnode/dic_node_vector.h"
 #include "suggest/core/dictionary/dictionary.h"
 #include "suggest/core/dictionary/digraph_utils.h"
-#include "suggest/core/session/prev_words_info.h"
-#include "suggest/core/policy/dictionary_structure_with_buffer_policy.h"
+#include "utils/int_array_view.h"
 
 namespace latinime {
 
 /* static */ int DictionaryUtils::getMaxProbabilityOfExactMatches(
         const DictionaryStructureWithBufferPolicy *const dictionaryStructurePolicy,
-        const int *const codePoints, const int codePointCount) {
+        const CodePointArrayView codePoints) {
     std::vector<DicNode> current;
     std::vector<DicNode> next;
 
-    // No prev words information.
-    PrevWordsInfo emptyPrevWordsInfo;
-    int prevWordsPtNodePos[MAX_PREV_WORD_COUNT_FOR_N_GRAM];
-    emptyPrevWordsInfo.getPrevWordsTerminalPtNodePos(dictionaryStructurePolicy,
-            prevWordsPtNodePos, false /* tryLowerCaseSearch */);
+    // No ngram context.
+    NgramContext emptyNgramContext;
+    WordIdArray<MAX_PREV_WORD_COUNT_FOR_N_GRAM> prevWordIdArray;
+    const WordIdArrayView prevWordIds = emptyNgramContext.getPrevWordIds(
+            dictionaryStructurePolicy, &prevWordIdArray, false /* tryLowerCaseSearch */);
     current.emplace_back();
-    DicNodeUtils::initAsRoot(dictionaryStructurePolicy, prevWordsPtNodePos, &current.front());
-    for (int i = 0; i < codePointCount; ++i) {
+    DicNodeUtils::initAsRoot(dictionaryStructurePolicy, prevWordIds, &current.front());
+    for (const int codePoint : codePoints) {
         // The base-lower input is used to ignore case errors and accent errors.
-        const int codePoint = CharUtils::toBaseLowerCase(codePoints[i]);
+        const int baseLowerCodePoint = CharUtils::toBaseLowerCase(codePoint);
         for (const DicNode &dicNode : current) {
-            if (dicNode.isInDigraph() && dicNode.getNodeCodePoint() == codePoint) {
+            if (dicNode.isInDigraph() && dicNode.getNodeCodePoint() == baseLowerCodePoint) {
                 next.emplace_back(dicNode);
                 next.back().advanceDigraphIndex();
                 continue;
             }
-            processChildDicNodes(dictionaryStructurePolicy, codePoint, &dicNode, &next);
+            processChildDicNodes(dictionaryStructurePolicy, baseLowerCodePoint, &dicNode, &next);
         }
         current.clear();
         current.swap(next);
@@ -59,8 +60,11 @@
         if (!dicNode.isTerminalDicNode()) {
             continue;
         }
+        const WordAttributes wordAttributes =
+                dictionaryStructurePolicy->getWordAttributesInContext(dicNode.getPrevWordIds(),
+                        dicNode.getWordId(), nullptr /* multiBigramMap */);
         // dicNode can contain case errors, accent errors, intentional omissions or digraphs.
-        maxProbability = std::max(maxProbability, dicNode.getProbability());
+        maxProbability = std::max(maxProbability, wordAttributes.getProbability());
     }
     return maxProbability;
 }
diff --git a/native/jni/src/suggest/core/dictionary/dictionary_utils.h b/native/jni/src/suggest/core/dictionary/dictionary_utils.h
index 358ebf6..4dd21c9 100644
--- a/native/jni/src/suggest/core/dictionary/dictionary_utils.h
+++ b/native/jni/src/suggest/core/dictionary/dictionary_utils.h
@@ -20,6 +20,7 @@
 #include <vector>
 
 #include "defines.h"
+#include "utils/int_array_view.h"
 
 namespace latinime {
 
@@ -30,7 +31,7 @@
  public:
     static int getMaxProbabilityOfExactMatches(
             const DictionaryStructureWithBufferPolicy *const dictionaryStructurePolicy,
-            const int *const codePoints, const int codePointCount);
+            const CodePointArrayView codePoints);
 
  private:
     DISALLOW_IMPLICIT_CONSTRUCTORS(DictionaryUtils);
diff --git a/native/jni/src/suggest/core/dictionary/digraph_utils.cpp b/native/jni/src/suggest/core/dictionary/digraph_utils.cpp
index bb2ce50..4d68f62 100644
--- a/native/jni/src/suggest/core/dictionary/digraph_utils.cpp
+++ b/native/jni/src/suggest/core/dictionary/digraph_utils.cpp
@@ -19,7 +19,7 @@
 #include <cstdlib>
 
 #include "defines.h"
-#include "suggest/core/policy/dictionary_header_structure_policy.h"
+#include "dictionary/interface/dictionary_header_structure_policy.h"
 #include "utils/char_utils.h"
 
 namespace latinime {
diff --git a/native/jni/src/suggest/core/dictionary/error_type_utils.cpp b/native/jni/src/suggest/core/dictionary/error_type_utils.cpp
index b6bf7a9..61093e1 100644
--- a/native/jni/src/suggest/core/dictionary/error_type_utils.cpp
+++ b/native/jni/src/suggest/core/dictionary/error_type_utils.cpp
@@ -19,17 +19,20 @@
 namespace latinime {
 
 const ErrorTypeUtils::ErrorType ErrorTypeUtils::NOT_AN_ERROR = 0x0;
-const ErrorTypeUtils::ErrorType ErrorTypeUtils::MATCH_WITH_CASE_ERROR = 0x1;
-const ErrorTypeUtils::ErrorType ErrorTypeUtils::MATCH_WITH_ACCENT_ERROR = 0x2;
-const ErrorTypeUtils::ErrorType ErrorTypeUtils::MATCH_WITH_DIGRAPH = 0x4;
-const ErrorTypeUtils::ErrorType ErrorTypeUtils::INTENTIONAL_OMISSION = 0x8;
-const ErrorTypeUtils::ErrorType ErrorTypeUtils::EDIT_CORRECTION = 0x10;
-const ErrorTypeUtils::ErrorType ErrorTypeUtils::PROXIMITY_CORRECTION = 0x20;
-const ErrorTypeUtils::ErrorType ErrorTypeUtils::COMPLETION = 0x40;
-const ErrorTypeUtils::ErrorType ErrorTypeUtils::NEW_WORD = 0x80;
+const ErrorTypeUtils::ErrorType ErrorTypeUtils::MATCH_WITH_WRONG_CASE = 0x1;
+const ErrorTypeUtils::ErrorType ErrorTypeUtils::MATCH_WITH_MISSING_ACCENT = 0x2;
+const ErrorTypeUtils::ErrorType ErrorTypeUtils::MATCH_WITH_MISSING_EXPLICIT_ACCENT = 0x4;
+const ErrorTypeUtils::ErrorType ErrorTypeUtils::MATCH_WITH_WRONG_ACCENT = 0x8;
+const ErrorTypeUtils::ErrorType ErrorTypeUtils::MATCH_WITH_DIGRAPH = 0x10;
+const ErrorTypeUtils::ErrorType ErrorTypeUtils::INTENTIONAL_OMISSION = 0x20;
+const ErrorTypeUtils::ErrorType ErrorTypeUtils::EDIT_CORRECTION = 0x40;
+const ErrorTypeUtils::ErrorType ErrorTypeUtils::PROXIMITY_CORRECTION = 0x80;
+const ErrorTypeUtils::ErrorType ErrorTypeUtils::COMPLETION = 0x100;
+const ErrorTypeUtils::ErrorType ErrorTypeUtils::NEW_WORD = 0x200;
 
 const ErrorTypeUtils::ErrorType ErrorTypeUtils::ERRORS_TREATED_AS_AN_EXACT_MATCH =
-        NOT_AN_ERROR | MATCH_WITH_CASE_ERROR | MATCH_WITH_ACCENT_ERROR | MATCH_WITH_DIGRAPH;
+        NOT_AN_ERROR | MATCH_WITH_WRONG_CASE | MATCH_WITH_MISSING_ACCENT | MATCH_WITH_DIGRAPH;
+const ErrorTypeUtils::ErrorType ErrorTypeUtils::ERRORS_TREATED_AS_A_PERFECT_MATCH = NOT_AN_ERROR;
 
 const ErrorTypeUtils::ErrorType
         ErrorTypeUtils::ERRORS_TREATED_AS_AN_EXACT_MATCH_WITH_INTENTIONAL_OMISSION =
diff --git a/native/jni/src/suggest/core/dictionary/error_type_utils.h b/native/jni/src/suggest/core/dictionary/error_type_utils.h
index e3e76b2..75111ba 100644
--- a/native/jni/src/suggest/core/dictionary/error_type_utils.h
+++ b/native/jni/src/suggest/core/dictionary/error_type_utils.h
@@ -30,8 +30,10 @@
     typedef uint32_t ErrorType;
 
     static const ErrorType NOT_AN_ERROR;
-    static const ErrorType MATCH_WITH_CASE_ERROR;
-    static const ErrorType MATCH_WITH_ACCENT_ERROR;
+    static const ErrorType MATCH_WITH_WRONG_CASE;
+    static const ErrorType MATCH_WITH_MISSING_ACCENT;
+    static const ErrorType MATCH_WITH_MISSING_EXPLICIT_ACCENT;
+    static const ErrorType MATCH_WITH_WRONG_ACCENT;
     static const ErrorType MATCH_WITH_DIGRAPH;
     // Treat error as an intentional omission when the CorrectionType is omission and the node can
     // be intentional omission.
@@ -51,11 +53,19 @@
         return (containedErrorTypes & ~ERRORS_TREATED_AS_AN_EXACT_MATCH) == 0;
     }
 
+    static bool isPerfectMatch(const ErrorType containedErrorTypes) {
+        return (containedErrorTypes & ~ERRORS_TREATED_AS_A_PERFECT_MATCH) == 0;
+    }
+
     static bool isExactMatchWithIntentionalOmission(const ErrorType containedErrorTypes) {
         return (containedErrorTypes
                 & ~ERRORS_TREATED_AS_AN_EXACT_MATCH_WITH_INTENTIONAL_OMISSION) == 0;
     }
 
+    static bool isMissingExplicitAccent(const ErrorType errorType) {
+        return (errorType & MATCH_WITH_MISSING_EXPLICIT_ACCENT) != 0;
+    }
+
     static bool isEditCorrectionError(const ErrorType errorType) {
         return (errorType & EDIT_CORRECTION) != 0;
     }
@@ -72,6 +82,7 @@
     DISALLOW_IMPLICIT_CONSTRUCTORS(ErrorTypeUtils);
 
     static const ErrorType ERRORS_TREATED_AS_AN_EXACT_MATCH;
+    static const ErrorType ERRORS_TREATED_AS_A_PERFECT_MATCH;
     static const ErrorType ERRORS_TREATED_AS_AN_EXACT_MATCH_WITH_INTENTIONAL_OMISSION;
 };
 } // namespace latinime
diff --git a/native/jni/src/suggest/core/dictionary/multi_bigram_map.cpp b/native/jni/src/suggest/core/dictionary/multi_bigram_map.cpp
deleted file mode 100644
index 91f33a8..0000000
--- a/native/jni/src/suggest/core/dictionary/multi_bigram_map.cpp
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/core/dictionary/multi_bigram_map.h"
-
-#include <cstddef>
-#include <unordered_map>
-
-namespace latinime {
-
-// Max number of bigram maps (previous word contexts) to be cached. Increasing this number
-// could improve bigram lookup speed for multi-word suggestions, but at the cost of more memory
-// usage. Also, there are diminishing returns since the most frequently used bigrams are
-// typically near the beginning of the input and are thus the first ones to be cached. Note
-// that these bigrams are reset for each new composing word.
-const size_t MultiBigramMap::MAX_CACHED_PREV_WORDS_IN_BIGRAM_MAP = 25;
-
-// Most common previous word contexts currently have 100 bigrams
-const int MultiBigramMap::BigramMap::DEFAULT_HASH_MAP_SIZE_FOR_EACH_BIGRAM_MAP = 100;
-
-// Look up the bigram probability for the given word pair from the cached bigram maps.
-// Also caches the bigrams if there is space remaining and they have not been cached already.
-int MultiBigramMap::getBigramProbability(
-        const DictionaryStructureWithBufferPolicy *const structurePolicy,
-        const int *const prevWordsPtNodePos, const int nextWordPosition,
-        const int unigramProbability) {
-    if (!prevWordsPtNodePos || prevWordsPtNodePos[0] == NOT_A_DICT_POS) {
-        return structurePolicy->getProbability(unigramProbability, NOT_A_PROBABILITY);
-    }
-    std::unordered_map<int, BigramMap>::const_iterator mapPosition =
-            mBigramMaps.find(prevWordsPtNodePos[0]);
-    if (mapPosition != mBigramMaps.end()) {
-        return mapPosition->second.getBigramProbability(structurePolicy, nextWordPosition,
-                unigramProbability);
-    }
-    if (mBigramMaps.size() < MAX_CACHED_PREV_WORDS_IN_BIGRAM_MAP) {
-        addBigramsForWordPosition(structurePolicy, prevWordsPtNodePos);
-        return mBigramMaps[prevWordsPtNodePos[0]].getBigramProbability(structurePolicy,
-                nextWordPosition, unigramProbability);
-    }
-    return readBigramProbabilityFromBinaryDictionary(structurePolicy, prevWordsPtNodePos,
-            nextWordPosition, unigramProbability);
-}
-
-void MultiBigramMap::BigramMap::init(
-        const DictionaryStructureWithBufferPolicy *const structurePolicy,
-        const int *const prevWordsPtNodePos) {
-    structurePolicy->iterateNgramEntries(prevWordsPtNodePos, this /* listener */);
-}
-
-int MultiBigramMap::BigramMap::getBigramProbability(
-        const DictionaryStructureWithBufferPolicy *const structurePolicy,
-        const int nextWordPosition, const int unigramProbability) const {
-    int bigramProbability = NOT_A_PROBABILITY;
-    if (mBloomFilter.isInFilter(nextWordPosition)) {
-        const std::unordered_map<int, int>::const_iterator bigramProbabilityIt =
-                mBigramMap.find(nextWordPosition);
-        if (bigramProbabilityIt != mBigramMap.end()) {
-            bigramProbability = bigramProbabilityIt->second;
-        }
-    }
-    return structurePolicy->getProbability(unigramProbability, bigramProbability);
-}
-
-void MultiBigramMap::BigramMap::onVisitEntry(const int ngramProbability,
-        const int targetPtNodePos) {
-    if (targetPtNodePos == NOT_A_DICT_POS) {
-        return;
-    }
-    mBigramMap[targetPtNodePos] = ngramProbability;
-    mBloomFilter.setInFilter(targetPtNodePos);
-}
-
-void MultiBigramMap::addBigramsForWordPosition(
-        const DictionaryStructureWithBufferPolicy *const structurePolicy,
-        const int *const prevWordsPtNodePos) {
-    if (prevWordsPtNodePos) {
-        mBigramMaps[prevWordsPtNodePos[0]].init(structurePolicy, prevWordsPtNodePos);
-    }
-}
-
-int MultiBigramMap::readBigramProbabilityFromBinaryDictionary(
-        const DictionaryStructureWithBufferPolicy *const structurePolicy,
-        const int *const prevWordsPtNodePos, const int nextWordPosition,
-        const int unigramProbability) {
-    const int bigramProbability = structurePolicy->getProbabilityOfPtNode(prevWordsPtNodePos,
-            nextWordPosition);
-    if (bigramProbability != NOT_A_PROBABILITY) {
-        return bigramProbability;
-    }
-    return structurePolicy->getProbability(unigramProbability, NOT_A_PROBABILITY);
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/core/dictionary/multi_bigram_map.h b/native/jni/src/suggest/core/dictionary/multi_bigram_map.h
deleted file mode 100644
index ad36dde..0000000
--- a/native/jni/src/suggest/core/dictionary/multi_bigram_map.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_MULTI_BIGRAM_MAP_H
-#define LATINIME_MULTI_BIGRAM_MAP_H
-
-#include <cstddef>
-#include <unordered_map>
-
-#include "defines.h"
-#include "suggest/core/dictionary/binary_dictionary_bigrams_iterator.h"
-#include "suggest/core/dictionary/bloom_filter.h"
-#include "suggest/core/dictionary/ngram_listener.h"
-#include "suggest/core/policy/dictionary_structure_with_buffer_policy.h"
-
-namespace latinime {
-
-// Class for caching bigram maps for multiple previous word contexts. This is useful since the
-// algorithm needs to look up the set of bigrams for every word pair that occurs in every
-// multi-word suggestion.
-class MultiBigramMap {
- public:
-    MultiBigramMap() : mBigramMaps() {}
-    ~MultiBigramMap() {}
-
-    // Look up the bigram probability for the given word pair from the cached bigram maps.
-    // Also caches the bigrams if there is space remaining and they have not been cached already.
-    int getBigramProbability(const DictionaryStructureWithBufferPolicy *const structurePolicy,
-            const int *const prevWordsPtNodePos, const int nextWordPosition,
-            const int unigramProbability);
-
-    void clear() {
-        mBigramMaps.clear();
-    }
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(MultiBigramMap);
-
-    class BigramMap : public NgramListener {
-     public:
-        BigramMap() : mBigramMap(DEFAULT_HASH_MAP_SIZE_FOR_EACH_BIGRAM_MAP), mBloomFilter() {}
-        // Copy constructor needed for std::unordered_map.
-        BigramMap(const BigramMap &bigramMap)
-                : mBigramMap(bigramMap.mBigramMap), mBloomFilter(bigramMap.mBloomFilter) {}
-        virtual ~BigramMap() {}
-
-        void init(const DictionaryStructureWithBufferPolicy *const structurePolicy,
-                const int *const prevWordsPtNodePos);
-        int getBigramProbability(
-                const DictionaryStructureWithBufferPolicy *const structurePolicy,
-                const int nextWordPosition, const int unigramProbability) const;
-        virtual void onVisitEntry(const int ngramProbability, const int targetPtNodePos);
-
-     private:
-        static const int DEFAULT_HASH_MAP_SIZE_FOR_EACH_BIGRAM_MAP;
-        std::unordered_map<int, int> mBigramMap;
-        BloomFilter mBloomFilter;
-    };
-
-    void addBigramsForWordPosition(
-            const DictionaryStructureWithBufferPolicy *const structurePolicy,
-            const int *const prevWordsPtNodePos);
-
-    int readBigramProbabilityFromBinaryDictionary(
-            const DictionaryStructureWithBufferPolicy *const structurePolicy,
-            const int *const prevWordsPtNodePos, const int nextWordPosition,
-            const int unigramProbability);
-
-    static const size_t MAX_CACHED_PREV_WORDS_IN_BIGRAM_MAP;
-    std::unordered_map<int, BigramMap> mBigramMaps;
-};
-} // namespace latinime
-#endif // LATINIME_MULTI_BIGRAM_MAP_H
diff --git a/native/jni/src/suggest/core/dictionary/ngram_listener.h b/native/jni/src/suggest/core/dictionary/ngram_listener.h
deleted file mode 100644
index 88b88ba..0000000
--- a/native/jni/src/suggest/core/dictionary/ngram_listener.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_NGRAM_LISTENER_H
-#define LATINIME_NGRAM_LISTENER_H
-
-#include "defines.h"
-
-namespace latinime {
-
-/**
- * Interface to iterate ngram entries.
- */
-class NgramListener {
- public:
-    virtual void onVisitEntry(const int ngramProbability, const int targetPtNodePos) = 0;
-    virtual ~NgramListener() {};
-
- protected:
-    NgramListener() {}
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(NgramListener);
-
-};
-} // namespace latinime
-#endif /* LATINIME_NGRAM_LISTENER_H */
diff --git a/native/jni/src/suggest/core/dictionary/property/bigram_property.h b/native/jni/src/suggest/core/dictionary/property/bigram_property.h
deleted file mode 100644
index 343af14..0000000
--- a/native/jni/src/suggest/core/dictionary/property/bigram_property.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_BIGRAM_PROPERTY_H
-#define LATINIME_BIGRAM_PROPERTY_H
-
-#include <vector>
-
-#include "defines.h"
-
-namespace latinime {
-
-// TODO: Change to NgramProperty.
-class BigramProperty {
- public:
-    BigramProperty(const std::vector<int> *const targetCodePoints,
-            const int probability, const int timestamp, const int level, const int count)
-            : mTargetCodePoints(*targetCodePoints), mProbability(probability),
-              mTimestamp(timestamp), mLevel(level), mCount(count) {}
-
-    const std::vector<int> *getTargetCodePoints() const {
-        return &mTargetCodePoints;
-    }
-
-    int getProbability() const {
-        return mProbability;
-    }
-
-    int getTimestamp() const {
-        return mTimestamp;
-    }
-
-    int getLevel() const {
-        return mLevel;
-    }
-
-    int getCount() const {
-        return mCount;
-    }
-
- private:
-    // Default copy constructor and assign operator are used for using in std::vector.
-    DISALLOW_DEFAULT_CONSTRUCTOR(BigramProperty);
-
-    // TODO: Make members const.
-    std::vector<int> mTargetCodePoints;
-    int mProbability;
-    int mTimestamp;
-    int mLevel;
-    int mCount;
-};
-} // namespace latinime
-#endif // LATINIME_WORD_PROPERTY_H
diff --git a/native/jni/src/suggest/core/dictionary/property/unigram_property.h b/native/jni/src/suggest/core/dictionary/property/unigram_property.h
deleted file mode 100644
index 902eb00..0000000
--- a/native/jni/src/suggest/core/dictionary/property/unigram_property.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_UNIGRAM_PROPERTY_H
-#define LATINIME_UNIGRAM_PROPERTY_H
-
-#include <vector>
-
-#include "defines.h"
-
-namespace latinime {
-
-class UnigramProperty {
- public:
-    class ShortcutProperty {
-     public:
-        ShortcutProperty(const std::vector<int> *const targetCodePoints, const int probability)
-                : mTargetCodePoints(*targetCodePoints), mProbability(probability) {}
-
-        const std::vector<int> *getTargetCodePoints() const {
-            return &mTargetCodePoints;
-        }
-
-        int getProbability() const {
-            return mProbability;
-        }
-
-     private:
-        // Default copy constructor and assign operator are used for using in std::vector.
-        DISALLOW_DEFAULT_CONSTRUCTOR(ShortcutProperty);
-
-        // TODO: Make members const.
-        std::vector<int> mTargetCodePoints;
-        int mProbability;
-    };
-
-    UnigramProperty()
-            : mRepresentsBeginningOfSentence(false), mIsNotAWord(false), mIsBlacklisted(false),
-              mProbability(NOT_A_PROBABILITY), mTimestamp(NOT_A_TIMESTAMP), mLevel(0), mCount(0),
-              mShortcuts() {}
-
-    UnigramProperty(const bool representsBeginningOfSentence, const bool isNotAWord,
-            const bool isBlacklisted, const int probability, const int timestamp, const int level,
-            const int count, const std::vector<ShortcutProperty> *const shortcuts)
-            : mRepresentsBeginningOfSentence(representsBeginningOfSentence),
-              mIsNotAWord(isNotAWord), mIsBlacklisted(isBlacklisted), mProbability(probability),
-              mTimestamp(timestamp), mLevel(level), mCount(count), mShortcuts(*shortcuts) {}
-
-    bool representsBeginningOfSentence() const {
-        return mRepresentsBeginningOfSentence;
-    }
-
-    bool isNotAWord() const {
-        return mIsNotAWord;
-    }
-
-    bool isBlacklisted() const {
-        return mIsBlacklisted;
-    }
-
-    bool hasShortcuts() const {
-        return !mShortcuts.empty();
-    }
-
-    int getProbability() const {
-        return mProbability;
-    }
-
-    int getTimestamp() const {
-        return mTimestamp;
-    }
-
-    int getLevel() const {
-        return mLevel;
-    }
-
-    int getCount() const {
-        return mCount;
-    }
-
-    const std::vector<ShortcutProperty> &getShortcuts() const {
-        return mShortcuts;
-    }
-
- private:
-    // Default copy constructor is used for using as a return value.
-    DISALLOW_ASSIGNMENT_OPERATOR(UnigramProperty);
-
-    // TODO: Make members const.
-    bool mRepresentsBeginningOfSentence;
-    bool mIsNotAWord;
-    bool mIsBlacklisted;
-    int mProbability;
-    // Historical information
-    int mTimestamp;
-    int mLevel;
-    int mCount;
-    std::vector<ShortcutProperty> mShortcuts;
-};
-} // namespace latinime
-#endif // LATINIME_UNIGRAM_PROPERTY_H
diff --git a/native/jni/src/suggest/core/dictionary/property/word_property.cpp b/native/jni/src/suggest/core/dictionary/property/word_property.cpp
deleted file mode 100644
index 5bdd560..0000000
--- a/native/jni/src/suggest/core/dictionary/property/word_property.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/core/dictionary/property/word_property.h"
-
-#include "utils/jni_data_utils.h"
-
-namespace latinime {
-
-void WordProperty::outputProperties(JNIEnv *const env, jintArray outCodePoints,
-        jbooleanArray outFlags, jintArray outProbabilityInfo, jobject outBigramTargets,
-        jobject outBigramProbabilities, jobject outShortcutTargets,
-        jobject outShortcutProbabilities) const {
-    JniDataUtils::outputCodePoints(env, outCodePoints, 0 /* start */,
-            MAX_WORD_LENGTH /* maxLength */, mCodePoints.data(), mCodePoints.size(),
-            false /* needsNullTermination */);
-    jboolean flags[] = {mUnigramProperty.isNotAWord(), mUnigramProperty.isBlacklisted(),
-            !mBigrams.empty(), mUnigramProperty.hasShortcuts(),
-            mUnigramProperty.representsBeginningOfSentence()};
-    env->SetBooleanArrayRegion(outFlags, 0 /* start */, NELEMS(flags), flags);
-    int probabilityInfo[] = {mUnigramProperty.getProbability(), mUnigramProperty.getTimestamp(),
-            mUnigramProperty.getLevel(), mUnigramProperty.getCount()};
-    env->SetIntArrayRegion(outProbabilityInfo, 0 /* start */, NELEMS(probabilityInfo),
-            probabilityInfo);
-
-    jclass integerClass = env->FindClass("java/lang/Integer");
-    jmethodID intToIntegerConstructorId = env->GetMethodID(integerClass, "<init>", "(I)V");
-    jclass arrayListClass = env->FindClass("java/util/ArrayList");
-    jmethodID addMethodId = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z");
-
-    // Output bigrams.
-    for (const auto &bigramProperty : mBigrams) {
-        const std::vector<int> *const word1CodePoints = bigramProperty.getTargetCodePoints();
-        jintArray bigramWord1CodePointArray = env->NewIntArray(word1CodePoints->size());
-        JniDataUtils::outputCodePoints(env, bigramWord1CodePointArray, 0 /* start */,
-                word1CodePoints->size(), word1CodePoints->data(), word1CodePoints->size(),
-                false /* needsNullTermination */);
-        env->CallBooleanMethod(outBigramTargets, addMethodId, bigramWord1CodePointArray);
-        env->DeleteLocalRef(bigramWord1CodePointArray);
-
-        int bigramProbabilityInfo[] = {bigramProperty.getProbability(),
-                bigramProperty.getTimestamp(), bigramProperty.getLevel(),
-                bigramProperty.getCount()};
-        jintArray bigramProbabilityInfoArray = env->NewIntArray(NELEMS(bigramProbabilityInfo));
-        env->SetIntArrayRegion(bigramProbabilityInfoArray, 0 /* start */,
-                NELEMS(bigramProbabilityInfo), bigramProbabilityInfo);
-        env->CallBooleanMethod(outBigramProbabilities, addMethodId, bigramProbabilityInfoArray);
-        env->DeleteLocalRef(bigramProbabilityInfoArray);
-    }
-
-    // Output shortcuts.
-    for (const auto &shortcut : mUnigramProperty.getShortcuts()) {
-        const std::vector<int> *const targetCodePoints = shortcut.getTargetCodePoints();
-        jintArray shortcutTargetCodePointArray = env->NewIntArray(targetCodePoints->size());
-        env->SetIntArrayRegion(shortcutTargetCodePointArray, 0 /* start */,
-                targetCodePoints->size(), targetCodePoints->data());
-        JniDataUtils::outputCodePoints(env, shortcutTargetCodePointArray, 0 /* start */,
-                targetCodePoints->size(), targetCodePoints->data(), targetCodePoints->size(),
-                false /* needsNullTermination */);
-        env->CallBooleanMethod(outShortcutTargets, addMethodId, shortcutTargetCodePointArray);
-        env->DeleteLocalRef(shortcutTargetCodePointArray);
-        jobject integerProbability = env->NewObject(integerClass, intToIntegerConstructorId,
-                shortcut.getProbability());
-        env->CallBooleanMethod(outShortcutProbabilities, addMethodId, integerProbability);
-        env->DeleteLocalRef(integerProbability);
-    }
-    env->DeleteLocalRef(integerClass);
-    env->DeleteLocalRef(arrayListClass);
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/core/dictionary/property/word_property.h b/native/jni/src/suggest/core/dictionary/property/word_property.h
deleted file mode 100644
index aa3e0b6..0000000
--- a/native/jni/src/suggest/core/dictionary/property/word_property.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_WORD_PROPERTY_H
-#define LATINIME_WORD_PROPERTY_H
-
-#include <vector>
-
-#include "defines.h"
-#include "jni.h"
-#include "suggest/core/dictionary/property/bigram_property.h"
-#include "suggest/core/dictionary/property/unigram_property.h"
-
-namespace latinime {
-
-// This class is used for returning information belonging to a word to java side.
-class WordProperty {
- public:
-    // Default constructor is used to create an instance that indicates an invalid word.
-    WordProperty()
-            : mCodePoints(), mUnigramProperty(), mBigrams() {}
-
-    WordProperty(const std::vector<int> *const codePoints,
-            const UnigramProperty *const unigramProperty,
-            const std::vector<BigramProperty> *const bigrams)
-            : mCodePoints(*codePoints), mUnigramProperty(*unigramProperty), mBigrams(*bigrams) {}
-
-    void outputProperties(JNIEnv *const env, jintArray outCodePoints, jbooleanArray outFlags,
-            jintArray outProbabilityInfo, jobject outBigramTargets, jobject outBigramProbabilities,
-            jobject outShortcutTargets, jobject outShortcutProbabilities) const;
-
-    const UnigramProperty *getUnigramProperty() const {
-        return &mUnigramProperty;
-    }
-
-    const std::vector<BigramProperty> *getBigramProperties() const {
-        return &mBigrams;
-    }
-
- private:
-    // Default copy constructor is used for using as a return value.
-    DISALLOW_ASSIGNMENT_OPERATOR(WordProperty);
-
-    const std::vector<int> mCodePoints;
-    const UnigramProperty mUnigramProperty;
-    const std::vector<BigramProperty> mBigrams;
-};
-} // namespace latinime
-#endif // LATINIME_WORD_PROPERTY_H
diff --git a/native/jni/src/suggest/core/layout/additional_proximity_chars.cpp b/native/jni/src/suggest/core/layout/additional_proximity_chars.cpp
index 34b8b37..8b39f7d 100644
--- a/native/jni/src/suggest/core/layout/additional_proximity_chars.cpp
+++ b/native/jni/src/suggest/core/layout/additional_proximity_chars.cpp
@@ -19,7 +19,7 @@
 namespace latinime {
 // TODO: Stop using hardcoded additional proximity characters.
 // TODO: Have proximity character informations in each language's binary dictionary.
-const char *AdditionalProximityChars::LOCALE_EN_US = "en";
+const int AdditionalProximityChars::LOCALE_EN_US[LOCALE_EN_US_SIZE] = { 'e', 'n' };
 
 const int AdditionalProximityChars::EN_US_ADDITIONAL_A[EN_US_ADDITIONAL_A_SIZE] = {
     'e', 'i', 'o', 'u'
diff --git a/native/jni/src/suggest/core/layout/additional_proximity_chars.h b/native/jni/src/suggest/core/layout/additional_proximity_chars.h
index a88fd6c..2260be9 100644
--- a/native/jni/src/suggest/core/layout/additional_proximity_chars.h
+++ b/native/jni/src/suggest/core/layout/additional_proximity_chars.h
@@ -18,6 +18,7 @@
 #define LATINIME_ADDITIONAL_PROXIMITY_CHARS_H
 
 #include <cstring>
+#include <vector>
 
 #include "defines.h"
 
@@ -26,7 +27,8 @@
 class AdditionalProximityChars {
  private:
     DISALLOW_IMPLICIT_CONSTRUCTORS(AdditionalProximityChars);
-    static const char *LOCALE_EN_US;
+    static const int LOCALE_EN_US_SIZE = 2;
+    static const int LOCALE_EN_US[LOCALE_EN_US_SIZE];
     static const int EN_US_ADDITIONAL_A_SIZE = 4;
     static const int EN_US_ADDITIONAL_A[];
     static const int EN_US_ADDITIONAL_E_SIZE = 4;
@@ -38,15 +40,22 @@
     static const int EN_US_ADDITIONAL_U_SIZE = 4;
     static const int EN_US_ADDITIONAL_U[];
 
-    AK_FORCE_INLINE static bool isEnLocale(const char *localeStr) {
-        const size_t LOCALE_EN_US_SIZE = strlen(LOCALE_EN_US);
-        return localeStr && strlen(localeStr) >= LOCALE_EN_US_SIZE
-                && strncmp(localeStr, LOCALE_EN_US, LOCALE_EN_US_SIZE) == 0;
+    AK_FORCE_INLINE static bool isEnLocale(const std::vector<int> *locale) {
+        const int NCHARS = NELEMS(LOCALE_EN_US);
+        if (locale->size() < NCHARS) {
+            return false;
+        }
+        for (int i = 0; i < NCHARS; ++i) {
+            if ((*locale)[i] != LOCALE_EN_US[i]) {
+                return false;
+            }
+        }
+        return true;
     }
 
  public:
-    static int getAdditionalCharsSize(const char *const localeStr, const int c) {
-        if (!isEnLocale(localeStr)) {
+    static int getAdditionalCharsSize(const std::vector<int> *locale, const int c) {
+        if (!isEnLocale(locale)) {
             return 0;
         }
         switch (c) {
@@ -65,8 +74,8 @@
         }
     }
 
-    static const int *getAdditionalChars(const char *const localeStr, const int c) {
-        if (!isEnLocale(localeStr)) {
+    static const int *getAdditionalChars(const std::vector<int> *locale, const int c) {
+        if (!isEnLocale(locale)) {
             return 0;
         }
         switch (c) {
diff --git a/native/jni/src/suggest/core/layout/geometry_utils.h b/native/jni/src/suggest/core/layout/geometry_utils.h
index b667df6..000fcd4 100644
--- a/native/jni/src/suggest/core/layout/geometry_utils.h
+++ b/native/jni/src/suggest/core/layout/geometry_utils.h
@@ -38,13 +38,15 @@
     }
 
     static AK_FORCE_INLINE float getAngleDiff(const float a1, const float a2) {
-        const float deltaA = fabsf(a1 - a2);
-        const float diff = ROUND_FLOAT_10000(deltaA);
-        if (diff > M_PI_F) {
-            const float normalizedDiff = 2.0f * M_PI_F - diff;
-            return ROUND_FLOAT_10000(normalizedDiff);
+        static const float M_2PI_F = M_PI * 2.0f;
+        float delta = fabsf(a1 - a2);
+        if (delta > M_2PI_F) {
+            delta -= (M_2PI_F * static_cast<int>(delta / M_2PI_F));
         }
-        return diff;
+        if (delta > M_PI_F) {
+            delta = M_2PI_F - delta;
+        }
+        return ROUND_FLOAT_10000(delta);
     }
 
     static AK_FORCE_INLINE int getDistanceInt(const int x1, const int y1, const int x2,
diff --git a/native/jni/src/suggest/core/layout/proximity_info.cpp b/native/jni/src/suggest/core/layout/proximity_info.cpp
index 4c75a18..933a5e1 100644
--- a/native/jni/src/suggest/core/layout/proximity_info.cpp
+++ b/native/jni/src/suggest/core/layout/proximity_info.cpp
@@ -49,13 +49,13 @@
     }
 }
 
-ProximityInfo::ProximityInfo(JNIEnv *env, const jstring localeJStr,
-        const int keyboardWidth, const int keyboardHeight, const int gridWidth,
-        const int gridHeight, const int mostCommonKeyWidth, const int mostCommonKeyHeight,
-        const jintArray proximityChars, const int keyCount, const jintArray keyXCoordinates,
-        const jintArray keyYCoordinates, const jintArray keyWidths, const jintArray keyHeights,
-        const jintArray keyCharCodes, const jfloatArray sweetSpotCenterXs,
-        const jfloatArray sweetSpotCenterYs, const jfloatArray sweetSpotRadii)
+ProximityInfo::ProximityInfo(JNIEnv *env, const int keyboardWidth, const int keyboardHeight,
+        const int gridWidth, const int gridHeight, const int mostCommonKeyWidth,
+        const int mostCommonKeyHeight, const jintArray proximityChars, const int keyCount,
+        const jintArray keyXCoordinates, const jintArray keyYCoordinates,
+        const jintArray keyWidths, const jintArray keyHeights, const jintArray keyCharCodes,
+        const jfloatArray sweetSpotCenterXs, const jfloatArray sweetSpotCenterYs,
+        const jfloatArray sweetSpotRadii)
         : GRID_WIDTH(gridWidth), GRID_HEIGHT(gridHeight), MOST_COMMON_KEY_WIDTH(mostCommonKeyWidth),
           MOST_COMMON_KEY_WIDTH_SQUARE(mostCommonKeyWidth * mostCommonKeyWidth),
           NORMALIZED_SQUARED_MOST_COMMON_KEY_HYPOTENUSE(1.0f +
@@ -82,13 +82,6 @@
     if (DEBUG_PROXIMITY_INFO) {
         AKLOGI("Create proximity info array %d", proximityCharsLength);
     }
-    const jsize localeCStrUtf8Length = env->GetStringUTFLength(localeJStr);
-    if (localeCStrUtf8Length >= MAX_LOCALE_STRING_LENGTH) {
-        AKLOGI("Locale string length too long: length=%d", localeCStrUtf8Length);
-        ASSERT(false);
-    }
-    memset(mLocaleStr, 0, sizeof(mLocaleStr));
-    env->GetStringUTFRegion(localeJStr, 0, env->GetStringLength(localeJStr), mLocaleStr);
     safeGetOrFillZeroIntArrayRegion(env, proximityChars, proximityCharsLength,
             mProximityCharsArray);
     safeGetOrFillZeroIntArrayRegion(env, keyXCoordinates, KEY_COUNT, mKeyXCoordinates);
diff --git a/native/jni/src/suggest/core/layout/proximity_info.h b/native/jni/src/suggest/core/layout/proximity_info.h
index d4e4537..f7c9076 100644
--- a/native/jni/src/suggest/core/layout/proximity_info.h
+++ b/native/jni/src/suggest/core/layout/proximity_info.h
@@ -18,6 +18,7 @@
 #define LATINIME_PROXIMITY_INFO_H
 
 #include <unordered_map>
+#include <vector>
 
 #include "defines.h"
 #include "jni.h"
@@ -27,9 +28,9 @@
 
 class ProximityInfo {
  public:
-    ProximityInfo(JNIEnv *env, const jstring localeJStr,
-            const int keyboardWidth, const int keyboardHeight, const int gridWidth,
-            const int gridHeight, const int mostCommonKeyWidth, const int mostCommonKeyHeight,
+    ProximityInfo(JNIEnv *env, const int keyboardWidth, const int keyboardHeight,
+            const int gridWidth, const int gridHeight,
+            const int mostCommonKeyWidth, const int mostCommonKeyHeight,
             const jintArray proximityChars, const int keyCount, const jintArray keyXCoordinates,
             const jintArray keyYCoordinates, const jintArray keyWidths, const jintArray keyHeights,
             const jintArray keyCharCodes, const jfloatArray sweetSpotCenterXs,
@@ -71,11 +72,11 @@
 
     AK_FORCE_INLINE void initializeProximities(const int *const inputCodes,
             const int *const inputXCoordinates, const int *const inputYCoordinates,
-            const int inputSize, int *allInputCodes) const {
+            const int inputSize, int *allInputCodes, const std::vector<int> *locale) const {
         ProximityInfoUtils::initializeProximities(inputCodes, inputXCoordinates, inputYCoordinates,
                 inputSize, mKeyXCoordinates, mKeyYCoordinates, mKeyWidths, mKeyHeights,
                 mProximityCharsArray, CELL_HEIGHT, CELL_WIDTH, GRID_WIDTH, MOST_COMMON_KEY_WIDTH,
-                KEY_COUNT, mLocaleStr, &mLowerCodePointToKeyMap, allInputCodes);
+                KEY_COUNT, locale, &mLowerCodePointToKeyMap, allInputCodes);
     }
 
     AK_FORCE_INLINE int getKeyIndexOf(const int c) const {
@@ -103,9 +104,6 @@
     const int KEYBOARD_HEIGHT;
     const float KEYBOARD_HYPOTENUSE;
     const bool HAS_TOUCH_POSITION_CORRECTION_DATA;
-    // Assuming locale strings such as en_US, sr-Latn etc.
-    static const int MAX_LOCALE_STRING_LENGTH = 10;
-    char mLocaleStr[MAX_LOCALE_STRING_LENGTH];
     int *mProximityCharsArray;
     int mKeyXCoordinates[MAX_KEY_COUNT_IN_A_KEYBOARD];
     int mKeyYCoordinates[MAX_KEY_COUNT_IN_A_KEYBOARD];
diff --git a/native/jni/src/suggest/core/layout/proximity_info_state.cpp b/native/jni/src/suggest/core/layout/proximity_info_state.cpp
index 91469e2..d43a002 100644
--- a/native/jni/src/suggest/core/layout/proximity_info_state.cpp
+++ b/native/jni/src/suggest/core/layout/proximity_info_state.cpp
@@ -42,7 +42,7 @@
 void ProximityInfoState::initInputParams(const int pointerId, const float maxPointToKeyLength,
         const ProximityInfo *proximityInfo, const int *const inputCodes, const int inputSize,
         const int *const xCoordinates, const int *const yCoordinates, const int *const times,
-        const int *const pointerIds, const bool isGeometric) {
+        const int *const pointerIds, const bool isGeometric, const std::vector<int> *locale) {
     ASSERT(isGeometric || (inputSize < MAX_WORD_LENGTH));
     mIsContinuousSuggestionPossible = (mHasBeenUpdatedByGeometricInput != isGeometric) ?
             false : ProximityInfoStateUtils::checkAndReturnIsContinuousSuggestionPossible(
@@ -66,7 +66,7 @@
 
     if (!isGeometric && pointerId == 0) {
         mProximityInfo->initializeProximities(inputCodes, xCoordinates, yCoordinates,
-                inputSize, mInputProximities);
+                inputSize, mInputProximities, locale);
     }
 
     ///////////////////////
diff --git a/native/jni/src/suggest/core/layout/proximity_info_state.h b/native/jni/src/suggest/core/layout/proximity_info_state.h
index e6180fe..a2d6635 100644
--- a/native/jni/src/suggest/core/layout/proximity_info_state.h
+++ b/native/jni/src/suggest/core/layout/proximity_info_state.h
@@ -37,7 +37,8 @@
     void initInputParams(const int pointerId, const float maxPointToKeyLength,
             const ProximityInfo *proximityInfo, const int *const inputCodes,
             const int inputSize, const int *xCoordinates, const int *yCoordinates,
-            const int *const times, const int *const pointerIds, const bool isGeometric);
+            const int *const times, const int *const pointerIds, const bool isGeometric,
+            const std::vector<int> *locale);
 
     /////////////////////////////////////////
     // Defined here                        //
diff --git a/native/jni/src/suggest/core/layout/proximity_info_utils.h b/native/jni/src/suggest/core/layout/proximity_info_utils.h
index 178aada..79d0615 100644
--- a/native/jni/src/suggest/core/layout/proximity_info_utils.h
+++ b/native/jni/src/suggest/core/layout/proximity_info_utils.h
@@ -19,6 +19,7 @@
 
 #include <cmath>
 #include <unordered_map>
+#include <vector>
 
 #include "defines.h"
 #include "suggest/core/layout/additional_proximity_chars.h"
@@ -51,7 +52,7 @@
             const int *const keyYCoordinates, const int *const keyWidths, const int *keyHeights,
             const int *const proximityCharsArray, const int cellHeight, const int cellWidth,
             const int gridWidth, const int mostCommonKeyWidth, const int keyCount,
-            const char *const localeStr,
+            const std::vector<int> *locale,
             const std::unordered_map<int, int> *const codeToKeyMap, int *inputProximities) {
         // Initialize
         // - mInputCodes
@@ -64,7 +65,7 @@
             int *proximities = &inputProximities[i * MAX_PROXIMITY_CHARS_SIZE];
             calculateProximities(keyXCoordinates, keyYCoordinates, keyWidths, keyHeights,
                     proximityCharsArray, cellHeight, cellWidth, gridWidth, mostCommonKeyWidth,
-                    keyCount, x, y, primaryKey, localeStr, codeToKeyMap, proximities);
+                    keyCount, x, y, primaryKey, locale, codeToKeyMap, proximities);
         }
 
         if (DEBUG_PROXIMITY_CHARS) {
@@ -143,7 +144,7 @@
             const int *const keyYCoordinates, const int *const keyWidths, const int *keyHeights,
             const int *const proximityCharsArray, const int cellHeight, const int cellWidth,
             const int gridWidth, const int mostCommonKeyWidth, const int keyCount,
-            const int x, const int y, const int primaryKey, const char *const localeStr,
+            const int x, const int y, const int primaryKey, const std::vector<int> *locale,
             const std::unordered_map<int, int> *const codeToKeyMap, int *proximities) {
         const int mostCommonKeyWidthSquare = mostCommonKeyWidth * mostCommonKeyWidth;
         int insertPos = 0;
@@ -177,7 +178,7 @@
                 }
             }
             const int additionalProximitySize =
-                    AdditionalProximityChars::getAdditionalCharsSize(localeStr, primaryKey);
+                    AdditionalProximityChars::getAdditionalCharsSize(locale, primaryKey);
             if (additionalProximitySize > 0) {
                 proximities[insertPos++] = ADDITIONAL_PROXIMITY_CHAR_DELIMITER_CODE;
                 if (insertPos >= MAX_PROXIMITY_CHARS_SIZE) {
@@ -188,7 +189,7 @@
                 }
 
                 const int *additionalProximityChars =
-                        AdditionalProximityChars::getAdditionalChars(localeStr, primaryKey);
+                        AdditionalProximityChars::getAdditionalChars(locale, primaryKey);
                 for (int j = 0; j < additionalProximitySize; ++j) {
                     const int ac = additionalProximityChars[j];
                     int k = 0;
diff --git a/native/jni/src/suggest/core/policy/dictionary_structure_with_buffer_policy.h b/native/jni/src/suggest/core/policy/dictionary_structure_with_buffer_policy.h
deleted file mode 100644
index e91f076..0000000
--- a/native/jni/src/suggest/core/policy/dictionary_structure_with_buffer_policy.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_DICTIONARY_STRUCTURE_POLICY_H
-#define LATINIME_DICTIONARY_STRUCTURE_POLICY_H
-
-#include <memory>
-
-#include "defines.h"
-#include "suggest/core/dictionary/property/word_property.h"
-
-namespace latinime {
-
-class DicNode;
-class DicNodeVector;
-class DictionaryHeaderStructurePolicy;
-class DictionaryShortcutsStructurePolicy;
-class NgramListener;
-class PrevWordsInfo;
-class UnigramProperty;
-
-/*
- * This class abstracts the structure of dictionaries.
- * Implement this policy to support additional dictionaries.
- */
-class DictionaryStructureWithBufferPolicy {
- public:
-    typedef std::unique_ptr<DictionaryStructureWithBufferPolicy> StructurePolicyPtr;
-
-    virtual ~DictionaryStructureWithBufferPolicy() {}
-
-    virtual int getRootPosition() const = 0;
-
-    virtual void createAndGetAllChildDicNodes(const DicNode *const dicNode,
-            DicNodeVector *const childDicNodes) const = 0;
-
-    virtual int getCodePointsAndProbabilityAndReturnCodePointCount(
-            const int nodePos, const int maxCodePointCount, int *const outCodePoints,
-            int *const outUnigramProbability) const = 0;
-
-    virtual int getTerminalPtNodePositionOfWord(const int *const inWord,
-            const int length, const bool forceLowerCaseSearch) const = 0;
-
-    virtual int getProbability(const int unigramProbability,
-            const int bigramProbability) const = 0;
-
-    virtual int getProbabilityOfPtNode(const int *const prevWordsPtNodePos,
-            const int nodePos) const = 0;
-
-    virtual void iterateNgramEntries(const int *const prevWordsPtNodePos,
-            NgramListener *const listener) const = 0;
-
-    virtual int getShortcutPositionOfPtNode(const int nodePos) const = 0;
-
-    virtual const DictionaryHeaderStructurePolicy *getHeaderStructurePolicy() const = 0;
-
-    virtual const DictionaryShortcutsStructurePolicy *getShortcutsStructurePolicy() const = 0;
-
-    // Returns whether the update was success or not.
-    virtual bool addUnigramEntry(const int *const word, const int length,
-            const UnigramProperty *const unigramProperty) = 0;
-
-    // Returns whether the update was success or not.
-    virtual bool removeUnigramEntry(const int *const word, const int length) = 0;
-
-    // Returns whether the update was success or not.
-    virtual bool addNgramEntry(const PrevWordsInfo *const prevWordsInfo,
-            const BigramProperty *const bigramProperty) = 0;
-
-    // Returns whether the update was success or not.
-    virtual bool removeNgramEntry(const PrevWordsInfo *const prevWordsInfo,
-            const int *const word, const int length) = 0;
-
-    // Returns whether the flush was success or not.
-    virtual bool flush(const char *const filePath) = 0;
-
-    // Returns whether the GC and flush were success or not.
-    virtual bool flushWithGC(const char *const filePath) = 0;
-
-    virtual bool needsToRunGC(const bool mindsBlockByGC) const = 0;
-
-    // Currently, this method is used only for testing. You may want to consider creating new
-    // dedicated method instead of this if you want to use this in the production.
-    virtual void getProperty(const char *const query, const int queryLength, char *const outResult,
-            const int maxResultLength) = 0;
-
-    // Used for testing.
-    virtual const WordProperty getWordProperty(const int *const codePonts,
-            const int codePointCount) const = 0;
-
-    // Method to iterate all words in the dictionary.
-    // The returned token has to be used to get the next word. If token is 0, this method newly
-    // starts iterating the dictionary.
-    virtual int getNextWordAndNextToken(const int token, int *const outCodePoints,
-            int *const outCodePointCount) = 0;
-
-    virtual bool isCorrupted() const = 0;
-
- protected:
-    DictionaryStructureWithBufferPolicy() {}
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(DictionaryStructureWithBufferPolicy);
-};
-} // namespace latinime
-#endif /* LATINIME_DICTIONARY_STRUCTURE_POLICY_H */
diff --git a/native/jni/src/suggest/core/policy/scoring.h b/native/jni/src/suggest/core/policy/scoring.h
index 9e75cac..b9dda83 100644
--- a/native/jni/src/suggest/core/policy/scoring.h
+++ b/native/jni/src/suggest/core/policy/scoring.h
@@ -30,11 +30,13 @@
  public:
     virtual int calculateFinalScore(const float compoundDistance, const int inputSize,
             const ErrorTypeUtils::ErrorType containedErrorTypes, const bool forceCommit,
-            const bool boostExactMatches) const = 0;
+            const bool boostExactMatches, const bool hasProbabilityZero) const = 0;
     virtual void getMostProbableString(const DicTraverseSession *const traverseSession,
-            const float languageWeight, SuggestionResults *const outSuggestionResults) const = 0;
-    virtual float getAdjustedLanguageWeight(DicTraverseSession *const traverseSession,
-            DicNode *const terminals, const int size) const = 0;
+            const float weightOfLangModelVsSpatialModel,
+            SuggestionResults *const outSuggestionResults) const = 0;
+    virtual float getAdjustedWeightOfLangModelVsSpatialModel(
+            DicTraverseSession *const traverseSession, DicNode *const terminals,
+            const int size) const = 0;
     virtual float getDoubleLetterDemotionDistanceCost(
             const DicNode *const terminalDicNode) const = 0;
     virtual bool autoCorrectsToMultiWordSuggestionIfTop() const = 0;
diff --git a/native/jni/src/suggest/core/policy/traversal.h b/native/jni/src/suggest/core/policy/traversal.h
index 8ddaa05..5b6616d 100644
--- a/native/jni/src/suggest/core/policy/traversal.h
+++ b/native/jni/src/suggest/core/policy/traversal.h
@@ -44,11 +44,12 @@
     virtual bool needsToTraverseAllUserInput() const = 0;
     virtual float getMaxSpatialDistance() const = 0;
     virtual int getDefaultExpandDicNodeSize() const = 0;
-    virtual int getMaxCacheSize(const int inputSize) const = 0;
+    virtual int getMaxCacheSize(const int inputSize, const float weightForLocale) const = 0;
     virtual int getTerminalCacheSize() const = 0;
     virtual bool isPossibleOmissionChildNode(const DicTraverseSession *const traverseSession,
             const DicNode *const parentDicNode, const DicNode *const dicNode) const = 0;
-    virtual bool isGoodToTraverseNextWord(const DicNode *const dicNode) const = 0;
+    virtual bool isGoodToTraverseNextWord(const DicNode *const dicNode,
+            const int probability) const = 0;
 
  protected:
     Traversal() {}
diff --git a/native/jni/src/suggest/core/policy/weighting.cpp b/native/jni/src/suggest/core/policy/weighting.cpp
index c202b81..450203d 100644
--- a/native/jni/src/suggest/core/policy/weighting.cpp
+++ b/native/jni/src/suggest/core/policy/weighting.cpp
@@ -110,12 +110,16 @@
         return weighting->getOmissionCost(parentDicNode, dicNode);
     case CT_ADDITIONAL_PROXIMITY:
         // only used for typing
-        return weighting->getAdditionalProximityCost();
+        // TODO: Quit calling getMatchedCost().
+        return weighting->getAdditionalProximityCost()
+                + weighting->getMatchedCost(traverseSession, dicNode, inputStateG);
     case CT_SUBSTITUTION:
         // only used for typing
-        return weighting->getSubstitutionCost();
+        // TODO: Quit calling getMatchedCost().
+        return weighting->getSubstitutionCost()
+                + weighting->getMatchedCost(traverseSession, dicNode, inputStateG);
     case CT_NEW_WORD_SPACE_OMISSION:
-        return weighting->getNewWordSpatialCost(traverseSession, dicNode, inputStateG);
+        return weighting->getSpaceOmissionCost(traverseSession, dicNode, inputStateG);
     case CT_MATCH:
         return weighting->getMatchedCost(traverseSession, dicNode, inputStateG);
     case CT_COMPLETION:
@@ -176,9 +180,9 @@
         case CT_OMISSION:
             return 0;
         case CT_ADDITIONAL_PROXIMITY:
-            return 0; /* 0 because CT_MATCH will be called */
+            return 1;
         case CT_SUBSTITUTION:
-            return 0; /* 0 because CT_MATCH will be called */
+            return 1;
         case CT_NEW_WORD_SPACE_OMISSION:
             return 0;
         case CT_MATCH:
diff --git a/native/jni/src/suggest/core/policy/weighting.h b/native/jni/src/suggest/core/policy/weighting.h
index bd6b3cf..863c4ea 100644
--- a/native/jni/src/suggest/core/policy/weighting.h
+++ b/native/jni/src/suggest/core/policy/weighting.h
@@ -57,7 +57,7 @@
             const DicTraverseSession *const traverseSession,
             const DicNode *const parentDicNode, const DicNode *const dicNode) const = 0;
 
-    virtual float getNewWordSpatialCost(const DicTraverseSession *const traverseSession,
+    virtual float getSpaceOmissionCost(const DicTraverseSession *const traverseSession,
             const DicNode *const dicNode, DicNode_InputStateG *const inputStateG) const = 0;
 
     virtual float getNewWordBigramLanguageCost(
diff --git a/native/jni/src/suggest/core/result/suggestion_results.cpp b/native/jni/src/suggest/core/result/suggestion_results.cpp
index 4c10bd0..3756d10 100644
--- a/native/jni/src/suggest/core/result/suggestion_results.cpp
+++ b/native/jni/src/suggest/core/result/suggestion_results.cpp
@@ -23,7 +23,7 @@
 void SuggestionResults::outputSuggestions(JNIEnv *env, jintArray outSuggestionCount,
         jintArray outputCodePointsArray, jintArray outScoresArray, jintArray outSpaceIndicesArray,
         jintArray outTypesArray, jintArray outAutoCommitFirstWordConfidenceArray,
-        jfloatArray outLanguageWeight) {
+        jfloatArray outWeightOfLangModelVsSpatialModel) {
     int outputIndex = 0;
     while (!mSuggestedWords.empty()) {
         const SuggestedWord &suggestedWord = mSuggestedWords.top();
@@ -44,7 +44,8 @@
         mSuggestedWords.pop();
     }
     JniDataUtils::putIntToArray(env, outSuggestionCount, 0 /* index */, outputIndex);
-    JniDataUtils::putFloatToArray(env, outLanguageWeight, 0 /* index */, mLanguageWeight);
+    JniDataUtils::putFloatToArray(env, outWeightOfLangModelVsSpatialModel, 0 /* index */,
+            mWeightOfLangModelVsSpatialModel);
 }
 
 void SuggestionResults::addPrediction(const int *const codePoints, const int codePointCount,
@@ -89,7 +90,7 @@
 }
 
 void SuggestionResults::dumpSuggestions() const {
-    AKLOGE("language weight: %f", mLanguageWeight);
+    AKLOGE("weight of language model vs spatial model: %f", mWeightOfLangModelVsSpatialModel);
     std::vector<SuggestedWord> suggestedWords;
     auto copyOfSuggestedWords = mSuggestedWords;
     while (!copyOfSuggestedWords.empty()) {
diff --git a/native/jni/src/suggest/core/result/suggestion_results.h b/native/jni/src/suggest/core/result/suggestion_results.h
index 8e845e2..738c78a 100644
--- a/native/jni/src/suggest/core/result/suggestion_results.h
+++ b/native/jni/src/suggest/core/result/suggestion_results.h
@@ -29,13 +29,15 @@
 class SuggestionResults {
  public:
     explicit SuggestionResults(const int maxSuggestionCount)
-            : mMaxSuggestionCount(maxSuggestionCount), mLanguageWeight(NOT_A_LANGUAGE_WEIGHT),
+            : mMaxSuggestionCount(maxSuggestionCount),
+              mWeightOfLangModelVsSpatialModel(NOT_A_WEIGHT_OF_LANG_MODEL_VS_SPATIAL_MODEL),
               mSuggestedWords() {}
 
     // Returns suggestion count.
     void outputSuggestions(JNIEnv *env, jintArray outSuggestionCount, jintArray outCodePointsArray,
             jintArray outScoresArray, jintArray outSpaceIndicesArray, jintArray outTypesArray,
-            jintArray outAutoCommitFirstWordConfidenceArray, jfloatArray outLanguageWeight);
+            jintArray outAutoCommitFirstWordConfidenceArray,
+            jfloatArray outWeightOfLangModelVsSpatialModel);
     void addPrediction(const int *const codePoints, const int codePointCount, const int score);
     void addSuggestion(const int *const codePoints, const int codePointCount,
             const int score, const int type, const int indexToPartialCommit,
@@ -43,8 +45,8 @@
     void getSortedScores(int *const outScores) const;
     void dumpSuggestions() const;
 
-    void setLanguageWeight(const float languageWeight) {
-        mLanguageWeight = languageWeight;
+    void setWeightOfLangModelVsSpatialModel(const float weightOfLangModelVsSpatialModel) {
+        mWeightOfLangModelVsSpatialModel = weightOfLangModelVsSpatialModel;
     }
 
     int getSuggestionCount() const {
@@ -55,7 +57,7 @@
     DISALLOW_IMPLICIT_CONSTRUCTORS(SuggestionResults);
 
     const int mMaxSuggestionCount;
-    float mLanguageWeight;
+    float mWeightOfLangModelVsSpatialModel;
     std::priority_queue<
             SuggestedWord, std::vector<SuggestedWord>, SuggestedWord::Comparator> mSuggestedWords;
 };
diff --git a/native/jni/src/suggest/core/result/suggestions_output_utils.cpp b/native/jni/src/suggest/core/result/suggestions_output_utils.cpp
index 0b99b75..7c37241 100644
--- a/native/jni/src/suggest/core/result/suggestions_output_utils.cpp
+++ b/native/jni/src/suggest/core/result/suggestions_output_utils.cpp
@@ -19,9 +19,9 @@
 #include <algorithm>
 #include <vector>
 
+#include "dictionary/utils/binary_dictionary_shortcut_iterator.h"
 #include "suggest/core/dicnode/dic_node.h"
 #include "suggest/core/dicnode/dic_node_utils.h"
-#include "suggest/core/dictionary/binary_dictionary_shortcut_iterator.h"
 #include "suggest/core/dictionary/error_type_utils.h"
 #include "suggest/core/policy/scoring.h"
 #include "suggest/core/result/suggestion_results.h"
@@ -34,7 +34,8 @@
 
 /* static */ void SuggestionsOutputUtils::outputSuggestions(
         const Scoring *const scoringPolicy, DicTraverseSession *traverseSession,
-        const float languageWeight, SuggestionResults *const outSuggestionResults) {
+        const float weightOfLangModelVsSpatialModel,
+        SuggestionResults *const outSuggestionResults) {
 #if DEBUG_EVALUATE_MOST_PROBABLE_STRING
     const int terminalSize = 0;
 #else
@@ -44,12 +45,15 @@
     for (int index = terminalSize - 1; index >= 0; --index) {
         traverseSession->getDicTraverseCache()->popTerminal(&terminals[index]);
     }
-    // Compute a language weight when an invalid language weight is passed.
-    // NOT_A_LANGUAGE_WEIGHT (-1) is assumed as an invalid language weight.
-    const float languageWeightToOutputSuggestions = (languageWeight < 0.0f) ?
-            scoringPolicy->getAdjustedLanguageWeight(
-                    traverseSession, terminals.data(), terminalSize) : languageWeight;
-    outSuggestionResults->setLanguageWeight(languageWeightToOutputSuggestions);
+    // Compute a weight of language model when an invalid weight is passed.
+    // NOT_A_WEIGHT_OF_LANG_MODEL_VS_SPATIAL_MODEL (-1) is taken as an invalid value.
+    const float weightOfLangModelVsSpatialModelToOutputSuggestions =
+            (weightOfLangModelVsSpatialModel < 0.0f)
+            ? scoringPolicy->getAdjustedWeightOfLangModelVsSpatialModel(traverseSession,
+                    terminals.data(), terminalSize)
+            : weightOfLangModelVsSpatialModel;
+    outSuggestionResults->setWeightOfLangModelVsSpatialModel(
+            weightOfLangModelVsSpatialModelToOutputSuggestions);
     // Force autocorrection for obvious long multi-word suggestions when the top suggestion is
     // a long multiple words suggestion.
     // TODO: Implement a smarter auto-commit method for handling multi-word suggestions.
@@ -65,16 +69,62 @@
     // Output suggestion results here
     for (auto &terminalDicNode : terminals) {
         outputSuggestionsOfDicNode(scoringPolicy, traverseSession, &terminalDicNode,
-                languageWeightToOutputSuggestions, boostExactMatches, forceCommitMultiWords,
-                outputSecondWordFirstLetterInputIndex, outSuggestionResults);
+                weightOfLangModelVsSpatialModelToOutputSuggestions, boostExactMatches,
+                forceCommitMultiWords, outputSecondWordFirstLetterInputIndex, outSuggestionResults);
     }
-    scoringPolicy->getMostProbableString(traverseSession, languageWeightToOutputSuggestions,
-            outSuggestionResults);
+    scoringPolicy->getMostProbableString(traverseSession,
+            weightOfLangModelVsSpatialModelToOutputSuggestions, outSuggestionResults);
+}
+
+/* static */ bool SuggestionsOutputUtils::shouldBlockWord(
+        const SuggestOptions *const suggestOptions, const DicNode *const terminalDicNode,
+        const WordAttributes wordAttributes, const bool isLastWord) {
+    const bool currentWordExactMatch =
+            ErrorTypeUtils::isExactMatch(terminalDicNode->getContainedErrorTypes());
+    // When we have to block offensive words, non-exact matched offensive words should not be
+    // output.
+    const bool shouldBlockOffensiveWords = suggestOptions->blockOffensiveWords();
+
+    const bool isBlockedOffensiveWord = shouldBlockOffensiveWords &&
+            wordAttributes.isPossiblyOffensive();
+
+    // This function is called in two situations:
+    //
+    // 1) At the end of a search, in which case terminalDicNode will point to the last DicNode
+    //    of the search, and isLastWord will be true.
+    //                    "fuck"
+    //                        |
+    //                        \ terminalDicNode (isLastWord=true, currentWordExactMatch=true)
+    //    In this case, if the current word is an exact match, we will always let the word
+    //    through, even if the user is blocking offensive words (it's exactly what they typed!)
+    //
+    // 2) In the middle of the search, when we hit a terminal node, to decide whether or not
+    //    to start a new search at root, to try to match the rest of the input. In this case,
+    //    terminalDicNode will point to the terminal node we just hit, and isLastWord will be
+    //    false.
+    //                    "fuckvthis"
+    //                        |
+    //                        \ terminalDicNode (isLastWord=false, currentWordExactMatch=true)
+    //
+    // In this case, we should NOT allow the match through (correcting "fuckthis" to "fuck this"
+    // when offensive words are blocked would be a bad idea).
+    //
+    // In the case of a multi-word correction where the offensive word is typed last (eg.
+    // for the input "allfuck"), this function will be called with isLastWord==true, but
+    // currentWordExactMatch==false. So we are OK in this case as well.
+    //                    "allfuck"
+    //                           |
+    //                           \ terminalDicNode (isLastWord=true, currentWordExactMatch=false)
+    if (isLastWord && currentWordExactMatch) {
+        return false;
+    } else {
+        return isBlockedOffensiveWord;
+    }
 }
 
 /* static */ void SuggestionsOutputUtils::outputSuggestionsOfDicNode(
         const Scoring *const scoringPolicy, DicTraverseSession *traverseSession,
-        const DicNode *const terminalDicNode, const float languageWeight,
+        const DicNode *const terminalDicNode, const float weightOfLangModelVsSpatialModel,
         const bool boostExactMatches, const bool forceCommitMultiWords,
         const bool outputSecondWordFirstLetterInputIndex,
         SuggestionResults *const outSuggestionResults) {
@@ -83,34 +133,32 @@
     }
     const float doubleLetterCost =
             scoringPolicy->getDoubleLetterDemotionDistanceCost(terminalDicNode);
-    const float compoundDistance = terminalDicNode->getCompoundDistance(languageWeight)
-            + doubleLetterCost;
-    const bool isPossiblyOffensiveWord =
-            traverseSession->getDictionaryStructurePolicy()->getProbability(
-                    terminalDicNode->getProbability(), NOT_A_PROBABILITY) <= 0;
+    const float compoundDistance =
+            terminalDicNode->getCompoundDistance(weightOfLangModelVsSpatialModel)
+                    + doubleLetterCost;
+    const WordAttributes wordAttributes = traverseSession->getDictionaryStructurePolicy()
+            ->getWordAttributesInContext(terminalDicNode->getPrevWordIds(),
+                    terminalDicNode->getWordId(), nullptr /* multiBigramMap */);
     const bool isExactMatch =
             ErrorTypeUtils::isExactMatch(terminalDicNode->getContainedErrorTypes());
     const bool isExactMatchWithIntentionalOmission =
             ErrorTypeUtils::isExactMatchWithIntentionalOmission(
                     terminalDicNode->getContainedErrorTypes());
-    const bool isFirstCharUppercase = terminalDicNode->isFirstCharUppercase();
-    // Heuristic: We exclude probability=0 first-char-uppercase words from exact match.
-    // (e.g. "AMD" and "and")
-    const bool isSafeExactMatch = isExactMatch
-            && !(isPossiblyOffensiveWord && isFirstCharUppercase);
+    // TODO: Decide whether the word should be auto-corrected or not here.
+    const bool isAppropriateForAutoCorrection = !ErrorTypeUtils::isMissingExplicitAccent(
+            terminalDicNode->getContainedErrorTypes());
     const int outputTypeFlags =
-            (isPossiblyOffensiveWord ? Dictionary::KIND_FLAG_POSSIBLY_OFFENSIVE : 0)
-            | ((isSafeExactMatch && boostExactMatches) ? Dictionary::KIND_FLAG_EXACT_MATCH : 0)
+            (wordAttributes.isPossiblyOffensive() ? Dictionary::KIND_FLAG_POSSIBLY_OFFENSIVE : 0)
+            | ((isExactMatch && boostExactMatches) ? Dictionary::KIND_FLAG_EXACT_MATCH : 0)
             | (isExactMatchWithIntentionalOmission ?
-                    Dictionary::KIND_FLAG_EXACT_MATCH_WITH_INTENTIONAL_OMISSION : 0);
-
+                    Dictionary::KIND_FLAG_EXACT_MATCH_WITH_INTENTIONAL_OMISSION : 0)
+            | (isAppropriateForAutoCorrection ?
+                    Dictionary::KIND_FLAG_APPROPRIATE_FOR_AUTOCORRECTION : 0);
     // Entries that are blacklisted or do not represent a word should not be output.
-    const bool isValidWord = !terminalDicNode->isBlacklistedOrNotAWord();
-    // When we have to block offensive words, non-exact matched offensive words should not be
-    // output.
-    const bool blockOffensiveWords = traverseSession->getSuggestOptions()->blockOffensiveWords();
-    const bool isBlockedOffensiveWord = blockOffensiveWords && isPossiblyOffensiveWord
-            && !isSafeExactMatch;
+    const bool isValidWord = !(wordAttributes.isBlacklisted() || wordAttributes.isNotAWord());
+
+    const bool shouldBlockThisWord = shouldBlockWord(traverseSession->getSuggestOptions(),
+            terminalDicNode, wordAttributes, true /* isLastWord */);
 
     // Increase output score of top typing suggestion to ensure autocorrection.
     // TODO: Better integration with java side autocorrection logic.
@@ -118,11 +166,11 @@
             compoundDistance, traverseSession->getInputSize(),
             terminalDicNode->getContainedErrorTypes(),
             (forceCommitMultiWords && terminalDicNode->hasMultipleWords()),
-            boostExactMatches);
+            boostExactMatches, wordAttributes.getProbability() == 0);
 
     // Don't output invalid or blocked offensive words. However, we still need to submit their
     // shortcuts if any.
-    if (isValidWord && !isBlockedOffensiveWord) {
+    if (isValidWord && !shouldBlockThisWord) {
         int codePoints[MAX_WORD_LENGTH];
         terminalDicNode->outputResult(codePoints);
         const int indexToPartialCommit = outputSecondWordFirstLetterInputIndex ?
@@ -139,10 +187,9 @@
     // Shortcut is not supported for multiple words suggestions.
     // TODO: Check shortcuts during traversal for multiple words suggestions.
     if (!terminalDicNode->hasMultipleWords()) {
-        BinaryDictionaryShortcutIterator shortcutIt(
-                traverseSession->getDictionaryStructurePolicy()->getShortcutsStructurePolicy(),
-                traverseSession->getDictionaryStructurePolicy()
-                        ->getShortcutPositionOfPtNode(terminalDicNode->getPtNodePos()));
+        BinaryDictionaryShortcutIterator shortcutIt =
+                traverseSession->getDictionaryStructurePolicy()->getShortcutIterator(
+                        terminalDicNode->getWordId());
         const bool sameAsTyped = scoringPolicy->sameAsTyped(traverseSession, terminalDicNode);
         outputShortcuts(&shortcutIt, finalScore, sameAsTyped, outSuggestionResults);
     }
diff --git a/native/jni/src/suggest/core/result/suggestions_output_utils.h b/native/jni/src/suggest/core/result/suggestions_output_utils.h
index b099b47..bcb75a4 100644
--- a/native/jni/src/suggest/core/result/suggestions_output_utils.h
+++ b/native/jni/src/suggest/core/result/suggestions_output_utils.h
@@ -18,6 +18,7 @@
 #define LATINIME_SUGGESTIONS_OUTPUT_UTILS
 
 #include "defines.h"
+#include "dictionary/property/word_attributes.h"
 
 namespace latinime {
 
@@ -25,15 +26,23 @@
 class DicNode;
 class DicTraverseSession;
 class Scoring;
+class SuggestOptions;
 class SuggestionResults;
 
 class SuggestionsOutputUtils {
  public:
     /**
+     * Returns true if we should block the incoming word, in the context of the user's
+     * preferences to include or not include possibly offensive words
+     */
+    static bool shouldBlockWord(const SuggestOptions *const suggestOptions,
+            const DicNode *const terminalDicNode, const WordAttributes wordAttributes,
+            const bool isLastWord);
+    /**
      * Outputs the final list of suggestions (i.e., terminal nodes).
      */
     static void outputSuggestions(const Scoring *const scoringPolicy,
-            DicTraverseSession *traverseSession, const float languageWeight,
+            DicTraverseSession *traverseSession, const float weightOfLangModelVsSpatialModel,
             SuggestionResults *const outSuggestionResults);
 
  private:
@@ -44,7 +53,7 @@
 
     static void outputSuggestionsOfDicNode(const Scoring *const scoringPolicy,
             DicTraverseSession *traverseSession, const DicNode *const terminalDicNode,
-            const float languageWeight, const bool boostExactMatches,
+            const float weightOfLangModelVsSpatialModel, const bool boostExactMatches,
             const bool forceCommitMultiWords, const bool outputSecondWordFirstLetterInputIndex,
             SuggestionResults *const outSuggestionResults);
     static void outputShortcuts(BinaryDictionaryShortcutIterator *const shortcutIt,
diff --git a/native/jni/src/suggest/core/session/dic_traverse_session.cpp b/native/jni/src/suggest/core/session/dic_traverse_session.cpp
index f1e411f..d7dd5a0 100644
--- a/native/jni/src/suggest/core/session/dic_traverse_session.cpp
+++ b/native/jni/src/suggest/core/session/dic_traverse_session.cpp
@@ -17,10 +17,10 @@
 #include "suggest/core/session/dic_traverse_session.h"
 
 #include "defines.h"
+#include "dictionary/interface/dictionary_header_structure_policy.h"
+#include "dictionary/interface/dictionary_structure_with_buffer_policy.h"
+#include "dictionary/property/ngram_context.h"
 #include "suggest/core/dictionary/dictionary.h"
-#include "suggest/core/policy/dictionary_header_structure_policy.h"
-#include "suggest/core/policy/dictionary_structure_with_buffer_policy.h"
-#include "suggest/core/session/prev_words_info.h"
 
 namespace latinime {
 
@@ -30,13 +30,13 @@
         256 * 1024;
 
 void DicTraverseSession::init(const Dictionary *const dictionary,
-        const PrevWordsInfo *const prevWordsInfo, const SuggestOptions *const suggestOptions) {
+        const NgramContext *const ngramContext, const SuggestOptions *const suggestOptions) {
     mDictionary = dictionary;
     mMultiWordCostMultiplier = getDictionaryStructurePolicy()->getHeaderStructurePolicy()
             ->getMultiWordCostMultiplier();
     mSuggestOptions = suggestOptions;
-    prevWordsInfo->getPrevWordsTerminalPtNodePos(
-            getDictionaryStructurePolicy(), mPrevWordsPtNodePos, true /* tryLowerCaseSearch */);
+    mPrevWordIdCount = ngramContext->getPrevWordIds(getDictionaryStructurePolicy(),
+            &mPrevWordIdArray, true /* tryLowerCaseSearch */).size();
 }
 
 void DicTraverseSession::setupForGetSuggestions(const ProximityInfo *pInfo,
@@ -69,8 +69,12 @@
     for (int i = 0; i < maxPointerCount; ++i) {
         mProximityInfoStates[i].initInputParams(i, maxSpatialDistance, getProximityInfo(),
                 inputCodePoints, inputSize, inputXs, inputYs, times, pointerIds,
-                maxPointerCount == MAX_POINTER_COUNT_G
-                /* TODO: this is a hack. fix proximity info state */);
+                // Right now the line below is trying to figure out whether this is a gesture by
+                // looking at the pointer count and assuming whatever is above the cutoff is
+                // a gesture and whatever is below is type. This is hacky and incorrect, we
+                // should pass the correct information instead.
+                maxPointerCount == MAX_POINTER_COUNT_G,
+                getDictionaryStructurePolicy()->getHeaderStructurePolicy()->getLocale());
         mInputSize += mProximityInfoStates[i].size();
     }
 }
diff --git a/native/jni/src/suggest/core/session/dic_traverse_session.h b/native/jni/src/suggest/core/session/dic_traverse_session.h
index 5a51a11..f5fcfdd 100644
--- a/native/jni/src/suggest/core/session/dic_traverse_session.h
+++ b/native/jni/src/suggest/core/session/dic_traverse_session.h
@@ -20,16 +20,17 @@
 #include <vector>
 
 #include "defines.h"
+#include "dictionary/utils/multi_bigram_map.h"
 #include "jni.h"
 #include "suggest/core/dicnode/dic_nodes_cache.h"
-#include "suggest/core/dictionary/multi_bigram_map.h"
 #include "suggest/core/layout/proximity_info_state.h"
+#include "utils/int_array_view.h"
 
 namespace latinime {
 
 class Dictionary;
 class DictionaryStructureWithBufferPolicy;
-class PrevWordsInfo;
+class NgramContext;
 class ProximityInfo;
 class SuggestOptions;
 
@@ -50,20 +51,17 @@
     }
 
     AK_FORCE_INLINE DicTraverseSession(JNIEnv *env, jstring localeStr, bool usesLargeCache)
-            : mProximityInfo(nullptr), mDictionary(nullptr), mSuggestOptions(nullptr),
-              mDicNodesCache(usesLargeCache), mMultiBigramMap(), mInputSize(0), mMaxPointerCount(1),
-              mMultiWordCostMultiplier(1.0f) {
+            : mPrevWordIdCount(0), mProximityInfo(nullptr), mDictionary(nullptr),
+              mSuggestOptions(nullptr), mDicNodesCache(usesLargeCache), mMultiBigramMap(),
+              mInputSize(0), mMaxPointerCount(1), mMultiWordCostMultiplier(1.0f) {
         // NOTE: mProximityInfoStates is an array of instances.
         // No need to initialize it explicitly here.
-        for (size_t i = 0; i < NELEMS(mPrevWordsPtNodePos); ++i) {
-            mPrevWordsPtNodePos[i] = NOT_A_DICT_POS;
-        }
     }
 
     // Non virtual inline destructor -- never inherit this class
     AK_FORCE_INLINE ~DicTraverseSession() {}
 
-    void init(const Dictionary *dictionary, const PrevWordsInfo *const prevWordsInfo,
+    void init(const Dictionary *dictionary, const NgramContext *const ngramContext,
             const SuggestOptions *const suggestOptions);
     // TODO: Remove and merge into init
     void setupForGetSuggestions(const ProximityInfo *pInfo, const int *inputCodePoints,
@@ -79,7 +77,9 @@
     //--------------------
     const ProximityInfo *getProximityInfo() const { return mProximityInfo; }
     const SuggestOptions *getSuggestOptions() const { return mSuggestOptions; }
-    const int *getPrevWordsPtNodePos() const { return mPrevWordsPtNodePos; }
+    const WordIdArrayView getPrevWordIds() const {
+        return WordIdArrayView::fromArray(mPrevWordIdArray).limit(mPrevWordIdCount);
+    }
     DicNodesCache *getDicTraverseCache() { return &mDicNodesCache; }
     MultiBigramMap *getMultiBigramMap() { return &mMultiBigramMap; }
     const ProximityInfoState *getProximityInfoState(int id) const {
@@ -166,7 +166,8 @@
             const int *const inputYs, const int *const times, const int *const pointerIds,
             const int inputSize, const float maxSpatialDistance, const int maxPointerCount);
 
-    int mPrevWordsPtNodePos[MAX_PREV_WORD_COUNT_FOR_N_GRAM];
+    WordIdArray<MAX_PREV_WORD_COUNT_FOR_N_GRAM> mPrevWordIdArray;
+    size_t mPrevWordIdCount;
     const ProximityInfo *mProximityInfo;
     const Dictionary *mDictionary;
     const SuggestOptions *mSuggestOptions;
diff --git a/native/jni/src/suggest/core/session/prev_words_info.h b/native/jni/src/suggest/core/session/prev_words_info.h
deleted file mode 100644
index e44e876..0000000
--- a/native/jni/src/suggest/core/session/prev_words_info.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_PREV_WORDS_INFO_H
-#define LATINIME_PREV_WORDS_INFO_H
-
-#include "defines.h"
-#include "suggest/core/dictionary/binary_dictionary_bigrams_iterator.h"
-#include "suggest/core/policy/dictionary_structure_with_buffer_policy.h"
-#include "utils/char_utils.h"
-
-namespace latinime {
-
-// TODO: Support n-gram.
-class PrevWordsInfo {
- public:
-    // No prev word information.
-    PrevWordsInfo() {
-        clear();
-    }
-
-    PrevWordsInfo(PrevWordsInfo &&prevWordsInfo) {
-        for (size_t i = 0; i < NELEMS(mPrevWordCodePoints); ++i) {
-            mPrevWordCodePointCount[i] = prevWordsInfo.mPrevWordCodePointCount[i];
-            memmove(mPrevWordCodePoints[i], prevWordsInfo.mPrevWordCodePoints[i],
-                    sizeof(mPrevWordCodePoints[i][0]) * mPrevWordCodePointCount[i]);
-            mIsBeginningOfSentence[i] = prevWordsInfo.mIsBeginningOfSentence[i];
-        }
-    }
-
-    // Construct from previous words.
-    PrevWordsInfo(const int prevWordCodePoints[][MAX_WORD_LENGTH],
-            const int *const prevWordCodePointCount, const bool *const isBeginningOfSentence,
-            const size_t prevWordCount) {
-        clear();
-        for (size_t i = 0; i < std::min(NELEMS(mPrevWordCodePoints), prevWordCount); ++i) {
-            if (prevWordCodePointCount[i] < 0 || prevWordCodePointCount[i] > MAX_WORD_LENGTH) {
-                continue;
-            }
-            memmove(mPrevWordCodePoints[i], prevWordCodePoints[i],
-                    sizeof(mPrevWordCodePoints[i][0]) * prevWordCodePointCount[i]);
-            mPrevWordCodePointCount[i] = prevWordCodePointCount[i];
-            mIsBeginningOfSentence[i] = isBeginningOfSentence[i];
-        }
-    }
-
-    // Construct from a previous word.
-    PrevWordsInfo(const int *const prevWordCodePoints, const int prevWordCodePointCount,
-            const bool isBeginningOfSentence) {
-        clear();
-        if (prevWordCodePointCount > MAX_WORD_LENGTH || !prevWordCodePoints) {
-            return;
-        }
-        memmove(mPrevWordCodePoints[0], prevWordCodePoints,
-                sizeof(mPrevWordCodePoints[0][0]) * prevWordCodePointCount);
-        mPrevWordCodePointCount[0] = prevWordCodePointCount;
-        mIsBeginningOfSentence[0] = isBeginningOfSentence;
-    }
-
-    bool isValid() const {
-        if (mPrevWordCodePointCount[0] > 0) {
-            return true;
-        }
-        if (mIsBeginningOfSentence[0]) {
-            return true;
-        }
-        return false;
-    }
-
-    void getPrevWordsTerminalPtNodePos(
-            const DictionaryStructureWithBufferPolicy *const dictStructurePolicy,
-            int *const outPrevWordsTerminalPtNodePos, const bool tryLowerCaseSearch) const {
-        for (size_t i = 0; i < NELEMS(mPrevWordCodePoints); ++i) {
-            outPrevWordsTerminalPtNodePos[i] = getTerminalPtNodePosOfWord(dictStructurePolicy,
-                    mPrevWordCodePoints[i], mPrevWordCodePointCount[i],
-                    mIsBeginningOfSentence[i], tryLowerCaseSearch);
-        }
-    }
-
-    // n is 1-indexed.
-    const int *getNthPrevWordCodePoints(const int n) const {
-        if (n <= 0 || n > MAX_PREV_WORD_COUNT_FOR_N_GRAM) {
-            return nullptr;
-        }
-        return mPrevWordCodePoints[n - 1];
-    }
-
-    // n is 1-indexed.
-    int getNthPrevWordCodePointCount(const int n) const {
-        if (n <= 0 || n > MAX_PREV_WORD_COUNT_FOR_N_GRAM) {
-            return 0;
-        }
-        return mPrevWordCodePointCount[n - 1];
-    }
-
-    // n is 1-indexed.
-    bool isNthPrevWordBeginningOfSentence(const int n) const {
-        if (n <= 0 || n > MAX_PREV_WORD_COUNT_FOR_N_GRAM) {
-            return false;
-        }
-        return mIsBeginningOfSentence[n - 1];
-    }
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(PrevWordsInfo);
-
-    static int getTerminalPtNodePosOfWord(
-            const DictionaryStructureWithBufferPolicy *const dictStructurePolicy,
-            const int *const wordCodePoints, const int wordCodePointCount,
-            const bool isBeginningOfSentence, const bool tryLowerCaseSearch) {
-        if (!dictStructurePolicy || !wordCodePoints || wordCodePointCount > MAX_WORD_LENGTH) {
-            return NOT_A_DICT_POS;
-        }
-        int codePoints[MAX_WORD_LENGTH];
-        int codePointCount = wordCodePointCount;
-        memmove(codePoints, wordCodePoints, sizeof(int) * codePointCount);
-        if (isBeginningOfSentence) {
-            codePointCount = CharUtils::attachBeginningOfSentenceMarker(codePoints,
-                    codePointCount, MAX_WORD_LENGTH);
-            if (codePointCount <= 0) {
-                return NOT_A_DICT_POS;
-            }
-        }
-        const int wordPtNodePos = dictStructurePolicy->getTerminalPtNodePositionOfWord(
-                codePoints, codePointCount, false /* forceLowerCaseSearch */);
-        if (wordPtNodePos != NOT_A_DICT_POS || !tryLowerCaseSearch) {
-            // Return the position when when the word was found or doesn't try lower case
-            // search.
-            return wordPtNodePos;
-        }
-        // Check bigrams for lower-cased previous word if original was not found. Useful for
-        // auto-capitalized words like "The [current_word]".
-        return dictStructurePolicy->getTerminalPtNodePositionOfWord(
-                codePoints, codePointCount, true /* forceLowerCaseSearch */);
-    }
-
-    void clear() {
-        for (size_t i = 0; i < NELEMS(mPrevWordCodePoints); ++i) {
-            mPrevWordCodePointCount[i] = 0;
-            mIsBeginningOfSentence[i] = false;
-        }
-    }
-
-    int mPrevWordCodePoints[MAX_PREV_WORD_COUNT_FOR_N_GRAM][MAX_WORD_LENGTH];
-    int mPrevWordCodePointCount[MAX_PREV_WORD_COUNT_FOR_N_GRAM];
-    bool mIsBeginningOfSentence[MAX_PREV_WORD_COUNT_FOR_N_GRAM];
-};
-} // namespace latinime
-#endif // LATINIME_PREV_WORDS_INFO_H
diff --git a/native/jni/src/suggest/core/suggest.cpp b/native/jni/src/suggest/core/suggest.cpp
index 0cd305f..52fa5a5 100644
--- a/native/jni/src/suggest/core/suggest.cpp
+++ b/native/jni/src/suggest/core/suggest.cpp
@@ -16,17 +16,20 @@
 
 #include "suggest/core/suggest.h"
 
+#include "dictionary/interface/dictionary_structure_with_buffer_policy.h"
+#include "dictionary/property/word_attributes.h"
 #include "suggest/core/dicnode/dic_node.h"
 #include "suggest/core/dicnode/dic_node_priority_queue.h"
 #include "suggest/core/dicnode/dic_node_vector.h"
 #include "suggest/core/dictionary/dictionary.h"
 #include "suggest/core/dictionary/digraph_utils.h"
 #include "suggest/core/layout/proximity_info.h"
-#include "suggest/core/policy/dictionary_structure_with_buffer_policy.h"
 #include "suggest/core/policy/traversal.h"
 #include "suggest/core/policy/weighting.h"
 #include "suggest/core/result/suggestions_output_utils.h"
 #include "suggest/core/session/dic_traverse_session.h"
+#include "suggest/core/suggest_options.h"
+#include "utils/profiler.h"
 
 namespace latinime {
 
@@ -44,10 +47,10 @@
  */
 void Suggest::getSuggestions(ProximityInfo *pInfo, void *traverseSession,
         int *inputXs, int *inputYs, int *times, int *pointerIds, int *inputCodePoints,
-        int inputSize, const float languageWeight,
+        int inputSize, const float weightOfLangModelVsSpatialModel,
         SuggestionResults *const outSuggestionResults) const {
-    PROF_OPEN;
-    PROF_START(0);
+    PROF_INIT;
+    PROF_TIMER_START(0);
     const float maxSpatialDistance = TRAVERSAL->getMaxSpatialDistance();
     DicTraverseSession *tSession = static_cast<DicTraverseSession *>(traverseSession);
     tSession->setupForGetSuggestions(pInfo, inputCodePoints, inputSize, inputXs, inputYs, times,
@@ -55,8 +58,8 @@
     // TODO: Add the way to evaluate cache
 
     initializeSearch(tSession);
-    PROF_END(0);
-    PROF_START(1);
+    PROF_TIMER_END(0);
+    PROF_TIMER_START(1);
 
     // keep expanding search dicNodes until all have terminated.
     while (tSession->getDicTraverseCache()->activeSize() > 0) {
@@ -64,12 +67,11 @@
         tSession->getDicTraverseCache()->advanceActiveDicNodes();
         tSession->getDicTraverseCache()->advanceInputIndex(inputSize);
     }
-    PROF_END(1);
-    PROF_START(2);
+    PROF_TIMER_END(1);
+    PROF_TIMER_START(2);
     SuggestionsOutputUtils::outputSuggestions(
-            SCORING, tSession, languageWeight, outSuggestionResults);
-    PROF_END(2);
-    PROF_CLOSE;
+            SCORING, tSession, weightOfLangModelVsSpatialModel, outSuggestionResults);
+    PROF_TIMER_END(2);
 }
 
 /**
@@ -87,12 +89,13 @@
         traverseSession->getDicTraverseCache()->continueSearch();
     } else {
         // Restart recognition at the root.
-        traverseSession->resetCache(TRAVERSAL->getMaxCacheSize(traverseSession->getInputSize()),
+        traverseSession->resetCache(TRAVERSAL->getMaxCacheSize(traverseSession->getInputSize(),
+                traverseSession->getSuggestOptions()->weightForLocale()),
                 TRAVERSAL->getTerminalCacheSize());
         // Create a new dic node here
         DicNode rootNode;
         DicNodeUtils::initAsRoot(traverseSession->getDictionaryStructurePolicy(),
-                traverseSession->getPrevWordsPtNodePos(), &rootNode);
+                traverseSession->getPrevWordIds(), &rootNode);
         traverseSession->getDicTraverseCache()->copyPushActive(&rootNode);
     }
 }
@@ -157,8 +160,7 @@
             // TODO: Remove. Do not prune node here.
             const bool allowsErrorCorrections = TRAVERSAL->allowsErrorCorrections(&dicNode);
             // Process for handling space substitution (e.g., hevis => he is)
-            if (allowsErrorCorrections
-                    && TRAVERSAL->isSpaceSubstitutionTerminal(traverseSession, &dicNode)) {
+            if (TRAVERSAL->isSpaceSubstitutionTerminal(traverseSession, &dicNode)) {
                 createNextWordDicNode(traverseSession, &dicNode, true /* spaceSubstitution */);
             }
 
@@ -281,7 +283,6 @@
     // not treat the node as a terminal. There is no need to pass the bigram map in these cases.
     Weighting::addCostAndForwardInputIndex(WEIGHTING, CT_ADDITIONAL_PROXIMITY,
             traverseSession, dicNode, childDicNode, 0 /* multiBigramMap */);
-    weightChildNode(traverseSession, childDicNode);
     processExpandedDicNode(traverseSession, childDicNode);
 }
 
@@ -289,7 +290,6 @@
         DicNode *dicNode, DicNode *childDicNode) const {
     Weighting::addCostAndForwardInputIndex(WEIGHTING, CT_SUBSTITUTION, traverseSession,
             dicNode, childDicNode, 0 /* multiBigramMap */);
-    weightChildNode(traverseSession, childDicNode);
     processExpandedDicNode(traverseSession, childDicNode);
 }
 
@@ -400,7 +400,7 @@
     if (dicNode->isCompletion(inputSize)) {
         Weighting::addCostAndForwardInputIndex(WEIGHTING, CT_COMPLETION, traverseSession,
                 0 /* parentDicNode */, dicNode, 0 /* multiBigramMap */);
-    } else { // completion
+    } else {
         Weighting::addCostAndForwardInputIndex(WEIGHTING, CT_MATCH, traverseSession,
                 0 /* parentDicNode */, dicNode, 0 /* multiBigramMap */);
     }
@@ -412,7 +412,16 @@
  */
 void Suggest::createNextWordDicNode(DicTraverseSession *traverseSession, DicNode *dicNode,
         const bool spaceSubstitution) const {
-    if (!TRAVERSAL->isGoodToTraverseNextWord(dicNode)) {
+    const WordAttributes wordAttributes =
+            traverseSession->getDictionaryStructurePolicy()->getWordAttributesInContext(
+                    dicNode->getPrevWordIds(), dicNode->getWordId(),
+                    traverseSession->getMultiBigramMap());
+    if (SuggestionsOutputUtils::shouldBlockWord(traverseSession->getSuggestOptions(),
+            dicNode, wordAttributes, false /* isLastWord */)) {
+        return;
+    }
+
+    if (!TRAVERSAL->isGoodToTraverseNextWord(dicNode, wordAttributes.getProbability())) {
         return;
     }
 
diff --git a/native/jni/src/suggest/core/suggest.h b/native/jni/src/suggest/core/suggest.h
index 788e031..65d5918 100644
--- a/native/jni/src/suggest/core/suggest.h
+++ b/native/jni/src/suggest/core/suggest.h
@@ -49,7 +49,8 @@
     AK_FORCE_INLINE virtual ~Suggest() {}
     void getSuggestions(ProximityInfo *pInfo, void *traverseSession, int *inputXs, int *inputYs,
             int *times, int *pointerIds, int *inputCodePoints, int inputSize,
-            const float languageWeight, SuggestionResults *const outSuggestionResults) const;
+            const float weightOfLangModelVsSpatialModel,
+            SuggestionResults *const outSuggestionResults) const;
 
  private:
     DISALLOW_IMPLICIT_CONSTRUCTORS(Suggest);
diff --git a/native/jni/src/suggest/core/suggest_interface.h b/native/jni/src/suggest/core/suggest_interface.h
index a6e5aef..a05aa9c 100644
--- a/native/jni/src/suggest/core/suggest_interface.h
+++ b/native/jni/src/suggest/core/suggest_interface.h
@@ -28,7 +28,8 @@
  public:
     virtual void getSuggestions(ProximityInfo *pInfo, void *traverseSession, int *inputXs,
             int *inputYs, int *times, int *pointerIds, int *inputCodePoints, int inputSize,
-            const float languageWeight, SuggestionResults *const suggestionResults) const = 0;
+            const float weightOfLangModelVsSpatialModel,
+            SuggestionResults *const suggestionResults) const = 0;
     SuggestInterface() {}
     virtual ~SuggestInterface() {}
  private:
diff --git a/native/jni/src/suggest/core/suggest_options.h b/native/jni/src/suggest/core/suggest_options.h
index d456680..4d33129 100644
--- a/native/jni/src/suggest/core/suggest_options.h
+++ b/native/jni/src/suggest/core/suggest_options.h
@@ -42,6 +42,12 @@
         return getBoolOption(SPACE_AWARE_GESTURE_ENABLED);
     }
 
+    AK_FORCE_INLINE float weightForLocale() const {
+        // The weight is in thousands and we want the real value, so we divide by 1000.
+        // NativeSuggestOptions#setWeightForLocale does the opposite processing in Java.
+        return static_cast<float>(getIntOption(WEIGHT_FOR_LOCALE_IN_THOUSANDS)) / 1000.0f;
+    }
+
     AK_FORCE_INLINE bool getAdditionalFeaturesBoolOption(const int key) const {
         return getBoolOption(key + ADDITIONAL_FEATURES_OPTIONS);
     }
@@ -55,9 +61,10 @@
     static const int USE_FULL_EDIT_DISTANCE = 1;
     static const int BLOCK_OFFENSIVE_WORDS = 2;
     static const int SPACE_AWARE_GESTURE_ENABLED = 3;
+    static const int WEIGHT_FOR_LOCALE_IN_THOUSANDS = 4;
     // Additional features options are stored after the other options and used as setting values of
     // experimental features.
-    static const int ADDITIONAL_FEATURES_OPTIONS = 4;
+    static const int ADDITIONAL_FEATURES_OPTIONS = 5;
 
     const int *const mOptions;
     const int mLength;
diff --git a/native/jni/src/suggest/policyimpl/dictionary/header/header_policy.cpp b/native/jni/src/suggest/policyimpl/dictionary/header/header_policy.cpp
deleted file mode 100644
index 6ed65d9..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/header/header_policy.cpp
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-
-#include <algorithm>
-
-namespace latinime {
-
-// Note that these are corresponding definitions in Java side in DictionaryHeader.
-const char *const HeaderPolicy::MULTIPLE_WORDS_DEMOTION_RATE_KEY = "MULTIPLE_WORDS_DEMOTION_RATE";
-const char *const HeaderPolicy::REQUIRES_GERMAN_UMLAUT_PROCESSING_KEY =
-        "REQUIRES_GERMAN_UMLAUT_PROCESSING";
-// TODO: Change attribute string to "IS_DECAYING_DICT".
-const char *const HeaderPolicy::IS_DECAYING_DICT_KEY = "USES_FORGETTING_CURVE";
-const char *const HeaderPolicy::DATE_KEY = "date";
-const char *const HeaderPolicy::LAST_DECAYED_TIME_KEY = "LAST_DECAYED_TIME";
-const char *const HeaderPolicy::UNIGRAM_COUNT_KEY = "UNIGRAM_COUNT";
-const char *const HeaderPolicy::BIGRAM_COUNT_KEY = "BIGRAM_COUNT";
-const char *const HeaderPolicy::EXTENDED_REGION_SIZE_KEY = "EXTENDED_REGION_SIZE";
-// Historical info is information that is needed to support decaying such as timestamp, level and
-// count.
-const char *const HeaderPolicy::HAS_HISTORICAL_INFO_KEY = "HAS_HISTORICAL_INFO";
-const char *const HeaderPolicy::LOCALE_KEY = "locale"; // match Java declaration
-const char *const HeaderPolicy::FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP_KEY =
-        "FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP";
-const char *const HeaderPolicy::FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID_KEY =
-        "FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID";
-const char *const HeaderPolicy::FORGETTING_CURVE_DURATION_TO_LEVEL_DOWN_IN_SECONDS_KEY =
-        "FORGETTING_CURVE_DURATION_TO_LEVEL_DOWN_IN_SECONDS";
-
-const char *const HeaderPolicy::MAX_UNIGRAM_COUNT_KEY = "MAX_UNIGRAM_COUNT";
-const char *const HeaderPolicy::MAX_BIGRAM_COUNT_KEY = "MAX_BIGRAM_COUNT";
-
-const int HeaderPolicy::DEFAULT_MULTIPLE_WORDS_DEMOTION_RATE = 100;
-const float HeaderPolicy::MULTIPLE_WORD_COST_MULTIPLIER_SCALE = 100.0f;
-const int HeaderPolicy::DEFAULT_FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP = 2;
-const int HeaderPolicy::DEFAULT_FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID = 3;
-// 30 days
-const int HeaderPolicy::DEFAULT_FORGETTING_CURVE_DURATION_TO_LEVEL_DOWN_IN_SECONDS =
-        30 * 24 * 60 * 60;
-
-const int HeaderPolicy::DEFAULT_MAX_UNIGRAM_COUNT = 10000;
-const int HeaderPolicy::DEFAULT_MAX_BIGRAM_COUNT = 10000;
-
-// Used for logging. Question mark is used to indicate that the key is not found.
-void HeaderPolicy::readHeaderValueOrQuestionMark(const char *const key, int *outValue,
-        int outValueSize) const {
-    if (outValueSize <= 0) return;
-    if (outValueSize == 1) {
-        outValue[0] = '\0';
-        return;
-    }
-    std::vector<int> keyCodePointVector;
-    HeaderReadWriteUtils::insertCharactersIntoVector(key, &keyCodePointVector);
-    DictionaryHeaderStructurePolicy::AttributeMap::const_iterator it =
-            mAttributeMap.find(keyCodePointVector);
-    if (it == mAttributeMap.end()) {
-        // The key was not found.
-        outValue[0] = '?';
-        outValue[1] = '\0';
-        return;
-    }
-    const int terminalIndex = std::min(static_cast<int>(it->second.size()), outValueSize - 1);
-    for (int i = 0; i < terminalIndex; ++i) {
-        outValue[i] = it->second[i];
-    }
-    outValue[terminalIndex] = '\0';
-}
-
-const std::vector<int> HeaderPolicy::readLocale() const {
-    return HeaderReadWriteUtils::readCodePointVectorAttributeValue(&mAttributeMap, LOCALE_KEY);
-}
-
-float HeaderPolicy::readMultipleWordCostMultiplier() const {
-    const int demotionRate = HeaderReadWriteUtils::readIntAttributeValue(&mAttributeMap,
-            MULTIPLE_WORDS_DEMOTION_RATE_KEY, DEFAULT_MULTIPLE_WORDS_DEMOTION_RATE);
-    if (demotionRate <= 0) {
-        return static_cast<float>(MAX_VALUE_FOR_WEIGHTING);
-    }
-    return MULTIPLE_WORD_COST_MULTIPLIER_SCALE / static_cast<float>(demotionRate);
-}
-
-bool HeaderPolicy::readRequiresGermanUmlautProcessing() const {
-    return HeaderReadWriteUtils::readBoolAttributeValue(&mAttributeMap,
-            REQUIRES_GERMAN_UMLAUT_PROCESSING_KEY, false);
-}
-
-bool HeaderPolicy::fillInAndWriteHeaderToBuffer(const bool updatesLastDecayedTime,
-        const int unigramCount, const int bigramCount,
-        const int extendedRegionSize, BufferWithExtendableBuffer *const outBuffer) const {
-    int writingPos = 0;
-    DictionaryHeaderStructurePolicy::AttributeMap attributeMapToWrite(mAttributeMap);
-    fillInHeader(updatesLastDecayedTime, unigramCount, bigramCount,
-            extendedRegionSize, &attributeMapToWrite);
-    if (!HeaderReadWriteUtils::writeDictionaryVersion(outBuffer, mDictFormatVersion,
-            &writingPos)) {
-        return false;
-    }
-    if (!HeaderReadWriteUtils::writeDictionaryFlags(outBuffer, mDictionaryFlags,
-            &writingPos)) {
-        return false;
-    }
-    // Temporarily writes a dummy header size.
-    int headerSizeFieldPos = writingPos;
-    if (!HeaderReadWriteUtils::writeDictionaryHeaderSize(outBuffer, 0 /* size */,
-            &writingPos)) {
-        return false;
-    }
-    if (!HeaderReadWriteUtils::writeHeaderAttributes(outBuffer, &attributeMapToWrite,
-            &writingPos)) {
-        return false;
-    }
-    // Writes the actual header size.
-    if (!HeaderReadWriteUtils::writeDictionaryHeaderSize(outBuffer, writingPos,
-            &headerSizeFieldPos)) {
-        return false;
-    }
-    return true;
-}
-
-void HeaderPolicy::fillInHeader(const bool updatesLastDecayedTime, const int unigramCount,
-        const int bigramCount, const int extendedRegionSize,
-        DictionaryHeaderStructurePolicy::AttributeMap *outAttributeMap) const {
-    HeaderReadWriteUtils::setIntAttribute(outAttributeMap, UNIGRAM_COUNT_KEY, unigramCount);
-    HeaderReadWriteUtils::setIntAttribute(outAttributeMap, BIGRAM_COUNT_KEY, bigramCount);
-    HeaderReadWriteUtils::setIntAttribute(outAttributeMap, EXTENDED_REGION_SIZE_KEY,
-            extendedRegionSize);
-    // Set the current time as the generation time.
-    HeaderReadWriteUtils::setIntAttribute(outAttributeMap, DATE_KEY,
-            TimeKeeper::peekCurrentTime());
-    HeaderReadWriteUtils::setCodePointVectorAttribute(outAttributeMap, LOCALE_KEY, mLocale);
-    if (updatesLastDecayedTime) {
-        // Set current time as the last updated time.
-        HeaderReadWriteUtils::setIntAttribute(outAttributeMap, LAST_DECAYED_TIME_KEY,
-                TimeKeeper::peekCurrentTime());
-    }
-}
-
-/* static */ DictionaryHeaderStructurePolicy::AttributeMap
-        HeaderPolicy::createAttributeMapAndReadAllAttributes(const uint8_t *const dictBuf) {
-    DictionaryHeaderStructurePolicy::AttributeMap attributeMap;
-    HeaderReadWriteUtils::fetchAllHeaderAttributes(dictBuf, &attributeMap);
-    return attributeMap;
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/header/header_policy.h b/native/jni/src/suggest/policyimpl/dictionary/header/header_policy.h
deleted file mode 100644
index 87cf0cd..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/header/header_policy.h
+++ /dev/null
@@ -1,307 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_HEADER_POLICY_H
-#define LATINIME_HEADER_POLICY_H
-
-#include <cstdint>
-
-#include "defines.h"
-#include "suggest/core/policy/dictionary_header_structure_policy.h"
-#include "suggest/policyimpl/dictionary/header/header_read_write_utils.h"
-#include "suggest/policyimpl/dictionary/utils/format_utils.h"
-#include "utils/char_utils.h"
-#include "utils/time_keeper.h"
-
-namespace latinime {
-
-class HeaderPolicy : public DictionaryHeaderStructurePolicy {
- public:
-    // Reads information from existing dictionary buffer.
-    HeaderPolicy(const uint8_t *const dictBuf, const FormatUtils::FORMAT_VERSION formatVersion)
-            : mDictFormatVersion(formatVersion),
-              mDictionaryFlags(HeaderReadWriteUtils::getFlags(dictBuf)),
-              mSize(HeaderReadWriteUtils::getHeaderSize(dictBuf)),
-              mAttributeMap(createAttributeMapAndReadAllAttributes(dictBuf)),
-              mLocale(readLocale()),
-              mMultiWordCostMultiplier(readMultipleWordCostMultiplier()),
-              mRequiresGermanUmlautProcessing(readRequiresGermanUmlautProcessing()),
-              mIsDecayingDict(HeaderReadWriteUtils::readBoolAttributeValue(&mAttributeMap,
-                      IS_DECAYING_DICT_KEY, false /* defaultValue */)),
-              mDate(HeaderReadWriteUtils::readIntAttributeValue(&mAttributeMap,
-                      DATE_KEY, TimeKeeper::peekCurrentTime() /* defaultValue */)),
-              mLastDecayedTime(HeaderReadWriteUtils::readIntAttributeValue(&mAttributeMap,
-                      LAST_DECAYED_TIME_KEY, TimeKeeper::peekCurrentTime() /* defaultValue */)),
-              mUnigramCount(HeaderReadWriteUtils::readIntAttributeValue(&mAttributeMap,
-                      UNIGRAM_COUNT_KEY, 0 /* defaultValue */)),
-              mBigramCount(HeaderReadWriteUtils::readIntAttributeValue(&mAttributeMap,
-                      BIGRAM_COUNT_KEY, 0 /* defaultValue */)),
-              mExtendedRegionSize(HeaderReadWriteUtils::readIntAttributeValue(&mAttributeMap,
-                      EXTENDED_REGION_SIZE_KEY, 0 /* defaultValue */)),
-              mHasHistoricalInfoOfWords(HeaderReadWriteUtils::readBoolAttributeValue(
-                      &mAttributeMap, HAS_HISTORICAL_INFO_KEY, false /* defaultValue */)),
-              mForgettingCurveOccurrencesToLevelUp(HeaderReadWriteUtils::readIntAttributeValue(
-                      &mAttributeMap, FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP_KEY,
-                      DEFAULT_FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP)),
-              mForgettingCurveProbabilityValuesTableId(HeaderReadWriteUtils::readIntAttributeValue(
-                      &mAttributeMap, FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID_KEY,
-                      DEFAULT_FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID)),
-              mForgettingCurveDurationToLevelDown(HeaderReadWriteUtils::readIntAttributeValue(
-                      &mAttributeMap, FORGETTING_CURVE_DURATION_TO_LEVEL_DOWN_IN_SECONDS_KEY,
-                      DEFAULT_FORGETTING_CURVE_DURATION_TO_LEVEL_DOWN_IN_SECONDS)),
-              mMaxUnigramCount(HeaderReadWriteUtils::readIntAttributeValue(
-                      &mAttributeMap, MAX_UNIGRAM_COUNT_KEY, DEFAULT_MAX_UNIGRAM_COUNT)),
-              mMaxBigramCount(HeaderReadWriteUtils::readIntAttributeValue(
-                      &mAttributeMap, MAX_BIGRAM_COUNT_KEY, DEFAULT_MAX_BIGRAM_COUNT)) {}
-
-    // Constructs header information using an attribute map.
-    HeaderPolicy(const FormatUtils::FORMAT_VERSION dictFormatVersion,
-            const std::vector<int> &locale,
-            const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap)
-            : mDictFormatVersion(dictFormatVersion),
-              mDictionaryFlags(HeaderReadWriteUtils::createAndGetDictionaryFlagsUsingAttributeMap(
-                      attributeMap)), mSize(0), mAttributeMap(*attributeMap), mLocale(locale),
-              mMultiWordCostMultiplier(readMultipleWordCostMultiplier()),
-              mRequiresGermanUmlautProcessing(readRequiresGermanUmlautProcessing()),
-              mIsDecayingDict(HeaderReadWriteUtils::readBoolAttributeValue(&mAttributeMap,
-                      IS_DECAYING_DICT_KEY, false /* defaultValue */)),
-              mDate(HeaderReadWriteUtils::readIntAttributeValue(&mAttributeMap,
-                      DATE_KEY, TimeKeeper::peekCurrentTime() /* defaultValue */)),
-              mLastDecayedTime(HeaderReadWriteUtils::readIntAttributeValue(&mAttributeMap,
-                      DATE_KEY, TimeKeeper::peekCurrentTime() /* defaultValue */)),
-              mUnigramCount(0), mBigramCount(0), mExtendedRegionSize(0),
-              mHasHistoricalInfoOfWords(HeaderReadWriteUtils::readBoolAttributeValue(
-                      &mAttributeMap, HAS_HISTORICAL_INFO_KEY, false /* defaultValue */)),
-              mForgettingCurveOccurrencesToLevelUp(HeaderReadWriteUtils::readIntAttributeValue(
-                      &mAttributeMap, FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP_KEY,
-                      DEFAULT_FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP)),
-              mForgettingCurveProbabilityValuesTableId(HeaderReadWriteUtils::readIntAttributeValue(
-                      &mAttributeMap, FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID_KEY,
-                      DEFAULT_FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID)),
-              mForgettingCurveDurationToLevelDown(HeaderReadWriteUtils::readIntAttributeValue(
-                      &mAttributeMap, FORGETTING_CURVE_DURATION_TO_LEVEL_DOWN_IN_SECONDS_KEY,
-                      DEFAULT_FORGETTING_CURVE_DURATION_TO_LEVEL_DOWN_IN_SECONDS)),
-              mMaxUnigramCount(HeaderReadWriteUtils::readIntAttributeValue(
-                      &mAttributeMap, MAX_UNIGRAM_COUNT_KEY, DEFAULT_MAX_UNIGRAM_COUNT)),
-              mMaxBigramCount(HeaderReadWriteUtils::readIntAttributeValue(
-                      &mAttributeMap, MAX_BIGRAM_COUNT_KEY, DEFAULT_MAX_BIGRAM_COUNT)) {}
-
-    // Copy header information
-    HeaderPolicy(const HeaderPolicy *const headerPolicy)
-            : mDictFormatVersion(headerPolicy->mDictFormatVersion),
-              mDictionaryFlags(headerPolicy->mDictionaryFlags), mSize(headerPolicy->mSize),
-              mAttributeMap(headerPolicy->mAttributeMap), mLocale(headerPolicy->mLocale),
-              mMultiWordCostMultiplier(headerPolicy->mMultiWordCostMultiplier),
-              mRequiresGermanUmlautProcessing(headerPolicy->mRequiresGermanUmlautProcessing),
-              mIsDecayingDict(headerPolicy->mIsDecayingDict),
-              mDate(headerPolicy->mDate), mLastDecayedTime(headerPolicy->mLastDecayedTime),
-              mUnigramCount(headerPolicy->mUnigramCount), mBigramCount(headerPolicy->mBigramCount),
-              mExtendedRegionSize(headerPolicy->mExtendedRegionSize),
-              mHasHistoricalInfoOfWords(headerPolicy->mHasHistoricalInfoOfWords),
-              mForgettingCurveOccurrencesToLevelUp(
-                      headerPolicy->mForgettingCurveOccurrencesToLevelUp),
-              mForgettingCurveProbabilityValuesTableId(
-                      headerPolicy->mForgettingCurveProbabilityValuesTableId),
-              mForgettingCurveDurationToLevelDown(
-                      headerPolicy->mForgettingCurveDurationToLevelDown),
-              mMaxUnigramCount(headerPolicy->mMaxUnigramCount),
-              mMaxBigramCount(headerPolicy->mMaxBigramCount) {}
-
-    // Temporary dummy header.
-    HeaderPolicy()
-            : mDictFormatVersion(FormatUtils::UNKNOWN_VERSION), mDictionaryFlags(0), mSize(0),
-              mAttributeMap(), mLocale(CharUtils::EMPTY_STRING), mMultiWordCostMultiplier(0.0f),
-              mRequiresGermanUmlautProcessing(false), mIsDecayingDict(false),
-              mDate(0), mLastDecayedTime(0), mUnigramCount(0), mBigramCount(0),
-              mExtendedRegionSize(0), mHasHistoricalInfoOfWords(false),
-              mForgettingCurveOccurrencesToLevelUp(0), mForgettingCurveProbabilityValuesTableId(0),
-              mForgettingCurveDurationToLevelDown(0), mMaxUnigramCount(0), mMaxBigramCount(0) {}
-
-    ~HeaderPolicy() {}
-
-    virtual int getFormatVersionNumber() const {
-        // Conceptually this converts the symbolic value we use in the code into the
-        // hardcoded of the bytes in the file. But we want the constants to be the
-        // same so we use them for both here.
-        switch (mDictFormatVersion) {
-            case FormatUtils::VERSION_2:
-                return FormatUtils::VERSION_2;
-            case FormatUtils::VERSION_4_ONLY_FOR_TESTING:
-                return FormatUtils::VERSION_4_ONLY_FOR_TESTING;
-            case FormatUtils::VERSION_4:
-                return FormatUtils::VERSION_4;
-            case FormatUtils::VERSION_4_DEV:
-                return FormatUtils::VERSION_4_DEV;
-            default:
-                return FormatUtils::UNKNOWN_VERSION;
-        }
-    }
-
-    AK_FORCE_INLINE bool isValid() const {
-        // Decaying dictionary must have historical information.
-        if (!mIsDecayingDict) {
-            return true;
-        }
-        if (mHasHistoricalInfoOfWords) {
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-    AK_FORCE_INLINE int getSize() const {
-        return mSize;
-    }
-
-    AK_FORCE_INLINE float getMultiWordCostMultiplier() const {
-        return mMultiWordCostMultiplier;
-    }
-
-    AK_FORCE_INLINE bool isDecayingDict() const {
-        return mIsDecayingDict;
-    }
-
-    AK_FORCE_INLINE bool requiresGermanUmlautProcessing() const {
-        return mRequiresGermanUmlautProcessing;
-    }
-
-    AK_FORCE_INLINE int getDate() const {
-        return mDate;
-    }
-
-    AK_FORCE_INLINE int getLastDecayedTime() const {
-        return mLastDecayedTime;
-    }
-
-    AK_FORCE_INLINE int getUnigramCount() const {
-        return mUnigramCount;
-    }
-
-    AK_FORCE_INLINE int getBigramCount() const {
-        return mBigramCount;
-    }
-
-    AK_FORCE_INLINE int getExtendedRegionSize() const {
-        return mExtendedRegionSize;
-    }
-
-    AK_FORCE_INLINE bool hasHistoricalInfoOfWords() const {
-        return mHasHistoricalInfoOfWords;
-    }
-
-    AK_FORCE_INLINE bool shouldBoostExactMatches() const {
-        // TODO: Investigate better ways to handle exact matches for personalized dictionaries.
-        return !isDecayingDict();
-    }
-
-    const DictionaryHeaderStructurePolicy::AttributeMap *getAttributeMap() const {
-        return &mAttributeMap;
-    }
-
-    AK_FORCE_INLINE int getForgettingCurveOccurrencesToLevelUp() const {
-        return mForgettingCurveOccurrencesToLevelUp;
-    }
-
-    AK_FORCE_INLINE int getForgettingCurveProbabilityValuesTableId() const {
-        return mForgettingCurveProbabilityValuesTableId;
-    }
-
-    AK_FORCE_INLINE int getForgettingCurveDurationToLevelDown() const {
-        return mForgettingCurveDurationToLevelDown;
-    }
-
-    AK_FORCE_INLINE int getMaxUnigramCount() const {
-        return mMaxUnigramCount;
-    }
-
-    AK_FORCE_INLINE int getMaxBigramCount() const {
-        return mMaxBigramCount;
-    }
-
-    void readHeaderValueOrQuestionMark(const char *const key,
-            int *outValue, int outValueSize) const;
-
-    bool fillInAndWriteHeaderToBuffer(const bool updatesLastDecayedTime,
-            const int unigramCount, const int bigramCount,
-            const int extendedRegionSize, BufferWithExtendableBuffer *const outBuffer) const;
-
-    void fillInHeader(const bool updatesLastDecayedTime,
-            const int unigramCount, const int bigramCount, const int extendedRegionSize,
-            DictionaryHeaderStructurePolicy::AttributeMap *outAttributeMap) const;
-
-    AK_FORCE_INLINE const std::vector<int> *getLocale() const {
-        return &mLocale;
-    }
-
-    bool supportsBeginningOfSentence() const {
-        return mDictFormatVersion >= FormatUtils::VERSION_4;
-    }
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(HeaderPolicy);
-
-    static const char *const MULTIPLE_WORDS_DEMOTION_RATE_KEY;
-    static const char *const REQUIRES_GERMAN_UMLAUT_PROCESSING_KEY;
-    static const char *const IS_DECAYING_DICT_KEY;
-    static const char *const DATE_KEY;
-    static const char *const LAST_DECAYED_TIME_KEY;
-    static const char *const UNIGRAM_COUNT_KEY;
-    static const char *const BIGRAM_COUNT_KEY;
-    static const char *const EXTENDED_REGION_SIZE_KEY;
-    static const char *const HAS_HISTORICAL_INFO_KEY;
-    static const char *const LOCALE_KEY;
-    static const char *const FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP_KEY;
-    static const char *const FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID_KEY;
-    static const char *const FORGETTING_CURVE_DURATION_TO_LEVEL_DOWN_IN_SECONDS_KEY;
-    static const char *const MAX_UNIGRAM_COUNT_KEY;
-    static const char *const MAX_BIGRAM_COUNT_KEY;
-    static const int DEFAULT_MULTIPLE_WORDS_DEMOTION_RATE;
-    static const float MULTIPLE_WORD_COST_MULTIPLIER_SCALE;
-    static const int DEFAULT_FORGETTING_CURVE_OCCURRENCES_TO_LEVEL_UP;
-    static const int DEFAULT_FORGETTING_CURVE_PROBABILITY_VALUES_TABLE_ID;
-    static const int DEFAULT_FORGETTING_CURVE_DURATION_TO_LEVEL_DOWN_IN_SECONDS;
-    static const int DEFAULT_MAX_UNIGRAM_COUNT;
-    static const int DEFAULT_MAX_BIGRAM_COUNT;
-
-    const FormatUtils::FORMAT_VERSION mDictFormatVersion;
-    const HeaderReadWriteUtils::DictionaryFlags mDictionaryFlags;
-    const int mSize;
-    DictionaryHeaderStructurePolicy::AttributeMap mAttributeMap;
-    const std::vector<int> mLocale;
-    const float mMultiWordCostMultiplier;
-    const bool mRequiresGermanUmlautProcessing;
-    const bool mIsDecayingDict;
-    const int mDate;
-    const int mLastDecayedTime;
-    const int mUnigramCount;
-    const int mBigramCount;
-    const int mExtendedRegionSize;
-    const bool mHasHistoricalInfoOfWords;
-    const int mForgettingCurveOccurrencesToLevelUp;
-    const int mForgettingCurveProbabilityValuesTableId;
-    const int mForgettingCurveDurationToLevelDown;
-    const int mMaxUnigramCount;
-    const int mMaxBigramCount;
-
-    const std::vector<int> readLocale() const;
-    float readMultipleWordCostMultiplier() const;
-    bool readRequiresGermanUmlautProcessing() const;
-
-    static DictionaryHeaderStructurePolicy::AttributeMap createAttributeMapAndReadAllAttributes(
-            const uint8_t *const dictBuf);
-};
-} // namespace latinime
-#endif /* LATINIME_HEADER_POLICY_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/header/header_read_write_utils.cpp b/native/jni/src/suggest/policyimpl/dictionary/header/header_read_write_utils.cpp
deleted file mode 100644
index a8f8f28..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/header/header_read_write_utils.cpp
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/header/header_read_write_utils.h"
-
-#include <cctype>
-#include <cstdio>
-#include <vector>
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/byte_array_utils.h"
-
-namespace latinime {
-
-// Number of base-10 digits in the largest integer + 1 to leave room for a zero terminator.
-// As such, this is the maximum number of characters will be needed to represent an int as a
-// string, including the terminator; this is used as the size of a string buffer large enough to
-// hold any value that is intended to fit in an integer, e.g. in the code that reads the header
-// of the binary dictionary where a {key,value} string pair scheme is used.
-const int HeaderReadWriteUtils::LARGEST_INT_DIGIT_COUNT = 11;
-
-const int HeaderReadWriteUtils::MAX_ATTRIBUTE_KEY_LENGTH = 256;
-const int HeaderReadWriteUtils::MAX_ATTRIBUTE_VALUE_LENGTH = 256;
-
-const int HeaderReadWriteUtils::HEADER_MAGIC_NUMBER_SIZE = 4;
-const int HeaderReadWriteUtils::HEADER_DICTIONARY_VERSION_SIZE = 2;
-const int HeaderReadWriteUtils::HEADER_FLAG_SIZE = 2;
-const int HeaderReadWriteUtils::HEADER_SIZE_FIELD_SIZE = 4;
-
-const HeaderReadWriteUtils::DictionaryFlags HeaderReadWriteUtils::NO_FLAGS = 0;
-
-typedef DictionaryHeaderStructurePolicy::AttributeMap AttributeMap;
-
-/* static */ int HeaderReadWriteUtils::getHeaderSize(const uint8_t *const dictBuf) {
-    // See the format of the header in the comment in
-    // BinaryDictionaryFormatUtils::detectFormatVersion()
-    return ByteArrayUtils::readUint32(dictBuf, HEADER_MAGIC_NUMBER_SIZE
-            + HEADER_DICTIONARY_VERSION_SIZE + HEADER_FLAG_SIZE);
-}
-
-/* static */ HeaderReadWriteUtils::DictionaryFlags
-        HeaderReadWriteUtils::getFlags(const uint8_t *const dictBuf) {
-    return ByteArrayUtils::readUint16(dictBuf,
-            HEADER_MAGIC_NUMBER_SIZE + HEADER_DICTIONARY_VERSION_SIZE);
-}
-
-/* static */ HeaderReadWriteUtils::DictionaryFlags
-        HeaderReadWriteUtils::createAndGetDictionaryFlagsUsingAttributeMap(
-                const AttributeMap *const attributeMap) {
-    return NO_FLAGS;
-}
-
-/* static */ void HeaderReadWriteUtils::fetchAllHeaderAttributes(const uint8_t *const dictBuf,
-        AttributeMap *const headerAttributes) {
-    const int headerSize = getHeaderSize(dictBuf);
-    int pos = getHeaderOptionsPosition();
-    if (pos == NOT_A_DICT_POS) {
-        // The header doesn't have header options.
-        return;
-    }
-    int keyBuffer[MAX_ATTRIBUTE_KEY_LENGTH];
-    int valueBuffer[MAX_ATTRIBUTE_VALUE_LENGTH];
-    while (pos < headerSize) {
-        const int keyLength = ByteArrayUtils::readStringAndAdvancePosition(dictBuf,
-                MAX_ATTRIBUTE_KEY_LENGTH, keyBuffer, &pos);
-        std::vector<int> key;
-        key.insert(key.end(), keyBuffer, keyBuffer + keyLength);
-        const int valueLength = ByteArrayUtils::readStringAndAdvancePosition(dictBuf,
-                MAX_ATTRIBUTE_VALUE_LENGTH, valueBuffer, &pos);
-        std::vector<int> value;
-        value.insert(value.end(), valueBuffer, valueBuffer + valueLength);
-        headerAttributes->insert(AttributeMap::value_type(key, value));
-    }
-}
-
-/* static */ bool HeaderReadWriteUtils::writeDictionaryVersion(
-        BufferWithExtendableBuffer *const buffer, const FormatUtils::FORMAT_VERSION version,
-        int *const writingPos) {
-    if (!buffer->writeUintAndAdvancePosition(FormatUtils::MAGIC_NUMBER, HEADER_MAGIC_NUMBER_SIZE,
-            writingPos)) {
-        return false;
-    }
-    switch (version) {
-        case FormatUtils::VERSION_2:
-            // Version 2 dictionary writing is not supported.
-            return false;
-        case FormatUtils::VERSION_4_ONLY_FOR_TESTING:
-        case FormatUtils::VERSION_4:
-        case FormatUtils::VERSION_4_DEV:
-            return buffer->writeUintAndAdvancePosition(version /* data */,
-                    HEADER_DICTIONARY_VERSION_SIZE, writingPos);
-        default:
-            return false;
-    }
-}
-
-/* static */ bool HeaderReadWriteUtils::writeDictionaryFlags(
-        BufferWithExtendableBuffer *const buffer, const DictionaryFlags flags,
-        int *const writingPos) {
-    return buffer->writeUintAndAdvancePosition(flags, HEADER_FLAG_SIZE, writingPos);
-}
-
-/* static */ bool HeaderReadWriteUtils::writeDictionaryHeaderSize(
-        BufferWithExtendableBuffer *const buffer, const int size, int *const writingPos) {
-    return buffer->writeUintAndAdvancePosition(size, HEADER_SIZE_FIELD_SIZE, writingPos);
-}
-
-/* static */ bool HeaderReadWriteUtils::writeHeaderAttributes(
-        BufferWithExtendableBuffer *const buffer, const AttributeMap *const headerAttributes,
-        int *const writingPos) {
-    for (AttributeMap::const_iterator it = headerAttributes->begin();
-            it != headerAttributes->end(); ++it) {
-        if (it->first.empty() || it->second.empty()) {
-            continue;
-        }
-        // Write a key.
-        if (!buffer->writeCodePointsAndAdvancePosition(&(it->first.at(0)), it->first.size(),
-                true /* writesTerminator */, writingPos)) {
-            return false;
-        }
-        // Write a value.
-        if (!buffer->writeCodePointsAndAdvancePosition(&(it->second.at(0)), it->second.size(),
-                true /* writesTerminator */, writingPos)) {
-            return false;
-        }
-    }
-    return true;
-}
-
-/* static */ void HeaderReadWriteUtils::setCodePointVectorAttribute(
-        AttributeMap *const headerAttributes, const char *const key, const std::vector<int> value) {
-    AttributeMap::key_type keyVector;
-    insertCharactersIntoVector(key, &keyVector);
-    (*headerAttributes)[keyVector] = value;
-}
-
-/* static */ void HeaderReadWriteUtils::setBoolAttribute(AttributeMap *const headerAttributes,
-        const char *const key, const bool value) {
-    setIntAttribute(headerAttributes, key, value ? 1 : 0);
-}
-
-/* static */ void HeaderReadWriteUtils::setIntAttribute(AttributeMap *const headerAttributes,
-        const char *const key, const int value) {
-    AttributeMap::key_type keyVector;
-    insertCharactersIntoVector(key, &keyVector);
-    setIntAttributeInner(headerAttributes, &keyVector, value);
-}
-
-/* static */ void HeaderReadWriteUtils::setIntAttributeInner(AttributeMap *const headerAttributes,
-        const AttributeMap::key_type *const key, const int value) {
-    AttributeMap::mapped_type valueVector;
-    char charBuf[LARGEST_INT_DIGIT_COUNT];
-    snprintf(charBuf, sizeof(charBuf), "%d", value);
-    insertCharactersIntoVector(charBuf, &valueVector);
-    (*headerAttributes)[*key] = valueVector;
-}
-
-/* static */ const std::vector<int> HeaderReadWriteUtils::readCodePointVectorAttributeValue(
-        const AttributeMap *const headerAttributes, const char *const key) {
-    AttributeMap::key_type keyVector;
-    insertCharactersIntoVector(key, &keyVector);
-    AttributeMap::const_iterator it = headerAttributes->find(keyVector);
-    if (it == headerAttributes->end()) {
-        return std::vector<int>();
-    } else {
-        return it->second;
-    }
-}
-
-/* static */ bool HeaderReadWriteUtils::readBoolAttributeValue(
-        const AttributeMap *const headerAttributes, const char *const key,
-        const bool defaultValue) {
-    const int intDefaultValue = defaultValue ? 1 : 0;
-    const int intValue = readIntAttributeValue(headerAttributes, key, intDefaultValue);
-    return intValue != 0;
-}
-
-/* static */ int HeaderReadWriteUtils::readIntAttributeValue(
-        const AttributeMap *const headerAttributes, const char *const key,
-        const int defaultValue) {
-    AttributeMap::key_type keyVector;
-    insertCharactersIntoVector(key, &keyVector);
-    return readIntAttributeValueInner(headerAttributes, &keyVector, defaultValue);
-}
-
-/* static */ int HeaderReadWriteUtils::readIntAttributeValueInner(
-        const AttributeMap *const headerAttributes, const AttributeMap::key_type *const key,
-        const int defaultValue) {
-    AttributeMap::const_iterator it = headerAttributes->find(*key);
-    if (it != headerAttributes->end()) {
-        int value = 0;
-        bool isNegative = false;
-        for (size_t i = 0; i < it->second.size(); ++i) {
-            if (i == 0 && it->second.at(i) == '-') {
-                isNegative = true;
-            } else {
-                if (!isdigit(it->second.at(i))) {
-                    // If not a number.
-                    return defaultValue;
-                }
-                value *= 10;
-                value += it->second.at(i) - '0';
-            }
-        }
-        return isNegative ? -value : value;
-    }
-    return defaultValue;
-}
-
-/* static */ void HeaderReadWriteUtils::insertCharactersIntoVector(const char *const characters,
-        std::vector<int> *const vector) {
-    for (int i = 0; characters[i]; ++i) {
-        vector->push_back(characters[i]);
-    }
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/header/header_read_write_utils.h b/native/jni/src/suggest/policyimpl/dictionary/header/header_read_write_utils.h
deleted file mode 100644
index 9b90488..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/header/header_read_write_utils.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_HEADER_READ_WRITE_UTILS_H
-#define LATINIME_HEADER_READ_WRITE_UTILS_H
-
-#include <cstdint>
-
-#include "defines.h"
-#include "suggest/core/policy/dictionary_header_structure_policy.h"
-#include "suggest/policyimpl/dictionary/utils/format_utils.h"
-
-namespace latinime {
-
-class BufferWithExtendableBuffer;
-
-class HeaderReadWriteUtils {
- public:
-    typedef uint16_t DictionaryFlags;
-
-    static int getHeaderSize(const uint8_t *const dictBuf);
-
-    static DictionaryFlags getFlags(const uint8_t *const dictBuf);
-
-    static AK_FORCE_INLINE int getHeaderOptionsPosition() {
-        return HEADER_MAGIC_NUMBER_SIZE + HEADER_DICTIONARY_VERSION_SIZE + HEADER_FLAG_SIZE
-                + HEADER_SIZE_FIELD_SIZE;
-    }
-
-    static DictionaryFlags createAndGetDictionaryFlagsUsingAttributeMap(
-            const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap);
-
-    static void fetchAllHeaderAttributes(const uint8_t *const dictBuf,
-            DictionaryHeaderStructurePolicy::AttributeMap *const headerAttributes);
-
-    static bool writeDictionaryVersion(BufferWithExtendableBuffer *const buffer,
-            const FormatUtils::FORMAT_VERSION version, int *const writingPos);
-
-    static bool writeDictionaryFlags(BufferWithExtendableBuffer *const buffer,
-            const DictionaryFlags flags, int *const writingPos);
-
-    static bool writeDictionaryHeaderSize(BufferWithExtendableBuffer *const buffer,
-            const int size, int *const writingPos);
-
-    static bool writeHeaderAttributes(BufferWithExtendableBuffer *const buffer,
-            const DictionaryHeaderStructurePolicy::AttributeMap *const headerAttributes,
-            int *const writingPos);
-
-    /**
-     * Methods for header attributes.
-     */
-    static void setCodePointVectorAttribute(
-            DictionaryHeaderStructurePolicy::AttributeMap *const headerAttributes,
-            const char *const key, const std::vector<int> value);
-
-    static void setBoolAttribute(
-            DictionaryHeaderStructurePolicy::AttributeMap *const headerAttributes,
-            const char *const key, const bool value);
-
-    static void setIntAttribute(
-            DictionaryHeaderStructurePolicy::AttributeMap *const headerAttributes,
-            const char *const key, const int value);
-
-    static const std::vector<int> readCodePointVectorAttributeValue(
-            const DictionaryHeaderStructurePolicy::AttributeMap *const headerAttributes,
-            const char *const key);
-
-    static bool readBoolAttributeValue(
-            const DictionaryHeaderStructurePolicy::AttributeMap *const headerAttributes,
-            const char *const key, const bool defaultValue);
-
-    static int readIntAttributeValue(
-            const DictionaryHeaderStructurePolicy::AttributeMap *const headerAttributes,
-            const char *const key, const int defaultValue);
-
-    static void insertCharactersIntoVector(const char *const characters,
-            DictionaryHeaderStructurePolicy::AttributeMap::key_type *const key);
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(HeaderReadWriteUtils);
-
-    static const int LARGEST_INT_DIGIT_COUNT;
-    static const int MAX_ATTRIBUTE_KEY_LENGTH;
-    static const int MAX_ATTRIBUTE_VALUE_LENGTH;
-
-    static const int HEADER_MAGIC_NUMBER_SIZE;
-    static const int HEADER_DICTIONARY_VERSION_SIZE;
-    static const int HEADER_FLAG_SIZE;
-    static const int HEADER_SIZE_FIELD_SIZE;
-
-    // Value for the "flags" field. It's unused at the moment.
-    static const DictionaryFlags NO_FLAGS;
-
-    static void setIntAttributeInner(
-            DictionaryHeaderStructurePolicy::AttributeMap *const headerAttributes,
-            const DictionaryHeaderStructurePolicy::AttributeMap::key_type *const key,
-            const int value);
-
-    static int readIntAttributeValueInner(
-            const DictionaryHeaderStructurePolicy::AttributeMap *const headerAttributes,
-            const DictionaryHeaderStructurePolicy::AttributeMap::key_type *const key,
-            const int defaultValue);
-};
-}
-#endif /* LATINIME_HEADER_READ_WRITE_UTILS_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.cpp
deleted file mode 100644
index 3e8e059..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.cpp
+++ /dev/null
@@ -1,290 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT CHANGE THE LOGIC IN THIS FILE !!!!!
- * Do not edit this file other than updating policy's interface.
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/bigram/ver4_bigram_list_policy.cpp
- */
-
-#include "suggest/policyimpl/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h"
-
-#include "suggest/core/dictionary/property/bigram_property.h"
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-void Ver4BigramListPolicy::getNextBigram(int *const outBigramPos, int *const outProbability,
-        bool *const outHasNext, int *const bigramEntryPos) const {
-    const BigramEntry bigramEntry =
-            mBigramDictContent->getBigramEntryAndAdvancePosition(bigramEntryPos);
-    if (outBigramPos) {
-        // Lookup target PtNode position.
-        *outBigramPos = mTerminalPositionLookupTable->getTerminalPtNodePosition(
-                bigramEntry.getTargetTerminalId());
-    }
-    if (outProbability) {
-        if (bigramEntry.hasHistoricalInfo()) {
-            *outProbability =
-                    ForgettingCurveUtils::decodeProbability(bigramEntry.getHistoricalInfo(),
-                            mHeaderPolicy);
-        } else {
-            *outProbability = bigramEntry.getProbability();
-        }
-    }
-    if (outHasNext) {
-        *outHasNext = bigramEntry.hasNext();
-    }
-}
-
-bool Ver4BigramListPolicy::addNewEntry(const int terminalId, const int newTargetTerminalId,
-        const BigramProperty *const bigramProperty, bool *const outAddedNewEntry) {
-    // 1. The word has no bigrams yet.
-    // 2. The word has bigrams, and there is the target in the list.
-    // 3. The word has bigrams, and there is an invalid entry that can be reclaimed.
-    // 4. The word has bigrams. We have to append new bigram entry to the list.
-    // 5. Same as 4, but the list is the last entry of the content file.
-    if (outAddedNewEntry) {
-        *outAddedNewEntry = false;
-    }
-    const int bigramListPos = mBigramDictContent->getBigramListHeadPos(terminalId);
-    if (bigramListPos == NOT_A_DICT_POS) {
-        // Case 1. PtNode that doesn't have a bigram list.
-        // Create new bigram list.
-        if (!mBigramDictContent->createNewBigramList(terminalId)) {
-            return false;
-        }
-        const BigramEntry newBigramEntry(false /* hasNext */, NOT_A_PROBABILITY,
-                newTargetTerminalId);
-        const BigramEntry bigramEntryToWrite = createUpdatedBigramEntryFrom(&newBigramEntry,
-                bigramProperty);
-        // Write an entry.
-        const int writingPos =  mBigramDictContent->getBigramListHeadPos(terminalId);
-        if (!mBigramDictContent->writeBigramEntry(&bigramEntryToWrite, writingPos)) {
-            return false;
-        }
-        if (outAddedNewEntry) {
-            *outAddedNewEntry = true;
-        }
-        return true;
-    }
-
-    int tailEntryPos = NOT_A_DICT_POS;
-    const int entryPosToUpdate = getEntryPosToUpdate(newTargetTerminalId, bigramListPos,
-            &tailEntryPos);
-    if (tailEntryPos != NOT_A_DICT_POS || entryPosToUpdate == NOT_A_DICT_POS) {
-        // Case 4, 5.
-        // Add new entry to the bigram list.
-        if (tailEntryPos == NOT_A_DICT_POS) {
-            // Case 4. Create new bigram list.
-            if (!mBigramDictContent->createNewBigramList(terminalId)) {
-                return false;
-            }
-            const int destPos = mBigramDictContent->getBigramListHeadPos(terminalId);
-            // Copy existing bigram list.
-            if (!mBigramDictContent->copyBigramList(bigramListPos, destPos, &tailEntryPos)) {
-                return false;
-            }
-        }
-        // Write new entry at the tail position of the bigram content.
-        const BigramEntry newBigramEntry(false /* hasNext */, NOT_A_PROBABILITY,
-                newTargetTerminalId);
-        const BigramEntry bigramEntryToWrite = createUpdatedBigramEntryFrom(
-                &newBigramEntry, bigramProperty);
-        if (!mBigramDictContent->writeBigramEntryAtTail(&bigramEntryToWrite)) {
-            return false;
-        }
-        // Update has next flag of the tail entry.
-        if (!updateHasNextFlag(true /* hasNext */, tailEntryPos)) {
-            return false;
-        }
-        if (outAddedNewEntry) {
-            *outAddedNewEntry = true;
-        }
-        return true;
-    }
-
-    // Case 2. Overwrite the existing entry. Case 3. Reclaim and reuse the existing invalid entry.
-    const BigramEntry originalBigramEntry = mBigramDictContent->getBigramEntry(entryPosToUpdate);
-    if (!originalBigramEntry.isValid()) {
-        // Case 3. Reuse the existing invalid entry. outAddedNewEntry is false when an existing
-        // entry is updated.
-        if (outAddedNewEntry) {
-            *outAddedNewEntry = true;
-        }
-    }
-    const BigramEntry updatedBigramEntry =
-            originalBigramEntry.updateTargetTerminalIdAndGetEntry(newTargetTerminalId);
-    const BigramEntry bigramEntryToWrite = createUpdatedBigramEntryFrom(
-            &updatedBigramEntry, bigramProperty);
-    return mBigramDictContent->writeBigramEntry(&bigramEntryToWrite, entryPosToUpdate);
-}
-
-bool Ver4BigramListPolicy::removeEntry(const int terminalId, const int targetTerminalId) {
-    const int bigramListPos = mBigramDictContent->getBigramListHeadPos(terminalId);
-    if (bigramListPos == NOT_A_DICT_POS) {
-        // Bigram list doesn't exist.
-        return false;
-    }
-    const int entryPosToUpdate = getEntryPosToUpdate(targetTerminalId, bigramListPos,
-            nullptr /* outTailEntryPos */);
-    if (entryPosToUpdate == NOT_A_DICT_POS) {
-        // Bigram entry doesn't exist.
-        return false;
-    }
-    const BigramEntry bigramEntry = mBigramDictContent->getBigramEntry(entryPosToUpdate);
-    if (targetTerminalId != bigramEntry.getTargetTerminalId()) {
-        // Bigram entry doesn't exist.
-        return false;
-    }
-    // Remove bigram entry by marking it as invalid entry and overwriting the original entry.
-    const BigramEntry updatedBigramEntry = bigramEntry.getInvalidatedEntry();
-    return mBigramDictContent->writeBigramEntry(&updatedBigramEntry, entryPosToUpdate);
-}
-
-bool Ver4BigramListPolicy::updateAllBigramEntriesAndDeleteUselessEntries(const int terminalId,
-        int *const outBigramCount) {
-    const int bigramListPos = mBigramDictContent->getBigramListHeadPos(terminalId);
-    if (bigramListPos == NOT_A_DICT_POS) {
-        // Bigram list doesn't exist.
-        return true;
-    }
-    bool hasNext = true;
-    int readingPos = bigramListPos;
-    while (hasNext) {
-        const int entryPos = readingPos;
-        const BigramEntry bigramEntry =
-                mBigramDictContent->getBigramEntryAndAdvancePosition(&readingPos);
-        hasNext = bigramEntry.hasNext();
-        if (!bigramEntry.isValid()) {
-            continue;
-        }
-        const int targetPtNodePos = mTerminalPositionLookupTable->getTerminalPtNodePosition(
-                bigramEntry.getTargetTerminalId());
-        if (targetPtNodePos == NOT_A_DICT_POS) {
-            // Invalidate bigram entry.
-            const BigramEntry updatedBigramEntry = bigramEntry.getInvalidatedEntry();
-            if (!mBigramDictContent->writeBigramEntry(&updatedBigramEntry, entryPos)) {
-                return false;
-            }
-        } else if (bigramEntry.hasHistoricalInfo()) {
-            const HistoricalInfo historicalInfo = ForgettingCurveUtils::createHistoricalInfoToSave(
-                    bigramEntry.getHistoricalInfo(), mHeaderPolicy);
-            if (ForgettingCurveUtils::needsToKeep(&historicalInfo, mHeaderPolicy)) {
-                const BigramEntry updatedBigramEntry =
-                        bigramEntry.updateHistoricalInfoAndGetEntry(&historicalInfo);
-                if (!mBigramDictContent->writeBigramEntry(&updatedBigramEntry, entryPos)) {
-                    return false;
-                }
-                *outBigramCount += 1;
-            } else {
-                // Remove entry.
-                const BigramEntry updatedBigramEntry = bigramEntry.getInvalidatedEntry();
-                if (!mBigramDictContent->writeBigramEntry(&updatedBigramEntry, entryPos)) {
-                    return false;
-                }
-            }
-        } else {
-            *outBigramCount += 1;
-        }
-    }
-    return true;
-}
-
-int Ver4BigramListPolicy::getBigramEntryConut(const int terminalId) {
-    const int bigramListPos = mBigramDictContent->getBigramListHeadPos(terminalId);
-    if (bigramListPos == NOT_A_DICT_POS) {
-        // Bigram list doesn't exist.
-        return 0;
-    }
-    int bigramCount = 0;
-    bool hasNext = true;
-    int readingPos = bigramListPos;
-    while (hasNext) {
-        const BigramEntry bigramEntry =
-                mBigramDictContent->getBigramEntryAndAdvancePosition(&readingPos);
-        hasNext = bigramEntry.hasNext();
-        if (bigramEntry.isValid()) {
-            bigramCount++;
-        }
-    }
-    return bigramCount;
-}
-
-int Ver4BigramListPolicy::getEntryPosToUpdate(const int targetTerminalIdToFind,
-        const int bigramListPos, int *const outTailEntryPos) const {
-    if (outTailEntryPos) {
-        *outTailEntryPos = NOT_A_DICT_POS;
-    }
-    bool hasNext = true;
-    int invalidEntryPos = NOT_A_DICT_POS;
-    int readingPos = bigramListPos;
-    while (hasNext) {
-        const int entryPos = readingPos;
-        const BigramEntry bigramEntry =
-                mBigramDictContent->getBigramEntryAndAdvancePosition(&readingPos);
-        hasNext = bigramEntry.hasNext();
-        if (bigramEntry.getTargetTerminalId() == targetTerminalIdToFind) {
-            // Entry with same target is found.
-            return entryPos;
-        } else if (!bigramEntry.isValid()) {
-            // Invalid entry that can be reused is found.
-            invalidEntryPos = entryPos;
-        }
-        if (!hasNext && mBigramDictContent->isContentTailPos(readingPos)) {
-            if (outTailEntryPos) {
-                *outTailEntryPos = entryPos;
-            }
-        }
-    }
-    return invalidEntryPos;
-}
-
-const BigramEntry Ver4BigramListPolicy::createUpdatedBigramEntryFrom(
-        const BigramEntry *const originalBigramEntry,
-        const BigramProperty *const bigramProperty) const {
-    // TODO: Consolidate historical info and probability.
-    if (mHeaderPolicy->hasHistoricalInfoOfWords()) {
-        const HistoricalInfo historicalInfoForUpdate(bigramProperty->getTimestamp(),
-                bigramProperty->getLevel(), bigramProperty->getCount());
-        const HistoricalInfo updatedHistoricalInfo =
-                ForgettingCurveUtils::createUpdatedHistoricalInfo(
-                        originalBigramEntry->getHistoricalInfo(), bigramProperty->getProbability(),
-                        &historicalInfoForUpdate, mHeaderPolicy);
-        return originalBigramEntry->updateHistoricalInfoAndGetEntry(&updatedHistoricalInfo);
-    } else {
-        return originalBigramEntry->updateProbabilityAndGetEntry(bigramProperty->getProbability());
-    }
-}
-
-bool Ver4BigramListPolicy::updateHasNextFlag(const bool hasNext, const int bigramEntryPos) {
-    const BigramEntry bigramEntry = mBigramDictContent->getBigramEntry(bigramEntryPos);
-    const BigramEntry updatedBigramEntry = bigramEntry.updateHasNextAndGetEntry(hasNext);
-    return mBigramDictContent->writeBigramEntry(&updatedBigramEntry, bigramEntryPos);
-}
-
-} // namespace v402
-} // namespace backward
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h
deleted file mode 100644
index 50a4c97..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT CHANGE THE LOGIC IN THIS FILE !!!!!
- * Do not edit this file other than updating policy's interface.
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/bigram/ver4_bigram_list_policy.h
- */
-
-#ifndef LATINIME_BACKWARD_V402_VER4_BIGRAM_LIST_POLICY_H
-#define LATINIME_BACKWARD_V402_VER4_BIGRAM_LIST_POLICY_H
-
-#include "defines.h"
-#include "suggest/core/policy/dictionary_bigrams_structure_policy.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_entry.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-class BigramDictContent;
-} // namespace v402
-} // namespace backward
-class BigramProperty;
-namespace backward {
-namespace v402 {
-} // namespace v402
-} // namespace backward
-class HeaderPolicy;
-namespace backward {
-namespace v402 {
-class TerminalPositionLookupTable;
-
-class Ver4BigramListPolicy : public DictionaryBigramsStructurePolicy {
- public:
-    Ver4BigramListPolicy(BigramDictContent *const bigramDictContent,
-            const TerminalPositionLookupTable *const terminalPositionLookupTable,
-            const HeaderPolicy *const headerPolicy)
-            : mBigramDictContent(bigramDictContent),
-              mTerminalPositionLookupTable(terminalPositionLookupTable),
-              mHeaderPolicy(headerPolicy) {}
-
-    void getNextBigram(int *const outBigramPos, int *const outProbability,
-            bool *const outHasNext, int *const bigramEntryPos) const;
-
-    bool skipAllBigrams(int *const pos) const {
-        // Do nothing because we don't need to skip bigram lists in ver4 dictionaries.
-        return true;
-    }
-
-    bool addNewEntry(const int terminalId, const int newTargetTerminalId,
-            const BigramProperty *const bigramProperty, bool *const outAddedNewEntry);
-
-    bool removeEntry(const int terminalId, const int targetTerminalId);
-
-    bool updateAllBigramEntriesAndDeleteUselessEntries(const int terminalId,
-            int *const outBigramCount);
-
-    int getBigramEntryConut(const int terminalId);
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(Ver4BigramListPolicy);
-
-    int getEntryPosToUpdate(const int targetTerminalIdToFind, const int bigramListPos,
-            int *const outTailEntryPos) const;
-
-    const BigramEntry createUpdatedBigramEntryFrom(const BigramEntry *const originalBigramEntry,
-            const BigramProperty *const bigramProperty) const;
-
-    bool updateHasNextFlag(const bool hasNext, const int bigramEntryPos);
-
-    BigramDictContent *const mBigramDictContent;
-    const TerminalPositionLookupTable *const mTerminalPositionLookupTable;
-    const HeaderPolicy *const mHeaderPolicy;
-};
-} // namespace v402
-} // namespace backward
-} // namespace latinime
-#endif /* LATINIME_BACKWARD_V402_VER4_BIGRAM_LIST_POLICY_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_dict_content.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_dict_content.cpp
deleted file mode 100644
index e2dd93c..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_dict_content.cpp
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.cpp
- */
-
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_dict_content.h"
-
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-const BigramEntry BigramDictContent::getBigramEntryAndAdvancePosition(
-        int *const bigramEntryPos) const {
-    const BufferWithExtendableBuffer *const bigramListBuffer = getContentBuffer();
-    const int bigramEntryTailPos = (*bigramEntryPos) + getBigramEntrySize();
-    if (*bigramEntryPos < 0 || bigramEntryTailPos > bigramListBuffer->getTailPosition()) {
-        AKLOGE("Invalid bigram entry position. bigramEntryPos: %d, bigramEntryTailPos: %d, "
-                "bufSize: %d", *bigramEntryPos, bigramEntryTailPos,
-                        bigramListBuffer->getTailPosition());
-        ASSERT(false);
-        return BigramEntry(false /* hasNext */, NOT_A_PROBABILITY,
-                Ver4DictConstants::NOT_A_TERMINAL_ID);
-    }
-    const int bigramFlags = bigramListBuffer->readUintAndAdvancePosition(
-            Ver4DictConstants::BIGRAM_FLAGS_FIELD_SIZE, bigramEntryPos);
-    const bool hasNext = (bigramFlags & Ver4DictConstants::BIGRAM_HAS_NEXT_MASK) != 0;
-    int probability = NOT_A_PROBABILITY;
-    int timestamp = NOT_A_TIMESTAMP;
-    int level = 0;
-    int count = 0;
-    if (mHasHistoricalInfo) {
-        timestamp = bigramListBuffer->readUintAndAdvancePosition(
-                Ver4DictConstants::TIME_STAMP_FIELD_SIZE, bigramEntryPos);
-        level = bigramListBuffer->readUintAndAdvancePosition(
-                Ver4DictConstants::WORD_LEVEL_FIELD_SIZE, bigramEntryPos);
-        count = bigramListBuffer->readUintAndAdvancePosition(
-                Ver4DictConstants::WORD_COUNT_FIELD_SIZE, bigramEntryPos);
-    } else {
-        probability = bigramListBuffer->readUintAndAdvancePosition(
-                Ver4DictConstants::PROBABILITY_SIZE, bigramEntryPos);
-    }
-    const int encodedTargetTerminalId = bigramListBuffer->readUintAndAdvancePosition(
-            Ver4DictConstants::BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE, bigramEntryPos);
-    const int targetTerminalId =
-            (encodedTargetTerminalId == Ver4DictConstants::INVALID_BIGRAM_TARGET_TERMINAL_ID) ?
-                    Ver4DictConstants::NOT_A_TERMINAL_ID : encodedTargetTerminalId;
-    if (mHasHistoricalInfo) {
-        const HistoricalInfo historicalInfo(timestamp, level, count);
-        return BigramEntry(hasNext, probability, &historicalInfo, targetTerminalId);
-    } else {
-        return BigramEntry(hasNext, probability, targetTerminalId);
-    }
-}
-
-bool BigramDictContent::writeBigramEntryAndAdvancePosition(
-        const BigramEntry *const bigramEntryToWrite, int *const entryWritingPos) {
-    BufferWithExtendableBuffer *const bigramListBuffer = getWritableContentBuffer();
-    const int bigramFlags = createAndGetBigramFlags(bigramEntryToWrite->hasNext());
-    if (!bigramListBuffer->writeUintAndAdvancePosition(bigramFlags,
-            Ver4DictConstants::BIGRAM_FLAGS_FIELD_SIZE, entryWritingPos)) {
-        AKLOGE("Cannot write bigram flags. pos: %d, flags: %x", *entryWritingPos, bigramFlags);
-        return false;
-    }
-    if (mHasHistoricalInfo) {
-        const HistoricalInfo *const historicalInfo = bigramEntryToWrite->getHistoricalInfo();
-        if (!bigramListBuffer->writeUintAndAdvancePosition(historicalInfo->getTimeStamp(),
-                Ver4DictConstants::TIME_STAMP_FIELD_SIZE, entryWritingPos)) {
-            AKLOGE("Cannot write bigram timestamps. pos: %d, timestamp: %d", *entryWritingPos,
-                    historicalInfo->getTimeStamp());
-            return false;
-        }
-        if (!bigramListBuffer->writeUintAndAdvancePosition(historicalInfo->getLevel(),
-                Ver4DictConstants::WORD_LEVEL_FIELD_SIZE, entryWritingPos)) {
-            AKLOGE("Cannot write bigram level. pos: %d, level: %d", *entryWritingPos,
-                    historicalInfo->getLevel());
-            return false;
-        }
-        if (!bigramListBuffer->writeUintAndAdvancePosition(historicalInfo->getCount(),
-                Ver4DictConstants::WORD_COUNT_FIELD_SIZE, entryWritingPos)) {
-            AKLOGE("Cannot write bigram count. pos: %d, count: %d", *entryWritingPos,
-                    historicalInfo->getCount());
-            return false;
-        }
-    } else {
-        if (!bigramListBuffer->writeUintAndAdvancePosition(bigramEntryToWrite->getProbability(),
-                Ver4DictConstants::PROBABILITY_SIZE, entryWritingPos)) {
-            AKLOGE("Cannot write bigram probability. pos: %d, probability: %d", *entryWritingPos,
-                    bigramEntryToWrite->getProbability());
-            return false;
-        }
-    }
-    const int targetTerminalIdToWrite =
-            (bigramEntryToWrite->getTargetTerminalId() == Ver4DictConstants::NOT_A_TERMINAL_ID) ?
-                    Ver4DictConstants::INVALID_BIGRAM_TARGET_TERMINAL_ID :
-                            bigramEntryToWrite->getTargetTerminalId();
-    if (!bigramListBuffer->writeUintAndAdvancePosition(targetTerminalIdToWrite,
-            Ver4DictConstants::BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE, entryWritingPos)) {
-        AKLOGE("Cannot write bigram target terminal id. pos: %d, target terminal id: %d",
-                *entryWritingPos, bigramEntryToWrite->getTargetTerminalId());
-        return false;
-    }
-    return true;
-}
-
-bool BigramDictContent::copyBigramList(const int bigramListPos, const int toPos,
-        int *const outTailEntryPos) {
-    int readingPos = bigramListPos;
-    int writingPos = toPos;
-    bool hasNext = true;
-    while (hasNext) {
-        const BigramEntry bigramEntry = getBigramEntryAndAdvancePosition(&readingPos);
-        hasNext = bigramEntry.hasNext();
-        if (!hasNext) {
-            *outTailEntryPos = writingPos;
-        }
-        if (!writeBigramEntryAndAdvancePosition(&bigramEntry, &writingPos)) {
-            AKLOGE("Cannot write bigram entry to copy. pos: %d", writingPos);
-            return false;
-        }
-    }
-    return true;
-}
-
-bool BigramDictContent::runGC(const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
-        const BigramDictContent *const originalBigramDictContent,
-        int *const outBigramEntryCount) {
-    for (TerminalPositionLookupTable::TerminalIdMap::const_iterator it = terminalIdMap->begin();
-            it != terminalIdMap->end(); ++it) {
-        const int originalBigramListPos =
-                originalBigramDictContent->getBigramListHeadPos(it->first);
-        if (originalBigramListPos == NOT_A_DICT_POS) {
-            // This terminal does not have a bigram list.
-            continue;
-        }
-        const int bigramListPos = getContentBuffer()->getTailPosition();
-        int bigramEntryCount = 0;
-        // Copy bigram list with GC from original content.
-        if (!runGCBigramList(originalBigramListPos, originalBigramDictContent, bigramListPos,
-                terminalIdMap, &bigramEntryCount)) {
-            AKLOGE("Cannot complete GC for the bigram list. original pos: %d, pos: %d",
-                    originalBigramListPos, bigramListPos);
-            return false;
-        }
-        if (bigramEntryCount == 0) {
-            // All bigram entries are useless. This terminal does not have a bigram list.
-            continue;
-        }
-        *outBigramEntryCount += bigramEntryCount;
-        // Set bigram list position to the lookup table.
-        if (!getUpdatableAddressLookupTable()->set(it->second, bigramListPos)) {
-            AKLOGE("Cannot set bigram list position. terminal id: %d, pos: %d",
-                    it->second, bigramListPos);
-            return false;
-        }
-    }
-    return true;
-}
-
-// Returns whether GC for the bigram list was succeeded or not.
-bool BigramDictContent::runGCBigramList(const int bigramListPos,
-        const BigramDictContent *const sourceBigramDictContent, const int toPos,
-        const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
-        int *const outEntrycount) {
-    bool hasNext = true;
-    int readingPos = bigramListPos;
-    int writingPos = toPos;
-    int lastEntryPos = NOT_A_DICT_POS;
-    while (hasNext) {
-        const BigramEntry originalBigramEntry =
-                sourceBigramDictContent->getBigramEntryAndAdvancePosition(&readingPos);
-        hasNext = originalBigramEntry.hasNext();
-        if (originalBigramEntry.getTargetTerminalId() == Ver4DictConstants::NOT_A_TERMINAL_ID) {
-            continue;
-        }
-        TerminalPositionLookupTable::TerminalIdMap::const_iterator it =
-                terminalIdMap->find(originalBigramEntry.getTargetTerminalId());
-        if (it == terminalIdMap->end()) {
-            // Target word has been removed.
-            continue;
-        }
-        lastEntryPos = hasNext ? writingPos : NOT_A_DICT_POS;
-        const BigramEntry updatedBigramEntry =
-                originalBigramEntry.updateTargetTerminalIdAndGetEntry(it->second);
-        if (!writeBigramEntryAndAdvancePosition(&updatedBigramEntry, &writingPos)) {
-            AKLOGE("Cannot write bigram entry to run GC. pos: %d", writingPos);
-            return false;
-        }
-        *outEntrycount += 1;
-    }
-    if (lastEntryPos != NOT_A_DICT_POS) {
-        // Update has next flag in the last written entry.
-        const BigramEntry bigramEntry = getBigramEntry(lastEntryPos).updateHasNextAndGetEntry(
-                false /* hasNext */);
-        if (!writeBigramEntry(&bigramEntry, lastEntryPos)) {
-            AKLOGE("Cannot write bigram entry to set hasNext flag after GC. pos: %d", writingPos);
-            return false;
-        }
-    }
-    return true;
-}
-
-} // namespace v402
-} // namespace backward
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_dict_content.h b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_dict_content.h
deleted file mode 100644
index b554e56..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_dict_content.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.h
- */
-
-#ifndef LATINIME_BACKWARD_V402_BIGRAM_DICT_CONTENT_H
-#define LATINIME_BACKWARD_V402_BIGRAM_DICT_CONTENT_H
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_entry.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/sparse_table_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-class BigramDictContent : public SparseTableDictContent {
- public:
-    BigramDictContent(const char *const dictPath, const bool hasHistoricalInfo,
-            const bool isUpdatable)
-            : SparseTableDictContent(dictPath,
-                      Ver4DictConstants::BIGRAM_LOOKUP_TABLE_FILE_EXTENSION,
-                      Ver4DictConstants::BIGRAM_CONTENT_TABLE_FILE_EXTENSION,
-                      Ver4DictConstants::BIGRAM_FILE_EXTENSION, isUpdatable,
-                      Ver4DictConstants::BIGRAM_ADDRESS_TABLE_BLOCK_SIZE,
-                      Ver4DictConstants::BIGRAM_ADDRESS_TABLE_DATA_SIZE),
-              mHasHistoricalInfo(hasHistoricalInfo) {}
-
-    BigramDictContent(const bool hasHistoricalInfo)
-            : SparseTableDictContent(Ver4DictConstants::BIGRAM_ADDRESS_TABLE_BLOCK_SIZE,
-                      Ver4DictConstants::BIGRAM_ADDRESS_TABLE_DATA_SIZE),
-              mHasHistoricalInfo(hasHistoricalInfo) {}
-
-    const BigramEntry getBigramEntry(const int bigramEntryPos) const {
-        int readingPos = bigramEntryPos;
-        return getBigramEntryAndAdvancePosition(&readingPos);
-    }
-
-    const BigramEntry getBigramEntryAndAdvancePosition(int *const bigramEntryPos) const;
-
-    // Returns head position of bigram list for a PtNode specified by terminalId.
-    int getBigramListHeadPos(const int terminalId) const {
-        const SparseTable *const addressLookupTable = getAddressLookupTable();
-        if (!addressLookupTable->contains(terminalId)) {
-            return NOT_A_DICT_POS;
-        }
-        return addressLookupTable->get(terminalId);
-    }
-
-    bool writeBigramEntryAtTail(const BigramEntry *const bigramEntryToWrite) {
-        int writingPos = getContentBuffer()->getTailPosition();
-        return writeBigramEntryAndAdvancePosition(bigramEntryToWrite, &writingPos);
-    }
-
-    bool writeBigramEntry(const BigramEntry *const bigramEntryToWrite, const int entryWritingPos) {
-        int writingPos = entryWritingPos;
-        return writeBigramEntryAndAdvancePosition(bigramEntryToWrite, &writingPos);
-    }
-
-    bool writeBigramEntryAndAdvancePosition(const BigramEntry *const bigramEntryToWrite,
-            int *const entryWritingPos);
-
-    bool createNewBigramList(const int terminalId) {
-        const int bigramListPos = getContentBuffer()->getTailPosition();
-        return getUpdatableAddressLookupTable()->set(terminalId, bigramListPos);
-    }
-
-    bool copyBigramList(const int bigramListPos, const int toPos, int *const outTailEntryPos);
-
-    bool flushToFile(const char *const dictPath) const {
-        return flush(dictPath, Ver4DictConstants::BIGRAM_LOOKUP_TABLE_FILE_EXTENSION,
-                Ver4DictConstants::BIGRAM_CONTENT_TABLE_FILE_EXTENSION,
-                Ver4DictConstants::BIGRAM_FILE_EXTENSION);
-    }
-
-    bool runGC(const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
-            const BigramDictContent *const originalBigramDictContent,
-            int *const outBigramEntryCount);
-
-    bool isContentTailPos(const int pos) const {
-        return pos == getContentBuffer()->getTailPosition();
-    }
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(BigramDictContent);
-
-    int createAndGetBigramFlags(const bool hasNext) const {
-        return hasNext ? Ver4DictConstants::BIGRAM_HAS_NEXT_MASK : 0;
-    }
-
-    int getBigramEntrySize() const {
-        if (mHasHistoricalInfo) {
-            return Ver4DictConstants::BIGRAM_FLAGS_FIELD_SIZE
-                    + Ver4DictConstants::TIME_STAMP_FIELD_SIZE
-                    + Ver4DictConstants::WORD_LEVEL_FIELD_SIZE
-                    + Ver4DictConstants::WORD_COUNT_FIELD_SIZE
-                    + Ver4DictConstants::BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE;
-        } else {
-            return Ver4DictConstants::BIGRAM_FLAGS_FIELD_SIZE
-                    + Ver4DictConstants::PROBABILITY_SIZE
-                    + Ver4DictConstants::BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE;
-        }
-    }
-
-    bool runGCBigramList(const int bigramListPos,
-            const BigramDictContent *const sourceBigramDictContent, const int toPos,
-            const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
-            int *const outEntryCount);
-
-    bool mHasHistoricalInfo;
-};
-} // namespace v402
-} // namespace backward
-} // namespace latinime
-#endif /* LATINIME_BACKWARD_V402_BIGRAM_DICT_CONTENT_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_entry.h b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_entry.h
deleted file mode 100644
index 40968b4..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_entry.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/bigram_entry.h
- */
-
-#ifndef LATINIME_BACKWARD_V402_BIGRAM_ENTRY_H
-#define LATINIME_BACKWARD_V402_BIGRAM_ENTRY_H
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/utils/historical_info.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-class BigramEntry {
- public:
-    BigramEntry(const BigramEntry& bigramEntry)
-            : mHasNext(bigramEntry.mHasNext), mProbability(bigramEntry.mProbability),
-              mHistoricalInfo(), mTargetTerminalId(bigramEntry.mTargetTerminalId) {}
-
-    // Entry with historical information.
-    BigramEntry(const bool hasNext, const int probability, const int targetTerminalId)
-            : mHasNext(hasNext), mProbability(probability), mHistoricalInfo(),
-              mTargetTerminalId(targetTerminalId) {}
-
-    // Entry with historical information.
-    BigramEntry(const bool hasNext, const int probability,
-            const HistoricalInfo *const historicalInfo, const int targetTerminalId)
-            : mHasNext(hasNext), mProbability(probability), mHistoricalInfo(*historicalInfo),
-              mTargetTerminalId(targetTerminalId) {}
-
-    const BigramEntry getInvalidatedEntry() const {
-        return updateTargetTerminalIdAndGetEntry(Ver4DictConstants::NOT_A_TERMINAL_ID);
-    }
-
-    const BigramEntry updateHasNextAndGetEntry(const bool hasNext) const {
-        return BigramEntry(hasNext, mProbability, &mHistoricalInfo, mTargetTerminalId);
-    }
-
-    const BigramEntry updateTargetTerminalIdAndGetEntry(const int newTargetTerminalId) const {
-        return BigramEntry(mHasNext, mProbability, &mHistoricalInfo, newTargetTerminalId);
-    }
-
-    const BigramEntry updateProbabilityAndGetEntry(const int probability) const {
-        return BigramEntry(mHasNext, probability, &mHistoricalInfo, mTargetTerminalId);
-    }
-
-    const BigramEntry updateHistoricalInfoAndGetEntry(
-            const HistoricalInfo *const historicalInfo) const {
-        return BigramEntry(mHasNext, mProbability, historicalInfo, mTargetTerminalId);
-    }
-
-    bool isValid() const {
-        return mTargetTerminalId != Ver4DictConstants::NOT_A_TERMINAL_ID;
-    }
-
-    bool hasNext() const {
-        return mHasNext;
-    }
-
-    int getProbability() const {
-        return mProbability;
-    }
-
-    bool hasHistoricalInfo() const {
-        return mHistoricalInfo.isValid();
-    }
-
-    const HistoricalInfo *getHistoricalInfo() const {
-        return &mHistoricalInfo;
-    }
-
-    int getTargetTerminalId() const {
-        return mTargetTerminalId;
-    }
-
- private:
-    // Copy constructor is public to use this class as a type of return value.
-    DISALLOW_DEFAULT_CONSTRUCTOR(BigramEntry);
-    DISALLOW_ASSIGNMENT_OPERATOR(BigramEntry);
-
-    const bool mHasNext;
-    const int mProbability;
-    const HistoricalInfo mHistoricalInfo;
-    const int mTargetTerminalId;
-};
-} // namespace v402
-} // namespace backward
-} // namespace latinime
-#endif /* LATINIME_BACKWARD_V402_BIGRAM_ENTRY_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/dict_content.h b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/dict_content.h
deleted file mode 100644
index 0f2f255..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/dict_content.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/dict_content.h
- */
-
-#ifndef LATINIME_BACKWARD_V402_DICT_CONTENT_H
-#define LATINIME_BACKWARD_V402_DICT_CONTENT_H
-
-#include "defines.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-class DictContent {
- public:
-    virtual ~DictContent() {}
-    virtual bool isValid() const = 0;
-
- protected:
-    DictContent() {}
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(DictContent);
-};
-} // namespace v402
-} // namespace backward
-} // namespace latinime
-#endif /* LATINIME_BACKWARD_V402_DICT_CONTENT_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/probability_dict_content.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/probability_dict_content.cpp
deleted file mode 100644
index c671647..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/probability_dict_content.cpp
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/probability_dict_content.cpp
- */
-
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/probability_dict_content.h"
-
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/probability_entry.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-const ProbabilityEntry ProbabilityDictContent::getProbabilityEntry(const int terminalId) const {
-    if (terminalId < 0 || terminalId >= mSize) {
-        // This method can be called with invalid terminal id during GC.
-        return ProbabilityEntry(0 /* flags */, NOT_A_PROBABILITY);
-    }
-    const BufferWithExtendableBuffer *const buffer = getBuffer();
-    int entryPos = getEntryPos(terminalId);
-    const int flags = buffer->readUintAndAdvancePosition(
-            Ver4DictConstants::FLAGS_IN_PROBABILITY_FILE_SIZE, &entryPos);
-    const int probability = buffer->readUintAndAdvancePosition(
-            Ver4DictConstants::PROBABILITY_SIZE, &entryPos);
-    if (mHasHistoricalInfo) {
-        const int timestamp = buffer->readUintAndAdvancePosition(
-                Ver4DictConstants::TIME_STAMP_FIELD_SIZE, &entryPos);
-        const int level = buffer->readUintAndAdvancePosition(
-                Ver4DictConstants::WORD_LEVEL_FIELD_SIZE, &entryPos);
-        const int count = buffer->readUintAndAdvancePosition(
-                Ver4DictConstants::WORD_COUNT_FIELD_SIZE, &entryPos);
-        const HistoricalInfo historicalInfo(timestamp, level, count);
-        return ProbabilityEntry(flags, probability, &historicalInfo);
-    } else {
-        return ProbabilityEntry(flags, probability);
-    }
-}
-
-bool ProbabilityDictContent::setProbabilityEntry(const int terminalId,
-        const ProbabilityEntry *const probabilityEntry) {
-    if (terminalId < 0) {
-        return false;
-    }
-    const int entryPos = getEntryPos(terminalId);
-    if (terminalId >= mSize) {
-        ProbabilityEntry dummyEntry;
-        // Write new entry.
-        int writingPos = getBuffer()->getTailPosition();
-        while (writingPos <= entryPos) {
-            // Fulfilling with dummy entries until writingPos.
-            if (!writeEntry(&dummyEntry, writingPos)) {
-                AKLOGE("Cannot write dummy entry. pos: %d, mSize: %d", writingPos, mSize);
-                return false;
-            }
-            writingPos += getEntrySize();
-            mSize++;
-        }
-    }
-    return writeEntry(probabilityEntry, entryPos);
-}
-
-bool ProbabilityDictContent::flushToFile(const char *const dictPath) const {
-    if (getEntryPos(mSize) < getBuffer()->getTailPosition()) {
-        ProbabilityDictContent probabilityDictContentToWrite(mHasHistoricalInfo);
-        for (int i = 0; i < mSize; ++i) {
-            const ProbabilityEntry probabilityEntry = getProbabilityEntry(i);
-            if (!probabilityDictContentToWrite.setProbabilityEntry(i, &probabilityEntry)) {
-                AKLOGE("Cannot set probability entry in flushToFile. terminalId: %d", i);
-                return false;
-            }
-        }
-        return probabilityDictContentToWrite.flush(dictPath,
-                Ver4DictConstants::FREQ_FILE_EXTENSION);
-    } else {
-        return flush(dictPath, Ver4DictConstants::FREQ_FILE_EXTENSION);
-    }
-}
-
-bool ProbabilityDictContent::runGC(
-        const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
-        const ProbabilityDictContent *const originalProbabilityDictContent) {
-    mSize = 0;
-    for (TerminalPositionLookupTable::TerminalIdMap::const_iterator it = terminalIdMap->begin();
-            it != terminalIdMap->end(); ++it) {
-        const ProbabilityEntry probabilityEntry =
-                originalProbabilityDictContent->getProbabilityEntry(it->first);
-        if (!setProbabilityEntry(it->second, &probabilityEntry)) {
-            AKLOGE("Cannot set probability entry in runGC. terminalId: %d", it->second);
-            return false;
-        }
-        mSize++;
-    }
-    return true;
-}
-
-int ProbabilityDictContent::getEntrySize() const {
-    if (mHasHistoricalInfo) {
-        return Ver4DictConstants::FLAGS_IN_PROBABILITY_FILE_SIZE
-                + Ver4DictConstants::PROBABILITY_SIZE
-                + Ver4DictConstants::TIME_STAMP_FIELD_SIZE
-                + Ver4DictConstants::WORD_LEVEL_FIELD_SIZE
-                + Ver4DictConstants::WORD_COUNT_FIELD_SIZE;
-    } else {
-        return Ver4DictConstants::FLAGS_IN_PROBABILITY_FILE_SIZE
-                + Ver4DictConstants::PROBABILITY_SIZE;
-    }
-}
-
-int ProbabilityDictContent::getEntryPos(const int terminalId) const {
-    return terminalId * getEntrySize();
-}
-
-bool ProbabilityDictContent::writeEntry(const ProbabilityEntry *const probabilityEntry,
-        const int entryPos) {
-    BufferWithExtendableBuffer *const bufferToWrite = getWritableBuffer();
-    int writingPos = entryPos;
-    if (!bufferToWrite->writeUintAndAdvancePosition(probabilityEntry->getFlags(),
-            Ver4DictConstants::FLAGS_IN_PROBABILITY_FILE_SIZE, &writingPos)) {
-        AKLOGE("Cannot write flags in probability dict content. pos: %d", writingPos);
-        return false;
-    }
-    if (!bufferToWrite->writeUintAndAdvancePosition(probabilityEntry->getProbability(),
-            Ver4DictConstants::PROBABILITY_SIZE, &writingPos)) {
-        AKLOGE("Cannot write probability in probability dict content. pos: %d", writingPos);
-        return false;
-    }
-    if (mHasHistoricalInfo) {
-        const HistoricalInfo *const historicalInfo = probabilityEntry->getHistoricalInfo();
-        if (!bufferToWrite->writeUintAndAdvancePosition(historicalInfo->getTimeStamp(),
-                Ver4DictConstants::TIME_STAMP_FIELD_SIZE, &writingPos)) {
-            AKLOGE("Cannot write timestamp in probability dict content. pos: %d", writingPos);
-            return false;
-        }
-        if (!bufferToWrite->writeUintAndAdvancePosition(historicalInfo->getLevel(),
-                Ver4DictConstants::WORD_LEVEL_FIELD_SIZE, &writingPos)) {
-            AKLOGE("Cannot write level in probability dict content. pos: %d", writingPos);
-            return false;
-        }
-        if (!bufferToWrite->writeUintAndAdvancePosition(historicalInfo->getCount(),
-                Ver4DictConstants::WORD_COUNT_FIELD_SIZE, &writingPos)) {
-            AKLOGE("Cannot write count in probability dict content. pos: %d", writingPos);
-            return false;
-        }
-    }
-    return true;
-}
-
-} // namespace v402
-} // namespace backward
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/probability_dict_content.h b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/probability_dict_content.h
deleted file mode 100644
index 3734797..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/probability_dict_content.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/probability_dict_content.h
- */
-
-#ifndef LATINIME_BACKWARD_V402_PROBABILITY_DICT_CONTENT_H
-#define LATINIME_BACKWARD_V402_PROBABILITY_DICT_CONTENT_H
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/single_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-class ProbabilityEntry;
-
-class ProbabilityDictContent : public SingleDictContent {
- public:
-    ProbabilityDictContent(const char *const dictPath, const bool hasHistoricalInfo,
-            const bool isUpdatable)
-            : SingleDictContent(dictPath, Ver4DictConstants::FREQ_FILE_EXTENSION, isUpdatable),
-              mHasHistoricalInfo(hasHistoricalInfo),
-              mSize(getBuffer()->getTailPosition() / getEntrySize()) {}
-
-    ProbabilityDictContent(const bool hasHistoricalInfo)
-            : mHasHistoricalInfo(hasHistoricalInfo), mSize(0) {}
-
-    const ProbabilityEntry getProbabilityEntry(const int terminalId) const;
-
-    bool setProbabilityEntry(const int terminalId, const ProbabilityEntry *const probabilityEntry);
-
-    bool flushToFile(const char *const dictPath) const;
-
-    bool runGC(const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
-            const ProbabilityDictContent *const originalProbabilityDictContent);
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(ProbabilityDictContent);
-
-    int getEntrySize() const;
-
-    int getEntryPos(const int terminalId) const;
-
-    bool writeEntry(const ProbabilityEntry *const probabilityEntry, const int entryPos);
-
-    bool mHasHistoricalInfo;
-    int mSize;
-};
-} // namespace v402
-} // namespace backward
-} // namespace latinime
-#endif /* LATINIME_BACKWARD_V402_PROBABILITY_DICT_CONTENT_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/probability_entry.h b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/probability_entry.h
deleted file mode 100644
index 8ccfa33..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/probability_entry.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/probability_entry.h
- */
-
-#ifndef LATINIME_BACKWARD_V402_PROBABILITY_ENTRY_H
-#define LATINIME_BACKWARD_V402_PROBABILITY_ENTRY_H
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/utils/historical_info.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-class ProbabilityEntry {
- public:
-    ProbabilityEntry(const ProbabilityEntry &probabilityEntry)
-            : mFlags(probabilityEntry.mFlags), mProbability(probabilityEntry.mProbability),
-              mHistoricalInfo(probabilityEntry.mHistoricalInfo) {}
-
-    // Dummy entry
-    ProbabilityEntry()
-            : mFlags(0), mProbability(NOT_A_PROBABILITY), mHistoricalInfo() {}
-
-    // Entry without historical information
-    ProbabilityEntry(const int flags, const int probability)
-            : mFlags(flags), mProbability(probability), mHistoricalInfo() {}
-
-    // Entry with historical information.
-    ProbabilityEntry(const int flags, const int probability,
-            const HistoricalInfo *const historicalInfo)
-            : mFlags(flags), mProbability(probability), mHistoricalInfo(*historicalInfo) {}
-
-    const ProbabilityEntry createEntryWithUpdatedProbability(const int probability) const {
-        return ProbabilityEntry(mFlags, probability, &mHistoricalInfo);
-    }
-
-    const ProbabilityEntry createEntryWithUpdatedHistoricalInfo(
-            const HistoricalInfo *const historicalInfo) const {
-        return ProbabilityEntry(mFlags, mProbability, historicalInfo);
-    }
-
-    bool hasHistoricalInfo() const {
-        return mHistoricalInfo.isValid();
-    }
-
-    int getFlags() const {
-        return mFlags;
-    }
-
-    int getProbability() const {
-        return mProbability;
-    }
-
-    const HistoricalInfo *getHistoricalInfo() const {
-        return &mHistoricalInfo;
-    }
-
- private:
-    // Copy constructor is public to use this class as a type of return value.
-    DISALLOW_ASSIGNMENT_OPERATOR(ProbabilityEntry);
-
-    const int mFlags;
-    const int mProbability;
-    const HistoricalInfo mHistoricalInfo;
-};
-} // namespace v402
-} // namespace backward
-} // namespace latinime
-#endif /* LATINIME_BACKWARD_V402_PROBABILITY_ENTRY_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/shortcut_dict_content.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/shortcut_dict_content.cpp
deleted file mode 100644
index 56bc8b9..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/shortcut_dict_content.cpp
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/shortcut_dict_content.cpp
- */
-
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/shortcut_dict_content.h"
-
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-void ShortcutDictContent::getShortcutEntryAndAdvancePosition(const int maxCodePointCount,
-        int *const outCodePoint, int *const outCodePointCount, int *const outProbability,
-        bool *const outhasNext, int *const shortcutEntryPos) const {
-    const BufferWithExtendableBuffer *const shortcutListBuffer = getContentBuffer();
-    if (*shortcutEntryPos < 0 || *shortcutEntryPos >=  shortcutListBuffer->getTailPosition()) {
-        AKLOGE("Invalid shortcut entry position. shortcutEntryPos: %d, bufSize: %d",
-                *shortcutEntryPos, shortcutListBuffer->getTailPosition());
-        ASSERT(false);
-        if (outhasNext) {
-            *outhasNext = false;
-        }
-        if (outCodePointCount) {
-            *outCodePointCount = 0;
-        }
-        return;
-    }
-
-    const int shortcutFlags = shortcutListBuffer->readUintAndAdvancePosition(
-            Ver4DictConstants::SHORTCUT_FLAGS_FIELD_SIZE, shortcutEntryPos);
-    if (outProbability) {
-        *outProbability = shortcutFlags & Ver4DictConstants::SHORTCUT_PROBABILITY_MASK;
-    }
-    if (outhasNext) {
-        *outhasNext = shortcutFlags & Ver4DictConstants::SHORTCUT_HAS_NEXT_MASK;
-    }
-    if (outCodePoint && outCodePointCount) {
-        shortcutListBuffer->readCodePointsAndAdvancePosition(
-                maxCodePointCount, outCodePoint, outCodePointCount, shortcutEntryPos);
-    }
-}
-
-int ShortcutDictContent::getShortcutListHeadPos(const int terminalId) const {
-    const SparseTable *const addressLookupTable = getAddressLookupTable();
-    if (!addressLookupTable->contains(terminalId)) {
-        return NOT_A_DICT_POS;
-    }
-    return addressLookupTable->get(terminalId);
-}
-
-bool ShortcutDictContent::flushToFile(const char *const dictPath) const {
-    return flush(dictPath, Ver4DictConstants::SHORTCUT_LOOKUP_TABLE_FILE_EXTENSION,
-            Ver4DictConstants::SHORTCUT_CONTENT_TABLE_FILE_EXTENSION,
-            Ver4DictConstants::SHORTCUT_FILE_EXTENSION);
-}
-
-bool ShortcutDictContent::runGC(
-        const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
-        const ShortcutDictContent *const originalShortcutDictContent) {
-   for (TerminalPositionLookupTable::TerminalIdMap::const_iterator it = terminalIdMap->begin();
-           it != terminalIdMap->end(); ++it) {
-       const int originalShortcutListPos =
-               originalShortcutDictContent->getShortcutListHeadPos(it->first);
-       if (originalShortcutListPos == NOT_A_DICT_POS) {
-           continue;
-       }
-       const int shortcutListPos = getContentBuffer()->getTailPosition();
-       // Copy shortcut list from original content.
-       if (!copyShortcutListFromDictContent(originalShortcutListPos, originalShortcutDictContent,
-               shortcutListPos)) {
-           AKLOGE("Cannot copy shortcut list during GC. original pos: %d, pos: %d",
-                   originalShortcutListPos, shortcutListPos);
-           return false;
-       }
-       // Set shortcut list position to the lookup table.
-       if (!getUpdatableAddressLookupTable()->set(it->second, shortcutListPos)) {
-           AKLOGE("Cannot set shortcut list position. terminal id: %d, pos: %d",
-                   it->second, shortcutListPos);
-           return false;
-       }
-   }
-   return true;
-}
-
-bool ShortcutDictContent::createNewShortcutList(const int terminalId) {
-    const int shortcutListListPos = getContentBuffer()->getTailPosition();
-    return getUpdatableAddressLookupTable()->set(terminalId, shortcutListListPos);
-}
-
-bool ShortcutDictContent::copyShortcutList(const int shortcutListPos, const int toPos) {
-    return copyShortcutListFromDictContent(shortcutListPos, this, toPos);
-}
-
-bool ShortcutDictContent::copyShortcutListFromDictContent(const int shortcutListPos,
-        const ShortcutDictContent *const sourceShortcutDictContent, const int toPos) {
-    bool hasNext = true;
-    int readingPos = shortcutListPos;
-    int writingPos = toPos;
-    int codePoints[MAX_WORD_LENGTH];
-    while (hasNext) {
-        int probability = 0;
-        int codePointCount = 0;
-        sourceShortcutDictContent->getShortcutEntryAndAdvancePosition(MAX_WORD_LENGTH,
-                codePoints, &codePointCount, &probability, &hasNext, &readingPos);
-        if (!writeShortcutEntryAndAdvancePosition(codePoints, codePointCount, probability,
-                hasNext, &writingPos)) {
-            AKLOGE("Cannot write shortcut entry to copy. pos: %d", writingPos);
-            return false;
-        }
-    }
-    return true;
-}
-
-bool ShortcutDictContent::setProbability(const int probability, const int shortcutEntryPos) {
-    BufferWithExtendableBuffer *const shortcutListBuffer = getWritableContentBuffer();
-    const int shortcutFlags = shortcutListBuffer->readUint(
-            Ver4DictConstants::SHORTCUT_FLAGS_FIELD_SIZE, shortcutEntryPos);
-    const bool hasNext = shortcutFlags & Ver4DictConstants::SHORTCUT_HAS_NEXT_MASK;
-    const int shortcutFlagsToWrite = createAndGetShortcutFlags(probability, hasNext);
-    return shortcutListBuffer->writeUint(shortcutFlagsToWrite,
-            Ver4DictConstants::SHORTCUT_FLAGS_FIELD_SIZE, shortcutEntryPos);
-}
-
-bool ShortcutDictContent::writeShortcutEntryAndAdvancePosition(const int *const codePoint,
-        const int codePointCount, const int probability, const bool hasNext,
-        int *const shortcutEntryPos) {
-    BufferWithExtendableBuffer *const shortcutListBuffer = getWritableContentBuffer();
-    const int shortcutFlags = createAndGetShortcutFlags(probability, hasNext);
-    if (!shortcutListBuffer->writeUintAndAdvancePosition(shortcutFlags,
-            Ver4DictConstants::SHORTCUT_FLAGS_FIELD_SIZE, shortcutEntryPos)) {
-        AKLOGE("Cannot write shortcut flags. flags; %x, pos: %d", shortcutFlags, *shortcutEntryPos);
-        return false;
-    }
-    if (!shortcutListBuffer->writeCodePointsAndAdvancePosition(codePoint, codePointCount,
-            true /* writesTerminator */, shortcutEntryPos)) {
-        AKLOGE("Cannot write shortcut target code points. pos: %d", *shortcutEntryPos);
-        return false;
-    }
-    return true;
-}
-
-// Find a shortcut entry that has specified target and return its position.
-int ShortcutDictContent::findShortcutEntryAndGetPos(const int shortcutListPos,
-        const int *const targetCodePointsToFind, const int codePointCount) const {
-    bool hasNext = true;
-    int readingPos = shortcutListPos;
-    int targetCodePoints[MAX_WORD_LENGTH];
-    while (hasNext) {
-        const int entryPos = readingPos;
-        int probability = 0;
-        int targetCodePointCount = 0;
-        getShortcutEntryAndAdvancePosition(MAX_WORD_LENGTH, targetCodePoints, &targetCodePointCount,
-                &probability, &hasNext, &readingPos);
-        if (targetCodePointCount != codePointCount) {
-            continue;
-        }
-        bool matched = true;
-        for (int i = 0; i < codePointCount; ++i) {
-            if (targetCodePointsToFind[i] != targetCodePoints[i]) {
-                matched = false;
-                break;
-            }
-        }
-        if (matched) {
-            return entryPos;
-        }
-    }
-    return NOT_A_DICT_POS;
-}
-
-int ShortcutDictContent::createAndGetShortcutFlags(const int probability,
-        const bool hasNext) const {
-    return (probability & Ver4DictConstants::SHORTCUT_PROBABILITY_MASK)
-            | (hasNext ? Ver4DictConstants::SHORTCUT_HAS_NEXT_MASK : 0);
-}
-
-} // namespace v402
-} // namespace backward
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/shortcut_dict_content.h b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/shortcut_dict_content.h
deleted file mode 100644
index 179cec5..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/shortcut_dict_content.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/shortcut_dict_content.h
- */
-
-#ifndef LATINIME_BACKWARD_V402_SHORTCUT_DICT_CONTENT_H
-#define LATINIME_BACKWARD_V402_SHORTCUT_DICT_CONTENT_H
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/sparse_table_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-class ShortcutDictContent : public SparseTableDictContent {
- public:
-    ShortcutDictContent(const char *const dictPath, const bool isUpdatable)
-            : SparseTableDictContent(dictPath,
-                      Ver4DictConstants::SHORTCUT_LOOKUP_TABLE_FILE_EXTENSION,
-                      Ver4DictConstants::SHORTCUT_CONTENT_TABLE_FILE_EXTENSION,
-                      Ver4DictConstants::SHORTCUT_FILE_EXTENSION, isUpdatable,
-                      Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_BLOCK_SIZE,
-                      Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_DATA_SIZE) {}
-
-    ShortcutDictContent()
-            : SparseTableDictContent(Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_BLOCK_SIZE,
-                      Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_DATA_SIZE) {}
-
-    void getShortcutEntry(const int maxCodePointCount, int *const outCodePoint,
-            int *const outCodePointCount, int *const outProbability, bool *const outhasNext,
-            const int shortcutEntryPos) {
-        int readingPos = shortcutEntryPos;
-        return getShortcutEntryAndAdvancePosition(maxCodePointCount, outCodePoint,
-                outCodePointCount, outProbability, outhasNext, &readingPos);
-    }
-
-    void getShortcutEntryAndAdvancePosition(const int maxCodePointCount,
-            int *const outCodePoint, int *const outCodePointCount, int *const outProbability,
-            bool *const outhasNext, int *const shortcutEntryPos) const;
-
-   // Returns head position of shortcut list for a PtNode specified by terminalId.
-   int getShortcutListHeadPos(const int terminalId) const;
-
-   bool flushToFile(const char *const dictPath) const;
-
-   bool runGC(const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
-           const ShortcutDictContent *const originalShortcutDictContent);
-
-   bool createNewShortcutList(const int terminalId);
-
-   bool copyShortcutList(const int shortcutListPos, const int toPos);
-
-   bool setProbability(const int probability, const int shortcutEntryPos);
-
-   bool writeShortcutEntry(const int *const codePoint, const int codePointCount,
-           const int probability, const bool hasNext, const int shortcutEntryPos) {
-       int writingPos = shortcutEntryPos;
-       return writeShortcutEntryAndAdvancePosition(codePoint, codePointCount, probability,
-               hasNext, &writingPos);
-   }
-
-   bool writeShortcutEntryAndAdvancePosition(const int *const codePoint,
-           const int codePointCount, const int probability, const bool hasNext,
-           int *const shortcutEntryPos);
-
-   int findShortcutEntryAndGetPos(const int shortcutListPos,
-           const int *const targetCodePointsToFind, const int codePointCount) const;
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(ShortcutDictContent);
-
-    bool copyShortcutListFromDictContent(const int shortcutListPos,
-            const ShortcutDictContent *const sourceShortcutDictContent, const int toPos);
-
-    int createAndGetShortcutFlags(const int probability, const bool hasNext) const;
-};
-} // namespace v402
-} // namespace backward
-} // namespace latinime
-#endif /* LATINIME_BACKWARD_V402_SHORTCUT_DICT_CONTENT_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/single_dict_content.h b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/single_dict_content.h
deleted file mode 100644
index 49f4468..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/single_dict_content.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/single_dict_content.h
- */
-
-#ifndef LATINIME_BACKWARD_V402_SINGLE_DICT_CONTENT_H
-#define LATINIME_BACKWARD_V402_SINGLE_DICT_CONTENT_H
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h"
-#include "suggest/policyimpl/dictionary/utils/mmapped_buffer.h"
-#include "utils/byte_array_view.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-class SingleDictContent : public DictContent {
- public:
-    SingleDictContent(const char *const dictPath, const char *const contentFileName,
-            const bool isUpdatable)
-            : mMmappedBuffer(MmappedBuffer::openBuffer(dictPath, contentFileName, isUpdatable)),
-              mExpandableContentBuffer(
-                      mMmappedBuffer ? mMmappedBuffer->getReadWriteByteArrayView() :
-                              ReadWriteByteArrayView(),
-                      BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
-              mIsValid(mMmappedBuffer) {}
-
-    SingleDictContent()
-            : mMmappedBuffer(nullptr),
-              mExpandableContentBuffer(Ver4DictConstants::MAX_DICTIONARY_SIZE), mIsValid(true) {}
-
-    virtual ~SingleDictContent() {}
-
-    virtual bool isValid() const {
-        return mIsValid;
-    }
-
-    bool isNearSizeLimit() const {
-        return mExpandableContentBuffer.isNearSizeLimit();
-    }
-
- protected:
-    BufferWithExtendableBuffer *getWritableBuffer() {
-        return &mExpandableContentBuffer;
-    }
-
-    const BufferWithExtendableBuffer *getBuffer() const {
-        return &mExpandableContentBuffer;
-    }
-
-    bool flush(const char *const dictPath, const char *const contentFileNameSuffix) const {
-        return DictFileWritingUtils::flushBufferToFileWithSuffix(dictPath,
-                contentFileNameSuffix, &mExpandableContentBuffer);
-    }
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(SingleDictContent);
-
-    const MmappedBuffer::MmappedBufferPtr mMmappedBuffer;
-    BufferWithExtendableBuffer mExpandableContentBuffer;
-    const bool mIsValid;
-};
-} // namespace v402
-} // namespace backward
-} // namespace latinime
-#endif /* LATINIME_BACKWARD_V402_SINGLE_DICT_CONTENT_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/sparse_table_dict_content.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/sparse_table_dict_content.cpp
deleted file mode 100644
index 7c9b496..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/sparse_table_dict_content.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/sparse_table_dict_content.cpp
- */
-
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/sparse_table_dict_content.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-bool SparseTableDictContent::flush(const char *const dictPath,
-        const char *const lookupTableFileNameSuffix, const char *const addressTableFileNameSuffix,
-        const char *const contentFileNameSuffix) const {
-    if (!DictFileWritingUtils::flushBufferToFileWithSuffix(dictPath, lookupTableFileNameSuffix,
-            &mExpandableLookupTableBuffer)){
-        return false;
-    }
-    if (!DictFileWritingUtils::flushBufferToFileWithSuffix(dictPath, addressTableFileNameSuffix,
-            &mExpandableAddressTableBuffer)) {
-        return false;
-    }
-    if (!DictFileWritingUtils::flushBufferToFileWithSuffix(dictPath, contentFileNameSuffix,
-            &mExpandableContentBuffer)) {
-        return false;
-    }
-    return true;
-}
-
-} // namespace v402
-} // namespace backward
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/sparse_table_dict_content.h b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/sparse_table_dict_content.h
deleted file mode 100644
index 3c626df..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/sparse_table_dict_content.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/sparse_table_dict_content.h
- */
-
-#ifndef LATINIME_BACKWARD_V402_SPARSE_TABLE_DICT_CONTENT_H
-#define LATINIME_BACKWARD_V402_SPARSE_TABLE_DICT_CONTENT_H
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h"
-#include "suggest/policyimpl/dictionary/utils/mmapped_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/sparse_table.h"
-#include "utils/byte_array_view.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-// TODO: Support multiple contents.
-class SparseTableDictContent : public DictContent {
- public:
-    AK_FORCE_INLINE SparseTableDictContent(const char *const dictPath,
-            const char *const lookupTableFileName, const char *const addressTableFileName,
-            const char *const contentFileName, const bool isUpdatable,
-            const int sparseTableBlockSize, const int sparseTableDataSize)
-            : mLookupTableBuffer(
-                      MmappedBuffer::openBuffer(dictPath, lookupTableFileName, isUpdatable)),
-              mAddressTableBuffer(
-                      MmappedBuffer::openBuffer(dictPath, addressTableFileName, isUpdatable)),
-              mContentBuffer(
-                      MmappedBuffer::openBuffer(dictPath, contentFileName, isUpdatable)),
-              mExpandableLookupTableBuffer(
-                      mLookupTableBuffer ? mLookupTableBuffer->getReadWriteByteArrayView() :
-                              ReadWriteByteArrayView(),
-                      BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
-              mExpandableAddressTableBuffer(
-                      mAddressTableBuffer ? mAddressTableBuffer->getReadWriteByteArrayView() :
-                              ReadWriteByteArrayView(),
-                      BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
-              mExpandableContentBuffer(
-                      mContentBuffer ? mContentBuffer->getReadWriteByteArrayView() :
-                              ReadWriteByteArrayView(),
-                      BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
-              mAddressLookupTable(&mExpandableLookupTableBuffer, &mExpandableAddressTableBuffer,
-                      sparseTableBlockSize, sparseTableDataSize),
-              mIsValid(mLookupTableBuffer && mAddressTableBuffer && mContentBuffer) {}
-
-    SparseTableDictContent(const int sparseTableBlockSize, const int sparseTableDataSize)
-            : mLookupTableBuffer(), mAddressTableBuffer(), mContentBuffer(),
-              mExpandableLookupTableBuffer(Ver4DictConstants::MAX_DICTIONARY_SIZE),
-              mExpandableAddressTableBuffer(Ver4DictConstants::MAX_DICTIONARY_SIZE),
-              mExpandableContentBuffer(Ver4DictConstants::MAX_DICTIONARY_SIZE),
-              mAddressLookupTable(&mExpandableLookupTableBuffer, &mExpandableAddressTableBuffer,
-                      sparseTableBlockSize, sparseTableDataSize), mIsValid(true) {}
-
-    virtual ~SparseTableDictContent() {}
-
-    virtual bool isValid() const {
-        return mIsValid;
-    }
-
-    bool isNearSizeLimit() const {
-        return mExpandableLookupTableBuffer.isNearSizeLimit()
-                || mExpandableAddressTableBuffer.isNearSizeLimit()
-                || mExpandableContentBuffer.isNearSizeLimit();
-    }
-
- protected:
-    SparseTable *getUpdatableAddressLookupTable() {
-        return &mAddressLookupTable;
-    }
-
-    const SparseTable *getAddressLookupTable() const {
-        return &mAddressLookupTable;
-    }
-
-    BufferWithExtendableBuffer *getWritableContentBuffer() {
-        return &mExpandableContentBuffer;
-    }
-
-    const BufferWithExtendableBuffer *getContentBuffer() const {
-        return &mExpandableContentBuffer;
-    }
-
-    bool flush(const char *const dictDirPath, const char *const lookupTableFileName,
-            const char *const addressTableFileName, const char *const contentFileName) const;
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(SparseTableDictContent);
-
-    const MmappedBuffer::MmappedBufferPtr mLookupTableBuffer;
-    const MmappedBuffer::MmappedBufferPtr mAddressTableBuffer;
-    const MmappedBuffer::MmappedBufferPtr mContentBuffer;
-    BufferWithExtendableBuffer mExpandableLookupTableBuffer;
-    BufferWithExtendableBuffer mExpandableAddressTableBuffer;
-    BufferWithExtendableBuffer mExpandableContentBuffer;
-    SparseTable mAddressLookupTable;
-    const bool mIsValid;
-};
-} // namespace v402
-} // namespace backward
-} // namespace latinime
-#endif /* LATINIME_BACKWARD_V402_SPARSE_TABLE_DICT_CONTENT_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.cpp
deleted file mode 100644
index a9f8417..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.cpp
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.cpp
- */
-
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
-
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-int TerminalPositionLookupTable::getTerminalPtNodePosition(const int terminalId) const {
-    if (terminalId < 0 || terminalId >= mSize) {
-        return NOT_A_DICT_POS;
-    }
-    const int terminalPos = getBuffer()->readUint(
-            Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE, getEntryPos(terminalId));
-    return (terminalPos == Ver4DictConstants::NOT_A_TERMINAL_ADDRESS) ?
-            NOT_A_DICT_POS : terminalPos;
-}
-
-bool TerminalPositionLookupTable::setTerminalPtNodePosition(
-        const int terminalId, const int terminalPtNodePos) {
-    if (terminalId < 0) {
-        return NOT_A_DICT_POS;
-    }
-    while (terminalId >= mSize) {
-        // Write new entry.
-        if (!getWritableBuffer()->writeUint(Ver4DictConstants::NOT_A_TERMINAL_ADDRESS,
-                Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE, getEntryPos(mSize))) {
-            return false;
-        }
-        mSize++;
-    }
-    const int terminalPos = (terminalPtNodePos != NOT_A_DICT_POS) ?
-            terminalPtNodePos : Ver4DictConstants::NOT_A_TERMINAL_ADDRESS;
-    return getWritableBuffer()->writeUint(terminalPos,
-            Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE, getEntryPos(terminalId));
-}
-
-bool TerminalPositionLookupTable::flushToFile(const char *const dictPath) const {
-    // If the used buffer size is smaller than the actual buffer size, regenerate the lookup
-    // table and write the new table to the file.
-    if (getEntryPos(mSize) < getBuffer()->getTailPosition()) {
-        TerminalPositionLookupTable lookupTableToWrite;
-        for (int i = 0; i < mSize; ++i) {
-            const int terminalPtNodePosition = getTerminalPtNodePosition(i);
-            if (!lookupTableToWrite.setTerminalPtNodePosition(i, terminalPtNodePosition)) {
-                AKLOGE("Cannot set terminal position to lookupTableToWrite."
-                        " terminalId: %d, position: %d", i, terminalPtNodePosition);
-                return false;
-            }
-        }
-        return lookupTableToWrite.flush(dictPath,
-                Ver4DictConstants::TERMINAL_ADDRESS_TABLE_FILE_EXTENSION);
-    } else {
-        // We can simply use this lookup table because the buffer size has not been
-        // changed.
-        return flush(dictPath, Ver4DictConstants::TERMINAL_ADDRESS_TABLE_FILE_EXTENSION);
-    }
-}
-
-bool TerminalPositionLookupTable::runGCTerminalIds(TerminalIdMap *const terminalIdMap) {
-    int removedEntryCount = 0;
-    int nextNewTerminalId = 0;
-    for (int i = 0; i < mSize; ++i) {
-        const int terminalPos = getBuffer()->readUint(
-                Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE, getEntryPos(i));
-        if (terminalPos == Ver4DictConstants::NOT_A_TERMINAL_ADDRESS) {
-            // This entry is a garbage.
-            removedEntryCount++;
-        } else {
-            // Give a new terminal id to the entry.
-            if (!getWritableBuffer()->writeUint(terminalPos,
-                    Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE,
-                    getEntryPos(nextNewTerminalId))) {
-                return false;
-            }
-            // Memorize the mapping to the old terminal id to the new terminal id.
-            terminalIdMap->insert(TerminalIdMap::value_type(i, nextNewTerminalId));
-            nextNewTerminalId++;
-        }
-    }
-    mSize = nextNewTerminalId;
-    return true;
-}
-
-} // namespace v402
-} // namespace backward
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h
deleted file mode 100644
index eadfe0f..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h
- */
-
-#ifndef LATINIME_BACKWARD_V402_TERMINAL_POSITION_LOOKUP_TABLE_H
-#define LATINIME_BACKWARD_V402_TERMINAL_POSITION_LOOKUP_TABLE_H
-
-#include <unordered_map>
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/single_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-class TerminalPositionLookupTable : public SingleDictContent {
- public:
-    typedef std::unordered_map<int, int> TerminalIdMap;
-
-    TerminalPositionLookupTable(const char *const dictPath, const bool isUpdatable)
-            : SingleDictContent(dictPath,
-                      Ver4DictConstants::TERMINAL_ADDRESS_TABLE_FILE_EXTENSION, isUpdatable),
-              mSize(getBuffer()->getTailPosition()
-                      / Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE) {}
-
-    TerminalPositionLookupTable() : mSize(0) {}
-
-    int getTerminalPtNodePosition(const int terminalId) const;
-
-    bool setTerminalPtNodePosition(const int terminalId, const int terminalPtNodePos);
-
-    int getNextTerminalId() const {
-        return mSize;
-    }
-
-    bool flushToFile(const char *const dictPath) const;
-
-    bool runGCTerminalIds(TerminalIdMap *const terminalIdMap);
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(TerminalPositionLookupTable);
-
-    int getEntryPos(const int terminalId) const {
-        return terminalId * Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE;
-    }
-
-    int mSize;
-};
-} // namespace v402
-} // namespace backward
-} // namespace latinime
-#endif // LATINIME_BACKWARD_V402_TERMINAL_POSITION_LOOKUP_TABLE_H
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/shortcut/ver4_shortcut_list_policy.h b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/shortcut/ver4_shortcut_list_policy.h
deleted file mode 100644
index 941fda7..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/shortcut/ver4_shortcut_list_policy.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT CHANGE THE LOGIC IN THIS FILE !!!!!
- * Do not edit this file other than updating policy's interface.
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h
- */
-
-#ifndef LATINIME_BACKWARD_V402_VER4_SHORTCUT_LIST_POLICY_H
-#define LATINIME_BACKWARD_V402_VER4_SHORTCUT_LIST_POLICY_H
-
-#include "defines.h"
-#include "suggest/core/policy/dictionary_shortcuts_structure_policy.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/shortcut_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-class Ver4ShortcutListPolicy : public DictionaryShortcutsStructurePolicy {
- public:
-    Ver4ShortcutListPolicy(ShortcutDictContent *const shortcutDictContent,
-            const TerminalPositionLookupTable *const terminalPositionLookupTable)
-            : mShortcutDictContent(shortcutDictContent) {}
-
-    ~Ver4ShortcutListPolicy() {}
-
-    int getStartPos(const int pos) const {
-        // The first shortcut entry is located at the head position of the shortcut list.
-        return pos;
-    }
-
-    void getNextShortcut(const int maxCodePointCount, int *const outCodePoint,
-            int *const outCodePointCount, bool *const outIsWhitelist, bool *const outHasNext,
-            int *const pos) const {
-        int probability = 0;
-        mShortcutDictContent->getShortcutEntryAndAdvancePosition(maxCodePointCount,
-                outCodePoint, outCodePointCount, &probability, outHasNext, pos);
-        if (outIsWhitelist) {
-            *outIsWhitelist = ShortcutListReadingUtils::isWhitelist(probability);
-        }
-    }
-
-    void skipAllShortcuts(int *const pos) const {
-        // Do nothing because we don't need to skip shortcut lists in ver4 dictionaries.
-    }
-
-    bool addNewShortcut(const int terminalId, const int *const codePoints, const int codePointCount,
-            const int probability) {
-        const int shortcutListPos = mShortcutDictContent->getShortcutListHeadPos(terminalId);
-        if (shortcutListPos == NOT_A_DICT_POS) {
-            // Create shortcut list.
-            if (!mShortcutDictContent->createNewShortcutList(terminalId)) {
-                AKLOGE("Cannot create new shortcut list. terminal id: %d", terminalId);
-                return false;
-            }
-            const int writingPos =  mShortcutDictContent->getShortcutListHeadPos(terminalId);
-            return mShortcutDictContent->writeShortcutEntry(codePoints, codePointCount, probability,
-                    false /* hasNext */, writingPos);
-        }
-        const int entryPos = mShortcutDictContent->findShortcutEntryAndGetPos(shortcutListPos,
-                codePoints, codePointCount);
-        if (entryPos == NOT_A_DICT_POS) {
-            // Add new entry to the shortcut list.
-            // Create new shortcut list.
-            if (!mShortcutDictContent->createNewShortcutList(terminalId)) {
-                AKLOGE("Cannot create new shortcut list. terminal id: %d", terminalId);
-                return false;
-            }
-            int writingPos =  mShortcutDictContent->getShortcutListHeadPos(terminalId);
-            if (!mShortcutDictContent->writeShortcutEntryAndAdvancePosition(codePoints,
-                    codePointCount, probability, true /* hasNext */, &writingPos)) {
-                AKLOGE("Cannot write shortcut entry. terminal id: %d, pos: %d", terminalId,
-                        writingPos);
-                return false;
-            }
-            return mShortcutDictContent->copyShortcutList(shortcutListPos, writingPos);
-        }
-        // Overwrite existing entry.
-        bool hasNext = false;
-        mShortcutDictContent->getShortcutEntry(MAX_WORD_LENGTH, 0 /* outCodePoint */,
-                0 /* outCodePointCount */ , 0 /* probability */, &hasNext, entryPos);
-        if (!mShortcutDictContent->writeShortcutEntry(codePoints,
-                codePointCount, probability, hasNext, entryPos)) {
-            AKLOGE("Cannot overwrite shortcut entry. terminal id: %d, pos: %d", terminalId,
-                    entryPos);
-            return false;
-        }
-        return true;
-    }
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(Ver4ShortcutListPolicy);
-
-    ShortcutDictContent *const mShortcutDictContent;
-};
-} // namespace v402
-} // namespace backward
-} // namespace latinime
-#endif // LATINIME_BACKWARD_V402_VER4_SHORTCUT_LIST_POLICY_H
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_buffers.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_buffers.cpp
deleted file mode 100644
index 3dfbd1c..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_buffers.cpp
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.cpp
- */
-
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_buffers.h"
-
-#include <cerrno>
-#include <cstring>
-#include <sys/stat.h>
-#include <sys/types.h>
-
-#include "suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h"
-#include "suggest/policyimpl/dictionary/utils/file_utils.h"
-#include "utils/byte_array_view.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-/* static */ Ver4DictBuffers::Ver4DictBuffersPtr Ver4DictBuffers::openVer4DictBuffers(
-        const char *const dictPath, MmappedBuffer::MmappedBufferPtr headerBuffer,
-        const FormatUtils::FORMAT_VERSION formatVersion) {
-    if (!headerBuffer) {
-        ASSERT(false);
-        AKLOGE("The header buffer must be valid to open ver4 dict buffers.");
-        return Ver4DictBuffersPtr(nullptr);
-    }
-    // TODO: take only dictDirPath, and open both header and trie files in the constructor below
-    const bool isUpdatable = headerBuffer->isUpdatable();
-    return Ver4DictBuffersPtr(new Ver4DictBuffers(dictPath, std::move(headerBuffer), isUpdatable,
-            formatVersion));
-}
-
-bool Ver4DictBuffers::flushHeaderAndDictBuffers(const char *const dictDirPath,
-        const BufferWithExtendableBuffer *const headerBuffer) const {
-    // Create temporary directory.
-    const int tmpDirPathBufSize = FileUtils::getFilePathWithSuffixBufSize(dictDirPath,
-            DictFileWritingUtils::TEMP_FILE_SUFFIX_FOR_WRITING_DICT_FILE);
-    char tmpDirPath[tmpDirPathBufSize];
-    FileUtils::getFilePathWithSuffix(dictDirPath,
-            DictFileWritingUtils::TEMP_FILE_SUFFIX_FOR_WRITING_DICT_FILE, tmpDirPathBufSize,
-            tmpDirPath);
-    if (FileUtils::existsDir(tmpDirPath)) {
-        if (!FileUtils::removeDirAndFiles(tmpDirPath)) {
-            AKLOGE("Existing directory %s cannot be removed.", tmpDirPath);
-            ASSERT(false);
-            return false;
-        }
-    }
-    umask(S_IWGRP | S_IWOTH);
-    if (mkdir(tmpDirPath, S_IRWXU) == -1) {
-        AKLOGE("Cannot create directory: %s. errno: %d.", tmpDirPath, errno);
-        return false;
-    }
-    // Get dictionary base path.
-    const int dictNameBufSize = strlen(dictDirPath) + 1 /* terminator */;
-    char dictName[dictNameBufSize];
-    FileUtils::getBasename(dictDirPath, dictNameBufSize, dictName);
-    const int dictPathBufSize = FileUtils::getFilePathBufSize(tmpDirPath, dictName);
-    char dictPath[dictPathBufSize];
-    FileUtils::getFilePath(tmpDirPath, dictName, dictPathBufSize, dictPath);
-
-    // Write header file.
-    if (!DictFileWritingUtils::flushBufferToFileWithSuffix(dictPath,
-            Ver4DictConstants::HEADER_FILE_EXTENSION, headerBuffer)) {
-        AKLOGE("Dictionary header file %s%s cannot be written.", tmpDirPath,
-                Ver4DictConstants::HEADER_FILE_EXTENSION);
-        return false;
-    }
-    // Write trie file.
-    if (!DictFileWritingUtils::flushBufferToFileWithSuffix(dictPath,
-            Ver4DictConstants::TRIE_FILE_EXTENSION, &mExpandableTrieBuffer)) {
-        AKLOGE("Dictionary trie file %s%s cannot be written.", tmpDirPath,
-                Ver4DictConstants::TRIE_FILE_EXTENSION);
-        return false;
-    }
-    // Write dictionary contents.
-    if (!mTerminalPositionLookupTable.flushToFile(dictPath)) {
-        AKLOGE("Terminal position lookup table cannot be written. %s", tmpDirPath);
-        return false;
-    }
-    if (!mProbabilityDictContent.flushToFile(dictPath)) {
-        AKLOGE("Probability dict content cannot be written. %s", tmpDirPath);
-        return false;
-    }
-    if (!mBigramDictContent.flushToFile(dictPath)) {
-        AKLOGE("Bigram dict content cannot be written. %s", tmpDirPath);
-        return false;
-    }
-    if (!mShortcutDictContent.flushToFile(dictPath)) {
-        AKLOGE("Shortcut dict content cannot be written. %s", tmpDirPath);
-        return false;
-    }
-    // Remove existing dictionary.
-    if (!FileUtils::removeDirAndFiles(dictDirPath)) {
-        AKLOGE("Existing directory %s cannot be removed.", dictDirPath);
-        ASSERT(false);
-        return false;
-    }
-    // Rename temporary directory.
-    if (rename(tmpDirPath, dictDirPath) != 0) {
-        AKLOGE("%s cannot be renamed to %s", tmpDirPath, dictDirPath);
-        ASSERT(false);
-        return false;
-    }
-    return true;
-}
-
-Ver4DictBuffers::Ver4DictBuffers(const char *const dictPath,
-        MmappedBuffer::MmappedBufferPtr headerBuffer, const bool isUpdatable,
-        const FormatUtils::FORMAT_VERSION formatVersion)
-        : mHeaderBuffer(std::move(headerBuffer)),
-          mDictBuffer(MmappedBuffer::openBuffer(dictPath,
-                  Ver4DictConstants::TRIE_FILE_EXTENSION, isUpdatable)),
-          mHeaderPolicy(mHeaderBuffer->getReadOnlyByteArrayView().data(), formatVersion),
-          mExpandableHeaderBuffer(mHeaderBuffer->getReadWriteByteArrayView(),
-                  BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
-          mExpandableTrieBuffer(
-                  mDictBuffer ? mDictBuffer->getReadWriteByteArrayView() :
-                          ReadWriteByteArrayView(),
-                  BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
-          mTerminalPositionLookupTable(dictPath, isUpdatable),
-          mProbabilityDictContent(dictPath, mHeaderPolicy.hasHistoricalInfoOfWords(), isUpdatable),
-          mBigramDictContent(dictPath, mHeaderPolicy.hasHistoricalInfoOfWords(), isUpdatable),
-          mShortcutDictContent(dictPath, isUpdatable),
-          mIsUpdatable(isUpdatable) {}
-
-Ver4DictBuffers::Ver4DictBuffers(const HeaderPolicy *const headerPolicy, const int maxTrieSize)
-        : mHeaderBuffer(nullptr), mDictBuffer(nullptr), mHeaderPolicy(headerPolicy),
-          mExpandableHeaderBuffer(Ver4DictConstants::MAX_DICTIONARY_SIZE),
-          mExpandableTrieBuffer(maxTrieSize), mTerminalPositionLookupTable(),
-          mProbabilityDictContent(headerPolicy->hasHistoricalInfoOfWords()),
-          mBigramDictContent(headerPolicy->hasHistoricalInfoOfWords()), mShortcutDictContent(),
-          mIsUpdatable(true) {}
-
-} // namespace v402
-} // namespace backward
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_buffers.h b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_buffers.h
deleted file mode 100644
index e775be5..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_buffers.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h
- */
-
-#ifndef LATINIME_BACKWARD_V402_VER4_DICT_BUFFER_H
-#define LATINIME_BACKWARD_V402_VER4_DICT_BUFFER_H
-
-#include <memory>
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/bigram_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/probability_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/shortcut_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/mmapped_buffer.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-class Ver4DictBuffers {
- public:
-    typedef std::unique_ptr<Ver4DictBuffers> Ver4DictBuffersPtr;
-
-    static Ver4DictBuffersPtr openVer4DictBuffers(const char *const dictDirPath,
-            MmappedBuffer::MmappedBufferPtr headerBuffer,
-            const FormatUtils::FORMAT_VERSION formatVersion);
-
-    static AK_FORCE_INLINE Ver4DictBuffersPtr createVer4DictBuffers(
-            const HeaderPolicy *const headerPolicy, const int maxTrieSize) {
-        return Ver4DictBuffersPtr(new Ver4DictBuffers(headerPolicy, maxTrieSize));
-    }
-
-    AK_FORCE_INLINE bool isValid() const {
-        return mHeaderBuffer && mDictBuffer && mHeaderPolicy.isValid()
-                && mProbabilityDictContent.isValid() && mTerminalPositionLookupTable.isValid()
-                && mBigramDictContent.isValid() && mShortcutDictContent.isValid();
-    }
-
-    AK_FORCE_INLINE bool isNearSizeLimit() const {
-        return mExpandableTrieBuffer.isNearSizeLimit()
-                || mTerminalPositionLookupTable.isNearSizeLimit()
-                || mProbabilityDictContent.isNearSizeLimit()
-                || mBigramDictContent.isNearSizeLimit()
-                || mShortcutDictContent.isNearSizeLimit();
-    }
-
-    AK_FORCE_INLINE const HeaderPolicy *getHeaderPolicy() const {
-        return &mHeaderPolicy;
-    }
-
-    AK_FORCE_INLINE BufferWithExtendableBuffer *getWritableHeaderBuffer() {
-        return &mExpandableHeaderBuffer;
-    }
-
-    AK_FORCE_INLINE BufferWithExtendableBuffer *getWritableTrieBuffer() {
-        return &mExpandableTrieBuffer;
-    }
-
-    AK_FORCE_INLINE const BufferWithExtendableBuffer *getTrieBuffer() const {
-        return &mExpandableTrieBuffer;
-    }
-
-    AK_FORCE_INLINE TerminalPositionLookupTable *getMutableTerminalPositionLookupTable() {
-        return &mTerminalPositionLookupTable;
-    }
-
-    AK_FORCE_INLINE const TerminalPositionLookupTable *getTerminalPositionLookupTable() const {
-        return &mTerminalPositionLookupTable;
-    }
-
-    AK_FORCE_INLINE ProbabilityDictContent *getMutableProbabilityDictContent() {
-        return &mProbabilityDictContent;
-    }
-
-    AK_FORCE_INLINE const ProbabilityDictContent *getProbabilityDictContent() const {
-        return &mProbabilityDictContent;
-    }
-
-    AK_FORCE_INLINE BigramDictContent *getMutableBigramDictContent() {
-        return &mBigramDictContent;
-    }
-
-    AK_FORCE_INLINE const BigramDictContent *getBigramDictContent() const {
-        return &mBigramDictContent;
-    }
-
-    AK_FORCE_INLINE ShortcutDictContent *getMutableShortcutDictContent() {
-        return &mShortcutDictContent;
-    }
-
-    AK_FORCE_INLINE const ShortcutDictContent *getShortcutDictContent() const {
-        return &mShortcutDictContent;
-    }
-
-    AK_FORCE_INLINE bool isUpdatable() const {
-        return mIsUpdatable;
-    }
-
-    bool flush(const char *const dictDirPath) const {
-        return flushHeaderAndDictBuffers(dictDirPath, &mExpandableHeaderBuffer);
-    }
-
-    bool flushHeaderAndDictBuffers(const char *const dictDirPath,
-            const BufferWithExtendableBuffer *const headerBuffer) const;
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(Ver4DictBuffers);
-
-    Ver4DictBuffers(const char *const dictDirPath,
-            const MmappedBuffer::MmappedBufferPtr headerBuffer, const bool isUpdatable,
-            const FormatUtils::FORMAT_VERSION formatVersion);
-
-    Ver4DictBuffers(const HeaderPolicy *const headerPolicy, const int maxTrieSize);
-
-    const MmappedBuffer::MmappedBufferPtr mHeaderBuffer;
-    const MmappedBuffer::MmappedBufferPtr mDictBuffer;
-    const HeaderPolicy mHeaderPolicy;
-    BufferWithExtendableBuffer mExpandableHeaderBuffer;
-    BufferWithExtendableBuffer mExpandableTrieBuffer;
-    TerminalPositionLookupTable mTerminalPositionLookupTable;
-    ProbabilityDictContent mProbabilityDictContent;
-    BigramDictContent mBigramDictContent;
-    ShortcutDictContent mShortcutDictContent;
-    const int mIsUpdatable;
-};
-} // namespace v402
-} // namespace backward
-} // namespace latinime
-#endif /* LATINIME_BACKWARD_V402_VER4_DICT_BUFFER_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.cpp
deleted file mode 100644
index 81d85f4..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.cpp
- */
-
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-// These values MUST match the definitions in FormatSpec.java.
-const char *const Ver4DictConstants::TRIE_FILE_EXTENSION = ".trie";
-const char *const Ver4DictConstants::HEADER_FILE_EXTENSION = ".header";
-const char *const Ver4DictConstants::FREQ_FILE_EXTENSION = ".freq";
-// tat = Terminal Address Table
-const char *const Ver4DictConstants::TERMINAL_ADDRESS_TABLE_FILE_EXTENSION = ".tat";
-const char *const Ver4DictConstants::BIGRAM_FILE_EXTENSION = ".bigram_freq";
-const char *const Ver4DictConstants::BIGRAM_LOOKUP_TABLE_FILE_EXTENSION = ".bigram_lookup";
-const char *const Ver4DictConstants::BIGRAM_CONTENT_TABLE_FILE_EXTENSION = ".bigram_index_freq";
-const char *const Ver4DictConstants::SHORTCUT_FILE_EXTENSION = ".shortcut_shortcut";
-const char *const Ver4DictConstants::SHORTCUT_LOOKUP_TABLE_FILE_EXTENSION = ".shortcut_lookup";
-const char *const Ver4DictConstants::SHORTCUT_CONTENT_TABLE_FILE_EXTENSION =
-        ".shortcut_index_shortcut";
-
-// Version 4 dictionary size is implicitly limited to 8MB due to 3-byte offsets.
-const int Ver4DictConstants::MAX_DICTIONARY_SIZE = 8 * 1024 * 1024;
-// Extended region size, which is not GCed region size in dict file + additional buffer size, is
-// limited to 1MB to prevent from inefficient traversing.
-const int Ver4DictConstants::MAX_DICT_EXTENDED_REGION_SIZE = 1 * 1024 * 1024;
-
-const int Ver4DictConstants::NOT_A_TERMINAL_ID = -1;
-const int Ver4DictConstants::PROBABILITY_SIZE = 1;
-const int Ver4DictConstants::FLAGS_IN_PROBABILITY_FILE_SIZE = 1;
-const int Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE = 3;
-const int Ver4DictConstants::NOT_A_TERMINAL_ADDRESS = 0;
-const int Ver4DictConstants::TERMINAL_ID_FIELD_SIZE = 4;
-const int Ver4DictConstants::TIME_STAMP_FIELD_SIZE = 4;
-const int Ver4DictConstants::WORD_LEVEL_FIELD_SIZE = 1;
-const int Ver4DictConstants::WORD_COUNT_FIELD_SIZE = 1;
-
-const int Ver4DictConstants::BIGRAM_ADDRESS_TABLE_BLOCK_SIZE = 16;
-const int Ver4DictConstants::BIGRAM_ADDRESS_TABLE_DATA_SIZE = 4;
-const int Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_BLOCK_SIZE = 64;
-const int Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_DATA_SIZE = 4;
-
-const int Ver4DictConstants::BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE = 3;
-// Unsigned int max value of BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE-byte is used for representing
-// invalid terminal ID in bigram lists.
-const int Ver4DictConstants::INVALID_BIGRAM_TARGET_TERMINAL_ID =
-        (1 << (BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE * 8)) - 1;
-const int Ver4DictConstants::BIGRAM_FLAGS_FIELD_SIZE = 1;
-const int Ver4DictConstants::BIGRAM_PROBABILITY_MASK = 0x0F;
-const int Ver4DictConstants::BIGRAM_HAS_NEXT_MASK = 0x80;
-const int Ver4DictConstants::BIGRAM_LARGE_PROBABILITY_FIELD_SIZE = 1;
-
-const int Ver4DictConstants::SHORTCUT_FLAGS_FIELD_SIZE = 1;
-const int Ver4DictConstants::SHORTCUT_PROBABILITY_MASK = 0x0F;
-const int Ver4DictConstants::SHORTCUT_HAS_NEXT_MASK = 0x80;
-
-} // namespace v402
-} // namespace backward
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h
deleted file mode 100644
index 88ebd6a..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h
- */
-
-#ifndef LATINIME_BACKWARD_V402_VER4_DICT_CONSTANTS_H
-#define LATINIME_BACKWARD_V402_VER4_DICT_CONSTANTS_H
-
-#include "defines.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-// TODO: Create PtConstants under the pt_common and move some constant values there.
-// Note that there are corresponding definitions in FormatSpec.java.
-class Ver4DictConstants {
- public:
-    static const char *const TRIE_FILE_EXTENSION;
-    static const char *const HEADER_FILE_EXTENSION;
-    static const char *const FREQ_FILE_EXTENSION;
-    static const char *const TERMINAL_ADDRESS_TABLE_FILE_EXTENSION;
-    static const char *const BIGRAM_FILE_EXTENSION;
-    static const char *const BIGRAM_LOOKUP_TABLE_FILE_EXTENSION;
-    static const char *const BIGRAM_CONTENT_TABLE_FILE_EXTENSION;
-    static const char *const SHORTCUT_FILE_EXTENSION;
-    static const char *const SHORTCUT_LOOKUP_TABLE_FILE_EXTENSION;
-    static const char *const SHORTCUT_CONTENT_TABLE_FILE_EXTENSION;
-
-    static const int MAX_DICTIONARY_SIZE;
-    static const int MAX_DICT_EXTENDED_REGION_SIZE;
-
-    static const int NOT_A_TERMINAL_ID;
-    static const int PROBABILITY_SIZE;
-    static const int FLAGS_IN_PROBABILITY_FILE_SIZE;
-    static const int TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE;
-    static const int NOT_A_TERMINAL_ADDRESS;
-    static const int TERMINAL_ID_FIELD_SIZE;
-    static const int TIME_STAMP_FIELD_SIZE;
-    static const int WORD_LEVEL_FIELD_SIZE;
-    static const int WORD_COUNT_FIELD_SIZE;
-
-    static const int BIGRAM_ADDRESS_TABLE_BLOCK_SIZE;
-    static const int BIGRAM_ADDRESS_TABLE_DATA_SIZE;
-    static const int SHORTCUT_ADDRESS_TABLE_BLOCK_SIZE;
-    static const int SHORTCUT_ADDRESS_TABLE_DATA_SIZE;
-
-    static const int BIGRAM_FLAGS_FIELD_SIZE;
-    static const int BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE;
-    static const int INVALID_BIGRAM_TARGET_TERMINAL_ID;
-    static const int BIGRAM_PROBABILITY_MASK;
-    static const int BIGRAM_HAS_NEXT_MASK;
-    // Used when bigram list has time stamp.
-    static const int BIGRAM_LARGE_PROBABILITY_FIELD_SIZE;
-
-    static const int SHORTCUT_FLAGS_FIELD_SIZE;
-    static const int SHORTCUT_PROBABILITY_MASK;
-    static const int SHORTCUT_HAS_NEXT_MASK;
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(Ver4DictConstants);
-};
-} // namespace v402
-} // namespace backward
-} // namespace latinime
-#endif /* LATINIME_BACKWARD_V402_VER4_DICT_CONSTANTS_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.cpp
deleted file mode 100644
index 82399f1..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.cpp
- */
-
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h"
-
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/probability_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/probability_entry.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-const PtNodeParams Ver4PatriciaTrieNodeReader::fetchPtNodeInfoFromBufferAndProcessMovedPtNode(
-        const int ptNodePos, const int siblingNodePos) const {
-    if (ptNodePos < 0 || ptNodePos >= mBuffer->getTailPosition()) {
-        // Reading invalid position because of bug or broken dictionary.
-        AKLOGE("Fetching PtNode info from invalid dictionary position: %d, dictionary size: %d",
-                ptNodePos, mBuffer->getTailPosition());
-        ASSERT(false);
-        return PtNodeParams();
-    }
-    const bool usesAdditionalBuffer = mBuffer->isInAdditionalBuffer(ptNodePos);
-    const uint8_t *const dictBuf = mBuffer->getBuffer(usesAdditionalBuffer);
-    int pos = ptNodePos;
-    const int headPos = ptNodePos;
-    if (usesAdditionalBuffer) {
-        pos -= mBuffer->getOriginalBufferSize();
-    }
-    const PatriciaTrieReadingUtils::NodeFlags flags =
-            PatriciaTrieReadingUtils::getFlagsAndAdvancePosition(dictBuf, &pos);
-    const int parentPosOffset =
-            DynamicPtReadingUtils::getParentPtNodePosOffsetAndAdvancePosition(
-                    dictBuf, &pos);
-    const int parentPos =
-            DynamicPtReadingUtils::getParentPtNodePos(parentPosOffset, headPos);
-    int codePoints[MAX_WORD_LENGTH];
-    const int codePonitCount = PatriciaTrieReadingUtils::getCharsAndAdvancePosition(
-            dictBuf, flags, MAX_WORD_LENGTH, codePoints, &pos);
-    int terminalIdFieldPos = NOT_A_DICT_POS;
-    int terminalId = Ver4DictConstants::NOT_A_TERMINAL_ID;
-    int probability = NOT_A_PROBABILITY;
-    if (PatriciaTrieReadingUtils::isTerminal(flags)) {
-        terminalIdFieldPos = pos;
-        if (usesAdditionalBuffer) {
-            terminalIdFieldPos += mBuffer->getOriginalBufferSize();
-        }
-        terminalId = Ver4PatriciaTrieReadingUtils::getTerminalIdAndAdvancePosition(dictBuf, &pos);
-        const ProbabilityEntry probabilityEntry =
-                mProbabilityDictContent->getProbabilityEntry(terminalId);
-        if (probabilityEntry.hasHistoricalInfo()) {
-            probability = ForgettingCurveUtils::decodeProbability(
-                    probabilityEntry.getHistoricalInfo(), mHeaderPolicy);
-        } else {
-            probability = probabilityEntry.getProbability();
-        }
-    }
-    int childrenPosFieldPos = pos;
-    if (usesAdditionalBuffer) {
-        childrenPosFieldPos += mBuffer->getOriginalBufferSize();
-    }
-    int childrenPos = DynamicPtReadingUtils::readChildrenPositionAndAdvancePosition(
-            dictBuf, &pos);
-    if (usesAdditionalBuffer && childrenPos != NOT_A_DICT_POS) {
-        childrenPos += mBuffer->getOriginalBufferSize();
-    }
-    if (usesAdditionalBuffer) {
-        pos += mBuffer->getOriginalBufferSize();
-    }
-    // Sibling position is the tail position of original PtNode.
-    int newSiblingNodePos = (siblingNodePos == NOT_A_DICT_POS) ? pos : siblingNodePos;
-    // Read destination node if the read node is a moved node.
-    if (DynamicPtReadingUtils::isMoved(flags)) {
-        // The destination position is stored at the same place as the parent position.
-        return fetchPtNodeInfoFromBufferAndProcessMovedPtNode(parentPos, newSiblingNodePos);
-    } else {
-        return PtNodeParams(headPos, flags, parentPos, codePonitCount, codePoints,
-                terminalIdFieldPos, terminalId, probability, childrenPosFieldPos, childrenPos,
-                newSiblingNodePos);
-    }
-}
-
-} // namespace v402
-} // namespace backward
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h
deleted file mode 100644
index 1999a51..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.h
- */
-
-#ifndef LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_NODE_READER_H
-#define LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_NODE_READER_H
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_reader.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-} // namespace v402
-} // namespace backward
-class BufferWithExtendableBuffer;
-namespace backward {
-namespace v402 {
-} // namespace v402
-} // namespace backward
-class HeaderPolicy;
-namespace backward {
-namespace v402 {
-class ProbabilityDictContent;
-
-/*
- * This class is used for helping to read nodes of ver4 patricia trie. This class handles moved
- * node and reads node attributes including probability form probabilityBuffer.
- */
-class Ver4PatriciaTrieNodeReader : public PtNodeReader {
- public:
-    Ver4PatriciaTrieNodeReader(const BufferWithExtendableBuffer *const buffer,
-            const ProbabilityDictContent *const probabilityDictContent,
-            const HeaderPolicy *const headerPolicy)
-            : mBuffer(buffer), mProbabilityDictContent(probabilityDictContent),
-              mHeaderPolicy(headerPolicy) {}
-
-    ~Ver4PatriciaTrieNodeReader() {}
-
-    virtual const PtNodeParams fetchPtNodeParamsInBufferFromPtNodePos(const int ptNodePos) const {
-        return fetchPtNodeInfoFromBufferAndProcessMovedPtNode(ptNodePos,
-                NOT_A_DICT_POS /* siblingNodePos */);
-    }
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(Ver4PatriciaTrieNodeReader);
-
-    const BufferWithExtendableBuffer *const mBuffer;
-    const ProbabilityDictContent *const mProbabilityDictContent;
-    const HeaderPolicy *const mHeaderPolicy;
-
-    const PtNodeParams fetchPtNodeInfoFromBufferAndProcessMovedPtNode(const int ptNodePos,
-            const int siblingNodePos) const;
-};
-} // namespace v402
-} // namespace backward
-} // namespace latinime
-#endif /* LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_NODE_READER_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.cpp
deleted file mode 100644
index 278f2b1..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.cpp
+++ /dev/null
@@ -1,430 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.cpp
- */
-
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.h"
-
-#include "suggest/core/dictionary/property/unigram_property.h"
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/probability_entry.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/shortcut/ver4_shortcut_list_policy.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_buffers.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-const int Ver4PatriciaTrieNodeWriter::CHILDREN_POSITION_FIELD_SIZE = 3;
-
-bool Ver4PatriciaTrieNodeWriter::markPtNodeAsDeleted(
-        const PtNodeParams *const toBeUpdatedPtNodeParams) {
-    int pos = toBeUpdatedPtNodeParams->getHeadPos();
-    const bool usesAdditionalBuffer = mTrieBuffer->isInAdditionalBuffer(pos);
-    const uint8_t *const dictBuf = mTrieBuffer->getBuffer(usesAdditionalBuffer);
-    if (usesAdditionalBuffer) {
-        pos -= mTrieBuffer->getOriginalBufferSize();
-    }
-    // Read original flags
-    const PatriciaTrieReadingUtils::NodeFlags originalFlags =
-            PatriciaTrieReadingUtils::getFlagsAndAdvancePosition(dictBuf, &pos);
-    const PatriciaTrieReadingUtils::NodeFlags updatedFlags =
-            DynamicPtReadingUtils::updateAndGetFlags(originalFlags, false /* isMoved */,
-                    true /* isDeleted */, false /* willBecomeNonTerminal */);
-    int writingPos = toBeUpdatedPtNodeParams->getHeadPos();
-    // Update flags.
-    if (!DynamicPtWritingUtils::writeFlagsAndAdvancePosition(mTrieBuffer, updatedFlags,
-            &writingPos)) {
-        return false;
-    }
-    if (toBeUpdatedPtNodeParams->isTerminal()) {
-        // The PtNode is a terminal. Delete entry from the terminal position lookup table.
-        return mBuffers->getMutableTerminalPositionLookupTable()->setTerminalPtNodePosition(
-                toBeUpdatedPtNodeParams->getTerminalId(), NOT_A_DICT_POS /* ptNodePos */);
-    } else {
-        return true;
-    }
-}
-
-bool Ver4PatriciaTrieNodeWriter::markPtNodeAsMoved(
-        const PtNodeParams *const toBeUpdatedPtNodeParams,
-        const int movedPos, const int bigramLinkedNodePos) {
-    int pos = toBeUpdatedPtNodeParams->getHeadPos();
-    const bool usesAdditionalBuffer = mTrieBuffer->isInAdditionalBuffer(pos);
-    const uint8_t *const dictBuf = mTrieBuffer->getBuffer(usesAdditionalBuffer);
-    if (usesAdditionalBuffer) {
-        pos -= mTrieBuffer->getOriginalBufferSize();
-    }
-    // Read original flags
-    const PatriciaTrieReadingUtils::NodeFlags originalFlags =
-            PatriciaTrieReadingUtils::getFlagsAndAdvancePosition(dictBuf, &pos);
-    const PatriciaTrieReadingUtils::NodeFlags updatedFlags =
-            DynamicPtReadingUtils::updateAndGetFlags(originalFlags, true /* isMoved */,
-                    false /* isDeleted */, false /* willBecomeNonTerminal */);
-    int writingPos = toBeUpdatedPtNodeParams->getHeadPos();
-    // Update flags.
-    if (!DynamicPtWritingUtils::writeFlagsAndAdvancePosition(mTrieBuffer, updatedFlags,
-            &writingPos)) {
-        return false;
-    }
-    // Update moved position, which is stored in the parent offset field.
-    if (!DynamicPtWritingUtils::writeParentPosOffsetAndAdvancePosition(
-            mTrieBuffer, movedPos, toBeUpdatedPtNodeParams->getHeadPos(), &writingPos)) {
-        return false;
-    }
-    if (toBeUpdatedPtNodeParams->hasChildren()) {
-        // Update children's parent position.
-        mReadingHelper.initWithPtNodeArrayPos(toBeUpdatedPtNodeParams->getChildrenPos());
-        while (!mReadingHelper.isEnd()) {
-            const PtNodeParams childPtNodeParams(mReadingHelper.getPtNodeParams());
-            int parentOffsetFieldPos = childPtNodeParams.getHeadPos()
-                    + DynamicPtWritingUtils::NODE_FLAG_FIELD_SIZE;
-            if (!DynamicPtWritingUtils::writeParentPosOffsetAndAdvancePosition(
-                    mTrieBuffer, bigramLinkedNodePos, childPtNodeParams.getHeadPos(),
-                    &parentOffsetFieldPos)) {
-                // Parent offset cannot be written because of a bug or a broken dictionary; thus,
-                // we give up to update dictionary.
-                return false;
-            }
-            mReadingHelper.readNextSiblingNode(childPtNodeParams);
-        }
-    }
-    return true;
-}
-
-bool Ver4PatriciaTrieNodeWriter::markPtNodeAsWillBecomeNonTerminal(
-        const PtNodeParams *const toBeUpdatedPtNodeParams) {
-    int pos = toBeUpdatedPtNodeParams->getHeadPos();
-    const bool usesAdditionalBuffer = mTrieBuffer->isInAdditionalBuffer(pos);
-    const uint8_t *const dictBuf = mTrieBuffer->getBuffer(usesAdditionalBuffer);
-    if (usesAdditionalBuffer) {
-        pos -= mTrieBuffer->getOriginalBufferSize();
-    }
-    // Read original flags
-    const PatriciaTrieReadingUtils::NodeFlags originalFlags =
-            PatriciaTrieReadingUtils::getFlagsAndAdvancePosition(dictBuf, &pos);
-    const PatriciaTrieReadingUtils::NodeFlags updatedFlags =
-            DynamicPtReadingUtils::updateAndGetFlags(originalFlags, false /* isMoved */,
-                    false /* isDeleted */, true /* willBecomeNonTerminal */);
-    if (!mBuffers->getMutableTerminalPositionLookupTable()->setTerminalPtNodePosition(
-            toBeUpdatedPtNodeParams->getTerminalId(), NOT_A_DICT_POS /* ptNodePos */)) {
-        AKLOGE("Cannot update terminal position lookup table. terminal id: %d",
-                toBeUpdatedPtNodeParams->getTerminalId());
-        return false;
-    }
-    // Update flags.
-    int writingPos = toBeUpdatedPtNodeParams->getHeadPos();
-    return DynamicPtWritingUtils::writeFlagsAndAdvancePosition(mTrieBuffer, updatedFlags,
-            &writingPos);
-}
-
-bool Ver4PatriciaTrieNodeWriter::updatePtNodeUnigramProperty(
-        const PtNodeParams *const toBeUpdatedPtNodeParams,
-        const UnigramProperty *const unigramProperty) {
-    // Update probability and historical information.
-    // TODO: Update other information in the unigram property.
-    if (!toBeUpdatedPtNodeParams->isTerminal()) {
-        return false;
-    }
-    const ProbabilityEntry originalProbabilityEntry =
-            mBuffers->getProbabilityDictContent()->getProbabilityEntry(
-                    toBeUpdatedPtNodeParams->getTerminalId());
-    const ProbabilityEntry probabilityEntry = createUpdatedEntryFrom(&originalProbabilityEntry,
-            unigramProperty);
-    return mBuffers->getMutableProbabilityDictContent()->setProbabilityEntry(
-            toBeUpdatedPtNodeParams->getTerminalId(), &probabilityEntry);
-}
-
-bool Ver4PatriciaTrieNodeWriter::updatePtNodeProbabilityAndGetNeedsToKeepPtNodeAfterGC(
-        const PtNodeParams *const toBeUpdatedPtNodeParams, bool *const outNeedsToKeepPtNode) {
-    if (!toBeUpdatedPtNodeParams->isTerminal()) {
-        AKLOGE("updatePtNodeProbabilityAndGetNeedsToSaveForGC is called for non-terminal PtNode.");
-        return false;
-    }
-    const ProbabilityEntry originalProbabilityEntry =
-            mBuffers->getProbabilityDictContent()->getProbabilityEntry(
-                    toBeUpdatedPtNodeParams->getTerminalId());
-    if (originalProbabilityEntry.hasHistoricalInfo()) {
-        const HistoricalInfo historicalInfo = ForgettingCurveUtils::createHistoricalInfoToSave(
-                originalProbabilityEntry.getHistoricalInfo(), mHeaderPolicy);
-        const ProbabilityEntry probabilityEntry =
-                originalProbabilityEntry.createEntryWithUpdatedHistoricalInfo(&historicalInfo);
-        if (!mBuffers->getMutableProbabilityDictContent()->setProbabilityEntry(
-                toBeUpdatedPtNodeParams->getTerminalId(), &probabilityEntry)) {
-            AKLOGE("Cannot write updated probability entry. terminalId: %d",
-                    toBeUpdatedPtNodeParams->getTerminalId());
-            return false;
-        }
-        const bool isValid = ForgettingCurveUtils::needsToKeep(&historicalInfo, mHeaderPolicy);
-        if (!isValid) {
-            if (!markPtNodeAsWillBecomeNonTerminal(toBeUpdatedPtNodeParams)) {
-                AKLOGE("Cannot mark PtNode as willBecomeNonTerminal.");
-                return false;
-            }
-        }
-        *outNeedsToKeepPtNode = isValid;
-    } else {
-        // No need to update probability.
-        *outNeedsToKeepPtNode = true;
-    }
-    return true;
-}
-
-bool Ver4PatriciaTrieNodeWriter::updateChildrenPosition(
-        const PtNodeParams *const toBeUpdatedPtNodeParams, const int newChildrenPosition) {
-    int childrenPosFieldPos = toBeUpdatedPtNodeParams->getChildrenPosFieldPos();
-    return DynamicPtWritingUtils::writeChildrenPositionAndAdvancePosition(mTrieBuffer,
-            newChildrenPosition, &childrenPosFieldPos);
-}
-
-bool Ver4PatriciaTrieNodeWriter::updateTerminalId(const PtNodeParams *const toBeUpdatedPtNodeParams,
-        const int newTerminalId) {
-    return mTrieBuffer->writeUint(newTerminalId, Ver4DictConstants::TERMINAL_ID_FIELD_SIZE,
-            toBeUpdatedPtNodeParams->getTerminalIdFieldPos());
-}
-
-bool Ver4PatriciaTrieNodeWriter::writePtNodeAndAdvancePosition(
-        const PtNodeParams *const ptNodeParams, int *const ptNodeWritingPos) {
-    return writePtNodeAndGetTerminalIdAndAdvancePosition(ptNodeParams, 0 /* outTerminalId */,
-            ptNodeWritingPos);
-}
-
-
-bool Ver4PatriciaTrieNodeWriter::writeNewTerminalPtNodeAndAdvancePosition(
-        const PtNodeParams *const ptNodeParams, const UnigramProperty *const unigramProperty,
-        int *const ptNodeWritingPos) {
-    int terminalId = Ver4DictConstants::NOT_A_TERMINAL_ID;
-    if (!writePtNodeAndGetTerminalIdAndAdvancePosition(ptNodeParams, &terminalId,
-            ptNodeWritingPos)) {
-        return false;
-    }
-    // Write probability.
-    ProbabilityEntry newProbabilityEntry;
-    const ProbabilityEntry probabilityEntryToWrite = createUpdatedEntryFrom(
-            &newProbabilityEntry, unigramProperty);
-    return mBuffers->getMutableProbabilityDictContent()->setProbabilityEntry(terminalId,
-            &probabilityEntryToWrite);
-}
-
-bool Ver4PatriciaTrieNodeWriter::addNgramEntry(const WordIdArrayView prevWordIds, const int wordId,
-        const BigramProperty *const bigramProperty, bool *const outAddedNewEntry) {
-    if (!mBigramPolicy->addNewEntry(prevWordIds[0], wordId, bigramProperty, outAddedNewEntry)) {
-        AKLOGE("Cannot add new bigram entry. terminalId: %d, targetTerminalId: %d",
-                sourcePtNodeParams->getTerminalId(), targetPtNodeParam->getTerminalId());
-        return false;
-    }
-    const int ptNodePos =
-            mBuffers->getTerminalPositionLookupTable()->getTerminalPtNodePosition(prevWordIds[0]);
-    const PtNodeParams sourcePtNodeParams =
-            mPtNodeReader->fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos);
-    if (!sourcePtNodeParams.hasBigrams()) {
-        // Update has bigrams flag.
-        return updatePtNodeFlags(sourcePtNodeParams.getHeadPos(),
-                sourcePtNodeParams.isBlacklisted(), sourcePtNodeParams.isNotAWord(),
-                sourcePtNodeParams.isTerminal(), sourcePtNodeParams.hasShortcutTargets(),
-                true /* hasBigrams */,
-                sourcePtNodeParams.getCodePointCount() > 1 /* hasMultipleChars */);
-    }
-    return true;
-}
-
-bool Ver4PatriciaTrieNodeWriter::removeNgramEntry(const WordIdArrayView prevWordIds,
-        const int wordId) {
-    return mBigramPolicy->removeEntry(prevWordIds[0], wordId);
-}
-
-bool Ver4PatriciaTrieNodeWriter::updateAllBigramEntriesAndDeleteUselessEntries(
-            const PtNodeParams *const sourcePtNodeParams, int *const outBigramEntryCount) {
-    return mBigramPolicy->updateAllBigramEntriesAndDeleteUselessEntries(
-            sourcePtNodeParams->getTerminalId(), outBigramEntryCount);
-}
-
-bool Ver4PatriciaTrieNodeWriter::updateAllPositionFields(
-        const PtNodeParams *const toBeUpdatedPtNodeParams,
-        const DictPositionRelocationMap *const dictPositionRelocationMap,
-        int *const outBigramEntryCount) {
-    int parentPos = toBeUpdatedPtNodeParams->getParentPos();
-    if (parentPos != NOT_A_DICT_POS) {
-        PtNodeWriter::PtNodePositionRelocationMap::const_iterator it =
-                dictPositionRelocationMap->mPtNodePositionRelocationMap.find(parentPos);
-        if (it != dictPositionRelocationMap->mPtNodePositionRelocationMap.end()) {
-            parentPos = it->second;
-        }
-    }
-    int writingPos = toBeUpdatedPtNodeParams->getHeadPos()
-            + DynamicPtWritingUtils::NODE_FLAG_FIELD_SIZE;
-    // Write updated parent offset.
-    if (!DynamicPtWritingUtils::writeParentPosOffsetAndAdvancePosition(mTrieBuffer,
-            parentPos, toBeUpdatedPtNodeParams->getHeadPos(), &writingPos)) {
-        return false;
-    }
-
-    // Updates children position.
-    int childrenPos = toBeUpdatedPtNodeParams->getChildrenPos();
-    if (childrenPos != NOT_A_DICT_POS) {
-        PtNodeWriter::PtNodeArrayPositionRelocationMap::const_iterator it =
-                dictPositionRelocationMap->mPtNodeArrayPositionRelocationMap.find(childrenPos);
-        if (it != dictPositionRelocationMap->mPtNodeArrayPositionRelocationMap.end()) {
-            childrenPos = it->second;
-        }
-    }
-    if (!updateChildrenPosition(toBeUpdatedPtNodeParams, childrenPos)) {
-        return false;
-    }
-
-    // Counts bigram entries.
-    if (outBigramEntryCount) {
-        *outBigramEntryCount = mBigramPolicy->getBigramEntryConut(
-                toBeUpdatedPtNodeParams->getTerminalId());
-    }
-    return true;
-}
-
-bool Ver4PatriciaTrieNodeWriter::addShortcutTarget(const PtNodeParams *const ptNodeParams,
-        const int *const targetCodePoints, const int targetCodePointCount,
-        const int shortcutProbability) {
-    if (!mShortcutPolicy->addNewShortcut(ptNodeParams->getTerminalId(),
-            targetCodePoints, targetCodePointCount, shortcutProbability)) {
-        AKLOGE("Cannot add new shortuct entry. terminalId: %d", ptNodeParams->getTerminalId());
-        return false;
-    }
-    if (!ptNodeParams->hasShortcutTargets()) {
-        // Update has shortcut targets flag.
-        return updatePtNodeFlags(ptNodeParams->getHeadPos(),
-                ptNodeParams->isBlacklisted(), ptNodeParams->isNotAWord(),
-                ptNodeParams->isTerminal(), true /* hasShortcutTargets */,
-                ptNodeParams->hasBigrams(),
-                ptNodeParams->getCodePointCount() > 1 /* hasMultipleChars */);
-    }
-    return true;
-}
-
-bool Ver4PatriciaTrieNodeWriter::updatePtNodeHasBigramsAndShortcutTargetsFlags(
-        const PtNodeParams *const ptNodeParams) {
-    const bool hasBigrams = mBuffers->getBigramDictContent()->getBigramListHeadPos(
-            ptNodeParams->getTerminalId()) != NOT_A_DICT_POS;
-    const bool hasShortcutTargets = mBuffers->getShortcutDictContent()->getShortcutListHeadPos(
-            ptNodeParams->getTerminalId()) != NOT_A_DICT_POS;
-    return updatePtNodeFlags(ptNodeParams->getHeadPos(), ptNodeParams->isBlacklisted(),
-            ptNodeParams->isNotAWord(), ptNodeParams->isTerminal(), hasShortcutTargets,
-            hasBigrams, ptNodeParams->getCodePointCount() > 1 /* hasMultipleChars */);
-}
-
-bool Ver4PatriciaTrieNodeWriter::writePtNodeAndGetTerminalIdAndAdvancePosition(
-        const PtNodeParams *const ptNodeParams, int *const outTerminalId,
-        int *const ptNodeWritingPos) {
-    const int nodePos = *ptNodeWritingPos;
-    // Write dummy flags. The Node flags are updated with appropriate flags at the last step of the
-    // PtNode writing.
-    if (!DynamicPtWritingUtils::writeFlagsAndAdvancePosition(mTrieBuffer,
-            0 /* nodeFlags */, ptNodeWritingPos)) {
-        return false;
-    }
-    // Calculate a parent offset and write the offset.
-    if (!DynamicPtWritingUtils::writeParentPosOffsetAndAdvancePosition(mTrieBuffer,
-            ptNodeParams->getParentPos(), nodePos, ptNodeWritingPos)) {
-        return false;
-    }
-    // Write code points
-    if (!DynamicPtWritingUtils::writeCodePointsAndAdvancePosition(mTrieBuffer,
-            ptNodeParams->getCodePoints(), ptNodeParams->getCodePointCount(), ptNodeWritingPos)) {
-        return false;
-    }
-    int terminalId = Ver4DictConstants::NOT_A_TERMINAL_ID;
-    if (!ptNodeParams->willBecomeNonTerminal()) {
-        if (ptNodeParams->getTerminalId() != Ver4DictConstants::NOT_A_TERMINAL_ID) {
-            terminalId = ptNodeParams->getTerminalId();
-        } else if (ptNodeParams->isTerminal()) {
-            // Write terminal information using a new terminal id.
-            // Get a new unused terminal id.
-            terminalId = mBuffers->getTerminalPositionLookupTable()->getNextTerminalId();
-        }
-    }
-    const int isTerminal = terminalId != Ver4DictConstants::NOT_A_TERMINAL_ID;
-    if (isTerminal) {
-        // Update the lookup table.
-        if (!mBuffers->getMutableTerminalPositionLookupTable()->setTerminalPtNodePosition(
-                terminalId, nodePos)) {
-            return false;
-        }
-        // Write terminal Id.
-        if (!mTrieBuffer->writeUintAndAdvancePosition(terminalId,
-                Ver4DictConstants::TERMINAL_ID_FIELD_SIZE, ptNodeWritingPos)) {
-            return false;
-        }
-        if (outTerminalId) {
-            *outTerminalId = terminalId;
-        }
-    }
-    // Write children position
-    if (!DynamicPtWritingUtils::writeChildrenPositionAndAdvancePosition(mTrieBuffer,
-            ptNodeParams->getChildrenPos(), ptNodeWritingPos)) {
-        return false;
-    }
-    return updatePtNodeFlags(nodePos, ptNodeParams->isBlacklisted(), ptNodeParams->isNotAWord(),
-            isTerminal, ptNodeParams->hasShortcutTargets(), ptNodeParams->hasBigrams(),
-            ptNodeParams->getCodePointCount() > 1 /* hasMultipleChars */);
-}
-
-const ProbabilityEntry Ver4PatriciaTrieNodeWriter::createUpdatedEntryFrom(
-        const ProbabilityEntry *const originalProbabilityEntry,
-        const UnigramProperty *const unigramProperty) const {
-    // TODO: Consolidate historical info and probability.
-    if (mHeaderPolicy->hasHistoricalInfoOfWords()) {
-        const HistoricalInfo historicalInfoForUpdate(unigramProperty->getTimestamp(),
-                unigramProperty->getLevel(), unigramProperty->getCount());
-        const HistoricalInfo updatedHistoricalInfo =
-                ForgettingCurveUtils::createUpdatedHistoricalInfo(
-                        originalProbabilityEntry->getHistoricalInfo(),
-                        unigramProperty->getProbability(), &historicalInfoForUpdate, mHeaderPolicy);
-        return originalProbabilityEntry->createEntryWithUpdatedHistoricalInfo(
-                &updatedHistoricalInfo);
-    } else {
-        return originalProbabilityEntry->createEntryWithUpdatedProbability(
-                unigramProperty->getProbability());
-    }
-}
-
-bool Ver4PatriciaTrieNodeWriter::updatePtNodeFlags(const int ptNodePos,
-        const bool isBlacklisted, const bool isNotAWord, const bool isTerminal,
-        const bool hasShortcutTargets, const bool hasBigrams, const bool hasMultipleChars) {
-    // Create node flags and write them.
-    PatriciaTrieReadingUtils::NodeFlags nodeFlags =
-            PatriciaTrieReadingUtils::createAndGetFlags(isBlacklisted, isNotAWord, isTerminal,
-                    hasShortcutTargets, hasBigrams, hasMultipleChars,
-                    CHILDREN_POSITION_FIELD_SIZE);
-    if (!DynamicPtWritingUtils::writeFlags(mTrieBuffer, nodeFlags, ptNodePos)) {
-        AKLOGE("Cannot write PtNode flags. flags: %x, pos: %d", nodeFlags, ptNodePos);
-        return false;
-    }
-    return true;
-}
-
-} // namespace v402
-} // namespace backward
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.h b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.h
deleted file mode 100644
index d49d9a6..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.h
- */
-
-#ifndef LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_NODE_WRITER_H
-#define LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_NODE_WRITER_H
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_writer.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/probability_entry.h"
-#include "utils/int_array_view.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-} // namespace v402
-} // namespace backward
-class BufferWithExtendableBuffer;
-namespace backward {
-namespace v402 {
-} // namespace v402
-} // namespace backward
-class HeaderPolicy;
-namespace backward {
-namespace v402 {
-class Ver4BigramListPolicy;
-class Ver4DictBuffers;
-class Ver4PatriciaTrieNodeReader;
-class Ver4PtNodeArrayReader;
-class Ver4ShortcutListPolicy;
-
-/*
- * This class is used for helping to writes nodes of ver4 patricia trie.
- */
-class Ver4PatriciaTrieNodeWriter : public PtNodeWriter {
- public:
-    Ver4PatriciaTrieNodeWriter(BufferWithExtendableBuffer *const trieBuffer,
-            Ver4DictBuffers *const buffers, const HeaderPolicy *const headerPolicy,
-            const PtNodeReader *const ptNodeReader,
-            const PtNodeArrayReader *const ptNodeArrayReader,
-            Ver4BigramListPolicy *const bigramPolicy, Ver4ShortcutListPolicy *const shortcutPolicy)
-            : mTrieBuffer(trieBuffer), mBuffers(buffers), mHeaderPolicy(headerPolicy),
-              mPtNodeReader(ptNodeReader), mReadingHelper(ptNodeReader, ptNodeArrayReader),
-              mBigramPolicy(bigramPolicy), mShortcutPolicy(shortcutPolicy) {}
-
-    virtual ~Ver4PatriciaTrieNodeWriter() {}
-
-    virtual bool markPtNodeAsDeleted(const PtNodeParams *const toBeUpdatedPtNodeParams);
-
-    virtual bool markPtNodeAsMoved(const PtNodeParams *const toBeUpdatedPtNodeParams,
-            const int movedPos, const int bigramLinkedNodePos);
-
-    virtual bool markPtNodeAsWillBecomeNonTerminal(
-            const PtNodeParams *const toBeUpdatedPtNodeParams);
-
-    virtual bool updatePtNodeUnigramProperty(const PtNodeParams *const toBeUpdatedPtNodeParams,
-            const UnigramProperty *const unigramProperty);
-
-    virtual bool updatePtNodeProbabilityAndGetNeedsToKeepPtNodeAfterGC(
-            const PtNodeParams *const toBeUpdatedPtNodeParams, bool *const outNeedsToKeepPtNode);
-
-    virtual bool updateChildrenPosition(const PtNodeParams *const toBeUpdatedPtNodeParams,
-            const int newChildrenPosition);
-
-    bool updateTerminalId(const PtNodeParams *const toBeUpdatedPtNodeParams,
-            const int newTerminalId);
-
-    virtual bool writePtNodeAndAdvancePosition(const PtNodeParams *const ptNodeParams,
-            int *const ptNodeWritingPos);
-
-    virtual bool writeNewTerminalPtNodeAndAdvancePosition(const PtNodeParams *const ptNodeParams,
-            const UnigramProperty *const unigramProperty, int *const ptNodeWritingPos);
-
-    virtual bool addNgramEntry(const WordIdArrayView prevWordIds, const int wordId,
-            const BigramProperty *const bigramProperty, bool *const outAddedNewEntry);
-
-    virtual bool removeNgramEntry(const WordIdArrayView prevWordIds, const int wordId);
-
-    virtual bool updateAllBigramEntriesAndDeleteUselessEntries(
-            const PtNodeParams *const sourcePtNodeParams, int *const outBigramEntryCount);
-
-    virtual bool updateAllPositionFields(const PtNodeParams *const toBeUpdatedPtNodeParams,
-            const DictPositionRelocationMap *const dictPositionRelocationMap,
-            int *const outBigramEntryCount);
-
-    virtual bool addShortcutTarget(const PtNodeParams *const ptNodeParams,
-            const int *const targetCodePoints, const int targetCodePointCount,
-            const int shortcutProbability);
-
-    bool updatePtNodeHasBigramsAndShortcutTargetsFlags(const PtNodeParams *const ptNodeParams);
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(Ver4PatriciaTrieNodeWriter);
-
-    bool writePtNodeAndGetTerminalIdAndAdvancePosition(
-            const PtNodeParams *const ptNodeParams, int *const outTerminalId,
-            int *const ptNodeWritingPos);
-
-    // Create updated probability entry using given unigram property. In addition to the
-    // probability, this method updates historical information if needed.
-    // TODO: Update flags belonging to the unigram property.
-    const ProbabilityEntry createUpdatedEntryFrom(
-            const ProbabilityEntry *const originalProbabilityEntry,
-            const UnigramProperty *const unigramProperty) const;
-
-    bool updatePtNodeFlags(const int ptNodePos, const bool isBlacklisted, const bool isNotAWord,
-            const bool isTerminal, const bool hasShortcutTargets, const bool hasBigrams,
-            const bool hasMultipleChars);
-
-    static const int CHILDREN_POSITION_FIELD_SIZE;
-
-    BufferWithExtendableBuffer *const mTrieBuffer;
-    Ver4DictBuffers *const mBuffers;
-    const HeaderPolicy *const mHeaderPolicy;
-    const PtNodeReader *const mPtNodeReader;
-    DynamicPtReadingHelper mReadingHelper;
-    Ver4BigramListPolicy *const mBigramPolicy;
-    Ver4ShortcutListPolicy *const mShortcutPolicy;
-};
-} // namespace v402
-} // namespace backward
-} // namespace latinime
-#endif /* LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_NODE_WRITER_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp
deleted file mode 100644
index 1296b8a..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp
+++ /dev/null
@@ -1,541 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT CHANGE THE LOGIC IN THIS FILE !!!!!
- * Do not edit this file other than updating policy's interface.
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp
- */
-
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.h"
-
-#include <vector>
-
-#include "suggest/core/dicnode/dic_node.h"
-#include "suggest/core/dicnode/dic_node_vector.h"
-#include "suggest/core/dictionary/ngram_listener.h"
-#include "suggest/core/dictionary/property/bigram_property.h"
-#include "suggest/core/dictionary/property/unigram_property.h"
-#include "suggest/core/dictionary/property/word_property.h"
-#include "suggest/core/session/prev_words_info.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h"
-#include "suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h"
-#include "suggest/policyimpl/dictionary/utils/probability_utils.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-// Note that there are corresponding definitions in Java side in BinaryDictionaryTests and
-// BinaryDictionaryDecayingTests.
-const char *const Ver4PatriciaTriePolicy::UNIGRAM_COUNT_QUERY = "UNIGRAM_COUNT";
-const char *const Ver4PatriciaTriePolicy::BIGRAM_COUNT_QUERY = "BIGRAM_COUNT";
-const char *const Ver4PatriciaTriePolicy::MAX_UNIGRAM_COUNT_QUERY = "MAX_UNIGRAM_COUNT";
-const char *const Ver4PatriciaTriePolicy::MAX_BIGRAM_COUNT_QUERY = "MAX_BIGRAM_COUNT";
-const int Ver4PatriciaTriePolicy::MARGIN_TO_REFUSE_DYNAMIC_OPERATIONS = 1024;
-const int Ver4PatriciaTriePolicy::MIN_DICT_SIZE_TO_REFUSE_DYNAMIC_OPERATIONS =
-        Ver4DictConstants::MAX_DICTIONARY_SIZE - MARGIN_TO_REFUSE_DYNAMIC_OPERATIONS;
-
-void Ver4PatriciaTriePolicy::createAndGetAllChildDicNodes(const DicNode *const dicNode,
-        DicNodeVector *const childDicNodes) const {
-    if (!dicNode->hasChildren()) {
-        return;
-    }
-    DynamicPtReadingHelper readingHelper(&mNodeReader, &mPtNodeArrayReader);
-    readingHelper.initWithPtNodeArrayPos(dicNode->getChildrenPtNodeArrayPos());
-    while (!readingHelper.isEnd()) {
-        const PtNodeParams ptNodeParams = readingHelper.getPtNodeParams();
-        if (!ptNodeParams.isValid()) {
-            break;
-        }
-        bool isTerminal = ptNodeParams.isTerminal() && !ptNodeParams.isDeleted();
-        if (isTerminal && mHeaderPolicy->isDecayingDict()) {
-            // A DecayingDict may have a terminal PtNode that has a terminal DicNode whose
-            // probability is NOT_A_PROBABILITY. In such case, we don't want to treat it as a
-            // valid terminal DicNode.
-            isTerminal = ptNodeParams.getProbability() != NOT_A_PROBABILITY;
-        }
-        readingHelper.readNextSiblingNode(ptNodeParams);
-        if (ptNodeParams.representsNonWordInfo()) {
-            // Skip PtNodes that represent non-word information.
-            continue;
-        }
-        childDicNodes->pushLeavingChild(dicNode, ptNodeParams.getHeadPos(),
-                ptNodeParams.getChildrenPos(), ptNodeParams.getProbability(), isTerminal,
-                ptNodeParams.hasChildren(),
-                ptNodeParams.isBlacklisted()
-                        || ptNodeParams.isNotAWord() /* isBlacklistedOrNotAWord */,
-                ptNodeParams.getCodePointCount(), ptNodeParams.getCodePoints());
-    }
-    if (readingHelper.isError()) {
-        mIsCorrupted = true;
-        AKLOGE("Dictionary reading error in createAndGetAllChildDicNodes().");
-    }
-}
-
-int Ver4PatriciaTriePolicy::getCodePointsAndProbabilityAndReturnCodePointCount(
-        const int ptNodePos, const int maxCodePointCount, int *const outCodePoints,
-        int *const outUnigramProbability) const {
-    DynamicPtReadingHelper readingHelper(&mNodeReader, &mPtNodeArrayReader);
-    readingHelper.initWithPtNodePos(ptNodePos);
-    const int codePointCount =  readingHelper.getCodePointsAndProbabilityAndReturnCodePointCount(
-            maxCodePointCount, outCodePoints, outUnigramProbability);
-    if (readingHelper.isError()) {
-        mIsCorrupted = true;
-        AKLOGE("Dictionary reading error in getCodePointsAndProbabilityAndReturnCodePointCount().");
-    }
-    return codePointCount;
-}
-
-int Ver4PatriciaTriePolicy::getTerminalPtNodePositionOfWord(const int *const inWord,
-        const int length, const bool forceLowerCaseSearch) const {
-    DynamicPtReadingHelper readingHelper(&mNodeReader, &mPtNodeArrayReader);
-    readingHelper.initWithPtNodeArrayPos(getRootPosition());
-    const int ptNodePos =
-            readingHelper.getTerminalPtNodePositionOfWord(inWord, length, forceLowerCaseSearch);
-    if (readingHelper.isError()) {
-        mIsCorrupted = true;
-        AKLOGE("Dictionary reading error in createAndGetAllChildDicNodes().");
-    }
-    return ptNodePos;
-}
-
-int Ver4PatriciaTriePolicy::getProbability(const int unigramProbability,
-        const int bigramProbability) const {
-    if (mHeaderPolicy->isDecayingDict()) {
-        // Both probabilities are encoded. Decode them and get probability.
-        return ForgettingCurveUtils::getProbability(unigramProbability, bigramProbability);
-    } else {
-        if (unigramProbability == NOT_A_PROBABILITY) {
-            return NOT_A_PROBABILITY;
-        } else if (bigramProbability == NOT_A_PROBABILITY) {
-            return ProbabilityUtils::backoff(unigramProbability);
-        } else {
-            return bigramProbability;
-        }
-    }
-}
-
-int Ver4PatriciaTriePolicy::getProbabilityOfPtNode(const int *const prevWordsPtNodePos,
-        const int ptNodePos) const {
-    if (ptNodePos == NOT_A_DICT_POS) {
-        return NOT_A_PROBABILITY;
-    }
-    const PtNodeParams ptNodeParams(mNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos));
-    if (ptNodeParams.isDeleted() || ptNodeParams.isBlacklisted() || ptNodeParams.isNotAWord()) {
-        return NOT_A_PROBABILITY;
-    }
-    if (prevWordsPtNodePos) {
-        const int bigramsPosition = getBigramsPositionOfPtNode(prevWordsPtNodePos[0]);
-        BinaryDictionaryBigramsIterator bigramsIt(&mBigramPolicy, bigramsPosition);
-        while (bigramsIt.hasNext()) {
-            bigramsIt.next();
-            if (bigramsIt.getBigramPos() == ptNodePos
-                    && bigramsIt.getProbability() != NOT_A_PROBABILITY) {
-                return getProbability(ptNodeParams.getProbability(), bigramsIt.getProbability());
-            }
-        }
-        return NOT_A_PROBABILITY;
-    }
-    return getProbability(ptNodeParams.getProbability(), NOT_A_PROBABILITY);
-}
-
-void Ver4PatriciaTriePolicy::iterateNgramEntries(const int *const prevWordsPtNodePos,
-        NgramListener *const listener) const {
-    if (!prevWordsPtNodePos) {
-        return;
-    }
-    const int bigramsPosition = getBigramsPositionOfPtNode(prevWordsPtNodePos[0]);
-    BinaryDictionaryBigramsIterator bigramsIt(&mBigramPolicy, bigramsPosition);
-    while (bigramsIt.hasNext()) {
-        bigramsIt.next();
-        listener->onVisitEntry(bigramsIt.getProbability(), bigramsIt.getBigramPos());
-    }
-}
-
-int Ver4PatriciaTriePolicy::getShortcutPositionOfPtNode(const int ptNodePos) const {
-    if (ptNodePos == NOT_A_DICT_POS) {
-        return NOT_A_DICT_POS;
-    }
-    const PtNodeParams ptNodeParams(mNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos));
-    if (ptNodeParams.isDeleted()) {
-        return NOT_A_DICT_POS;
-    }
-    return mBuffers->getShortcutDictContent()->getShortcutListHeadPos(
-            ptNodeParams.getTerminalId());
-}
-
-int Ver4PatriciaTriePolicy::getBigramsPositionOfPtNode(const int ptNodePos) const {
-    if (ptNodePos == NOT_A_DICT_POS) {
-        return NOT_A_DICT_POS;
-    }
-    const PtNodeParams ptNodeParams(mNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos));
-    if (ptNodeParams.isDeleted()) {
-        return NOT_A_DICT_POS;
-    }
-    return mBuffers->getBigramDictContent()->getBigramListHeadPos(
-            ptNodeParams.getTerminalId());
-}
-
-bool Ver4PatriciaTriePolicy::addUnigramEntry(const int *const word, const int length,
-        const UnigramProperty *const unigramProperty) {
-    if (!mBuffers->isUpdatable()) {
-        AKLOGI("Warning: addUnigramEntry() is called for non-updatable dictionary.");
-        return false;
-    }
-    if (mDictBuffer->getTailPosition() >= MIN_DICT_SIZE_TO_REFUSE_DYNAMIC_OPERATIONS) {
-        AKLOGE("The dictionary is too large to dynamically update. Dictionary size: %d",
-                mDictBuffer->getTailPosition());
-        return false;
-    }
-    if (length > MAX_WORD_LENGTH) {
-        AKLOGE("The word is too long to insert to the dictionary, length: %d", length);
-        return false;
-    }
-    for (const auto &shortcut : unigramProperty->getShortcuts()) {
-        if (shortcut.getTargetCodePoints()->size() > MAX_WORD_LENGTH) {
-            AKLOGE("One of shortcut targets is too long to insert to the dictionary, length: %d",
-                    shortcut.getTargetCodePoints()->size());
-            return false;
-        }
-    }
-    DynamicPtReadingHelper readingHelper(&mNodeReader, &mPtNodeArrayReader);
-    readingHelper.initWithPtNodeArrayPos(getRootPosition());
-    bool addedNewUnigram = false;
-    int codePointsToAdd[MAX_WORD_LENGTH];
-    int codePointCountToAdd = length;
-    memmove(codePointsToAdd, word, sizeof(int) * length);
-    if (unigramProperty->representsBeginningOfSentence()) {
-        codePointCountToAdd = CharUtils::attachBeginningOfSentenceMarker(codePointsToAdd,
-                codePointCountToAdd, MAX_WORD_LENGTH);
-    }
-    if (codePointCountToAdd <= 0) {
-        return false;
-    }
-    if (mUpdatingHelper.addUnigramWord(&readingHelper, codePointsToAdd, codePointCountToAdd,
-            unigramProperty, &addedNewUnigram)) {
-        if (addedNewUnigram && !unigramProperty->representsBeginningOfSentence()) {
-            mUnigramCount++;
-        }
-        if (unigramProperty->getShortcuts().size() > 0) {
-            // Add shortcut target.
-            const int wordPos = getTerminalPtNodePositionOfWord(word, length,
-                    false /* forceLowerCaseSearch */);
-            if (wordPos == NOT_A_DICT_POS) {
-                AKLOGE("Cannot find terminal PtNode position to add shortcut target.");
-                return false;
-            }
-            for (const auto &shortcut : unigramProperty->getShortcuts()) {
-                if (!mUpdatingHelper.addShortcutTarget(wordPos,
-                        shortcut.getTargetCodePoints()->data(),
-                        shortcut.getTargetCodePoints()->size(), shortcut.getProbability())) {
-                    AKLOGE("Cannot add new shortcut target. PtNodePos: %d, length: %d, "
-                            "probability: %d", wordPos, shortcut.getTargetCodePoints()->size(),
-                            shortcut.getProbability());
-                    return false;
-                }
-            }
-        }
-        return true;
-    } else {
-        return false;
-    }
-}
-
-bool Ver4PatriciaTriePolicy::addNgramEntry(const PrevWordsInfo *const prevWordsInfo,
-        const BigramProperty *const bigramProperty) {
-    if (!mBuffers->isUpdatable()) {
-        AKLOGI("Warning: addNgramEntry() is called for non-updatable dictionary.");
-        return false;
-    }
-    if (mDictBuffer->getTailPosition() >= MIN_DICT_SIZE_TO_REFUSE_DYNAMIC_OPERATIONS) {
-        AKLOGE("The dictionary is too large to dynamically update. Dictionary size: %d",
-                mDictBuffer->getTailPosition());
-        return false;
-    }
-    if (!prevWordsInfo->isValid()) {
-        AKLOGE("prev words info is not valid for adding n-gram entry to the dictionary.");
-        return false;
-    }
-    if (bigramProperty->getTargetCodePoints()->size() > MAX_WORD_LENGTH) {
-        AKLOGE("The word is too long to insert the ngram to the dictionary. "
-                "length: %d", bigramProperty->getTargetCodePoints()->size());
-        return false;
-    }
-    int prevWordsPtNodePos[MAX_PREV_WORD_COUNT_FOR_N_GRAM];
-    prevWordsInfo->getPrevWordsTerminalPtNodePos(this, prevWordsPtNodePos,
-            false /* tryLowerCaseSearch */);
-    // TODO: Support N-gram.
-    if (prevWordsPtNodePos[0] == NOT_A_DICT_POS) {
-        if (prevWordsInfo->isNthPrevWordBeginningOfSentence(1 /* n */)) {
-            const std::vector<UnigramProperty::ShortcutProperty> shortcuts;
-            const UnigramProperty beginningOfSentenceUnigramProperty(
-                    true /* representsBeginningOfSentence */, true /* isNotAWord */,
-                    false /* isBlacklisted */, MAX_PROBABILITY /* probability */,
-                    NOT_A_TIMESTAMP /* timestamp */, 0 /* level */, 0 /* count */, &shortcuts);
-            if (!addUnigramEntry(prevWordsInfo->getNthPrevWordCodePoints(1 /* n */),
-                    prevWordsInfo->getNthPrevWordCodePointCount(1 /* n */),
-                    &beginningOfSentenceUnigramProperty)) {
-                AKLOGE("Cannot add unigram entry for the beginning-of-sentence.");
-                return false;
-            }
-            // Refresh Terminal PtNode positions.
-            prevWordsInfo->getPrevWordsTerminalPtNodePos(this, prevWordsPtNodePos,
-                    false /* tryLowerCaseSearch */);
-        } else {
-            return false;
-        }
-    }
-    const int word1Pos = getTerminalPtNodePositionOfWord(
-            bigramProperty->getTargetCodePoints()->data(),
-            bigramProperty->getTargetCodePoints()->size(), false /* forceLowerCaseSearch */);
-    if (word1Pos == NOT_A_DICT_POS) {
-        return false;
-    }
-    bool addedNewBigram = false;
-    if (mUpdatingHelper.addNgramEntry(PtNodePosArrayView::fromObject(prevWordsPtNodePos),
-            word1Pos, bigramProperty, &addedNewBigram)) {
-        if (addedNewBigram) {
-            mBigramCount++;
-        }
-        return true;
-    } else {
-        return false;
-    }
-}
-
-bool Ver4PatriciaTriePolicy::removeNgramEntry(const PrevWordsInfo *const prevWordsInfo,
-        const int *const word, const int length) {
-    if (!mBuffers->isUpdatable()) {
-        AKLOGI("Warning: removeNgramEntry() is called for non-updatable dictionary.");
-        return false;
-    }
-    if (mDictBuffer->getTailPosition() >= MIN_DICT_SIZE_TO_REFUSE_DYNAMIC_OPERATIONS) {
-        AKLOGE("The dictionary is too large to dynamically update. Dictionary size: %d",
-                mDictBuffer->getTailPosition());
-        return false;
-    }
-    if (!prevWordsInfo->isValid()) {
-        AKLOGE("prev words info is not valid for removing n-gram entry form the dictionary.");
-        return false;
-    }
-    if (length > MAX_WORD_LENGTH) {
-        AKLOGE("word is too long to remove n-gram entry form the dictionary. length: %d", length);
-    }
-    int prevWordsPtNodePos[MAX_PREV_WORD_COUNT_FOR_N_GRAM];
-    prevWordsInfo->getPrevWordsTerminalPtNodePos(this, prevWordsPtNodePos,
-            false /* tryLowerCaseSerch */);
-    // TODO: Support N-gram.
-    if (prevWordsPtNodePos[0] == NOT_A_DICT_POS) {
-        return false;
-    }
-    const int wordPos = getTerminalPtNodePositionOfWord(word, length,
-            false /* forceLowerCaseSearch */);
-    if (wordPos == NOT_A_DICT_POS) {
-        return false;
-    }
-    if (mUpdatingHelper.removeNgramEntry(
-            PtNodePosArrayView::fromObject(prevWordsPtNodePos), wordPos)) {
-        mBigramCount--;
-        return true;
-    } else {
-        return false;
-    }
-}
-
-bool Ver4PatriciaTriePolicy::flush(const char *const filePath) {
-    if (!mBuffers->isUpdatable()) {
-        AKLOGI("Warning: flush() is called for non-updatable dictionary. filePath: %s", filePath);
-        return false;
-    }
-    if (!mWritingHelper.writeToDictFile(filePath, mUnigramCount, mBigramCount)) {
-        AKLOGE("Cannot flush the dictionary to file.");
-        mIsCorrupted = true;
-        return false;
-    }
-    return true;
-}
-
-bool Ver4PatriciaTriePolicy::flushWithGC(const char *const filePath) {
-    if (!mBuffers->isUpdatable()) {
-        AKLOGI("Warning: flushWithGC() is called for non-updatable dictionary.");
-        return false;
-    }
-    if (!mWritingHelper.writeToDictFileWithGC(getRootPosition(), filePath)) {
-        AKLOGE("Cannot flush the dictionary to file with GC.");
-        mIsCorrupted = true;
-        return false;
-    }
-    return true;
-}
-
-bool Ver4PatriciaTriePolicy::needsToRunGC(const bool mindsBlockByGC) const {
-    if (!mBuffers->isUpdatable()) {
-        AKLOGI("Warning: needsToRunGC() is called for non-updatable dictionary.");
-        return false;
-    }
-    if (mBuffers->isNearSizeLimit()) {
-        // Additional buffer size is near the limit.
-        return true;
-    } else if (mHeaderPolicy->getExtendedRegionSize() + mDictBuffer->getUsedAdditionalBufferSize()
-            > Ver4DictConstants::MAX_DICT_EXTENDED_REGION_SIZE) {
-        // Total extended region size of the trie exceeds the limit.
-        return true;
-    } else if (mDictBuffer->getTailPosition() >= MIN_DICT_SIZE_TO_REFUSE_DYNAMIC_OPERATIONS
-            && mDictBuffer->getUsedAdditionalBufferSize() > 0) {
-        // Needs to reduce dictionary size.
-        return true;
-    } else if (mHeaderPolicy->isDecayingDict()) {
-        return ForgettingCurveUtils::needsToDecay(mindsBlockByGC, mUnigramCount, mBigramCount,
-                mHeaderPolicy);
-    }
-    return false;
-}
-
-void Ver4PatriciaTriePolicy::getProperty(const char *const query, const int queryLength,
-        char *const outResult, const int maxResultLength) {
-    const int compareLength = queryLength + 1 /* terminator */;
-    if (strncmp(query, UNIGRAM_COUNT_QUERY, compareLength) == 0) {
-        snprintf(outResult, maxResultLength, "%d", mUnigramCount);
-    } else if (strncmp(query, BIGRAM_COUNT_QUERY, compareLength) == 0) {
-        snprintf(outResult, maxResultLength, "%d", mBigramCount);
-    } else if (strncmp(query, MAX_UNIGRAM_COUNT_QUERY, compareLength) == 0) {
-        snprintf(outResult, maxResultLength, "%d",
-                mHeaderPolicy->isDecayingDict() ?
-                        ForgettingCurveUtils::getUnigramCountHardLimit(
-                                mHeaderPolicy->getMaxUnigramCount()) :
-                        static_cast<int>(Ver4DictConstants::MAX_DICTIONARY_SIZE));
-    } else if (strncmp(query, MAX_BIGRAM_COUNT_QUERY, compareLength) == 0) {
-        snprintf(outResult, maxResultLength, "%d",
-                mHeaderPolicy->isDecayingDict() ?
-                        ForgettingCurveUtils::getBigramCountHardLimit(
-                                mHeaderPolicy->getMaxBigramCount()) :
-                        static_cast<int>(Ver4DictConstants::MAX_DICTIONARY_SIZE));
-    }
-}
-
-const WordProperty Ver4PatriciaTriePolicy::getWordProperty(const int *const codePoints,
-        const int codePointCount) const {
-    const int ptNodePos = getTerminalPtNodePositionOfWord(codePoints, codePointCount,
-            false /* forceLowerCaseSearch */);
-    if (ptNodePos == NOT_A_DICT_POS) {
-        AKLOGE("getWordProperty is called for invalid word.");
-        return WordProperty();
-    }
-    const PtNodeParams ptNodeParams = mNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos);
-    std::vector<int> codePointVector(ptNodeParams.getCodePoints(),
-            ptNodeParams.getCodePoints() + ptNodeParams.getCodePointCount());
-    const ProbabilityEntry probabilityEntry =
-            mBuffers->getProbabilityDictContent()->getProbabilityEntry(
-                    ptNodeParams.getTerminalId());
-    const HistoricalInfo *const historicalInfo = probabilityEntry.getHistoricalInfo();
-    // Fetch bigram information.
-    std::vector<BigramProperty> bigrams;
-    const int bigramListPos = getBigramsPositionOfPtNode(ptNodePos);
-    if (bigramListPos != NOT_A_DICT_POS) {
-        int bigramWord1CodePoints[MAX_WORD_LENGTH];
-        const BigramDictContent *const bigramDictContent = mBuffers->getBigramDictContent();
-        const TerminalPositionLookupTable *const terminalPositionLookupTable =
-                mBuffers->getTerminalPositionLookupTable();
-        bool hasNext = true;
-        int readingPos = bigramListPos;
-        while (hasNext) {
-            const BigramEntry bigramEntry =
-                    bigramDictContent->getBigramEntryAndAdvancePosition(&readingPos);
-            hasNext = bigramEntry.hasNext();
-            const int word1TerminalId = bigramEntry.getTargetTerminalId();
-            const int word1TerminalPtNodePos =
-                    terminalPositionLookupTable->getTerminalPtNodePosition(word1TerminalId);
-            if (word1TerminalPtNodePos == NOT_A_DICT_POS) {
-                continue;
-            }
-            // Word (unigram) probability
-            int word1Probability = NOT_A_PROBABILITY;
-            const int codePointCount = getCodePointsAndProbabilityAndReturnCodePointCount(
-                    word1TerminalPtNodePos, MAX_WORD_LENGTH, bigramWord1CodePoints,
-                    &word1Probability);
-            const std::vector<int> word1(bigramWord1CodePoints,
-                    bigramWord1CodePoints + codePointCount);
-            const HistoricalInfo *const historicalInfo = bigramEntry.getHistoricalInfo();
-            const int probability = bigramEntry.hasHistoricalInfo() ?
-                    ForgettingCurveUtils::decodeProbability(
-                            bigramEntry.getHistoricalInfo(), mHeaderPolicy) :
-                    bigramEntry.getProbability();
-            bigrams.emplace_back(&word1, probability,
-                    historicalInfo->getTimeStamp(), historicalInfo->getLevel(),
-                    historicalInfo->getCount());
-        }
-    }
-    // Fetch shortcut information.
-    std::vector<UnigramProperty::ShortcutProperty> shortcuts;
-    int shortcutPos = getShortcutPositionOfPtNode(ptNodePos);
-    if (shortcutPos != NOT_A_DICT_POS) {
-        int shortcutTarget[MAX_WORD_LENGTH];
-        const ShortcutDictContent *const shortcutDictContent =
-                mBuffers->getShortcutDictContent();
-        bool hasNext = true;
-        while (hasNext) {
-            int shortcutTargetLength = 0;
-            int shortcutProbability = NOT_A_PROBABILITY;
-            shortcutDictContent->getShortcutEntryAndAdvancePosition(MAX_WORD_LENGTH, shortcutTarget,
-                    &shortcutTargetLength, &shortcutProbability, &hasNext, &shortcutPos);
-            const std::vector<int> target(shortcutTarget, shortcutTarget + shortcutTargetLength);
-            shortcuts.emplace_back(&target, shortcutProbability);
-        }
-    }
-    const UnigramProperty unigramProperty(ptNodeParams.representsBeginningOfSentence(),
-            ptNodeParams.isNotAWord(), ptNodeParams.isBlacklisted(), ptNodeParams.getProbability(),
-            historicalInfo->getTimeStamp(), historicalInfo->getLevel(),
-            historicalInfo->getCount(), &shortcuts);
-    return WordProperty(&codePointVector, &unigramProperty, &bigrams);
-}
-
-int Ver4PatriciaTriePolicy::getNextWordAndNextToken(const int token, int *const outCodePoints,
-        int *const outCodePointCount) {
-    *outCodePointCount = 0;
-    if (token == 0) {
-        mTerminalPtNodePositionsForIteratingWords.clear();
-        DynamicPtReadingHelper::TraversePolicyToGetAllTerminalPtNodePositions traversePolicy(
-                &mTerminalPtNodePositionsForIteratingWords);
-        DynamicPtReadingHelper readingHelper(&mNodeReader, &mPtNodeArrayReader);
-        readingHelper.initWithPtNodeArrayPos(getRootPosition());
-        readingHelper.traverseAllPtNodesInPostorderDepthFirstManner(&traversePolicy);
-    }
-    const int terminalPtNodePositionsVectorSize =
-            static_cast<int>(mTerminalPtNodePositionsForIteratingWords.size());
-    if (token < 0 || token >= terminalPtNodePositionsVectorSize) {
-        AKLOGE("Given token %d is invalid.", token);
-        return 0;
-    }
-    const int terminalPtNodePos = mTerminalPtNodePositionsForIteratingWords[token];
-    int unigramProbability = NOT_A_PROBABILITY;
-    *outCodePointCount = getCodePointsAndProbabilityAndReturnCodePointCount(
-            terminalPtNodePos, MAX_WORD_LENGTH, outCodePoints, &unigramProbability);
-    const int nextToken = token + 1;
-    if (nextToken >= terminalPtNodePositionsVectorSize) {
-        // All words have been iterated.
-        mTerminalPtNodePositionsForIteratingWords.clear();
-        return 0;
-    }
-    return nextToken;
-}
-
-} // namespace v402
-} // namespace backward
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.h b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.h
deleted file mode 100644
index 9e989b2..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT CHANGE THE LOGIC IN THIS FILE !!!!!
- * Do not edit this file other than updating policy's interface.
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.h
- */
-
-#ifndef LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_POLICY_H
-#define LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_POLICY_H
-
-#include <vector>
-
-#include "defines.h"
-#include "suggest/core/policy/dictionary_structure_with_buffer_policy.h"
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/shortcut/ver4_shortcut_list_policy.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_buffers.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_pt_node_array_reader.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-} // namespace v402
-} // namespace backward
-class DicNode;
-namespace backward {
-namespace v402 {
-} // namespace v402
-} // namespace backward
-class DicNodeVector;
-namespace backward {
-namespace v402 {
-
-class Ver4PatriciaTriePolicy : public DictionaryStructureWithBufferPolicy {
- public:
-    Ver4PatriciaTriePolicy(Ver4DictBuffers::Ver4DictBuffersPtr buffers)
-            : mBuffers(std::move(buffers)), mHeaderPolicy(mBuffers->getHeaderPolicy()),
-              mDictBuffer(mBuffers->getWritableTrieBuffer()),
-              mBigramPolicy(mBuffers->getMutableBigramDictContent(),
-                      mBuffers->getTerminalPositionLookupTable(), mHeaderPolicy),
-              mShortcutPolicy(mBuffers->getMutableShortcutDictContent(),
-                      mBuffers->getTerminalPositionLookupTable()),
-              mNodeReader(mDictBuffer, mBuffers->getProbabilityDictContent(), mHeaderPolicy),
-              mPtNodeArrayReader(mDictBuffer),
-              mNodeWriter(mDictBuffer, mBuffers.get(), mHeaderPolicy, &mNodeReader,
-                      &mPtNodeArrayReader, &mBigramPolicy, &mShortcutPolicy),
-              mUpdatingHelper(mDictBuffer, &mNodeReader, &mNodeWriter),
-              mWritingHelper(mBuffers.get()),
-              mUnigramCount(mHeaderPolicy->getUnigramCount()),
-              mBigramCount(mHeaderPolicy->getBigramCount()),
-              mTerminalPtNodePositionsForIteratingWords(), mIsCorrupted(false) {};
-
-    AK_FORCE_INLINE int getRootPosition() const {
-        return 0;
-    }
-
-    void createAndGetAllChildDicNodes(const DicNode *const dicNode,
-            DicNodeVector *const childDicNodes) const;
-
-    int getCodePointsAndProbabilityAndReturnCodePointCount(
-            const int terminalPtNodePos, const int maxCodePointCount, int *const outCodePoints,
-            int *const outUnigramProbability) const;
-
-    int getTerminalPtNodePositionOfWord(const int *const inWord,
-            const int length, const bool forceLowerCaseSearch) const;
-
-    int getProbability(const int unigramProbability, const int bigramProbability) const;
-
-    int getProbabilityOfPtNode(const int *const prevWordsPtNodePos, const int ptNodePos) const;
-
-    void iterateNgramEntries(const int *const prevWordsPtNodePos,
-            NgramListener *const listener) const;
-
-    int getShortcutPositionOfPtNode(const int ptNodePos) const;
-
-    const DictionaryHeaderStructurePolicy *getHeaderStructurePolicy() const {
-        return mHeaderPolicy;
-    }
-
-    const DictionaryShortcutsStructurePolicy *getShortcutsStructurePolicy() const {
-        return &mShortcutPolicy;
-    }
-
-    bool addUnigramEntry(const int *const word, const int length,
-            const UnigramProperty *const unigramProperty);
-
-    bool removeUnigramEntry(const int *const word, const int length) {
-        // Removing unigram entry is not supported.
-        return false;
-    }
-
-    bool addNgramEntry(const PrevWordsInfo *const prevWordsInfo,
-            const BigramProperty *const bigramProperty);
-
-    bool removeNgramEntry(const PrevWordsInfo *const prevWordsInfo, const int *const word1,
-            const int length1);
-
-    bool flush(const char *const filePath);
-
-    bool flushWithGC(const char *const filePath);
-
-    bool needsToRunGC(const bool mindsBlockByGC) const;
-
-    void getProperty(const char *const query, const int queryLength, char *const outResult,
-            const int maxResultLength);
-
-    const WordProperty getWordProperty(const int *const codePoints,
-            const int codePointCount) const;
-
-    int getNextWordAndNextToken(const int token, int *const outCodePoints,
-            int *const outCodePointCount);
-
-    bool isCorrupted() const {
-        return mIsCorrupted;
-    }
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(Ver4PatriciaTriePolicy);
-
-    static const char *const UNIGRAM_COUNT_QUERY;
-    static const char *const BIGRAM_COUNT_QUERY;
-    static const char *const MAX_UNIGRAM_COUNT_QUERY;
-    static const char *const MAX_BIGRAM_COUNT_QUERY;
-    // When the dictionary size is near the maximum size, we have to refuse dynamic operations to
-    // prevent the dictionary from overflowing.
-    static const int MARGIN_TO_REFUSE_DYNAMIC_OPERATIONS;
-    static const int MIN_DICT_SIZE_TO_REFUSE_DYNAMIC_OPERATIONS;
-
-    const Ver4DictBuffers::Ver4DictBuffersPtr mBuffers;
-    const HeaderPolicy *const mHeaderPolicy;
-    BufferWithExtendableBuffer *const mDictBuffer;
-    Ver4BigramListPolicy mBigramPolicy;
-    Ver4ShortcutListPolicy mShortcutPolicy;
-    Ver4PatriciaTrieNodeReader mNodeReader;
-    Ver4PtNodeArrayReader mPtNodeArrayReader;
-    Ver4PatriciaTrieNodeWriter mNodeWriter;
-    DynamicPtUpdatingHelper mUpdatingHelper;
-    Ver4PatriciaTrieWritingHelper mWritingHelper;
-    int mUnigramCount;
-    int mBigramCount;
-    std::vector<int> mTerminalPtNodePositionsForIteratingWords;
-    mutable bool mIsCorrupted;
-
-    int getBigramsPositionOfPtNode(const int ptNodePos) const;
-};
-} // namespace v402
-} // namespace backward
-} // namespace latinime
-#endif // LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_POLICY_H
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.cpp
deleted file mode 100644
index 80d5311..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.cpp
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_reading_utils.cpp
- */
-
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.h"
-
-#include "suggest/policyimpl/dictionary/utils/byte_array_utils.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-/* static */ int Ver4PatriciaTrieReadingUtils::getTerminalIdAndAdvancePosition(
-        const uint8_t *const buffer, int *pos) {
-    return ByteArrayUtils::readUint32AndAdvancePosition(buffer, pos);
-}
-
-} // namespace v402
-} // namespace backward
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.h b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.h
deleted file mode 100644
index 3579c26..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_reading_utils.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_reading_utils.h
- */
-
-#ifndef LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_READING_UTILS_H
-#define LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_READING_UTILS_H
-
-#include <cstdint>
-
-#include "defines.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-} // namespace v402
-} // namespace backward
-class BufferWithExtendableBuffer;
-namespace backward {
-namespace v402 {
-
-class Ver4PatriciaTrieReadingUtils {
- public:
-    static int getTerminalIdAndAdvancePosition(const uint8_t *const buffer,
-            int *const pos);
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(Ver4PatriciaTrieReadingUtils);
-};
-} // namespace v402
-} // namespace backward
-} // namespace latinime
-#endif /* LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_READING_UTILS_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.cpp
deleted file mode 100644
index 3fb4caa..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.cpp
+++ /dev/null
@@ -1,304 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.cpp
- */
-
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.h"
-
-#include <cstring>
-#include <queue>
-
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/bigram/ver4_bigram_list_policy.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/shortcut/ver4_shortcut_list_policy.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_buffers.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_reader.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_node_writer.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_pt_node_array_reader.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/file_utils.h"
-#include "suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-bool Ver4PatriciaTrieWritingHelper::writeToDictFile(const char *const dictDirPath,
-        const int unigramCount, const int bigramCount) const {
-    const HeaderPolicy *const headerPolicy = mBuffers->getHeaderPolicy();
-    BufferWithExtendableBuffer headerBuffer(
-            BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE);
-    const int extendedRegionSize = headerPolicy->getExtendedRegionSize()
-            + mBuffers->getTrieBuffer()->getUsedAdditionalBufferSize();
-    if (!headerPolicy->fillInAndWriteHeaderToBuffer(false /* updatesLastDecayedTime */,
-            unigramCount, bigramCount, extendedRegionSize, &headerBuffer)) {
-        AKLOGE("Cannot write header structure to buffer. "
-                "updatesLastDecayedTime: %d, unigramCount: %d, bigramCount: %d, "
-                "extendedRegionSize: %d", false, unigramCount, bigramCount,
-                extendedRegionSize);
-        return false;
-    }
-    return mBuffers->flushHeaderAndDictBuffers(dictDirPath, &headerBuffer);
-}
-
-bool Ver4PatriciaTrieWritingHelper::writeToDictFileWithGC(const int rootPtNodeArrayPos,
-        const char *const dictDirPath) {
-    const HeaderPolicy *const headerPolicy = mBuffers->getHeaderPolicy();
-    Ver4DictBuffers::Ver4DictBuffersPtr dictBuffers(
-            Ver4DictBuffers::createVer4DictBuffers(headerPolicy,
-                    Ver4DictConstants::MAX_DICTIONARY_SIZE));
-    int unigramCount = 0;
-    int bigramCount = 0;
-    if (!runGC(rootPtNodeArrayPos, headerPolicy, dictBuffers.get(), &unigramCount, &bigramCount)) {
-        return false;
-    }
-    BufferWithExtendableBuffer headerBuffer(
-            BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE);
-    if (!headerPolicy->fillInAndWriteHeaderToBuffer(true /* updatesLastDecayedTime */,
-            unigramCount, bigramCount, 0 /* extendedRegionSize */, &headerBuffer)) {
-        return false;
-    }
-    return dictBuffers->flushHeaderAndDictBuffers(dictDirPath, &headerBuffer);
-}
-
-bool Ver4PatriciaTrieWritingHelper::runGC(const int rootPtNodeArrayPos,
-        const HeaderPolicy *const headerPolicy, Ver4DictBuffers *const buffersToWrite,
-        int *const outUnigramCount, int *const outBigramCount) {
-    Ver4PatriciaTrieNodeReader ptNodeReader(mBuffers->getTrieBuffer(),
-            mBuffers->getProbabilityDictContent(), headerPolicy);
-    Ver4PtNodeArrayReader ptNodeArrayReader(mBuffers->getTrieBuffer());
-    Ver4BigramListPolicy bigramPolicy(mBuffers->getMutableBigramDictContent(),
-            mBuffers->getTerminalPositionLookupTable(), headerPolicy);
-    Ver4ShortcutListPolicy shortcutPolicy(mBuffers->getMutableShortcutDictContent(),
-            mBuffers->getTerminalPositionLookupTable());
-    Ver4PatriciaTrieNodeWriter ptNodeWriter(mBuffers->getWritableTrieBuffer(),
-            mBuffers, headerPolicy, &ptNodeReader, &ptNodeArrayReader, &bigramPolicy,
-            &shortcutPolicy);
-
-    DynamicPtReadingHelper readingHelper(&ptNodeReader, &ptNodeArrayReader);
-    readingHelper.initWithPtNodeArrayPos(rootPtNodeArrayPos);
-    DynamicPtGcEventListeners
-            ::TraversePolicyToUpdateUnigramProbabilityAndMarkUselessPtNodesAsDeleted
-                    traversePolicyToUpdateUnigramProbabilityAndMarkUselessPtNodesAsDeleted(
-                            &ptNodeWriter);
-    if (!readingHelper.traverseAllPtNodesInPostorderDepthFirstManner(
-            &traversePolicyToUpdateUnigramProbabilityAndMarkUselessPtNodesAsDeleted)) {
-        return false;
-    }
-    const int unigramCount = traversePolicyToUpdateUnigramProbabilityAndMarkUselessPtNodesAsDeleted
-            .getValidUnigramCount();
-    const int maxUnigramCount = headerPolicy->getMaxUnigramCount();
-    if (headerPolicy->isDecayingDict() && unigramCount > maxUnigramCount) {
-        if (!truncateUnigrams(&ptNodeReader, &ptNodeWriter, maxUnigramCount)) {
-            AKLOGE("Cannot remove unigrams. current: %d, max: %d", unigramCount,
-                    maxUnigramCount);
-            return false;
-        }
-    }
-
-    readingHelper.initWithPtNodeArrayPos(rootPtNodeArrayPos);
-    DynamicPtGcEventListeners::TraversePolicyToUpdateBigramProbability
-            traversePolicyToUpdateBigramProbability(&ptNodeWriter);
-    if (!readingHelper.traverseAllPtNodesInPostorderDepthFirstManner(
-            &traversePolicyToUpdateBigramProbability)) {
-        return false;
-    }
-    const int bigramCount = traversePolicyToUpdateBigramProbability.getValidBigramEntryCount();
-    const int maxBigramCount = headerPolicy->getMaxBigramCount();
-    if (headerPolicy->isDecayingDict() && bigramCount > maxBigramCount) {
-        if (!truncateBigrams(maxBigramCount)) {
-            AKLOGE("Cannot remove bigrams. current: %d, max: %d", bigramCount, maxBigramCount);
-            return false;
-        }
-    }
-
-    // Mapping from positions in mBuffer to positions in bufferToWrite.
-    PtNodeWriter::DictPositionRelocationMap dictPositionRelocationMap;
-    readingHelper.initWithPtNodeArrayPos(rootPtNodeArrayPos);
-    Ver4PatriciaTrieNodeWriter ptNodeWriterForNewBuffers(buffersToWrite->getWritableTrieBuffer(),
-            buffersToWrite, headerPolicy, &ptNodeReader, &ptNodeArrayReader, &bigramPolicy,
-            &shortcutPolicy);
-    DynamicPtGcEventListeners::TraversePolicyToPlaceAndWriteValidPtNodesToBuffer
-            traversePolicyToPlaceAndWriteValidPtNodesToBuffer(&ptNodeWriterForNewBuffers,
-                    buffersToWrite->getWritableTrieBuffer(), &dictPositionRelocationMap);
-    if (!readingHelper.traverseAllPtNodesInPtNodeArrayLevelPreorderDepthFirstManner(
-            &traversePolicyToPlaceAndWriteValidPtNodesToBuffer)) {
-        return false;
-    }
-
-    // Create policy instances for the GCed dictionary.
-    Ver4PatriciaTrieNodeReader newPtNodeReader(buffersToWrite->getTrieBuffer(),
-            buffersToWrite->getProbabilityDictContent(), headerPolicy);
-    Ver4PtNodeArrayReader newPtNodeArrayreader(buffersToWrite->getTrieBuffer());
-    Ver4BigramListPolicy newBigramPolicy(buffersToWrite->getMutableBigramDictContent(),
-            buffersToWrite->getTerminalPositionLookupTable(), headerPolicy);
-    Ver4ShortcutListPolicy newShortcutPolicy(buffersToWrite->getMutableShortcutDictContent(),
-            buffersToWrite->getTerminalPositionLookupTable());
-    Ver4PatriciaTrieNodeWriter newPtNodeWriter(buffersToWrite->getWritableTrieBuffer(),
-            buffersToWrite, headerPolicy, &newPtNodeReader, &newPtNodeArrayreader, &newBigramPolicy,
-            &newShortcutPolicy);
-    // Re-assign terminal IDs for valid terminal PtNodes.
-    TerminalPositionLookupTable::TerminalIdMap terminalIdMap;
-    if(!buffersToWrite->getMutableTerminalPositionLookupTable()->runGCTerminalIds(
-            &terminalIdMap)) {
-        return false;
-    }
-    // Run GC for probability dict content.
-    if (!buffersToWrite->getMutableProbabilityDictContent()->runGC(&terminalIdMap,
-            mBuffers->getProbabilityDictContent())) {
-        return false;
-    }
-    // Run GC for bigram dict content.
-    if(!buffersToWrite->getMutableBigramDictContent()->runGC(&terminalIdMap,
-            mBuffers->getBigramDictContent(), outBigramCount)) {
-        return false;
-    }
-    // Run GC for shortcut dict content.
-    if(!buffersToWrite->getMutableShortcutDictContent()->runGC(&terminalIdMap,
-            mBuffers->getShortcutDictContent())) {
-        return false;
-    }
-    DynamicPtReadingHelper newDictReadingHelper(&newPtNodeReader, &newPtNodeArrayreader);
-    newDictReadingHelper.initWithPtNodeArrayPos(rootPtNodeArrayPos);
-    DynamicPtGcEventListeners::TraversePolicyToUpdateAllPositionFields
-            traversePolicyToUpdateAllPositionFields(&newPtNodeWriter, &dictPositionRelocationMap);
-    if (!newDictReadingHelper.traverseAllPtNodesInPtNodeArrayLevelPreorderDepthFirstManner(
-            &traversePolicyToUpdateAllPositionFields)) {
-        return false;
-    }
-    newDictReadingHelper.initWithPtNodeArrayPos(rootPtNodeArrayPos);
-    TraversePolicyToUpdateAllPtNodeFlagsAndTerminalIds
-            traversePolicyToUpdateAllPtNodeFlagsAndTerminalIds(&newPtNodeWriter, &terminalIdMap);
-    if (!newDictReadingHelper.traverseAllPtNodesInPostorderDepthFirstManner(
-            &traversePolicyToUpdateAllPtNodeFlagsAndTerminalIds)) {
-        return false;
-    }
-    *outUnigramCount = traversePolicyToUpdateAllPositionFields.getUnigramCount();
-    return true;
-}
-
-bool Ver4PatriciaTrieWritingHelper::truncateUnigrams(
-        const Ver4PatriciaTrieNodeReader *const ptNodeReader,
-        Ver4PatriciaTrieNodeWriter *const ptNodeWriter, const int maxUnigramCount) {
-    const TerminalPositionLookupTable *const terminalPosLookupTable =
-            mBuffers->getTerminalPositionLookupTable();
-    const int nextTerminalId = terminalPosLookupTable->getNextTerminalId();
-    std::priority_queue<DictProbability, std::vector<DictProbability>, DictProbabilityComparator>
-            priorityQueue;
-    for (int i = 0; i < nextTerminalId; ++i) {
-        const int terminalPos = terminalPosLookupTable->getTerminalPtNodePosition(i);
-        if (terminalPos == NOT_A_DICT_POS) {
-            continue;
-        }
-        const ProbabilityEntry probabilityEntry =
-                mBuffers->getProbabilityDictContent()->getProbabilityEntry(i);
-        const int probability = probabilityEntry.hasHistoricalInfo() ?
-                ForgettingCurveUtils::decodeProbability(
-                        probabilityEntry.getHistoricalInfo(), mBuffers->getHeaderPolicy()) :
-                probabilityEntry.getProbability();
-        priorityQueue.push(DictProbability(terminalPos, probability,
-                probabilityEntry.getHistoricalInfo()->getTimeStamp()));
-    }
-
-    // Delete unigrams.
-    while (static_cast<int>(priorityQueue.size()) > maxUnigramCount) {
-        const int ptNodePos = priorityQueue.top().getDictPos();
-        priorityQueue.pop();
-        const PtNodeParams ptNodeParams =
-                ptNodeReader->fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos);
-        if (ptNodeParams.representsNonWordInfo()) {
-            continue;
-        }
-        if (!ptNodeWriter->markPtNodeAsWillBecomeNonTerminal(&ptNodeParams)) {
-            AKLOGE("Cannot mark PtNode as willBecomeNonterminal. PtNode pos: %d", ptNodePos);
-            return false;
-        }
-    }
-    return true;
-}
-
-bool Ver4PatriciaTrieWritingHelper::truncateBigrams(const int maxBigramCount) {
-    const TerminalPositionLookupTable *const terminalPosLookupTable =
-            mBuffers->getTerminalPositionLookupTable();
-    const int nextTerminalId = terminalPosLookupTable->getNextTerminalId();
-    std::priority_queue<DictProbability, std::vector<DictProbability>, DictProbabilityComparator>
-            priorityQueue;
-    BigramDictContent *const bigramDictContent = mBuffers->getMutableBigramDictContent();
-    for (int i = 0; i < nextTerminalId; ++i) {
-        const int bigramListPos = bigramDictContent->getBigramListHeadPos(i);
-        if (bigramListPos == NOT_A_DICT_POS) {
-            continue;
-        }
-        bool hasNext = true;
-        int readingPos = bigramListPos;
-        while (hasNext) {
-            const int entryPos = readingPos;
-            const BigramEntry bigramEntry =
-                    bigramDictContent->getBigramEntryAndAdvancePosition(&readingPos);
-            hasNext = bigramEntry.hasNext();
-            if (!bigramEntry.isValid()) {
-                continue;
-            }
-            const int probability = bigramEntry.hasHistoricalInfo() ?
-                    ForgettingCurveUtils::decodeProbability(
-                            bigramEntry.getHistoricalInfo(), mBuffers->getHeaderPolicy()) :
-                    bigramEntry.getProbability();
-            priorityQueue.push(DictProbability(entryPos, probability,
-                    bigramEntry.getHistoricalInfo()->getTimeStamp()));
-        }
-    }
-
-    // Delete bigrams.
-    while (static_cast<int>(priorityQueue.size()) > maxBigramCount) {
-        const int entryPos = priorityQueue.top().getDictPos();
-        const BigramEntry bigramEntry = bigramDictContent->getBigramEntry(entryPos);
-        const BigramEntry invalidatedBigramEntry = bigramEntry.getInvalidatedEntry();
-        if (!bigramDictContent->writeBigramEntry(&invalidatedBigramEntry, entryPos)) {
-            AKLOGE("Cannot write bigram entry to remove. pos: %d", entryPos);
-            return false;
-        }
-        priorityQueue.pop();
-    }
-    return true;
-}
-
-bool Ver4PatriciaTrieWritingHelper::TraversePolicyToUpdateAllPtNodeFlagsAndTerminalIds
-        ::onVisitingPtNode(const PtNodeParams *const ptNodeParams) {
-    if (!ptNodeParams->isTerminal()) {
-        return true;
-    }
-    TerminalPositionLookupTable::TerminalIdMap::const_iterator it =
-            mTerminalIdMap->find(ptNodeParams->getTerminalId());
-    if (it == mTerminalIdMap->end()) {
-        AKLOGE("terminal Id %d is not in the terminal position map. map size: %zd",
-                ptNodeParams->getTerminalId(), mTerminalIdMap->size());
-        return false;
-    }
-    if (!mPtNodeWriter->updateTerminalId(ptNodeParams, it->second)) {
-        AKLOGE("Cannot update terminal id. %d -> %d", it->first, it->second);
-    }
-    return mPtNodeWriter->updatePtNodeHasBigramsAndShortcutTargetsFlags(ptNodeParams);
-}
-
-} // namespace v402
-} // namespace backward
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.h b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.h
deleted file mode 100644
index 9034ee6..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_writing_helper.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.h
- */
-
-#ifndef LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_WRITING_HELPER_H
-#define LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_WRITING_HELPER_H
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/content/terminal_position_lookup_table.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-} // namespace v402
-} // namespace backward
-class HeaderPolicy;
-namespace backward {
-namespace v402 {
-class Ver4DictBuffers;
-class Ver4PatriciaTrieNodeReader;
-class Ver4PatriciaTrieNodeWriter;
-
-class Ver4PatriciaTrieWritingHelper {
- public:
-    Ver4PatriciaTrieWritingHelper(Ver4DictBuffers *const buffers)
-            : mBuffers(buffers) {}
-
-    bool writeToDictFile(const char *const dictDirPath, const int unigramCount,
-            const int bigramCount) const;
-
-    // This method cannot be const because the original dictionary buffer will be updated to detect
-    // useless PtNodes during GC.
-    bool writeToDictFileWithGC(const int rootPtNodeArrayPos, const char *const dictDirPath);
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(Ver4PatriciaTrieWritingHelper);
-
-    class TraversePolicyToUpdateAllPtNodeFlagsAndTerminalIds
-            : public DynamicPtReadingHelper::TraversingEventListener {
-     public:
-        TraversePolicyToUpdateAllPtNodeFlagsAndTerminalIds(
-                Ver4PatriciaTrieNodeWriter *const ptNodeWriter,
-                const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap)
-                : mPtNodeWriter(ptNodeWriter), mTerminalIdMap(terminalIdMap) {}
-
-        bool onAscend() { return true; }
-
-        bool onDescend(const int ptNodeArrayPos) { return true; }
-
-        bool onReadingPtNodeArrayTail() { return true; }
-
-        bool onVisitingPtNode(const PtNodeParams *const ptNodeParams);
-
-     private:
-        DISALLOW_IMPLICIT_CONSTRUCTORS(TraversePolicyToUpdateAllPtNodeFlagsAndTerminalIds);
-
-        Ver4PatriciaTrieNodeWriter *const mPtNodeWriter;
-        const TerminalPositionLookupTable::TerminalIdMap *const mTerminalIdMap;
-    };
-
-    // For truncateUnigrams() and truncateBigrams().
-    class DictProbability {
-     public:
-        DictProbability(const int dictPos, const int probability, const int timestamp)
-                : mDictPos(dictPos), mProbability(probability), mTimestamp(timestamp) {}
-
-        int getDictPos() const {
-            return mDictPos;
-        }
-
-        int getProbability() const {
-            return mProbability;
-        }
-
-        int getTimestamp() const {
-            return mTimestamp;
-        }
-
-     private:
-        DISALLOW_DEFAULT_CONSTRUCTOR(DictProbability);
-
-        int mDictPos;
-        int mProbability;
-        int mTimestamp;
-    };
-
-    // For truncateUnigrams() and truncateBigrams().
-    class DictProbabilityComparator {
-     public:
-        bool operator()(const DictProbability &left, const DictProbability &right) {
-            if (left.getProbability() != right.getProbability()) {
-                return left.getProbability() > right.getProbability();
-            }
-            if (left.getTimestamp() != right.getTimestamp()) {
-                return left.getTimestamp() < right.getTimestamp();
-            }
-            return left.getDictPos() > right.getDictPos();
-        }
-
-     private:
-        DISALLOW_ASSIGNMENT_OPERATOR(DictProbabilityComparator);
-    };
-
-    bool runGC(const int rootPtNodeArrayPos, const HeaderPolicy *const headerPolicy,
-            Ver4DictBuffers *const buffersToWrite, int *const outUnigramCount,
-            int *const outBigramCount);
-
-    bool truncateUnigrams(const Ver4PatriciaTrieNodeReader *const ptNodeReader,
-            Ver4PatriciaTrieNodeWriter *const ptNodeWriter, const int maxUnigramCount);
-
-    bool truncateBigrams(const int maxBigramCount);
-
-    Ver4DictBuffers *const mBuffers;
-};
-} // namespace v402
-} // namespace backward
-} // namespace latinime
-
-#endif /* LATINIME_BACKWARD_V402_VER4_PATRICIA_TRIE_WRITING_HELPER_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_pt_node_array_reader.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_pt_node_array_reader.cpp
deleted file mode 100644
index 537a6d4..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_pt_node_array_reader.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.cpp
- */
-
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_pt_node_array_reader.h"
-
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-bool Ver4PtNodeArrayReader::readPtNodeArrayInfoAndReturnIfValid(const int ptNodeArrayPos,
-        int *const outPtNodeCount, int *const outFirstPtNodePos) const {
-    if (ptNodeArrayPos < 0 || ptNodeArrayPos >= mBuffer->getTailPosition()) {
-        // Reading invalid position because of a bug or a broken dictionary.
-        AKLOGE("Reading PtNode array info from invalid dictionary position: %d, dict size: %d",
-                ptNodeArrayPos, mBuffer->getTailPosition());
-        ASSERT(false);
-        return false;
-    }
-    const bool usesAdditionalBuffer = mBuffer->isInAdditionalBuffer(ptNodeArrayPos);
-    const uint8_t *const dictBuf = mBuffer->getBuffer(usesAdditionalBuffer);
-    int readingPos = ptNodeArrayPos;
-    if (usesAdditionalBuffer) {
-        readingPos -= mBuffer->getOriginalBufferSize();
-    }
-    const int ptNodeCountInArray = PatriciaTrieReadingUtils::getPtNodeArraySizeAndAdvancePosition(
-            dictBuf, &readingPos);
-    if (usesAdditionalBuffer) {
-        readingPos += mBuffer->getOriginalBufferSize();
-    }
-    if (ptNodeCountInArray < 0) {
-        AKLOGE("Invalid PtNode count in an array: %d.", ptNodeCountInArray);
-        return false;
-    }
-    *outPtNodeCount = ptNodeCountInArray;
-    *outFirstPtNodePos = readingPos;
-    return true;
-}
-
-bool Ver4PtNodeArrayReader::readForwardLinkAndReturnIfValid(const int forwordLinkPos,
-        int *const outNextPtNodeArrayPos) const {
-    if (forwordLinkPos < 0 || forwordLinkPos >= mBuffer->getTailPosition()) {
-        // Reading invalid position because of bug or broken dictionary.
-        AKLOGE("Reading forward link from invalid dictionary position: %d, dict size: %d",
-                forwordLinkPos, mBuffer->getTailPosition());
-        ASSERT(false);
-        return false;
-    }
-    const bool usesAdditionalBuffer = mBuffer->isInAdditionalBuffer(forwordLinkPos);
-    const uint8_t *const dictBuf = mBuffer->getBuffer(usesAdditionalBuffer);
-    int readingPos = forwordLinkPos;
-    if (usesAdditionalBuffer) {
-        readingPos -= mBuffer->getOriginalBufferSize();
-    }
-    const int nextPtNodeArrayOffset =
-            DynamicPtReadingUtils::getForwardLinkPosition(dictBuf, readingPos);
-    if (DynamicPtReadingUtils::isValidForwardLinkPosition(nextPtNodeArrayOffset)) {
-        *outNextPtNodeArrayPos = forwordLinkPos + nextPtNodeArrayOffset;
-    } else {
-        *outNextPtNodeArrayPos = NOT_A_DICT_POS;
-    }
-    return true;
-}
-
-} // namespace v402
-} // namespace backward
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_pt_node_array_reader.h b/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_pt_node_array_reader.h
deleted file mode 100644
index 4f80568..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_pt_node_array_reader.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * !!!!! DO NOT EDIT THIS FILE !!!!!
- *
- * This file was generated from
- *   suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.h
- */
-
-#ifndef LATINIME_BACKWARD_V402_VER4_PT_NODE_ARRAY_READER_H
-#define LATINIME_BACKWARD_V402_VER4_PT_NODE_ARRAY_READER_H
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_array_reader.h"
-
-namespace latinime {
-namespace backward {
-namespace v402 {
-
-} // namespace v402
-} // namespace backward
-class BufferWithExtendableBuffer;
-namespace backward {
-namespace v402 {
-
-class Ver4PtNodeArrayReader : public PtNodeArrayReader {
- public:
-    Ver4PtNodeArrayReader(const BufferWithExtendableBuffer *const buffer) : mBuffer(buffer) {};
-
-    virtual bool readPtNodeArrayInfoAndReturnIfValid(const int ptNodeArrayPos,
-            int *const outPtNodeCount, int *const outFirstPtNodePos) const;
-    virtual bool readForwardLinkAndReturnIfValid(const int forwordLinkPos,
-            int *const outNextPtNodeArrayPos) const;
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(Ver4PtNodeArrayReader);
-
-    const BufferWithExtendableBuffer *const mBuffer;
-};
-} // namespace v402
-} // namespace backward
-} // namespace latinime
-#endif /* LATINIME_BACKWARD_V402_VER4_PT_NODE_ARRAY_READER_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.cpp
deleted file mode 100644
index e4ea3da..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.cpp
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.h"
-
-#include <climits>
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_buffers.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
-#include "suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.h"
-#include "suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h"
-#include "suggest/policyimpl/dictionary/utils/file_utils.h"
-#include "suggest/policyimpl/dictionary/utils/format_utils.h"
-#include "suggest/policyimpl/dictionary/utils/mmapped_buffer.h"
-#include "utils/byte_array_view.h"
-
-namespace latinime {
-
-/* static */ DictionaryStructureWithBufferPolicy::StructurePolicyPtr
-        DictionaryStructureWithBufferPolicyFactory::newPolicyForExistingDictFile(
-                const char *const path, const int bufOffset, const int size,
-                const bool isUpdatable) {
-    if (FileUtils::existsDir(path)) {
-        // Given path represents a directory.
-        return newPolicyForDirectoryDict(path, isUpdatable);
-    } else {
-        if (isUpdatable) {
-            AKLOGE("One file dictionaries don't support updating. path: %s", path);
-            ASSERT(false);
-            return nullptr;
-        }
-        return newPolicyForFileDict(path, bufOffset, size);
-    }
-}
-
-/* static */ DictionaryStructureWithBufferPolicy::StructurePolicyPtr
-        DictionaryStructureWithBufferPolicyFactory:: newPolicyForOnMemoryDict(
-                const int formatVersion, const std::vector<int> &locale,
-                const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap) {
-    FormatUtils::FORMAT_VERSION dictFormatVersion = FormatUtils::getFormatVersion(formatVersion);
-    switch (dictFormatVersion) {
-        case FormatUtils::VERSION_4: {
-            return newPolicyForOnMemoryV4Dict<backward::v402::Ver4DictConstants,
-                    backward::v402::Ver4DictBuffers,
-                    backward::v402::Ver4DictBuffers::Ver4DictBuffersPtr,
-                    backward::v402::Ver4PatriciaTriePolicy>(
-                            dictFormatVersion, locale, attributeMap);
-        }
-        case FormatUtils::VERSION_4_ONLY_FOR_TESTING:
-        case FormatUtils::VERSION_4_DEV: {
-            return newPolicyForOnMemoryV4Dict<Ver4DictConstants, Ver4DictBuffers,
-                    Ver4DictBuffers::Ver4DictBuffersPtr, Ver4PatriciaTriePolicy>(
-                            dictFormatVersion, locale, attributeMap);
-        }
-        default:
-            AKLOGE("DICT: dictionary format %d is not supported for on memory dictionary",
-                    formatVersion);
-            break;
-    }
-    return nullptr;
-}
-
-template<class DictConstants, class DictBuffers, class DictBuffersPtr, class StructurePolicy>
-/* static */ DictionaryStructureWithBufferPolicy::StructurePolicyPtr
-        DictionaryStructureWithBufferPolicyFactory::newPolicyForOnMemoryV4Dict(
-                const FormatUtils::FORMAT_VERSION formatVersion,
-                const std::vector<int> &locale,
-                const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap) {
-    HeaderPolicy headerPolicy(formatVersion, locale, attributeMap);
-    DictBuffersPtr dictBuffers = DictBuffers::createVer4DictBuffers(&headerPolicy,
-            DictConstants::MAX_DICT_EXTENDED_REGION_SIZE);
-    if (!DynamicPtWritingUtils::writeEmptyDictionary(
-            dictBuffers->getWritableTrieBuffer(), 0 /* rootPos */)) {
-        AKLOGE("Empty ver4 dictionary structure cannot be created on memory.");
-        return nullptr;
-    }
-    return DictionaryStructureWithBufferPolicy::StructurePolicyPtr(
-            new StructurePolicy(std::move(dictBuffers)));
-}
-
-/* static */ DictionaryStructureWithBufferPolicy::StructurePolicyPtr
-        DictionaryStructureWithBufferPolicyFactory::newPolicyForDirectoryDict(
-                const char *const path, const bool isUpdatable) {
-    const int headerFilePathBufSize = PATH_MAX + 1 /* terminator */;
-    char headerFilePath[headerFilePathBufSize];
-    getHeaderFilePathInDictDir(path, headerFilePathBufSize, headerFilePath);
-    // Allocated buffer in MmapedBuffer::openBuffer() will be freed in the destructor of
-    // MmappedBufferPtr if the instance has the responsibility.
-    MmappedBuffer::MmappedBufferPtr mmappedBuffer =
-            MmappedBuffer::openBuffer(headerFilePath, isUpdatable);
-    if (!mmappedBuffer) {
-        return nullptr;
-    }
-    const FormatUtils::FORMAT_VERSION formatVersion = FormatUtils::detectFormatVersion(
-            mmappedBuffer->getReadOnlyByteArrayView().data(),
-            mmappedBuffer->getReadOnlyByteArrayView().size());
-    switch (formatVersion) {
-        case FormatUtils::VERSION_2:
-            AKLOGE("Given path is a directory but the format is version 2. path: %s", path);
-            break;
-        case FormatUtils::VERSION_4: {
-            return newPolicyForV4Dict<backward::v402::Ver4DictConstants,
-                    backward::v402::Ver4DictBuffers,
-                    backward::v402::Ver4DictBuffers::Ver4DictBuffersPtr,
-                    backward::v402::Ver4PatriciaTriePolicy>(
-                            headerFilePath, formatVersion, std::move(mmappedBuffer));
-        }
-        case FormatUtils::VERSION_4_ONLY_FOR_TESTING:
-        case FormatUtils::VERSION_4_DEV: {
-            return newPolicyForV4Dict<Ver4DictConstants, Ver4DictBuffers,
-                    Ver4DictBuffers::Ver4DictBuffersPtr, Ver4PatriciaTriePolicy>(
-                            headerFilePath, formatVersion, std::move(mmappedBuffer));
-        }
-        default:
-            AKLOGE("DICT: dictionary format is unknown, bad magic number. path: %s", path);
-            break;
-    }
-    ASSERT(false);
-    return nullptr;
-}
-
-template<class DictConstants, class DictBuffers, class DictBuffersPtr, class StructurePolicy>
-/* static */ DictionaryStructureWithBufferPolicy::StructurePolicyPtr
-        DictionaryStructureWithBufferPolicyFactory::newPolicyForV4Dict(
-                const char *const headerFilePath, const FormatUtils::FORMAT_VERSION formatVersion,
-                MmappedBuffer::MmappedBufferPtr &&mmappedBuffer) {
-    const int dictDirPathBufSize = strlen(headerFilePath) + 1 /* terminator */;
-    char dictPath[dictDirPathBufSize];
-    if (!FileUtils::getFilePathWithoutSuffix(headerFilePath,
-            DictConstants::HEADER_FILE_EXTENSION, dictDirPathBufSize, dictPath)) {
-        AKLOGE("Dictionary file name is not valid as a ver4 dictionary. header path: %s",
-                headerFilePath);
-        ASSERT(false);
-        return nullptr;
-    }
-    DictBuffersPtr dictBuffers =
-            DictBuffers::openVer4DictBuffers(dictPath, std::move(mmappedBuffer), formatVersion);
-    if (!dictBuffers || !dictBuffers->isValid()) {
-        AKLOGE("DICT: The dictionary doesn't satisfy ver4 format requirements. path: %s",
-                dictPath);
-        ASSERT(false);
-        return nullptr;
-    }
-    return DictionaryStructureWithBufferPolicy::StructurePolicyPtr(
-            new StructurePolicy(std::move(dictBuffers)));
-}
-
-/* static */ DictionaryStructureWithBufferPolicy::StructurePolicyPtr
-        DictionaryStructureWithBufferPolicyFactory::newPolicyForFileDict(
-                const char *const path, const int bufOffset, const int size) {
-    // Allocated buffer in MmapedBuffer::openBuffer() will be freed in the destructor of
-    // MmappedBufferPtr if the instance has the responsibility.
-    MmappedBuffer::MmappedBufferPtr mmappedBuffer(
-            MmappedBuffer::openBuffer(path, bufOffset, size, false /* isUpdatable */));
-    if (!mmappedBuffer) {
-        return nullptr;
-    }
-    switch (FormatUtils::detectFormatVersion(mmappedBuffer->getReadOnlyByteArrayView().data(),
-            mmappedBuffer->getReadOnlyByteArrayView().size())) {
-        case FormatUtils::VERSION_2:
-            return DictionaryStructureWithBufferPolicy::StructurePolicyPtr(
-                    new PatriciaTriePolicy(std::move(mmappedBuffer)));
-        case FormatUtils::VERSION_4_ONLY_FOR_TESTING:
-        case FormatUtils::VERSION_4:
-        case FormatUtils::VERSION_4_DEV:
-            AKLOGE("Given path is a file but the format is version 4. path: %s", path);
-            break;
-        default:
-            AKLOGE("DICT: dictionary format is unknown, bad magic number. path: %s", path);
-            break;
-    }
-    ASSERT(false);
-    return nullptr;
-}
-
-/* static */ void DictionaryStructureWithBufferPolicyFactory::getHeaderFilePathInDictDir(
-        const char *const dictDirPath, const int outHeaderFileBufSize,
-        char *const outHeaderFilePath) {
-    const int dictNameBufSize = strlen(dictDirPath) + 1 /* terminator */;
-    char dictName[dictNameBufSize];
-    FileUtils::getBasename(dictDirPath, dictNameBufSize, dictName);
-    snprintf(outHeaderFilePath, outHeaderFileBufSize, "%s/%s%s", dictDirPath,
-            dictName, Ver4DictConstants::HEADER_FILE_EXTENSION);
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.h b/native/jni/src/suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.h
deleted file mode 100644
index 768454d..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/dictionary_structure_with_buffer_policy_factory.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_DICTIONARY_STRUCTURE_WITH_BUFFER_POLICY_FACTORY_H
-#define LATINIME_DICTIONARY_STRUCTURE_WITH_BUFFER_POLICY_FACTORY_H
-
-#include <vector>
-
-#include "defines.h"
-#include "suggest/core/policy/dictionary_header_structure_policy.h"
-#include "suggest/core/policy/dictionary_structure_with_buffer_policy.h"
-#include "suggest/policyimpl/dictionary/utils/format_utils.h"
-#include "suggest/policyimpl/dictionary/utils/mmapped_buffer.h"
-
-namespace latinime {
-
-class DictionaryStructureWithBufferPolicyFactory {
- public:
-    static DictionaryStructureWithBufferPolicy::StructurePolicyPtr
-            newPolicyForExistingDictFile(const char *const path, const int bufOffset,
-                    const int size, const bool isUpdatable);
-
-    static DictionaryStructureWithBufferPolicy::StructurePolicyPtr
-            newPolicyForOnMemoryDict(const int formatVersion, const std::vector<int> &locale,
-                    const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap);
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(DictionaryStructureWithBufferPolicyFactory);
-
-    template<class DictConstants, class DictBuffers, class DictBuffersPtr, class StructurePolicy>
-    static DictionaryStructureWithBufferPolicy::StructurePolicyPtr
-            newPolicyForOnMemoryV4Dict(const FormatUtils::FORMAT_VERSION formatVersion,
-                    const std::vector<int> &locale,
-                    const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap);
-
-    static DictionaryStructureWithBufferPolicy::StructurePolicyPtr
-            newPolicyForDirectoryDict(const char *const path, const bool isUpdatable);
-
-    template<class DictConstants, class DictBuffers, class DictBuffersPtr, class StructurePolicy>
-    static DictionaryStructureWithBufferPolicy::StructurePolicyPtr newPolicyForV4Dict(
-            const char *const headerFilePath, const FormatUtils::FORMAT_VERSION formatVersion,
-                    MmappedBuffer::MmappedBufferPtr &&mmappedBuffer);
-
-    static DictionaryStructureWithBufferPolicy::StructurePolicyPtr
-            newPolicyForFileDict(const char *const path, const int bufOffset, const int size);
-
-    static void getHeaderFilePathInDictDir(const char *const dirPath,
-            const int outHeaderFileBufSize, char *const outHeaderFilePath);
-};
-} // namespace latinime
-#endif // LATINIME_DICTIONARY_STRUCTURE_WITH_BUFFER_POLICY_FACTORY_H
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.cpp
deleted file mode 100644
index f7fd5c0..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.h"
-
-#include "suggest/policyimpl/dictionary/utils/byte_array_utils.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-
-namespace latinime {
-
-const BigramListReadWriteUtils::BigramFlags BigramListReadWriteUtils::MASK_ATTRIBUTE_ADDRESS_TYPE =
-        0x30;
-const BigramListReadWriteUtils::BigramFlags
-        BigramListReadWriteUtils::FLAG_ATTRIBUTE_ADDRESS_TYPE_ONEBYTE = 0x10;
-const BigramListReadWriteUtils::BigramFlags
-        BigramListReadWriteUtils::FLAG_ATTRIBUTE_ADDRESS_TYPE_TWOBYTES = 0x20;
-const BigramListReadWriteUtils::BigramFlags
-        BigramListReadWriteUtils::FLAG_ATTRIBUTE_ADDRESS_TYPE_THREEBYTES = 0x30;
-const BigramListReadWriteUtils::BigramFlags
-        BigramListReadWriteUtils::FLAG_ATTRIBUTE_OFFSET_NEGATIVE = 0x40;
-// Flag for presence of more attributes
-const BigramListReadWriteUtils::BigramFlags BigramListReadWriteUtils::FLAG_ATTRIBUTE_HAS_NEXT =
-        0x80;
-// Mask for attribute probability, stored on 4 bits inside the flags byte.
-const BigramListReadWriteUtils::BigramFlags
-        BigramListReadWriteUtils::MASK_ATTRIBUTE_PROBABILITY = 0x0F;
-
-/* static */ bool BigramListReadWriteUtils::getBigramEntryPropertiesAndAdvancePosition(
-        const uint8_t *const bigramsBuf, const int bufSize, BigramFlags *const outBigramFlags,
-        int *const outTargetPtNodePos, int *const bigramEntryPos) {
-    if (bufSize <= *bigramEntryPos) {
-        AKLOGE("Read invalid pos in getBigramEntryPropertiesAndAdvancePosition(). bufSize: %d, "
-                "bigramEntryPos: %d.", bufSize, *bigramEntryPos);
-        return false;
-    }
-    const BigramFlags bigramFlags = ByteArrayUtils::readUint8AndAdvancePosition(bigramsBuf,
-            bigramEntryPos);
-    if (outBigramFlags) {
-        *outBigramFlags = bigramFlags;
-    }
-    const int targetPos = getBigramAddressAndAdvancePosition(bigramsBuf, bigramFlags,
-            bigramEntryPos);
-    if (outTargetPtNodePos) {
-        *outTargetPtNodePos = targetPos;
-    }
-    return true;
-}
-
-/* static */ bool BigramListReadWriteUtils::skipExistingBigrams(const uint8_t *const bigramsBuf,
-        const int bufSize, int *const bigramListPos) {
-    BigramFlags flags;
-    do {
-        if (!getBigramEntryPropertiesAndAdvancePosition(bigramsBuf, bufSize, &flags,
-                0 /* outTargetPtNodePos */, bigramListPos)) {
-            return false;
-        }
-    } while(hasNext(flags));
-    return true;
-}
-
-/* static */ int BigramListReadWriteUtils::getBigramAddressAndAdvancePosition(
-        const uint8_t *const bigramsBuf, const BigramFlags flags, int *const pos) {
-    int offset = 0;
-    const int origin = *pos;
-    switch (MASK_ATTRIBUTE_ADDRESS_TYPE & flags) {
-        case FLAG_ATTRIBUTE_ADDRESS_TYPE_ONEBYTE:
-            offset = ByteArrayUtils::readUint8AndAdvancePosition(bigramsBuf, pos);
-            break;
-        case FLAG_ATTRIBUTE_ADDRESS_TYPE_TWOBYTES:
-            offset = ByteArrayUtils::readUint16AndAdvancePosition(bigramsBuf, pos);
-            break;
-        case FLAG_ATTRIBUTE_ADDRESS_TYPE_THREEBYTES:
-            offset = ByteArrayUtils::readUint24AndAdvancePosition(bigramsBuf, pos);
-            break;
-    }
-    if (isOffsetNegative(flags)) {
-        return origin - offset;
-    } else {
-        return origin + offset;
-    }
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.h b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.h
deleted file mode 100644
index 10f93fb..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_BIGRAM_LIST_READ_WRITE_UTILS_H
-#define LATINIME_BIGRAM_LIST_READ_WRITE_UTILS_H
-
-#include <cstdint>
-#include <cstdlib>
-
-#include "defines.h"
-
-namespace latinime {
-
-class BufferWithExtendableBuffer;
-
-class BigramListReadWriteUtils {
-public:
-   typedef uint8_t BigramFlags;
-
-   static bool getBigramEntryPropertiesAndAdvancePosition(const uint8_t *const bigramsBuf,
-           const int bufSize, BigramFlags *const outBigramFlags, int *const outTargetPtNodePos,
-           int *const bigramEntryPos);
-
-   static AK_FORCE_INLINE int getProbabilityFromFlags(const BigramFlags flags) {
-       return flags & MASK_ATTRIBUTE_PROBABILITY;
-   }
-
-   static AK_FORCE_INLINE bool hasNext(const BigramFlags flags) {
-       return (flags & FLAG_ATTRIBUTE_HAS_NEXT) != 0;
-   }
-
-   // Bigrams reading methods
-   static bool skipExistingBigrams(const uint8_t *const bigramsBuf, const int bufSize,
-           int *const bigramListPos);
-
-private:
-   DISALLOW_IMPLICIT_CONSTRUCTORS(BigramListReadWriteUtils);
-
-   static const BigramFlags MASK_ATTRIBUTE_ADDRESS_TYPE;
-   static const BigramFlags FLAG_ATTRIBUTE_ADDRESS_TYPE_ONEBYTE;
-   static const BigramFlags FLAG_ATTRIBUTE_ADDRESS_TYPE_TWOBYTES;
-   static const BigramFlags FLAG_ATTRIBUTE_ADDRESS_TYPE_THREEBYTES;
-   static const BigramFlags FLAG_ATTRIBUTE_OFFSET_NEGATIVE;
-   static const BigramFlags FLAG_ATTRIBUTE_HAS_NEXT;
-   static const BigramFlags MASK_ATTRIBUTE_PROBABILITY;
-
-   static AK_FORCE_INLINE bool isOffsetNegative(const BigramFlags flags) {
-       return (flags & FLAG_ATTRIBUTE_OFFSET_NEGATIVE) != 0;
-   }
-
-   static int getBigramAddressAndAdvancePosition(const uint8_t *const bigramsBuf,
-           const BigramFlags flags, int *const pos);
-};
-} // namespace latinime
-#endif // LATINIME_BIGRAM_LIST_READ_WRITE_UTILS_H
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.cpp
deleted file mode 100644
index db1a802..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.cpp
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.h"
-
-#include "suggest/core/policy/dictionary_header_structure_policy.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_writer.h"
-
-namespace latinime {
-
-bool DynamicPtGcEventListeners
-        ::TraversePolicyToUpdateUnigramProbabilityAndMarkUselessPtNodesAsDeleted
-                ::onVisitingPtNode(const PtNodeParams *const ptNodeParams) {
-    // PtNode is useless when the PtNode is not a terminal and doesn't have any not useless
-    // children.
-    bool isUselessPtNode = !ptNodeParams->isTerminal();
-    if (ptNodeParams->isTerminal() && !ptNodeParams->representsNonWordInfo()) {
-        bool needsToKeepPtNode = true;
-        if (!mPtNodeWriter->updatePtNodeProbabilityAndGetNeedsToKeepPtNodeAfterGC(
-                ptNodeParams, &needsToKeepPtNode)) {
-            AKLOGE("Cannot update PtNode probability or get needs to keep PtNode after GC.");
-            return false;
-        }
-        if (!needsToKeepPtNode) {
-            isUselessPtNode = true;
-        }
-    }
-    if (mChildrenValue > 0) {
-        isUselessPtNode = false;
-    } else if (ptNodeParams->isTerminal()) {
-        // Remove children as all children are useless.
-        if (!mPtNodeWriter->updateChildrenPosition(ptNodeParams,
-                NOT_A_DICT_POS /* newChildrenPosition */)) {
-            return false;
-        }
-    }
-    if (isUselessPtNode) {
-        // Current PtNode is no longer needed. Mark it as deleted.
-        if (!mPtNodeWriter->markPtNodeAsDeleted(ptNodeParams)) {
-            return false;
-        }
-    } else {
-        mValueStack.back() += 1;
-        if (ptNodeParams->isTerminal() && !ptNodeParams->representsNonWordInfo()) {
-            mValidUnigramCount += 1;
-        }
-    }
-    return true;
-}
-
-bool DynamicPtGcEventListeners::TraversePolicyToUpdateBigramProbability
-        ::onVisitingPtNode(const PtNodeParams *const ptNodeParams) {
-    if (!ptNodeParams->isDeleted()) {
-        int bigramEntryCount = 0;
-        if (!mPtNodeWriter->updateAllBigramEntriesAndDeleteUselessEntries(ptNodeParams,
-                &bigramEntryCount)) {
-            return false;
-        }
-        mValidBigramEntryCount += bigramEntryCount;
-    }
-    return true;
-}
-
-// Writes dummy PtNode array size when the head of PtNode array is read.
-bool DynamicPtGcEventListeners::TraversePolicyToPlaceAndWriteValidPtNodesToBuffer
-        ::onDescend(const int ptNodeArrayPos) {
-    mValidPtNodeCount = 0;
-    int writingPos = mBufferToWrite->getTailPosition();
-    mDictPositionRelocationMap->mPtNodeArrayPositionRelocationMap.insert(
-            PtNodeWriter::PtNodeArrayPositionRelocationMap::value_type(ptNodeArrayPos, writingPos));
-    // Writes dummy PtNode array size because arrays can have a forward link or needles PtNodes.
-    // This field will be updated later in onReadingPtNodeArrayTail() with actual PtNode count.
-    mPtNodeArraySizeFieldPos = writingPos;
-    return DynamicPtWritingUtils::writePtNodeArraySizeAndAdvancePosition(
-            mBufferToWrite, 0 /* arraySize */, &writingPos);
-}
-
-// Write PtNode array terminal and actual PtNode array size.
-bool DynamicPtGcEventListeners::TraversePolicyToPlaceAndWriteValidPtNodesToBuffer
-        ::onReadingPtNodeArrayTail() {
-    int writingPos = mBufferToWrite->getTailPosition();
-    // Write PtNode array terminal.
-    if (!DynamicPtWritingUtils::writeForwardLinkPositionAndAdvancePosition(
-            mBufferToWrite, NOT_A_DICT_POS /* forwardLinkPos */, &writingPos)) {
-        return false;
-    }
-    // Write actual PtNode array size.
-    if (!DynamicPtWritingUtils::writePtNodeArraySizeAndAdvancePosition(
-            mBufferToWrite, mValidPtNodeCount, &mPtNodeArraySizeFieldPos)) {
-        return false;
-    }
-    return true;
-}
-
-// Write valid PtNode to buffer and memorize mapping from the old position to the new position.
-bool DynamicPtGcEventListeners::TraversePolicyToPlaceAndWriteValidPtNodesToBuffer
-        ::onVisitingPtNode(const PtNodeParams *const ptNodeParams) {
-    if (ptNodeParams->isDeleted()) {
-        // Current PtNode is not written in new buffer because it has been deleted.
-        mDictPositionRelocationMap->mPtNodePositionRelocationMap.insert(
-                PtNodeWriter::PtNodePositionRelocationMap::value_type(
-                        ptNodeParams->getHeadPos(), NOT_A_DICT_POS));
-        return true;
-    }
-    int writingPos = mBufferToWrite->getTailPosition();
-    mDictPositionRelocationMap->mPtNodePositionRelocationMap.insert(
-            PtNodeWriter::PtNodePositionRelocationMap::value_type(
-                    ptNodeParams->getHeadPos(), writingPos));
-    mValidPtNodeCount++;
-    // Writes current PtNode.
-    return mPtNodeWriter->writePtNodeAndAdvancePosition(ptNodeParams, &writingPos);
-}
-
-bool DynamicPtGcEventListeners::TraversePolicyToUpdateAllPositionFields
-        ::onVisitingPtNode(const PtNodeParams *const ptNodeParams) {
-    // Updates parent position.
-    int bigramCount = 0;
-    if (!mPtNodeWriter->updateAllPositionFields(ptNodeParams, mDictPositionRelocationMap,
-            &bigramCount)) {
-        return false;
-    }
-    mBigramCount += bigramCount;
-    if (ptNodeParams->isTerminal()) {
-        mUnigramCount++;
-    }
-    return true;
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.h b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.h
deleted file mode 100644
index 2aa4027..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.h
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_DYNAMIC_PT_GC_EVENT_LISTENERS_H
-#define LATINIME_DYNAMIC_PT_GC_EVENT_LISTENERS_H
-
-#include <vector>
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_writer.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-
-namespace latinime {
-
-class PtNodeParams;
-
-class DynamicPtGcEventListeners {
- public:
-    // Updates all PtNodes that can be reached from the root. Checks if each PtNode is useless or
-    // not and marks useless PtNodes as deleted. Such deleted PtNodes will be discarded in the GC.
-    // TODO: Concatenate non-terminal PtNodes.
-    class TraversePolicyToUpdateUnigramProbabilityAndMarkUselessPtNodesAsDeleted
-        : public DynamicPtReadingHelper::TraversingEventListener {
-     public:
-        TraversePolicyToUpdateUnigramProbabilityAndMarkUselessPtNodesAsDeleted(
-                PtNodeWriter *const ptNodeWriter)
-                : mPtNodeWriter(ptNodeWriter), mValueStack(), mChildrenValue(0),
-                  mValidUnigramCount(0) {}
-
-        ~TraversePolicyToUpdateUnigramProbabilityAndMarkUselessPtNodesAsDeleted() {};
-
-        bool onAscend() {
-            if (mValueStack.empty()) {
-                return false;
-            }
-            mChildrenValue = mValueStack.back();
-            mValueStack.pop_back();
-            return true;
-        }
-
-        bool onDescend(const int ptNodeArrayPos) {
-            mValueStack.push_back(0);
-            mChildrenValue = 0;
-            return true;
-        }
-
-        bool onReadingPtNodeArrayTail() { return true; }
-
-        bool onVisitingPtNode(const PtNodeParams *const ptNodeParams);
-
-        int getValidUnigramCount() const {
-            return mValidUnigramCount;
-        }
-
-     private:
-        DISALLOW_IMPLICIT_CONSTRUCTORS(
-                TraversePolicyToUpdateUnigramProbabilityAndMarkUselessPtNodesAsDeleted);
-
-        PtNodeWriter *const mPtNodeWriter;
-        std::vector<int> mValueStack;
-        int mChildrenValue;
-        int mValidUnigramCount;
-    };
-
-    // Updates all bigram entries that are held by valid PtNodes. This removes useless bigram
-    // entries.
-    class TraversePolicyToUpdateBigramProbability
-            : public DynamicPtReadingHelper::TraversingEventListener {
-     public:
-        TraversePolicyToUpdateBigramProbability(PtNodeWriter *const ptNodeWriter)
-                : mPtNodeWriter(ptNodeWriter), mValidBigramEntryCount(0) {}
-
-        bool onAscend() { return true; }
-
-        bool onDescend(const int ptNodeArrayPos) { return true; }
-
-        bool onReadingPtNodeArrayTail() { return true; }
-
-        bool onVisitingPtNode(const PtNodeParams *const ptNodeParams);
-
-        int getValidBigramEntryCount() const {
-            return mValidBigramEntryCount;
-        }
-
-     private:
-        DISALLOW_IMPLICIT_CONSTRUCTORS(TraversePolicyToUpdateBigramProbability);
-
-        PtNodeWriter *const mPtNodeWriter;
-        int mValidBigramEntryCount;
-    };
-
-    class TraversePolicyToPlaceAndWriteValidPtNodesToBuffer
-            : public DynamicPtReadingHelper::TraversingEventListener {
-     public:
-        TraversePolicyToPlaceAndWriteValidPtNodesToBuffer(
-                PtNodeWriter *const ptNodeWriter, BufferWithExtendableBuffer *const bufferToWrite,
-                PtNodeWriter::DictPositionRelocationMap *const dictPositionRelocationMap)
-                : mPtNodeWriter(ptNodeWriter), mBufferToWrite(bufferToWrite),
-                  mDictPositionRelocationMap(dictPositionRelocationMap), mValidPtNodeCount(0),
-                  mPtNodeArraySizeFieldPos(NOT_A_DICT_POS) {};
-
-        bool onAscend() { return true; }
-
-        bool onDescend(const int ptNodeArrayPos);
-
-        bool onReadingPtNodeArrayTail();
-
-        bool onVisitingPtNode(const PtNodeParams *const ptNodeParams);
-
-     private:
-        DISALLOW_IMPLICIT_CONSTRUCTORS(TraversePolicyToPlaceAndWriteValidPtNodesToBuffer);
-
-        PtNodeWriter *const mPtNodeWriter;
-        BufferWithExtendableBuffer *const mBufferToWrite;
-        PtNodeWriter::DictPositionRelocationMap *const mDictPositionRelocationMap;
-        int mValidPtNodeCount;
-        int mPtNodeArraySizeFieldPos;
-    };
-
-    class TraversePolicyToUpdateAllPositionFields
-            : public DynamicPtReadingHelper::TraversingEventListener {
-     public:
-        TraversePolicyToUpdateAllPositionFields(PtNodeWriter *const ptNodeWriter,
-                const PtNodeWriter::DictPositionRelocationMap *const dictPositionRelocationMap)
-                : mPtNodeWriter(ptNodeWriter),
-                  mDictPositionRelocationMap(dictPositionRelocationMap), mUnigramCount(0),
-                  mBigramCount(0) {};
-
-        bool onAscend() { return true; }
-
-        bool onDescend(const int ptNodeArrayPos) { return true; }
-
-        bool onReadingPtNodeArrayTail() { return true; }
-
-        bool onVisitingPtNode(const PtNodeParams *const ptNodeParams);
-
-        int getUnigramCount() const {
-            return mUnigramCount;
-        }
-
-        int getBigramCount() const {
-            return mBigramCount;
-        }
-
-     private:
-        DISALLOW_IMPLICIT_CONSTRUCTORS(TraversePolicyToUpdateAllPositionFields);
-
-        PtNodeWriter *const mPtNodeWriter;
-        const PtNodeWriter::DictPositionRelocationMap *const mDictPositionRelocationMap;
-        int mUnigramCount;
-        int mBigramCount;
-    };
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(DynamicPtGcEventListeners);
-};
-} // namespace latinime
-#endif /* LATINIME_DYNAMIC_PT_GC_EVENT_LISTENERS_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.cpp
deleted file mode 100644
index 086d98b..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.cpp
+++ /dev/null
@@ -1,326 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
-
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_array_reader.h"
-#include "utils/char_utils.h"
-
-namespace latinime {
-
-// To avoid infinite loop caused by invalid or malicious forward links.
-const int DynamicPtReadingHelper::MAX_CHILD_COUNT_TO_AVOID_INFINITE_LOOP = 100000;
-const int DynamicPtReadingHelper::MAX_PT_NODE_ARRAY_COUNT_TO_AVOID_INFINITE_LOOP = 100000;
-const size_t DynamicPtReadingHelper::MAX_READING_STATE_STACK_SIZE = MAX_WORD_LENGTH;
-
-bool DynamicPtReadingHelper::TraversePolicyToGetAllTerminalPtNodePositions::onVisitingPtNode(
-        const PtNodeParams *const ptNodeParams) {
-    if (ptNodeParams->isTerminal() && !ptNodeParams->isDeleted()) {
-        mTerminalPositions->push_back(ptNodeParams->getHeadPos());
-    }
-    return true;
-}
-
-// Visits all PtNodes in post-order depth first manner.
-// For example, visits c -> b -> y -> x -> a for the following dictionary:
-// a _ b _ c
-//   \ x _ y
-bool DynamicPtReadingHelper::traverseAllPtNodesInPostorderDepthFirstManner(
-        TraversingEventListener *const listener) {
-    bool alreadyVisitedChildren = false;
-    // Descend from the root to the root PtNode array.
-    if (!listener->onDescend(getPosOfLastPtNodeArrayHead())) {
-        return false;
-    }
-    while (!isEnd()) {
-        const PtNodeParams ptNodeParams(getPtNodeParams());
-        if (!ptNodeParams.isValid()) {
-            break;
-        }
-        if (!alreadyVisitedChildren) {
-            if (ptNodeParams.hasChildren()) {
-                // Move to the first child.
-                if (!listener->onDescend(ptNodeParams.getChildrenPos())) {
-                    return false;
-                }
-                pushReadingStateToStack();
-                readChildNode(ptNodeParams);
-            } else {
-                alreadyVisitedChildren = true;
-            }
-        } else {
-            if (!listener->onVisitingPtNode(&ptNodeParams)) {
-                return false;
-            }
-            readNextSiblingNode(ptNodeParams);
-            if (isEnd()) {
-                // All PtNodes in current linked PtNode arrays have been visited.
-                // Return to the parent.
-                if (!listener->onReadingPtNodeArrayTail()) {
-                    return false;
-                }
-                if (mReadingStateStack.size() <= 0) {
-                    break;
-                }
-                if (!listener->onAscend()) {
-                    return false;
-                }
-                popReadingStateFromStack();
-                alreadyVisitedChildren = true;
-            } else {
-                // Process sibling PtNode.
-                alreadyVisitedChildren = false;
-            }
-        }
-    }
-    // Ascend from the root PtNode array to the root.
-    if (!listener->onAscend()) {
-        return false;
-    }
-    return !isError();
-}
-
-// Visits all PtNodes in PtNode array level pre-order depth first manner, which is the same order
-// that PtNodes are written in the dictionary buffer.
-// For example, visits a -> b -> x -> c -> y for the following dictionary:
-// a _ b _ c
-//   \ x _ y
-bool DynamicPtReadingHelper::traverseAllPtNodesInPtNodeArrayLevelPreorderDepthFirstManner(
-        TraversingEventListener *const listener) {
-    bool alreadyVisitedAllPtNodesInArray = false;
-    bool alreadyVisitedChildren = false;
-    // Descend from the root to the root PtNode array.
-    if (!listener->onDescend(getPosOfLastPtNodeArrayHead())) {
-        return false;
-    }
-    if (isEnd()) {
-        // Empty dictionary. Needs to notify the listener of the tail of empty PtNode array.
-        if (!listener->onReadingPtNodeArrayTail()) {
-            return false;
-        }
-    }
-    pushReadingStateToStack();
-    while (!isEnd()) {
-        const PtNodeParams ptNodeParams(getPtNodeParams());
-        if (!ptNodeParams.isValid()) {
-            break;
-        }
-        if (alreadyVisitedAllPtNodesInArray) {
-            if (alreadyVisitedChildren) {
-                // Move to next sibling PtNode's children.
-                readNextSiblingNode(ptNodeParams);
-                if (isEnd()) {
-                    // Return to the parent PTNode.
-                    if (!listener->onAscend()) {
-                        return false;
-                    }
-                    if (mReadingStateStack.size() <= 0) {
-                        break;
-                    }
-                    popReadingStateFromStack();
-                    alreadyVisitedChildren = true;
-                    alreadyVisitedAllPtNodesInArray = true;
-                } else {
-                    alreadyVisitedChildren = false;
-                }
-            } else {
-                if (ptNodeParams.hasChildren()) {
-                    // Move to the first child.
-                    if (!listener->onDescend(ptNodeParams.getChildrenPos())) {
-                        return false;
-                    }
-                    pushReadingStateToStack();
-                    readChildNode(ptNodeParams);
-                    // Push state to return the head of PtNode array.
-                    pushReadingStateToStack();
-                    alreadyVisitedAllPtNodesInArray = false;
-                    alreadyVisitedChildren = false;
-                } else {
-                    alreadyVisitedChildren = true;
-                }
-            }
-        } else {
-            if (!listener->onVisitingPtNode(&ptNodeParams)) {
-                return false;
-            }
-            readNextSiblingNode(ptNodeParams);
-            if (isEnd()) {
-                if (!listener->onReadingPtNodeArrayTail()) {
-                    return false;
-                }
-                // Return to the head of current PtNode array.
-                popReadingStateFromStack();
-                alreadyVisitedAllPtNodesInArray = true;
-            }
-        }
-    }
-    popReadingStateFromStack();
-    // Ascend from the root PtNode array to the root.
-    if (!listener->onAscend()) {
-        return false;
-    }
-    return !isError();
-}
-
-int DynamicPtReadingHelper::getCodePointsAndProbabilityAndReturnCodePointCount(
-        const int maxCodePointCount, int *const outCodePoints, int *const outUnigramProbability) {
-    // This method traverses parent nodes from the terminal by following parent pointers; thus,
-    // node code points are stored in the buffer in the reverse order.
-    int reverseCodePoints[maxCodePointCount];
-    const PtNodeParams terminalPtNodeParams(getPtNodeParams());
-    // First, read the terminal node and get its probability.
-    if (!isValidTerminalNode(terminalPtNodeParams)) {
-        // Node at the ptNodePos is not a valid terminal node.
-        *outUnigramProbability = NOT_A_PROBABILITY;
-        return 0;
-    }
-    // Store terminal node probability.
-    *outUnigramProbability = terminalPtNodeParams.getProbability();
-    // Then, following parent node link to the dictionary root and fetch node code points.
-    int totalCodePointCount = 0;
-    while (!isEnd()) {
-        const PtNodeParams ptNodeParams(getPtNodeParams());
-        totalCodePointCount = getTotalCodePointCount(ptNodeParams);
-        if (!ptNodeParams.isValid() || totalCodePointCount > maxCodePointCount) {
-            // The ptNodePos is not a valid terminal node position in the dictionary.
-            *outUnigramProbability = NOT_A_PROBABILITY;
-            return 0;
-        }
-        // Store node code points to buffer in the reverse order.
-        fetchMergedNodeCodePointsInReverseOrder(ptNodeParams, getPrevTotalCodePointCount(),
-                reverseCodePoints);
-        // Follow parent node toward the root node.
-        readParentNode(ptNodeParams);
-    }
-    if (isError()) {
-        // The node position or the dictionary is invalid.
-        *outUnigramProbability = NOT_A_PROBABILITY;
-        return 0;
-    }
-    // Reverse the stored code points to output them.
-    for (int i = 0; i < totalCodePointCount; ++i) {
-        outCodePoints[i] = reverseCodePoints[totalCodePointCount - i - 1];
-    }
-    return totalCodePointCount;
-}
-
-int DynamicPtReadingHelper::getTerminalPtNodePositionOfWord(const int *const inWord,
-        const int length, const bool forceLowerCaseSearch) {
-    int searchCodePoints[length];
-    for (int i = 0; i < length; ++i) {
-        searchCodePoints[i] = forceLowerCaseSearch ? CharUtils::toLowerCase(inWord[i]) : inWord[i];
-    }
-    while (!isEnd()) {
-        const PtNodeParams ptNodeParams(getPtNodeParams());
-        const int matchedCodePointCount = getPrevTotalCodePointCount();
-        if (getTotalCodePointCount(ptNodeParams) > length
-                || !isMatchedCodePoint(ptNodeParams, 0 /* index */,
-                        searchCodePoints[matchedCodePointCount])) {
-            // Current node has too many code points or its first code point is different from
-            // target code point. Skip this node and read the next sibling node.
-            readNextSiblingNode(ptNodeParams);
-            continue;
-        }
-        // Check following merged node code points.
-        const int nodeCodePointCount = ptNodeParams.getCodePointCount();
-        for (int j = 1; j < nodeCodePointCount; ++j) {
-            if (!isMatchedCodePoint(ptNodeParams, j, searchCodePoints[matchedCodePointCount + j])) {
-                // Different code point is found. The given word is not included in the dictionary.
-                return NOT_A_DICT_POS;
-            }
-        }
-        // All characters are matched.
-        if (length == getTotalCodePointCount(ptNodeParams)) {
-            if (!ptNodeParams.isTerminal()) {
-                return NOT_A_DICT_POS;
-            }
-            // Terminal position is found.
-            return ptNodeParams.getHeadPos();
-        }
-        if (!ptNodeParams.hasChildren()) {
-            return NOT_A_DICT_POS;
-        }
-        // Advance to the children nodes.
-        readChildNode(ptNodeParams);
-    }
-    // If we already traversed the tree further than the word is long, there means
-    // there was no match (or we would have found it).
-    return NOT_A_DICT_POS;
-}
-
-// Read node array size and process empty node arrays. Nodes and arrays are counted up in this
-// method to avoid an infinite loop.
-void DynamicPtReadingHelper::nextPtNodeArray() {
-    int ptNodeCountInArray = 0;
-    int firstPtNodePos = NOT_A_DICT_POS;
-    if (!mPtNodeArrayReader->readPtNodeArrayInfoAndReturnIfValid(
-            mReadingState.mPos, &ptNodeCountInArray, &firstPtNodePos)) {
-        mIsError = true;
-        mReadingState.mPos = NOT_A_DICT_POS;
-        return;
-    }
-    mReadingState.mPosOfThisPtNodeArrayHead = mReadingState.mPos;
-    mReadingState.mRemainingPtNodeCountInThisArray = ptNodeCountInArray;
-    mReadingState.mPos = firstPtNodePos;
-    // Count up nodes and node arrays to avoid infinite loop.
-    mReadingState.mTotalPtNodeIndexInThisArrayChain +=
-            mReadingState.mRemainingPtNodeCountInThisArray;
-    mReadingState.mPtNodeArrayIndexInThisArrayChain++;
-    if (mReadingState.mRemainingPtNodeCountInThisArray < 0
-            || mReadingState.mTotalPtNodeIndexInThisArrayChain
-                    > MAX_CHILD_COUNT_TO_AVOID_INFINITE_LOOP
-            || mReadingState.mPtNodeArrayIndexInThisArrayChain
-                    > MAX_PT_NODE_ARRAY_COUNT_TO_AVOID_INFINITE_LOOP) {
-        // Invalid dictionary.
-        AKLOGI("Invalid dictionary. nodeCount: %d, totalNodeCount: %d, MAX_CHILD_COUNT: %d"
-                "nodeArrayCount: %d, MAX_NODE_ARRAY_COUNT: %d",
-                mReadingState.mRemainingPtNodeCountInThisArray,
-                mReadingState.mTotalPtNodeIndexInThisArrayChain,
-                MAX_CHILD_COUNT_TO_AVOID_INFINITE_LOOP,
-                mReadingState.mPtNodeArrayIndexInThisArrayChain,
-                MAX_PT_NODE_ARRAY_COUNT_TO_AVOID_INFINITE_LOOP);
-        ASSERT(false);
-        mIsError = true;
-        mReadingState.mPos = NOT_A_DICT_POS;
-        return;
-    }
-    if (mReadingState.mRemainingPtNodeCountInThisArray == 0) {
-        // Empty node array. Try following forward link.
-        followForwardLink();
-    }
-}
-
-// Follow the forward link and read the next node array if exists.
-void DynamicPtReadingHelper::followForwardLink() {
-    int nextPtNodeArrayPos = NOT_A_DICT_POS;
-    if (!mPtNodeArrayReader->readForwardLinkAndReturnIfValid(
-            mReadingState.mPos, &nextPtNodeArrayPos)) {
-        mIsError = true;
-        mReadingState.mPos = NOT_A_DICT_POS;
-        return;
-    }
-    mReadingState.mPosOfLastForwardLinkField = mReadingState.mPos;
-    if (nextPtNodeArrayPos != NOT_A_DICT_POS) {
-        // Follow the forward link.
-        mReadingState.mPos = nextPtNodeArrayPos;
-        nextPtNodeArray();
-    } else {
-        // All node arrays have been read.
-        mReadingState.mPos = NOT_A_DICT_POS;
-    }
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h
deleted file mode 100644
index b726258..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h
+++ /dev/null
@@ -1,283 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_DYNAMIC_PT_READING_HELPER_H
-#define LATINIME_DYNAMIC_PT_READING_HELPER_H
-
-#include <cstddef>
-#include <vector>
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_reader.h"
-
-namespace latinime {
-
-class DictionaryShortcutsStructurePolicy;
-class PtNodeArrayReader;
-
-/*
- * This class is used for traversing dynamic patricia trie. This class supports iterating nodes and
- * dealing with additional buffer. This class counts nodes and node arrays to avoid infinite loop.
- */
-class DynamicPtReadingHelper {
- public:
-    class TraversingEventListener {
-     public:
-        virtual ~TraversingEventListener() {};
-
-        // Returns whether the event handling was succeeded or not.
-        virtual bool onAscend() = 0;
-
-        // Returns whether the event handling was succeeded or not.
-        virtual bool onDescend(const int ptNodeArrayPos) = 0;
-
-        // Returns whether the event handling was succeeded or not.
-        virtual bool onReadingPtNodeArrayTail() = 0;
-
-        // Returns whether the event handling was succeeded or not.
-        virtual bool onVisitingPtNode(const PtNodeParams *const node) = 0;
-
-     protected:
-        TraversingEventListener() {};
-
-     private:
-        DISALLOW_COPY_AND_ASSIGN(TraversingEventListener);
-    };
-
-    class TraversePolicyToGetAllTerminalPtNodePositions : public TraversingEventListener {
-     public:
-        TraversePolicyToGetAllTerminalPtNodePositions(std::vector<int> *const terminalPositions)
-                : mTerminalPositions(terminalPositions) {}
-        bool onAscend() { return true; }
-        bool onDescend(const int ptNodeArrayPos) { return true; }
-        bool onReadingPtNodeArrayTail() { return true; }
-        bool onVisitingPtNode(const PtNodeParams *const ptNodeParams);
-
-     private:
-        DISALLOW_IMPLICIT_CONSTRUCTORS(TraversePolicyToGetAllTerminalPtNodePositions);
-
-        std::vector<int> *const mTerminalPositions;
-    };
-
-    DynamicPtReadingHelper(const PtNodeReader *const ptNodeReader,
-            const PtNodeArrayReader *const ptNodeArrayReader)
-            : mIsError(false), mReadingState(), mPtNodeReader(ptNodeReader),
-              mPtNodeArrayReader(ptNodeArrayReader), mReadingStateStack() {}
-
-    ~DynamicPtReadingHelper() {}
-
-    AK_FORCE_INLINE bool isError() const {
-        return mIsError;
-    }
-
-    AK_FORCE_INLINE bool isEnd() const {
-        return mReadingState.mPos == NOT_A_DICT_POS;
-    }
-
-    // Initialize reading state with the head position of a PtNode array.
-    AK_FORCE_INLINE void initWithPtNodeArrayPos(const int ptNodeArrayPos) {
-        if (ptNodeArrayPos == NOT_A_DICT_POS) {
-            mReadingState.mPos = NOT_A_DICT_POS;
-        } else {
-            mIsError = false;
-            mReadingState.mPos = ptNodeArrayPos;
-            mReadingState.mTotalCodePointCountSinceInitialization = 0;
-            mReadingState.mTotalPtNodeIndexInThisArrayChain = 0;
-            mReadingState.mPtNodeArrayIndexInThisArrayChain = 0;
-            mReadingState.mPosOfLastForwardLinkField = NOT_A_DICT_POS;
-            mReadingStateStack.clear();
-            nextPtNodeArray();
-        }
-    }
-
-    // Initialize reading state with the head position of a node.
-    AK_FORCE_INLINE void initWithPtNodePos(const int ptNodePos) {
-        if (ptNodePos == NOT_A_DICT_POS) {
-            mReadingState.mPos = NOT_A_DICT_POS;
-        } else {
-            mIsError = false;
-            mReadingState.mPos = ptNodePos;
-            mReadingState.mRemainingPtNodeCountInThisArray = 1;
-            mReadingState.mTotalCodePointCountSinceInitialization = 0;
-            mReadingState.mTotalPtNodeIndexInThisArrayChain = 1;
-            mReadingState.mPtNodeArrayIndexInThisArrayChain = 1;
-            mReadingState.mPosOfLastForwardLinkField = NOT_A_DICT_POS;
-            mReadingState.mPosOfThisPtNodeArrayHead = NOT_A_DICT_POS;
-            mReadingStateStack.clear();
-        }
-    }
-
-    AK_FORCE_INLINE const PtNodeParams getPtNodeParams() const {
-        if (isEnd()) {
-            return PtNodeParams();
-        }
-        return mPtNodeReader->fetchPtNodeParamsInBufferFromPtNodePos(mReadingState.mPos);
-    }
-
-    AK_FORCE_INLINE bool isValidTerminalNode(const PtNodeParams &ptNodeParams) const {
-        return !isEnd() && !ptNodeParams.isDeleted() && ptNodeParams.isTerminal();
-    }
-
-    AK_FORCE_INLINE bool isMatchedCodePoint(const PtNodeParams &ptNodeParams, const int index,
-            const int codePoint) const {
-        return ptNodeParams.getCodePoints()[index] == codePoint;
-    }
-
-    // Return code point count exclude the last read node's code points.
-    AK_FORCE_INLINE int getPrevTotalCodePointCount() const {
-        return mReadingState.mTotalCodePointCountSinceInitialization;
-    }
-
-    // Return code point count include the last read node's code points.
-    AK_FORCE_INLINE int getTotalCodePointCount(const PtNodeParams &ptNodeParams) const {
-        return mReadingState.mTotalCodePointCountSinceInitialization
-                + ptNodeParams.getCodePointCount();
-    }
-
-    AK_FORCE_INLINE void fetchMergedNodeCodePointsInReverseOrder(const PtNodeParams &ptNodeParams,
-            const int index, int *const outCodePoints) const {
-        const int nodeCodePointCount = ptNodeParams.getCodePointCount();
-        const int *const nodeCodePoints = ptNodeParams.getCodePoints();
-        for (int i =  0; i < nodeCodePointCount; ++i) {
-            outCodePoints[index + i] = nodeCodePoints[nodeCodePointCount - 1 - i];
-        }
-    }
-
-    AK_FORCE_INLINE void readNextSiblingNode(const PtNodeParams &ptNodeParams) {
-        mReadingState.mRemainingPtNodeCountInThisArray -= 1;
-        mReadingState.mPos = ptNodeParams.getSiblingNodePos();
-        if (mReadingState.mRemainingPtNodeCountInThisArray <= 0) {
-            // All nodes in the current node array have been read.
-            followForwardLink();
-        }
-    }
-
-    // Read the first child node of the current node.
-    AK_FORCE_INLINE void readChildNode(const PtNodeParams &ptNodeParams) {
-        if (ptNodeParams.hasChildren()) {
-            mReadingState.mTotalCodePointCountSinceInitialization +=
-                    ptNodeParams.getCodePointCount();
-            mReadingState.mTotalPtNodeIndexInThisArrayChain = 0;
-            mReadingState.mPtNodeArrayIndexInThisArrayChain = 0;
-            mReadingState.mPos = ptNodeParams.getChildrenPos();
-            mReadingState.mPosOfLastForwardLinkField = NOT_A_DICT_POS;
-            // Read children node array.
-            nextPtNodeArray();
-        } else {
-            mReadingState.mPos = NOT_A_DICT_POS;
-        }
-    }
-
-    // Read the parent node of the current node.
-    AK_FORCE_INLINE void readParentNode(const PtNodeParams &ptNodeParams) {
-        if (ptNodeParams.getParentPos() != NOT_A_DICT_POS) {
-            mReadingState.mTotalCodePointCountSinceInitialization +=
-                    ptNodeParams.getCodePointCount();
-            mReadingState.mTotalPtNodeIndexInThisArrayChain = 1;
-            mReadingState.mPtNodeArrayIndexInThisArrayChain = 1;
-            mReadingState.mRemainingPtNodeCountInThisArray = 1;
-            mReadingState.mPos = ptNodeParams.getParentPos();
-            mReadingState.mPosOfLastForwardLinkField = NOT_A_DICT_POS;
-            mReadingState.mPosOfThisPtNodeArrayHead = NOT_A_DICT_POS;
-        } else {
-            mReadingState.mPos = NOT_A_DICT_POS;
-        }
-    }
-
-    AK_FORCE_INLINE int getPosOfLastForwardLinkField() const {
-        return mReadingState.mPosOfLastForwardLinkField;
-    }
-
-    AK_FORCE_INLINE int getPosOfLastPtNodeArrayHead() const {
-        return mReadingState.mPosOfThisPtNodeArrayHead;
-    }
-
-    bool traverseAllPtNodesInPostorderDepthFirstManner(TraversingEventListener *const listener);
-
-    bool traverseAllPtNodesInPtNodeArrayLevelPreorderDepthFirstManner(
-            TraversingEventListener *const listener);
-
-    int getCodePointsAndProbabilityAndReturnCodePointCount(const int maxCodePointCount,
-            int *const outCodePoints, int *const outUnigramProbability);
-
-    int getTerminalPtNodePositionOfWord(const int *const inWord, const int length,
-            const bool forceLowerCaseSearch);
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(DynamicPtReadingHelper);
-
-    // This class encapsulates the reading state of a position in the dictionary. It points at a
-    // specific PtNode in the dictionary.
-    class PtNodeReadingState {
-     public:
-        // Note that copy constructor and assignment operator are used for this class to use
-        // std::vector.
-        PtNodeReadingState() : mPos(NOT_A_DICT_POS), mRemainingPtNodeCountInThisArray(0),
-                mTotalCodePointCountSinceInitialization(0), mTotalPtNodeIndexInThisArrayChain(0),
-                mPtNodeArrayIndexInThisArrayChain(0), mPosOfLastForwardLinkField(NOT_A_DICT_POS),
-                mPosOfThisPtNodeArrayHead(NOT_A_DICT_POS) {}
-
-        int mPos;
-        // Remaining node count in the current array.
-        int mRemainingPtNodeCountInThisArray;
-        int mTotalCodePointCountSinceInitialization;
-        // Counter of PtNodes used to avoid infinite loops caused by broken or malicious links.
-        int mTotalPtNodeIndexInThisArrayChain;
-        // Counter of PtNode arrays used to avoid infinite loops caused by cyclic links of empty
-        // PtNode arrays.
-        int mPtNodeArrayIndexInThisArrayChain;
-        int mPosOfLastForwardLinkField;
-        int mPosOfThisPtNodeArrayHead;
-    };
-
-    static const int MAX_CHILD_COUNT_TO_AVOID_INFINITE_LOOP;
-    static const int MAX_PT_NODE_ARRAY_COUNT_TO_AVOID_INFINITE_LOOP;
-    static const size_t MAX_READING_STATE_STACK_SIZE;
-
-    // TODO: Introduce error code to track what caused the error.
-    bool mIsError;
-    PtNodeReadingState mReadingState;
-    const PtNodeReader *const mPtNodeReader;
-    const PtNodeArrayReader *const mPtNodeArrayReader;
-    std::vector<PtNodeReadingState> mReadingStateStack;
-
-    void nextPtNodeArray();
-
-    void followForwardLink();
-
-    AK_FORCE_INLINE void pushReadingStateToStack() {
-        if (mReadingStateStack.size() > MAX_READING_STATE_STACK_SIZE) {
-            AKLOGI("Reading state stack overflow. Max size: %zd", MAX_READING_STATE_STACK_SIZE);
-            ASSERT(false);
-            mIsError = true;
-            mReadingState.mPos = NOT_A_DICT_POS;
-        } else {
-            mReadingStateStack.push_back(mReadingState);
-        }
-    }
-
-    AK_FORCE_INLINE void popReadingStateFromStack() {
-        if (mReadingStateStack.empty()) {
-            mReadingState.mPos = NOT_A_DICT_POS;
-        } else {
-            mReadingState = mReadingStateStack.back();
-            mReadingStateStack.pop_back();
-        }
-    }
-};
-} // namespace latinime
-#endif /* LATINIME_DYNAMIC_PT_READING_HELPER_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.cpp
deleted file mode 100644
index 3586b50..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/utils/byte_array_utils.h"
-
-namespace latinime {
-
-const DynamicPtReadingUtils::NodeFlags DynamicPtReadingUtils::MASK_MOVED = 0xC0;
-const DynamicPtReadingUtils::NodeFlags DynamicPtReadingUtils::FLAG_IS_NOT_MOVED = 0xC0;
-const DynamicPtReadingUtils::NodeFlags DynamicPtReadingUtils::FLAG_IS_MOVED = 0x40;
-const DynamicPtReadingUtils::NodeFlags DynamicPtReadingUtils::FLAG_IS_DELETED = 0x80;
-const DynamicPtReadingUtils::NodeFlags DynamicPtReadingUtils::FLAG_WILL_BECOME_NON_TERMINAL = 0x00;
-
-// TODO: Make DICT_OFFSET_ZERO_OFFSET = 0.
-// Currently, DICT_OFFSET_INVALID is 0 in Java side but offset can be 0 during GC. So, the maximum
-// value of offsets, which is 0x7FFFFF is used to represent 0 offset.
-const int DynamicPtReadingUtils::DICT_OFFSET_INVALID = 0;
-const int DynamicPtReadingUtils::DICT_OFFSET_ZERO_OFFSET = 0x7FFFFF;
-
-/* static */ int DynamicPtReadingUtils::getForwardLinkPosition(const uint8_t *const buffer,
-        const int pos) {
-    int linkAddressPos = pos;
-    return ByteArrayUtils::readSint24AndAdvancePosition(buffer, &linkAddressPos);
-}
-
-/* static */ int DynamicPtReadingUtils::getParentPtNodePosOffsetAndAdvancePosition(
-        const uint8_t *const buffer, int *const pos) {
-    return ByteArrayUtils::readSint24AndAdvancePosition(buffer, pos);
-}
-
-/* static */ int DynamicPtReadingUtils::getParentPtNodePos(const int parentOffset,
-        const int ptNodePos) {
-    if (parentOffset == DICT_OFFSET_INVALID) {
-        return NOT_A_DICT_POS;
-    } else if (parentOffset == DICT_OFFSET_ZERO_OFFSET) {
-        return ptNodePos;
-    } else {
-        return parentOffset + ptNodePos;
-    }
-}
-
-/* static */ int DynamicPtReadingUtils::readChildrenPositionAndAdvancePosition(
-        const uint8_t *const buffer, int *const pos) {
-    const int base = *pos;
-    const int offset = ByteArrayUtils::readSint24AndAdvancePosition(buffer, pos);
-    if (offset == DICT_OFFSET_INVALID) {
-        // The PtNode does not have children.
-        return NOT_A_DICT_POS;
-    } else if (offset == DICT_OFFSET_ZERO_OFFSET) {
-        return base;
-    } else {
-        return base + offset;
-    }
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.cpp
deleted file mode 100644
index 3c62e2e..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.cpp
+++ /dev/null
@@ -1,307 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.h"
-
-#include "suggest/core/dictionary/property/unigram_property.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_reader.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_writer.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-
-namespace latinime {
-
-const int DynamicPtUpdatingHelper::CHILDREN_POSITION_FIELD_SIZE = 3;
-
-bool DynamicPtUpdatingHelper::addUnigramWord(
-        DynamicPtReadingHelper *const readingHelper,
-        const int *const wordCodePoints, const int codePointCount,
-        const UnigramProperty *const unigramProperty, bool *const outAddedNewUnigram) {
-    int parentPos = NOT_A_DICT_POS;
-    while (!readingHelper->isEnd()) {
-        const PtNodeParams ptNodeParams(readingHelper->getPtNodeParams());
-        if (!ptNodeParams.isValid()) {
-            break;
-        }
-        const int matchedCodePointCount = readingHelper->getPrevTotalCodePointCount();
-        if (!readingHelper->isMatchedCodePoint(ptNodeParams, 0 /* index */,
-                wordCodePoints[matchedCodePointCount])) {
-            // The first code point is different from target code point. Skip this node and read
-            // the next sibling node.
-            readingHelper->readNextSiblingNode(ptNodeParams);
-            continue;
-        }
-        // Check following merged node code points.
-        const int nodeCodePointCount = ptNodeParams.getCodePointCount();
-        for (int j = 1; j < nodeCodePointCount; ++j) {
-            const int nextIndex = matchedCodePointCount + j;
-            if (nextIndex >= codePointCount || !readingHelper->isMatchedCodePoint(ptNodeParams, j,
-                    wordCodePoints[matchedCodePointCount + j])) {
-                *outAddedNewUnigram = true;
-                return reallocatePtNodeAndAddNewPtNodes(&ptNodeParams, j, unigramProperty,
-                        wordCodePoints + matchedCodePointCount,
-                        codePointCount - matchedCodePointCount);
-            }
-        }
-        // All characters are matched.
-        if (codePointCount == readingHelper->getTotalCodePointCount(ptNodeParams)) {
-            return setPtNodeProbability(&ptNodeParams, unigramProperty, outAddedNewUnigram);
-        }
-        if (!ptNodeParams.hasChildren()) {
-            *outAddedNewUnigram = true;
-            return createChildrenPtNodeArrayAndAChildPtNode(&ptNodeParams, unigramProperty,
-                    wordCodePoints + readingHelper->getTotalCodePointCount(ptNodeParams),
-                    codePointCount - readingHelper->getTotalCodePointCount(ptNodeParams));
-        }
-        // Advance to the children nodes.
-        parentPos = ptNodeParams.getHeadPos();
-        readingHelper->readChildNode(ptNodeParams);
-    }
-    if (readingHelper->isError()) {
-        // The dictionary is invalid.
-        return false;
-    }
-    int pos = readingHelper->getPosOfLastForwardLinkField();
-    *outAddedNewUnigram = true;
-    return createAndInsertNodeIntoPtNodeArray(parentPos,
-            wordCodePoints + readingHelper->getPrevTotalCodePointCount(),
-            codePointCount - readingHelper->getPrevTotalCodePointCount(),
-            unigramProperty, &pos);
-}
-
-bool DynamicPtUpdatingHelper::addNgramEntry(const PtNodePosArrayView prevWordsPtNodePos,
-        const int wordPos, const BigramProperty *const bigramProperty,
-        bool *const outAddedNewEntry) {
-    if (prevWordsPtNodePos.empty()) {
-        return false;
-    }
-    ASSERT(prevWordsPtNodePos.size() <= MAX_PREV_WORD_COUNT_FOR_N_GRAM);
-    int prevWordTerminalIds[MAX_PREV_WORD_COUNT_FOR_N_GRAM];
-    for (size_t i = 0; i < prevWordsPtNodePos.size(); ++i) {
-        prevWordTerminalIds[i] = mPtNodeReader->fetchPtNodeParamsInBufferFromPtNodePos(
-                prevWordsPtNodePos[i]).getTerminalId();
-    }
-    const WordIdArrayView prevWordIds(prevWordTerminalIds, prevWordsPtNodePos.size());
-    const int wordId =
-            mPtNodeReader->fetchPtNodeParamsInBufferFromPtNodePos(wordPos).getTerminalId();
-    return mPtNodeWriter->addNgramEntry(prevWordIds, wordId, bigramProperty, outAddedNewEntry);
-}
-
-bool DynamicPtUpdatingHelper::removeNgramEntry(const PtNodePosArrayView prevWordsPtNodePos,
-        const int wordPos) {
-    if (prevWordsPtNodePos.empty()) {
-        return false;
-    }
-    ASSERT(prevWordsPtNodePos.size() <= MAX_PREV_WORD_COUNT_FOR_N_GRAM);
-    int prevWordTerminalIds[MAX_PREV_WORD_COUNT_FOR_N_GRAM];
-    for (size_t i = 0; i < prevWordsPtNodePos.size(); ++i) {
-        prevWordTerminalIds[i] = mPtNodeReader->fetchPtNodeParamsInBufferFromPtNodePos(
-                prevWordsPtNodePos[i]).getTerminalId();
-    }
-    const WordIdArrayView prevWordIds(prevWordTerminalIds, prevWordsPtNodePos.size());
-    const int wordId =
-            mPtNodeReader->fetchPtNodeParamsInBufferFromPtNodePos(wordPos).getTerminalId();
-    return mPtNodeWriter->removeNgramEntry(prevWordIds, wordId);
-}
-
-bool DynamicPtUpdatingHelper::addShortcutTarget(const int wordPos,
-        const int *const targetCodePoints, const int targetCodePointCount,
-        const int shortcutProbability) {
-    const PtNodeParams ptNodeParams(mPtNodeReader->fetchPtNodeParamsInBufferFromPtNodePos(wordPos));
-    return mPtNodeWriter->addShortcutTarget(&ptNodeParams, targetCodePoints, targetCodePointCount,
-            shortcutProbability);
-}
-
-bool DynamicPtUpdatingHelper::createAndInsertNodeIntoPtNodeArray(const int parentPos,
-        const int *const nodeCodePoints, const int nodeCodePointCount,
-        const UnigramProperty *const unigramProperty, int *const forwardLinkFieldPos) {
-    const int newPtNodeArrayPos = mBuffer->getTailPosition();
-    if (!DynamicPtWritingUtils::writeForwardLinkPositionAndAdvancePosition(mBuffer,
-            newPtNodeArrayPos, forwardLinkFieldPos)) {
-        return false;
-    }
-    return createNewPtNodeArrayWithAChildPtNode(parentPos, nodeCodePoints, nodeCodePointCount,
-            unigramProperty);
-}
-
-bool DynamicPtUpdatingHelper::setPtNodeProbability(const PtNodeParams *const originalPtNodeParams,
-        const UnigramProperty *const unigramProperty, bool *const outAddedNewUnigram) {
-    if (originalPtNodeParams->isTerminal() && !originalPtNodeParams->isDeleted()) {
-        // Overwrites the probability.
-        *outAddedNewUnigram = false;
-        return mPtNodeWriter->updatePtNodeUnigramProperty(originalPtNodeParams, unigramProperty);
-    } else {
-        // Make the node terminal and write the probability.
-        *outAddedNewUnigram = true;
-        const int movedPos = mBuffer->getTailPosition();
-        int writingPos = movedPos;
-        const PtNodeParams ptNodeParamsToWrite(getUpdatedPtNodeParams(originalPtNodeParams,
-                unigramProperty->isNotAWord(), unigramProperty->isBlacklisted(),
-                true /* isTerminal */, originalPtNodeParams->getParentPos(),
-                originalPtNodeParams->getCodePointCount(), originalPtNodeParams->getCodePoints(),
-                unigramProperty->getProbability()));
-        if (!mPtNodeWriter->writeNewTerminalPtNodeAndAdvancePosition(&ptNodeParamsToWrite,
-                unigramProperty, &writingPos)) {
-            return false;
-        }
-        if (!mPtNodeWriter->markPtNodeAsMoved(originalPtNodeParams, movedPos, movedPos)) {
-            return false;
-        }
-    }
-    return true;
-}
-
-bool DynamicPtUpdatingHelper::createChildrenPtNodeArrayAndAChildPtNode(
-        const PtNodeParams *const parentPtNodeParams, const UnigramProperty *const unigramProperty,
-        const int *const codePoints, const int codePointCount) {
-    const int newPtNodeArrayPos = mBuffer->getTailPosition();
-    if (!mPtNodeWriter->updateChildrenPosition(parentPtNodeParams, newPtNodeArrayPos)) {
-        return false;
-    }
-    return createNewPtNodeArrayWithAChildPtNode(parentPtNodeParams->getHeadPos(), codePoints,
-            codePointCount, unigramProperty);
-}
-
-bool DynamicPtUpdatingHelper::createNewPtNodeArrayWithAChildPtNode(
-        const int parentPtNodePos, const int *const nodeCodePoints, const int nodeCodePointCount,
-        const UnigramProperty *const unigramProperty) {
-    int writingPos = mBuffer->getTailPosition();
-    if (!DynamicPtWritingUtils::writePtNodeArraySizeAndAdvancePosition(mBuffer,
-            1 /* arraySize */, &writingPos)) {
-        return false;
-    }
-    const PtNodeParams ptNodeParamsToWrite(getPtNodeParamsForNewPtNode(
-            unigramProperty->isNotAWord(), unigramProperty->isBlacklisted(), true /* isTerminal */,
-            parentPtNodePos, nodeCodePointCount, nodeCodePoints,
-            unigramProperty->getProbability()));
-    if (!mPtNodeWriter->writeNewTerminalPtNodeAndAdvancePosition(&ptNodeParamsToWrite,
-            unigramProperty, &writingPos)) {
-        return false;
-    }
-    if (!DynamicPtWritingUtils::writeForwardLinkPositionAndAdvancePosition(mBuffer,
-            NOT_A_DICT_POS /* forwardLinkPos */, &writingPos)) {
-        return false;
-    }
-    return true;
-}
-
-// Returns whether the dictionary updating was succeeded or not.
-bool DynamicPtUpdatingHelper::reallocatePtNodeAndAddNewPtNodes(
-        const PtNodeParams *const reallocatingPtNodeParams, const int overlappingCodePointCount,
-        const UnigramProperty *const unigramProperty, const int *const newNodeCodePoints,
-        const int newNodeCodePointCount) {
-    // When addsExtraChild is true, split the reallocating PtNode and add new child.
-    // Reallocating PtNode: abcde, newNode: abcxy.
-    // abc (1st, not terminal) __ de (2nd)
-    //                         \_ xy (extra child, terminal)
-    // Otherwise, this method makes 1st part terminal and write information in unigramProperty.
-    // Reallocating PtNode: abcde, newNode: abc.
-    // abc (1st, terminal) __ de (2nd)
-    const bool addsExtraChild = newNodeCodePointCount > overlappingCodePointCount;
-    const int firstPartOfReallocatedPtNodePos = mBuffer->getTailPosition();
-    int writingPos = firstPartOfReallocatedPtNodePos;
-    // Write the 1st part of the reallocating node. The children position will be updated later
-    // with actual children position.
-    if (addsExtraChild) {
-        const PtNodeParams ptNodeParamsToWrite(getPtNodeParamsForNewPtNode(
-                false /* isNotAWord */, false /* isBlacklisted */, false /* isTerminal */,
-                reallocatingPtNodeParams->getParentPos(), overlappingCodePointCount,
-                reallocatingPtNodeParams->getCodePoints(), NOT_A_PROBABILITY));
-        if (!mPtNodeWriter->writePtNodeAndAdvancePosition(&ptNodeParamsToWrite, &writingPos)) {
-            return false;
-        }
-    } else {
-        const PtNodeParams ptNodeParamsToWrite(getPtNodeParamsForNewPtNode(
-                unigramProperty->isNotAWord(), unigramProperty->isBlacklisted(),
-                true /* isTerminal */, reallocatingPtNodeParams->getParentPos(),
-                overlappingCodePointCount, reallocatingPtNodeParams->getCodePoints(),
-                unigramProperty->getProbability()));
-        if (!mPtNodeWriter->writeNewTerminalPtNodeAndAdvancePosition(&ptNodeParamsToWrite,
-                unigramProperty, &writingPos)) {
-            return false;
-        }
-    }
-    const int actualChildrenPos = writingPos;
-    // Create new children PtNode array.
-    const size_t newPtNodeCount = addsExtraChild ? 2 : 1;
-    if (!DynamicPtWritingUtils::writePtNodeArraySizeAndAdvancePosition(mBuffer,
-            newPtNodeCount, &writingPos)) {
-        return false;
-    }
-    // Write the 2nd part of the reallocating node.
-    const int secondPartOfReallocatedPtNodePos = writingPos;
-    const PtNodeParams childPartPtNodeParams(getUpdatedPtNodeParams(reallocatingPtNodeParams,
-            reallocatingPtNodeParams->isNotAWord(), reallocatingPtNodeParams->isBlacklisted(),
-            reallocatingPtNodeParams->isTerminal(), firstPartOfReallocatedPtNodePos,
-            reallocatingPtNodeParams->getCodePointCount() - overlappingCodePointCount,
-            reallocatingPtNodeParams->getCodePoints() + overlappingCodePointCount,
-            reallocatingPtNodeParams->getProbability()));
-    if (!mPtNodeWriter->writePtNodeAndAdvancePosition(&childPartPtNodeParams, &writingPos)) {
-        return false;
-    }
-    if (addsExtraChild) {
-        const PtNodeParams extraChildPtNodeParams(getPtNodeParamsForNewPtNode(
-                unigramProperty->isNotAWord(), unigramProperty->isBlacklisted(),
-                true /* isTerminal */, firstPartOfReallocatedPtNodePos,
-                newNodeCodePointCount - overlappingCodePointCount,
-                newNodeCodePoints + overlappingCodePointCount, unigramProperty->getProbability()));
-        if (!mPtNodeWriter->writeNewTerminalPtNodeAndAdvancePosition(&extraChildPtNodeParams,
-                unigramProperty, &writingPos)) {
-            return false;
-        }
-    }
-    if (!DynamicPtWritingUtils::writeForwardLinkPositionAndAdvancePosition(mBuffer,
-            NOT_A_DICT_POS /* forwardLinkPos */, &writingPos)) {
-        return false;
-    }
-    // Update original reallocating PtNode as moved.
-    if (!mPtNodeWriter->markPtNodeAsMoved(reallocatingPtNodeParams, firstPartOfReallocatedPtNodePos,
-            secondPartOfReallocatedPtNodePos)) {
-        return false;
-    }
-    // Load node info. Information of the 1st part will be fetched.
-    const PtNodeParams ptNodeParams(
-            mPtNodeReader->fetchPtNodeParamsInBufferFromPtNodePos(firstPartOfReallocatedPtNodePos));
-    // Update children position.
-    return mPtNodeWriter->updateChildrenPosition(&ptNodeParams, actualChildrenPos);
-}
-
-const PtNodeParams DynamicPtUpdatingHelper::getUpdatedPtNodeParams(
-        const PtNodeParams *const originalPtNodeParams,
-        const bool isNotAWord, const bool isBlacklisted, const bool isTerminal, const int parentPos,
-        const int codePointCount, const int *const codePoints, const int probability) const {
-    const PatriciaTrieReadingUtils::NodeFlags flags = PatriciaTrieReadingUtils::createAndGetFlags(
-            isBlacklisted, isNotAWord, isTerminal, false /* hasShortcutTargets */,
-            false /* hasBigrams */, codePointCount > 1 /* hasMultipleChars */,
-            CHILDREN_POSITION_FIELD_SIZE);
-    return PtNodeParams(originalPtNodeParams, flags, parentPos, codePointCount, codePoints,
-            probability);
-}
-
-const PtNodeParams DynamicPtUpdatingHelper::getPtNodeParamsForNewPtNode(
-        const bool isNotAWord, const bool isBlacklisted, const bool isTerminal,
-        const int parentPos, const int codePointCount, const int *const codePoints,
-        const int probability) const {
-    const PatriciaTrieReadingUtils::NodeFlags flags = PatriciaTrieReadingUtils::createAndGetFlags(
-            isBlacklisted, isNotAWord, isTerminal, false /* hasShortcutTargets */,
-            false /* hasBigrams */, codePointCount > 1 /* hasMultipleChars */,
-            CHILDREN_POSITION_FIELD_SIZE);
-    return PtNodeParams(flags, parentPos, codePointCount, codePoints, probability);
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.h b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.h
deleted file mode 100644
index 97c05c1..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_DYNAMIC_PT_UPDATING_HELPER_H
-#define LATINIME_DYNAMIC_PT_UPDATING_HELPER_H
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h"
-#include "utils/int_array_view.h"
-
-namespace latinime {
-
-class BigramProperty;
-class BufferWithExtendableBuffer;
-class DynamicPtReadingHelper;
-class PtNodeReader;
-class PtNodeWriter;
-class UnigramProperty;
-
-class DynamicPtUpdatingHelper {
- public:
-    DynamicPtUpdatingHelper(BufferWithExtendableBuffer *const buffer,
-            const PtNodeReader *const ptNodeReader, PtNodeWriter *const ptNodeWriter)
-            : mBuffer(buffer), mPtNodeReader(ptNodeReader), mPtNodeWriter(ptNodeWriter) {}
-
-    ~DynamicPtUpdatingHelper() {}
-
-    // Add a word to the dictionary. If the word already exists, update the probability.
-    bool addUnigramWord(DynamicPtReadingHelper *const readingHelper,
-            const int *const wordCodePoints, const int codePointCount,
-            const UnigramProperty *const unigramProperty, bool *const outAddedNewUnigram);
-
-    // Add an n-gram entry.
-    bool addNgramEntry(const PtNodePosArrayView prevWordsPtNodePos, const int wordPos,
-            const BigramProperty *const bigramProperty, bool *const outAddedNewEntry);
-
-    // Remove an n-gram entry.
-    bool removeNgramEntry(const PtNodePosArrayView prevWordsPtNodePos, const int wordPos);
-
-    // Add a shortcut target.
-    bool addShortcutTarget(const int wordPos, const int *const targetCodePoints,
-            const int targetCodePointCount, const int shortcutProbability);
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(DynamicPtUpdatingHelper);
-
-    static const int CHILDREN_POSITION_FIELD_SIZE;
-
-    BufferWithExtendableBuffer *const mBuffer;
-    const PtNodeReader *const mPtNodeReader;
-    PtNodeWriter *const mPtNodeWriter;
-
-    bool createAndInsertNodeIntoPtNodeArray(const int parentPos, const int *const nodeCodePoints,
-            const int nodeCodePointCount, const UnigramProperty *const unigramProperty,
-            int *const forwardLinkFieldPos);
-
-    bool setPtNodeProbability(const PtNodeParams *const originalPtNodeParams,
-            const UnigramProperty *const unigramProperty, bool *const outAddedNewUnigram);
-
-    bool createChildrenPtNodeArrayAndAChildPtNode(const PtNodeParams *const parentPtNodeParams,
-            const UnigramProperty *const unigramProperty, const int *const codePoints,
-            const int codePointCount);
-
-    bool createNewPtNodeArrayWithAChildPtNode(const int parentPos, const int *const nodeCodePoints,
-            const int nodeCodePointCount, const UnigramProperty *const unigramProperty);
-
-    bool reallocatePtNodeAndAddNewPtNodes(
-            const PtNodeParams *const reallocatingPtNodeParams, const int overlappingCodePointCount,
-            const UnigramProperty *const unigramProperty, const int *const newNodeCodePoints,
-            const int newNodeCodePointCount);
-
-    const PtNodeParams getUpdatedPtNodeParams(const PtNodeParams *const originalPtNodeParams,
-            const bool isNotAWord, const bool isBlacklisted, const bool isTerminal,
-            const int parentPos, const int codePointCount,
-            const int *const codePoints, const int probability) const;
-
-    const PtNodeParams getPtNodeParamsForNewPtNode(const bool isNotAWord, const bool isBlacklisted,
-            const bool isTerminal, const int parentPos,
-            const int codePointCount, const int *const codePoints, const int probability) const;
-};
-} // namespace latinime
-#endif /* LATINIME_DYNAMIC_PATRICIA_TRIE_UPDATING_HELPER_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.cpp
deleted file mode 100644
index 664aeeb..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.cpp
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
-
-#include <cstddef>
-#include <cstdint>
-#include <cstdlib>
-
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-
-namespace latinime {
-
-const size_t DynamicPtWritingUtils::MAX_PTNODE_ARRAY_SIZE_TO_USE_SMALL_SIZE_FIELD = 0x7F;
-const size_t DynamicPtWritingUtils::MAX_PTNODE_ARRAY_SIZE = 0x7FFF;
-const int DynamicPtWritingUtils::SMALL_PTNODE_ARRAY_SIZE_FIELD_SIZE = 1;
-const int DynamicPtWritingUtils::LARGE_PTNODE_ARRAY_SIZE_FIELD_SIZE = 2;
-const int DynamicPtWritingUtils::LARGE_PTNODE_ARRAY_SIZE_FIELD_SIZE_FLAG = 0x8000;
-const int DynamicPtWritingUtils::DICT_OFFSET_FIELD_SIZE = 3;
-const int DynamicPtWritingUtils::MAX_DICT_OFFSET_VALUE = 0x7FFFFF;
-const int DynamicPtWritingUtils::MIN_DICT_OFFSET_VALUE = -0x7FFFFF;
-const int DynamicPtWritingUtils::DICT_OFFSET_NEGATIVE_FLAG = 0x800000;
-const int DynamicPtWritingUtils::NODE_FLAG_FIELD_SIZE = 1;
-
-/* static */ bool DynamicPtWritingUtils::writeEmptyDictionary(
-        BufferWithExtendableBuffer *const buffer, const int rootPos) {
-    int writingPos = rootPos;
-    if (!writePtNodeArraySizeAndAdvancePosition(buffer, 0 /* arraySize */, &writingPos)) {
-        return false;
-    }
-    return writeForwardLinkPositionAndAdvancePosition(buffer, NOT_A_DICT_POS /* forwardLinkPos */,
-            &writingPos);
-}
-
-/* static */ bool DynamicPtWritingUtils::writeForwardLinkPositionAndAdvancePosition(
-        BufferWithExtendableBuffer *const buffer, const int forwardLinkPos,
-        int *const forwardLinkFieldPos) {
-    return writeDictOffset(buffer, forwardLinkPos, (*forwardLinkFieldPos), forwardLinkFieldPos);
-}
-
-/* static */ bool DynamicPtWritingUtils::writePtNodeArraySizeAndAdvancePosition(
-        BufferWithExtendableBuffer *const buffer, const size_t arraySize,
-        int *const arraySizeFieldPos) {
-    // Currently, all array size field to be created has LARGE_PTNODE_ARRAY_SIZE_FIELD_SIZE to
-    // simplify updating process.
-    // TODO: Use SMALL_PTNODE_ARRAY_SIZE_FIELD_SIZE for small arrays.
-    /*if (arraySize <= MAX_PTNODE_ARRAY_SIZE_TO_USE_SMALL_SIZE_FIELD) {
-        return buffer->writeUintAndAdvancePosition(arraySize, SMALL_PTNODE_ARRAY_SIZE_FIELD_SIZE,
-                arraySizeFieldPos);
-    } else */
-    if (arraySize <= MAX_PTNODE_ARRAY_SIZE) {
-        uint32_t data = arraySize | LARGE_PTNODE_ARRAY_SIZE_FIELD_SIZE_FLAG;
-        return buffer->writeUintAndAdvancePosition(data, LARGE_PTNODE_ARRAY_SIZE_FIELD_SIZE,
-                arraySizeFieldPos);
-    } else {
-        AKLOGI("PtNode array size cannot be written because arraySize is too large: %zd",
-                arraySize);
-        ASSERT(false);
-        return false;
-    }
-}
-
-/* static */ bool DynamicPtWritingUtils::writeFlagsAndAdvancePosition(
-        BufferWithExtendableBuffer *const buffer,
-        const DynamicPtReadingUtils::NodeFlags nodeFlags, int *const nodeFlagsFieldPos) {
-    return buffer->writeUintAndAdvancePosition(nodeFlags, NODE_FLAG_FIELD_SIZE, nodeFlagsFieldPos);
-}
-
-// Note that parentOffset is offset from node's head position.
-/* static */ bool DynamicPtWritingUtils::writeParentPosOffsetAndAdvancePosition(
-        BufferWithExtendableBuffer *const buffer, const int parentPos, const int basePos,
-        int *const parentPosFieldPos) {
-    return writeDictOffset(buffer, parentPos, basePos, parentPosFieldPos);
-}
-
-/* static */ bool DynamicPtWritingUtils::writeCodePointsAndAdvancePosition(
-        BufferWithExtendableBuffer *const buffer, const int *const codePoints,
-        const int codePointCount, int *const codePointFieldPos) {
-    if (codePointCount <= 0) {
-        AKLOGI("code points cannot be written because codePointCount is invalid: %d",
-                codePointCount);
-        ASSERT(false);
-        return false;
-    }
-    const bool hasMultipleCodePoints = codePointCount > 1;
-    return buffer->writeCodePointsAndAdvancePosition(codePoints, codePointCount,
-            hasMultipleCodePoints, codePointFieldPos);
-}
-
-/* static */ bool DynamicPtWritingUtils::writeChildrenPositionAndAdvancePosition(
-        BufferWithExtendableBuffer *const buffer, const int childrenPosition,
-        int *const childrenPositionFieldPos) {
-    return writeDictOffset(buffer, childrenPosition, (*childrenPositionFieldPos),
-            childrenPositionFieldPos);
-}
-
-/* static */ bool DynamicPtWritingUtils::writeDictOffset(BufferWithExtendableBuffer *const buffer,
-        const int targetPos, const int basePos, int *const offsetFieldPos) {
-    int offset = targetPos - basePos;
-    if (targetPos == NOT_A_DICT_POS) {
-        offset = DynamicPtReadingUtils::DICT_OFFSET_INVALID;
-    } else if (offset == 0) {
-        offset = DynamicPtReadingUtils::DICT_OFFSET_ZERO_OFFSET;
-    }
-    if (offset > MAX_DICT_OFFSET_VALUE || offset < MIN_DICT_OFFSET_VALUE) {
-        AKLOGI("offset cannot be written because the offset is too large or too small: %d",
-                offset);
-        ASSERT(false);
-        return false;
-    }
-    uint32_t data = 0;
-    if (offset >= 0) {
-        data = offset;
-    } else {
-        data = abs(offset) | DICT_OFFSET_NEGATIVE_FLAG;
-    }
-    return buffer->writeUintAndAdvancePosition(data, DICT_OFFSET_FIELD_SIZE, offsetFieldPos);
-}
-}
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.h b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.h
deleted file mode 100644
index 362fbd1..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_DYNAMIC_PT_WRITING_UTILS_H
-#define LATINIME_DYNAMIC_PT_WRITING_UTILS_H
-
-#include <cstddef>
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
-
-namespace latinime {
-
-class BufferWithExtendableBuffer;
-
-class DynamicPtWritingUtils {
- public:
-    static const int NODE_FLAG_FIELD_SIZE;
-
-    static bool writeEmptyDictionary(BufferWithExtendableBuffer *const buffer, const int rootPos);
-
-    static bool writeForwardLinkPositionAndAdvancePosition(
-            BufferWithExtendableBuffer *const buffer, const int forwardLinkPos,
-            int *const forwardLinkFieldPos);
-
-    static bool writePtNodeArraySizeAndAdvancePosition(BufferWithExtendableBuffer *const buffer,
-            const size_t arraySize, int *const arraySizeFieldPos);
-
-    static bool writeFlags(BufferWithExtendableBuffer *const buffer,
-            const DynamicPtReadingUtils::NodeFlags nodeFlags,
-            const int nodeFlagsFieldPos) {
-        int writingPos = nodeFlagsFieldPos;
-        return writeFlagsAndAdvancePosition(buffer, nodeFlags, &writingPos);
-    }
-
-    static bool writeFlagsAndAdvancePosition(BufferWithExtendableBuffer *const buffer,
-            const DynamicPtReadingUtils::NodeFlags nodeFlags,
-            int *const nodeFlagsFieldPos);
-
-    static bool writeParentPosOffsetAndAdvancePosition(BufferWithExtendableBuffer *const buffer,
-            const int parentPosition, const int basePos, int *const parentPosFieldPos);
-
-    static bool writeCodePointsAndAdvancePosition(BufferWithExtendableBuffer *const buffer,
-            const int *const codePoints, const int codePointCount, int *const codePointFieldPos);
-
-    static bool writeChildrenPositionAndAdvancePosition(BufferWithExtendableBuffer *const buffer,
-            const int childrenPosition, int *const childrenPositionFieldPos);
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(DynamicPtWritingUtils);
-
-    static const size_t MAX_PTNODE_ARRAY_SIZE_TO_USE_SMALL_SIZE_FIELD;
-    static const size_t MAX_PTNODE_ARRAY_SIZE;
-    static const int SMALL_PTNODE_ARRAY_SIZE_FIELD_SIZE;
-    static const int LARGE_PTNODE_ARRAY_SIZE_FIELD_SIZE;
-    static const int LARGE_PTNODE_ARRAY_SIZE_FIELD_SIZE_FLAG;
-    static const int DICT_OFFSET_FIELD_SIZE;
-    static const int MAX_DICT_OFFSET_VALUE;
-    static const int MIN_DICT_OFFSET_VALUE;
-    static const int DICT_OFFSET_NEGATIVE_FLAG;
-
-    static bool writeDictOffset(BufferWithExtendableBuffer *const buffer, const int targetPos,
-            const int basePos, int *const offsetFieldPos);
-};
-} // namespace latinime
-#endif /* LATINIME_DYNAMIC_PT_WRITING_UTILS_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.cpp
deleted file mode 100644
index e64a13c..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.cpp
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
-
-#include "defines.h"
-#include "suggest/core/policy/dictionary_bigrams_structure_policy.h"
-#include "suggest/core/policy/dictionary_shortcuts_structure_policy.h"
-#include "suggest/policyimpl/dictionary/utils/byte_array_utils.h"
-
-namespace latinime {
-
-typedef PatriciaTrieReadingUtils PtReadingUtils;
-
-const PtReadingUtils::NodeFlags PtReadingUtils::MASK_CHILDREN_POSITION_TYPE = 0xC0;
-const PtReadingUtils::NodeFlags PtReadingUtils::FLAG_CHILDREN_POSITION_TYPE_NOPOSITION = 0x00;
-const PtReadingUtils::NodeFlags PtReadingUtils::FLAG_CHILDREN_POSITION_TYPE_ONEBYTE = 0x40;
-const PtReadingUtils::NodeFlags PtReadingUtils::FLAG_CHILDREN_POSITION_TYPE_TWOBYTES = 0x80;
-const PtReadingUtils::NodeFlags PtReadingUtils::FLAG_CHILDREN_POSITION_TYPE_THREEBYTES = 0xC0;
-
-// Flag for single/multiple char group
-const PtReadingUtils::NodeFlags PtReadingUtils::FLAG_HAS_MULTIPLE_CHARS = 0x20;
-// Flag for terminal PtNodes
-const PtReadingUtils::NodeFlags PtReadingUtils::FLAG_IS_TERMINAL = 0x10;
-// Flag for shortcut targets presence
-const PtReadingUtils::NodeFlags PtReadingUtils::FLAG_HAS_SHORTCUT_TARGETS = 0x08;
-// Flag for bigram presence
-const PtReadingUtils::NodeFlags PtReadingUtils::FLAG_HAS_BIGRAMS = 0x04;
-// Flag for non-words (typically, shortcut only entries)
-const PtReadingUtils::NodeFlags PtReadingUtils::FLAG_IS_NOT_A_WORD = 0x02;
-// Flag for blacklist
-const PtReadingUtils::NodeFlags PtReadingUtils::FLAG_IS_BLACKLISTED = 0x01;
-
-/* static */ int PtReadingUtils::getPtNodeArraySizeAndAdvancePosition(
-        const uint8_t *const buffer, int *const pos) {
-    const uint8_t firstByte = ByteArrayUtils::readUint8AndAdvancePosition(buffer, pos);
-    if (firstByte < 0x80) {
-        return firstByte;
-    } else {
-        return ((firstByte & 0x7F) << 8) ^ ByteArrayUtils::readUint8AndAdvancePosition(
-                buffer, pos);
-    }
-}
-
-/* static */ PtReadingUtils::NodeFlags PtReadingUtils::getFlagsAndAdvancePosition(
-        const uint8_t *const buffer, int *const pos) {
-    return ByteArrayUtils::readUint8AndAdvancePosition(buffer, pos);
-}
-
-/* static */ int PtReadingUtils::getCodePointAndAdvancePosition(const uint8_t *const buffer,
-        int *const pos) {
-    return ByteArrayUtils::readCodePointAndAdvancePosition(buffer, pos);
-}
-
-// Returns the number of read characters.
-/* static */ int PtReadingUtils::getCharsAndAdvancePosition(const uint8_t *const buffer,
-        const NodeFlags flags, const int maxLength, int *const outBuffer, int *const pos) {
-    int length = 0;
-    if (hasMultipleChars(flags)) {
-        length = ByteArrayUtils::readStringAndAdvancePosition(buffer, maxLength, outBuffer,
-                pos);
-    } else {
-        const int codePoint = getCodePointAndAdvancePosition(buffer, pos);
-        if (codePoint == NOT_A_CODE_POINT) {
-            // CAVEAT: codePoint == NOT_A_CODE_POINT means the code point is
-            // CHARACTER_ARRAY_TERMINATOR. The code point must not be CHARACTER_ARRAY_TERMINATOR
-            // when the PtNode has a single code point.
-            length = 0;
-            AKLOGE("codePoint is NOT_A_CODE_POINT. pos: %d, codePoint: 0x%x, buffer[pos - 1]: 0x%x",
-                    *pos - 1, codePoint, buffer[*pos - 1]);
-            ASSERT(false);
-        } else if (maxLength > 0) {
-            outBuffer[0] = codePoint;
-            length = 1;
-        }
-    }
-    return length;
-}
-
-// Returns the number of skipped characters.
-/* static */ int PtReadingUtils::skipCharacters(const uint8_t *const buffer, const NodeFlags flags,
-        const int maxLength, int *const pos) {
-    if (hasMultipleChars(flags)) {
-        return ByteArrayUtils::advancePositionToBehindString(buffer, maxLength, pos);
-    } else {
-        if (maxLength > 0) {
-            getCodePointAndAdvancePosition(buffer, pos);
-            return 1;
-        } else {
-            return 0;
-        }
-    }
-}
-
-/* static */ int PtReadingUtils::readProbabilityAndAdvancePosition(const uint8_t *const buffer,
-        int *const pos) {
-    return ByteArrayUtils::readUint8AndAdvancePosition(buffer, pos);
-}
-
-/* static */ int PtReadingUtils::readChildrenPositionAndAdvancePosition(
-        const uint8_t *const buffer, const NodeFlags flags, int *const pos) {
-    const int base = *pos;
-    int offset = 0;
-    switch (MASK_CHILDREN_POSITION_TYPE & flags) {
-        case FLAG_CHILDREN_POSITION_TYPE_ONEBYTE:
-            offset = ByteArrayUtils::readUint8AndAdvancePosition(buffer, pos);
-            break;
-        case FLAG_CHILDREN_POSITION_TYPE_TWOBYTES:
-            offset = ByteArrayUtils::readUint16AndAdvancePosition(buffer, pos);
-            break;
-        case FLAG_CHILDREN_POSITION_TYPE_THREEBYTES:
-            offset = ByteArrayUtils::readUint24AndAdvancePosition(buffer, pos);
-            break;
-        default:
-            // If we come here, it means we asked for the children of a word with
-            // no children.
-            return NOT_A_DICT_POS;
-    }
-    return base + offset;
-}
-
-/* static */ void PtReadingUtils::readPtNodeInfo(const uint8_t *const dictBuf, const int ptNodePos,
-        const DictionaryShortcutsStructurePolicy *const shortcutPolicy,
-        const DictionaryBigramsStructurePolicy *const bigramPolicy,
-        NodeFlags *const outFlags, int *const outCodePointCount, int *const outCodePoint,
-        int *const outProbability, int *const outChildrenPos, int *const outShortcutPos,
-        int *const outBigramPos, int *const outSiblingPos) {
-    int readingPos = ptNodePos;
-    const NodeFlags flags = getFlagsAndAdvancePosition(dictBuf, &readingPos);
-    *outFlags = flags;
-    *outCodePointCount = getCharsAndAdvancePosition(
-            dictBuf, flags, MAX_WORD_LENGTH, outCodePoint, &readingPos);
-    *outProbability = isTerminal(flags) ?
-            readProbabilityAndAdvancePosition(dictBuf, &readingPos) : NOT_A_PROBABILITY;
-    *outChildrenPos = hasChildrenInFlags(flags) ?
-            readChildrenPositionAndAdvancePosition(dictBuf, flags, &readingPos) : NOT_A_DICT_POS;
-    *outShortcutPos = NOT_A_DICT_POS;
-    if (hasShortcutTargets(flags)) {
-        *outShortcutPos = readingPos;
-        shortcutPolicy->skipAllShortcuts(&readingPos);
-    }
-    *outBigramPos = NOT_A_DICT_POS;
-    if (hasBigrams(flags)) {
-        *outBigramPos = readingPos;
-        bigramPolicy->skipAllBigrams(&readingPos);
-    }
-    *outSiblingPos = readingPos;
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h
deleted file mode 100644
index c3f09c3..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_PATRICIA_TRIE_READING_UTILS_H
-#define LATINIME_PATRICIA_TRIE_READING_UTILS_H
-
-#include <cstdint>
-
-#include "defines.h"
-
-namespace latinime {
-
-class DictionaryShortcutsStructurePolicy;
-class DictionaryBigramsStructurePolicy;
-
-class PatriciaTrieReadingUtils {
- public:
-    typedef uint8_t NodeFlags;
-
-    static int getPtNodeArraySizeAndAdvancePosition(const uint8_t *const buffer, int *const pos);
-
-    static NodeFlags getFlagsAndAdvancePosition(const uint8_t *const buffer, int *const pos);
-
-    static int getCodePointAndAdvancePosition(const uint8_t *const buffer, int *const pos);
-
-    // Returns the number of read characters.
-    static int getCharsAndAdvancePosition(const uint8_t *const buffer, const NodeFlags flags,
-            const int maxLength, int *const outBuffer, int *const pos);
-
-    // Returns the number of skipped characters.
-    static int skipCharacters(const uint8_t *const buffer, const NodeFlags flags,
-            const int maxLength, int *const pos);
-
-    static int readProbabilityAndAdvancePosition(const uint8_t *const buffer, int *const pos);
-
-    static int readChildrenPositionAndAdvancePosition(const uint8_t *const buffer,
-            const NodeFlags flags, int *const pos);
-
-    /**
-     * Node Flags
-     */
-    static AK_FORCE_INLINE bool isBlacklisted(const NodeFlags flags) {
-        return (flags & FLAG_IS_BLACKLISTED) != 0;
-    }
-
-    static AK_FORCE_INLINE bool isNotAWord(const NodeFlags flags) {
-        return (flags & FLAG_IS_NOT_A_WORD) != 0;
-    }
-
-    static AK_FORCE_INLINE bool isTerminal(const NodeFlags flags) {
-        return (flags & FLAG_IS_TERMINAL) != 0;
-    }
-
-    static AK_FORCE_INLINE bool hasShortcutTargets(const NodeFlags flags) {
-        return (flags & FLAG_HAS_SHORTCUT_TARGETS) != 0;
-    }
-
-    static AK_FORCE_INLINE bool hasBigrams(const NodeFlags flags) {
-        return (flags & FLAG_HAS_BIGRAMS) != 0;
-    }
-
-    static AK_FORCE_INLINE bool hasMultipleChars(const NodeFlags flags) {
-        return (flags & FLAG_HAS_MULTIPLE_CHARS) != 0;
-    }
-
-    static AK_FORCE_INLINE bool hasChildrenInFlags(const NodeFlags flags) {
-        return FLAG_CHILDREN_POSITION_TYPE_NOPOSITION != (MASK_CHILDREN_POSITION_TYPE & flags);
-    }
-
-    static AK_FORCE_INLINE NodeFlags createAndGetFlags(const bool isBlacklisted,
-            const bool isNotAWord, const bool isTerminal, const bool hasShortcutTargets,
-            const bool hasBigrams, const bool hasMultipleChars,
-            const int childrenPositionFieldSize) {
-        NodeFlags nodeFlags = 0;
-        nodeFlags = isBlacklisted ? (nodeFlags | FLAG_IS_BLACKLISTED) : nodeFlags;
-        nodeFlags = isNotAWord ? (nodeFlags | FLAG_IS_NOT_A_WORD) : nodeFlags;
-        nodeFlags = isTerminal ? (nodeFlags | FLAG_IS_TERMINAL) : nodeFlags;
-        nodeFlags = hasShortcutTargets ? (nodeFlags | FLAG_HAS_SHORTCUT_TARGETS) : nodeFlags;
-        nodeFlags = hasBigrams ? (nodeFlags | FLAG_HAS_BIGRAMS) : nodeFlags;
-        nodeFlags = hasMultipleChars ? (nodeFlags | FLAG_HAS_MULTIPLE_CHARS) : nodeFlags;
-        if (childrenPositionFieldSize == 1) {
-            nodeFlags |= FLAG_CHILDREN_POSITION_TYPE_ONEBYTE;
-        } else if (childrenPositionFieldSize == 2) {
-            nodeFlags |= FLAG_CHILDREN_POSITION_TYPE_TWOBYTES;
-        } else if (childrenPositionFieldSize == 3) {
-            nodeFlags |= FLAG_CHILDREN_POSITION_TYPE_THREEBYTES;
-        } else {
-            nodeFlags |= FLAG_CHILDREN_POSITION_TYPE_NOPOSITION;
-        }
-        return nodeFlags;
-    }
-
-    static void readPtNodeInfo(const uint8_t *const dictBuf, const int ptNodePos,
-            const DictionaryShortcutsStructurePolicy *const shortcutPolicy,
-            const DictionaryBigramsStructurePolicy *const bigramPolicy,
-            NodeFlags *const outFlags, int *const outCodePointCount, int *const outCodePoint,
-            int *const outProbability, int *const outChildrenPos, int *const outShortcutPos,
-            int *const outBigramPos, int *const outSiblingPos);
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(PatriciaTrieReadingUtils);
-
-    static const NodeFlags MASK_CHILDREN_POSITION_TYPE;
-    static const NodeFlags FLAG_CHILDREN_POSITION_TYPE_NOPOSITION;
-    static const NodeFlags FLAG_CHILDREN_POSITION_TYPE_ONEBYTE;
-    static const NodeFlags FLAG_CHILDREN_POSITION_TYPE_TWOBYTES;
-    static const NodeFlags FLAG_CHILDREN_POSITION_TYPE_THREEBYTES;
-
-    static const NodeFlags FLAG_HAS_MULTIPLE_CHARS;
-    static const NodeFlags FLAG_IS_TERMINAL;
-    static const NodeFlags FLAG_HAS_SHORTCUT_TARGETS;
-    static const NodeFlags FLAG_HAS_BIGRAMS;
-    static const NodeFlags FLAG_IS_NOT_A_WORD;
-    static const NodeFlags FLAG_IS_BLACKLISTED;
-};
-} // namespace latinime
-#endif /* LATINIME_PATRICIA_TRIE_NODE_READING_UTILS_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h
deleted file mode 100644
index b2e60a8..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h
+++ /dev/null
@@ -1,255 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_PT_NODE_PARAMS_H
-#define LATINIME_PT_NODE_PARAMS_H
-
-#include <cstring>
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
-#include "utils/char_utils.h"
-
-namespace latinime {
-
-// This class has information of a PtNode. This class is immutable.
-class PtNodeParams {
- public:
-    // Invalid PtNode.
-    PtNodeParams() : mHeadPos(NOT_A_DICT_POS), mFlags(0), mHasMovedFlag(false),
-            mParentPos(NOT_A_DICT_POS), mCodePointCount(0), mCodePoints(),
-            mTerminalIdFieldPos(NOT_A_DICT_POS), mTerminalId(Ver4DictConstants::NOT_A_TERMINAL_ID),
-            mProbabilityFieldPos(NOT_A_DICT_POS), mProbability(NOT_A_PROBABILITY),
-            mChildrenPosFieldPos(NOT_A_DICT_POS), mChildrenPos(NOT_A_DICT_POS),
-            mBigramLinkedNodePos(NOT_A_DICT_POS), mShortcutPos(NOT_A_DICT_POS),
-            mBigramPos(NOT_A_DICT_POS), mSiblingPos(NOT_A_DICT_POS) {}
-
-    PtNodeParams(const PtNodeParams& ptNodeParams)
-            : mHeadPos(ptNodeParams.mHeadPos), mFlags(ptNodeParams.mFlags),
-              mHasMovedFlag(ptNodeParams.mHasMovedFlag), mParentPos(ptNodeParams.mParentPos),
-              mCodePointCount(ptNodeParams.mCodePointCount), mCodePoints(),
-              mTerminalIdFieldPos(ptNodeParams.mTerminalIdFieldPos),
-              mTerminalId(ptNodeParams.mTerminalId),
-              mProbabilityFieldPos(ptNodeParams.mProbabilityFieldPos),
-              mProbability(ptNodeParams.mProbability),
-              mChildrenPosFieldPos(ptNodeParams.mChildrenPosFieldPos),
-              mChildrenPos(ptNodeParams.mChildrenPos),
-              mBigramLinkedNodePos(ptNodeParams.mBigramLinkedNodePos),
-              mShortcutPos(ptNodeParams.mShortcutPos), mBigramPos(ptNodeParams.mBigramPos),
-              mSiblingPos(ptNodeParams.mSiblingPos) {
-        memcpy(mCodePoints, ptNodeParams.getCodePoints(), sizeof(int) * mCodePointCount);
-    }
-
-    // PtNode read from version 2 dictionary.
-    PtNodeParams(const int headPos, const PatriciaTrieReadingUtils::NodeFlags flags,
-            const int codePointCount, const int *const codePoints, const int probability,
-            const int childrenPos, const int shortcutPos, const int bigramPos,
-            const int siblingPos)
-            : mHeadPos(headPos), mFlags(flags), mHasMovedFlag(false), mParentPos(NOT_A_DICT_POS),
-              mCodePointCount(codePointCount), mCodePoints(), mTerminalIdFieldPos(NOT_A_DICT_POS),
-              mTerminalId(Ver4DictConstants::NOT_A_TERMINAL_ID),
-              mProbabilityFieldPos(NOT_A_DICT_POS), mProbability(probability),
-              mChildrenPosFieldPos(NOT_A_DICT_POS), mChildrenPos(childrenPos),
-              mBigramLinkedNodePos(NOT_A_DICT_POS), mShortcutPos(shortcutPos),
-              mBigramPos(bigramPos), mSiblingPos(siblingPos) {
-        memcpy(mCodePoints, codePoints, sizeof(int) * mCodePointCount);
-    }
-
-    // PtNode with a terminal id.
-    PtNodeParams(const int headPos, const PatriciaTrieReadingUtils::NodeFlags flags,
-            const int parentPos, const int codePointCount, const int *const codePoints,
-            const int terminalIdFieldPos, const int terminalId, const int probability,
-            const int childrenPosFieldPos, const int childrenPos, const int siblingPos)
-            : mHeadPos(headPos), mFlags(flags), mHasMovedFlag(true), mParentPos(parentPos),
-              mCodePointCount(codePointCount), mCodePoints(),
-              mTerminalIdFieldPos(terminalIdFieldPos), mTerminalId(terminalId),
-              mProbabilityFieldPos(NOT_A_DICT_POS), mProbability(probability),
-              mChildrenPosFieldPos(childrenPosFieldPos), mChildrenPos(childrenPos),
-              mBigramLinkedNodePos(NOT_A_DICT_POS), mShortcutPos(terminalId),
-              mBigramPos(terminalId), mSiblingPos(siblingPos) {
-        memcpy(mCodePoints, codePoints, sizeof(int) * mCodePointCount);
-    }
-
-    // Construct new params by updating existing PtNode params.
-    PtNodeParams(const PtNodeParams *const ptNodeParams,
-            const PatriciaTrieReadingUtils::NodeFlags flags, const int parentPos,
-            const int codePointCount, const int *const codePoints, const int probability)
-            : mHeadPos(ptNodeParams->getHeadPos()), mFlags(flags), mHasMovedFlag(true),
-              mParentPos(parentPos), mCodePointCount(codePointCount), mCodePoints(),
-              mTerminalIdFieldPos(ptNodeParams->getTerminalIdFieldPos()),
-              mTerminalId(ptNodeParams->getTerminalId()),
-              mProbabilityFieldPos(ptNodeParams->getProbabilityFieldPos()),
-              mProbability(probability),
-              mChildrenPosFieldPos(ptNodeParams->getChildrenPosFieldPos()),
-              mChildrenPos(ptNodeParams->getChildrenPos()),
-              mBigramLinkedNodePos(ptNodeParams->getBigramLinkedNodePos()),
-              mShortcutPos(ptNodeParams->getShortcutPos()),
-              mBigramPos(ptNodeParams->getBigramsPos()),
-              mSiblingPos(ptNodeParams->getSiblingNodePos()) {
-        memcpy(mCodePoints, codePoints, sizeof(int) * mCodePointCount);
-    }
-
-    PtNodeParams(const PatriciaTrieReadingUtils::NodeFlags flags, const int parentPos,
-            const int codePointCount, const int *const codePoints, const int probability)
-            : mHeadPos(NOT_A_DICT_POS), mFlags(flags), mHasMovedFlag(true), mParentPos(parentPos),
-              mCodePointCount(codePointCount), mCodePoints(),
-              mTerminalIdFieldPos(NOT_A_DICT_POS),
-              mTerminalId(Ver4DictConstants::NOT_A_TERMINAL_ID),
-              mProbabilityFieldPos(NOT_A_DICT_POS), mProbability(probability),
-              mChildrenPosFieldPos(NOT_A_DICT_POS), mChildrenPos(NOT_A_DICT_POS),
-              mBigramLinkedNodePos(NOT_A_DICT_POS), mShortcutPos(NOT_A_DICT_POS),
-              mBigramPos(NOT_A_DICT_POS), mSiblingPos(NOT_A_DICT_POS) {
-        memcpy(mCodePoints, codePoints, sizeof(int) * mCodePointCount);
-    }
-
-    AK_FORCE_INLINE bool isValid() const {
-        return mCodePointCount > 0;
-    }
-
-    // Head position of the PtNode
-    AK_FORCE_INLINE int getHeadPos() const {
-        return mHeadPos;
-    }
-
-    // Flags
-    AK_FORCE_INLINE bool isDeleted() const {
-        return mHasMovedFlag && DynamicPtReadingUtils::isDeleted(mFlags);
-    }
-
-    AK_FORCE_INLINE bool willBecomeNonTerminal() const {
-        return mHasMovedFlag && DynamicPtReadingUtils::willBecomeNonTerminal(mFlags);
-    }
-
-    AK_FORCE_INLINE bool hasChildren() const {
-        return mChildrenPos != NOT_A_DICT_POS;
-    }
-
-    AK_FORCE_INLINE bool isTerminal() const {
-        return PatriciaTrieReadingUtils::isTerminal(mFlags);
-    }
-
-    AK_FORCE_INLINE bool isBlacklisted() const {
-        return PatriciaTrieReadingUtils::isBlacklisted(mFlags);
-    }
-
-    AK_FORCE_INLINE bool isNotAWord() const {
-        return PatriciaTrieReadingUtils::isNotAWord(mFlags);
-    }
-
-    AK_FORCE_INLINE bool hasBigrams() const {
-        return PatriciaTrieReadingUtils::hasBigrams(mFlags);
-    }
-
-    AK_FORCE_INLINE bool hasShortcutTargets() const {
-        return PatriciaTrieReadingUtils::hasShortcutTargets(mFlags);
-    }
-
-    AK_FORCE_INLINE bool representsNonWordInfo() const {
-        return getCodePointCount() > 0 && !CharUtils::isInUnicodeSpace(getCodePoints()[0])
-                && isNotAWord();
-    }
-
-    AK_FORCE_INLINE int representsBeginningOfSentence() const {
-        return getCodePointCount() > 0 && getCodePoints()[0] == CODE_POINT_BEGINNING_OF_SENTENCE
-                && isNotAWord();
-    }
-
-    // Parent node position
-    AK_FORCE_INLINE int getParentPos() const {
-        return mParentPos;
-    }
-
-    // Number of code points
-    AK_FORCE_INLINE uint8_t getCodePointCount() const {
-        return mCodePointCount;
-    }
-
-    AK_FORCE_INLINE const int *getCodePoints() const {
-        return mCodePoints;
-    }
-
-    // Probability
-    AK_FORCE_INLINE int getTerminalIdFieldPos() const {
-        return mTerminalIdFieldPos;
-    }
-
-    AK_FORCE_INLINE int getTerminalId() const {
-        return mTerminalId;
-    }
-
-    // Probability
-    AK_FORCE_INLINE int getProbabilityFieldPos() const {
-        return mProbabilityFieldPos;
-    }
-
-    AK_FORCE_INLINE int getProbability() const {
-        return mProbability;
-    }
-
-    // Children PtNode array position
-    AK_FORCE_INLINE int getChildrenPosFieldPos() const {
-        return mChildrenPosFieldPos;
-    }
-
-    AK_FORCE_INLINE int getChildrenPos() const {
-        return mChildrenPos;
-    }
-
-    // Bigram linked node position.
-    AK_FORCE_INLINE int getBigramLinkedNodePos() const {
-        return mBigramLinkedNodePos;
-    }
-
-    // Shortcutlist position
-    AK_FORCE_INLINE int getShortcutPos() const {
-        return mShortcutPos;
-    }
-
-    // Bigrams position
-    AK_FORCE_INLINE int getBigramsPos() const {
-        return mBigramPos;
-    }
-
-    // Sibling node position
-    AK_FORCE_INLINE int getSiblingNodePos() const {
-        return mSiblingPos;
-    }
-
- private:
-    // This class have a public copy constructor to be used as a return value.
-    DISALLOW_ASSIGNMENT_OPERATOR(PtNodeParams);
-
-    const int mHeadPos;
-    const PatriciaTrieReadingUtils::NodeFlags mFlags;
-    const bool mHasMovedFlag;
-    const int mParentPos;
-    const uint8_t mCodePointCount;
-    int mCodePoints[MAX_WORD_LENGTH];
-    const int mTerminalIdFieldPos;
-    const int mTerminalId;
-    const int mProbabilityFieldPos;
-    const int mProbability;
-    const int mChildrenPosFieldPos;
-    const int mChildrenPos;
-    const int mBigramLinkedNodePos;
-    const int mShortcutPos;
-    const int mBigramPos;
-    const int mSiblingPos;
-};
-} // namespace latinime
-#endif /* LATINIME_PT_NODE_PARAMS_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_reader.h b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_reader.h
deleted file mode 100644
index 31299a7..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_reader.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_PT_NODE_READER_H
-#define LATINIME_PT_NODE_READER_H
-
-#include "defines.h"
-
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h"
-
-namespace latinime {
-
-// Interface class used to read PtNode information.
-class PtNodeReader {
- public:
-    virtual ~PtNodeReader() {}
-    virtual const PtNodeParams fetchPtNodeParamsInBufferFromPtNodePos(
-            const int ptNodePos) const = 0;
-
- protected:
-    PtNodeReader() {};
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(PtNodeReader);
-};
-} // namespace latinime
-#endif /* LATINIME_PT_NODE_READER_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_writer.h b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_writer.h
deleted file mode 100644
index 955d779..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_writer.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_PT_NODE_WRITER_H
-#define LATINIME_PT_NODE_WRITER_H
-
-#include <unordered_map>
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h"
-#include "utils/int_array_view.h"
-
-namespace latinime {
-
-class BigramProperty;
-class UnigramProperty;
-
-// Interface class used to write PtNode information.
-class PtNodeWriter {
- public:
-    typedef std::unordered_map<int, int> PtNodeArrayPositionRelocationMap;
-    typedef std::unordered_map<int, int> PtNodePositionRelocationMap;
-    struct DictPositionRelocationMap {
-     public:
-        DictPositionRelocationMap()
-                : mPtNodeArrayPositionRelocationMap(), mPtNodePositionRelocationMap() {}
-
-        PtNodeArrayPositionRelocationMap mPtNodeArrayPositionRelocationMap;
-        PtNodePositionRelocationMap mPtNodePositionRelocationMap;
-
-     private:
-        DISALLOW_COPY_AND_ASSIGN(DictPositionRelocationMap);
-    };
-
-    virtual ~PtNodeWriter() {}
-
-    virtual bool markPtNodeAsDeleted(const PtNodeParams *const toBeUpdatedPtNodeParams) = 0;
-
-    virtual bool markPtNodeAsMoved(const PtNodeParams *const toBeUpdatedPtNodeParams,
-            const int movedPos, const int bigramLinkedNodePos) = 0;
-
-    virtual bool markPtNodeAsWillBecomeNonTerminal(
-            const PtNodeParams *const toBeUpdatedPtNodeParams) = 0;
-
-    virtual bool updatePtNodeUnigramProperty(const PtNodeParams *const toBeUpdatedPtNodeParams,
-            const UnigramProperty *const unigramProperty) = 0;
-
-    virtual bool updatePtNodeProbabilityAndGetNeedsToKeepPtNodeAfterGC(
-            const PtNodeParams *const toBeUpdatedPtNodeParams,
-            bool *const outNeedsToKeepPtNode) = 0;
-
-    virtual bool updateChildrenPosition(const PtNodeParams *const toBeUpdatedPtNodeParams,
-                const int newChildrenPosition) = 0;
-
-    virtual bool writePtNodeAndAdvancePosition(const PtNodeParams *const ptNodeParams,
-            int *const ptNodeWritingPos) = 0;
-
-    virtual bool writeNewTerminalPtNodeAndAdvancePosition(const PtNodeParams *const ptNodeParams,
-            const UnigramProperty *const unigramProperty, int *const ptNodeWritingPos) = 0;
-
-    virtual bool addNgramEntry(const WordIdArrayView prevWordIds, const int wordId,
-            const BigramProperty *const bigramProperty, bool *const outAddedNewEntry) = 0;
-
-    virtual bool removeNgramEntry(const WordIdArrayView prevWordIds, const int wordId) = 0;
-
-    virtual bool updateAllBigramEntriesAndDeleteUselessEntries(
-            const PtNodeParams *const sourcePtNodeParams, int *const outBigramEntryCount) = 0;
-
-    virtual bool updateAllPositionFields(const PtNodeParams *const toBeUpdatedPtNodeParams,
-            const DictPositionRelocationMap *const dictPositionRelocationMap,
-            int *const outBigramEntryCount) = 0;
-
-    virtual bool addShortcutTarget(const PtNodeParams *const ptNodeParams,
-            const int *const targetCodePoints, const int targetCodePointCount,
-            const int shortcutProbability) = 0;
-
- protected:
-    PtNodeWriter() {};
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(PtNodeWriter);
-};
-} // namespace latinime
-#endif /* LATINIME_PT_NODE_WRITER_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.cpp
deleted file mode 100644
index 91c7694..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.h"
-
-#include "suggest/policyimpl/dictionary/utils/byte_array_utils.h"
-
-namespace latinime {
-
-// Flag for presence of more attributes
-const ShortcutListReadingUtils::ShortcutFlags
-        ShortcutListReadingUtils::FLAG_ATTRIBUTE_HAS_NEXT = 0x80;
-// Mask for attribute probability, stored on 4 bits inside the flags byte.
-const ShortcutListReadingUtils::ShortcutFlags
-        ShortcutListReadingUtils::MASK_ATTRIBUTE_PROBABILITY = 0x0F;
-const int ShortcutListReadingUtils::SHORTCUT_LIST_SIZE_FIELD_SIZE = 2;
-// The numeric value of the shortcut probability that means 'whitelist'.
-const int ShortcutListReadingUtils::WHITELIST_SHORTCUT_PROBABILITY = 15;
-
-/* static */ ShortcutListReadingUtils::ShortcutFlags
-        ShortcutListReadingUtils::getFlagsAndForwardPointer(const uint8_t *const dictRoot,
-                int *const pos) {
-    return ByteArrayUtils::readUint8AndAdvancePosition(dictRoot, pos);
-}
-
-/* static */ int ShortcutListReadingUtils::getShortcutListSizeAndForwardPointer(
-        const uint8_t *const dictRoot, int *const pos) {
-    // readUint16andAdvancePosition() returns an offset *including* the uint16 field itself.
-    return ByteArrayUtils::readUint16AndAdvancePosition(dictRoot, pos)
-            - SHORTCUT_LIST_SIZE_FIELD_SIZE;
-}
-
-/* static */ int ShortcutListReadingUtils::readShortcutTarget(
-        const uint8_t *const dictRoot, const int maxLength, int *const outWord, int *const pos) {
-    return ByteArrayUtils::readStringAndAdvancePosition(dictRoot, maxLength, outWord, pos);
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.h b/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.h
deleted file mode 100644
index d065bf7..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_SHORTCUT_LIST_READING_UTILS_H
-#define LATINIME_SHORTCUT_LIST_READING_UTILS_H
-
-#include <cstdint>
-
-#include "defines.h"
-
-namespace latinime {
-
-class ShortcutListReadingUtils {
- public:
-    typedef uint8_t ShortcutFlags;
-
-    static ShortcutFlags getFlagsAndForwardPointer(const uint8_t *const dictRoot, int *const pos);
-
-    static AK_FORCE_INLINE int getProbabilityFromFlags(const ShortcutFlags flags) {
-        return flags & MASK_ATTRIBUTE_PROBABILITY;
-    }
-
-    static AK_FORCE_INLINE bool hasNext(const ShortcutFlags flags) {
-        return (flags & FLAG_ATTRIBUTE_HAS_NEXT) != 0;
-    }
-
-    // This method returns the size of the shortcut list region excluding the shortcut list size
-    // field at the beginning.
-    static int getShortcutListSizeAndForwardPointer(const uint8_t *const dictRoot, int *const pos);
-
-    static AK_FORCE_INLINE int getShortcutListSizeFieldSize() {
-        return SHORTCUT_LIST_SIZE_FIELD_SIZE;
-    }
-
-    static AK_FORCE_INLINE void skipShortcuts(const uint8_t *const dictRoot, int *const pos) {
-        const int shortcutListSize = getShortcutListSizeAndForwardPointer(dictRoot, pos);
-        *pos += shortcutListSize;
-    }
-
-    static AK_FORCE_INLINE bool isWhitelist(const ShortcutFlags flags) {
-        return getProbabilityFromFlags(flags) == WHITELIST_SHORTCUT_PROBABILITY;
-    }
-
-    static int readShortcutTarget(const uint8_t *const dictRoot, const int maxLength,
-            int *const outWord, int *const pos);
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(ShortcutListReadingUtils);
-
-    static const ShortcutFlags FLAG_ATTRIBUTE_HAS_NEXT;
-    static const ShortcutFlags MASK_ATTRIBUTE_PROBABILITY;
-    static const int SHORTCUT_LIST_SIZE_FIELD_SIZE;
-    static const int WHITELIST_SHORTCUT_PROBABILITY;
-};
-} // namespace latinime
-#endif // LATINIME_SHORTCUT_LIST_READING_UTILS_H
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/bigram/bigram_list_policy.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v2/bigram/bigram_list_policy.h
deleted file mode 100644
index 73e291e..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/bigram/bigram_list_policy.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_BIGRAM_LIST_POLICY_H
-#define LATINIME_BIGRAM_LIST_POLICY_H
-
-#include <cstdint>
-
-#include "defines.h"
-#include "suggest/core/policy/dictionary_bigrams_structure_policy.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.h"
-
-namespace latinime {
-
-class BigramListPolicy : public DictionaryBigramsStructurePolicy {
- public:
-    BigramListPolicy(const uint8_t *const bigramsBuf, const int bufSize)
-            : mBigramsBuf(bigramsBuf), mBufSize(bufSize) {}
-
-    ~BigramListPolicy() {}
-
-    void getNextBigram(int *const outBigramPos, int *const outProbability, bool *const outHasNext,
-            int *const pos) const {
-        BigramListReadWriteUtils::BigramFlags flags;
-        if (!BigramListReadWriteUtils::getBigramEntryPropertiesAndAdvancePosition(mBigramsBuf,
-                mBufSize, &flags, outBigramPos, pos)) {
-            AKLOGE("Cannot read bigram entry. mBufSize: %d, pos: %d. ", mBufSize, *pos);
-            *outProbability = NOT_A_PROBABILITY;
-            *outHasNext = false;
-            return;
-        }
-        *outProbability = BigramListReadWriteUtils::getProbabilityFromFlags(flags);
-        *outHasNext = BigramListReadWriteUtils::hasNext(flags);
-    }
-
-    bool skipAllBigrams(int *const pos) const {
-        return BigramListReadWriteUtils::skipExistingBigrams(mBigramsBuf, mBufSize, pos);
-    }
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(BigramListPolicy);
-
-    const uint8_t *const mBigramsBuf;
-    const int mBufSize;
-};
-} // namespace latinime
-#endif // LATINIME_BIGRAM_LIST_POLICY_H
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.cpp
deleted file mode 100644
index ea32eb2..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.cpp
+++ /dev/null
@@ -1,470 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#include "suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.h"
-
-#include "defines.h"
-#include "suggest/core/dicnode/dic_node.h"
-#include "suggest/core/dicnode/dic_node_vector.h"
-#include "suggest/core/dictionary/binary_dictionary_bigrams_iterator.h"
-#include "suggest/core/dictionary/ngram_listener.h"
-#include "suggest/core/session/prev_words_info.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
-#include "suggest/policyimpl/dictionary/utils/probability_utils.h"
-#include "utils/char_utils.h"
-
-namespace latinime {
-
-void PatriciaTriePolicy::createAndGetAllChildDicNodes(const DicNode *const dicNode,
-        DicNodeVector *const childDicNodes) const {
-    if (!dicNode->hasChildren()) {
-        return;
-    }
-    int nextPos = dicNode->getChildrenPtNodeArrayPos();
-    if (nextPos < 0 || nextPos >= mDictBufferSize) {
-        AKLOGE("Children PtNode array position is invalid. pos: %d, dict size: %d",
-                nextPos, mDictBufferSize);
-        mIsCorrupted = true;
-        ASSERT(false);
-        return;
-    }
-    const int childCount = PatriciaTrieReadingUtils::getPtNodeArraySizeAndAdvancePosition(
-            mDictRoot, &nextPos);
-    for (int i = 0; i < childCount; i++) {
-        if (nextPos < 0 || nextPos >= mDictBufferSize) {
-            AKLOGE("Child PtNode position is invalid. pos: %d, dict size: %d, childCount: %d / %d",
-                    nextPos, mDictBufferSize, i, childCount);
-            mIsCorrupted = true;
-            ASSERT(false);
-            return;
-        }
-        nextPos = createAndGetLeavingChildNode(dicNode, nextPos, childDicNodes);
-    }
-}
-
-// This retrieves code points and the probability of the word by its terminal position.
-// Due to the fact that words are ordered in the dictionary in a strict breadth-first order,
-// it is possible to check for this with advantageous complexity. For each PtNode array, we search
-// for PtNodes with children and compare the children position with the position we look for.
-// When we shoot the position we look for, it means the word we look for is in the children
-// of the previous PtNode. The only tricky part is the fact that if we arrive at the end of a
-// PtNode array with the last PtNode's children position still less than what we are searching for,
-// we must descend the last PtNode's children (for example, if the word we are searching for starts
-// with a z, it's the last PtNode of the root array, so all children addresses will be smaller
-// than the position we look for, and we have to descend the z PtNode).
-/* Parameters :
- * ptNodePos: the byte position of the terminal PtNode of the word we are searching for (this is
- *   what is stored as the "bigram position" in each bigram)
- * outCodePoints: an array to write the found word, with MAX_WORD_LENGTH size.
- * outUnigramProbability: a pointer to an int to write the probability into.
- * Return value : the code point count, of 0 if the word was not found.
- */
-// TODO: Split this function to be more readable
-int PatriciaTriePolicy::getCodePointsAndProbabilityAndReturnCodePointCount(
-        const int ptNodePos, const int maxCodePointCount, int *const outCodePoints,
-        int *const outUnigramProbability) const {
-    int pos = getRootPosition();
-    int wordPos = 0;
-    // One iteration of the outer loop iterates through PtNode arrays. As stated above, we will
-    // only traverse PtNodes that are actually a part of the terminal we are searching, so each
-    // time we enter this loop we are one depth level further than last time.
-    // The only reason we count PtNodes is because we want to reduce the probability of infinite
-    // looping in case there is a bug. Since we know there is an upper bound to the depth we are
-    // supposed to traverse, it does not hurt to count iterations.
-    for (int loopCount = maxCodePointCount; loopCount > 0; --loopCount) {
-        int lastCandidatePtNodePos = 0;
-        // Let's loop through PtNodes in this PtNode array searching for either the terminal
-        // or one of its ascendants.
-        if (pos < 0 || pos >= mDictBufferSize) {
-            AKLOGE("PtNode array position is invalid. pos: %d, dict size: %d",
-                    pos, mDictBufferSize);
-            mIsCorrupted = true;
-            ASSERT(false);
-            *outUnigramProbability = NOT_A_PROBABILITY;
-            return 0;
-        }
-        for (int ptNodeCount = PatriciaTrieReadingUtils::getPtNodeArraySizeAndAdvancePosition(
-                mDictRoot, &pos); ptNodeCount > 0; --ptNodeCount) {
-            const int startPos = pos;
-            if (pos < 0 || pos >= mDictBufferSize) {
-                AKLOGE("PtNode position is invalid. pos: %d, dict size: %d", pos, mDictBufferSize);
-                mIsCorrupted = true;
-                ASSERT(false);
-                *outUnigramProbability = NOT_A_PROBABILITY;
-                return 0;
-            }
-            const PatriciaTrieReadingUtils::NodeFlags flags =
-                    PatriciaTrieReadingUtils::getFlagsAndAdvancePosition(mDictRoot, &pos);
-            const int character = PatriciaTrieReadingUtils::getCodePointAndAdvancePosition(
-                    mDictRoot, &pos);
-            if (ptNodePos == startPos) {
-                // We found the position. Copy the rest of the code points in the buffer and return
-                // the length.
-                outCodePoints[wordPos] = character;
-                if (PatriciaTrieReadingUtils::hasMultipleChars(flags)) {
-                    int nextChar = PatriciaTrieReadingUtils::getCodePointAndAdvancePosition(
-                            mDictRoot, &pos);
-                    // We count code points in order to avoid infinite loops if the file is broken
-                    // or if there is some other bug
-                    int charCount = maxCodePointCount;
-                    while (NOT_A_CODE_POINT != nextChar && --charCount > 0) {
-                        outCodePoints[++wordPos] = nextChar;
-                        nextChar = PatriciaTrieReadingUtils::getCodePointAndAdvancePosition(
-                                mDictRoot, &pos);
-                    }
-                }
-                *outUnigramProbability =
-                        PatriciaTrieReadingUtils::readProbabilityAndAdvancePosition(mDictRoot,
-                                &pos);
-                return ++wordPos;
-            }
-            // We need to skip past this PtNode, so skip any remaining code points after the
-            // first and possibly the probability.
-            if (PatriciaTrieReadingUtils::hasMultipleChars(flags)) {
-                PatriciaTrieReadingUtils::skipCharacters(mDictRoot, flags, MAX_WORD_LENGTH, &pos);
-            }
-            if (PatriciaTrieReadingUtils::isTerminal(flags)) {
-                PatriciaTrieReadingUtils::readProbabilityAndAdvancePosition(mDictRoot, &pos);
-            }
-            // The fact that this PtNode has children is very important. Since we already know
-            // that this PtNode does not match, if it has no children we know it is irrelevant
-            // to what we are searching for.
-            const bool hasChildren = PatriciaTrieReadingUtils::hasChildrenInFlags(flags);
-            // We will write in `found' whether we have passed the children position we are
-            // searching for. For example if we search for "beer", the children of b are less
-            // than the address we are searching for and the children of c are greater. When we
-            // come here for c, we realize this is too big, and that we should descend b.
-            bool found;
-            if (hasChildren) {
-                int currentPos = pos;
-                // Here comes the tricky part. First, read the children position.
-                const int childrenPos = PatriciaTrieReadingUtils
-                        ::readChildrenPositionAndAdvancePosition(mDictRoot, flags, &currentPos);
-                if (childrenPos > ptNodePos) {
-                    // If the children pos is greater than the position, it means the previous
-                    // PtNode, which position is stored in lastCandidatePtNodePos, was the right
-                    // one.
-                    found = true;
-                } else if (1 >= ptNodeCount) {
-                    // However if we are on the LAST PtNode of this array, and we have NOT shot the
-                    // position we should descend THIS PtNode. So we trick the
-                    // lastCandidatePtNodePos so that we will descend this PtNode, not the previous
-                    // one.
-                    lastCandidatePtNodePos = startPos;
-                    found = true;
-                } else {
-                    // Else, we should continue looking.
-                    found = false;
-                }
-            } else {
-                // Even if we don't have children here, we could still be on the last PtNode of
-                // this array. If this is the case, we should descend the last PtNode that had
-                // children, and their position is already in lastCandidatePtNodePos.
-                found = (1 >= ptNodeCount);
-            }
-
-            if (found) {
-                // Okay, we found the PtNode we should descend. Its position is in
-                // the lastCandidatePtNodePos variable, so we just re-read it.
-                if (0 != lastCandidatePtNodePos) {
-                    const PatriciaTrieReadingUtils::NodeFlags lastFlags =
-                            PatriciaTrieReadingUtils::getFlagsAndAdvancePosition(
-                                    mDictRoot, &lastCandidatePtNodePos);
-                    const int lastChar = PatriciaTrieReadingUtils::getCodePointAndAdvancePosition(
-                            mDictRoot, &lastCandidatePtNodePos);
-                    // We copy all the characters in this PtNode to the buffer
-                    outCodePoints[wordPos] = lastChar;
-                    if (PatriciaTrieReadingUtils::hasMultipleChars(lastFlags)) {
-                        int nextChar = PatriciaTrieReadingUtils::getCodePointAndAdvancePosition(
-                                mDictRoot, &lastCandidatePtNodePos);
-                        int charCount = maxCodePointCount;
-                        while (-1 != nextChar && --charCount > 0) {
-                            outCodePoints[++wordPos] = nextChar;
-                            nextChar = PatriciaTrieReadingUtils::getCodePointAndAdvancePosition(
-                                    mDictRoot, &lastCandidatePtNodePos);
-                        }
-                    }
-                    ++wordPos;
-                    // Now we only need to branch to the children address. Skip the probability if
-                    // it's there, read pos, and break to resume the search at pos.
-                    if (PatriciaTrieReadingUtils::isTerminal(lastFlags)) {
-                        PatriciaTrieReadingUtils::readProbabilityAndAdvancePosition(mDictRoot,
-                                &lastCandidatePtNodePos);
-                    }
-                    pos = PatriciaTrieReadingUtils::readChildrenPositionAndAdvancePosition(
-                            mDictRoot, lastFlags, &lastCandidatePtNodePos);
-                    break;
-                } else {
-                    // Here is a little tricky part: we come here if we found out that all children
-                    // addresses in this PtNode are bigger than the address we are searching for.
-                    // Should we conclude the word is not in the dictionary? No! It could still be
-                    // one of the remaining PtNodes in this array, so we have to keep looking in
-                    // this array until we find it (or we realize it's not there either, in which
-                    // case it's actually not in the dictionary). Pass the end of this PtNode,
-                    // ready to start the next one.
-                    if (PatriciaTrieReadingUtils::hasChildrenInFlags(flags)) {
-                        PatriciaTrieReadingUtils::readChildrenPositionAndAdvancePosition(
-                                mDictRoot, flags, &pos);
-                    }
-                    if (PatriciaTrieReadingUtils::hasShortcutTargets(flags)) {
-                        mShortcutListPolicy.skipAllShortcuts(&pos);
-                    }
-                    if (PatriciaTrieReadingUtils::hasBigrams(flags)) {
-                        if (!mBigramListPolicy.skipAllBigrams(&pos)) {
-                            AKLOGE("Cannot skip bigrams. BufSize: %d, pos: %d.", mDictBufferSize,
-                                    pos);
-                            mIsCorrupted = true;
-                            ASSERT(false);
-                            *outUnigramProbability = NOT_A_PROBABILITY;
-                            return 0;
-                        }
-                    }
-                }
-            } else {
-                // If we did not find it, we should record the last children address for the next
-                // iteration.
-                if (hasChildren) lastCandidatePtNodePos = startPos;
-                // Now skip the end of this PtNode (children pos and the attributes if any) so that
-                // our pos is after the end of this PtNode, at the start of the next one.
-                if (PatriciaTrieReadingUtils::hasChildrenInFlags(flags)) {
-                    PatriciaTrieReadingUtils::readChildrenPositionAndAdvancePosition(
-                            mDictRoot, flags, &pos);
-                }
-                if (PatriciaTrieReadingUtils::hasShortcutTargets(flags)) {
-                    mShortcutListPolicy.skipAllShortcuts(&pos);
-                }
-                if (PatriciaTrieReadingUtils::hasBigrams(flags)) {
-                    if (!mBigramListPolicy.skipAllBigrams(&pos)) {
-                        AKLOGE("Cannot skip bigrams. BufSize: %d, pos: %d.", mDictBufferSize, pos);
-                        mIsCorrupted = true;
-                        ASSERT(false);
-                        *outUnigramProbability = NOT_A_PROBABILITY;
-                        return 0;
-                    }
-                }
-            }
-
-        }
-    }
-    // If we have looked through all the PtNodes and found no match, the ptNodePos is
-    // not the position of a terminal in this dictionary.
-    return 0;
-}
-
-// This function gets the position of the terminal PtNode of the exact matching word in the
-// dictionary. If no match is found, it returns NOT_A_DICT_POS.
-int PatriciaTriePolicy::getTerminalPtNodePositionOfWord(const int *const inWord,
-        const int length, const bool forceLowerCaseSearch) const {
-    DynamicPtReadingHelper readingHelper(&mPtNodeReader, &mPtNodeArrayReader);
-    readingHelper.initWithPtNodeArrayPos(getRootPosition());
-    const int ptNodePos =
-            readingHelper.getTerminalPtNodePositionOfWord(inWord, length, forceLowerCaseSearch);
-    if (readingHelper.isError()) {
-        mIsCorrupted = true;
-        AKLOGE("Dictionary reading error in createAndGetAllChildDicNodes().");
-    }
-    return ptNodePos;
-}
-
-int PatriciaTriePolicy::getProbability(const int unigramProbability,
-        const int bigramProbability) const {
-    // Due to space constraints, the probability for bigrams is approximate - the lower the unigram
-    // probability, the worse the precision. The theoritical maximum error in resulting probability
-    // is 8 - although in the practice it's never bigger than 3 or 4 in very bad cases. This means
-    // that sometimes, we'll see some bigrams interverted here, but it can't get too bad.
-    if (unigramProbability == NOT_A_PROBABILITY) {
-        return NOT_A_PROBABILITY;
-    } else if (bigramProbability == NOT_A_PROBABILITY) {
-        return ProbabilityUtils::backoff(unigramProbability);
-    } else {
-        return ProbabilityUtils::computeProbabilityForBigram(unigramProbability,
-                bigramProbability);
-    }
-}
-
-int PatriciaTriePolicy::getProbabilityOfPtNode(const int *const prevWordsPtNodePos,
-        const int ptNodePos) const {
-    if (ptNodePos == NOT_A_DICT_POS) {
-        return NOT_A_PROBABILITY;
-    }
-    const PtNodeParams ptNodeParams =
-            mPtNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos);
-    if (ptNodeParams.isNotAWord() || ptNodeParams.isBlacklisted()) {
-        // If this is not a word, or if it's a blacklisted entry, it should behave as
-        // having no probability outside of the suggestion process (where it should be used
-        // for shortcuts).
-        return NOT_A_PROBABILITY;
-    }
-    if (prevWordsPtNodePos) {
-        const int bigramsPosition = getBigramsPositionOfPtNode(prevWordsPtNodePos[0]);
-        BinaryDictionaryBigramsIterator bigramsIt(&mBigramListPolicy, bigramsPosition);
-        while (bigramsIt.hasNext()) {
-            bigramsIt.next();
-            if (bigramsIt.getBigramPos() == ptNodePos
-                    && bigramsIt.getProbability() != NOT_A_PROBABILITY) {
-                return getProbability(ptNodeParams.getProbability(), bigramsIt.getProbability());
-            }
-        }
-        return NOT_A_PROBABILITY;
-    }
-    return getProbability(ptNodeParams.getProbability(), NOT_A_PROBABILITY);
-}
-
-void PatriciaTriePolicy::iterateNgramEntries(const int *const prevWordsPtNodePos,
-        NgramListener *const listener) const {
-    if (!prevWordsPtNodePos) {
-        return;
-    }
-    const int bigramsPosition = getBigramsPositionOfPtNode(prevWordsPtNodePos[0]);
-    BinaryDictionaryBigramsIterator bigramsIt(&mBigramListPolicy, bigramsPosition);
-    while (bigramsIt.hasNext()) {
-        bigramsIt.next();
-        listener->onVisitEntry(bigramsIt.getProbability(), bigramsIt.getBigramPos());
-    }
-}
-
-int PatriciaTriePolicy::getShortcutPositionOfPtNode(const int ptNodePos) const {
-    if (ptNodePos == NOT_A_DICT_POS) {
-        return NOT_A_DICT_POS;
-    }
-    return mPtNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos).getShortcutPos();
-}
-
-int PatriciaTriePolicy::getBigramsPositionOfPtNode(const int ptNodePos) const {
-    if (ptNodePos == NOT_A_DICT_POS) {
-        return NOT_A_DICT_POS;
-    }
-    return mPtNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos).getBigramsPos();
-}
-
-int PatriciaTriePolicy::createAndGetLeavingChildNode(const DicNode *const dicNode,
-        const int ptNodePos, DicNodeVector *childDicNodes) const {
-    PatriciaTrieReadingUtils::NodeFlags flags;
-    int mergedNodeCodePointCount = 0;
-    int mergedNodeCodePoints[MAX_WORD_LENGTH];
-    int probability = NOT_A_PROBABILITY;
-    int childrenPos = NOT_A_DICT_POS;
-    int shortcutPos = NOT_A_DICT_POS;
-    int bigramPos = NOT_A_DICT_POS;
-    int siblingPos = NOT_A_DICT_POS;
-    PatriciaTrieReadingUtils::readPtNodeInfo(mDictRoot, ptNodePos, getShortcutsStructurePolicy(),
-            &mBigramListPolicy, &flags, &mergedNodeCodePointCount, mergedNodeCodePoints,
-            &probability, &childrenPos, &shortcutPos, &bigramPos, &siblingPos);
-    // Skip PtNodes don't start with Unicode code point because they represent non-word information.
-    if (CharUtils::isInUnicodeSpace(mergedNodeCodePoints[0])) {
-        childDicNodes->pushLeavingChild(dicNode, ptNodePos, childrenPos, probability,
-                PatriciaTrieReadingUtils::isTerminal(flags),
-                PatriciaTrieReadingUtils::hasChildrenInFlags(flags),
-                PatriciaTrieReadingUtils::isBlacklisted(flags)
-                        || PatriciaTrieReadingUtils::isNotAWord(flags),
-                mergedNodeCodePointCount, mergedNodeCodePoints);
-    }
-    return siblingPos;
-}
-
-const WordProperty PatriciaTriePolicy::getWordProperty(const int *const codePoints,
-        const int codePointCount) const {
-    const int ptNodePos = getTerminalPtNodePositionOfWord(codePoints, codePointCount,
-            false /* forceLowerCaseSearch */);
-    if (ptNodePos == NOT_A_DICT_POS) {
-        AKLOGE("getWordProperty was called for invalid word.");
-        return WordProperty();
-    }
-    const PtNodeParams ptNodeParams =
-            mPtNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos);
-    std::vector<int> codePointVector(ptNodeParams.getCodePoints(),
-            ptNodeParams.getCodePoints() + ptNodeParams.getCodePointCount());
-    // Fetch bigram information.
-    std::vector<BigramProperty> bigrams;
-    const int bigramListPos = getBigramsPositionOfPtNode(ptNodePos);
-    int bigramWord1CodePoints[MAX_WORD_LENGTH];
-    BinaryDictionaryBigramsIterator bigramsIt(&mBigramListPolicy, bigramListPos);
-    while (bigramsIt.hasNext()) {
-        // Fetch the next bigram information and forward the iterator.
-        bigramsIt.next();
-        // Skip the entry if the entry has been deleted. This never happens for ver2 dicts.
-        if (bigramsIt.getBigramPos() != NOT_A_DICT_POS) {
-            int word1Probability = NOT_A_PROBABILITY;
-            const int word1CodePointCount = getCodePointsAndProbabilityAndReturnCodePointCount(
-                    bigramsIt.getBigramPos(), MAX_WORD_LENGTH, bigramWord1CodePoints,
-                    &word1Probability);
-            const std::vector<int> word1(bigramWord1CodePoints,
-                    bigramWord1CodePoints + word1CodePointCount);
-            const int probability = getProbability(word1Probability, bigramsIt.getProbability());
-            bigrams.emplace_back(&word1, probability,
-                    NOT_A_TIMESTAMP /* timestamp */, 0 /* level */, 0 /* count */);
-        }
-    }
-    // Fetch shortcut information.
-    std::vector<UnigramProperty::ShortcutProperty> shortcuts;
-    int shortcutPos = getShortcutPositionOfPtNode(ptNodePos);
-    if (shortcutPos != NOT_A_DICT_POS) {
-        int shortcutTargetCodePoints[MAX_WORD_LENGTH];
-        ShortcutListReadingUtils::getShortcutListSizeAndForwardPointer(mDictRoot, &shortcutPos);
-        bool hasNext = true;
-        while (hasNext) {
-            const ShortcutListReadingUtils::ShortcutFlags shortcutFlags =
-                    ShortcutListReadingUtils::getFlagsAndForwardPointer(mDictRoot, &shortcutPos);
-            hasNext = ShortcutListReadingUtils::hasNext(shortcutFlags);
-            const int shortcutTargetLength = ShortcutListReadingUtils::readShortcutTarget(
-                    mDictRoot, MAX_WORD_LENGTH, shortcutTargetCodePoints, &shortcutPos);
-            const std::vector<int> shortcutTarget(shortcutTargetCodePoints,
-                    shortcutTargetCodePoints + shortcutTargetLength);
-            const int shortcutProbability =
-                    ShortcutListReadingUtils::getProbabilityFromFlags(shortcutFlags);
-            shortcuts.emplace_back(&shortcutTarget, shortcutProbability);
-        }
-    }
-    const UnigramProperty unigramProperty(ptNodeParams.representsBeginningOfSentence(),
-            ptNodeParams.isNotAWord(), ptNodeParams.isBlacklisted(), ptNodeParams.getProbability(),
-            NOT_A_TIMESTAMP /* timestamp */, 0 /* level */, 0 /* count */, &shortcuts);
-    return WordProperty(&codePointVector, &unigramProperty, &bigrams);
-}
-
-int PatriciaTriePolicy::getNextWordAndNextToken(const int token, int *const outCodePoints,
-        int *const outCodePointCount) {
-    *outCodePointCount = 0;
-    if (token == 0) {
-        // Start iterating the dictionary.
-        mTerminalPtNodePositionsForIteratingWords.clear();
-        DynamicPtReadingHelper::TraversePolicyToGetAllTerminalPtNodePositions traversePolicy(
-                &mTerminalPtNodePositionsForIteratingWords);
-        DynamicPtReadingHelper readingHelper(&mPtNodeReader, &mPtNodeArrayReader);
-        readingHelper.initWithPtNodeArrayPos(getRootPosition());
-        readingHelper.traverseAllPtNodesInPostorderDepthFirstManner(&traversePolicy);
-    }
-    const int terminalPtNodePositionsVectorSize =
-            static_cast<int>(mTerminalPtNodePositionsForIteratingWords.size());
-    if (token < 0 || token >= terminalPtNodePositionsVectorSize) {
-        AKLOGE("Given token %d is invalid.", token);
-        return 0;
-    }
-    const int terminalPtNodePos = mTerminalPtNodePositionsForIteratingWords[token];
-    int unigramProbability = NOT_A_PROBABILITY;
-    *outCodePointCount = getCodePointsAndProbabilityAndReturnCodePointCount(terminalPtNodePos,
-            MAX_WORD_LENGTH, outCodePoints, &unigramProbability);
-    const int nextToken = token + 1;
-    if (nextToken >= terminalPtNodePositionsVectorSize) {
-        // All words have been iterated.
-        mTerminalPtNodePositionsForIteratingWords.clear();
-        return 0;
-    }
-    return nextToken;
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.h
deleted file mode 100644
index 70351d1..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_PATRICIA_TRIE_POLICY_H
-#define LATINIME_PATRICIA_TRIE_POLICY_H
-
-#include <cstdint>
-#include <vector>
-
-#include "defines.h"
-#include "suggest/core/policy/dictionary_structure_with_buffer_policy.h"
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/structure/v2/bigram/bigram_list_policy.h"
-#include "suggest/policyimpl/dictionary/structure/v2/shortcut/shortcut_list_policy.h"
-#include "suggest/policyimpl/dictionary/structure/v2/ver2_patricia_trie_node_reader.h"
-#include "suggest/policyimpl/dictionary/structure/v2/ver2_pt_node_array_reader.h"
-#include "suggest/policyimpl/dictionary/utils/format_utils.h"
-#include "suggest/policyimpl/dictionary/utils/mmapped_buffer.h"
-#include "utils/byte_array_view.h"
-
-namespace latinime {
-
-class DicNode;
-class DicNodeVector;
-
-class PatriciaTriePolicy : public DictionaryStructureWithBufferPolicy {
- public:
-    PatriciaTriePolicy(MmappedBuffer::MmappedBufferPtr mmappedBuffer)
-            : mMmappedBuffer(std::move(mmappedBuffer)),
-              mHeaderPolicy(mMmappedBuffer->getReadOnlyByteArrayView().data(),
-                      FormatUtils::VERSION_2),
-              mDictRoot(mMmappedBuffer->getReadOnlyByteArrayView().data()
-                      + mHeaderPolicy.getSize()),
-              mDictBufferSize(mMmappedBuffer->getReadOnlyByteArrayView().size()
-                      - mHeaderPolicy.getSize()),
-              mBigramListPolicy(mDictRoot, mDictBufferSize), mShortcutListPolicy(mDictRoot),
-              mPtNodeReader(mDictRoot, mDictBufferSize, &mBigramListPolicy, &mShortcutListPolicy),
-              mPtNodeArrayReader(mDictRoot, mDictBufferSize),
-              mTerminalPtNodePositionsForIteratingWords(), mIsCorrupted(false) {}
-
-    AK_FORCE_INLINE int getRootPosition() const {
-        return 0;
-    }
-
-    void createAndGetAllChildDicNodes(const DicNode *const dicNode,
-            DicNodeVector *const childDicNodes) const;
-
-    int getCodePointsAndProbabilityAndReturnCodePointCount(
-            const int terminalNodePos, const int maxCodePointCount, int *const outCodePoints,
-            int *const outUnigramProbability) const;
-
-    int getTerminalPtNodePositionOfWord(const int *const inWord,
-            const int length, const bool forceLowerCaseSearch) const;
-
-    int getProbability(const int unigramProbability, const int bigramProbability) const;
-
-    int getProbabilityOfPtNode(const int *const prevWordsPtNodePos, const int ptNodePos) const;
-
-    void iterateNgramEntries(const int *const prevWordsPtNodePos,
-            NgramListener *const listener) const;
-
-    int getShortcutPositionOfPtNode(const int ptNodePos) const;
-
-    const DictionaryHeaderStructurePolicy *getHeaderStructurePolicy() const {
-        return &mHeaderPolicy;
-    }
-
-    const DictionaryShortcutsStructurePolicy *getShortcutsStructurePolicy() const {
-        return &mShortcutListPolicy;
-    }
-
-    bool addUnigramEntry(const int *const word, const int length,
-            const UnigramProperty *const unigramProperty) {
-        // This method should not be called for non-updatable dictionary.
-        AKLOGI("Warning: addUnigramEntry() is called for non-updatable dictionary.");
-        return false;
-    }
-
-    bool removeUnigramEntry(const int *const word, const int length) {
-        // This method should not be called for non-updatable dictionary.
-        AKLOGI("Warning: removeUnigramEntry() is called for non-updatable dictionary.");
-        return false;
-    }
-
-    bool addNgramEntry(const PrevWordsInfo *const prevWordsInfo,
-            const BigramProperty *const bigramProperty) {
-        // This method should not be called for non-updatable dictionary.
-        AKLOGI("Warning: addNgramEntry() is called for non-updatable dictionary.");
-        return false;
-    }
-
-    bool removeNgramEntry(const PrevWordsInfo *const prevWordsInfo, const int *const word,
-            const int length) {
-        // This method should not be called for non-updatable dictionary.
-        AKLOGI("Warning: removeNgramEntry() is called for non-updatable dictionary.");
-        return false;
-    }
-
-    bool flush(const char *const filePath) {
-        // This method should not be called for non-updatable dictionary.
-        AKLOGI("Warning: flush() is called for non-updatable dictionary.");
-        return false;
-    }
-
-    bool flushWithGC(const char *const filePath) {
-        // This method should not be called for non-updatable dictionary.
-        AKLOGI("Warning: flushWithGC() is called for non-updatable dictionary.");
-        return false;
-    }
-
-    bool needsToRunGC(const bool mindsBlockByGC) const {
-        // This method should not be called for non-updatable dictionary.
-        AKLOGI("Warning: needsToRunGC() is called for non-updatable dictionary.");
-        return false;
-    }
-
-    void getProperty(const char *const query, const int queryLength, char *const outResult,
-            const int maxResultLength) {
-        // getProperty is not supported for this class.
-        if (maxResultLength > 0) {
-            outResult[0] = '\0';
-        }
-    }
-
-    const WordProperty getWordProperty(const int *const codePoints,
-            const int codePointCount) const;
-
-    int getNextWordAndNextToken(const int token, int *const outCodePoints,
-            int *const outCodePointCount);
-
-    bool isCorrupted() const {
-        return mIsCorrupted;
-    }
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(PatriciaTriePolicy);
-
-    const MmappedBuffer::MmappedBufferPtr mMmappedBuffer;
-    const HeaderPolicy mHeaderPolicy;
-    const uint8_t *const mDictRoot;
-    const int mDictBufferSize;
-    const BigramListPolicy mBigramListPolicy;
-    const ShortcutListPolicy mShortcutListPolicy;
-    const Ver2ParticiaTrieNodeReader mPtNodeReader;
-    const Ver2PtNodeArrayReader mPtNodeArrayReader;
-    std::vector<int> mTerminalPtNodePositionsForIteratingWords;
-    mutable bool mIsCorrupted;
-
-    int getBigramsPositionOfPtNode(const int ptNodePos) const;
-    int createAndGetLeavingChildNode(const DicNode *const dicNode, const int ptNodePos,
-            DicNodeVector *const childDicNodes) const;
-};
-} // namespace latinime
-#endif // LATINIME_PATRICIA_TRIE_POLICY_H
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/shortcut/shortcut_list_policy.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v2/shortcut/shortcut_list_policy.h
deleted file mode 100644
index 8e16ccc..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/shortcut/shortcut_list_policy.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_SHORTCUT_LIST_POLICY_H
-#define LATINIME_SHORTCUT_LIST_POLICY_H
-
-#include <cstdint>
-
-#include "defines.h"
-#include "suggest/core/policy/dictionary_shortcuts_structure_policy.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.h"
-
-namespace latinime {
-
-class ShortcutListPolicy : public DictionaryShortcutsStructurePolicy {
- public:
-    explicit ShortcutListPolicy(const uint8_t *const shortcutBuf)
-            : mShortcutsBuf(shortcutBuf) {}
-
-    ~ShortcutListPolicy() {}
-
-    int getStartPos(const int pos) const {
-        if (pos == NOT_A_DICT_POS) {
-            return NOT_A_DICT_POS;
-        }
-        int listPos = pos;
-        ShortcutListReadingUtils::getShortcutListSizeAndForwardPointer(mShortcutsBuf, &listPos);
-        return listPos;
-    }
-
-    void getNextShortcut(const int maxCodePointCount, int *const outCodePoint,
-            int *const outCodePointCount, bool *const outIsWhitelist, bool *const outHasNext,
-            int *const pos) const {
-        const ShortcutListReadingUtils::ShortcutFlags flags =
-                ShortcutListReadingUtils::getFlagsAndForwardPointer(mShortcutsBuf, pos);
-        if (outHasNext) {
-            *outHasNext = ShortcutListReadingUtils::hasNext(flags);
-        }
-        if (outIsWhitelist) {
-            *outIsWhitelist = ShortcutListReadingUtils::isWhitelist(flags);
-        }
-        if (outCodePoint) {
-            *outCodePointCount = ShortcutListReadingUtils::readShortcutTarget(
-                        mShortcutsBuf, maxCodePointCount, outCodePoint, pos);
-        }
-    }
-
-    void skipAllShortcuts(int *const pos) const {
-        const int shortcutListSize = ShortcutListReadingUtils
-                ::getShortcutListSizeAndForwardPointer(mShortcutsBuf, pos);
-        *pos += shortcutListSize;
-    }
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(ShortcutListPolicy);
-
-    const uint8_t *const mShortcutsBuf;
-};
-} // namespace latinime
-#endif // LATINIME_SHORTCUT_LIST_POLICY_H
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_patricia_trie_node_reader.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_patricia_trie_node_reader.cpp
deleted file mode 100644
index c1e9387..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_patricia_trie_node_reader.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/v2/ver2_patricia_trie_node_reader.h"
-
-#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
-
-namespace latinime {
-
-const PtNodeParams Ver2ParticiaTrieNodeReader::fetchPtNodeParamsInBufferFromPtNodePos(
-        const int ptNodePos) const {
-    if (ptNodePos < 0 || ptNodePos >= mDictSize) {
-        // Reading invalid position because of bug or broken dictionary.
-        AKLOGE("Fetching PtNode info from invalid dictionary position: %d, dictionary size: %d",
-                ptNodePos, mDictSize);
-        ASSERT(false);
-        return PtNodeParams();
-    }
-    PatriciaTrieReadingUtils::NodeFlags flags;
-    int mergedNodeCodePointCount = 0;
-    int mergedNodeCodePoints[MAX_WORD_LENGTH];
-    int probability = NOT_A_PROBABILITY;
-    int childrenPos = NOT_A_DICT_POS;
-    int shortcutPos = NOT_A_DICT_POS;
-    int bigramPos = NOT_A_DICT_POS;
-    int siblingPos = NOT_A_DICT_POS;
-    PatriciaTrieReadingUtils::readPtNodeInfo(mDictBuffer, ptNodePos, mShortuctPolicy,
-            mBigramPolicy, &flags, &mergedNodeCodePointCount, mergedNodeCodePoints, &probability,
-            &childrenPos, &shortcutPos, &bigramPos, &siblingPos);
-    if (mergedNodeCodePointCount <= 0) {
-        AKLOGE("Empty PtNode is not allowed. Code point count: %d", mergedNodeCodePointCount);
-        ASSERT(false);
-        return PtNodeParams();
-    }
-    return PtNodeParams(ptNodePos, flags, mergedNodeCodePointCount, mergedNodeCodePoints,
-            probability, childrenPos, shortcutPos, bigramPos, siblingPos);
-}
-
-}
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_patricia_trie_node_reader.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_patricia_trie_node_reader.h
deleted file mode 100644
index f0725b6..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_patricia_trie_node_reader.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_VER2_PATRICIA_TRIE_NODE_READER_H
-#define LATINIME_VER2_PATRICIA_TRIE_NODE_READER_H
-
-#include <cstdint>
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_reader.h"
-
-namespace latinime {
-
-class DictionaryBigramsStructurePolicy;
-class DictionaryShortcutsStructurePolicy;
-
-class Ver2ParticiaTrieNodeReader : public PtNodeReader {
- public:
-    Ver2ParticiaTrieNodeReader(const uint8_t *const dictBuffer, const int dictSize,
-            const DictionaryBigramsStructurePolicy *const bigramPolicy,
-            const DictionaryShortcutsStructurePolicy *const shortcutPolicy)
-            : mDictBuffer(dictBuffer), mDictSize(dictSize), mBigramPolicy(bigramPolicy),
-              mShortuctPolicy(shortcutPolicy) {}
-
-    virtual const PtNodeParams fetchPtNodeParamsInBufferFromPtNodePos(const int ptNodePos) const;
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(Ver2ParticiaTrieNodeReader);
-
-    const uint8_t *const mDictBuffer;
-    const int mDictSize;
-    const DictionaryBigramsStructurePolicy *const mBigramPolicy;
-    const DictionaryShortcutsStructurePolicy *const mShortuctPolicy;
-};
-} // namespace latinime
-#endif /* LATINIME_VER2_PATRICIA_TRIE_NODE_READER_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_pt_node_array_reader.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_pt_node_array_reader.cpp
deleted file mode 100644
index b46617d..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_pt_node_array_reader.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/v2/ver2_pt_node_array_reader.h"
-
-#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
-
-namespace latinime {
-
-bool Ver2PtNodeArrayReader::readPtNodeArrayInfoAndReturnIfValid(const int ptNodeArrayPos,
-        int *const outPtNodeCount, int *const outFirstPtNodePos) const {
-    if (ptNodeArrayPos < 0 || ptNodeArrayPos >= mDictSize) {
-        // Reading invalid position because of a bug or a broken dictionary.
-        AKLOGE("Reading PtNode array info from invalid dictionary position: %d, dict size: %d",
-                ptNodeArrayPos, mDictSize);
-        ASSERT(false);
-        return false;
-    }
-    int readingPos = ptNodeArrayPos;
-    const int ptNodeCountInArray = PatriciaTrieReadingUtils::getPtNodeArraySizeAndAdvancePosition(
-            mDictBuffer, &readingPos);
-    *outPtNodeCount = ptNodeCountInArray;
-    *outFirstPtNodePos = readingPos;
-    return true;
-}
-
-bool Ver2PtNodeArrayReader::readForwardLinkAndReturnIfValid(const int forwordLinkPos,
-        int *const outNextPtNodeArrayPos) const {
-    if (forwordLinkPos < 0 || forwordLinkPos >= mDictSize) {
-        // Reading invalid position because of bug or broken dictionary.
-        AKLOGE("Reading forward link from invalid dictionary position: %d, dict size: %d",
-                forwordLinkPos, mDictSize);
-        ASSERT(false);
-        return false;
-    }
-    // Ver2 dicts don't have forward links.
-    *outNextPtNodeArrayPos = NOT_A_DICT_POS;
-    return true;
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_pt_node_array_reader.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_pt_node_array_reader.h
deleted file mode 100644
index 5482721..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v2/ver2_pt_node_array_reader.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_VER2_PT_NODE_ARRAY_READER_H
-#define LATINIME_VER2_PT_NODE_ARRAY_READER_H
-
-#include <cstdint>
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_array_reader.h"
-
-namespace latinime {
-
-class Ver2PtNodeArrayReader : public PtNodeArrayReader {
- public:
-    Ver2PtNodeArrayReader(const uint8_t *const dictBuffer, const int dictSize)
-            : mDictBuffer(dictBuffer), mDictSize(dictSize) {};
-
-    virtual bool readPtNodeArrayInfoAndReturnIfValid(const int ptNodeArrayPos,
-            int *const outPtNodeCount, int *const outFirstPtNodePos) const;
-    virtual bool readForwardLinkAndReturnIfValid(const int forwordLinkPos,
-            int *const outNextPtNodeArrayPos) const;
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(Ver2PtNodeArrayReader);
-
-    const uint8_t *const mDictBuffer;
-    const int mDictSize;
-};
-} // namespace latinime
-#endif /* LATINIME_VER2_PT_NODE_ARRAY_READER_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/bigram/ver4_bigram_list_policy.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/bigram/ver4_bigram_list_policy.cpp
deleted file mode 100644
index 08dc107..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/bigram/ver4_bigram_list_policy.cpp
+++ /dev/null
@@ -1,282 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/v4/bigram/ver4_bigram_list_policy.h"
-
-#include "suggest/core/dictionary/property/bigram_property.h"
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/bigram/bigram_list_read_write_utils.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h"
-
-namespace latinime {
-
-void Ver4BigramListPolicy::getNextBigram(int *const outBigramPos, int *const outProbability,
-        bool *const outHasNext, int *const bigramEntryPos) const {
-    const BigramEntry bigramEntry =
-            mBigramDictContent->getBigramEntryAndAdvancePosition(bigramEntryPos);
-    if (outBigramPos) {
-        // Lookup target PtNode position.
-        *outBigramPos = mTerminalPositionLookupTable->getTerminalPtNodePosition(
-                bigramEntry.getTargetTerminalId());
-    }
-    if (outProbability) {
-        if (bigramEntry.hasHistoricalInfo()) {
-            *outProbability =
-                    ForgettingCurveUtils::decodeProbability(bigramEntry.getHistoricalInfo(),
-                            mHeaderPolicy);
-        } else {
-            *outProbability = bigramEntry.getProbability();
-        }
-    }
-    if (outHasNext) {
-        *outHasNext = bigramEntry.hasNext();
-    }
-}
-
-bool Ver4BigramListPolicy::addNewEntry(const int terminalId, const int newTargetTerminalId,
-        const BigramProperty *const bigramProperty, bool *const outAddedNewEntry) {
-    // 1. The word has no bigrams yet.
-    // 2. The word has bigrams, and there is the target in the list.
-    // 3. The word has bigrams, and there is an invalid entry that can be reclaimed.
-    // 4. The word has bigrams. We have to append new bigram entry to the list.
-    // 5. Same as 4, but the list is the last entry of the content file.
-    if (outAddedNewEntry) {
-        *outAddedNewEntry = false;
-    }
-    const int bigramListPos = mBigramDictContent->getBigramListHeadPos(terminalId);
-    if (bigramListPos == NOT_A_DICT_POS) {
-        // Case 1. PtNode that doesn't have a bigram list.
-        // Create new bigram list.
-        if (!mBigramDictContent->createNewBigramList(terminalId)) {
-            return false;
-        }
-        const BigramEntry newBigramEntry(false /* hasNext */, NOT_A_PROBABILITY,
-                newTargetTerminalId);
-        const BigramEntry bigramEntryToWrite = createUpdatedBigramEntryFrom(&newBigramEntry,
-                bigramProperty);
-        // Write an entry.
-        int writingPos =  mBigramDictContent->getBigramListHeadPos(terminalId);
-        if (!mBigramDictContent->writeBigramEntryAndAdvancePosition(&bigramEntryToWrite,
-                &writingPos)) {
-            AKLOGE("Cannot write bigram entry. pos: %d.", writingPos);
-            return false;
-        }
-        if (!mBigramDictContent->writeTerminator(writingPos)) {
-            AKLOGE("Cannot write bigram list terminator. pos: %d.", writingPos);
-            return false;
-        }
-        if (outAddedNewEntry) {
-            *outAddedNewEntry = true;
-        }
-        return true;
-    }
-
-    int tailEntryPos = NOT_A_DICT_POS;
-    const int entryPosToUpdate = getEntryPosToUpdate(newTargetTerminalId, bigramListPos,
-            &tailEntryPos);
-    if (entryPosToUpdate == NOT_A_DICT_POS) {
-        // Case 4, 5. Add new entry to the bigram list.
-        const int contentTailPos = mBigramDictContent->getContentTailPos();
-        // If the tail entry is at the tail of content buffer, the new entry can be written without
-        // link (Case 5).
-        const bool canAppendEntry =
-                contentTailPos == tailEntryPos + mBigramDictContent->getBigramEntrySize();
-        const int newEntryPos = canAppendEntry ? tailEntryPos : contentTailPos;
-        int writingPos = newEntryPos;
-        // Write new entry at the tail position of the bigram content.
-        const BigramEntry newBigramEntry(false /* hasNext */, NOT_A_PROBABILITY,
-                newTargetTerminalId);
-        const BigramEntry bigramEntryToWrite = createUpdatedBigramEntryFrom(
-                &newBigramEntry, bigramProperty);
-        if (!mBigramDictContent->writeBigramEntryAndAdvancePosition(&bigramEntryToWrite,
-                &writingPos)) {
-            AKLOGE("Cannot write bigram entry. pos: %d.", writingPos);
-            return false;
-        }
-        if (!mBigramDictContent->writeTerminator(writingPos)) {
-            AKLOGE("Cannot write bigram list terminator. pos: %d.", writingPos);
-            return false;
-        }
-        if (!canAppendEntry) {
-            // Update link of the current tail entry.
-            if (!mBigramDictContent->writeLink(newEntryPos, tailEntryPos)) {
-                AKLOGE("Cannot update bigram entry link. pos: %d, linked entry pos: %d.",
-                        tailEntryPos, newEntryPos);
-                return false;
-            }
-        }
-        if (outAddedNewEntry) {
-            *outAddedNewEntry = true;
-        }
-        return true;
-    }
-
-    // Case 2. Overwrite the existing entry. Case 3. Reclaim and reuse the existing invalid entry.
-    const BigramEntry originalBigramEntry = mBigramDictContent->getBigramEntry(entryPosToUpdate);
-    if (!originalBigramEntry.isValid()) {
-        // Case 3. Reuse the existing invalid entry. outAddedNewEntry is false when an existing
-        // entry is updated.
-        if (outAddedNewEntry) {
-            *outAddedNewEntry = true;
-        }
-    }
-    const BigramEntry updatedBigramEntry =
-            originalBigramEntry.updateTargetTerminalIdAndGetEntry(newTargetTerminalId);
-    const BigramEntry bigramEntryToWrite = createUpdatedBigramEntryFrom(
-            &updatedBigramEntry, bigramProperty);
-    return mBigramDictContent->writeBigramEntry(&bigramEntryToWrite, entryPosToUpdate);
-}
-
-bool Ver4BigramListPolicy::removeEntry(const int terminalId, const int targetTerminalId) {
-    const int bigramListPos = mBigramDictContent->getBigramListHeadPos(terminalId);
-    if (bigramListPos == NOT_A_DICT_POS) {
-        // Bigram list doesn't exist.
-        return false;
-    }
-    const int entryPosToUpdate = getEntryPosToUpdate(targetTerminalId, bigramListPos,
-            nullptr /* outTailEntryPos */);
-    if (entryPosToUpdate == NOT_A_DICT_POS) {
-        // Bigram entry doesn't exist.
-        return false;
-    }
-    const BigramEntry bigramEntry = mBigramDictContent->getBigramEntry(entryPosToUpdate);
-    if (targetTerminalId != bigramEntry.getTargetTerminalId()) {
-        // Bigram entry doesn't exist.
-        return false;
-    }
-    // Remove bigram entry by marking it as invalid entry and overwriting the original entry.
-    const BigramEntry updatedBigramEntry = bigramEntry.getInvalidatedEntry();
-    return mBigramDictContent->writeBigramEntry(&updatedBigramEntry, entryPosToUpdate);
-}
-
-bool Ver4BigramListPolicy::updateAllBigramEntriesAndDeleteUselessEntries(const int terminalId,
-        int *const outBigramCount) {
-    const int bigramListPos = mBigramDictContent->getBigramListHeadPos(terminalId);
-    if (bigramListPos == NOT_A_DICT_POS) {
-        // Bigram list doesn't exist.
-        return true;
-    }
-    bool hasNext = true;
-    int readingPos = bigramListPos;
-    while (hasNext) {
-        const BigramEntry bigramEntry =
-                mBigramDictContent->getBigramEntryAndAdvancePosition(&readingPos);
-        const int entryPos = readingPos - mBigramDictContent->getBigramEntrySize();
-        hasNext = bigramEntry.hasNext();
-        if (!bigramEntry.isValid()) {
-            continue;
-        }
-        const int targetPtNodePos = mTerminalPositionLookupTable->getTerminalPtNodePosition(
-                bigramEntry.getTargetTerminalId());
-        if (targetPtNodePos == NOT_A_DICT_POS) {
-            // Invalidate bigram entry.
-            const BigramEntry updatedBigramEntry = bigramEntry.getInvalidatedEntry();
-            if (!mBigramDictContent->writeBigramEntry(&updatedBigramEntry, entryPos)) {
-                return false;
-            }
-        } else if (bigramEntry.hasHistoricalInfo()) {
-            const HistoricalInfo historicalInfo = ForgettingCurveUtils::createHistoricalInfoToSave(
-                    bigramEntry.getHistoricalInfo(), mHeaderPolicy);
-            if (ForgettingCurveUtils::needsToKeep(&historicalInfo, mHeaderPolicy)) {
-                const BigramEntry updatedBigramEntry =
-                        bigramEntry.updateHistoricalInfoAndGetEntry(&historicalInfo);
-                if (!mBigramDictContent->writeBigramEntry(&updatedBigramEntry, entryPos)) {
-                    return false;
-                }
-                *outBigramCount += 1;
-            } else {
-                // Remove entry.
-                const BigramEntry updatedBigramEntry = bigramEntry.getInvalidatedEntry();
-                if (!mBigramDictContent->writeBigramEntry(&updatedBigramEntry, entryPos)) {
-                    return false;
-                }
-            }
-        } else {
-            *outBigramCount += 1;
-        }
-    }
-    return true;
-}
-
-int Ver4BigramListPolicy::getBigramEntryConut(const int terminalId) {
-    const int bigramListPos = mBigramDictContent->getBigramListHeadPos(terminalId);
-    if (bigramListPos == NOT_A_DICT_POS) {
-        // Bigram list doesn't exist.
-        return 0;
-    }
-    int bigramCount = 0;
-    bool hasNext = true;
-    int readingPos = bigramListPos;
-    while (hasNext) {
-        const BigramEntry bigramEntry =
-                mBigramDictContent->getBigramEntryAndAdvancePosition(&readingPos);
-        hasNext = bigramEntry.hasNext();
-        if (bigramEntry.isValid()) {
-            bigramCount++;
-        }
-    }
-    return bigramCount;
-}
-
-int Ver4BigramListPolicy::getEntryPosToUpdate(const int targetTerminalIdToFind,
-        const int bigramListPos, int *const outTailEntryPos) const {
-    if (outTailEntryPos) {
-        *outTailEntryPos = NOT_A_DICT_POS;
-    }
-    int invalidEntryPos = NOT_A_DICT_POS;
-    int readingPos = bigramListPos;
-    while (true) {
-        const BigramEntry bigramEntry =
-                mBigramDictContent->getBigramEntryAndAdvancePosition(&readingPos);
-        const int entryPos = readingPos - mBigramDictContent->getBigramEntrySize();
-        if (!bigramEntry.hasNext()) {
-            if (outTailEntryPos) {
-                *outTailEntryPos = entryPos;
-            }
-            break;
-        }
-        if (bigramEntry.getTargetTerminalId() == targetTerminalIdToFind) {
-            // Entry with same target is found.
-            return entryPos;
-        } else if (!bigramEntry.isValid()) {
-            // Invalid entry that can be reused is found.
-            invalidEntryPos = entryPos;
-        }
-    }
-    return invalidEntryPos;
-}
-
-const BigramEntry Ver4BigramListPolicy::createUpdatedBigramEntryFrom(
-        const BigramEntry *const originalBigramEntry,
-        const BigramProperty *const bigramProperty) const {
-    // TODO: Consolidate historical info and probability.
-    if (mHeaderPolicy->hasHistoricalInfoOfWords()) {
-        const HistoricalInfo historicalInfoForUpdate(bigramProperty->getTimestamp(),
-                bigramProperty->getLevel(), bigramProperty->getCount());
-        const HistoricalInfo updatedHistoricalInfo =
-                ForgettingCurveUtils::createUpdatedHistoricalInfo(
-                        originalBigramEntry->getHistoricalInfo(), bigramProperty->getProbability(),
-                        &historicalInfoForUpdate, mHeaderPolicy);
-        return originalBigramEntry->updateHistoricalInfoAndGetEntry(&updatedHistoricalInfo);
-    } else {
-        return originalBigramEntry->updateProbabilityAndGetEntry(bigramProperty->getProbability());
-    }
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/bigram/ver4_bigram_list_policy.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/bigram/ver4_bigram_list_policy.h
deleted file mode 100644
index 4b3bb37..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/bigram/ver4_bigram_list_policy.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_VER4_BIGRAM_LIST_POLICY_H
-#define LATINIME_VER4_BIGRAM_LIST_POLICY_H
-
-#include "defines.h"
-#include "suggest/core/policy/dictionary_bigrams_structure_policy.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/bigram_entry.h"
-
-namespace latinime {
-
-class BigramDictContent;
-class BigramProperty;
-class HeaderPolicy;
-class TerminalPositionLookupTable;
-
-class Ver4BigramListPolicy : public DictionaryBigramsStructurePolicy {
- public:
-    Ver4BigramListPolicy(BigramDictContent *const bigramDictContent,
-            const TerminalPositionLookupTable *const terminalPositionLookupTable,
-            const HeaderPolicy *const headerPolicy)
-            : mBigramDictContent(bigramDictContent),
-              mTerminalPositionLookupTable(terminalPositionLookupTable),
-              mHeaderPolicy(headerPolicy) {}
-
-    void getNextBigram(int *const outBigramPos, int *const outProbability,
-            bool *const outHasNext, int *const bigramEntryPos) const;
-
-    bool skipAllBigrams(int *const pos) const {
-        // Do nothing because we don't need to skip bigram lists in ver4 dictionaries.
-        return true;
-    }
-
-    bool addNewEntry(const int terminalId, const int newTargetTerminalId,
-            const BigramProperty *const bigramProperty, bool *const outAddedNewEntry);
-
-    bool removeEntry(const int terminalId, const int targetTerminalId);
-
-    bool updateAllBigramEntriesAndDeleteUselessEntries(const int terminalId,
-            int *const outBigramCount);
-
-    int getBigramEntryConut(const int terminalId);
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(Ver4BigramListPolicy);
-
-    int getEntryPosToUpdate(const int targetTerminalIdToFind, const int bigramListPos,
-            int *const outTailEntryPos) const;
-
-    const BigramEntry createUpdatedBigramEntryFrom(const BigramEntry *const originalBigramEntry,
-            const BigramProperty *const bigramProperty) const;
-
-    BigramDictContent *const mBigramDictContent;
-    const TerminalPositionLookupTable *const mTerminalPositionLookupTable;
-    const HeaderPolicy *const mHeaderPolicy;
-};
-} // namespace latinime
-#endif /* LATINIME_VER4_BIGRAM_LIST_POLICY_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.cpp
deleted file mode 100644
index d7e1952..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.cpp
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.h"
-
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-
-namespace latinime {
-
-const int BigramDictContent::INVALID_LINKED_ENTRY_POS = Ver4DictConstants::NOT_A_TERMINAL_ID;
-
-const BigramEntry BigramDictContent::getBigramEntryAndAdvancePosition(
-        int *const bigramEntryPos) const {
-    const BufferWithExtendableBuffer *const bigramListBuffer = getContentBuffer();
-    const int bigramEntryTailPos = (*bigramEntryPos) + getBigramEntrySize();
-    if (*bigramEntryPos < 0 || bigramEntryTailPos > bigramListBuffer->getTailPosition()) {
-        AKLOGE("Invalid bigram entry position. bigramEntryPos: %d, bigramEntryTailPos: %d, "
-                "bufSize: %d", *bigramEntryPos, bigramEntryTailPos,
-                        bigramListBuffer->getTailPosition());
-        ASSERT(false);
-        return BigramEntry(false /* hasNext */, NOT_A_PROBABILITY,
-                Ver4DictConstants::NOT_A_TERMINAL_ID);
-    }
-    const int bigramFlags = bigramListBuffer->readUintAndAdvancePosition(
-            Ver4DictConstants::BIGRAM_FLAGS_FIELD_SIZE, bigramEntryPos);
-    const bool isLink = (bigramFlags & Ver4DictConstants::BIGRAM_IS_LINK_MASK) != 0;
-    int probability = NOT_A_PROBABILITY;
-    int timestamp = NOT_A_TIMESTAMP;
-    int level = 0;
-    int count = 0;
-    if (mHasHistoricalInfo) {
-        timestamp = bigramListBuffer->readUintAndAdvancePosition(
-                Ver4DictConstants::TIME_STAMP_FIELD_SIZE, bigramEntryPos);
-        level = bigramListBuffer->readUintAndAdvancePosition(
-                Ver4DictConstants::WORD_LEVEL_FIELD_SIZE, bigramEntryPos);
-        count = bigramListBuffer->readUintAndAdvancePosition(
-                Ver4DictConstants::WORD_COUNT_FIELD_SIZE, bigramEntryPos);
-    } else {
-        probability = bigramListBuffer->readUintAndAdvancePosition(
-                Ver4DictConstants::PROBABILITY_SIZE, bigramEntryPos);
-    }
-    const int encodedTargetTerminalId = bigramListBuffer->readUintAndAdvancePosition(
-            Ver4DictConstants::BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE, bigramEntryPos);
-    const int targetTerminalId =
-            (encodedTargetTerminalId == Ver4DictConstants::INVALID_BIGRAM_TARGET_TERMINAL_ID) ?
-                    Ver4DictConstants::NOT_A_TERMINAL_ID : encodedTargetTerminalId;
-    if (isLink) {
-        const int linkedEntryPos = targetTerminalId;
-        if (linkedEntryPos == INVALID_LINKED_ENTRY_POS) {
-            // Bigram list terminator is found.
-            return BigramEntry(false /* hasNext */, NOT_A_PROBABILITY,
-                    Ver4DictConstants::NOT_A_TERMINAL_ID);
-        }
-        *bigramEntryPos = linkedEntryPos;
-        return getBigramEntryAndAdvancePosition(bigramEntryPos);
-    }
-    // hasNext is always true because we should continue to read the next entry until the terminator
-    // is found.
-    if (mHasHistoricalInfo) {
-        const HistoricalInfo historicalInfo(timestamp, level, count);
-        return BigramEntry(true /* hasNext */, probability, &historicalInfo, targetTerminalId);
-    } else {
-        return BigramEntry(true /* hasNext */, probability, targetTerminalId);
-    }
-}
-
-bool BigramDictContent::writeBigramEntryAndAdvancePosition(
-        const BigramEntry *const bigramEntryToWrite, int *const entryWritingPos) {
-    return writeBigramEntryAttributesAndAdvancePosition(false /* isLink */,
-            bigramEntryToWrite->getProbability(), bigramEntryToWrite->getTargetTerminalId(),
-            bigramEntryToWrite->getHistoricalInfo()->getTimeStamp(),
-            bigramEntryToWrite->getHistoricalInfo()->getLevel(),
-            bigramEntryToWrite->getHistoricalInfo()->getCount(),
-            entryWritingPos);
-}
-
-bool BigramDictContent::writeBigramEntryAttributesAndAdvancePosition(
-        const bool isLink, const int probability, const int targetTerminalId,
-        const int timestamp, const int level, const int count, int *const entryWritingPos) {
-    BufferWithExtendableBuffer *const bigramListBuffer = getWritableContentBuffer();
-    const int bigramFlags = isLink ? Ver4DictConstants::BIGRAM_IS_LINK_MASK : 0;
-    if (!bigramListBuffer->writeUintAndAdvancePosition(bigramFlags,
-            Ver4DictConstants::BIGRAM_FLAGS_FIELD_SIZE, entryWritingPos)) {
-        AKLOGE("Cannot write bigram flags. pos: %d, flags: %x", *entryWritingPos, bigramFlags);
-        return false;
-    }
-    if (mHasHistoricalInfo) {
-        if (!bigramListBuffer->writeUintAndAdvancePosition(timestamp,
-                Ver4DictConstants::TIME_STAMP_FIELD_SIZE, entryWritingPos)) {
-            AKLOGE("Cannot write bigram timestamps. pos: %d, timestamp: %d", *entryWritingPos,
-                    timestamp);
-            return false;
-        }
-        if (!bigramListBuffer->writeUintAndAdvancePosition(level,
-                Ver4DictConstants::WORD_LEVEL_FIELD_SIZE, entryWritingPos)) {
-            AKLOGE("Cannot write bigram level. pos: %d, level: %d", *entryWritingPos,
-                    level);
-            return false;
-        }
-        if (!bigramListBuffer->writeUintAndAdvancePosition(count,
-                Ver4DictConstants::WORD_COUNT_FIELD_SIZE, entryWritingPos)) {
-            AKLOGE("Cannot write bigram count. pos: %d, count: %d", *entryWritingPos,
-                    count);
-            return false;
-        }
-    } else {
-        if (!bigramListBuffer->writeUintAndAdvancePosition(probability,
-                Ver4DictConstants::PROBABILITY_SIZE, entryWritingPos)) {
-            AKLOGE("Cannot write bigram probability. pos: %d, probability: %d", *entryWritingPos,
-                    probability);
-            return false;
-        }
-    }
-    const int targetTerminalIdToWrite = (targetTerminalId == Ver4DictConstants::NOT_A_TERMINAL_ID) ?
-            Ver4DictConstants::INVALID_BIGRAM_TARGET_TERMINAL_ID : targetTerminalId;
-    if (!bigramListBuffer->writeUintAndAdvancePosition(targetTerminalIdToWrite,
-            Ver4DictConstants::BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE, entryWritingPos)) {
-        AKLOGE("Cannot write bigram target terminal id. pos: %d, target terminal id: %d",
-                *entryWritingPos, targetTerminalId);
-        return false;
-    }
-    return true;
-}
-
-bool BigramDictContent::writeLink(const int linkedEntryPos, const int writingPos) {
-    const int targetTerminalId = linkedEntryPos;
-    int pos = writingPos;
-    return writeBigramEntryAttributesAndAdvancePosition(true /* isLink */,
-            NOT_A_PROBABILITY /* probability */, targetTerminalId, NOT_A_TIMESTAMP, 0 /* level */,
-            0 /* count */, &pos);
-}
-
-bool BigramDictContent::runGC(const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
-        const BigramDictContent *const originalBigramDictContent,
-        int *const outBigramEntryCount) {
-    for (TerminalPositionLookupTable::TerminalIdMap::const_iterator it = terminalIdMap->begin();
-            it != terminalIdMap->end(); ++it) {
-        const int originalBigramListPos =
-                originalBigramDictContent->getBigramListHeadPos(it->first);
-        if (originalBigramListPos == NOT_A_DICT_POS) {
-            // This terminal does not have a bigram list.
-            continue;
-        }
-        const int bigramListPos = getContentBuffer()->getTailPosition();
-        int bigramEntryCount = 0;
-        // Copy bigram list with GC from original content.
-        if (!runGCBigramList(originalBigramListPos, originalBigramDictContent, bigramListPos,
-                terminalIdMap, &bigramEntryCount)) {
-            AKLOGE("Cannot complete GC for the bigram list. original pos: %d, pos: %d",
-                    originalBigramListPos, bigramListPos);
-            return false;
-        }
-        if (bigramEntryCount == 0) {
-            // All bigram entries are useless. This terminal does not have a bigram list.
-            continue;
-        }
-        *outBigramEntryCount += bigramEntryCount;
-        // Set bigram list position to the lookup table.
-        if (!getUpdatableAddressLookupTable()->set(it->second, bigramListPos)) {
-            AKLOGE("Cannot set bigram list position. terminal id: %d, pos: %d",
-                    it->second, bigramListPos);
-            return false;
-        }
-    }
-    return true;
-}
-
-// Returns whether GC for the bigram list was succeeded or not.
-bool BigramDictContent::runGCBigramList(const int bigramListPos,
-        const BigramDictContent *const sourceBigramDictContent, const int toPos,
-        const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
-        int *const outEntryCount) {
-    bool hasNext = true;
-    int readingPos = bigramListPos;
-    int writingPos = toPos;
-    while (hasNext) {
-        const BigramEntry originalBigramEntry =
-                sourceBigramDictContent->getBigramEntryAndAdvancePosition(&readingPos);
-        hasNext = originalBigramEntry.hasNext();
-        if (!originalBigramEntry.isValid()) {
-            continue;
-        }
-        TerminalPositionLookupTable::TerminalIdMap::const_iterator it =
-                terminalIdMap->find(originalBigramEntry.getTargetTerminalId());
-        if (it == terminalIdMap->end()) {
-            // Target word has been removed.
-            continue;
-        }
-        const BigramEntry updatedBigramEntry =
-                originalBigramEntry.updateTargetTerminalIdAndGetEntry(it->second);
-        if (!writeBigramEntryAndAdvancePosition(&updatedBigramEntry, &writingPos)) {
-            AKLOGE("Cannot write bigram entry to run GC. pos: %d", writingPos);
-            return false;
-        }
-        *outEntryCount += 1;
-    }
-    if (*outEntryCount > 0) {
-        if (!writeTerminator(writingPos)) {
-            AKLOGE("Cannot write terminator to run GC. pos: %d", writingPos);
-            return false;
-        }
-    }
-    return true;
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.h
deleted file mode 100644
index 361dd2c..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_BIGRAM_DICT_CONTENT_H
-#define LATINIME_BIGRAM_DICT_CONTENT_H
-
-#include <cstdint>
-#include <cstdio>
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/bigram_entry.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/sparse_table_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
-
-namespace latinime {
-
-class BigramDictContent : public SparseTableDictContent {
- public:
-    BigramDictContent(uint8_t *const *buffers, const int *bufferSizes, const bool hasHistoricalInfo)
-            : SparseTableDictContent(buffers, bufferSizes,
-                      Ver4DictConstants::BIGRAM_ADDRESS_TABLE_BLOCK_SIZE,
-                      Ver4DictConstants::BIGRAM_ADDRESS_TABLE_DATA_SIZE),
-              mHasHistoricalInfo(hasHistoricalInfo) {}
-
-    BigramDictContent(const bool hasHistoricalInfo)
-            : SparseTableDictContent(Ver4DictConstants::BIGRAM_ADDRESS_TABLE_BLOCK_SIZE,
-                      Ver4DictConstants::BIGRAM_ADDRESS_TABLE_DATA_SIZE),
-              mHasHistoricalInfo(hasHistoricalInfo) {}
-
-    int getContentTailPos() const {
-        return getContentBuffer()->getTailPosition();
-    }
-
-    const BigramEntry getBigramEntry(const int bigramEntryPos) const {
-        int readingPos = bigramEntryPos;
-        return getBigramEntryAndAdvancePosition(&readingPos);
-    }
-
-    const BigramEntry getBigramEntryAndAdvancePosition(int *const bigramEntryPos) const;
-
-    // Returns head position of bigram list for a PtNode specified by terminalId.
-    int getBigramListHeadPos(const int terminalId) const {
-        const SparseTable *const addressLookupTable = getAddressLookupTable();
-        if (!addressLookupTable->contains(terminalId)) {
-            return NOT_A_DICT_POS;
-        }
-        return addressLookupTable->get(terminalId);
-    }
-
-    bool writeBigramEntryAtTail(const BigramEntry *const bigramEntryToWrite) {
-        int writingPos = getContentBuffer()->getTailPosition();
-        return writeBigramEntryAndAdvancePosition(bigramEntryToWrite, &writingPos);
-    }
-
-    bool writeBigramEntry(const BigramEntry *const bigramEntryToWrite, const int entryWritingPos) {
-        int writingPos = entryWritingPos;
-        return writeBigramEntryAndAdvancePosition(bigramEntryToWrite, &writingPos);
-    }
-
-    bool writeBigramEntryAndAdvancePosition(const BigramEntry *const bigramEntryToWrite,
-            int *const entryWritingPos);
-
-    bool writeTerminator(const int writingPos) {
-        // Terminator is a link to the invalid position.
-        return writeLink(INVALID_LINKED_ENTRY_POS, writingPos);
-    }
-
-    bool writeLink(const int linkedPos, const int writingPos);
-
-    bool createNewBigramList(const int terminalId) {
-        const int bigramListPos = getContentBuffer()->getTailPosition();
-        return getUpdatableAddressLookupTable()->set(terminalId, bigramListPos);
-    }
-
-    bool flushToFile(FILE *const file) const {
-        return flush(file);
-    }
-
-    bool runGC(const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
-            const BigramDictContent *const originalBigramDictContent,
-            int *const outBigramEntryCount);
-
-    int getBigramEntrySize() const {
-        if (mHasHistoricalInfo) {
-            return Ver4DictConstants::BIGRAM_FLAGS_FIELD_SIZE
-                    + Ver4DictConstants::TIME_STAMP_FIELD_SIZE
-                    + Ver4DictConstants::WORD_LEVEL_FIELD_SIZE
-                    + Ver4DictConstants::WORD_COUNT_FIELD_SIZE
-                    + Ver4DictConstants::BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE;
-        } else {
-            return Ver4DictConstants::BIGRAM_FLAGS_FIELD_SIZE
-                    + Ver4DictConstants::PROBABILITY_SIZE
-                    + Ver4DictConstants::BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE;
-        }
-    }
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(BigramDictContent);
-
-    static const int INVALID_LINKED_ENTRY_POS;
-
-    bool writeBigramEntryAttributesAndAdvancePosition(
-            const bool isLink, const int probability, const int targetTerminalId,
-            const int timestamp, const int level, const int count, int *const entryWritingPos);
-
-    bool runGCBigramList(const int bigramListPos,
-            const BigramDictContent *const sourceBigramDictContent, const int toPos,
-            const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
-            int *const outEntryCount);
-
-    bool mHasHistoricalInfo;
-};
-} // namespace latinime
-#endif /* LATINIME_BIGRAM_DICT_CONTENT_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/bigram_entry.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/bigram_entry.h
deleted file mode 100644
index 2b0cbd9..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/bigram_entry.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_BIGRAM_ENTRY_H
-#define LATINIME_BIGRAM_ENTRY_H
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/utils/historical_info.h"
-
-namespace latinime {
-
-class BigramEntry {
- public:
-    BigramEntry(const BigramEntry& bigramEntry)
-            : mHasNext(bigramEntry.mHasNext), mProbability(bigramEntry.mProbability),
-              mHistoricalInfo(), mTargetTerminalId(bigramEntry.mTargetTerminalId) {}
-
-    // Entry with historical information.
-    BigramEntry(const bool hasNext, const int probability, const int targetTerminalId)
-            : mHasNext(hasNext), mProbability(probability), mHistoricalInfo(),
-              mTargetTerminalId(targetTerminalId) {}
-
-    // Entry with historical information.
-    BigramEntry(const bool hasNext, const int probability,
-            const HistoricalInfo *const historicalInfo, const int targetTerminalId)
-            : mHasNext(hasNext), mProbability(probability), mHistoricalInfo(*historicalInfo),
-              mTargetTerminalId(targetTerminalId) {}
-
-    const BigramEntry getInvalidatedEntry() const {
-        return updateTargetTerminalIdAndGetEntry(Ver4DictConstants::NOT_A_TERMINAL_ID);
-    }
-
-    const BigramEntry updateHasNextAndGetEntry(const bool hasNext) const {
-        return BigramEntry(hasNext, mProbability, &mHistoricalInfo, mTargetTerminalId);
-    }
-
-    const BigramEntry updateTargetTerminalIdAndGetEntry(const int newTargetTerminalId) const {
-        return BigramEntry(mHasNext, mProbability, &mHistoricalInfo, newTargetTerminalId);
-    }
-
-    const BigramEntry updateProbabilityAndGetEntry(const int probability) const {
-        return BigramEntry(mHasNext, probability, &mHistoricalInfo, mTargetTerminalId);
-    }
-
-    const BigramEntry updateHistoricalInfoAndGetEntry(
-            const HistoricalInfo *const historicalInfo) const {
-        return BigramEntry(mHasNext, mProbability, historicalInfo, mTargetTerminalId);
-    }
-
-    bool isValid() const {
-        return mTargetTerminalId != Ver4DictConstants::NOT_A_TERMINAL_ID;
-    }
-
-    bool hasNext() const {
-        return mHasNext;
-    }
-
-    int getProbability() const {
-        return mProbability;
-    }
-
-    bool hasHistoricalInfo() const {
-        return mHistoricalInfo.isValid();
-    }
-
-    const HistoricalInfo *getHistoricalInfo() const {
-        return &mHistoricalInfo;
-    }
-
-    int getTargetTerminalId() const {
-        return mTargetTerminalId;
-    }
-
- private:
-    // Copy constructor is public to use this class as a type of return value.
-    DISALLOW_DEFAULT_CONSTRUCTOR(BigramEntry);
-    DISALLOW_ASSIGNMENT_OPERATOR(BigramEntry);
-
-    const bool mHasNext;
-    const int mProbability;
-    const HistoricalInfo mHistoricalInfo;
-    const int mTargetTerminalId;
-};
-} // namespace latinime
-#endif /* LATINIME_BIGRAM_ENTRY_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content.cpp
deleted file mode 100644
index 5dc91ba..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (C) 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content.h"
-
-namespace latinime {
-
-bool LanguageModelDictContent::save(FILE *const file) const {
-    return mTrieMap.save(file);
-}
-
-bool LanguageModelDictContent::runGC(
-        const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
-        const LanguageModelDictContent *const originalContent,
-        int *const outNgramCount) {
-    return runGCInner(terminalIdMap, originalContent->mTrieMap.getEntriesInRootLevel(),
-            0 /* nextLevelBitmapEntryIndex */, outNgramCount);
-}
-
-ProbabilityEntry LanguageModelDictContent::getNgramProbabilityEntry(
-        const WordIdArrayView prevWordIds, const int wordId) const {
-    const int bitmapEntryIndex = getBitmapEntryIndex(prevWordIds);
-    if (bitmapEntryIndex == TrieMap::INVALID_INDEX) {
-        return ProbabilityEntry();
-    }
-    const TrieMap::Result result = mTrieMap.get(wordId, bitmapEntryIndex);
-    if (!result.mIsValid) {
-        // Not found.
-        return ProbabilityEntry();
-    }
-    return ProbabilityEntry::decode(result.mValue, mHasHistoricalInfo);
-}
-
-bool LanguageModelDictContent::setNgramProbabilityEntry(const WordIdArrayView prevWordIds,
-        const int terminalId, const ProbabilityEntry *const probabilityEntry) {
-    const int bitmapEntryIndex = getBitmapEntryIndex(prevWordIds);
-    if (bitmapEntryIndex == TrieMap::INVALID_INDEX) {
-        return false;
-    }
-    return mTrieMap.put(terminalId, probabilityEntry->encode(mHasHistoricalInfo), bitmapEntryIndex);
-}
-
-bool LanguageModelDictContent::runGCInner(
-        const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
-        const TrieMap::TrieMapRange trieMapRange,
-        const int nextLevelBitmapEntryIndex, int *const outNgramCount) {
-    for (auto &entry : trieMapRange) {
-        const auto it = terminalIdMap->find(entry.key());
-        if (it == terminalIdMap->end() || it->second == Ver4DictConstants::NOT_A_TERMINAL_ID) {
-            // The word has been removed.
-            continue;
-        }
-        if (!mTrieMap.put(it->second, entry.value(), nextLevelBitmapEntryIndex)) {
-            return false;
-        }
-        if (outNgramCount) {
-            *outNgramCount += 1;
-        }
-        if (entry.hasNextLevelMap()) {
-            if (!runGCInner(terminalIdMap, entry.getEntriesInNextLevel(),
-                    mTrieMap.getNextLevelBitmapEntryIndex(it->second, nextLevelBitmapEntryIndex),
-                    outNgramCount)) {
-                return false;
-            }
-        }
-    }
-    return true;
-}
-
-int LanguageModelDictContent::getBitmapEntryIndex(const WordIdArrayView prevWordIds) const {
-    int bitmapEntryIndex = mTrieMap.getRootBitmapEntryIndex();
-    for (const int wordId : prevWordIds) {
-        const TrieMap::Result result = mTrieMap.get(wordId, bitmapEntryIndex);
-        if (!result.mIsValid) {
-            return TrieMap::INVALID_INDEX;
-        }
-        bitmapEntryIndex = result.mNextLevelBitmapEntryIndex;
-    }
-    return bitmapEntryIndex;
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content.h
deleted file mode 100644
index 18f2e01..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_LANGUAGE_MODEL_DICT_CONTENT_H
-#define LATINIME_LANGUAGE_MODEL_DICT_CONTENT_H
-
-#include <cstdio>
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/probability_entry.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/utils/trie_map.h"
-#include "utils/byte_array_view.h"
-#include "utils/int_array_view.h"
-
-namespace latinime {
-
-/**
- * Class representing language model.
- *
- * This class provides methods to get and store unigram/n-gram probability information and flags.
- */
-class LanguageModelDictContent {
- public:
-    LanguageModelDictContent(const ReadWriteByteArrayView trieMapBuffer,
-            const bool hasHistoricalInfo)
-            : mTrieMap(trieMapBuffer), mHasHistoricalInfo(hasHistoricalInfo) {}
-
-    explicit LanguageModelDictContent(const bool hasHistoricalInfo)
-            : mTrieMap(), mHasHistoricalInfo(hasHistoricalInfo) {}
-
-    bool isNearSizeLimit() const {
-        return mTrieMap.isNearSizeLimit();
-    }
-
-    bool save(FILE *const file) const;
-
-    bool runGC(const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
-            const LanguageModelDictContent *const originalContent,
-            int *const outNgramCount);
-
-    ProbabilityEntry getProbabilityEntry(const int wordId) const {
-        return getNgramProbabilityEntry(WordIdArrayView(), wordId);
-    }
-
-    bool setProbabilityEntry(const int wordId, const ProbabilityEntry *const probabilityEntry) {
-        return setNgramProbabilityEntry(WordIdArrayView(), wordId, probabilityEntry);
-    }
-
-    ProbabilityEntry getNgramProbabilityEntry(const WordIdArrayView prevWordIds,
-            const int wordId) const;
-
-    bool setNgramProbabilityEntry(const WordIdArrayView prevWordIds, const int wordId,
-            const ProbabilityEntry *const probabilityEntry);
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(LanguageModelDictContent);
-
-    TrieMap mTrieMap;
-    const bool mHasHistoricalInfo;
-
-    bool runGCInner(const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
-            const TrieMap::TrieMapRange trieMapRange, const int nextLevelBitmapEntryIndex,
-            int *const outNgramCount);
-
-    int getBitmapEntryIndex(const WordIdArrayView prevWordIds) const;
-};
-} // namespace latinime
-#endif /* LATINIME_LANGUAGE_MODEL_DICT_CONTENT_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/probability_entry.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/probability_entry.h
deleted file mode 100644
index feff6b5..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/probability_entry.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_PROBABILITY_ENTRY_H
-#define LATINIME_PROBABILITY_ENTRY_H
-
-#include <climits>
-#include <cstdint>
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/utils/historical_info.h"
-
-namespace latinime {
-
-class ProbabilityEntry {
- public:
-    ProbabilityEntry(const ProbabilityEntry &probabilityEntry)
-            : mFlags(probabilityEntry.mFlags), mProbability(probabilityEntry.mProbability),
-              mHistoricalInfo(probabilityEntry.mHistoricalInfo) {}
-
-    // Dummy entry
-    ProbabilityEntry()
-            : mFlags(0), mProbability(NOT_A_PROBABILITY), mHistoricalInfo() {}
-
-    // Entry without historical information
-    ProbabilityEntry(const int flags, const int probability)
-            : mFlags(flags), mProbability(probability), mHistoricalInfo() {}
-
-    // Entry with historical information.
-    ProbabilityEntry(const int flags, const int probability,
-            const HistoricalInfo *const historicalInfo)
-            : mFlags(flags), mProbability(probability), mHistoricalInfo(*historicalInfo) {}
-
-    const ProbabilityEntry createEntryWithUpdatedProbability(const int probability) const {
-        return ProbabilityEntry(mFlags, probability, &mHistoricalInfo);
-    }
-
-    const ProbabilityEntry createEntryWithUpdatedHistoricalInfo(
-            const HistoricalInfo *const historicalInfo) const {
-        return ProbabilityEntry(mFlags, mProbability, historicalInfo);
-    }
-
-    bool hasHistoricalInfo() const {
-        return mHistoricalInfo.isValid();
-    }
-
-    int getFlags() const {
-        return mFlags;
-    }
-
-    int getProbability() const {
-        return mProbability;
-    }
-
-    const HistoricalInfo *getHistoricalInfo() const {
-        return &mHistoricalInfo;
-    }
-
-    uint64_t encode(const bool hasHistoricalInfo) const {
-        uint64_t encodedEntry = static_cast<uint64_t>(mFlags);
-        if (hasHistoricalInfo) {
-            encodedEntry = (encodedEntry << (Ver4DictConstants::TIME_STAMP_FIELD_SIZE * CHAR_BIT))
-                    ^ static_cast<uint64_t>(mHistoricalInfo.getTimeStamp());
-            encodedEntry = (encodedEntry << (Ver4DictConstants::WORD_LEVEL_FIELD_SIZE * CHAR_BIT))
-                    ^ static_cast<uint64_t>(mHistoricalInfo.getLevel());
-            encodedEntry = (encodedEntry << (Ver4DictConstants::WORD_COUNT_FIELD_SIZE * CHAR_BIT))
-                    ^ static_cast<uint64_t>(mHistoricalInfo.getCount());
-        } else {
-            encodedEntry = (encodedEntry << (Ver4DictConstants::PROBABILITY_SIZE * CHAR_BIT))
-                    ^ static_cast<uint64_t>(mProbability);
-        }
-        return encodedEntry;
-    }
-
-    static ProbabilityEntry decode(const uint64_t encodedEntry, const bool hasHistoricalInfo) {
-        if (hasHistoricalInfo) {
-            const int flags = readFromEncodedEntry(encodedEntry,
-                    Ver4DictConstants::FLAGS_IN_PROBABILITY_FILE_SIZE,
-                    Ver4DictConstants::TIME_STAMP_FIELD_SIZE
-                            + Ver4DictConstants::WORD_LEVEL_FIELD_SIZE
-                            + Ver4DictConstants::WORD_COUNT_FIELD_SIZE);
-            const int timestamp = readFromEncodedEntry(encodedEntry,
-                    Ver4DictConstants::TIME_STAMP_FIELD_SIZE,
-                    Ver4DictConstants::WORD_LEVEL_FIELD_SIZE
-                            + Ver4DictConstants::WORD_COUNT_FIELD_SIZE);
-            const int level = readFromEncodedEntry(encodedEntry,
-                    Ver4DictConstants::WORD_LEVEL_FIELD_SIZE,
-                    Ver4DictConstants::WORD_COUNT_FIELD_SIZE);
-            const int count = readFromEncodedEntry(encodedEntry,
-                    Ver4DictConstants::WORD_COUNT_FIELD_SIZE, 0 /* pos */);
-            const HistoricalInfo historicalInfo(timestamp, level, count);
-            return ProbabilityEntry(flags, NOT_A_PROBABILITY, &historicalInfo);
-        } else {
-            const int flags = readFromEncodedEntry(encodedEntry,
-                    Ver4DictConstants::FLAGS_IN_PROBABILITY_FILE_SIZE,
-                    Ver4DictConstants::PROBABILITY_SIZE);
-            const int probability = readFromEncodedEntry(encodedEntry,
-                    Ver4DictConstants::PROBABILITY_SIZE, 0 /* pos */);
-            return ProbabilityEntry(flags, probability);
-        }
-    }
-
- private:
-    // Copy constructor is public to use this class as a type of return value.
-    DISALLOW_ASSIGNMENT_OPERATOR(ProbabilityEntry);
-
-    const int mFlags;
-    const int mProbability;
-    const HistoricalInfo mHistoricalInfo;
-
-    static int readFromEncodedEntry(const uint64_t encodedEntry, const int size, const int pos) {
-        return static_cast<int>(
-                (encodedEntry >> (pos * CHAR_BIT)) & ((1ull << (size * CHAR_BIT)) - 1));
-    }
-};
-} // namespace latinime
-#endif /* LATINIME_PROBABILITY_ENTRY_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/shortcut_dict_content.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/shortcut_dict_content.cpp
deleted file mode 100644
index 41d9c54..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/shortcut_dict_content.cpp
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/v4/content/shortcut_dict_content.h"
-
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-
-namespace latinime {
-
-void ShortcutDictContent::getShortcutEntryAndAdvancePosition(const int maxCodePointCount,
-        int *const outCodePoint, int *const outCodePointCount, int *const outProbability,
-        bool *const outhasNext, int *const shortcutEntryPos) const {
-    const BufferWithExtendableBuffer *const shortcutListBuffer = getContentBuffer();
-    if (*shortcutEntryPos < 0 || *shortcutEntryPos >=  shortcutListBuffer->getTailPosition()) {
-        AKLOGE("Invalid shortcut entry position. shortcutEntryPos: %d, bufSize: %d",
-                *shortcutEntryPos, shortcutListBuffer->getTailPosition());
-        ASSERT(false);
-        if (outhasNext) {
-            *outhasNext = false;
-        }
-        if (outCodePointCount) {
-            *outCodePointCount = 0;
-        }
-        return;
-    }
-
-    const int shortcutFlags = shortcutListBuffer->readUintAndAdvancePosition(
-            Ver4DictConstants::SHORTCUT_FLAGS_FIELD_SIZE, shortcutEntryPos);
-    if (outProbability) {
-        *outProbability = shortcutFlags & Ver4DictConstants::SHORTCUT_PROBABILITY_MASK;
-    }
-    if (outhasNext) {
-        *outhasNext = shortcutFlags & Ver4DictConstants::SHORTCUT_HAS_NEXT_MASK;
-    }
-    if (outCodePoint && outCodePointCount) {
-        shortcutListBuffer->readCodePointsAndAdvancePosition(
-                maxCodePointCount, outCodePoint, outCodePointCount, shortcutEntryPos);
-    }
-}
-
-int ShortcutDictContent::getShortcutListHeadPos(const int terminalId) const {
-    const SparseTable *const addressLookupTable = getAddressLookupTable();
-    if (!addressLookupTable->contains(terminalId)) {
-        return NOT_A_DICT_POS;
-    }
-    return addressLookupTable->get(terminalId);
-}
-
-bool ShortcutDictContent::runGC(
-        const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
-        const ShortcutDictContent *const originalShortcutDictContent) {
-   for (TerminalPositionLookupTable::TerminalIdMap::const_iterator it = terminalIdMap->begin();
-           it != terminalIdMap->end(); ++it) {
-       const int originalShortcutListPos =
-               originalShortcutDictContent->getShortcutListHeadPos(it->first);
-       if (originalShortcutListPos == NOT_A_DICT_POS) {
-           continue;
-       }
-       const int shortcutListPos = getContentBuffer()->getTailPosition();
-       // Copy shortcut list from original content.
-       if (!copyShortcutListFromDictContent(originalShortcutListPos, originalShortcutDictContent,
-               shortcutListPos)) {
-           AKLOGE("Cannot copy shortcut list during GC. original pos: %d, pos: %d",
-                   originalShortcutListPos, shortcutListPos);
-           return false;
-       }
-       // Set shortcut list position to the lookup table.
-       if (!getUpdatableAddressLookupTable()->set(it->second, shortcutListPos)) {
-           AKLOGE("Cannot set shortcut list position. terminal id: %d, pos: %d",
-                   it->second, shortcutListPos);
-           return false;
-       }
-   }
-   return true;
-}
-
-bool ShortcutDictContent::createNewShortcutList(const int terminalId) {
-    const int shortcutListListPos = getContentBuffer()->getTailPosition();
-    return getUpdatableAddressLookupTable()->set(terminalId, shortcutListListPos);
-}
-
-bool ShortcutDictContent::copyShortcutList(const int shortcutListPos, const int toPos) {
-    return copyShortcutListFromDictContent(shortcutListPos, this, toPos);
-}
-
-bool ShortcutDictContent::copyShortcutListFromDictContent(const int shortcutListPos,
-        const ShortcutDictContent *const sourceShortcutDictContent, const int toPos) {
-    bool hasNext = true;
-    int readingPos = shortcutListPos;
-    int writingPos = toPos;
-    int codePoints[MAX_WORD_LENGTH];
-    while (hasNext) {
-        int probability = 0;
-        int codePointCount = 0;
-        sourceShortcutDictContent->getShortcutEntryAndAdvancePosition(MAX_WORD_LENGTH,
-                codePoints, &codePointCount, &probability, &hasNext, &readingPos);
-        if (!writeShortcutEntryAndAdvancePosition(codePoints, codePointCount, probability,
-                hasNext, &writingPos)) {
-            AKLOGE("Cannot write shortcut entry to copy. pos: %d", writingPos);
-            return false;
-        }
-    }
-    return true;
-}
-
-bool ShortcutDictContent::setProbability(const int probability, const int shortcutEntryPos) {
-    BufferWithExtendableBuffer *const shortcutListBuffer = getWritableContentBuffer();
-    const int shortcutFlags = shortcutListBuffer->readUint(
-            Ver4DictConstants::SHORTCUT_FLAGS_FIELD_SIZE, shortcutEntryPos);
-    const bool hasNext = shortcutFlags & Ver4DictConstants::SHORTCUT_HAS_NEXT_MASK;
-    const int shortcutFlagsToWrite = createAndGetShortcutFlags(probability, hasNext);
-    return shortcutListBuffer->writeUint(shortcutFlagsToWrite,
-            Ver4DictConstants::SHORTCUT_FLAGS_FIELD_SIZE, shortcutEntryPos);
-}
-
-bool ShortcutDictContent::writeShortcutEntryAndAdvancePosition(const int *const codePoint,
-        const int codePointCount, const int probability, const bool hasNext,
-        int *const shortcutEntryPos) {
-    BufferWithExtendableBuffer *const shortcutListBuffer = getWritableContentBuffer();
-    const int shortcutFlags = createAndGetShortcutFlags(probability, hasNext);
-    if (!shortcutListBuffer->writeUintAndAdvancePosition(shortcutFlags,
-            Ver4DictConstants::SHORTCUT_FLAGS_FIELD_SIZE, shortcutEntryPos)) {
-        AKLOGE("Cannot write shortcut flags. flags; %x, pos: %d", shortcutFlags, *shortcutEntryPos);
-        return false;
-    }
-    if (!shortcutListBuffer->writeCodePointsAndAdvancePosition(codePoint, codePointCount,
-            true /* writesTerminator */, shortcutEntryPos)) {
-        AKLOGE("Cannot write shortcut target code points. pos: %d", *shortcutEntryPos);
-        return false;
-    }
-    return true;
-}
-
-// Find a shortcut entry that has specified target and return its position.
-int ShortcutDictContent::findShortcutEntryAndGetPos(const int shortcutListPos,
-        const int *const targetCodePointsToFind, const int codePointCount) const {
-    bool hasNext = true;
-    int readingPos = shortcutListPos;
-    int targetCodePoints[MAX_WORD_LENGTH];
-    while (hasNext) {
-        const int entryPos = readingPos;
-        int probability = 0;
-        int targetCodePointCount = 0;
-        getShortcutEntryAndAdvancePosition(MAX_WORD_LENGTH, targetCodePoints, &targetCodePointCount,
-                &probability, &hasNext, &readingPos);
-        if (targetCodePointCount != codePointCount) {
-            continue;
-        }
-        bool matched = true;
-        for (int i = 0; i < codePointCount; ++i) {
-            if (targetCodePointsToFind[i] != targetCodePoints[i]) {
-                matched = false;
-                break;
-            }
-        }
-        if (matched) {
-            return entryPos;
-        }
-    }
-    return NOT_A_DICT_POS;
-}
-
-int ShortcutDictContent::createAndGetShortcutFlags(const int probability,
-        const bool hasNext) const {
-    return (probability & Ver4DictConstants::SHORTCUT_PROBABILITY_MASK)
-            | (hasNext ? Ver4DictConstants::SHORTCUT_HAS_NEXT_MASK : 0);
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/shortcut_dict_content.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/shortcut_dict_content.h
deleted file mode 100644
index 7b12aff..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/shortcut_dict_content.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_SHORTCUT_DICT_CONTENT_H
-#define LATINIME_SHORTCUT_DICT_CONTENT_H
-
-#include <cstdint>
-#include <cstdio>
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/sparse_table_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
-
-namespace latinime {
-
-class ShortcutDictContent : public SparseTableDictContent {
- public:
-    ShortcutDictContent(uint8_t *const *buffers, const int *bufferSizes)
-            : SparseTableDictContent(buffers, bufferSizes,
-                      Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_BLOCK_SIZE,
-                      Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_DATA_SIZE) {}
-
-    ShortcutDictContent()
-            : SparseTableDictContent(Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_BLOCK_SIZE,
-                      Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_DATA_SIZE) {}
-
-    void getShortcutEntry(const int maxCodePointCount, int *const outCodePoint,
-            int *const outCodePointCount, int *const outProbability, bool *const outhasNext,
-            const int shortcutEntryPos) {
-        int readingPos = shortcutEntryPos;
-        return getShortcutEntryAndAdvancePosition(maxCodePointCount, outCodePoint,
-                outCodePointCount, outProbability, outhasNext, &readingPos);
-    }
-
-    void getShortcutEntryAndAdvancePosition(const int maxCodePointCount,
-            int *const outCodePoint, int *const outCodePointCount, int *const outProbability,
-            bool *const outhasNext, int *const shortcutEntryPos) const;
-
-   // Returns head position of shortcut list for a PtNode specified by terminalId.
-   int getShortcutListHeadPos(const int terminalId) const;
-
-   bool flushToFile(FILE *const file) const {
-       return flush(file);
-   }
-
-   bool runGC(const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap,
-           const ShortcutDictContent *const originalShortcutDictContent);
-
-   bool createNewShortcutList(const int terminalId);
-
-   bool copyShortcutList(const int shortcutListPos, const int toPos);
-
-   bool setProbability(const int probability, const int shortcutEntryPos);
-
-   bool writeShortcutEntry(const int *const codePoint, const int codePointCount,
-           const int probability, const bool hasNext, const int shortcutEntryPos) {
-       int writingPos = shortcutEntryPos;
-       return writeShortcutEntryAndAdvancePosition(codePoint, codePointCount, probability,
-               hasNext, &writingPos);
-   }
-
-   bool writeShortcutEntryAndAdvancePosition(const int *const codePoint,
-           const int codePointCount, const int probability, const bool hasNext,
-           int *const shortcutEntryPos);
-
-   int findShortcutEntryAndGetPos(const int shortcutListPos,
-           const int *const targetCodePointsToFind, const int codePointCount) const;
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(ShortcutDictContent);
-
-    bool copyShortcutListFromDictContent(const int shortcutListPos,
-            const ShortcutDictContent *const sourceShortcutDictContent, const int toPos);
-
-    int createAndGetShortcutFlags(const int probability, const bool hasNext) const;
-};
-} // namespace latinime
-#endif /* LATINIME_SHORTCUT_DICT_CONTENT_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/single_dict_content.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/single_dict_content.h
deleted file mode 100644
index 9217741..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/single_dict_content.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_SINGLE_DICT_CONTENT_H
-#define LATINIME_SINGLE_DICT_CONTENT_H
-
-#include <cstdint>
-#include <cstdio>
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h"
-#include "utils/byte_array_view.h"
-
-namespace latinime {
-
-class SingleDictContent {
- public:
-    SingleDictContent(uint8_t *const buffer, const int bufferSize)
-            : mExpandableContentBuffer(ReadWriteByteArrayView(buffer, bufferSize),
-                      BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE) {}
-
-    SingleDictContent()
-            : mExpandableContentBuffer(Ver4DictConstants::MAX_DICTIONARY_SIZE) {}
-
-    virtual ~SingleDictContent() {}
-
-    bool isNearSizeLimit() const {
-        return mExpandableContentBuffer.isNearSizeLimit();
-    }
-
- protected:
-    BufferWithExtendableBuffer *getWritableBuffer() {
-        return &mExpandableContentBuffer;
-    }
-
-    const BufferWithExtendableBuffer *getBuffer() const {
-        return &mExpandableContentBuffer;
-    }
-
-    bool flush(FILE *const file) const {
-        return DictFileWritingUtils::writeBufferToFileTail(file, &mExpandableContentBuffer);
-    }
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(SingleDictContent);
-
-    BufferWithExtendableBuffer mExpandableContentBuffer;
-};
-} // namespace latinime
-#endif /* LATINIME_SINGLE_DICT_CONTENT_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/sparse_table_dict_content.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/sparse_table_dict_content.cpp
deleted file mode 100644
index 896ce6b..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/sparse_table_dict_content.cpp
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/v4/content/sparse_table_dict_content.h"
-
-#include "suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h"
-
-namespace latinime {
-
-const int SparseTableDictContent::LOOKUP_TABLE_BUFFER_INDEX = 0;
-const int SparseTableDictContent::ADDRESS_TABLE_BUFFER_INDEX = 1;
-const int SparseTableDictContent::CONTENT_BUFFER_INDEX = 2;
-
-bool SparseTableDictContent::flush(FILE *const file) const {
-    if (!DictFileWritingUtils::writeBufferToFileTail(file, &mExpandableLookupTableBuffer)) {
-        return false;
-    }
-    if (!DictFileWritingUtils::writeBufferToFileTail(file, &mExpandableAddressTableBuffer)) {
-        return false;
-    }
-    if (!DictFileWritingUtils::writeBufferToFileTail(file, &mExpandableContentBuffer)) {
-        return false;
-    }
-    return true;
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/sparse_table_dict_content.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/sparse_table_dict_content.h
deleted file mode 100644
index c98dd11..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/sparse_table_dict_content.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_SPARSE_TABLE_DICT_CONTENT_H
-#define LATINIME_SPARSE_TABLE_DICT_CONTENT_H
-
-#include <cstdint>
-#include <cstdio>
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/sparse_table.h"
-#include "utils/byte_array_view.h"
-
-namespace latinime {
-
-// TODO: Support multiple contents.
-class SparseTableDictContent {
- public:
-    AK_FORCE_INLINE SparseTableDictContent(uint8_t *const *buffers, const int *bufferSizes,
-            const int sparseTableBlockSize, const int sparseTableDataSize)
-            : mExpandableLookupTableBuffer(
-                      ReadWriteByteArrayView(buffers[LOOKUP_TABLE_BUFFER_INDEX],
-                              bufferSizes[LOOKUP_TABLE_BUFFER_INDEX]),
-                      BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
-              mExpandableAddressTableBuffer(
-                      ReadWriteByteArrayView(buffers[ADDRESS_TABLE_BUFFER_INDEX],
-                              bufferSizes[ADDRESS_TABLE_BUFFER_INDEX]),
-                      BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
-              mExpandableContentBuffer(
-                      ReadWriteByteArrayView(buffers[CONTENT_BUFFER_INDEX],
-                              bufferSizes[CONTENT_BUFFER_INDEX]),
-                      BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
-              mAddressLookupTable(&mExpandableLookupTableBuffer, &mExpandableAddressTableBuffer,
-                      sparseTableBlockSize, sparseTableDataSize) {}
-
-    SparseTableDictContent(const int sparseTableBlockSize, const int sparseTableDataSize)
-            : mExpandableLookupTableBuffer(Ver4DictConstants::MAX_DICTIONARY_SIZE),
-              mExpandableAddressTableBuffer(Ver4DictConstants::MAX_DICTIONARY_SIZE),
-              mExpandableContentBuffer(Ver4DictConstants::MAX_DICTIONARY_SIZE),
-              mAddressLookupTable(&mExpandableLookupTableBuffer, &mExpandableAddressTableBuffer,
-                      sparseTableBlockSize, sparseTableDataSize) {}
-
-    virtual ~SparseTableDictContent() {}
-
-    bool isNearSizeLimit() const {
-        return mExpandableLookupTableBuffer.isNearSizeLimit()
-                || mExpandableAddressTableBuffer.isNearSizeLimit()
-                || mExpandableContentBuffer.isNearSizeLimit();
-    }
-
- protected:
-    SparseTable *getUpdatableAddressLookupTable() {
-        return &mAddressLookupTable;
-    }
-
-    const SparseTable *getAddressLookupTable() const {
-        return &mAddressLookupTable;
-    }
-
-    BufferWithExtendableBuffer *getWritableContentBuffer() {
-        return &mExpandableContentBuffer;
-    }
-
-    const BufferWithExtendableBuffer *getContentBuffer() const {
-        return &mExpandableContentBuffer;
-    }
-
-    bool flush(FILE *const file) const;
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(SparseTableDictContent);
-
-    static const int LOOKUP_TABLE_BUFFER_INDEX;
-    static const int ADDRESS_TABLE_BUFFER_INDEX;
-    static const int CONTENT_BUFFER_INDEX;
-
-    BufferWithExtendableBuffer mExpandableLookupTableBuffer;
-    BufferWithExtendableBuffer mExpandableAddressTableBuffer;
-    BufferWithExtendableBuffer mExpandableContentBuffer;
-    SparseTable mAddressLookupTable;
-};
-} // namespace latinime
-#endif /* LATINIME_SPARSE_TABLE_DICT_CONTENT_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.cpp
deleted file mode 100644
index cf238ee..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h"
-
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_reading_utils.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-
-namespace latinime {
-
-int TerminalPositionLookupTable::getTerminalPtNodePosition(const int terminalId) const {
-    if (terminalId < 0 || terminalId >= mSize) {
-        return NOT_A_DICT_POS;
-    }
-    const int terminalPos = getBuffer()->readUint(
-            Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE, getEntryPos(terminalId));
-    return (terminalPos == Ver4DictConstants::NOT_A_TERMINAL_ADDRESS) ?
-            NOT_A_DICT_POS : terminalPos;
-}
-
-bool TerminalPositionLookupTable::setTerminalPtNodePosition(
-        const int terminalId, const int terminalPtNodePos) {
-    if (terminalId < 0) {
-        return NOT_A_DICT_POS;
-    }
-    while (terminalId >= mSize) {
-        // Write new entry.
-        if (!getWritableBuffer()->writeUint(Ver4DictConstants::NOT_A_TERMINAL_ADDRESS,
-                Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE, getEntryPos(mSize))) {
-            return false;
-        }
-        mSize++;
-    }
-    const int terminalPos = (terminalPtNodePos != NOT_A_DICT_POS) ?
-            terminalPtNodePos : Ver4DictConstants::NOT_A_TERMINAL_ADDRESS;
-    return getWritableBuffer()->writeUint(terminalPos,
-            Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE, getEntryPos(terminalId));
-}
-
-bool TerminalPositionLookupTable::flushToFile(FILE *const file) const {
-    // If the used buffer size is smaller than the actual buffer size, regenerate the lookup
-    // table and write the new table to the file.
-    if (getEntryPos(mSize) < getBuffer()->getTailPosition()) {
-        TerminalPositionLookupTable lookupTableToWrite;
-        for (int i = 0; i < mSize; ++i) {
-            const int terminalPtNodePosition = getTerminalPtNodePosition(i);
-            if (!lookupTableToWrite.setTerminalPtNodePosition(i, terminalPtNodePosition)) {
-                AKLOGE("Cannot set terminal position to lookupTableToWrite."
-                        " terminalId: %d, position: %d", i, terminalPtNodePosition);
-                return false;
-            }
-        }
-        return lookupTableToWrite.flush(file);
-    } else {
-        // We can simply use this lookup table because the buffer size has not been
-        // changed.
-        return flush(file);
-    }
-}
-
-bool TerminalPositionLookupTable::runGCTerminalIds(TerminalIdMap *const terminalIdMap) {
-    int removedEntryCount = 0;
-    int nextNewTerminalId = 0;
-    for (int i = 0; i < mSize; ++i) {
-        const int terminalPos = getBuffer()->readUint(
-                Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE, getEntryPos(i));
-        if (terminalPos == Ver4DictConstants::NOT_A_TERMINAL_ADDRESS) {
-            // This entry is a garbage.
-            removedEntryCount++;
-        } else {
-            // Give a new terminal id to the entry.
-            if (!getWritableBuffer()->writeUint(terminalPos,
-                    Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE,
-                    getEntryPos(nextNewTerminalId))) {
-                return false;
-            }
-            // Memorize the mapping to the old terminal id to the new terminal id.
-            terminalIdMap->insert(TerminalIdMap::value_type(i, nextNewTerminalId));
-            nextNewTerminalId++;
-        }
-    }
-    mSize = nextNewTerminalId;
-    return true;
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h
deleted file mode 100644
index b2262bf..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_TERMINAL_POSITION_LOOKUP_TABLE_H
-#define LATINIME_TERMINAL_POSITION_LOOKUP_TABLE_H
-
-#include <cstdint>
-#include <cstdio>
-#include <unordered_map>
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/single_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
-
-namespace latinime {
-
-class TerminalPositionLookupTable : public SingleDictContent {
- public:
-    typedef std::unordered_map<int, int> TerminalIdMap;
-
-    TerminalPositionLookupTable(uint8_t *const buffer, const int bufferSize)
-            : SingleDictContent(buffer, bufferSize),
-              mSize(getBuffer()->getTailPosition()
-                      / Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE) {}
-
-    TerminalPositionLookupTable() : mSize(0) {}
-
-    int getTerminalPtNodePosition(const int terminalId) const;
-
-    bool setTerminalPtNodePosition(const int terminalId, const int terminalPtNodePos);
-
-    int getNextTerminalId() const {
-        return mSize;
-    }
-
-    bool flushToFile(FILE *const file) const;
-
-    bool runGCTerminalIds(TerminalIdMap *const terminalIdMap);
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(TerminalPositionLookupTable);
-
-    int getEntryPos(const int terminalId) const {
-        return terminalId * Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE;
-    }
-
-    int mSize;
-};
-} // namespace latinime
-#endif // LATINIME_TERMINAL_POSITION_LOOKUP_TABLE_H
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h
deleted file mode 100644
index 7902735..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_VER4_SHORTCUT_LIST_POLICY_H
-#define LATINIME_VER4_SHORTCUT_LIST_POLICY_H
-
-#include "defines.h"
-#include "suggest/core/policy/dictionary_shortcuts_structure_policy.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/shortcut/shortcut_list_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/shortcut_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h"
-
-namespace latinime {
-
-class Ver4ShortcutListPolicy : public DictionaryShortcutsStructurePolicy {
- public:
-    Ver4ShortcutListPolicy(ShortcutDictContent *const shortcutDictContent,
-            const TerminalPositionLookupTable *const terminalPositionLookupTable)
-            : mShortcutDictContent(shortcutDictContent) {}
-
-    ~Ver4ShortcutListPolicy() {}
-
-    int getStartPos(const int pos) const {
-        // The first shortcut entry is located at the head position of the shortcut list.
-        return pos;
-    }
-
-    void getNextShortcut(const int maxCodePointCount, int *const outCodePoint,
-            int *const outCodePointCount, bool *const outIsWhitelist, bool *const outHasNext,
-            int *const pos) const {
-        int probability = 0;
-        mShortcutDictContent->getShortcutEntryAndAdvancePosition(maxCodePointCount,
-                outCodePoint, outCodePointCount, &probability, outHasNext, pos);
-        if (outIsWhitelist) {
-            *outIsWhitelist = ShortcutListReadingUtils::isWhitelist(probability);
-        }
-    }
-
-    void skipAllShortcuts(int *const pos) const {
-        // Do nothing because we don't need to skip shortcut lists in ver4 dictionaries.
-    }
-
-    bool addNewShortcut(const int terminalId, const int *const codePoints, const int codePointCount,
-            const int probability) {
-        const int shortcutListPos = mShortcutDictContent->getShortcutListHeadPos(terminalId);
-        if (shortcutListPos == NOT_A_DICT_POS) {
-            // Create shortcut list.
-            if (!mShortcutDictContent->createNewShortcutList(terminalId)) {
-                AKLOGE("Cannot create new shortcut list. terminal id: %d", terminalId);
-                return false;
-            }
-            const int writingPos =  mShortcutDictContent->getShortcutListHeadPos(terminalId);
-            return mShortcutDictContent->writeShortcutEntry(codePoints, codePointCount, probability,
-                    false /* hasNext */, writingPos);
-        }
-        const int entryPos = mShortcutDictContent->findShortcutEntryAndGetPos(shortcutListPos,
-                codePoints, codePointCount);
-        if (entryPos == NOT_A_DICT_POS) {
-            // Add new entry to the shortcut list.
-            // Create new shortcut list.
-            if (!mShortcutDictContent->createNewShortcutList(terminalId)) {
-                AKLOGE("Cannot create new shortcut list. terminal id: %d", terminalId);
-                return false;
-            }
-            int writingPos =  mShortcutDictContent->getShortcutListHeadPos(terminalId);
-            if (!mShortcutDictContent->writeShortcutEntryAndAdvancePosition(codePoints,
-                    codePointCount, probability, true /* hasNext */, &writingPos)) {
-                AKLOGE("Cannot write shortcut entry. terminal id: %d, pos: %d", terminalId,
-                        writingPos);
-                return false;
-            }
-            return mShortcutDictContent->copyShortcutList(shortcutListPos, writingPos);
-        }
-        // Overwrite existing entry.
-        bool hasNext = false;
-        mShortcutDictContent->getShortcutEntry(MAX_WORD_LENGTH, 0 /* outCodePoint */,
-                0 /* outCodePointCount */ , 0 /* probability */, &hasNext, entryPos);
-        if (!mShortcutDictContent->writeShortcutEntry(codePoints,
-                codePointCount, probability, hasNext, entryPos)) {
-            AKLOGE("Cannot overwrite shortcut entry. terminal id: %d, pos: %d", terminalId,
-                    entryPos);
-            return false;
-        }
-        return true;
-    }
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(Ver4ShortcutListPolicy);
-
-    ShortcutDictContent *const mShortcutDictContent;
-};
-} // namespace latinime
-#endif // LATINIME_VER4_SHORTCUT_LIST_POLICY_H
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.cpp
deleted file mode 100644
index 3c8008d..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.cpp
+++ /dev/null
@@ -1,214 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h"
-
-#include <cerrno>
-#include <cstring>
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <vector>
-
-#include "suggest/policyimpl/dictionary/utils/byte_array_utils.h"
-#include "suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h"
-#include "suggest/policyimpl/dictionary/utils/file_utils.h"
-#include "utils/byte_array_view.h"
-
-namespace latinime {
-
-/* static */ Ver4DictBuffers::Ver4DictBuffersPtr Ver4DictBuffers::openVer4DictBuffers(
-        const char *const dictPath, MmappedBuffer::MmappedBufferPtr &&headerBuffer,
-        const FormatUtils::FORMAT_VERSION formatVersion) {
-    if (!headerBuffer) {
-        ASSERT(false);
-        AKLOGE("The header buffer must be valid to open ver4 dict buffers.");
-        return Ver4DictBuffersPtr(nullptr);
-    }
-    // TODO: take only dictDirPath, and open both header and trie files in the constructor below
-    const bool isUpdatable = headerBuffer->isUpdatable();
-    MmappedBuffer::MmappedBufferPtr bodyBuffer = MmappedBuffer::openBuffer(dictPath,
-            Ver4DictConstants::BODY_FILE_EXTENSION, isUpdatable);
-    if (!bodyBuffer) {
-        return Ver4DictBuffersPtr(nullptr);
-    }
-    std::vector<uint8_t *> buffers;
-    std::vector<int> bufferSizes;
-    const ReadWriteByteArrayView buffer = bodyBuffer->getReadWriteByteArrayView();
-    int position = 0;
-    while (position < static_cast<int>(buffer.size())) {
-        const int bufferSize = ByteArrayUtils::readUint32AndAdvancePosition(
-                buffer.data(), &position);
-        const ReadWriteByteArrayView subBuffer = buffer.subView(position, bufferSize);
-        buffers.push_back(subBuffer.data());
-        bufferSizes.push_back(subBuffer.size());
-        position += bufferSize;
-        if (bufferSize < 0 || position < 0 || position > static_cast<int>(buffer.size())) {
-            AKLOGE("The dict body file is corrupted.");
-            return Ver4DictBuffersPtr(nullptr);
-        }
-    }
-    if (buffers.size() != Ver4DictConstants::NUM_OF_CONTENT_BUFFERS_IN_BODY_FILE) {
-        AKLOGE("The dict body file is corrupted.");
-        return Ver4DictBuffersPtr(nullptr);
-    }
-    return Ver4DictBuffersPtr(new Ver4DictBuffers(std::move(headerBuffer), std::move(bodyBuffer),
-            formatVersion, buffers, bufferSizes));
-}
-
-bool Ver4DictBuffers::flushHeaderAndDictBuffers(const char *const dictDirPath,
-        const BufferWithExtendableBuffer *const headerBuffer) const {
-    // Create temporary directory.
-    const int tmpDirPathBufSize = FileUtils::getFilePathWithSuffixBufSize(dictDirPath,
-            DictFileWritingUtils::TEMP_FILE_SUFFIX_FOR_WRITING_DICT_FILE);
-    char tmpDirPath[tmpDirPathBufSize];
-    FileUtils::getFilePathWithSuffix(dictDirPath,
-            DictFileWritingUtils::TEMP_FILE_SUFFIX_FOR_WRITING_DICT_FILE, tmpDirPathBufSize,
-            tmpDirPath);
-    if (FileUtils::existsDir(tmpDirPath)) {
-        if (!FileUtils::removeDirAndFiles(tmpDirPath)) {
-            AKLOGE("Existing directory %s cannot be removed.", tmpDirPath);
-            ASSERT(false);
-            return false;
-        }
-    }
-    umask(S_IWGRP | S_IWOTH);
-    if (mkdir(tmpDirPath, S_IRWXU) == -1) {
-        AKLOGE("Cannot create directory: %s. errno: %d.", tmpDirPath, errno);
-        return false;
-    }
-    // Get dictionary base path.
-    const int dictNameBufSize = strlen(dictDirPath) + 1 /* terminator */;
-    char dictName[dictNameBufSize];
-    FileUtils::getBasename(dictDirPath, dictNameBufSize, dictName);
-    const int dictPathBufSize = FileUtils::getFilePathBufSize(tmpDirPath, dictName);
-    char dictPath[dictPathBufSize];
-    FileUtils::getFilePath(tmpDirPath, dictName, dictPathBufSize, dictPath);
-
-    // Write header file.
-    if (!DictFileWritingUtils::flushBufferToFileWithSuffix(dictPath,
-            Ver4DictConstants::HEADER_FILE_EXTENSION, headerBuffer)) {
-        AKLOGE("Dictionary header file %s%s cannot be written.", tmpDirPath,
-                Ver4DictConstants::HEADER_FILE_EXTENSION);
-        return false;
-    }
-
-    // Write body file.
-    const int bodyFilePathBufSize = FileUtils::getFilePathWithSuffixBufSize(dictPath,
-            Ver4DictConstants::BODY_FILE_EXTENSION);
-    char bodyFilePath[bodyFilePathBufSize];
-    FileUtils::getFilePathWithSuffix(dictPath, Ver4DictConstants::BODY_FILE_EXTENSION,
-            bodyFilePathBufSize, bodyFilePath);
-
-    const int fd = open(bodyFilePath, O_WRONLY | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR);
-    if (fd == -1) {
-        AKLOGE("File %s cannot be opened. errno: %d", bodyFilePath, errno);
-        ASSERT(false);
-        return false;
-    }
-    FILE *const file = fdopen(fd, "wb");
-    if (!file) {
-        AKLOGE("fdopen failed for the file %s. errno: %d", bodyFilePath, errno);
-        ASSERT(false);
-        return false;
-    }
-
-    if (!flushDictBuffers(file)) {
-        fclose(file);
-        return false;
-    }
-    fclose(file);
-    // Remove existing dictionary.
-    if (!FileUtils::removeDirAndFiles(dictDirPath)) {
-        AKLOGE("Existing directory %s cannot be removed.", dictDirPath);
-        ASSERT(false);
-        return false;
-    }
-    // Rename temporary directory.
-    if (rename(tmpDirPath, dictDirPath) != 0) {
-        AKLOGE("%s cannot be renamed to %s", tmpDirPath, dictDirPath);
-        ASSERT(false);
-        return false;
-    }
-    return true;
-}
-
-bool Ver4DictBuffers::flushDictBuffers(FILE *const file) const {
-    // Write trie.
-    if (!DictFileWritingUtils::writeBufferToFileTail(file, &mExpandableTrieBuffer)) {
-        AKLOGE("Trie cannot be written.");
-        return false;
-    }
-    // Write terminal position lookup table.
-    if (!mTerminalPositionLookupTable.flushToFile(file)) {
-        AKLOGE("Terminal position lookup table cannot be written.");
-        return false;
-    }
-    // Write language model content.
-    if (!mLanguageModelDictContent.save(file)) {
-        AKLOGE("Language model dict content cannot be written.");
-        return false;
-    }
-    // Write bigram dict content.
-    if (!mBigramDictContent.flushToFile(file)) {
-        AKLOGE("Bigram dict content cannot be written.");
-        return false;
-    }
-    // Write shortcut dict content.
-    if (!mShortcutDictContent.flushToFile(file)) {
-        AKLOGE("Shortcut dict content cannot be written.");
-        return false;
-    }
-    return true;
-}
-
-Ver4DictBuffers::Ver4DictBuffers(MmappedBuffer::MmappedBufferPtr &&headerBuffer,
-        MmappedBuffer::MmappedBufferPtr &&bodyBuffer,
-        const FormatUtils::FORMAT_VERSION formatVersion,
-        const std::vector<uint8_t *> &contentBuffers, const std::vector<int> &contentBufferSizes)
-        : mHeaderBuffer(std::move(headerBuffer)), mDictBuffer(std::move(bodyBuffer)),
-          mHeaderPolicy(mHeaderBuffer->getReadOnlyByteArrayView().data(), formatVersion),
-          mExpandableHeaderBuffer(mHeaderBuffer->getReadWriteByteArrayView(),
-                  BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
-          mExpandableTrieBuffer(
-                  ReadWriteByteArrayView(contentBuffers[Ver4DictConstants::TRIE_BUFFER_INDEX],
-                          contentBufferSizes[Ver4DictConstants::TRIE_BUFFER_INDEX]),
-                  BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE),
-          mTerminalPositionLookupTable(
-                  contentBuffers[Ver4DictConstants::TERMINAL_ADDRESS_LOOKUP_TABLE_BUFFER_INDEX],
-                  contentBufferSizes[
-                          Ver4DictConstants::TERMINAL_ADDRESS_LOOKUP_TABLE_BUFFER_INDEX]),
-          mLanguageModelDictContent(
-                  ReadWriteByteArrayView(
-                          contentBuffers[Ver4DictConstants::LANGUAGE_MODEL_BUFFER_INDEX],
-                          contentBufferSizes[Ver4DictConstants::LANGUAGE_MODEL_BUFFER_INDEX]),
-                  mHeaderPolicy.hasHistoricalInfoOfWords()),
-          mBigramDictContent(&contentBuffers[Ver4DictConstants::BIGRAM_BUFFERS_INDEX],
-                  &contentBufferSizes[Ver4DictConstants::BIGRAM_BUFFERS_INDEX],
-                  mHeaderPolicy.hasHistoricalInfoOfWords()),
-          mShortcutDictContent(&contentBuffers[Ver4DictConstants::SHORTCUT_BUFFERS_INDEX],
-                  &contentBufferSizes[Ver4DictConstants::SHORTCUT_BUFFERS_INDEX]),
-          mIsUpdatable(mDictBuffer->isUpdatable()) {}
-
-Ver4DictBuffers::Ver4DictBuffers(const HeaderPolicy *const headerPolicy, const int maxTrieSize)
-        : mHeaderBuffer(nullptr), mDictBuffer(nullptr), mHeaderPolicy(headerPolicy),
-          mExpandableHeaderBuffer(Ver4DictConstants::MAX_DICTIONARY_SIZE),
-          mExpandableTrieBuffer(maxTrieSize), mTerminalPositionLookupTable(),
-          mLanguageModelDictContent(headerPolicy->hasHistoricalInfoOfWords()),
-          mBigramDictContent(headerPolicy->hasHistoricalInfoOfWords()), mShortcutDictContent(),
-          mIsUpdatable(true) {}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h
deleted file mode 100644
index 68027dc..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_VER4_DICT_BUFFER_H
-#define LATINIME_VER4_DICT_BUFFER_H
-
-#include <cstdio>
-#include <memory>
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/bigram_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/shortcut_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/mmapped_buffer.h"
-
-namespace latinime {
-
-class Ver4DictBuffers {
- public:
-    typedef std::unique_ptr<Ver4DictBuffers> Ver4DictBuffersPtr;
-
-    static Ver4DictBuffersPtr openVer4DictBuffers(const char *const dictDirPath,
-            MmappedBuffer::MmappedBufferPtr &&headerBuffer,
-            const FormatUtils::FORMAT_VERSION formatVersion);
-
-    static AK_FORCE_INLINE Ver4DictBuffersPtr createVer4DictBuffers(
-            const HeaderPolicy *const headerPolicy, const int maxTrieSize) {
-        return Ver4DictBuffersPtr(new Ver4DictBuffers(headerPolicy, maxTrieSize));
-    }
-
-    AK_FORCE_INLINE bool isValid() const {
-        return mHeaderBuffer && mDictBuffer && mHeaderPolicy.isValid();
-    }
-
-    AK_FORCE_INLINE bool isNearSizeLimit() const {
-        return mExpandableTrieBuffer.isNearSizeLimit()
-                || mTerminalPositionLookupTable.isNearSizeLimit()
-                || mLanguageModelDictContent.isNearSizeLimit()
-                || mBigramDictContent.isNearSizeLimit()
-                || mShortcutDictContent.isNearSizeLimit();
-    }
-
-    AK_FORCE_INLINE const HeaderPolicy *getHeaderPolicy() const {
-        return &mHeaderPolicy;
-    }
-
-    AK_FORCE_INLINE BufferWithExtendableBuffer *getWritableHeaderBuffer() {
-        return &mExpandableHeaderBuffer;
-    }
-
-    AK_FORCE_INLINE BufferWithExtendableBuffer *getWritableTrieBuffer() {
-        return &mExpandableTrieBuffer;
-    }
-
-    AK_FORCE_INLINE const BufferWithExtendableBuffer *getTrieBuffer() const {
-        return &mExpandableTrieBuffer;
-    }
-
-    AK_FORCE_INLINE TerminalPositionLookupTable *getMutableTerminalPositionLookupTable() {
-        return &mTerminalPositionLookupTable;
-    }
-
-    AK_FORCE_INLINE const TerminalPositionLookupTable *getTerminalPositionLookupTable() const {
-        return &mTerminalPositionLookupTable;
-    }
-
-    AK_FORCE_INLINE LanguageModelDictContent *getMutableLanguageModelDictContent() {
-        return &mLanguageModelDictContent;
-    }
-
-    AK_FORCE_INLINE const LanguageModelDictContent *getLanguageModelDictContent() const {
-        return &mLanguageModelDictContent;
-    }
-
-    AK_FORCE_INLINE BigramDictContent *getMutableBigramDictContent() {
-        return &mBigramDictContent;
-    }
-
-    AK_FORCE_INLINE const BigramDictContent *getBigramDictContent() const {
-        return &mBigramDictContent;
-    }
-
-    AK_FORCE_INLINE ShortcutDictContent *getMutableShortcutDictContent() {
-        return &mShortcutDictContent;
-    }
-
-    AK_FORCE_INLINE const ShortcutDictContent *getShortcutDictContent() const {
-        return &mShortcutDictContent;
-    }
-
-    AK_FORCE_INLINE bool isUpdatable() const {
-        return mIsUpdatable;
-    }
-
-    bool flush(const char *const dictDirPath) const {
-        return flushHeaderAndDictBuffers(dictDirPath, &mExpandableHeaderBuffer);
-    }
-
-    bool flushHeaderAndDictBuffers(const char *const dictDirPath,
-            const BufferWithExtendableBuffer *const headerBuffer) const;
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(Ver4DictBuffers);
-
-    Ver4DictBuffers(MmappedBuffer::MmappedBufferPtr &&headerBuffer,
-            MmappedBuffer::MmappedBufferPtr &&bodyBuffer,
-            const FormatUtils::FORMAT_VERSION formatVersion,
-            const std::vector<uint8_t *> &contentBuffers,
-            const std::vector<int> &contentBufferSizes);
-
-    Ver4DictBuffers(const HeaderPolicy *const headerPolicy, const int maxTrieSize);
-
-    bool flushDictBuffers(FILE *const file) const;
-
-    const MmappedBuffer::MmappedBufferPtr mHeaderBuffer;
-    const MmappedBuffer::MmappedBufferPtr mDictBuffer;
-    const HeaderPolicy mHeaderPolicy;
-    BufferWithExtendableBuffer mExpandableHeaderBuffer;
-    BufferWithExtendableBuffer mExpandableTrieBuffer;
-    TerminalPositionLookupTable mTerminalPositionLookupTable;
-    LanguageModelDictContent mLanguageModelDictContent;
-    BigramDictContent mBigramDictContent;
-    ShortcutDictContent mShortcutDictContent;
-    const int mIsUpdatable;
-};
-} // namespace latinime
-#endif /* LATINIME_VER4_DICT_BUFFER_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.cpp
deleted file mode 100644
index 93d4e56..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
-
-namespace latinime {
-
-const char *const Ver4DictConstants::BODY_FILE_EXTENSION = ".body";
-const char *const Ver4DictConstants::HEADER_FILE_EXTENSION = ".header";
-
-// Version 4 dictionary size is implicitly limited to 8MB due to 3-byte offsets.
-const int Ver4DictConstants::MAX_DICTIONARY_SIZE = 8 * 1024 * 1024;
-// Extended region size, which is not GCed region size in dict file + additional buffer size, is
-// limited to 1MB to prevent from inefficient traversing.
-const int Ver4DictConstants::MAX_DICT_EXTENDED_REGION_SIZE = 1 * 1024 * 1024;
-
-// NUM_OF_BUFFERS_FOR_SINGLE_DICT_CONTENT for Trie and TerminalAddressLookupTable.
-// NUM_OF_BUFFERS_FOR_LANGUAGE_MODEL_DICT_CONTENT for language model.
-// NUM_OF_BUFFERS_FOR_SPARSE_TABLE_DICT_CONTENT for bigram and shortcut.
-const size_t Ver4DictConstants::NUM_OF_CONTENT_BUFFERS_IN_BODY_FILE =
-        NUM_OF_BUFFERS_FOR_SINGLE_DICT_CONTENT * 2
-                + NUM_OF_BUFFERS_FOR_LANGUAGE_MODEL_DICT_CONTENT
-                + NUM_OF_BUFFERS_FOR_SPARSE_TABLE_DICT_CONTENT * 2;
-const int Ver4DictConstants::TRIE_BUFFER_INDEX = 0;
-const int Ver4DictConstants::TERMINAL_ADDRESS_LOOKUP_TABLE_BUFFER_INDEX =
-        TRIE_BUFFER_INDEX + NUM_OF_BUFFERS_FOR_SINGLE_DICT_CONTENT;
-const int Ver4DictConstants::LANGUAGE_MODEL_BUFFER_INDEX =
-        TERMINAL_ADDRESS_LOOKUP_TABLE_BUFFER_INDEX + NUM_OF_BUFFERS_FOR_SINGLE_DICT_CONTENT;
-const int Ver4DictConstants::BIGRAM_BUFFERS_INDEX =
-        LANGUAGE_MODEL_BUFFER_INDEX + NUM_OF_BUFFERS_FOR_LANGUAGE_MODEL_DICT_CONTENT;
-const int Ver4DictConstants::SHORTCUT_BUFFERS_INDEX =
-        BIGRAM_BUFFERS_INDEX + NUM_OF_BUFFERS_FOR_SPARSE_TABLE_DICT_CONTENT;
-
-const int Ver4DictConstants::NOT_A_TERMINAL_ID = -1;
-const int Ver4DictConstants::PROBABILITY_SIZE = 1;
-const int Ver4DictConstants::FLAGS_IN_PROBABILITY_FILE_SIZE = 1;
-const int Ver4DictConstants::TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE = 3;
-const int Ver4DictConstants::NOT_A_TERMINAL_ADDRESS = 0;
-const int Ver4DictConstants::TERMINAL_ID_FIELD_SIZE = 4;
-const int Ver4DictConstants::TIME_STAMP_FIELD_SIZE = 4;
-const int Ver4DictConstants::WORD_LEVEL_FIELD_SIZE = 1;
-const int Ver4DictConstants::WORD_COUNT_FIELD_SIZE = 1;
-
-const int Ver4DictConstants::BIGRAM_ADDRESS_TABLE_BLOCK_SIZE = 16;
-const int Ver4DictConstants::BIGRAM_ADDRESS_TABLE_DATA_SIZE = 4;
-const int Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_BLOCK_SIZE = 64;
-const int Ver4DictConstants::SHORTCUT_ADDRESS_TABLE_DATA_SIZE = 4;
-
-const int Ver4DictConstants::BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE = 3;
-// Unsigned int max value of BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE-byte is used for representing
-// invalid terminal ID in bigram lists.
-const int Ver4DictConstants::INVALID_BIGRAM_TARGET_TERMINAL_ID =
-        (1 << (BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE * 8)) - 1;
-const int Ver4DictConstants::BIGRAM_FLAGS_FIELD_SIZE = 1;
-const int Ver4DictConstants::BIGRAM_PROBABILITY_MASK = 0x0F;
-const int Ver4DictConstants::BIGRAM_IS_LINK_MASK = 0x80;
-const int Ver4DictConstants::BIGRAM_LARGE_PROBABILITY_FIELD_SIZE = 1;
-
-const int Ver4DictConstants::SHORTCUT_FLAGS_FIELD_SIZE = 1;
-const int Ver4DictConstants::SHORTCUT_PROBABILITY_MASK = 0x0F;
-const int Ver4DictConstants::SHORTCUT_HAS_NEXT_MASK = 0x80;
-
-const size_t Ver4DictConstants::NUM_OF_BUFFERS_FOR_SINGLE_DICT_CONTENT = 1;
-const size_t Ver4DictConstants::NUM_OF_BUFFERS_FOR_SPARSE_TABLE_DICT_CONTENT = 3;
-const size_t Ver4DictConstants::NUM_OF_BUFFERS_FOR_LANGUAGE_MODEL_DICT_CONTENT = 1;
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h
deleted file mode 100644
index 6950ca7..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_VER4_DICT_CONSTANTS_H
-#define LATINIME_VER4_DICT_CONSTANTS_H
-
-#include "defines.h"
-
-#include <cstddef>
-
-namespace latinime {
-
-// TODO: Create PtConstants under the pt_common and move some constant values there.
-// Note that there are corresponding definitions in FormatSpec.java.
-class Ver4DictConstants {
- public:
-    static const char *const BODY_FILE_EXTENSION;
-    static const char *const HEADER_FILE_EXTENSION;
-    static const int MAX_DICTIONARY_SIZE;
-    static const int MAX_DICT_EXTENDED_REGION_SIZE;
-
-    static const size_t NUM_OF_CONTENT_BUFFERS_IN_BODY_FILE;
-    static const int TRIE_BUFFER_INDEX;
-    static const int TERMINAL_ADDRESS_LOOKUP_TABLE_BUFFER_INDEX;
-    static const int LANGUAGE_MODEL_BUFFER_INDEX;
-    static const int BIGRAM_BUFFERS_INDEX;
-    static const int SHORTCUT_BUFFERS_INDEX;
-
-    static const int NOT_A_TERMINAL_ID;
-    static const int PROBABILITY_SIZE;
-    static const int FLAGS_IN_PROBABILITY_FILE_SIZE;
-    static const int TERMINAL_ADDRESS_TABLE_ADDRESS_SIZE;
-    static const int NOT_A_TERMINAL_ADDRESS;
-    static const int TERMINAL_ID_FIELD_SIZE;
-    static const int TIME_STAMP_FIELD_SIZE;
-    static const int WORD_LEVEL_FIELD_SIZE;
-    static const int WORD_COUNT_FIELD_SIZE;
-
-    static const int BIGRAM_ADDRESS_TABLE_BLOCK_SIZE;
-    static const int BIGRAM_ADDRESS_TABLE_DATA_SIZE;
-    static const int SHORTCUT_ADDRESS_TABLE_BLOCK_SIZE;
-    static const int SHORTCUT_ADDRESS_TABLE_DATA_SIZE;
-
-    static const int BIGRAM_FLAGS_FIELD_SIZE;
-    static const int BIGRAM_TARGET_TERMINAL_ID_FIELD_SIZE;
-    static const int INVALID_BIGRAM_TARGET_TERMINAL_ID;
-    static const int BIGRAM_IS_LINK_MASK;
-    static const int BIGRAM_PROBABILITY_MASK;
-    // Used when bigram list has time stamp.
-    static const int BIGRAM_LARGE_PROBABILITY_FIELD_SIZE;
-
-    static const int SHORTCUT_FLAGS_FIELD_SIZE;
-    static const int SHORTCUT_PROBABILITY_MASK;
-    static const int SHORTCUT_HAS_NEXT_MASK;
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(Ver4DictConstants);
-
-    static const size_t NUM_OF_BUFFERS_FOR_SINGLE_DICT_CONTENT;
-    static const size_t NUM_OF_BUFFERS_FOR_SPARSE_TABLE_DICT_CONTENT;
-    static const size_t NUM_OF_BUFFERS_FOR_LANGUAGE_MODEL_DICT_CONTENT;
-};
-} // namespace latinime
-#endif /* LATINIME_VER4_DICT_CONSTANTS_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.cpp
deleted file mode 100644
index 731092e..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.cpp
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.h"
-
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/probability_entry.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_reading_utils.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h"
-
-namespace latinime {
-
-const PtNodeParams Ver4PatriciaTrieNodeReader::fetchPtNodeInfoFromBufferAndProcessMovedPtNode(
-        const int ptNodePos, const int siblingNodePos) const {
-    if (ptNodePos < 0 || ptNodePos >= mBuffer->getTailPosition()) {
-        // Reading invalid position because of bug or broken dictionary.
-        AKLOGE("Fetching PtNode info from invalid dictionary position: %d, dictionary size: %d",
-                ptNodePos, mBuffer->getTailPosition());
-        ASSERT(false);
-        return PtNodeParams();
-    }
-    const bool usesAdditionalBuffer = mBuffer->isInAdditionalBuffer(ptNodePos);
-    const uint8_t *const dictBuf = mBuffer->getBuffer(usesAdditionalBuffer);
-    int pos = ptNodePos;
-    const int headPos = ptNodePos;
-    if (usesAdditionalBuffer) {
-        pos -= mBuffer->getOriginalBufferSize();
-    }
-    const PatriciaTrieReadingUtils::NodeFlags flags =
-            PatriciaTrieReadingUtils::getFlagsAndAdvancePosition(dictBuf, &pos);
-    const int parentPosOffset =
-            DynamicPtReadingUtils::getParentPtNodePosOffsetAndAdvancePosition(
-                    dictBuf, &pos);
-    const int parentPos =
-            DynamicPtReadingUtils::getParentPtNodePos(parentPosOffset, headPos);
-    int codePoints[MAX_WORD_LENGTH];
-    const int codePonitCount = PatriciaTrieReadingUtils::getCharsAndAdvancePosition(
-            dictBuf, flags, MAX_WORD_LENGTH, codePoints, &pos);
-    int terminalIdFieldPos = NOT_A_DICT_POS;
-    int terminalId = Ver4DictConstants::NOT_A_TERMINAL_ID;
-    int probability = NOT_A_PROBABILITY;
-    if (PatriciaTrieReadingUtils::isTerminal(flags)) {
-        terminalIdFieldPos = pos;
-        if (usesAdditionalBuffer) {
-            terminalIdFieldPos += mBuffer->getOriginalBufferSize();
-        }
-        terminalId = Ver4PatriciaTrieReadingUtils::getTerminalIdAndAdvancePosition(dictBuf, &pos);
-        // TODO: Quit reading probability here.
-        const ProbabilityEntry probabilityEntry =
-                mLanguageModelDictContent->getProbabilityEntry(terminalId);
-        if (probabilityEntry.hasHistoricalInfo()) {
-            probability = ForgettingCurveUtils::decodeProbability(
-                    probabilityEntry.getHistoricalInfo(), mHeaderPolicy);
-        } else {
-            probability = probabilityEntry.getProbability();
-        }
-    }
-    int childrenPosFieldPos = pos;
-    if (usesAdditionalBuffer) {
-        childrenPosFieldPos += mBuffer->getOriginalBufferSize();
-    }
-    int childrenPos = DynamicPtReadingUtils::readChildrenPositionAndAdvancePosition(
-            dictBuf, &pos);
-    if (usesAdditionalBuffer && childrenPos != NOT_A_DICT_POS) {
-        childrenPos += mBuffer->getOriginalBufferSize();
-    }
-    if (usesAdditionalBuffer) {
-        pos += mBuffer->getOriginalBufferSize();
-    }
-    // Sibling position is the tail position of original PtNode.
-    int newSiblingNodePos = (siblingNodePos == NOT_A_DICT_POS) ? pos : siblingNodePos;
-    // Read destination node if the read node is a moved node.
-    if (DynamicPtReadingUtils::isMoved(flags)) {
-        // The destination position is stored at the same place as the parent position.
-        return fetchPtNodeInfoFromBufferAndProcessMovedPtNode(parentPos, newSiblingNodePos);
-    } else {
-        return PtNodeParams(headPos, flags, parentPos, codePonitCount, codePoints,
-                terminalIdFieldPos, terminalId, probability, childrenPosFieldPos, childrenPos,
-                newSiblingNodePos);
-    }
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.h
deleted file mode 100644
index a91ad57..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_VER4_PATRICIA_TRIE_NODE_READER_H
-#define LATINIME_VER4_PATRICIA_TRIE_NODE_READER_H
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_reader.h"
-
-namespace latinime {
-
-class BufferWithExtendableBuffer;
-class HeaderPolicy;
-class LanguageModelDictContent;
-
-/*
- * This class is used for helping to read nodes of ver4 patricia trie. This class handles moved
- * node and reads node attributes including probability form language model.
- */
-class Ver4PatriciaTrieNodeReader : public PtNodeReader {
- public:
-    Ver4PatriciaTrieNodeReader(const BufferWithExtendableBuffer *const buffer,
-            const LanguageModelDictContent *const languageModelDictContent,
-            const HeaderPolicy *const headerPolicy)
-            : mBuffer(buffer), mLanguageModelDictContent(languageModelDictContent),
-              mHeaderPolicy(headerPolicy) {}
-
-    ~Ver4PatriciaTrieNodeReader() {}
-
-    virtual const PtNodeParams fetchPtNodeParamsInBufferFromPtNodePos(const int ptNodePos) const {
-        return fetchPtNodeInfoFromBufferAndProcessMovedPtNode(ptNodePos,
-                NOT_A_DICT_POS /* siblingNodePos */);
-    }
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(Ver4PatriciaTrieNodeReader);
-
-    const BufferWithExtendableBuffer *const mBuffer;
-    const LanguageModelDictContent *const mLanguageModelDictContent;
-    const HeaderPolicy *const mHeaderPolicy;
-
-    const PtNodeParams fetchPtNodeInfoFromBufferAndProcessMovedPtNode(const int ptNodePos,
-            const int siblingNodePos) const;
-};
-} // namespace latinime
-#endif /* LATINIME_VER4_PATRICIA_TRIE_NODE_READER_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.cpp
deleted file mode 100644
index 857222f..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.cpp
+++ /dev/null
@@ -1,387 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.h"
-
-#include "suggest/core/dictionary/property/unigram_property.h"
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/v4/bigram/ver4_bigram_list_policy.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/probability_entry.h"
-#include "suggest/policyimpl/dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h"
-
-namespace latinime {
-
-const int Ver4PatriciaTrieNodeWriter::CHILDREN_POSITION_FIELD_SIZE = 3;
-
-bool Ver4PatriciaTrieNodeWriter::markPtNodeAsDeleted(
-        const PtNodeParams *const toBeUpdatedPtNodeParams) {
-    int pos = toBeUpdatedPtNodeParams->getHeadPos();
-    const bool usesAdditionalBuffer = mTrieBuffer->isInAdditionalBuffer(pos);
-    const uint8_t *const dictBuf = mTrieBuffer->getBuffer(usesAdditionalBuffer);
-    if (usesAdditionalBuffer) {
-        pos -= mTrieBuffer->getOriginalBufferSize();
-    }
-    // Read original flags
-    const PatriciaTrieReadingUtils::NodeFlags originalFlags =
-            PatriciaTrieReadingUtils::getFlagsAndAdvancePosition(dictBuf, &pos);
-    const PatriciaTrieReadingUtils::NodeFlags updatedFlags =
-            DynamicPtReadingUtils::updateAndGetFlags(originalFlags, false /* isMoved */,
-                    true /* isDeleted */, false /* willBecomeNonTerminal */);
-    int writingPos = toBeUpdatedPtNodeParams->getHeadPos();
-    // Update flags.
-    if (!DynamicPtWritingUtils::writeFlagsAndAdvancePosition(mTrieBuffer, updatedFlags,
-            &writingPos)) {
-        return false;
-    }
-    if (toBeUpdatedPtNodeParams->isTerminal()) {
-        // The PtNode is a terminal. Delete entry from the terminal position lookup table.
-        return mBuffers->getMutableTerminalPositionLookupTable()->setTerminalPtNodePosition(
-                toBeUpdatedPtNodeParams->getTerminalId(), NOT_A_DICT_POS /* ptNodePos */);
-    } else {
-        return true;
-    }
-}
-
-bool Ver4PatriciaTrieNodeWriter::markPtNodeAsMoved(
-        const PtNodeParams *const toBeUpdatedPtNodeParams,
-        const int movedPos, const int bigramLinkedNodePos) {
-    int pos = toBeUpdatedPtNodeParams->getHeadPos();
-    const bool usesAdditionalBuffer = mTrieBuffer->isInAdditionalBuffer(pos);
-    const uint8_t *const dictBuf = mTrieBuffer->getBuffer(usesAdditionalBuffer);
-    if (usesAdditionalBuffer) {
-        pos -= mTrieBuffer->getOriginalBufferSize();
-    }
-    // Read original flags
-    const PatriciaTrieReadingUtils::NodeFlags originalFlags =
-            PatriciaTrieReadingUtils::getFlagsAndAdvancePosition(dictBuf, &pos);
-    const PatriciaTrieReadingUtils::NodeFlags updatedFlags =
-            DynamicPtReadingUtils::updateAndGetFlags(originalFlags, true /* isMoved */,
-                    false /* isDeleted */, false /* willBecomeNonTerminal */);
-    int writingPos = toBeUpdatedPtNodeParams->getHeadPos();
-    // Update flags.
-    if (!DynamicPtWritingUtils::writeFlagsAndAdvancePosition(mTrieBuffer, updatedFlags,
-            &writingPos)) {
-        return false;
-    }
-    // Update moved position, which is stored in the parent offset field.
-    if (!DynamicPtWritingUtils::writeParentPosOffsetAndAdvancePosition(
-            mTrieBuffer, movedPos, toBeUpdatedPtNodeParams->getHeadPos(), &writingPos)) {
-        return false;
-    }
-    if (toBeUpdatedPtNodeParams->hasChildren()) {
-        // Update children's parent position.
-        mReadingHelper.initWithPtNodeArrayPos(toBeUpdatedPtNodeParams->getChildrenPos());
-        while (!mReadingHelper.isEnd()) {
-            const PtNodeParams childPtNodeParams(mReadingHelper.getPtNodeParams());
-            int parentOffsetFieldPos = childPtNodeParams.getHeadPos()
-                    + DynamicPtWritingUtils::NODE_FLAG_FIELD_SIZE;
-            if (!DynamicPtWritingUtils::writeParentPosOffsetAndAdvancePosition(
-                    mTrieBuffer, bigramLinkedNodePos, childPtNodeParams.getHeadPos(),
-                    &parentOffsetFieldPos)) {
-                // Parent offset cannot be written because of a bug or a broken dictionary; thus,
-                // we give up to update dictionary.
-                return false;
-            }
-            mReadingHelper.readNextSiblingNode(childPtNodeParams);
-        }
-    }
-    return true;
-}
-
-bool Ver4PatriciaTrieNodeWriter::markPtNodeAsWillBecomeNonTerminal(
-        const PtNodeParams *const toBeUpdatedPtNodeParams) {
-    int pos = toBeUpdatedPtNodeParams->getHeadPos();
-    const bool usesAdditionalBuffer = mTrieBuffer->isInAdditionalBuffer(pos);
-    const uint8_t *const dictBuf = mTrieBuffer->getBuffer(usesAdditionalBuffer);
-    if (usesAdditionalBuffer) {
-        pos -= mTrieBuffer->getOriginalBufferSize();
-    }
-    // Read original flags
-    const PatriciaTrieReadingUtils::NodeFlags originalFlags =
-            PatriciaTrieReadingUtils::getFlagsAndAdvancePosition(dictBuf, &pos);
-    const PatriciaTrieReadingUtils::NodeFlags updatedFlags =
-            DynamicPtReadingUtils::updateAndGetFlags(originalFlags, false /* isMoved */,
-                    false /* isDeleted */, true /* willBecomeNonTerminal */);
-    if (!mBuffers->getMutableTerminalPositionLookupTable()->setTerminalPtNodePosition(
-            toBeUpdatedPtNodeParams->getTerminalId(), NOT_A_DICT_POS /* ptNodePos */)) {
-        AKLOGE("Cannot update terminal position lookup table. terminal id: %d",
-                toBeUpdatedPtNodeParams->getTerminalId());
-        return false;
-    }
-    // Update flags.
-    int writingPos = toBeUpdatedPtNodeParams->getHeadPos();
-    return DynamicPtWritingUtils::writeFlagsAndAdvancePosition(mTrieBuffer, updatedFlags,
-            &writingPos);
-}
-
-bool Ver4PatriciaTrieNodeWriter::updatePtNodeUnigramProperty(
-        const PtNodeParams *const toBeUpdatedPtNodeParams,
-        const UnigramProperty *const unigramProperty) {
-    // Update probability and historical information.
-    // TODO: Update other information in the unigram property.
-    if (!toBeUpdatedPtNodeParams->isTerminal()) {
-        return false;
-    }
-    const ProbabilityEntry originalProbabilityEntry =
-            mBuffers->getLanguageModelDictContent()->getProbabilityEntry(
-                    toBeUpdatedPtNodeParams->getTerminalId());
-    const ProbabilityEntry probabilityEntry = createUpdatedEntryFrom(&originalProbabilityEntry,
-            unigramProperty);
-    return mBuffers->getMutableLanguageModelDictContent()->setProbabilityEntry(
-            toBeUpdatedPtNodeParams->getTerminalId(), &probabilityEntry);
-}
-
-bool Ver4PatriciaTrieNodeWriter::updatePtNodeProbabilityAndGetNeedsToKeepPtNodeAfterGC(
-        const PtNodeParams *const toBeUpdatedPtNodeParams, bool *const outNeedsToKeepPtNode) {
-    if (!toBeUpdatedPtNodeParams->isTerminal()) {
-        AKLOGE("updatePtNodeProbabilityAndGetNeedsToSaveForGC is called for non-terminal PtNode.");
-        return false;
-    }
-    const ProbabilityEntry originalProbabilityEntry =
-            mBuffers->getLanguageModelDictContent()->getProbabilityEntry(
-                    toBeUpdatedPtNodeParams->getTerminalId());
-    if (originalProbabilityEntry.hasHistoricalInfo()) {
-        const HistoricalInfo historicalInfo = ForgettingCurveUtils::createHistoricalInfoToSave(
-                originalProbabilityEntry.getHistoricalInfo(), mHeaderPolicy);
-        const ProbabilityEntry probabilityEntry =
-                originalProbabilityEntry.createEntryWithUpdatedHistoricalInfo(&historicalInfo);
-        if (!mBuffers->getMutableLanguageModelDictContent()->setProbabilityEntry(
-                toBeUpdatedPtNodeParams->getTerminalId(), &probabilityEntry)) {
-            AKLOGE("Cannot write updated probability entry. terminalId: %d",
-                    toBeUpdatedPtNodeParams->getTerminalId());
-            return false;
-        }
-        const bool isValid = ForgettingCurveUtils::needsToKeep(&historicalInfo, mHeaderPolicy);
-        if (!isValid) {
-            if (!markPtNodeAsWillBecomeNonTerminal(toBeUpdatedPtNodeParams)) {
-                AKLOGE("Cannot mark PtNode as willBecomeNonTerminal.");
-                return false;
-            }
-        }
-        *outNeedsToKeepPtNode = isValid;
-    } else {
-        // No need to update probability.
-        *outNeedsToKeepPtNode = true;
-    }
-    return true;
-}
-
-bool Ver4PatriciaTrieNodeWriter::updateChildrenPosition(
-        const PtNodeParams *const toBeUpdatedPtNodeParams, const int newChildrenPosition) {
-    int childrenPosFieldPos = toBeUpdatedPtNodeParams->getChildrenPosFieldPos();
-    return DynamicPtWritingUtils::writeChildrenPositionAndAdvancePosition(mTrieBuffer,
-            newChildrenPosition, &childrenPosFieldPos);
-}
-
-bool Ver4PatriciaTrieNodeWriter::updateTerminalId(const PtNodeParams *const toBeUpdatedPtNodeParams,
-        const int newTerminalId) {
-    return mTrieBuffer->writeUint(newTerminalId, Ver4DictConstants::TERMINAL_ID_FIELD_SIZE,
-            toBeUpdatedPtNodeParams->getTerminalIdFieldPos());
-}
-
-bool Ver4PatriciaTrieNodeWriter::writePtNodeAndAdvancePosition(
-        const PtNodeParams *const ptNodeParams, int *const ptNodeWritingPos) {
-    return writePtNodeAndGetTerminalIdAndAdvancePosition(ptNodeParams, 0 /* outTerminalId */,
-            ptNodeWritingPos);
-}
-
-
-bool Ver4PatriciaTrieNodeWriter::writeNewTerminalPtNodeAndAdvancePosition(
-        const PtNodeParams *const ptNodeParams, const UnigramProperty *const unigramProperty,
-        int *const ptNodeWritingPos) {
-    int terminalId = Ver4DictConstants::NOT_A_TERMINAL_ID;
-    if (!writePtNodeAndGetTerminalIdAndAdvancePosition(ptNodeParams, &terminalId,
-            ptNodeWritingPos)) {
-        return false;
-    }
-    // Write probability.
-    ProbabilityEntry newProbabilityEntry;
-    const ProbabilityEntry probabilityEntryToWrite = createUpdatedEntryFrom(
-            &newProbabilityEntry, unigramProperty);
-    return mBuffers->getMutableLanguageModelDictContent()->setProbabilityEntry(
-            terminalId, &probabilityEntryToWrite);
-}
-
-bool Ver4PatriciaTrieNodeWriter::addNgramEntry(const WordIdArrayView prevWordIds, const int wordId,
-        const BigramProperty *const bigramProperty, bool *const outAddedNewBigram) {
-    if (!mBigramPolicy->addNewEntry(prevWordIds[0], wordId, bigramProperty, outAddedNewBigram)) {
-        AKLOGE("Cannot add new bigram entry. terminalId: %d, targetTerminalId: %d",
-                prevWordIds[0], wordId);
-        return false;
-    }
-    return true;
-}
-
-bool Ver4PatriciaTrieNodeWriter::removeNgramEntry(const WordIdArrayView prevWordIds,
-        const int wordId) {
-    return mBigramPolicy->removeEntry(prevWordIds[0], wordId);
-}
-
-bool Ver4PatriciaTrieNodeWriter::updateAllBigramEntriesAndDeleteUselessEntries(
-            const PtNodeParams *const sourcePtNodeParams, int *const outBigramEntryCount) {
-    return mBigramPolicy->updateAllBigramEntriesAndDeleteUselessEntries(
-            sourcePtNodeParams->getTerminalId(), outBigramEntryCount);
-}
-
-bool Ver4PatriciaTrieNodeWriter::updateAllPositionFields(
-        const PtNodeParams *const toBeUpdatedPtNodeParams,
-        const DictPositionRelocationMap *const dictPositionRelocationMap,
-        int *const outBigramEntryCount) {
-    int parentPos = toBeUpdatedPtNodeParams->getParentPos();
-    if (parentPos != NOT_A_DICT_POS) {
-        PtNodeWriter::PtNodePositionRelocationMap::const_iterator it =
-                dictPositionRelocationMap->mPtNodePositionRelocationMap.find(parentPos);
-        if (it != dictPositionRelocationMap->mPtNodePositionRelocationMap.end()) {
-            parentPos = it->second;
-        }
-    }
-    int writingPos = toBeUpdatedPtNodeParams->getHeadPos()
-            + DynamicPtWritingUtils::NODE_FLAG_FIELD_SIZE;
-    // Write updated parent offset.
-    if (!DynamicPtWritingUtils::writeParentPosOffsetAndAdvancePosition(mTrieBuffer,
-            parentPos, toBeUpdatedPtNodeParams->getHeadPos(), &writingPos)) {
-        return false;
-    }
-
-    // Updates children position.
-    int childrenPos = toBeUpdatedPtNodeParams->getChildrenPos();
-    if (childrenPos != NOT_A_DICT_POS) {
-        PtNodeWriter::PtNodeArrayPositionRelocationMap::const_iterator it =
-                dictPositionRelocationMap->mPtNodeArrayPositionRelocationMap.find(childrenPos);
-        if (it != dictPositionRelocationMap->mPtNodeArrayPositionRelocationMap.end()) {
-            childrenPos = it->second;
-        }
-    }
-    if (!updateChildrenPosition(toBeUpdatedPtNodeParams, childrenPos)) {
-        return false;
-    }
-
-    // Counts bigram entries.
-    if (outBigramEntryCount) {
-        *outBigramEntryCount = mBigramPolicy->getBigramEntryConut(
-                toBeUpdatedPtNodeParams->getTerminalId());
-    }
-    return true;
-}
-
-bool Ver4PatriciaTrieNodeWriter::addShortcutTarget(const PtNodeParams *const ptNodeParams,
-        const int *const targetCodePoints, const int targetCodePointCount,
-        const int shortcutProbability) {
-    if (!mShortcutPolicy->addNewShortcut(ptNodeParams->getTerminalId(),
-            targetCodePoints, targetCodePointCount, shortcutProbability)) {
-        AKLOGE("Cannot add new shortuct entry. terminalId: %d", ptNodeParams->getTerminalId());
-        return false;
-    }
-    return true;
-}
-
-bool Ver4PatriciaTrieNodeWriter::writePtNodeAndGetTerminalIdAndAdvancePosition(
-        const PtNodeParams *const ptNodeParams, int *const outTerminalId,
-        int *const ptNodeWritingPos) {
-    const int nodePos = *ptNodeWritingPos;
-    // Write dummy flags. The Node flags are updated with appropriate flags at the last step of the
-    // PtNode writing.
-    if (!DynamicPtWritingUtils::writeFlagsAndAdvancePosition(mTrieBuffer,
-            0 /* nodeFlags */, ptNodeWritingPos)) {
-        return false;
-    }
-    // Calculate a parent offset and write the offset.
-    if (!DynamicPtWritingUtils::writeParentPosOffsetAndAdvancePosition(mTrieBuffer,
-            ptNodeParams->getParentPos(), nodePos, ptNodeWritingPos)) {
-        return false;
-    }
-    // Write code points
-    if (!DynamicPtWritingUtils::writeCodePointsAndAdvancePosition(mTrieBuffer,
-            ptNodeParams->getCodePoints(), ptNodeParams->getCodePointCount(), ptNodeWritingPos)) {
-        return false;
-    }
-    int terminalId = Ver4DictConstants::NOT_A_TERMINAL_ID;
-    if (!ptNodeParams->willBecomeNonTerminal()) {
-        if (ptNodeParams->getTerminalId() != Ver4DictConstants::NOT_A_TERMINAL_ID) {
-            terminalId = ptNodeParams->getTerminalId();
-        } else if (ptNodeParams->isTerminal()) {
-            // Write terminal information using a new terminal id.
-            // Get a new unused terminal id.
-            terminalId = mBuffers->getTerminalPositionLookupTable()->getNextTerminalId();
-        }
-    }
-    const int isTerminal = terminalId != Ver4DictConstants::NOT_A_TERMINAL_ID;
-    if (isTerminal) {
-        // Update the lookup table.
-        if (!mBuffers->getMutableTerminalPositionLookupTable()->setTerminalPtNodePosition(
-                terminalId, nodePos)) {
-            return false;
-        }
-        // Write terminal Id.
-        if (!mTrieBuffer->writeUintAndAdvancePosition(terminalId,
-                Ver4DictConstants::TERMINAL_ID_FIELD_SIZE, ptNodeWritingPos)) {
-            return false;
-        }
-        if (outTerminalId) {
-            *outTerminalId = terminalId;
-        }
-    }
-    // Write children position
-    if (!DynamicPtWritingUtils::writeChildrenPositionAndAdvancePosition(mTrieBuffer,
-            ptNodeParams->getChildrenPos(), ptNodeWritingPos)) {
-        return false;
-    }
-    return updatePtNodeFlags(nodePos, ptNodeParams->isBlacklisted(), ptNodeParams->isNotAWord(),
-            isTerminal, ptNodeParams->getCodePointCount() > 1 /* hasMultipleChars */);
-}
-
-const ProbabilityEntry Ver4PatriciaTrieNodeWriter::createUpdatedEntryFrom(
-        const ProbabilityEntry *const originalProbabilityEntry,
-        const UnigramProperty *const unigramProperty) const {
-    // TODO: Consolidate historical info and probability.
-    if (mHeaderPolicy->hasHistoricalInfoOfWords()) {
-        const HistoricalInfo historicalInfoForUpdate(unigramProperty->getTimestamp(),
-                unigramProperty->getLevel(), unigramProperty->getCount());
-        const HistoricalInfo updatedHistoricalInfo =
-                ForgettingCurveUtils::createUpdatedHistoricalInfo(
-                        originalProbabilityEntry->getHistoricalInfo(),
-                        unigramProperty->getProbability(), &historicalInfoForUpdate, mHeaderPolicy);
-        return originalProbabilityEntry->createEntryWithUpdatedHistoricalInfo(
-                &updatedHistoricalInfo);
-    } else {
-        return originalProbabilityEntry->createEntryWithUpdatedProbability(
-                unigramProperty->getProbability());
-    }
-}
-
-bool Ver4PatriciaTrieNodeWriter::updatePtNodeFlags(const int ptNodePos,
-        const bool isBlacklisted, const bool isNotAWord, const bool isTerminal,
-        const bool hasMultipleChars) {
-    // Create node flags and write them.
-    PatriciaTrieReadingUtils::NodeFlags nodeFlags =
-            PatriciaTrieReadingUtils::createAndGetFlags(isBlacklisted, isNotAWord, isTerminal,
-                    false /* hasShortcutTargets */, false /* hasBigrams */, hasMultipleChars,
-                    CHILDREN_POSITION_FIELD_SIZE);
-    if (!DynamicPtWritingUtils::writeFlags(mTrieBuffer, nodeFlags, ptNodePos)) {
-        AKLOGE("Cannot write PtNode flags. flags: %x, pos: %d", nodeFlags, ptNodePos);
-        return false;
-    }
-    return true;
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.h
deleted file mode 100644
index 6703dba..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_VER4_PATRICIA_TRIE_NODE_WRITER_H
-#define LATINIME_VER4_PATRICIA_TRIE_NODE_WRITER_H
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_writer.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/probability_entry.h"
-
-namespace latinime {
-
-class BufferWithExtendableBuffer;
-class HeaderPolicy;
-class Ver4BigramListPolicy;
-class Ver4DictBuffers;
-class Ver4PatriciaTrieNodeReader;
-class Ver4PtNodeArrayReader;
-class Ver4ShortcutListPolicy;
-
-/*
- * This class is used for helping to writes nodes of ver4 patricia trie.
- */
-class Ver4PatriciaTrieNodeWriter : public PtNodeWriter {
- public:
-    Ver4PatriciaTrieNodeWriter(BufferWithExtendableBuffer *const trieBuffer,
-            Ver4DictBuffers *const buffers, const HeaderPolicy *const headerPolicy,
-            const PtNodeReader *const ptNodeReader,
-            const PtNodeArrayReader *const ptNodeArrayReader,
-            Ver4BigramListPolicy *const bigramPolicy, Ver4ShortcutListPolicy *const shortcutPolicy)
-            : mTrieBuffer(trieBuffer), mBuffers(buffers), mHeaderPolicy(headerPolicy),
-              mReadingHelper(ptNodeReader, ptNodeArrayReader), mBigramPolicy(bigramPolicy),
-              mShortcutPolicy(shortcutPolicy) {}
-
-    virtual ~Ver4PatriciaTrieNodeWriter() {}
-
-    virtual bool markPtNodeAsDeleted(const PtNodeParams *const toBeUpdatedPtNodeParams);
-
-    virtual bool markPtNodeAsMoved(const PtNodeParams *const toBeUpdatedPtNodeParams,
-            const int movedPos, const int bigramLinkedNodePos);
-
-    virtual bool markPtNodeAsWillBecomeNonTerminal(
-            const PtNodeParams *const toBeUpdatedPtNodeParams);
-
-    virtual bool updatePtNodeUnigramProperty(const PtNodeParams *const toBeUpdatedPtNodeParams,
-            const UnigramProperty *const unigramProperty);
-
-    virtual bool updatePtNodeProbabilityAndGetNeedsToKeepPtNodeAfterGC(
-            const PtNodeParams *const toBeUpdatedPtNodeParams, bool *const outNeedsToKeepPtNode);
-
-    virtual bool updateChildrenPosition(const PtNodeParams *const toBeUpdatedPtNodeParams,
-            const int newChildrenPosition);
-
-    bool updateTerminalId(const PtNodeParams *const toBeUpdatedPtNodeParams,
-            const int newTerminalId);
-
-    virtual bool writePtNodeAndAdvancePosition(const PtNodeParams *const ptNodeParams,
-            int *const ptNodeWritingPos);
-
-    virtual bool writeNewTerminalPtNodeAndAdvancePosition(const PtNodeParams *const ptNodeParams,
-            const UnigramProperty *const unigramProperty, int *const ptNodeWritingPos);
-
-    virtual bool addNgramEntry(const WordIdArrayView prevWordIds, const int wordId,
-            const BigramProperty *const bigramProperty, bool *const outAddedNewEntry);
-
-    virtual bool removeNgramEntry(const WordIdArrayView prevWordIds, const int wordId);
-
-    virtual bool updateAllBigramEntriesAndDeleteUselessEntries(
-            const PtNodeParams *const sourcePtNodeParams, int *const outBigramEntryCount);
-
-    virtual bool updateAllPositionFields(const PtNodeParams *const toBeUpdatedPtNodeParams,
-            const DictPositionRelocationMap *const dictPositionRelocationMap,
-            int *const outBigramEntryCount);
-
-    virtual bool addShortcutTarget(const PtNodeParams *const ptNodeParams,
-            const int *const targetCodePoints, const int targetCodePointCount,
-            const int shortcutProbability);
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(Ver4PatriciaTrieNodeWriter);
-
-    bool writePtNodeAndGetTerminalIdAndAdvancePosition(
-            const PtNodeParams *const ptNodeParams, int *const outTerminalId,
-            int *const ptNodeWritingPos);
-
-    // Create updated probability entry using given unigram property. In addition to the
-    // probability, this method updates historical information if needed.
-    // TODO: Update flags belonging to the unigram property.
-    const ProbabilityEntry createUpdatedEntryFrom(
-            const ProbabilityEntry *const originalProbabilityEntry,
-            const UnigramProperty *const unigramProperty) const;
-
-    bool updatePtNodeFlags(const int ptNodePos, const bool isBlacklisted, const bool isNotAWord,
-            const bool isTerminal, const bool hasMultipleChars);
-
-    static const int CHILDREN_POSITION_FIELD_SIZE;
-
-    BufferWithExtendableBuffer *const mTrieBuffer;
-    Ver4DictBuffers *const mBuffers;
-    const HeaderPolicy *const mHeaderPolicy;
-    DynamicPtReadingHelper mReadingHelper;
-    Ver4BigramListPolicy *const mBigramPolicy;
-    Ver4ShortcutListPolicy *const mShortcutPolicy;
-};
-} // namespace latinime
-#endif /* LATINIME_VER4_PATRICIA_TRIE_NODE_WRITER_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp
deleted file mode 100644
index 7238083..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp
+++ /dev/null
@@ -1,551 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.h"
-
-#include <vector>
-
-#include "suggest/core/dicnode/dic_node.h"
-#include "suggest/core/dicnode/dic_node_vector.h"
-#include "suggest/core/dictionary/ngram_listener.h"
-#include "suggest/core/dictionary/property/bigram_property.h"
-#include "suggest/core/dictionary/property/unigram_property.h"
-#include "suggest/core/dictionary/property/word_property.h"
-#include "suggest/core/session/prev_words_info.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_helper.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.h"
-#include "suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h"
-#include "suggest/policyimpl/dictionary/utils/probability_utils.h"
-
-namespace latinime {
-
-// Note that there are corresponding definitions in Java side in BinaryDictionaryTests and
-// BinaryDictionaryDecayingTests.
-const char *const Ver4PatriciaTriePolicy::UNIGRAM_COUNT_QUERY = "UNIGRAM_COUNT";
-const char *const Ver4PatriciaTriePolicy::BIGRAM_COUNT_QUERY = "BIGRAM_COUNT";
-const char *const Ver4PatriciaTriePolicy::MAX_UNIGRAM_COUNT_QUERY = "MAX_UNIGRAM_COUNT";
-const char *const Ver4PatriciaTriePolicy::MAX_BIGRAM_COUNT_QUERY = "MAX_BIGRAM_COUNT";
-const int Ver4PatriciaTriePolicy::MARGIN_TO_REFUSE_DYNAMIC_OPERATIONS = 1024;
-const int Ver4PatriciaTriePolicy::MIN_DICT_SIZE_TO_REFUSE_DYNAMIC_OPERATIONS =
-        Ver4DictConstants::MAX_DICTIONARY_SIZE - MARGIN_TO_REFUSE_DYNAMIC_OPERATIONS;
-
-void Ver4PatriciaTriePolicy::createAndGetAllChildDicNodes(const DicNode *const dicNode,
-        DicNodeVector *const childDicNodes) const {
-    if (!dicNode->hasChildren()) {
-        return;
-    }
-    DynamicPtReadingHelper readingHelper(&mNodeReader, &mPtNodeArrayReader);
-    readingHelper.initWithPtNodeArrayPos(dicNode->getChildrenPtNodeArrayPos());
-    while (!readingHelper.isEnd()) {
-        const PtNodeParams ptNodeParams = readingHelper.getPtNodeParams();
-        if (!ptNodeParams.isValid()) {
-            break;
-        }
-        bool isTerminal = ptNodeParams.isTerminal() && !ptNodeParams.isDeleted();
-        if (isTerminal && mHeaderPolicy->isDecayingDict()) {
-            // A DecayingDict may have a terminal PtNode that has a terminal DicNode whose
-            // probability is NOT_A_PROBABILITY. In such case, we don't want to treat it as a
-            // valid terminal DicNode.
-            isTerminal = ptNodeParams.getProbability() != NOT_A_PROBABILITY;
-        }
-        readingHelper.readNextSiblingNode(ptNodeParams);
-        if (ptNodeParams.representsNonWordInfo()) {
-            // Skip PtNodes that represent non-word information.
-            continue;
-        }
-        childDicNodes->pushLeavingChild(dicNode, ptNodeParams.getHeadPos(),
-                ptNodeParams.getChildrenPos(), ptNodeParams.getProbability(), isTerminal,
-                ptNodeParams.hasChildren(),
-                ptNodeParams.isBlacklisted()
-                        || ptNodeParams.isNotAWord() /* isBlacklistedOrNotAWord */,
-                ptNodeParams.getCodePointCount(), ptNodeParams.getCodePoints());
-    }
-    if (readingHelper.isError()) {
-        mIsCorrupted = true;
-        AKLOGE("Dictionary reading error in createAndGetAllChildDicNodes().");
-    }
-}
-
-int Ver4PatriciaTriePolicy::getCodePointsAndProbabilityAndReturnCodePointCount(
-        const int ptNodePos, const int maxCodePointCount, int *const outCodePoints,
-        int *const outUnigramProbability) const {
-    DynamicPtReadingHelper readingHelper(&mNodeReader, &mPtNodeArrayReader);
-    readingHelper.initWithPtNodePos(ptNodePos);
-    const int codePointCount =  readingHelper.getCodePointsAndProbabilityAndReturnCodePointCount(
-            maxCodePointCount, outCodePoints, outUnigramProbability);
-    if (readingHelper.isError()) {
-        mIsCorrupted = true;
-        AKLOGE("Dictionary reading error in getCodePointsAndProbabilityAndReturnCodePointCount().");
-    }
-    return codePointCount;
-}
-
-int Ver4PatriciaTriePolicy::getTerminalPtNodePositionOfWord(const int *const inWord,
-        const int length, const bool forceLowerCaseSearch) const {
-    DynamicPtReadingHelper readingHelper(&mNodeReader, &mPtNodeArrayReader);
-    readingHelper.initWithPtNodeArrayPos(getRootPosition());
-    const int ptNodePos =
-            readingHelper.getTerminalPtNodePositionOfWord(inWord, length, forceLowerCaseSearch);
-    if (readingHelper.isError()) {
-        mIsCorrupted = true;
-        AKLOGE("Dictionary reading error in createAndGetAllChildDicNodes().");
-    }
-    return ptNodePos;
-}
-
-int Ver4PatriciaTriePolicy::getProbability(const int unigramProbability,
-        const int bigramProbability) const {
-    if (mHeaderPolicy->isDecayingDict()) {
-        // Both probabilities are encoded. Decode them and get probability.
-        return ForgettingCurveUtils::getProbability(unigramProbability, bigramProbability);
-    } else {
-        if (unigramProbability == NOT_A_PROBABILITY) {
-            return NOT_A_PROBABILITY;
-        } else if (bigramProbability == NOT_A_PROBABILITY) {
-            return ProbabilityUtils::backoff(unigramProbability);
-        } else {
-            return bigramProbability;
-        }
-    }
-}
-
-int Ver4PatriciaTriePolicy::getProbabilityOfPtNode(const int *const prevWordsPtNodePos,
-        const int ptNodePos) const {
-    if (ptNodePos == NOT_A_DICT_POS) {
-        return NOT_A_PROBABILITY;
-    }
-    const PtNodeParams ptNodeParams(mNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos));
-    if (ptNodeParams.isDeleted() || ptNodeParams.isBlacklisted() || ptNodeParams.isNotAWord()) {
-        return NOT_A_PROBABILITY;
-    }
-    if (prevWordsPtNodePos) {
-        const int bigramsPosition = getBigramsPositionOfPtNode(prevWordsPtNodePos[0]);
-        BinaryDictionaryBigramsIterator bigramsIt(&mBigramPolicy, bigramsPosition);
-        while (bigramsIt.hasNext()) {
-            bigramsIt.next();
-            if (bigramsIt.getBigramPos() == ptNodePos
-                    && bigramsIt.getProbability() != NOT_A_PROBABILITY) {
-                return getProbability(ptNodeParams.getProbability(), bigramsIt.getProbability());
-            }
-        }
-        return NOT_A_PROBABILITY;
-    }
-    return getProbability(ptNodeParams.getProbability(), NOT_A_PROBABILITY);
-}
-
-void Ver4PatriciaTriePolicy::iterateNgramEntries(const int *const prevWordsPtNodePos,
-        NgramListener *const listener) const {
-    if (!prevWordsPtNodePos) {
-        return;
-    }
-    const int bigramsPosition = getBigramsPositionOfPtNode(prevWordsPtNodePos[0]);
-    BinaryDictionaryBigramsIterator bigramsIt(&mBigramPolicy, bigramsPosition);
-    while (bigramsIt.hasNext()) {
-        bigramsIt.next();
-        listener->onVisitEntry(bigramsIt.getProbability(), bigramsIt.getBigramPos());
-    }
-}
-
-int Ver4PatriciaTriePolicy::getShortcutPositionOfPtNode(const int ptNodePos) const {
-    if (ptNodePos == NOT_A_DICT_POS) {
-        return NOT_A_DICT_POS;
-    }
-    const PtNodeParams ptNodeParams(mNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos));
-    if (ptNodeParams.isDeleted()) {
-        return NOT_A_DICT_POS;
-    }
-    return mBuffers->getShortcutDictContent()->getShortcutListHeadPos(
-            ptNodeParams.getTerminalId());
-}
-
-int Ver4PatriciaTriePolicy::getBigramsPositionOfPtNode(const int ptNodePos) const {
-    if (ptNodePos == NOT_A_DICT_POS) {
-        return NOT_A_DICT_POS;
-    }
-    const PtNodeParams ptNodeParams(mNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos));
-    if (ptNodeParams.isDeleted()) {
-        return NOT_A_DICT_POS;
-    }
-    return mBuffers->getBigramDictContent()->getBigramListHeadPos(
-            ptNodeParams.getTerminalId());
-}
-
-bool Ver4PatriciaTriePolicy::addUnigramEntry(const int *const word, const int length,
-        const UnigramProperty *const unigramProperty) {
-    if (!mBuffers->isUpdatable()) {
-        AKLOGI("Warning: addUnigramEntry() is called for non-updatable dictionary.");
-        return false;
-    }
-    if (mDictBuffer->getTailPosition() >= MIN_DICT_SIZE_TO_REFUSE_DYNAMIC_OPERATIONS) {
-        AKLOGE("The dictionary is too large to dynamically update. Dictionary size: %d",
-                mDictBuffer->getTailPosition());
-        return false;
-    }
-    if (length > MAX_WORD_LENGTH) {
-        AKLOGE("The word is too long to insert to the dictionary, length: %d", length);
-        return false;
-    }
-    for (const auto &shortcut : unigramProperty->getShortcuts()) {
-        if (shortcut.getTargetCodePoints()->size() > MAX_WORD_LENGTH) {
-            AKLOGE("One of shortcut targets is too long to insert to the dictionary, length: %d",
-                    shortcut.getTargetCodePoints()->size());
-            return false;
-        }
-    }
-    DynamicPtReadingHelper readingHelper(&mNodeReader, &mPtNodeArrayReader);
-    readingHelper.initWithPtNodeArrayPos(getRootPosition());
-    bool addedNewUnigram = false;
-    int codePointsToAdd[MAX_WORD_LENGTH];
-    int codePointCountToAdd = length;
-    memmove(codePointsToAdd, word, sizeof(int) * length);
-    if (unigramProperty->representsBeginningOfSentence()) {
-        codePointCountToAdd = CharUtils::attachBeginningOfSentenceMarker(codePointsToAdd,
-                codePointCountToAdd, MAX_WORD_LENGTH);
-    }
-    if (codePointCountToAdd <= 0) {
-        return false;
-    }
-    if (mUpdatingHelper.addUnigramWord(&readingHelper, codePointsToAdd, codePointCountToAdd,
-            unigramProperty, &addedNewUnigram)) {
-        if (addedNewUnigram && !unigramProperty->representsBeginningOfSentence()) {
-            mUnigramCount++;
-        }
-        if (unigramProperty->getShortcuts().size() > 0) {
-            // Add shortcut target.
-            const int wordPos = getTerminalPtNodePositionOfWord(word, length,
-                    false /* forceLowerCaseSearch */);
-            if (wordPos == NOT_A_DICT_POS) {
-                AKLOGE("Cannot find terminal PtNode position to add shortcut target.");
-                return false;
-            }
-            for (const auto &shortcut : unigramProperty->getShortcuts()) {
-                if (!mUpdatingHelper.addShortcutTarget(wordPos,
-                        shortcut.getTargetCodePoints()->data(),
-                        shortcut.getTargetCodePoints()->size(), shortcut.getProbability())) {
-                    AKLOGE("Cannot add new shortcut target. PtNodePos: %d, length: %d, "
-                            "probability: %d", wordPos, shortcut.getTargetCodePoints()->size(),
-                            shortcut.getProbability());
-                    return false;
-                }
-            }
-        }
-        return true;
-    } else {
-        return false;
-    }
-}
-
-bool Ver4PatriciaTriePolicy::removeUnigramEntry(const int *const word, const int length) {
-    if (!mBuffers->isUpdatable()) {
-        AKLOGI("Warning: removeUnigramEntry() is called for non-updatable dictionary.");
-        return false;
-    }
-    const int ptNodePos = getTerminalPtNodePositionOfWord(word, length,
-            false /* forceLowerCaseSearch */);
-    if (ptNodePos == NOT_A_DICT_POS) {
-        return false;
-    }
-    const PtNodeParams ptNodeParams = mNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos);
-    if (!mNodeWriter.markPtNodeAsDeleted(&ptNodeParams)) {
-        AKLOGE("Cannot remove unigram. ptNodePos: %d", ptNodePos);
-        return false;
-    }
-    if (!ptNodeParams.representsNonWordInfo()) {
-        mUnigramCount--;
-    }
-    return true;
-}
-
-bool Ver4PatriciaTriePolicy::addNgramEntry(const PrevWordsInfo *const prevWordsInfo,
-        const BigramProperty *const bigramProperty) {
-    if (!mBuffers->isUpdatable()) {
-        AKLOGI("Warning: addNgramEntry() is called for non-updatable dictionary.");
-        return false;
-    }
-    if (mDictBuffer->getTailPosition() >= MIN_DICT_SIZE_TO_REFUSE_DYNAMIC_OPERATIONS) {
-        AKLOGE("The dictionary is too large to dynamically update. Dictionary size: %d",
-                mDictBuffer->getTailPosition());
-        return false;
-    }
-    if (!prevWordsInfo->isValid()) {
-        AKLOGE("prev words info is not valid for adding n-gram entry to the dictionary.");
-        return false;
-    }
-    if (bigramProperty->getTargetCodePoints()->size() > MAX_WORD_LENGTH) {
-        AKLOGE("The word is too long to insert the ngram to the dictionary. "
-                "length: %d", bigramProperty->getTargetCodePoints()->size());
-        return false;
-    }
-    int prevWordsPtNodePos[MAX_PREV_WORD_COUNT_FOR_N_GRAM];
-    prevWordsInfo->getPrevWordsTerminalPtNodePos(this, prevWordsPtNodePos,
-            false /* tryLowerCaseSearch */);
-    const auto prevWordsPtNodePosView = PtNodePosArrayView::fromFixedSizeArray(prevWordsPtNodePos);
-    // TODO: Support N-gram.
-    if (prevWordsPtNodePos[0] == NOT_A_DICT_POS) {
-        if (prevWordsInfo->isNthPrevWordBeginningOfSentence(1 /* n */)) {
-            const std::vector<UnigramProperty::ShortcutProperty> shortcuts;
-            const UnigramProperty beginningOfSentenceUnigramProperty(
-                    true /* representsBeginningOfSentence */, true /* isNotAWord */,
-                    false /* isBlacklisted */, MAX_PROBABILITY /* probability */,
-                    NOT_A_TIMESTAMP /* timestamp */, 0 /* level */, 0 /* count */, &shortcuts);
-            if (!addUnigramEntry(prevWordsInfo->getNthPrevWordCodePoints(1 /* n */),
-                    prevWordsInfo->getNthPrevWordCodePointCount(1 /* n */),
-                    &beginningOfSentenceUnigramProperty)) {
-                AKLOGE("Cannot add unigram entry for the beginning-of-sentence.");
-                return false;
-            }
-            // Refresh Terminal PtNode positions.
-            prevWordsInfo->getPrevWordsTerminalPtNodePos(this, prevWordsPtNodePos,
-                    false /* tryLowerCaseSearch */);
-        } else {
-            return false;
-        }
-    }
-    const int word1Pos = getTerminalPtNodePositionOfWord(
-            bigramProperty->getTargetCodePoints()->data(),
-            bigramProperty->getTargetCodePoints()->size(), false /* forceLowerCaseSearch */);
-    if (word1Pos == NOT_A_DICT_POS) {
-        return false;
-    }
-    bool addedNewEntry = false;
-    if (mUpdatingHelper.addNgramEntry(prevWordsPtNodePosView, word1Pos, bigramProperty,
-            &addedNewEntry)) {
-        if (addedNewEntry) {
-            mBigramCount++;
-        }
-        return true;
-    } else {
-        return false;
-    }
-}
-
-bool Ver4PatriciaTriePolicy::removeNgramEntry(const PrevWordsInfo *const prevWordsInfo,
-        const int *const word, const int length) {
-    if (!mBuffers->isUpdatable()) {
-        AKLOGI("Warning: removeNgramEntry() is called for non-updatable dictionary.");
-        return false;
-    }
-    if (mDictBuffer->getTailPosition() >= MIN_DICT_SIZE_TO_REFUSE_DYNAMIC_OPERATIONS) {
-        AKLOGE("The dictionary is too large to dynamically update. Dictionary size: %d",
-                mDictBuffer->getTailPosition());
-        return false;
-    }
-    if (!prevWordsInfo->isValid()) {
-        AKLOGE("prev words info is not valid for removing n-gram entry form the dictionary.");
-        return false;
-    }
-    if (length > MAX_WORD_LENGTH) {
-        AKLOGE("word is too long to remove n-gram entry form the dictionary. length: %d", length);
-    }
-    int prevWordsPtNodePos[MAX_PREV_WORD_COUNT_FOR_N_GRAM];
-    prevWordsInfo->getPrevWordsTerminalPtNodePos(this, prevWordsPtNodePos,
-            false /* tryLowerCaseSerch */);
-    const auto prevWordsPtNodePosView = PtNodePosArrayView::fromFixedSizeArray(prevWordsPtNodePos);
-    // TODO: Support N-gram.
-    if (prevWordsPtNodePos[0] == NOT_A_DICT_POS) {
-        return false;
-    }
-    const int wordPos = getTerminalPtNodePositionOfWord(word, length,
-            false /* forceLowerCaseSearch */);
-    if (wordPos == NOT_A_DICT_POS) {
-        return false;
-    }
-    if (mUpdatingHelper.removeNgramEntry(prevWordsPtNodePosView, wordPos)) {
-        mBigramCount--;
-        return true;
-    } else {
-        return false;
-    }
-}
-
-bool Ver4PatriciaTriePolicy::flush(const char *const filePath) {
-    if (!mBuffers->isUpdatable()) {
-        AKLOGI("Warning: flush() is called for non-updatable dictionary. filePath: %s", filePath);
-        return false;
-    }
-    if (!mWritingHelper.writeToDictFile(filePath, mUnigramCount, mBigramCount)) {
-        AKLOGE("Cannot flush the dictionary to file.");
-        mIsCorrupted = true;
-        return false;
-    }
-    return true;
-}
-
-bool Ver4PatriciaTriePolicy::flushWithGC(const char *const filePath) {
-    if (!mBuffers->isUpdatable()) {
-        AKLOGI("Warning: flushWithGC() is called for non-updatable dictionary.");
-        return false;
-    }
-    if (!mWritingHelper.writeToDictFileWithGC(getRootPosition(), filePath)) {
-        AKLOGE("Cannot flush the dictionary to file with GC.");
-        mIsCorrupted = true;
-        return false;
-    }
-    return true;
-}
-
-bool Ver4PatriciaTriePolicy::needsToRunGC(const bool mindsBlockByGC) const {
-    if (!mBuffers->isUpdatable()) {
-        AKLOGI("Warning: needsToRunGC() is called for non-updatable dictionary.");
-        return false;
-    }
-    if (mBuffers->isNearSizeLimit()) {
-        // Additional buffer size is near the limit.
-        return true;
-    } else if (mHeaderPolicy->getExtendedRegionSize() + mDictBuffer->getUsedAdditionalBufferSize()
-            > Ver4DictConstants::MAX_DICT_EXTENDED_REGION_SIZE) {
-        // Total extended region size of the trie exceeds the limit.
-        return true;
-    } else if (mDictBuffer->getTailPosition() >= MIN_DICT_SIZE_TO_REFUSE_DYNAMIC_OPERATIONS
-            && mDictBuffer->getUsedAdditionalBufferSize() > 0) {
-        // Needs to reduce dictionary size.
-        return true;
-    } else if (mHeaderPolicy->isDecayingDict()) {
-        return ForgettingCurveUtils::needsToDecay(mindsBlockByGC, mUnigramCount, mBigramCount,
-                mHeaderPolicy);
-    }
-    return false;
-}
-
-void Ver4PatriciaTriePolicy::getProperty(const char *const query, const int queryLength,
-        char *const outResult, const int maxResultLength) {
-    const int compareLength = queryLength + 1 /* terminator */;
-    if (strncmp(query, UNIGRAM_COUNT_QUERY, compareLength) == 0) {
-        snprintf(outResult, maxResultLength, "%d", mUnigramCount);
-    } else if (strncmp(query, BIGRAM_COUNT_QUERY, compareLength) == 0) {
-        snprintf(outResult, maxResultLength, "%d", mBigramCount);
-    } else if (strncmp(query, MAX_UNIGRAM_COUNT_QUERY, compareLength) == 0) {
-        snprintf(outResult, maxResultLength, "%d",
-                mHeaderPolicy->isDecayingDict() ?
-                        ForgettingCurveUtils::getUnigramCountHardLimit(
-                                mHeaderPolicy->getMaxUnigramCount()) :
-                        static_cast<int>(Ver4DictConstants::MAX_DICTIONARY_SIZE));
-    } else if (strncmp(query, MAX_BIGRAM_COUNT_QUERY, compareLength) == 0) {
-        snprintf(outResult, maxResultLength, "%d",
-                mHeaderPolicy->isDecayingDict() ?
-                        ForgettingCurveUtils::getBigramCountHardLimit(
-                                mHeaderPolicy->getMaxBigramCount()) :
-                        static_cast<int>(Ver4DictConstants::MAX_DICTIONARY_SIZE));
-    }
-}
-
-const WordProperty Ver4PatriciaTriePolicy::getWordProperty(const int *const codePoints,
-        const int codePointCount) const {
-    const int ptNodePos = getTerminalPtNodePositionOfWord(codePoints, codePointCount,
-            false /* forceLowerCaseSearch */);
-    if (ptNodePos == NOT_A_DICT_POS) {
-        AKLOGE("getWordProperty is called for invalid word.");
-        return WordProperty();
-    }
-    const PtNodeParams ptNodeParams = mNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos);
-    std::vector<int> codePointVector(ptNodeParams.getCodePoints(),
-            ptNodeParams.getCodePoints() + ptNodeParams.getCodePointCount());
-    const ProbabilityEntry probabilityEntry =
-            mBuffers->getLanguageModelDictContent()->getProbabilityEntry(
-                    ptNodeParams.getTerminalId());
-    const HistoricalInfo *const historicalInfo = probabilityEntry.getHistoricalInfo();
-    // Fetch bigram information.
-    std::vector<BigramProperty> bigrams;
-    const int bigramListPos = getBigramsPositionOfPtNode(ptNodePos);
-    if (bigramListPos != NOT_A_DICT_POS) {
-        int bigramWord1CodePoints[MAX_WORD_LENGTH];
-        const BigramDictContent *const bigramDictContent = mBuffers->getBigramDictContent();
-        const TerminalPositionLookupTable *const terminalPositionLookupTable =
-                mBuffers->getTerminalPositionLookupTable();
-        bool hasNext = true;
-        int readingPos = bigramListPos;
-        while (hasNext) {
-            const BigramEntry bigramEntry =
-                    bigramDictContent->getBigramEntryAndAdvancePosition(&readingPos);
-            hasNext = bigramEntry.hasNext();
-            const int word1TerminalId = bigramEntry.getTargetTerminalId();
-            const int word1TerminalPtNodePos =
-                    terminalPositionLookupTable->getTerminalPtNodePosition(word1TerminalId);
-            if (word1TerminalPtNodePos == NOT_A_DICT_POS) {
-                continue;
-            }
-            // Word (unigram) probability
-            int word1Probability = NOT_A_PROBABILITY;
-            const int codePointCount = getCodePointsAndProbabilityAndReturnCodePointCount(
-                    word1TerminalPtNodePos, MAX_WORD_LENGTH, bigramWord1CodePoints,
-                    &word1Probability);
-            const std::vector<int> word1(bigramWord1CodePoints,
-                    bigramWord1CodePoints + codePointCount);
-            const HistoricalInfo *const historicalInfo = bigramEntry.getHistoricalInfo();
-            const int probability = bigramEntry.hasHistoricalInfo() ?
-                    ForgettingCurveUtils::decodeProbability(
-                            bigramEntry.getHistoricalInfo(), mHeaderPolicy) :
-                    bigramEntry.getProbability();
-            bigrams.emplace_back(&word1, probability,
-                    historicalInfo->getTimeStamp(), historicalInfo->getLevel(),
-                    historicalInfo->getCount());
-        }
-    }
-    // Fetch shortcut information.
-    std::vector<UnigramProperty::ShortcutProperty> shortcuts;
-    int shortcutPos = getShortcutPositionOfPtNode(ptNodePos);
-    if (shortcutPos != NOT_A_DICT_POS) {
-        int shortcutTarget[MAX_WORD_LENGTH];
-        const ShortcutDictContent *const shortcutDictContent =
-                mBuffers->getShortcutDictContent();
-        bool hasNext = true;
-        while (hasNext) {
-            int shortcutTargetLength = 0;
-            int shortcutProbability = NOT_A_PROBABILITY;
-            shortcutDictContent->getShortcutEntryAndAdvancePosition(MAX_WORD_LENGTH, shortcutTarget,
-                    &shortcutTargetLength, &shortcutProbability, &hasNext, &shortcutPos);
-            const std::vector<int> target(shortcutTarget, shortcutTarget + shortcutTargetLength);
-            shortcuts.emplace_back(&target, shortcutProbability);
-        }
-    }
-    const UnigramProperty unigramProperty(ptNodeParams.representsBeginningOfSentence(),
-            ptNodeParams.isNotAWord(), ptNodeParams.isBlacklisted(), ptNodeParams.getProbability(),
-            historicalInfo->getTimeStamp(), historicalInfo->getLevel(),
-            historicalInfo->getCount(), &shortcuts);
-    return WordProperty(&codePointVector, &unigramProperty, &bigrams);
-}
-
-int Ver4PatriciaTriePolicy::getNextWordAndNextToken(const int token, int *const outCodePoints,
-        int *const outCodePointCount) {
-    *outCodePointCount = 0;
-    if (token == 0) {
-        mTerminalPtNodePositionsForIteratingWords.clear();
-        DynamicPtReadingHelper::TraversePolicyToGetAllTerminalPtNodePositions traversePolicy(
-                &mTerminalPtNodePositionsForIteratingWords);
-        DynamicPtReadingHelper readingHelper(&mNodeReader, &mPtNodeArrayReader);
-        readingHelper.initWithPtNodeArrayPos(getRootPosition());
-        readingHelper.traverseAllPtNodesInPostorderDepthFirstManner(&traversePolicy);
-    }
-    const int terminalPtNodePositionsVectorSize =
-            static_cast<int>(mTerminalPtNodePositionsForIteratingWords.size());
-    if (token < 0 || token >= terminalPtNodePositionsVectorSize) {
-        AKLOGE("Given token %d is invalid.", token);
-        return 0;
-    }
-    const int terminalPtNodePos = mTerminalPtNodePositionsForIteratingWords[token];
-    int unigramProbability = NOT_A_PROBABILITY;
-    *outCodePointCount = getCodePointsAndProbabilityAndReturnCodePointCount(
-            terminalPtNodePos, MAX_WORD_LENGTH, outCodePoints, &unigramProbability);
-    const int nextToken = token + 1;
-    if (nextToken >= terminalPtNodePositionsVectorSize) {
-        // All words have been iterated.
-        mTerminalPtNodePositionsForIteratingWords.clear();
-        return 0;
-    }
-    return nextToken;
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.h
deleted file mode 100644
index faad429..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_VER4_PATRICIA_TRIE_POLICY_H
-#define LATINIME_VER4_PATRICIA_TRIE_POLICY_H
-
-#include <vector>
-
-#include "defines.h"
-#include "suggest/core/policy/dictionary_structure_with_buffer_policy.h"
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_updating_helper.h"
-#include "suggest/policyimpl/dictionary/structure/v4/bigram/ver4_bigram_list_policy.h"
-#include "suggest/policyimpl/dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-
-namespace latinime {
-
-class DicNode;
-class DicNodeVector;
-
-class Ver4PatriciaTriePolicy : public DictionaryStructureWithBufferPolicy {
- public:
-    Ver4PatriciaTriePolicy(Ver4DictBuffers::Ver4DictBuffersPtr buffers)
-            : mBuffers(std::move(buffers)), mHeaderPolicy(mBuffers->getHeaderPolicy()),
-              mDictBuffer(mBuffers->getWritableTrieBuffer()),
-              mBigramPolicy(mBuffers->getMutableBigramDictContent(),
-                      mBuffers->getTerminalPositionLookupTable(), mHeaderPolicy),
-              mShortcutPolicy(mBuffers->getMutableShortcutDictContent(),
-                      mBuffers->getTerminalPositionLookupTable()),
-              mNodeReader(mDictBuffer, mBuffers->getLanguageModelDictContent(), mHeaderPolicy),
-              mPtNodeArrayReader(mDictBuffer),
-              mNodeWriter(mDictBuffer, mBuffers.get(), mHeaderPolicy, &mNodeReader,
-                      &mPtNodeArrayReader, &mBigramPolicy, &mShortcutPolicy),
-              mUpdatingHelper(mDictBuffer, &mNodeReader, &mNodeWriter),
-              mWritingHelper(mBuffers.get()),
-              mUnigramCount(mHeaderPolicy->getUnigramCount()),
-              mBigramCount(mHeaderPolicy->getBigramCount()),
-              mTerminalPtNodePositionsForIteratingWords(), mIsCorrupted(false) {};
-
-    AK_FORCE_INLINE int getRootPosition() const {
-        return 0;
-    }
-
-    void createAndGetAllChildDicNodes(const DicNode *const dicNode,
-            DicNodeVector *const childDicNodes) const;
-
-    int getCodePointsAndProbabilityAndReturnCodePointCount(
-            const int terminalPtNodePos, const int maxCodePointCount, int *const outCodePoints,
-            int *const outUnigramProbability) const;
-
-    int getTerminalPtNodePositionOfWord(const int *const inWord,
-            const int length, const bool forceLowerCaseSearch) const;
-
-    int getProbability(const int unigramProbability, const int bigramProbability) const;
-
-    int getProbabilityOfPtNode(const int *const prevWordsPtNodePos, const int ptNodePos) const;
-
-    void iterateNgramEntries(const int *const prevWordsPtNodePos,
-            NgramListener *const listener) const;
-
-    int getShortcutPositionOfPtNode(const int ptNodePos) const;
-
-    const DictionaryHeaderStructurePolicy *getHeaderStructurePolicy() const {
-        return mHeaderPolicy;
-    }
-
-    const DictionaryShortcutsStructurePolicy *getShortcutsStructurePolicy() const {
-        return &mShortcutPolicy;
-    }
-
-    bool addUnigramEntry(const int *const word, const int length,
-            const UnigramProperty *const unigramProperty);
-
-    bool removeUnigramEntry(const int *const word, const int length);
-
-    bool addNgramEntry(const PrevWordsInfo *const prevWordsInfo,
-            const BigramProperty *const bigramProperty);
-
-    bool removeNgramEntry(const PrevWordsInfo *const prevWordsInfo, const int *const word1,
-            const int length1);
-
-    bool flush(const char *const filePath);
-
-    bool flushWithGC(const char *const filePath);
-
-    bool needsToRunGC(const bool mindsBlockByGC) const;
-
-    void getProperty(const char *const query, const int queryLength, char *const outResult,
-            const int maxResultLength);
-
-    const WordProperty getWordProperty(const int *const codePoints,
-            const int codePointCount) const;
-
-    int getNextWordAndNextToken(const int token, int *const outCodePoints,
-            int *const outCodePointCount);
-
-    bool isCorrupted() const {
-        return mIsCorrupted;
-    }
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(Ver4PatriciaTriePolicy);
-
-    static const char *const UNIGRAM_COUNT_QUERY;
-    static const char *const BIGRAM_COUNT_QUERY;
-    static const char *const MAX_UNIGRAM_COUNT_QUERY;
-    static const char *const MAX_BIGRAM_COUNT_QUERY;
-    // When the dictionary size is near the maximum size, we have to refuse dynamic operations to
-    // prevent the dictionary from overflowing.
-    static const int MARGIN_TO_REFUSE_DYNAMIC_OPERATIONS;
-    static const int MIN_DICT_SIZE_TO_REFUSE_DYNAMIC_OPERATIONS;
-
-    const Ver4DictBuffers::Ver4DictBuffersPtr mBuffers;
-    const HeaderPolicy *const mHeaderPolicy;
-    BufferWithExtendableBuffer *const mDictBuffer;
-    Ver4BigramListPolicy mBigramPolicy;
-    Ver4ShortcutListPolicy mShortcutPolicy;
-    Ver4PatriciaTrieNodeReader mNodeReader;
-    Ver4PtNodeArrayReader mPtNodeArrayReader;
-    Ver4PatriciaTrieNodeWriter mNodeWriter;
-    DynamicPtUpdatingHelper mUpdatingHelper;
-    Ver4PatriciaTrieWritingHelper mWritingHelper;
-    int mUnigramCount;
-    int mBigramCount;
-    std::vector<int> mTerminalPtNodePositionsForIteratingWords;
-    mutable bool mIsCorrupted;
-
-    int getBigramsPositionOfPtNode(const int ptNodePos) const;
-};
-} // namespace latinime
-#endif // LATINIME_VER4_PATRICIA_TRIE_POLICY_H
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_reading_utils.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_reading_utils.cpp
deleted file mode 100644
index 254022d..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_reading_utils.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_reading_utils.h"
-
-#include "suggest/policyimpl/dictionary/utils/byte_array_utils.h"
-
-namespace latinime {
-
-/* static */ int Ver4PatriciaTrieReadingUtils::getTerminalIdAndAdvancePosition(
-        const uint8_t *const buffer, int *pos) {
-    return ByteArrayUtils::readUint32AndAdvancePosition(buffer, pos);
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.cpp
deleted file mode 100644
index 4220312..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.cpp
+++ /dev/null
@@ -1,294 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.h"
-
-#include <cstring>
-#include <queue>
-
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/structure/v4/bigram/ver4_bigram_list_policy.h"
-#include "suggest/policyimpl/dictionary/structure/v4/shortcut/ver4_shortcut_list_policy.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_reader.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/file_utils.h"
-#include "suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h"
-
-namespace latinime {
-
-bool Ver4PatriciaTrieWritingHelper::writeToDictFile(const char *const dictDirPath,
-        const int unigramCount, const int bigramCount) const {
-    const HeaderPolicy *const headerPolicy = mBuffers->getHeaderPolicy();
-    BufferWithExtendableBuffer headerBuffer(
-            BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE);
-    const int extendedRegionSize = headerPolicy->getExtendedRegionSize()
-            + mBuffers->getTrieBuffer()->getUsedAdditionalBufferSize();
-    if (!headerPolicy->fillInAndWriteHeaderToBuffer(false /* updatesLastDecayedTime */,
-            unigramCount, bigramCount, extendedRegionSize, &headerBuffer)) {
-        AKLOGE("Cannot write header structure to buffer. "
-                "updatesLastDecayedTime: %d, unigramCount: %d, bigramCount: %d, "
-                "extendedRegionSize: %d", false, unigramCount, bigramCount,
-                extendedRegionSize);
-        return false;
-    }
-    return mBuffers->flushHeaderAndDictBuffers(dictDirPath, &headerBuffer);
-}
-
-bool Ver4PatriciaTrieWritingHelper::writeToDictFileWithGC(const int rootPtNodeArrayPos,
-        const char *const dictDirPath) {
-    const HeaderPolicy *const headerPolicy = mBuffers->getHeaderPolicy();
-    Ver4DictBuffers::Ver4DictBuffersPtr dictBuffers(
-            Ver4DictBuffers::createVer4DictBuffers(headerPolicy,
-                    Ver4DictConstants::MAX_DICTIONARY_SIZE));
-    int unigramCount = 0;
-    int bigramCount = 0;
-    if (!runGC(rootPtNodeArrayPos, headerPolicy, dictBuffers.get(), &unigramCount, &bigramCount)) {
-        return false;
-    }
-    BufferWithExtendableBuffer headerBuffer(
-            BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE);
-    if (!headerPolicy->fillInAndWriteHeaderToBuffer(true /* updatesLastDecayedTime */,
-            unigramCount, bigramCount, 0 /* extendedRegionSize */, &headerBuffer)) {
-        return false;
-    }
-    return dictBuffers->flushHeaderAndDictBuffers(dictDirPath, &headerBuffer);
-}
-
-bool Ver4PatriciaTrieWritingHelper::runGC(const int rootPtNodeArrayPos,
-        const HeaderPolicy *const headerPolicy, Ver4DictBuffers *const buffersToWrite,
-        int *const outUnigramCount, int *const outBigramCount) {
-    Ver4PatriciaTrieNodeReader ptNodeReader(mBuffers->getTrieBuffer(),
-            mBuffers->getLanguageModelDictContent(), headerPolicy);
-    Ver4PtNodeArrayReader ptNodeArrayReader(mBuffers->getTrieBuffer());
-    Ver4BigramListPolicy bigramPolicy(mBuffers->getMutableBigramDictContent(),
-            mBuffers->getTerminalPositionLookupTable(), headerPolicy);
-    Ver4ShortcutListPolicy shortcutPolicy(mBuffers->getMutableShortcutDictContent(),
-            mBuffers->getTerminalPositionLookupTable());
-    Ver4PatriciaTrieNodeWriter ptNodeWriter(mBuffers->getWritableTrieBuffer(),
-            mBuffers, headerPolicy, &ptNodeReader, &ptNodeArrayReader, &bigramPolicy,
-            &shortcutPolicy);
-
-    DynamicPtReadingHelper readingHelper(&ptNodeReader, &ptNodeArrayReader);
-    readingHelper.initWithPtNodeArrayPos(rootPtNodeArrayPos);
-    DynamicPtGcEventListeners
-            ::TraversePolicyToUpdateUnigramProbabilityAndMarkUselessPtNodesAsDeleted
-                    traversePolicyToUpdateUnigramProbabilityAndMarkUselessPtNodesAsDeleted(
-                            &ptNodeWriter);
-    if (!readingHelper.traverseAllPtNodesInPostorderDepthFirstManner(
-            &traversePolicyToUpdateUnigramProbabilityAndMarkUselessPtNodesAsDeleted)) {
-        return false;
-    }
-    const int unigramCount = traversePolicyToUpdateUnigramProbabilityAndMarkUselessPtNodesAsDeleted
-            .getValidUnigramCount();
-    const int maxUnigramCount = headerPolicy->getMaxUnigramCount();
-    if (headerPolicy->isDecayingDict() && unigramCount > maxUnigramCount) {
-        if (!truncateUnigrams(&ptNodeReader, &ptNodeWriter, maxUnigramCount)) {
-            AKLOGE("Cannot remove unigrams. current: %d, max: %d", unigramCount,
-                    maxUnigramCount);
-            return false;
-        }
-    }
-
-    readingHelper.initWithPtNodeArrayPos(rootPtNodeArrayPos);
-    DynamicPtGcEventListeners::TraversePolicyToUpdateBigramProbability
-            traversePolicyToUpdateBigramProbability(&ptNodeWriter);
-    if (!readingHelper.traverseAllPtNodesInPostorderDepthFirstManner(
-            &traversePolicyToUpdateBigramProbability)) {
-        return false;
-    }
-    const int bigramCount = traversePolicyToUpdateBigramProbability.getValidBigramEntryCount();
-    const int maxBigramCount = headerPolicy->getMaxBigramCount();
-    if (headerPolicy->isDecayingDict() && bigramCount > maxBigramCount) {
-        if (!truncateBigrams(maxBigramCount)) {
-            AKLOGE("Cannot remove bigrams. current: %d, max: %d", bigramCount, maxBigramCount);
-            return false;
-        }
-    }
-
-    // Mapping from positions in mBuffer to positions in bufferToWrite.
-    PtNodeWriter::DictPositionRelocationMap dictPositionRelocationMap;
-    readingHelper.initWithPtNodeArrayPos(rootPtNodeArrayPos);
-    Ver4PatriciaTrieNodeWriter ptNodeWriterForNewBuffers(buffersToWrite->getWritableTrieBuffer(),
-            buffersToWrite, headerPolicy, &ptNodeReader, &ptNodeArrayReader, &bigramPolicy,
-            &shortcutPolicy);
-    DynamicPtGcEventListeners::TraversePolicyToPlaceAndWriteValidPtNodesToBuffer
-            traversePolicyToPlaceAndWriteValidPtNodesToBuffer(&ptNodeWriterForNewBuffers,
-                    buffersToWrite->getWritableTrieBuffer(), &dictPositionRelocationMap);
-    if (!readingHelper.traverseAllPtNodesInPtNodeArrayLevelPreorderDepthFirstManner(
-            &traversePolicyToPlaceAndWriteValidPtNodesToBuffer)) {
-        return false;
-    }
-
-    // Create policy instances for the GCed dictionary.
-    Ver4PatriciaTrieNodeReader newPtNodeReader(buffersToWrite->getTrieBuffer(),
-            buffersToWrite->getLanguageModelDictContent(), headerPolicy);
-    Ver4PtNodeArrayReader newPtNodeArrayreader(buffersToWrite->getTrieBuffer());
-    Ver4BigramListPolicy newBigramPolicy(buffersToWrite->getMutableBigramDictContent(),
-            buffersToWrite->getTerminalPositionLookupTable(), headerPolicy);
-    Ver4ShortcutListPolicy newShortcutPolicy(buffersToWrite->getMutableShortcutDictContent(),
-            buffersToWrite->getTerminalPositionLookupTable());
-    Ver4PatriciaTrieNodeWriter newPtNodeWriter(buffersToWrite->getWritableTrieBuffer(),
-            buffersToWrite, headerPolicy, &newPtNodeReader, &newPtNodeArrayreader, &newBigramPolicy,
-            &newShortcutPolicy);
-    // Re-assign terminal IDs for valid terminal PtNodes.
-    TerminalPositionLookupTable::TerminalIdMap terminalIdMap;
-    if(!buffersToWrite->getMutableTerminalPositionLookupTable()->runGCTerminalIds(
-            &terminalIdMap)) {
-        return false;
-    }
-    // Run GC for probability dict content.
-    if (!buffersToWrite->getMutableLanguageModelDictContent()->runGC(&terminalIdMap,
-            mBuffers->getLanguageModelDictContent(), nullptr /* outNgramCount */)) {
-        return false;
-    }
-    // Run GC for bigram dict content.
-    if(!buffersToWrite->getMutableBigramDictContent()->runGC(&terminalIdMap,
-            mBuffers->getBigramDictContent(), outBigramCount)) {
-        return false;
-    }
-    // Run GC for shortcut dict content.
-    if(!buffersToWrite->getMutableShortcutDictContent()->runGC(&terminalIdMap,
-            mBuffers->getShortcutDictContent())) {
-        return false;
-    }
-    DynamicPtReadingHelper newDictReadingHelper(&newPtNodeReader, &newPtNodeArrayreader);
-    newDictReadingHelper.initWithPtNodeArrayPos(rootPtNodeArrayPos);
-    DynamicPtGcEventListeners::TraversePolicyToUpdateAllPositionFields
-            traversePolicyToUpdateAllPositionFields(&newPtNodeWriter, &dictPositionRelocationMap);
-    if (!newDictReadingHelper.traverseAllPtNodesInPtNodeArrayLevelPreorderDepthFirstManner(
-            &traversePolicyToUpdateAllPositionFields)) {
-        return false;
-    }
-    newDictReadingHelper.initWithPtNodeArrayPos(rootPtNodeArrayPos);
-    TraversePolicyToUpdateAllPtNodeFlagsAndTerminalIds
-            traversePolicyToUpdateAllPtNodeFlagsAndTerminalIds(&newPtNodeWriter, &terminalIdMap);
-    if (!newDictReadingHelper.traverseAllPtNodesInPostorderDepthFirstManner(
-            &traversePolicyToUpdateAllPtNodeFlagsAndTerminalIds)) {
-        return false;
-    }
-    *outUnigramCount = traversePolicyToUpdateAllPositionFields.getUnigramCount();
-    return true;
-}
-
-bool Ver4PatriciaTrieWritingHelper::truncateUnigrams(
-        const Ver4PatriciaTrieNodeReader *const ptNodeReader,
-        Ver4PatriciaTrieNodeWriter *const ptNodeWriter, const int maxUnigramCount) {
-    const TerminalPositionLookupTable *const terminalPosLookupTable =
-            mBuffers->getTerminalPositionLookupTable();
-    const int nextTerminalId = terminalPosLookupTable->getNextTerminalId();
-    std::priority_queue<DictProbability, std::vector<DictProbability>, DictProbabilityComparator>
-            priorityQueue;
-    for (int i = 0; i < nextTerminalId; ++i) {
-        const int terminalPos = terminalPosLookupTable->getTerminalPtNodePosition(i);
-        if (terminalPos == NOT_A_DICT_POS) {
-            continue;
-        }
-        const ProbabilityEntry probabilityEntry =
-                mBuffers->getLanguageModelDictContent()->getProbabilityEntry(i);
-        const int probability = probabilityEntry.hasHistoricalInfo() ?
-                ForgettingCurveUtils::decodeProbability(
-                        probabilityEntry.getHistoricalInfo(), mBuffers->getHeaderPolicy()) :
-                probabilityEntry.getProbability();
-        priorityQueue.push(DictProbability(terminalPos, probability,
-                probabilityEntry.getHistoricalInfo()->getTimeStamp()));
-    }
-
-    // Delete unigrams.
-    while (static_cast<int>(priorityQueue.size()) > maxUnigramCount) {
-        const int ptNodePos = priorityQueue.top().getDictPos();
-        priorityQueue.pop();
-        const PtNodeParams ptNodeParams =
-                ptNodeReader->fetchPtNodeParamsInBufferFromPtNodePos(ptNodePos);
-        if (ptNodeParams.representsNonWordInfo()) {
-            continue;
-        }
-        if (!ptNodeWriter->markPtNodeAsWillBecomeNonTerminal(&ptNodeParams)) {
-            AKLOGE("Cannot mark PtNode as willBecomeNonterminal. PtNode pos: %d", ptNodePos);
-            return false;
-        }
-    }
-    return true;
-}
-
-bool Ver4PatriciaTrieWritingHelper::truncateBigrams(const int maxBigramCount) {
-    const TerminalPositionLookupTable *const terminalPosLookupTable =
-            mBuffers->getTerminalPositionLookupTable();
-    const int nextTerminalId = terminalPosLookupTable->getNextTerminalId();
-    std::priority_queue<DictProbability, std::vector<DictProbability>, DictProbabilityComparator>
-            priorityQueue;
-    BigramDictContent *const bigramDictContent = mBuffers->getMutableBigramDictContent();
-    for (int i = 0; i < nextTerminalId; ++i) {
-        const int bigramListPos = bigramDictContent->getBigramListHeadPos(i);
-        if (bigramListPos == NOT_A_DICT_POS) {
-            continue;
-        }
-        bool hasNext = true;
-        int readingPos = bigramListPos;
-        while (hasNext) {
-            const BigramEntry bigramEntry =
-                    bigramDictContent->getBigramEntryAndAdvancePosition(&readingPos);
-            const int entryPos = readingPos - bigramDictContent->getBigramEntrySize();
-            hasNext = bigramEntry.hasNext();
-            if (!bigramEntry.isValid()) {
-                continue;
-            }
-            const int probability = bigramEntry.hasHistoricalInfo() ?
-                    ForgettingCurveUtils::decodeProbability(
-                            bigramEntry.getHistoricalInfo(), mBuffers->getHeaderPolicy()) :
-                    bigramEntry.getProbability();
-            priorityQueue.push(DictProbability(entryPos, probability,
-                    bigramEntry.getHistoricalInfo()->getTimeStamp()));
-        }
-    }
-
-    // Delete bigrams.
-    while (static_cast<int>(priorityQueue.size()) > maxBigramCount) {
-        const int entryPos = priorityQueue.top().getDictPos();
-        const BigramEntry bigramEntry = bigramDictContent->getBigramEntry(entryPos);
-        const BigramEntry invalidatedBigramEntry = bigramEntry.getInvalidatedEntry();
-        if (!bigramDictContent->writeBigramEntry(&invalidatedBigramEntry, entryPos)) {
-            AKLOGE("Cannot write bigram entry to remove. pos: %d", entryPos);
-            return false;
-        }
-        priorityQueue.pop();
-    }
-    return true;
-}
-
-bool Ver4PatriciaTrieWritingHelper::TraversePolicyToUpdateAllPtNodeFlagsAndTerminalIds
-        ::onVisitingPtNode(const PtNodeParams *const ptNodeParams) {
-    if (!ptNodeParams->isTerminal()) {
-        return true;
-    }
-    TerminalPositionLookupTable::TerminalIdMap::const_iterator it =
-            mTerminalIdMap->find(ptNodeParams->getTerminalId());
-    if (it == mTerminalIdMap->end()) {
-        AKLOGE("terminal Id %d is not in the terminal position map. map size: %zd",
-                ptNodeParams->getTerminalId(), mTerminalIdMap->size());
-        return false;
-    }
-    if (!mPtNodeWriter->updateTerminalId(ptNodeParams, it->second)) {
-        AKLOGE("Cannot update terminal id. %d -> %d", it->first, it->second);
-        return false;
-    }
-    return true;
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.h
deleted file mode 100644
index bb464ad..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_writing_helper.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_VER4_PATRICIA_TRIE_WRITING_HELPER_H
-#define LATINIME_VER4_PATRICIA_TRIE_WRITING_HELPER_H
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_gc_event_listeners.h"
-#include "suggest/policyimpl/dictionary/structure/v4/content/terminal_position_lookup_table.h"
-
-namespace latinime {
-
-class HeaderPolicy;
-class Ver4DictBuffers;
-class Ver4PatriciaTrieNodeReader;
-class Ver4PatriciaTrieNodeWriter;
-
-class Ver4PatriciaTrieWritingHelper {
- public:
-    Ver4PatriciaTrieWritingHelper(Ver4DictBuffers *const buffers)
-            : mBuffers(buffers) {}
-
-    bool writeToDictFile(const char *const dictDirPath, const int unigramCount,
-            const int bigramCount) const;
-
-    // This method cannot be const because the original dictionary buffer will be updated to detect
-    // useless PtNodes during GC.
-    bool writeToDictFileWithGC(const int rootPtNodeArrayPos, const char *const dictDirPath);
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(Ver4PatriciaTrieWritingHelper);
-
-    class TraversePolicyToUpdateAllPtNodeFlagsAndTerminalIds
-            : public DynamicPtReadingHelper::TraversingEventListener {
-     public:
-        TraversePolicyToUpdateAllPtNodeFlagsAndTerminalIds(
-                Ver4PatriciaTrieNodeWriter *const ptNodeWriter,
-                const TerminalPositionLookupTable::TerminalIdMap *const terminalIdMap)
-                : mPtNodeWriter(ptNodeWriter), mTerminalIdMap(terminalIdMap) {}
-
-        bool onAscend() { return true; }
-
-        bool onDescend(const int ptNodeArrayPos) { return true; }
-
-        bool onReadingPtNodeArrayTail() { return true; }
-
-        bool onVisitingPtNode(const PtNodeParams *const ptNodeParams);
-
-     private:
-        DISALLOW_IMPLICIT_CONSTRUCTORS(TraversePolicyToUpdateAllPtNodeFlagsAndTerminalIds);
-
-        Ver4PatriciaTrieNodeWriter *const mPtNodeWriter;
-        const TerminalPositionLookupTable::TerminalIdMap *const mTerminalIdMap;
-    };
-
-    // For truncateUnigrams() and truncateBigrams().
-    class DictProbability {
-     public:
-        DictProbability(const int dictPos, const int probability, const int timestamp)
-                : mDictPos(dictPos), mProbability(probability), mTimestamp(timestamp) {}
-
-        int getDictPos() const {
-            return mDictPos;
-        }
-
-        int getProbability() const {
-            return mProbability;
-        }
-
-        int getTimestamp() const {
-            return mTimestamp;
-        }
-
-     private:
-        DISALLOW_DEFAULT_CONSTRUCTOR(DictProbability);
-
-        int mDictPos;
-        int mProbability;
-        int mTimestamp;
-    };
-
-    // For truncateUnigrams() and truncateBigrams().
-    class DictProbabilityComparator {
-     public:
-        bool operator()(const DictProbability &left, const DictProbability &right) {
-            if (left.getProbability() != right.getProbability()) {
-                return left.getProbability() > right.getProbability();
-            }
-            if (left.getTimestamp() != right.getTimestamp()) {
-                return left.getTimestamp() < right.getTimestamp();
-            }
-            return left.getDictPos() > right.getDictPos();
-        }
-
-     private:
-        DISALLOW_ASSIGNMENT_OPERATOR(DictProbabilityComparator);
-    };
-
-    bool runGC(const int rootPtNodeArrayPos, const HeaderPolicy *const headerPolicy,
-            Ver4DictBuffers *const buffersToWrite, int *const outUnigramCount,
-            int *const outBigramCount);
-
-    bool truncateUnigrams(const Ver4PatriciaTrieNodeReader *const ptNodeReader,
-            Ver4PatriciaTrieNodeWriter *const ptNodeWriter, const int maxUnigramCount);
-
-    bool truncateBigrams(const int maxBigramCount);
-
-    Ver4DictBuffers *const mBuffers;
-};
-} // namespace latinime
-
-#endif /* LATINIME_VER4_PATRICIA_TRIE_WRITING_HELPER_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.cpp
deleted file mode 100644
index b014c52..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.h"
-
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_reading_utils.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-
-namespace latinime {
-
-bool Ver4PtNodeArrayReader::readPtNodeArrayInfoAndReturnIfValid(const int ptNodeArrayPos,
-        int *const outPtNodeCount, int *const outFirstPtNodePos) const {
-    if (ptNodeArrayPos < 0 || ptNodeArrayPos >= mBuffer->getTailPosition()) {
-        // Reading invalid position because of a bug or a broken dictionary.
-        AKLOGE("Reading PtNode array info from invalid dictionary position: %d, dict size: %d",
-                ptNodeArrayPos, mBuffer->getTailPosition());
-        ASSERT(false);
-        return false;
-    }
-    const bool usesAdditionalBuffer = mBuffer->isInAdditionalBuffer(ptNodeArrayPos);
-    const uint8_t *const dictBuf = mBuffer->getBuffer(usesAdditionalBuffer);
-    int readingPos = ptNodeArrayPos;
-    if (usesAdditionalBuffer) {
-        readingPos -= mBuffer->getOriginalBufferSize();
-    }
-    const int ptNodeCountInArray = PatriciaTrieReadingUtils::getPtNodeArraySizeAndAdvancePosition(
-            dictBuf, &readingPos);
-    if (usesAdditionalBuffer) {
-        readingPos += mBuffer->getOriginalBufferSize();
-    }
-    if (ptNodeCountInArray < 0) {
-        AKLOGE("Invalid PtNode count in an array: %d.", ptNodeCountInArray);
-        return false;
-    }
-    *outPtNodeCount = ptNodeCountInArray;
-    *outFirstPtNodePos = readingPos;
-    return true;
-}
-
-bool Ver4PtNodeArrayReader::readForwardLinkAndReturnIfValid(const int forwordLinkPos,
-        int *const outNextPtNodeArrayPos) const {
-    if (forwordLinkPos < 0 || forwordLinkPos >= mBuffer->getTailPosition()) {
-        // Reading invalid position because of bug or broken dictionary.
-        AKLOGE("Reading forward link from invalid dictionary position: %d, dict size: %d",
-                forwordLinkPos, mBuffer->getTailPosition());
-        ASSERT(false);
-        return false;
-    }
-    const bool usesAdditionalBuffer = mBuffer->isInAdditionalBuffer(forwordLinkPos);
-    const uint8_t *const dictBuf = mBuffer->getBuffer(usesAdditionalBuffer);
-    int readingPos = forwordLinkPos;
-    if (usesAdditionalBuffer) {
-        readingPos -= mBuffer->getOriginalBufferSize();
-    }
-    const int nextPtNodeArrayOffset =
-            DynamicPtReadingUtils::getForwardLinkPosition(dictBuf, readingPos);
-    if (DynamicPtReadingUtils::isValidForwardLinkPosition(nextPtNodeArrayOffset)) {
-        *outNextPtNodeArrayPos = forwordLinkPos + nextPtNodeArrayOffset;
-    } else {
-        *outNextPtNodeArrayPos = NOT_A_DICT_POS;
-    }
-    return true;
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.h b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.h
deleted file mode 100644
index d81808e..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_pt_node_array_reader.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_VER4_PT_NODE_ARRAY_READER_H
-#define LATINIME_VER4_PT_NODE_ARRAY_READER_H
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/pt_node_array_reader.h"
-
-namespace latinime {
-
-class BufferWithExtendableBuffer;
-
-class Ver4PtNodeArrayReader : public PtNodeArrayReader {
- public:
-    Ver4PtNodeArrayReader(const BufferWithExtendableBuffer *const buffer) : mBuffer(buffer) {};
-
-    virtual bool readPtNodeArrayInfoAndReturnIfValid(const int ptNodeArrayPos,
-            int *const outPtNodeCount, int *const outFirstPtNodePos) const;
-    virtual bool readForwardLinkAndReturnIfValid(const int forwordLinkPos,
-            int *const outNextPtNodeArrayPos) const;
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(Ver4PtNodeArrayReader);
-
-    const BufferWithExtendableBuffer *const mBuffer;
-};
-} // namespace latinime
-#endif /* LATINIME_VER4_PT_NODE_ARRAY_READER_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.cpp b/native/jni/src/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.cpp
deleted file mode 100644
index 833063c..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.cpp
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-
-namespace latinime {
-
-const size_t BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE = 1024 * 1024;
-const int BufferWithExtendableBuffer::NEAR_BUFFER_LIMIT_THRESHOLD_PERCENTILE = 90;
-// TODO: Needs to allocate larger memory corresponding to the current vector size.
-const size_t BufferWithExtendableBuffer::EXTEND_ADDITIONAL_BUFFER_SIZE_STEP = 128 * 1024;
-
-uint32_t BufferWithExtendableBuffer::readUint(const int size, const int pos) const {
-    const bool readingPosIsInAdditionalBuffer = isInAdditionalBuffer(pos);
-    const int posInBuffer = readingPosIsInAdditionalBuffer ? pos - mOriginalBuffer.size() : pos;
-    return ByteArrayUtils::readUint(getBuffer(readingPosIsInAdditionalBuffer), size, posInBuffer);
-}
-
-uint32_t BufferWithExtendableBuffer::readUintAndAdvancePosition(const int size,
-        int *const pos) const {
-    const int value = readUint(size, *pos);
-    *pos += size;
-    return value;
-}
-
-void BufferWithExtendableBuffer::readCodePointsAndAdvancePosition(const int maxCodePointCount,
-        int *const outCodePoints, int *outCodePointCount, int *const pos) const {
-    const bool readingPosIsInAdditionalBuffer = isInAdditionalBuffer(*pos);
-    if (readingPosIsInAdditionalBuffer) {
-        *pos -= mOriginalBuffer.size();
-    }
-    *outCodePointCount = ByteArrayUtils::readStringAndAdvancePosition(
-            getBuffer(readingPosIsInAdditionalBuffer), maxCodePointCount, outCodePoints, pos);
-    if (readingPosIsInAdditionalBuffer) {
-        *pos += mOriginalBuffer.size();
-    }
-}
-
-bool BufferWithExtendableBuffer::extend(const int size) {
-    return checkAndPrepareWriting(getTailPosition(), size);
-}
-
-bool BufferWithExtendableBuffer::writeUint(const uint32_t data, const int size, const int pos) {
-    int writingPos = pos;
-    return writeUintAndAdvancePosition(data, size, &writingPos);
-}
-
-bool BufferWithExtendableBuffer::writeUintAndAdvancePosition(const uint32_t data, const int size,
-        int *const pos) {
-    if (!(size >= 1 && size <= 4)) {
-        AKLOGI("writeUintAndAdvancePosition() is called with invalid size: %d", size);
-        ASSERT(false);
-        return false;
-    }
-    if (!checkAndPrepareWriting(*pos, size)) {
-        return false;
-    }
-    const bool usesAdditionalBuffer = isInAdditionalBuffer(*pos);
-    uint8_t *const buffer =
-            usesAdditionalBuffer ? mAdditionalBuffer.data() : mOriginalBuffer.data();
-    if (usesAdditionalBuffer) {
-        *pos -= mOriginalBuffer.size();
-    }
-    ByteArrayUtils::writeUintAndAdvancePosition(buffer, data, size, pos);
-    if (usesAdditionalBuffer) {
-        *pos += mOriginalBuffer.size();
-    }
-    return true;
-}
-
-bool BufferWithExtendableBuffer::writeCodePointsAndAdvancePosition(const int *const codePoints,
-        const int codePointCount, const bool writesTerminator, int *const pos) {
-    const size_t size = ByteArrayUtils::calculateRequiredByteCountToStoreCodePoints(
-            codePoints, codePointCount, writesTerminator);
-    if (!checkAndPrepareWriting(*pos, size)) {
-        return false;
-    }
-    const bool usesAdditionalBuffer = isInAdditionalBuffer(*pos);
-    uint8_t *const buffer =
-            usesAdditionalBuffer ? mAdditionalBuffer.data() : mOriginalBuffer.data();
-    if (usesAdditionalBuffer) {
-        *pos -= mOriginalBuffer.size();
-    }
-    ByteArrayUtils::writeCodePointsAndAdvancePosition(buffer, codePoints, codePointCount,
-            writesTerminator, pos);
-    if (usesAdditionalBuffer) {
-        *pos += mOriginalBuffer.size();
-    }
-    return true;
-}
-
-bool BufferWithExtendableBuffer::extendBuffer(const size_t size) {
-    const size_t extendSize = std::max(EXTEND_ADDITIONAL_BUFFER_SIZE_STEP, size);
-    const size_t sizeAfterExtending =
-            std::min(mAdditionalBuffer.size() + extendSize, mMaxAdditionalBufferSize);
-    if (sizeAfterExtending < mAdditionalBuffer.size() + size) {
-        return false;
-    }
-    mAdditionalBuffer.resize(sizeAfterExtending);
-    return true;
-}
-
-bool BufferWithExtendableBuffer::checkAndPrepareWriting(const int pos, const int size) {
-    if (pos < 0 || size < 0) {
-        // Invalid position or size.
-        return false;
-    }
-    const size_t totalRequiredSize = static_cast<size_t>(pos + size);
-    if (!isInAdditionalBuffer(pos)) {
-        // Here don't need to care about the additional buffer.
-        if (mOriginalBuffer.size() < totalRequiredSize) {
-            // Violate the boundary.
-            return false;
-        }
-        // The buffer has sufficient capacity.
-        return true;
-    }
-    // Hereafter, pos is in the additional buffer.
-    const size_t tailPosition = static_cast<size_t>(getTailPosition());
-    if (totalRequiredSize <= tailPosition) {
-        // The buffer has sufficient capacity.
-        return true;
-    }
-    if (static_cast<size_t>(pos) != tailPosition) {
-        // The additional buffer must be extended from the tail position.
-        return false;
-    }
-    const size_t extendSize = totalRequiredSize -
-            std::min(mAdditionalBuffer.size() + mOriginalBuffer.size(), totalRequiredSize);
-    if (extendSize > 0 && !extendBuffer(extendSize)) {
-        // Failed to extend the buffer.
-        return false;
-    }
-    mUsedAdditionalBufferSize += size;
-    return true;
-}
-
-bool BufferWithExtendableBuffer::copy(const BufferWithExtendableBuffer *const sourceBuffer) {
-    int copyingPos = 0;
-    const int tailPos = sourceBuffer->getTailPosition();
-    const int maxDataChunkSize = sizeof(uint32_t);
-    while (copyingPos < tailPos) {
-        const int remainingSize = tailPos - copyingPos;
-        const int copyingSize = (remainingSize >= maxDataChunkSize) ?
-                maxDataChunkSize : remainingSize;
-        const uint32_t data = sourceBuffer->readUint(copyingSize, copyingPos);
-        if (!writeUint(data, copyingSize, copyingPos)) {
-            return false;
-        }
-        copyingPos += copyingSize;
-    }
-    return true;
-}
-
-}
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h b/native/jni/src/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h
deleted file mode 100644
index fad83aa..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_BUFFER_WITH_EXTENDABLE_BUFFER_H
-#define LATINIME_BUFFER_WITH_EXTENDABLE_BUFFER_H
-
-#include <cstddef>
-#include <cstdint>
-#include <vector>
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/utils/byte_array_utils.h"
-#include "utils/byte_array_view.h"
-
-namespace latinime {
-
-// This is used as a buffer that can be extended for updatable dictionaries.
-// To optimize performance, raw pointer is directly used for reading buffer. The position has to be
-// adjusted to access additional buffer. On the other hand, this class does not provide writable
-// raw pointer but provides several methods that handle boundary checking for writing data.
-class BufferWithExtendableBuffer {
- public:
-    static const size_t DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE;
-
-    BufferWithExtendableBuffer(const ReadWriteByteArrayView originalBuffer,
-            const int maxAdditionalBufferSize)
-            : mOriginalBuffer(originalBuffer), mAdditionalBuffer(), mUsedAdditionalBufferSize(0),
-              mMaxAdditionalBufferSize(maxAdditionalBufferSize) {}
-
-    // Without original buffer.
-    BufferWithExtendableBuffer(const int maxAdditionalBufferSize)
-            : mOriginalBuffer(), mAdditionalBuffer(), mUsedAdditionalBufferSize(0),
-              mMaxAdditionalBufferSize(maxAdditionalBufferSize) {}
-
-    AK_FORCE_INLINE int getTailPosition() const {
-        return mOriginalBuffer.size() + mUsedAdditionalBufferSize;
-    }
-
-    AK_FORCE_INLINE int getUsedAdditionalBufferSize() const {
-        return mUsedAdditionalBufferSize;
-    }
-
-    /**
-     * For reading.
-     */
-    AK_FORCE_INLINE bool isInAdditionalBuffer(const int position) const {
-        return position >= static_cast<int>(mOriginalBuffer.size());
-    }
-
-    // TODO: Resolve the issue that the address can be changed when the vector is resized.
-    // CAVEAT!: Be careful about array out of bound access with buffers
-    AK_FORCE_INLINE const uint8_t *getBuffer(const bool usesAdditionalBuffer) const {
-        if (usesAdditionalBuffer) {
-            return mAdditionalBuffer.data();
-        } else {
-            return mOriginalBuffer.data();
-        }
-    }
-
-    uint32_t readUint(const int size, const int pos) const;
-
-    uint32_t readUintAndAdvancePosition(const int size, int *const pos) const;
-
-    void readCodePointsAndAdvancePosition(const int maxCodePointCount,
-            int *const outCodePoints, int *outCodePointCount, int *const pos) const;
-
-    AK_FORCE_INLINE int getOriginalBufferSize() const {
-        return mOriginalBuffer.size();
-    }
-
-    AK_FORCE_INLINE bool isNearSizeLimit() const {
-        return mAdditionalBuffer.size() >= ((mMaxAdditionalBufferSize
-                * NEAR_BUFFER_LIMIT_THRESHOLD_PERCENTILE) / 100);
-    }
-
-    bool extend(const int size);
-
-    /**
-     * For writing.
-     *
-     * Writing is allowed for original buffer, already written region of additional buffer and the
-     * tail of additional buffer.
-     */
-    bool writeUint(const uint32_t data, const int size, const int pos);
-
-    bool writeUintAndAdvancePosition(const uint32_t data, const int size, int *const pos);
-
-    bool writeCodePointsAndAdvancePosition(const int *const codePoints, const int codePointCount,
-            const bool writesTerminator, int *const pos);
-
-    bool copy(const BufferWithExtendableBuffer *const sourceBuffer);
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(BufferWithExtendableBuffer);
-
-    static const int NEAR_BUFFER_LIMIT_THRESHOLD_PERCENTILE;
-    static const size_t EXTEND_ADDITIONAL_BUFFER_SIZE_STEP;
-
-    const ReadWriteByteArrayView mOriginalBuffer;
-    std::vector<uint8_t> mAdditionalBuffer;
-    int mUsedAdditionalBufferSize;
-    const size_t mMaxAdditionalBufferSize;
-
-    // Return if the buffer is successfully extended or not.
-    bool extendBuffer(const size_t size);
-
-    // Returns if it is possible to write size-bytes from pos. When pos is at the tail position of
-    // the additional buffer, try extending the buffer.
-    bool checkAndPrepareWriting(const int pos, const int size);
-};
-}
-#endif /* LATINIME_BUFFER_WITH_EXTENDABLE_BUFFER_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/byte_array_utils.cpp b/native/jni/src/suggest/policyimpl/dictionary/utils/byte_array_utils.cpp
deleted file mode 100644
index 1833e88..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/byte_array_utils.cpp
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/utils/byte_array_utils.h"
-
-namespace latinime {
-
-const uint8_t ByteArrayUtils::MINIMUM_ONE_BYTE_CHARACTER_VALUE = 0x20;
-const uint8_t ByteArrayUtils::MAXIMUM_ONE_BYTE_CHARACTER_VALUE = 0xFF;
-const uint8_t ByteArrayUtils::CHARACTER_ARRAY_TERMINATOR = 0x1F;
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/byte_array_utils.h b/native/jni/src/suggest/policyimpl/dictionary/utils/byte_array_utils.h
deleted file mode 100644
index c0a9fcb..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/byte_array_utils.h
+++ /dev/null
@@ -1,279 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_BYTE_ARRAY_UTILS_H
-#define LATINIME_BYTE_ARRAY_UTILS_H
-
-#include <cstdint>
-
-#include "defines.h"
-
-namespace latinime {
-
-/**
- * Utility methods for reading byte arrays.
- */
-class ByteArrayUtils {
- public:
-    /**
-     * Integer writing
-     *
-     * Each method write a corresponding size integer in a big endian manner.
-     */
-    static AK_FORCE_INLINE void writeUintAndAdvancePosition(uint8_t *const buffer,
-            const uint32_t data, const int size, int *const pos) {
-        // size must be in 1 to 4.
-        ASSERT(size >= 1 && size <= 4);
-        switch (size) {
-            case 1:
-                ByteArrayUtils::writeUint8AndAdvancePosition(buffer, data, pos);
-                return;
-            case 2:
-                ByteArrayUtils::writeUint16AndAdvancePosition(buffer, data, pos);
-                return;
-            case 3:
-                ByteArrayUtils::writeUint24AndAdvancePosition(buffer, data, pos);
-                return;
-            case 4:
-                ByteArrayUtils::writeUint32AndAdvancePosition(buffer, data, pos);
-                return;
-            default:
-                break;
-        }
-    }
-
-    /**
-     * Integer reading
-     *
-     * Each method read a corresponding size integer in a big endian manner.
-     */
-    static AK_FORCE_INLINE uint32_t readUint32(const uint8_t *const buffer, const int pos) {
-        return (buffer[pos] << 24) ^ (buffer[pos + 1] << 16)
-                ^ (buffer[pos + 2] << 8) ^ buffer[pos + 3];
-    }
-
-    static AK_FORCE_INLINE uint32_t readUint24(const uint8_t *const buffer, const int pos) {
-        return (buffer[pos] << 16) ^ (buffer[pos + 1] << 8) ^ buffer[pos + 2];
-    }
-
-    static AK_FORCE_INLINE uint16_t readUint16(const uint8_t *const buffer, const int pos) {
-        return (buffer[pos] << 8) ^ buffer[pos + 1];
-    }
-
-    static AK_FORCE_INLINE uint8_t readUint8(const uint8_t *const buffer, const int pos) {
-        return buffer[pos];
-    }
-
-    static AK_FORCE_INLINE uint32_t readUint32AndAdvancePosition(
-            const uint8_t *const buffer, int *const pos) {
-        const uint32_t value = readUint32(buffer, *pos);
-        *pos += 4;
-        return value;
-    }
-
-    static AK_FORCE_INLINE int readSint24AndAdvancePosition(
-            const uint8_t *const buffer, int *const pos) {
-        const uint8_t value = readUint8(buffer, *pos);
-        if (value < 0x80) {
-            return readUint24AndAdvancePosition(buffer, pos);
-        } else {
-            (*pos)++;
-            return -(((value & 0x7F) << 16) ^ readUint16AndAdvancePosition(buffer, pos));
-        }
-    }
-
-    static AK_FORCE_INLINE uint32_t readUint24AndAdvancePosition(
-            const uint8_t *const buffer, int *const pos) {
-        const uint32_t value = readUint24(buffer, *pos);
-        *pos += 3;
-        return value;
-    }
-
-    static AK_FORCE_INLINE uint16_t readUint16AndAdvancePosition(
-            const uint8_t *const buffer, int *const pos) {
-        const uint16_t value = readUint16(buffer, *pos);
-        *pos += 2;
-        return value;
-    }
-
-    static AK_FORCE_INLINE uint8_t readUint8AndAdvancePosition(
-            const uint8_t *const buffer, int *const pos) {
-        return buffer[(*pos)++];
-    }
-
-    static AK_FORCE_INLINE int readUint(const uint8_t *const buffer,
-            const int size, const int pos) {
-        // size must be in 1 to 4.
-        ASSERT(size >= 1 && size <= 4);
-        switch (size) {
-            case 1:
-                return ByteArrayUtils::readUint8(buffer, pos);
-            case 2:
-                return ByteArrayUtils::readUint16(buffer, pos);
-            case 3:
-                return ByteArrayUtils::readUint24(buffer, pos);
-            case 4:
-                return ByteArrayUtils::readUint32(buffer, pos);
-            default:
-                return 0;
-        }
-    }
-
-    /**
-     * Code Point Reading
-     *
-     * 1 byte = bbbbbbbb match
-     * case 000xxxxx: xxxxx << 16 + next byte << 8 + next byte
-     * else: if 00011111 (= 0x1F) : this is the terminator. This is a relevant choice because
-     *       unicode code points range from 0 to 0x10FFFF, so any 3-byte value starting with
-     *       00011111 would be outside unicode.
-     * else: iso-latin-1 code
-     * This allows for the whole unicode range to be encoded, including chars outside of
-     * the BMP. Also everything in the iso-latin-1 charset is only 1 byte, except control
-     * characters which should never happen anyway (and still work, but take 3 bytes).
-     */
-    static AK_FORCE_INLINE int readCodePoint(const uint8_t *const buffer, const int pos) {
-        int p = pos;
-        return readCodePointAndAdvancePosition(buffer, &p);
-    }
-
-    static AK_FORCE_INLINE int readCodePointAndAdvancePosition(
-            const uint8_t *const buffer, int *const pos) {
-        const uint8_t firstByte = readUint8(buffer, *pos);
-        if (firstByte < MINIMUM_ONE_BYTE_CHARACTER_VALUE) {
-            if (firstByte == CHARACTER_ARRAY_TERMINATOR) {
-                *pos += 1;
-                return NOT_A_CODE_POINT;
-            } else {
-                return readUint24AndAdvancePosition(buffer, pos);
-            }
-        } else {
-            *pos += 1;
-            return firstByte;
-        }
-    }
-
-    /**
-     * String (array of code points) Reading
-     *
-     * Reads code points until the terminator is found.
-     */
-    // Returns the length of the string.
-    static int readStringAndAdvancePosition(const uint8_t *const buffer,
-            const int maxLength, int *const outBuffer, int *const pos) {
-        int length = 0;
-        int codePoint = readCodePointAndAdvancePosition(buffer, pos);
-        while (NOT_A_CODE_POINT != codePoint && length < maxLength) {
-            outBuffer[length++] = codePoint;
-            codePoint = readCodePointAndAdvancePosition(buffer, pos);
-        }
-        return length;
-    }
-
-    // Advances the position and returns the length of the string.
-    static int advancePositionToBehindString(
-            const uint8_t *const buffer, const int maxLength, int *const pos) {
-        int length = 0;
-        int codePoint = readCodePointAndAdvancePosition(buffer, pos);
-        while (NOT_A_CODE_POINT != codePoint && length < maxLength) {
-            codePoint = readCodePointAndAdvancePosition(buffer, pos);
-            length++;
-        }
-        return length;
-    }
-
-    /**
-     * String (array of code points) Writing
-     */
-    static void writeCodePointsAndAdvancePosition(uint8_t *const buffer,
-            const int *const codePoints, const int codePointCount, const bool writesTerminator,
-            int *const pos) {
-        for (int i = 0; i < codePointCount; ++i) {
-            const int codePoint = codePoints[i];
-            if (codePoint == NOT_A_CODE_POINT || codePoint == CHARACTER_ARRAY_TERMINATOR) {
-                break;
-            } else if (codePoint < MINIMUM_ONE_BYTE_CHARACTER_VALUE
-                    || codePoint > MAXIMUM_ONE_BYTE_CHARACTER_VALUE) {
-                // three bytes character.
-                writeUint24AndAdvancePosition(buffer, codePoint, pos);
-            } else {
-                // one byte character.
-                writeUint8AndAdvancePosition(buffer, codePoint, pos);
-            }
-        }
-        if (writesTerminator) {
-            writeUint8AndAdvancePosition(buffer, CHARACTER_ARRAY_TERMINATOR, pos);
-        }
-    }
-
-    static int calculateRequiredByteCountToStoreCodePoints(const int *const codePoints,
-            const int codePointCount, const bool writesTerminator) {
-        int byteCount = 0;
-        for (int i = 0; i < codePointCount; ++i) {
-            const int codePoint = codePoints[i];
-            if (codePoint == NOT_A_CODE_POINT || codePoint == CHARACTER_ARRAY_TERMINATOR) {
-                break;
-            } else if (codePoint < MINIMUM_ONE_BYTE_CHARACTER_VALUE
-                    || codePoint > MAXIMUM_ONE_BYTE_CHARACTER_VALUE) {
-                // three bytes character.
-                byteCount += 3;
-            } else {
-                // one byte character.
-                byteCount += 1;
-            }
-        }
-        if (writesTerminator) {
-            // The terminator is one byte.
-            byteCount += 1;
-        }
-        return byteCount;
-    }
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(ByteArrayUtils);
-
-    static const uint8_t MINIMUM_ONE_BYTE_CHARACTER_VALUE;
-    static const uint8_t MAXIMUM_ONE_BYTE_CHARACTER_VALUE;
-    static const uint8_t CHARACTER_ARRAY_TERMINATOR;
-
-    static AK_FORCE_INLINE void writeUint32AndAdvancePosition(uint8_t *const buffer,
-            const uint32_t data, int *const pos) {
-        buffer[(*pos)++] = (data >> 24) & 0xFF;
-        buffer[(*pos)++] = (data >> 16) & 0xFF;
-        buffer[(*pos)++] = (data >> 8) & 0xFF;
-        buffer[(*pos)++] = data & 0xFF;
-    }
-
-    static AK_FORCE_INLINE void writeUint24AndAdvancePosition(uint8_t *const buffer,
-            const uint32_t data, int *const pos) {
-        buffer[(*pos)++] = (data >> 16) & 0xFF;
-        buffer[(*pos)++] = (data >> 8) & 0xFF;
-        buffer[(*pos)++] = data & 0xFF;
-    }
-
-    static AK_FORCE_INLINE void writeUint16AndAdvancePosition(uint8_t *const buffer,
-            const uint16_t data, int *const pos) {
-        buffer[(*pos)++] = (data >> 8) & 0xFF;
-        buffer[(*pos)++] = data & 0xFF;
-    }
-
-    static AK_FORCE_INLINE void writeUint8AndAdvancePosition(uint8_t *const buffer,
-            const uint8_t data, int *const pos) {
-        buffer[(*pos)++] = data & 0xFF;
-    }
-};
-} // namespace latinime
-#endif /* LATINIME_BYTE_ARRAY_UTILS_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.cpp b/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.cpp
deleted file mode 100644
index b7e2a72..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.cpp
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h"
-
-#include <cstdio>
-#include <errno.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/structure/backward/v402/ver4_dict_buffers.h"
-#include "suggest/policyimpl/dictionary/structure/pt_common/dynamic_pt_writing_utils.h"
-#include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_buffers.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "suggest/policyimpl/dictionary/utils/file_utils.h"
-#include "suggest/policyimpl/dictionary/utils/format_utils.h"
-#include "utils/time_keeper.h"
-
-namespace latinime {
-
-const char *const DictFileWritingUtils::TEMP_FILE_SUFFIX_FOR_WRITING_DICT_FILE = ".tmp";
-// Enough size to describe buffer size.
-const int DictFileWritingUtils::SIZE_OF_BUFFER_SIZE_FIELD = 4;
-
-/* static */ bool DictFileWritingUtils::createEmptyDictFile(const char *const filePath,
-        const int dictVersion, const std::vector<int> localeAsCodePointVector,
-        const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap) {
-    TimeKeeper::setCurrentTime();
-    const FormatUtils::FORMAT_VERSION formatVersion = FormatUtils::getFormatVersion(dictVersion);
-    switch (formatVersion) {
-        case FormatUtils::VERSION_4:
-            return createEmptyV4DictFile<backward::v402::Ver4DictConstants,
-                    backward::v402::Ver4DictBuffers,
-                    backward::v402::Ver4DictBuffers::Ver4DictBuffersPtr>(
-                            filePath, localeAsCodePointVector, attributeMap, formatVersion);
-        case FormatUtils::VERSION_4_ONLY_FOR_TESTING:
-        case FormatUtils::VERSION_4_DEV:
-            return createEmptyV4DictFile<Ver4DictConstants, Ver4DictBuffers,
-                    Ver4DictBuffers::Ver4DictBuffersPtr>(
-                            filePath, localeAsCodePointVector, attributeMap, formatVersion);
-        default:
-            AKLOGE("Cannot create dictionary %s because format version %d is not supported.",
-                    filePath, dictVersion);
-            return false;
-    }
-}
-
-template<class DictConstants, class DictBuffers, class DictBuffersPtr>
-/* static */ bool DictFileWritingUtils::createEmptyV4DictFile(const char *const dirPath,
-        const std::vector<int> localeAsCodePointVector,
-        const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap,
-        const FormatUtils::FORMAT_VERSION formatVersion) {
-    HeaderPolicy headerPolicy(formatVersion, localeAsCodePointVector, attributeMap);
-    DictBuffersPtr dictBuffers = DictBuffers::createVer4DictBuffers(&headerPolicy,
-            DictConstants::MAX_DICT_EXTENDED_REGION_SIZE);
-    headerPolicy.fillInAndWriteHeaderToBuffer(true /* updatesLastDecayedTime */,
-            0 /* unigramCount */, 0 /* bigramCount */,
-            0 /* extendedRegionSize */, dictBuffers->getWritableHeaderBuffer());
-    if (!DynamicPtWritingUtils::writeEmptyDictionary(
-            dictBuffers->getWritableTrieBuffer(), 0 /* rootPos */)) {
-        AKLOGE("Empty ver4 dictionary structure cannot be created on memory.");
-        return false;
-    }
-    return dictBuffers->flush(dirPath);
-}
-
-/* static */ bool DictFileWritingUtils::flushBufferToFileWithSuffix(const char *const basePath,
-        const char *const suffix, const BufferWithExtendableBuffer *const buffer) {
-    const int filePathBufSize = FileUtils::getFilePathWithSuffixBufSize(basePath, suffix);
-    char filePath[filePathBufSize];
-    FileUtils::getFilePathWithSuffix(basePath, suffix, filePathBufSize, filePath);
-    return flushBufferToFile(filePath, buffer);
-}
-
-/* static */ bool DictFileWritingUtils::writeBufferToFileTail(FILE *const file,
-        const BufferWithExtendableBuffer *const buffer) {
-    uint8_t bufferSize[SIZE_OF_BUFFER_SIZE_FIELD];
-    int writingPos = 0;
-    ByteArrayUtils::writeUintAndAdvancePosition(bufferSize, buffer->getTailPosition(),
-            SIZE_OF_BUFFER_SIZE_FIELD, &writingPos);
-    if (fwrite(bufferSize, SIZE_OF_BUFFER_SIZE_FIELD, 1 /* count */, file) < 1) {
-        return false;
-    }
-    return writeBufferToFile(file, buffer);
-}
-
-/* static */ bool DictFileWritingUtils::flushBufferToFile(const char *const filePath,
-        const BufferWithExtendableBuffer *const buffer) {
-    const int fd = open(filePath, O_WRONLY | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR);
-    if (fd == -1) {
-        AKLOGE("File %s cannot be opened. errno: %d", filePath, errno);
-        ASSERT(false);
-        return false;
-    }
-    FILE *const file = fdopen(fd, "wb");
-    if (!file) {
-        AKLOGE("fdopen failed for the file %s. errno: %d", filePath, errno);
-        ASSERT(false);
-        return false;
-    }
-    if (!writeBufferToFile(file, buffer)) {
-        fclose(file);
-        remove(filePath);
-        AKLOGE("Buffer cannot be written to the file %s. size: %d", filePath,
-                buffer->getTailPosition());
-        ASSERT(false);
-        return false;
-    }
-    fclose(file);
-    return true;
-}
-
-// Returns whether the writing was succeeded or not.
-/* static */ bool DictFileWritingUtils::writeBufferToFile(FILE *const file,
-        const BufferWithExtendableBuffer *const buffer) {
-    const int originalBufSize = buffer->getOriginalBufferSize();
-    if (originalBufSize > 0 && fwrite(buffer->getBuffer(false /* usesAdditionalBuffer */),
-            originalBufSize, 1, file) < 1) {
-        return false;
-    }
-    const int additionalBufSize = buffer->getUsedAdditionalBufferSize();
-    if (additionalBufSize > 0 && fwrite(buffer->getBuffer(true /* usesAdditionalBuffer */),
-            additionalBufSize, 1, file) < 1) {
-        return false;
-    }
-    return true;
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h b/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h
deleted file mode 100644
index 4843b3b..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_DICT_FILE_WRITING_UTILS_H
-#define LATINIME_DICT_FILE_WRITING_UTILS_H
-
-#include <cstdio>
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/header/header_read_write_utils.h"
-#include "suggest/policyimpl/dictionary/utils/format_utils.h"
-
-namespace latinime {
-
-class BufferWithExtendableBuffer;
-
-class DictFileWritingUtils {
- public:
-    static const char *const TEMP_FILE_SUFFIX_FOR_WRITING_DICT_FILE;
-
-    static bool createEmptyDictFile(const char *const filePath, const int dictVersion,
-            const std::vector<int> localeAsCodePointVector,
-            const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap);
-
-    static bool flushBufferToFileWithSuffix(const char *const basePath, const char *const suffix,
-            const BufferWithExtendableBuffer *const buffer);
-
-    static bool writeBufferToFileTail(FILE *const file,
-            const BufferWithExtendableBuffer *const buffer);
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(DictFileWritingUtils);
-
-    static const int SIZE_OF_BUFFER_SIZE_FIELD;
-
-    static bool createEmptyV401DictFile(const char *const filePath,
-            const std::vector<int> localeAsCodePointVector,
-            const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap,
-            const FormatUtils::FORMAT_VERSION formatVersion);
-
-    template<class DictConstants, class DictBuffers, class DictBuffersPtr>
-    static bool createEmptyV4DictFile(const char *const filePath,
-            const std::vector<int> localeAsCodePointVector,
-            const DictionaryHeaderStructurePolicy::AttributeMap *const attributeMap,
-            const FormatUtils::FORMAT_VERSION formatVersion);
-
-    static bool flushBufferToFile(const char *const filePath,
-            const BufferWithExtendableBuffer *const buffer);
-
-    static bool writeBufferToFile(FILE *const file,
-            const BufferWithExtendableBuffer *const buffer);
-};
-} // namespace latinime
-#endif /* LATINIME_DICT_FILE_WRITING_UTILS_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/file_utils.cpp b/native/jni/src/suggest/policyimpl/dictionary/utils/file_utils.cpp
deleted file mode 100644
index fb80f38..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/file_utils.cpp
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/utils/file_utils.h"
-
-#include <cstdio>
-#include <cstring>
-#include <dirent.h>
-#include <fcntl.h>
-#include <libgen.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-
-namespace latinime {
-
-// Returns -1 on error.
-/* static */ int FileUtils::getFileSize(const char *const filePath) {
-    const int fd = open(filePath, O_RDONLY);
-    if (fd == -1) {
-        return -1;
-    }
-    struct stat statBuf;
-    if (fstat(fd, &statBuf) != 0) {
-        close(fd);
-        return -1;
-    }
-    close(fd);
-    return static_cast<int>(statBuf.st_size);
-}
-
-/* static */ bool FileUtils::existsDir(const char *const dirPath) {
-    DIR *const dir = opendir(dirPath);
-    if (dir == NULL) {
-        return false;
-    }
-    closedir(dir);
-    return true;
-}
-
-// Remove a directory and all files in the directory.
-/* static */ bool FileUtils::removeDirAndFiles(const char *const dirPath) {
-    return removeDirAndFiles(dirPath, 5 /* maxTries */);
-}
-
-// Remove a directory and all files in the directory, trying up to maxTimes.
-/* static */ bool FileUtils::removeDirAndFiles(const char *const dirPath, const int maxTries) {
-    DIR *const dir = opendir(dirPath);
-    if (dir == NULL) {
-        AKLOGE("Cannot open dir %s.", dirPath);
-        return true;
-    }
-    struct dirent *dirent;
-    while ((dirent = readdir(dir)) != NULL) {
-        if (dirent->d_type == DT_DIR) {
-            continue;
-        }
-        if (strcmp(dirent->d_name, ".") == 0 || strcmp(dirent->d_name, "..") == 0) {
-            continue;
-        }
-        const int filePathBufSize = getFilePathBufSize(dirPath, dirent->d_name);
-        char filePath[filePathBufSize];
-        getFilePath(dirPath, dirent->d_name, filePathBufSize, filePath);
-        if (remove(filePath) != 0) {
-            AKLOGE("Cannot remove file %s.", filePath);
-            closedir(dir);
-            return false;
-        }
-    }
-    closedir(dir);
-    if (remove(dirPath) != 0) {
-        if (maxTries > 0) {
-            // On NFS, deleting files sometimes creates new files. I'm not sure what the
-            // correct way of dealing with this is, but for the time being, this seems to work.
-            removeDirAndFiles(dirPath, maxTries - 1);
-        } else {
-            AKLOGE("Cannot remove directory %s.", dirPath);
-            return false;
-        }
-    }
-    return true;
-}
-
-/* static */ int FileUtils::getFilePathWithSuffixBufSize(const char *const filePath,
-        const char *const suffix) {
-    return strlen(filePath) + strlen(suffix) + 1 /* terminator */;
-}
-
-/* static */ void FileUtils::getFilePathWithSuffix(const char *const filePath,
-        const char *const suffix, const int filePathBufSize, char *const outFilePath) {
-    snprintf(outFilePath, filePathBufSize, "%s%s", filePath, suffix);
-}
-
-/* static */ int FileUtils::getFilePathBufSize(const char *const dirPath,
-        const char *const fileName) {
-    return strlen(dirPath) + 1 /* '/' */ + strlen(fileName) + 1 /* terminator */;
-}
-
-/* static */ void FileUtils::getFilePath(const char *const dirPath, const char *const fileName,
-        const int filePathBufSize, char *const outFilePath) {
-    snprintf(outFilePath, filePathBufSize, "%s/%s", dirPath, fileName);
-}
-
-/* static */ bool FileUtils::getFilePathWithoutSuffix(const char *const filePath,
-        const char *const suffix, const int outDirPathBufSize, char *const outDirPath) {
-    const int filePathLength = strlen(filePath);
-    const int suffixLength = strlen(suffix);
-    if (filePathLength <= suffixLength) {
-        AKLOGE("File path length (%s:%d) is shorter that suffix length (%s:%d).",
-                filePath, filePathLength, suffix, suffixLength);
-        return false;
-    }
-    const int resultFilePathLength = filePathLength - suffixLength;
-    if (outDirPathBufSize <= resultFilePathLength) {
-        AKLOGE("outDirPathBufSize is too small. filePath: %s, suffix: %s, outDirPathBufSize: %d",
-                filePath, suffix, outDirPathBufSize);
-        return false;
-    }
-    if (strncmp(filePath + resultFilePathLength, suffix, suffixLength) != 0) {
-        AKLOGE("File Path %s does not have %s as a suffix", filePath, suffix);
-        return false;
-    }
-    snprintf(outDirPath, resultFilePathLength + 1 /* terminator */, "%s", filePath);
-    return true;
-}
-
-/* static */ void FileUtils::getDirPath(const char *const filePath, const int outDirPathBufSize,
-        char *const outDirPath) {
-    for (int i = strlen(filePath) - 1; i >= 0; --i) {
-        if (filePath[i] == '/') {
-            if (i >= outDirPathBufSize) {
-                AKLOGE("outDirPathBufSize is too small. filePath: %s, outDirPathBufSize: %d",
-                        filePath, outDirPathBufSize);
-                ASSERT(false);
-                return;
-            }
-            snprintf(outDirPath, i + 1 /* terminator */, "%s", filePath);
-            return;
-        }
-    }
-}
-
-/* static */ void FileUtils::getBasename(const char *const filePath,
-        const int outNameBufSize, char *const outName) {
-    const int filePathBufSize = strlen(filePath) + 1 /* terminator */;
-    char filePathBuf[filePathBufSize];
-    snprintf(filePathBuf, filePathBufSize, "%s", filePath);
-    const char *const baseName = basename(filePathBuf);
-    const int baseNameLength = strlen(baseName);
-    if (baseNameLength >= outNameBufSize) {
-        AKLOGE("outNameBufSize is too small. filePath: %s, outNameBufSize: %d",
-                filePath, outNameBufSize);
-        return;
-    }
-    snprintf(outName, baseNameLength + 1 /* terminator */, "%s", baseName);
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/forgetting_curve_utils.cpp b/native/jni/src/suggest/policyimpl/dictionary/utils/forgetting_curve_utils.cpp
deleted file mode 100644
index fed0ae7..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/forgetting_curve_utils.cpp
+++ /dev/null
@@ -1,239 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h"
-
-#include <algorithm>
-#include <cmath>
-#include <stdlib.h>
-
-#include "suggest/policyimpl/dictionary/header/header_policy.h"
-#include "suggest/policyimpl/dictionary/utils/probability_utils.h"
-#include "utils/time_keeper.h"
-
-namespace latinime {
-
-const int ForgettingCurveUtils::MULTIPLIER_TWO_IN_PROBABILITY_SCALE = 8;
-const int ForgettingCurveUtils::DECAY_INTERVAL_SECONDS = 2 * 60 * 60;
-
-const int ForgettingCurveUtils::MAX_LEVEL = 3;
-const int ForgettingCurveUtils::MIN_VISIBLE_LEVEL = 1;
-const int ForgettingCurveUtils::MAX_ELAPSED_TIME_STEP_COUNT = 15;
-const int ForgettingCurveUtils::DISCARD_LEVEL_ZERO_ENTRY_TIME_STEP_COUNT_THRESHOLD = 14;
-
-const float ForgettingCurveUtils::UNIGRAM_COUNT_HARD_LIMIT_WEIGHT = 1.2;
-const float ForgettingCurveUtils::BIGRAM_COUNT_HARD_LIMIT_WEIGHT = 1.2;
-
-const ForgettingCurveUtils::ProbabilityTable ForgettingCurveUtils::sProbabilityTable;
-
-// TODO: Revise the logic to decide the initial probability depending on the given probability.
-/* static */ const HistoricalInfo ForgettingCurveUtils::createUpdatedHistoricalInfo(
-        const HistoricalInfo *const originalHistoricalInfo, const int newProbability,
-        const HistoricalInfo *const newHistoricalInfo, const HeaderPolicy *const headerPolicy) {
-    const int timestamp = newHistoricalInfo->getTimeStamp();
-    if (newProbability != NOT_A_PROBABILITY && originalHistoricalInfo->getLevel() == 0) {
-        // Add entry as a valid word.
-        const int level = clampToVisibleEntryLevelRange(newHistoricalInfo->getLevel());
-        const int count = clampToValidCountRange(newHistoricalInfo->getCount(), headerPolicy);
-        return HistoricalInfo(timestamp, level, count);
-    } else if (!originalHistoricalInfo->isValid()
-            || originalHistoricalInfo->getLevel() < newHistoricalInfo->getLevel()
-            || (originalHistoricalInfo->getLevel() == newHistoricalInfo->getLevel()
-                    && originalHistoricalInfo->getCount() < newHistoricalInfo->getCount())) {
-        // Initial information.
-        const int level = clampToValidLevelRange(newHistoricalInfo->getLevel());
-        const int count = clampToValidCountRange(newHistoricalInfo->getCount(), headerPolicy);
-        return HistoricalInfo(timestamp, level, count);
-    } else {
-        const int updatedCount = originalHistoricalInfo->getCount() + 1;
-        if (updatedCount >= headerPolicy->getForgettingCurveOccurrencesToLevelUp()) {
-            // The count exceeds the max value the level can be incremented.
-            if (originalHistoricalInfo->getLevel() >= MAX_LEVEL) {
-                // The level is already max.
-                return HistoricalInfo(timestamp,
-                        originalHistoricalInfo->getLevel(), originalHistoricalInfo->getCount());
-            } else {
-                // Level up.
-                return HistoricalInfo(timestamp,
-                        originalHistoricalInfo->getLevel() + 1, 0 /* count */);
-            }
-        } else {
-            return HistoricalInfo(timestamp, originalHistoricalInfo->getLevel(), updatedCount);
-        }
-    }
-}
-
-/* static */ int ForgettingCurveUtils::decodeProbability(
-        const HistoricalInfo *const historicalInfo, const HeaderPolicy *const headerPolicy) {
-    const int elapsedTimeStepCount = getElapsedTimeStepCount(historicalInfo->getTimeStamp(),
-            headerPolicy->getForgettingCurveDurationToLevelDown());
-    return sProbabilityTable.getProbability(
-            headerPolicy->getForgettingCurveProbabilityValuesTableId(),
-            clampToValidLevelRange(historicalInfo->getLevel()),
-            clampToValidTimeStepCountRange(elapsedTimeStepCount));
-}
-
-/* static */ int ForgettingCurveUtils::getProbability(const int unigramProbability,
-        const int bigramProbability) {
-    if (unigramProbability == NOT_A_PROBABILITY) {
-        return NOT_A_PROBABILITY;
-    } else if (bigramProbability == NOT_A_PROBABILITY) {
-        return std::min(backoff(unigramProbability), MAX_PROBABILITY);
-    } else {
-        // TODO: Investigate better way to handle bigram probability.
-        return std::min(std::max(unigramProbability,
-                bigramProbability + MULTIPLIER_TWO_IN_PROBABILITY_SCALE), MAX_PROBABILITY);
-    }
-}
-
-/* static */ bool ForgettingCurveUtils::needsToKeep(const HistoricalInfo *const historicalInfo,
-        const HeaderPolicy *const headerPolicy) {
-    return historicalInfo->getLevel() > 0
-            || getElapsedTimeStepCount(historicalInfo->getTimeStamp(),
-                    headerPolicy->getForgettingCurveDurationToLevelDown())
-                            < DISCARD_LEVEL_ZERO_ENTRY_TIME_STEP_COUNT_THRESHOLD;
-}
-
-/* static */ const HistoricalInfo ForgettingCurveUtils::createHistoricalInfoToSave(
-        const HistoricalInfo *const originalHistoricalInfo,
-        const HeaderPolicy *const headerPolicy) {
-    if (originalHistoricalInfo->getTimeStamp() == NOT_A_TIMESTAMP) {
-        return HistoricalInfo();
-    }
-    const int durationToLevelDownInSeconds = headerPolicy->getForgettingCurveDurationToLevelDown();
-    const int elapsedTimeStep = getElapsedTimeStepCount(
-            originalHistoricalInfo->getTimeStamp(), durationToLevelDownInSeconds);
-    if (elapsedTimeStep <= MAX_ELAPSED_TIME_STEP_COUNT) {
-        // No need to update historical info.
-        return *originalHistoricalInfo;
-    }
-    // Level down.
-    const int maxLevelDownAmonut = elapsedTimeStep / (MAX_ELAPSED_TIME_STEP_COUNT + 1);
-    const int levelDownAmount = (maxLevelDownAmonut >= originalHistoricalInfo->getLevel()) ?
-            originalHistoricalInfo->getLevel() : maxLevelDownAmonut;
-    const int adjustedTimestampInSeconds = originalHistoricalInfo->getTimeStamp() +
-            levelDownAmount * durationToLevelDownInSeconds;
-    return HistoricalInfo(adjustedTimestampInSeconds,
-            originalHistoricalInfo->getLevel() - levelDownAmount, 0 /* count */);
-}
-
-/* static */ bool ForgettingCurveUtils::needsToDecay(const bool mindsBlockByDecay,
-        const int unigramCount, const int bigramCount, const HeaderPolicy *const headerPolicy) {
-    if (unigramCount >= getUnigramCountHardLimit(headerPolicy->getMaxUnigramCount())) {
-        // Unigram count exceeds the limit.
-        return true;
-    } else if (bigramCount >= getBigramCountHardLimit(headerPolicy->getMaxBigramCount())) {
-        // Bigram count exceeds the limit.
-        return true;
-    }
-    if (mindsBlockByDecay) {
-        return false;
-    }
-    if (headerPolicy->getLastDecayedTime() + DECAY_INTERVAL_SECONDS
-            < TimeKeeper::peekCurrentTime()) {
-        // Time to decay.
-        return true;
-    }
-    return false;
-}
-
-// See comments in ProbabilityUtils::backoff().
-/* static */ int ForgettingCurveUtils::backoff(const int unigramProbability) {
-    // See TODO comments in ForgettingCurveUtils::getProbability().
-    return unigramProbability;
-}
-
-/* static */ int ForgettingCurveUtils::getElapsedTimeStepCount(const int timestamp,
-        const int durationToLevelDownInSeconds) {
-    const int elapsedTimeInSeconds = TimeKeeper::peekCurrentTime() - timestamp;
-    const int timeStepDurationInSeconds =
-            durationToLevelDownInSeconds / (MAX_ELAPSED_TIME_STEP_COUNT + 1);
-    return elapsedTimeInSeconds / timeStepDurationInSeconds;
-}
-
-/* static */ int ForgettingCurveUtils::clampToVisibleEntryLevelRange(const int level) {
-    return std::min(std::max(level, MIN_VISIBLE_LEVEL), MAX_LEVEL);
-}
-
-/* static */ int ForgettingCurveUtils::clampToValidCountRange(const int count,
-        const HeaderPolicy *const headerPolicy) {
-    return std::min(std::max(count, 0), headerPolicy->getForgettingCurveOccurrencesToLevelUp() - 1);
-}
-
-/* static */ int ForgettingCurveUtils::clampToValidLevelRange(const int level) {
-    return std::min(std::max(level, 0), MAX_LEVEL);
-}
-
-/* static */ int ForgettingCurveUtils::clampToValidTimeStepCountRange(const int timeStepCount) {
-    return std::min(std::max(timeStepCount, 0), MAX_ELAPSED_TIME_STEP_COUNT);
-}
-
-const int ForgettingCurveUtils::ProbabilityTable::PROBABILITY_TABLE_COUNT = 4;
-const int ForgettingCurveUtils::ProbabilityTable::WEAK_PROBABILITY_TABLE_ID = 0;
-const int ForgettingCurveUtils::ProbabilityTable::MODEST_PROBABILITY_TABLE_ID = 1;
-const int ForgettingCurveUtils::ProbabilityTable::STRONG_PROBABILITY_TABLE_ID = 2;
-const int ForgettingCurveUtils::ProbabilityTable::AGGRESSIVE_PROBABILITY_TABLE_ID = 3;
-const int ForgettingCurveUtils::ProbabilityTable::WEAK_MAX_PROBABILITY = 127;
-const int ForgettingCurveUtils::ProbabilityTable::MODEST_BASE_PROBABILITY = 32;
-const int ForgettingCurveUtils::ProbabilityTable::STRONG_BASE_PROBABILITY = 35;
-const int ForgettingCurveUtils::ProbabilityTable::AGGRESSIVE_BASE_PROBABILITY = 40;
-
-
-ForgettingCurveUtils::ProbabilityTable::ProbabilityTable() : mTables() {
-    mTables.resize(PROBABILITY_TABLE_COUNT);
-    for (int tableId = 0; tableId < PROBABILITY_TABLE_COUNT; ++tableId) {
-        mTables[tableId].resize(MAX_LEVEL + 1);
-        for (int level = 0; level <= MAX_LEVEL; ++level) {
-            mTables[tableId][level].resize(MAX_ELAPSED_TIME_STEP_COUNT + 1);
-            const float initialProbability = getBaseProbabilityForLevel(tableId, level);
-            const float endProbability = getBaseProbabilityForLevel(tableId, level - 1);
-            for (int timeStepCount = 0; timeStepCount <= MAX_ELAPSED_TIME_STEP_COUNT;
-                    ++timeStepCount) {
-                if (level == 0) {
-                    mTables[tableId][level][timeStepCount] = NOT_A_PROBABILITY;
-                    continue;
-                }
-                const float probability = initialProbability
-                        * powf(initialProbability / endProbability,
-                                -1.0f * static_cast<float>(timeStepCount)
-                                        / static_cast<float>(MAX_ELAPSED_TIME_STEP_COUNT + 1));
-                mTables[tableId][level][timeStepCount] =
-                        std::min(std::max(static_cast<int>(probability), 1), MAX_PROBABILITY);
-            }
-        }
-    }
-}
-
-/* static */ int ForgettingCurveUtils::ProbabilityTable::getBaseProbabilityForLevel(
-        const int tableId, const int level) {
-    if (tableId == WEAK_PROBABILITY_TABLE_ID) {
-        // Max probability is 127.
-        return static_cast<float>(WEAK_MAX_PROBABILITY / (1 << (MAX_LEVEL - level)));
-    } else if (tableId == MODEST_PROBABILITY_TABLE_ID) {
-        // Max probability is 128.
-        return static_cast<float>(MODEST_BASE_PROBABILITY * (level + 1));
-    } else if (tableId == STRONG_PROBABILITY_TABLE_ID) {
-        // Max probability is 140.
-        return static_cast<float>(STRONG_BASE_PROBABILITY * (level + 1));
-    } else if (tableId == AGGRESSIVE_PROBABILITY_TABLE_ID) {
-        // Max probability is 160.
-        return static_cast<float>(AGGRESSIVE_BASE_PROBABILITY * (level + 1));
-    } else {
-        return NOT_A_PROBABILITY;
-    }
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h b/native/jni/src/suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h
deleted file mode 100644
index 9910777..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/forgetting_curve_utils.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_FORGETTING_CURVE_UTILS_H
-#define LATINIME_FORGETTING_CURVE_UTILS_H
-
-#include <vector>
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/utils/historical_info.h"
-
-namespace latinime {
-
-class HeaderPolicy;
-
-class ForgettingCurveUtils {
- public:
-    static const HistoricalInfo createUpdatedHistoricalInfo(
-            const HistoricalInfo *const originalHistoricalInfo, const int newProbability,
-            const HistoricalInfo *const newHistoricalInfo, const HeaderPolicy *const headerPolicy);
-
-    static const HistoricalInfo createHistoricalInfoToSave(
-            const HistoricalInfo *const originalHistoricalInfo,
-            const HeaderPolicy *const headerPolicy);
-
-    static int decodeProbability(const HistoricalInfo *const historicalInfo,
-            const HeaderPolicy *const headerPolicy);
-
-    static int getProbability(const int encodedUnigramProbability,
-            const int encodedBigramProbability);
-
-    static bool needsToKeep(const HistoricalInfo *const historicalInfo,
-            const HeaderPolicy *const headerPolicy);
-
-    static bool needsToDecay(const bool mindsBlockByDecay, const int unigramCount,
-            const int bigramCount, const HeaderPolicy *const headerPolicy);
-
-    AK_FORCE_INLINE static int getUnigramCountHardLimit(const int maxUnigramCount) {
-        return static_cast<int>(static_cast<float>(maxUnigramCount)
-                * UNIGRAM_COUNT_HARD_LIMIT_WEIGHT);
-    }
-
-    AK_FORCE_INLINE static int getBigramCountHardLimit(const int maxBigramCount) {
-        return static_cast<int>(static_cast<float>(maxBigramCount)
-                * BIGRAM_COUNT_HARD_LIMIT_WEIGHT);
-    }
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(ForgettingCurveUtils);
-
-    class ProbabilityTable {
-     public:
-        ProbabilityTable();
-
-        int getProbability(const int tableId, const int level,
-                const int elapsedTimeStepCount) const {
-            return mTables[tableId][level][elapsedTimeStepCount];
-        }
-
-     private:
-        DISALLOW_COPY_AND_ASSIGN(ProbabilityTable);
-
-        static const int PROBABILITY_TABLE_COUNT;
-        static const int WEAK_PROBABILITY_TABLE_ID;
-        static const int MODEST_PROBABILITY_TABLE_ID;
-        static const int STRONG_PROBABILITY_TABLE_ID;
-        static const int AGGRESSIVE_PROBABILITY_TABLE_ID;
-
-        static const int WEAK_MAX_PROBABILITY;
-        static const int MODEST_BASE_PROBABILITY;
-        static const int STRONG_BASE_PROBABILITY;
-        static const int AGGRESSIVE_BASE_PROBABILITY;
-
-        std::vector<std::vector<std::vector<int>>> mTables;
-
-        static int getBaseProbabilityForLevel(const int tableId, const int level);
-    };
-
-    static const int MULTIPLIER_TWO_IN_PROBABILITY_SCALE;
-    static const int DECAY_INTERVAL_SECONDS;
-
-    static const int MAX_LEVEL;
-    static const int MIN_VISIBLE_LEVEL;
-    static const int MAX_ELAPSED_TIME_STEP_COUNT;
-    static const int DISCARD_LEVEL_ZERO_ENTRY_TIME_STEP_COUNT_THRESHOLD;
-
-    static const float UNIGRAM_COUNT_HARD_LIMIT_WEIGHT;
-    static const float BIGRAM_COUNT_HARD_LIMIT_WEIGHT;
-
-    static const ProbabilityTable sProbabilityTable;
-
-    static int backoff(const int unigramProbability);
-    static int getElapsedTimeStepCount(const int timestamp, const int durationToLevelDown);
-    static int clampToVisibleEntryLevelRange(const int level);
-    static int clampToValidLevelRange(const int level);
-    static int clampToValidCountRange(const int count, const HeaderPolicy *const headerPolicy);
-    static int clampToValidTimeStepCountRange(const int timeStepCount);
-};
-} // namespace latinime
-#endif /* LATINIME_FORGETTING_CURVE_UTILS_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/format_utils.cpp b/native/jni/src/suggest/policyimpl/dictionary/utils/format_utils.cpp
deleted file mode 100644
index 1916ea5..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/format_utils.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/utils/format_utils.h"
-
-#include "suggest/policyimpl/dictionary/utils/byte_array_utils.h"
-
-namespace latinime {
-
-const uint32_t FormatUtils::MAGIC_NUMBER = 0x9BC13AFE;
-
-// Magic number (4 bytes), version (2 bytes), flags (2 bytes), header size (4 bytes) = 12
-const int FormatUtils::DICTIONARY_MINIMUM_SIZE = 12;
-
-/* static */ FormatUtils::FORMAT_VERSION FormatUtils::getFormatVersion(const int formatVersion) {
-    switch (formatVersion) {
-        case VERSION_2:
-            return VERSION_2;
-        case VERSION_4_ONLY_FOR_TESTING:
-            return VERSION_4_ONLY_FOR_TESTING;
-        case VERSION_4:
-            return VERSION_4;
-        case VERSION_4_DEV:
-            return VERSION_4_DEV;
-        default:
-            return UNKNOWN_VERSION;
-    }
-}
-/* static */ FormatUtils::FORMAT_VERSION FormatUtils::detectFormatVersion(
-        const uint8_t *const dict, const int dictSize) {
-    // The magic number is stored big-endian.
-    // If the dictionary is less than 4 bytes, we can't even read the magic number, so we don't
-    // understand this format.
-    if (dictSize < DICTIONARY_MINIMUM_SIZE) {
-        return UNKNOWN_VERSION;
-    }
-    const uint32_t magicNumber = ByteArrayUtils::readUint32(dict, 0);
-    switch (magicNumber) {
-        case MAGIC_NUMBER:
-            // The layout of the header is as follows:
-            // Magic number (4 bytes) 0x9B 0xC1 0x3A 0xFE
-            // Dictionary format version number (2 bytes)
-            // Options (2 bytes)
-            // Header size (4 bytes) : integer, big endian
-            // Conceptually this converts the hardcoded value of the bytes in the file into
-            // the symbolic value we use in the code. But we want the constants to be the
-            // same so we use them for both here.
-            return getFormatVersion(ByteArrayUtils::readUint16(dict, 4));
-        default:
-            return UNKNOWN_VERSION;
-    }
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/format_utils.h b/native/jni/src/suggest/policyimpl/dictionary/utils/format_utils.h
deleted file mode 100644
index 55ad579..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/format_utils.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_FORMAT_UTILS_H
-#define LATINIME_FORMAT_UTILS_H
-
-#include <cstdint>
-
-#include "defines.h"
-
-namespace latinime {
-
-/**
- * Methods to handle binary dictionary format version.
- */
-class FormatUtils {
- public:
-    enum FORMAT_VERSION {
-        // These MUST have the same values as the relevant constants in FormatSpec.java.
-        VERSION_2 = 2,
-        VERSION_4_ONLY_FOR_TESTING = 399,
-        VERSION_4 = 402,
-        VERSION_4_DEV = 403,
-        UNKNOWN_VERSION = -1
-    };
-
-    // 32 bit magic number is stored at the beginning of the dictionary header to reject
-    // unsupported or obsolete dictionary formats.
-    static const uint32_t MAGIC_NUMBER;
-
-    static FORMAT_VERSION getFormatVersion(const int formatVersion);
-    static FORMAT_VERSION detectFormatVersion(const uint8_t *const dict, const int dictSize);
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(FormatUtils);
-
-    static const int DICTIONARY_MINIMUM_SIZE;
-};
-} // namespace latinime
-#endif /* LATINIME_FORMAT_UTILS_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/historical_info.h b/native/jni/src/suggest/policyimpl/dictionary/utils/historical_info.h
deleted file mode 100644
index 428ca86..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/historical_info.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_HISTORICAL_INFO_H
-#define LATINIME_HISTORICAL_INFO_H
-
-#include "defines.h"
-
-namespace latinime {
-
-class HistoricalInfo {
- public:
-    // Invalid historical info.
-    HistoricalInfo()
-            : mTimestamp(NOT_A_TIMESTAMP), mLevel(0), mCount(0) {}
-
-    HistoricalInfo(const int timestamp, const int level, const int count)
-            : mTimestamp(timestamp), mLevel(level), mCount(count) {}
-
-    bool isValid() const {
-        return mTimestamp != NOT_A_TIMESTAMP;
-    }
-
-    int getTimeStamp() const {
-        return mTimestamp;
-    }
-
-    int getLevel() const {
-        return mLevel;
-    }
-
-    int getCount() const {
-        return mCount;
-    }
-
- private:
-    // Copy constructor is public to use this class as a type of return value.
-    DISALLOW_ASSIGNMENT_OPERATOR(HistoricalInfo);
-
-    const int mTimestamp;
-    const int mLevel;
-    const int mCount;
-};
-} // namespace latinime
-#endif /* LATINIME_HISTORICAL_INFO_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/mmapped_buffer.cpp b/native/jni/src/suggest/policyimpl/dictionary/utils/mmapped_buffer.cpp
deleted file mode 100644
index 4a126ff..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/mmapped_buffer.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/utils/mmapped_buffer.h"
-
-#include <cerrno>
-#include <climits>
-#include <cstdio>
-#include <fcntl.h>
-#include <sys/mman.h>
-#include <unistd.h>
-
-#include "suggest/policyimpl/dictionary/utils/file_utils.h"
-
-namespace latinime {
-
-/* static */ MmappedBuffer::MmappedBufferPtr MmappedBuffer::openBuffer(
-        const char *const path, const int bufferOffset, const int bufferSize,
-        const bool isUpdatable) {
-    const int mmapFd = open(path, O_RDONLY);
-    if (mmapFd < 0) {
-        AKLOGE("DICT: Can't open the source. path=%s errno=%d", path, errno);
-        return nullptr;
-    }
-    const int pagesize = sysconf(_SC_PAGESIZE);
-    const int offset = bufferOffset % pagesize;
-    int alignedOffset = bufferOffset - offset;
-    int alignedSize = bufferSize + offset;
-    const int protMode = isUpdatable ? PROT_READ | PROT_WRITE : PROT_READ;
-    void *const mmappedBuffer = mmap(0, alignedSize, protMode, MAP_PRIVATE, mmapFd,
-            alignedOffset);
-    if (mmappedBuffer == MAP_FAILED) {
-        AKLOGE("DICT: Can't mmap dictionary. errno=%d", errno);
-        close(mmapFd);
-        return nullptr;
-    }
-    uint8_t *const buffer = static_cast<uint8_t *>(mmappedBuffer) + offset;
-    if (!buffer) {
-        AKLOGE("DICT: buffer is null");
-        close(mmapFd);
-        return nullptr;
-    }
-    return MmappedBufferPtr(new MmappedBuffer(buffer, bufferSize, mmappedBuffer, alignedSize,
-            mmapFd, isUpdatable));
-}
-
-/* static */ MmappedBuffer::MmappedBufferPtr MmappedBuffer::openBuffer(
-        const char *const path, const bool isUpdatable) {
-    const int fileSize = FileUtils::getFileSize(path);
-    if (fileSize == -1) {
-        return nullptr;
-    } else if (fileSize == 0) {
-        return MmappedBufferPtr(new MmappedBuffer(isUpdatable));
-    } else {
-        return openBuffer(path, 0 /* bufferOffset */, fileSize, isUpdatable);
-    }
-}
-
-/* static */ MmappedBuffer::MmappedBufferPtr MmappedBuffer::openBuffer(
-        const char *const dirPath, const char *const fileName, const bool isUpdatable) {
-    const int filePathBufferSize = PATH_MAX + 1 /* terminator */;
-    char filePath[filePathBufferSize];
-    const int filePathLength = snprintf(filePath, filePathBufferSize, "%s%s", dirPath,
-            fileName);
-    if (filePathLength >= filePathBufferSize) {
-        return nullptr;
-    }
-    return openBuffer(filePath, isUpdatable);
-}
-
-MmappedBuffer::~MmappedBuffer() {
-    if (mAlignedSize == 0) {
-        return;
-    }
-    int ret = munmap(mMmappedBuffer, mAlignedSize);
-    if (ret != 0) {
-        AKLOGE("DICT: Failure in munmap. ret=%d errno=%d", ret, errno);
-    }
-    ret = close(mMmapFd);
-    if (ret != 0) {
-        AKLOGE("DICT: Failure in close. ret=%d errno=%d", ret, errno);
-    }
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/probability_utils.h b/native/jni/src/suggest/policyimpl/dictionary/utils/probability_utils.h
deleted file mode 100644
index 3b339e6..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/probability_utils.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_PROBABILITY_UTILS_H
-#define LATINIME_PROBABILITY_UTILS_H
-
-#include "defines.h"
-
-namespace latinime {
-
-// TODO: Quit using bigram probability to indicate the delta.
-class ProbabilityUtils {
- public:
-    static AK_FORCE_INLINE int backoff(const int unigramProbability) {
-        return unigramProbability;
-        // For some reason, applying the backoff weight gives bad results in tests. To apply the
-        // backoff weight, we divide the probability by 2, which in our storing format means
-        // decreasing the score by 8.
-        // TODO: figure out what's wrong with this.
-        // return unigramProbability > 8 ?
-        //         unigramProbability - 8 : (0 == unigramProbability ? 0 : 8);
-    }
-
-    static AK_FORCE_INLINE int computeProbabilityForBigram(
-            const int unigramProbability, const int bigramProbability) {
-        // We divide the range [unigramProbability..255] in 16.5 steps - in other words, we want
-        // the unigram probability to be the median value of the 17th step from the top. A value of
-        // 0 for the bigram probability represents the middle of the 16th step from the top,
-        // while a value of 15 represents the middle of the top step.
-        // See makedict.BinaryDictEncoder#makeBigramFlags for details.
-        const float stepSize = static_cast<float>(MAX_PROBABILITY - unigramProbability)
-                / (1.5f + MAX_BIGRAM_ENCODED_PROBABILITY);
-        return unigramProbability
-                + static_cast<int>(static_cast<float>(bigramProbability + 1) * stepSize);
-    }
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(ProbabilityUtils);
-};
-}
-#endif /* LATINIME_PROBABILITY_UTILS_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/sparse_table.cpp b/native/jni/src/suggest/policyimpl/dictionary/utils/sparse_table.cpp
deleted file mode 100644
index d336306..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/sparse_table.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/utils/sparse_table.h"
-
-namespace latinime {
-
-const int SparseTable::NOT_EXIST = -1;
-const int SparseTable::INDEX_SIZE = 4;
-
-bool SparseTable::contains(const int id) const {
-    const int readingPos = getPosInIndexTable(id);
-    if (id < 0 || mIndexTableBuffer->getTailPosition() <= readingPos) {
-        return false;
-    }
-    const int index = mIndexTableBuffer->readUint(INDEX_SIZE, readingPos);
-    return index != NOT_EXIST;
-}
-
-uint32_t SparseTable::get(const int id) const {
-    const int indexTableReadingPos = getPosInIndexTable(id);
-    const int index = mIndexTableBuffer->readUint(INDEX_SIZE, indexTableReadingPos);
-    const int contentTableReadingPos = getPosInContentTable(id, index);
-    if (contentTableReadingPos < 0
-            || contentTableReadingPos >= mContentTableBuffer->getTailPosition()) {
-        AKLOGE("contentTableReadingPos(%d) is invalid. id: %d, index: %d",
-                contentTableReadingPos, id, index);
-        return NOT_A_DICT_POS;
-    }
-    const int contentValue = mContentTableBuffer->readUint(mDataSize, contentTableReadingPos);
-    return contentValue == NOT_EXIST ? NOT_A_DICT_POS : contentValue;
-}
-
-bool SparseTable::set(const int id, const uint32_t value) {
-    const int posInIndexTable = getPosInIndexTable(id);
-    // Extends the index table if needed.
-    int tailPos = mIndexTableBuffer->getTailPosition();
-    while (tailPos <= posInIndexTable) {
-        if (!mIndexTableBuffer->writeUintAndAdvancePosition(NOT_EXIST, INDEX_SIZE, &tailPos)) {
-            AKLOGE("cannot extend index table. tailPos: %d to: %d", tailPos, posInIndexTable);
-            return false;
-        }
-    }
-    if (contains(id)) {
-        // The entry is already in the content table.
-        const int index = mIndexTableBuffer->readUint(INDEX_SIZE, posInIndexTable);
-        if (!mContentTableBuffer->writeUint(value, mDataSize, getPosInContentTable(id, index))) {
-            AKLOGE("cannot update value %d. pos: %d, tailPos: %d, mDataSize: %d", value,
-                    getPosInContentTable(id, index), mContentTableBuffer->getTailPosition(),
-                    mDataSize);
-            return false;
-        }
-        return true;
-    }
-    // The entry is not in the content table.
-    // Create new entry in the content table.
-    const int index = getIndexFromContentTablePos(mContentTableBuffer->getTailPosition());
-    if (!mIndexTableBuffer->writeUint(index, INDEX_SIZE, posInIndexTable)) {
-        AKLOGE("cannot write index %d. pos %d", index, posInIndexTable);
-        return false;
-    }
-    // Write a new block that containing the entry to be set.
-    int writingPos = getPosInContentTable(0 /* id */, index);
-    for (int i = 0; i < mBlockSize; ++i) {
-        if (!mContentTableBuffer->writeUintAndAdvancePosition(NOT_EXIST, mDataSize,
-                &writingPos)) {
-            AKLOGE("cannot write content table to extend. writingPos: %d, tailPos: %d, "
-                    "mDataSize: %d", writingPos, mContentTableBuffer->getTailPosition(), mDataSize);
-            return false;
-        }
-    }
-    return mContentTableBuffer->writeUint(value, mDataSize, getPosInContentTable(id, index));
-}
-
-int SparseTable::getIndexFromContentTablePos(const int contentTablePos) const {
-    return contentTablePos / mDataSize / mBlockSize;
-}
-
-int SparseTable::getPosInIndexTable(const int id) const {
-    return (id / mBlockSize) * INDEX_SIZE;
-}
-
-int SparseTable::getPosInContentTable(const int id, const int index) const {
-    const int offset = id % mBlockSize;
-    return (index * mBlockSize + offset) * mDataSize;
-}
-
-} // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/sparse_table.h b/native/jni/src/suggest/policyimpl/dictionary/utils/sparse_table.h
deleted file mode 100644
index fca8120..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/sparse_table.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2013, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_SPARSE_TABLE_H
-#define LATINIME_SPARSE_TABLE_H
-
-#include <cstdint>
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-
-namespace latinime {
-
-// Note that there is a corresponding implementation in SparseTable.java.
-// TODO: Support multiple content buffers.
-class SparseTable {
- public:
-    SparseTable(BufferWithExtendableBuffer *const indexTableBuffer,
-            BufferWithExtendableBuffer *const contentTableBuffer, const int blockSize,
-            const int dataSize)
-            : mIndexTableBuffer(indexTableBuffer), mContentTableBuffer(contentTableBuffer),
-              mBlockSize(blockSize), mDataSize(dataSize) {}
-
-    bool contains(const int id) const;
-
-    uint32_t get(const int id) const;
-
-    bool set(const int id, const uint32_t value);
-
- private:
-    DISALLOW_IMPLICIT_CONSTRUCTORS(SparseTable);
-
-    int getIndexFromContentTablePos(const int contentTablePos) const;
-
-    int getPosInIndexTable(const int id) const;
-
-    int getPosInContentTable(const int id, const int index) const;
-
-    static const int NOT_EXIST;
-    static const int INDEX_SIZE;
-
-    BufferWithExtendableBuffer *const mIndexTableBuffer;
-    BufferWithExtendableBuffer *const mContentTableBuffer;
-    const int mBlockSize;
-    const int mDataSize;
-};
-} // namespace latinime
-#endif /* LATINIME_SPARSE_TABLE_H */
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.cpp b/native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.cpp
deleted file mode 100644
index 407b8ef..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.cpp
+++ /dev/null
@@ -1,387 +0,0 @@
-/*
- * Copyright (C) 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/utils/trie_map.h"
-
-#include "suggest/policyimpl/dictionary/utils/dict_file_writing_utils.h"
-
-namespace latinime {
-
-const int TrieMap::INVALID_INDEX = -1;
-const int TrieMap::FIELD0_SIZE = 4;
-const int TrieMap::FIELD1_SIZE = 3;
-const int TrieMap::ENTRY_SIZE = FIELD0_SIZE + FIELD1_SIZE;
-const uint32_t TrieMap::VALUE_FLAG = 0x400000;
-const uint32_t TrieMap::VALUE_MASK = 0x3FFFFF;
-const uint32_t TrieMap::TERMINAL_LINK_FLAG = 0x800000;
-const uint32_t TrieMap::TERMINAL_LINK_MASK = 0x7FFFFF;
-const int TrieMap::NUM_OF_BITS_USED_FOR_ONE_LEVEL = 5;
-const uint32_t TrieMap::LABEL_MASK = 0x1F;
-const int TrieMap::MAX_NUM_OF_ENTRIES_IN_ONE_LEVEL = 1 << NUM_OF_BITS_USED_FOR_ONE_LEVEL;
-const int TrieMap::ROOT_BITMAP_ENTRY_INDEX = 0;
-const int TrieMap::ROOT_BITMAP_ENTRY_POS = MAX_NUM_OF_ENTRIES_IN_ONE_LEVEL * FIELD0_SIZE;
-const TrieMap::Entry TrieMap::EMPTY_BITMAP_ENTRY = TrieMap::Entry(0, 0);
-const uint64_t TrieMap::MAX_VALUE =
-        (static_cast<uint64_t>(1) << ((FIELD0_SIZE + FIELD1_SIZE) * CHAR_BIT)) - 1;
-const int TrieMap::MAX_BUFFER_SIZE = TERMINAL_LINK_MASK * ENTRY_SIZE;
-
-TrieMap::TrieMap() : mBuffer(MAX_BUFFER_SIZE) {
-    mBuffer.extend(ROOT_BITMAP_ENTRY_POS);
-    writeEntry(EMPTY_BITMAP_ENTRY, ROOT_BITMAP_ENTRY_INDEX);
-}
-
-TrieMap::TrieMap(const ReadWriteByteArrayView buffer)
-        : mBuffer(buffer, BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE) {}
-
-void TrieMap::dump(const int from, const int to) const {
-    AKLOGI("BufSize: %d", mBuffer.getTailPosition());
-    for (int i = from; i < to; ++i) {
-        AKLOGI("Entry[%d]: %x, %x", i, readField0(i), readField1(i));
-    }
-    int unusedRegionSize = 0;
-    for (int i = 1; i <= MAX_NUM_OF_ENTRIES_IN_ONE_LEVEL; ++i) {
-        int index = readEmptyTableLink(i);
-        while (index != ROOT_BITMAP_ENTRY_INDEX) {
-            index = readField0(index);
-            unusedRegionSize += i;
-        }
-    }
-    AKLOGI("Unused Size: %d", unusedRegionSize);
-}
-
-int TrieMap::getNextLevelBitmapEntryIndex(const int key, const int bitmapEntryIndex) {
-    const Entry bitmapEntry = readEntry(bitmapEntryIndex);
-    const uint32_t unsignedKey = static_cast<uint32_t>(key);
-    const int terminalEntryIndex = getTerminalEntryIndex(
-            unsignedKey, getBitShuffledKey(unsignedKey), bitmapEntry, 0 /* level */);
-    if (terminalEntryIndex == INVALID_INDEX) {
-        // Not found.
-        return INVALID_INDEX;
-    }
-    const Entry terminalEntry = readEntry(terminalEntryIndex);
-    if (terminalEntry.hasTerminalLink()) {
-        return terminalEntry.getValueEntryIndex() + 1;
-    }
-    // Create a value entry and a bitmap entry.
-    const int valueEntryIndex = allocateTable(2 /* entryCount */);
-    if (!writeEntry(Entry(0, terminalEntry.getValue()), valueEntryIndex)) {
-        return INVALID_INDEX;
-    }
-    if (!writeEntry(EMPTY_BITMAP_ENTRY, valueEntryIndex + 1)) {
-        return INVALID_INDEX;
-    }
-    if (!writeField1(valueEntryIndex | TERMINAL_LINK_FLAG, valueEntryIndex)) {
-        return INVALID_INDEX;
-    }
-    return valueEntryIndex + 1;
-}
-
-const TrieMap::Result TrieMap::get(const int key, const int bitmapEntryIndex) const {
-    const uint32_t unsignedKey = static_cast<uint32_t>(key);
-    return getInternal(unsignedKey, getBitShuffledKey(unsignedKey), bitmapEntryIndex,
-            0 /* level */);
-}
-
-bool TrieMap::put(const int key, const uint64_t value, const int bitmapEntryIndex) {
-    if (value > MAX_VALUE) {
-        return false;
-    }
-    const uint32_t unsignedKey = static_cast<uint32_t>(key);
-    return putInternal(unsignedKey, value, getBitShuffledKey(unsignedKey), bitmapEntryIndex,
-            readEntry(bitmapEntryIndex), 0 /* level */);
-}
-
-bool TrieMap::save(FILE *const file) const {
-    return DictFileWritingUtils::writeBufferToFileTail(file, &mBuffer);
-}
-
-/**
- * Iterate next entry in a certain level.
- *
- * @param iterationState the iteration state that will be read and updated in this method.
- * @param outKey the output key
- * @return Result instance. mIsValid is false when all entries are iterated.
- */
-const TrieMap::Result TrieMap::iterateNext(std::vector<TableIterationState> *const iterationState,
-        int *const outKey) const {
-    while (!iterationState->empty()) {
-        TableIterationState &state = iterationState->back();
-        if (state.mTableSize <= state.mCurrentIndex) {
-            // Move to parent.
-            iterationState->pop_back();
-        } else {
-            const int entryIndex = state.mTableIndex + state.mCurrentIndex;
-            state.mCurrentIndex += 1;
-            const Entry entry = readEntry(entryIndex);
-            if (entry.isBitmapEntry()) {
-                // Move to child.
-                iterationState->emplace_back(popCount(entry.getBitmap()), entry.getTableIndex());
-            } else {
-                if (outKey) {
-                    *outKey = entry.getKey();
-                }
-                if (!entry.hasTerminalLink()) {
-                    return Result(entry.getValue(), true, INVALID_INDEX);
-                }
-                const int valueEntryIndex = entry.getValueEntryIndex();
-                const Entry valueEntry = readEntry(valueEntryIndex);
-                return Result(valueEntry.getValueOfValueEntry(), true, valueEntryIndex + 1);
-            }
-        }
-    }
-    // Visited all entries.
-    return Result(0, false, INVALID_INDEX);
-}
-
-/**
- * Shuffle bits of the key in the fixed order.
- *
- * This method is used as a hash function. This returns different values for different inputs.
- */
-uint32_t TrieMap::getBitShuffledKey(const uint32_t key) const {
-    uint32_t shuffledKey = 0;
-    for (int i = 0; i < 4; ++i) {
-        const uint32_t keyPiece = (key >> (i * 8)) & 0xFF;
-        shuffledKey ^= ((keyPiece ^ (keyPiece << 7) ^ (keyPiece << 14) ^ (keyPiece << 21))
-                & 0x11111111) << i;
-    }
-    return shuffledKey;
-}
-
-bool TrieMap::writeValue(const uint64_t value, const int terminalEntryIndex) {
-    if (value <= VALUE_MASK) {
-        // Write value into the terminal entry.
-        return writeField1(value | VALUE_FLAG, terminalEntryIndex);
-    }
-    // Create value entry and write value.
-    const int valueEntryIndex = allocateTable(2 /* entryCount */);
-    if (!writeEntry(Entry(value >> (FIELD1_SIZE * CHAR_BIT), value), valueEntryIndex)) {
-        return false;
-    }
-    if (!writeEntry(EMPTY_BITMAP_ENTRY, valueEntryIndex + 1)) {
-        return false;
-    }
-    return writeField1(valueEntryIndex | TERMINAL_LINK_FLAG, terminalEntryIndex);
-}
-
-bool TrieMap::updateValue(const Entry &terminalEntry, const uint64_t value,
-        const int terminalEntryIndex) {
-    if (!terminalEntry.hasTerminalLink()) {
-        return writeValue(value, terminalEntryIndex);
-    }
-    const int valueEntryIndex = terminalEntry.getValueEntryIndex();
-    return writeEntry(Entry(value >> (FIELD1_SIZE * CHAR_BIT), value), valueEntryIndex);
-}
-
-bool TrieMap::freeTable(const int tableIndex, const int entryCount) {
-    if (!writeField0(readEmptyTableLink(entryCount), tableIndex)) {
-        return false;
-    }
-    return writeEmptyTableLink(tableIndex, entryCount);
-}
-
-/**
- * Allocate table with entryCount-entries. Reuse freed table if possible.
- */
-int TrieMap::allocateTable(const int entryCount) {
-    if (entryCount > 0 && entryCount <= MAX_NUM_OF_ENTRIES_IN_ONE_LEVEL) {
-        const int tableIndex = readEmptyTableLink(entryCount);
-        if (tableIndex > 0) {
-            if (!writeEmptyTableLink(readField0(tableIndex), entryCount)) {
-                return INVALID_INDEX;
-            }
-            // Reuse the table.
-            return tableIndex;
-        }
-    }
-    // Allocate memory space at tail position of the buffer.
-    const int mapIndex = getTailEntryIndex();
-    if (!mBuffer.extend(entryCount * ENTRY_SIZE)) {
-        return INVALID_INDEX;
-    }
-    return mapIndex;
-}
-
-int TrieMap::getTerminalEntryIndex(const uint32_t key, const uint32_t hashedKey,
-        const Entry &bitmapEntry, const int level) const {
-    const int label = getLabel(hashedKey, level);
-    if (!exists(bitmapEntry.getBitmap(), label)) {
-        return INVALID_INDEX;
-    }
-    const int entryIndex = bitmapEntry.getTableIndex() + popCount(bitmapEntry.getBitmap(), label);
-    const Entry entry = readEntry(entryIndex);
-    if (entry.isBitmapEntry()) {
-        // Move to the next level.
-        return getTerminalEntryIndex(key, hashedKey, entry, level + 1);
-    }
-    if (entry.getKey() == key) {
-        // Terminal entry is found.
-        return entryIndex;
-    }
-    return INVALID_INDEX;
-}
-
-/**
- * Get Result corresponding to the key.
- *
- * @param key the key.
- * @param hashedKey the hashed key.
- * @param bitmapEntryIndex the index of bitmap entry
- * @param level current level
- * @return Result instance corresponding to the key. mIsValid indicates whether the key is in the
- * map.
- */
-const TrieMap::Result TrieMap::getInternal(const uint32_t key, const uint32_t hashedKey,
-        const int bitmapEntryIndex, const int level) const {
-    const int terminalEntryIndex = getTerminalEntryIndex(key, hashedKey,
-            readEntry(bitmapEntryIndex), level);
-    if (terminalEntryIndex == INVALID_INDEX) {
-        // Not found.
-        return Result(0, false, INVALID_INDEX);
-    }
-    const Entry terminalEntry = readEntry(terminalEntryIndex);
-    if (!terminalEntry.hasTerminalLink()) {
-        return Result(terminalEntry.getValue(), true, INVALID_INDEX);
-    }
-    const int valueEntryIndex = terminalEntry.getValueEntryIndex();
-    const Entry valueEntry = readEntry(valueEntryIndex);
-    return Result(valueEntry.getValueOfValueEntry(), true, valueEntryIndex + 1);
-}
-
-/**
- * Put key to value mapping to the map.
- *
- * @param key the key.
- * @param value the value
- * @param hashedKey the hashed key.
- * @param bitmapEntryIndex the index of bitmap entry
- * @param bitmapEntry the bitmap entry
- * @param level current level
- * @return whether the key-value has been correctly inserted to the map or not.
- */
-bool TrieMap::putInternal(const uint32_t key, const uint64_t value, const uint32_t hashedKey,
-        const int bitmapEntryIndex, const Entry &bitmapEntry, const int level) {
-    const int label = getLabel(hashedKey, level);
-    const uint32_t bitmap = bitmapEntry.getBitmap();
-    const int mapIndex = bitmapEntry.getTableIndex();
-    if (!exists(bitmap, label)) {
-        // Current map doesn't contain the label.
-        return addNewEntryByExpandingTable(key, value, mapIndex, bitmap, bitmapEntryIndex, label);
-    }
-    const int entryIndex = mapIndex + popCount(bitmap, label);
-    const Entry entry = readEntry(entryIndex);
-    if (entry.isBitmapEntry()) {
-        // Bitmap entry is found. Go to the next level.
-        return putInternal(key, value, hashedKey, entryIndex, entry, level + 1);
-    }
-    if (entry.getKey() == key) {
-        // Terminal entry for the key is found. Update the value.
-        return updateValue(entry, value, entryIndex);
-    }
-    // Conflict with the existing key.
-    return addNewEntryByResolvingConflict(key, value, hashedKey, entry, entryIndex, level);
-}
-
-/**
- * Resolve a conflict in the current level and add new entry.
- *
- * @param key the key
- * @param value the value
- * @param hashedKey the hashed key
- * @param conflictedEntry the existing conflicted entry
- * @param conflictedEntryIndex the index of existing conflicted entry
- * @param level current level
- * @return whether the key-value has been correctly inserted to the map or not.
- */
-bool TrieMap::addNewEntryByResolvingConflict(const uint32_t key, const uint64_t value,
-        const uint32_t hashedKey, const Entry &conflictedEntry, const int conflictedEntryIndex,
-        const int level) {
-    const int conflictedKeyNextLabel =
-            getLabel(getBitShuffledKey(conflictedEntry.getKey()), level + 1);
-    const int nextLabel = getLabel(hashedKey, level + 1);
-    if (conflictedKeyNextLabel == nextLabel) {
-        // Conflicted again in the next level.
-        const int newTableIndex = allocateTable(1 /* entryCount */);
-        if (newTableIndex == INVALID_INDEX) {
-            return false;
-        }
-        if (!writeEntry(conflictedEntry, newTableIndex)) {
-            return false;
-        }
-        const Entry newBitmapEntry(setExist(0 /* bitmap */, nextLabel), newTableIndex);
-        if (!writeEntry(newBitmapEntry, conflictedEntryIndex)) {
-            return false;
-        }
-        return putInternal(key, value, hashedKey, conflictedEntryIndex, newBitmapEntry, level + 1);
-    }
-    // The conflict has been resolved. Create a table that contains 2 entries.
-    const int newTableIndex = allocateTable(2 /* entryCount */);
-    if (newTableIndex == INVALID_INDEX) {
-        return false;
-    }
-    if (nextLabel < conflictedKeyNextLabel) {
-        if (!writeTerminalEntry(key, value, newTableIndex)) {
-            return false;
-        }
-        if (!writeEntry(conflictedEntry, newTableIndex + 1)) {
-            return false;
-        }
-    } else { // nextLabel > conflictedKeyNextLabel
-        if (!writeEntry(conflictedEntry, newTableIndex)) {
-            return false;
-        }
-        if (!writeTerminalEntry(key, value, newTableIndex + 1)) {
-            return false;
-        }
-    }
-    const uint32_t updatedBitmap =
-            setExist(setExist(0 /* bitmap */, nextLabel), conflictedKeyNextLabel);
-    return writeEntry(Entry(updatedBitmap, newTableIndex), conflictedEntryIndex);
-}
-
-/**
- * Add new entry to the existing table.
- */
-bool TrieMap::addNewEntryByExpandingTable(const uint32_t key, const uint64_t value,
-        const int tableIndex, const uint32_t bitmap, const int bitmapEntryIndex, const int label) {
-    // Current map doesn't contain the label.
-    const int entryCount = popCount(bitmap);
-    const int newTableIndex = allocateTable(entryCount + 1);
-    if (newTableIndex == INVALID_INDEX) {
-        return false;
-    }
-    const int newEntryIndexInTable = popCount(bitmap, label);
-    // Copy from existing table to the new table.
-    for (int i = 0; i < entryCount; ++i) {
-        if (!copyEntry(tableIndex + i, newTableIndex + i + (i >= newEntryIndexInTable ? 1 : 0))) {
-            return false;
-        }
-    }
-    // Write new terminal entry.
-    if (!writeTerminalEntry(key, value, newTableIndex + newEntryIndexInTable)) {
-        return false;
-    }
-    // Update bitmap.
-    if (!writeEntry(Entry(setExist(bitmap, label), newTableIndex), bitmapEntryIndex)) {
-        return false;
-    }
-    if (entryCount > 0) {
-        return freeTable(tableIndex, entryCount);
-    }
-    return true;
-}
-
-}  // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.h b/native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.h
deleted file mode 100644
index 3e5c401..0000000
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/trie_map.h
+++ /dev/null
@@ -1,384 +0,0 @@
-/*
- * Copyright (C) 2014, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef LATINIME_TRIE_MAP_H
-#define LATINIME_TRIE_MAP_H
-
-#include <climits>
-#include <cstdint>
-#include <cstdio>
-#include <vector>
-
-#include "defines.h"
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-#include "utils/byte_array_view.h"
-
-namespace latinime {
-
-/**
- * Trie map derived from Phil Bagwell's Hash Array Mapped Trie.
- * key is int and value is uint64_t.
- * This supports multiple level map. Terminal entries can have a bitmap for the next level map.
- * This doesn't support root map resizing.
- */
-class TrieMap {
- public:
-    struct Result {
-        const uint64_t mValue;
-        const bool mIsValid;
-        const int mNextLevelBitmapEntryIndex;
-
-        Result(const uint64_t value, const bool isValid, const int nextLevelBitmapEntryIndex)
-                : mValue(value), mIsValid(isValid),
-                  mNextLevelBitmapEntryIndex(nextLevelBitmapEntryIndex) {}
-    };
-
-    /**
-     * Struct to record iteration state in a table.
-     */
-    struct TableIterationState {
-        int mTableSize;
-        int mTableIndex;
-        int mCurrentIndex;
-
-        TableIterationState(const int tableSize, const int tableIndex)
-                : mTableSize(tableSize), mTableIndex(tableIndex), mCurrentIndex(0) {}
-    };
-
-    class TrieMapRange;
-    class TrieMapIterator {
-     public:
-        class IterationResult {
-         public:
-            IterationResult(const TrieMap *const trieMap, const int key, const uint64_t value,
-                    const int nextLeveBitmapEntryIndex)
-                    : mTrieMap(trieMap), mKey(key), mValue(value),
-                      mNextLevelBitmapEntryIndex(nextLeveBitmapEntryIndex) {}
-
-            const TrieMapRange getEntriesInNextLevel() const {
-                return TrieMapRange(mTrieMap, mNextLevelBitmapEntryIndex);
-            }
-
-            bool hasNextLevelMap() const {
-                return mNextLevelBitmapEntryIndex != INVALID_INDEX;
-            }
-
-            AK_FORCE_INLINE int key() const {
-                return mKey;
-            }
-
-            AK_FORCE_INLINE uint64_t value() const {
-                return mValue;
-            }
-
-         private:
-            const TrieMap *const mTrieMap;
-            const int mKey;
-            const uint64_t mValue;
-            const int mNextLevelBitmapEntryIndex;
-        };
-
-        TrieMapIterator(const TrieMap *const trieMap, const int bitmapEntryIndex)
-                : mTrieMap(trieMap), mStateStack(), mBaseBitmapEntryIndex(bitmapEntryIndex),
-                  mKey(0), mValue(0), mIsValid(false), mNextLevelBitmapEntryIndex(INVALID_INDEX) {
-            if (!trieMap) {
-                return;
-            }
-            const Entry bitmapEntry = mTrieMap->readEntry(mBaseBitmapEntryIndex);
-            mStateStack.emplace_back(
-                    mTrieMap->popCount(bitmapEntry.getBitmap()), bitmapEntry.getTableIndex());
-            this->operator++();
-        }
-
-        const IterationResult operator*() const {
-            return IterationResult(mTrieMap, mKey, mValue, mNextLevelBitmapEntryIndex);
-        }
-
-        bool operator!=(const TrieMapIterator &other) const {
-            // Caveat: This works only for for loops.
-            return mIsValid || other.mIsValid;
-        }
-
-        const TrieMapIterator &operator++() {
-            const Result result = mTrieMap->iterateNext(&mStateStack, &mKey);
-            mValue = result.mValue;
-            mIsValid = result.mIsValid;
-            mNextLevelBitmapEntryIndex = result.mNextLevelBitmapEntryIndex;
-            return *this;
-        }
-
-     private:
-        DISALLOW_DEFAULT_CONSTRUCTOR(TrieMapIterator);
-        DISALLOW_ASSIGNMENT_OPERATOR(TrieMapIterator);
-
-        const TrieMap *const mTrieMap;
-        std::vector<TrieMap::TableIterationState> mStateStack;
-        const int mBaseBitmapEntryIndex;
-        int mKey;
-        uint64_t mValue;
-        bool mIsValid;
-        int mNextLevelBitmapEntryIndex;
-    };
-
-    /**
-     * Class to support iterating entries in TrieMap by range base for loops.
-     */
-    class TrieMapRange {
-     public:
-        TrieMapRange(const TrieMap *const trieMap, const int bitmapEntryIndex)
-                : mTrieMap(trieMap), mBaseBitmapEntryIndex(bitmapEntryIndex) {};
-
-        TrieMapIterator begin() const {
-            return TrieMapIterator(mTrieMap, mBaseBitmapEntryIndex);
-        }
-
-        const TrieMapIterator end() const {
-            return TrieMapIterator(nullptr, INVALID_INDEX);
-        }
-
-     private:
-        DISALLOW_DEFAULT_CONSTRUCTOR(TrieMapRange);
-        DISALLOW_ASSIGNMENT_OPERATOR(TrieMapRange);
-
-        const TrieMap *const mTrieMap;
-        const int mBaseBitmapEntryIndex;
-    };
-
-    static const int INVALID_INDEX;
-    static const uint64_t MAX_VALUE;
-
-    TrieMap();
-    // Construct TrieMap using existing data in the memory region written by save().
-    TrieMap(const ReadWriteByteArrayView buffer);
-    void dump(const int from = 0, const int to = 0) const;
-
-    bool isNearSizeLimit() const {
-        return mBuffer.isNearSizeLimit();
-    }
-
-    int getRootBitmapEntryIndex() const {
-        return ROOT_BITMAP_ENTRY_INDEX;
-    }
-
-    // Returns bitmapEntryIndex. Create the next level map if it doesn't exist.
-    int getNextLevelBitmapEntryIndex(const int key) {
-        return getNextLevelBitmapEntryIndex(key, ROOT_BITMAP_ENTRY_INDEX);
-    }
-
-    int getNextLevelBitmapEntryIndex(const int key, const int bitmapEntryIndex);
-
-    const Result getRoot(const int key) const {
-        return get(key, ROOT_BITMAP_ENTRY_INDEX);
-    }
-
-    const Result get(const int key, const int bitmapEntryIndex) const;
-
-    bool putRoot(const int key, const uint64_t value) {
-        return put(key, value, ROOT_BITMAP_ENTRY_INDEX);
-    }
-
-    bool put(const int key, const uint64_t value, const int bitmapEntryIndex);
-
-    const TrieMapRange getEntriesInRootLevel() const {
-        return getEntriesInSpecifiedLevel(ROOT_BITMAP_ENTRY_INDEX);
-    }
-
-    const TrieMapRange getEntriesInSpecifiedLevel(const int bitmapEntryIndex) const {
-        return TrieMapRange(this, bitmapEntryIndex);
-    }
-
-    bool save(FILE *const file) const;
-
- private:
-    DISALLOW_COPY_AND_ASSIGN(TrieMap);
-
-    /**
-     * Struct represents an entry.
-     *
-     * Entry is one of these entry types. All entries are fixed size and have 2 fields FIELD_0 and
-     * FIELD_1.
-     * 1. bitmap entry. bitmap entry contains bitmap and the link to hash table.
-     *   FIELD_0(bitmap) FIELD_1(LINK_TO_HASH_TABLE)
-     * 2. terminal entry. terminal entry contains hashed key and value or terminal link. terminal
-     * entry have terminal link when the value is not fit to FIELD_1 or there is a next level map
-     * for the key.
-     *   FIELD_0(hashed key) (FIELD_1(VALUE_FLAG VALUE) | FIELD_1(TERMINAL_LINK_FLAG TERMINAL_LINK))
-     * 3. value entry. value entry represents a value. Upper order bytes are stored in FIELD_0 and
-     * lower order bytes are stored in FIELD_1.
-     *   FIELD_0(value (upper order bytes)) FIELD_1(value (lower order bytes))
-     */
-    struct Entry {
-        const uint32_t mData0;
-        const uint32_t mData1;
-
-        Entry(const uint32_t data0, const uint32_t data1) : mData0(data0), mData1(data1) {}
-
-        AK_FORCE_INLINE bool isBitmapEntry() const {
-            return (mData1 & VALUE_FLAG) == 0 && (mData1 & TERMINAL_LINK_FLAG) == 0;
-        }
-
-        AK_FORCE_INLINE bool hasTerminalLink() const {
-            return (mData1 & TERMINAL_LINK_FLAG) != 0;
-        }
-
-        // For terminal entry.
-        AK_FORCE_INLINE uint32_t getKey() const {
-            return mData0;
-        }
-
-        // For terminal entry.
-        AK_FORCE_INLINE uint32_t getValue() const {
-            return mData1 & VALUE_MASK;
-        }
-
-        // For terminal entry.
-        AK_FORCE_INLINE uint32_t getValueEntryIndex() const {
-            return mData1 & TERMINAL_LINK_MASK;
-        }
-
-        // For bitmap entry.
-        AK_FORCE_INLINE uint32_t getBitmap() const {
-            return mData0;
-        }
-
-        // For bitmap entry.
-        AK_FORCE_INLINE int getTableIndex() const {
-            return static_cast<int>(mData1);
-        }
-
-        // For value entry.
-        AK_FORCE_INLINE uint64_t getValueOfValueEntry() const {
-            return ((static_cast<uint64_t>(mData0) << (FIELD1_SIZE * CHAR_BIT)) ^ mData1);
-        }
-    };
-
-    BufferWithExtendableBuffer mBuffer;
-
-    static const int FIELD0_SIZE;
-    static const int FIELD1_SIZE;
-    static const int ENTRY_SIZE;
-    static const uint32_t VALUE_FLAG;
-    static const uint32_t VALUE_MASK;
-    static const uint32_t TERMINAL_LINK_FLAG;
-    static const uint32_t TERMINAL_LINK_MASK;
-    static const int NUM_OF_BITS_USED_FOR_ONE_LEVEL;
-    static const uint32_t LABEL_MASK;
-    static const int MAX_NUM_OF_ENTRIES_IN_ONE_LEVEL;
-    static const int ROOT_BITMAP_ENTRY_INDEX;
-    static const int ROOT_BITMAP_ENTRY_POS;
-    static const Entry EMPTY_BITMAP_ENTRY;
-    static const int MAX_BUFFER_SIZE;
-
-    uint32_t getBitShuffledKey(const uint32_t key) const;
-    bool writeValue(const uint64_t value, const int terminalEntryIndex);
-    bool updateValue(const Entry &terminalEntry, const uint64_t value,
-            const int terminalEntryIndex);
-    bool freeTable(const int tableIndex, const int entryCount);
-    int allocateTable(const int entryCount);
-    int getTerminalEntryIndex(const uint32_t key, const uint32_t hashedKey,
-            const Entry &bitmapEntry, const int level) const;
-    const Result getInternal(const uint32_t key, const uint32_t hashedKey,
-            const int bitmapEntryIndex, const int level) const;
-    bool putInternal(const uint32_t key, const uint64_t value, const uint32_t hashedKey,
-            const int bitmapEntryIndex, const Entry &bitmapEntry, const int level);
-    bool addNewEntryByResolvingConflict(const uint32_t key, const uint64_t value,
-            const uint32_t hashedKey, const Entry &conflictedEntry, const int conflictedEntryIndex,
-            const int level);
-    bool addNewEntryByExpandingTable(const uint32_t key, const uint64_t value,
-            const int tableIndex, const uint32_t bitmap, const int bitmapEntryIndex,
-            const int label);
-    const Result iterateNext(std::vector<TableIterationState> *const iterationState,
-            int *const outKey) const;
-
-    AK_FORCE_INLINE const Entry readEntry(const int entryIndex) const {
-        return Entry(readField0(entryIndex), readField1(entryIndex));
-    }
-
-    // Returns whether an entry for the index is existing by testing if the index-th bit in the
-    // bitmap is set or not.
-    AK_FORCE_INLINE bool exists(const uint32_t bitmap, const int index) const {
-        return (bitmap & (1 << index)) != 0;
-    }
-
-    // Set index-th bit in the bitmap.
-    AK_FORCE_INLINE uint32_t setExist(const uint32_t bitmap, const int index) const {
-        return bitmap | (1 << index);
-    }
-
-    // Count set bits before index in the bitmap.
-    AK_FORCE_INLINE int popCount(const uint32_t bitmap, const int index) const {
-        return popCount(bitmap & ((1 << index) - 1));
-    }
-
-    // Count set bits in the bitmap.
-    AK_FORCE_INLINE int popCount(const uint32_t bitmap) const {
-        return __builtin_popcount(bitmap);
-        // int v = bitmap - ((bitmap >> 1) & 0x55555555);
-        // v = (v & 0x33333333) + ((v >> 2) & 0x33333333);
-        // return (((v + (v >> 4)) & 0x0F0F0F0F) * 0x01010101) >> 24;
-    }
-
-    AK_FORCE_INLINE int getLabel(const uint32_t hashedKey, const int level) const {
-        return (hashedKey >> (level * NUM_OF_BITS_USED_FOR_ONE_LEVEL)) & LABEL_MASK;
-    }
-
-    AK_FORCE_INLINE uint32_t readField0(const int entryIndex) const {
-        return mBuffer.readUint(FIELD0_SIZE, ROOT_BITMAP_ENTRY_POS + entryIndex * ENTRY_SIZE);
-    }
-
-    AK_FORCE_INLINE uint32_t readField1(const int entryIndex) const {
-        return mBuffer.readUint(FIELD1_SIZE,
-                ROOT_BITMAP_ENTRY_POS + entryIndex * ENTRY_SIZE + FIELD0_SIZE);
-    }
-
-    AK_FORCE_INLINE int readEmptyTableLink(const int entryCount) const {
-        return mBuffer.readUint(FIELD1_SIZE, (entryCount - 1) * FIELD1_SIZE);
-    }
-
-    AK_FORCE_INLINE bool writeEmptyTableLink(const int tableIndex, const int entryCount) {
-        return mBuffer.writeUint(tableIndex, FIELD1_SIZE, (entryCount - 1) * FIELD1_SIZE);
-    }
-
-    AK_FORCE_INLINE bool writeField0(const uint32_t data, const int entryIndex) {
-        return mBuffer.writeUint(data, FIELD0_SIZE,
-                ROOT_BITMAP_ENTRY_POS + entryIndex * ENTRY_SIZE);
-    }
-
-    AK_FORCE_INLINE bool writeField1(const uint32_t data, const int entryIndex) {
-        return mBuffer.writeUint(data, FIELD1_SIZE,
-                ROOT_BITMAP_ENTRY_POS + entryIndex * ENTRY_SIZE + FIELD0_SIZE);
-    }
-
-    AK_FORCE_INLINE bool writeEntry(const Entry &entry, const int entryIndex) {
-        return writeField0(entry.mData0, entryIndex) && writeField1(entry.mData1, entryIndex);
-    }
-
-    AK_FORCE_INLINE bool writeTerminalEntry(const uint32_t key, const uint64_t value,
-            const int entryIndex) {
-        return writeField0(key, entryIndex) && writeValue(value, entryIndex);
-    }
-
-    AK_FORCE_INLINE bool copyEntry(const int originalEntryIndex, const int newEntryIndex) {
-        return writeEntry(readEntry(originalEntryIndex), newEntryIndex);
-    }
-
-    AK_FORCE_INLINE int getTailEntryIndex() const {
-        return (mBuffer.getTailPosition() - ROOT_BITMAP_ENTRY_POS) / ENTRY_SIZE;
-    }
-};
-
-} // namespace latinime
-#endif /* LATINIME_TRIE_MAP_H */
diff --git a/native/jni/src/suggest/policyimpl/typing/scoring_params.cpp b/native/jni/src/suggest/policyimpl/typing/scoring_params.cpp
index 3fc566e..856808a 100644
--- a/native/jni/src/suggest/policyimpl/typing/scoring_params.cpp
+++ b/native/jni/src/suggest/policyimpl/typing/scoring_params.cpp
@@ -24,6 +24,7 @@
 const float ScoringParams::AUTOCORRECT_OUTPUT_THRESHOLD = 1.0f;
 
 const float ScoringParams::EXACT_MATCH_PROMOTION = 1.1f;
+const float ScoringParams::PERFECT_MATCH_PROMOTION = 1.1f;
 const float ScoringParams::CASE_ERROR_PENALTY_FOR_EXACT_MATCH = 0.01f;
 const float ScoringParams::ACCENT_ERROR_PENALTY_FOR_EXACT_MATCH = 0.02f;
 const float ScoringParams::DIGRAPH_PENALTY_FOR_EXACT_MATCH = 0.03f;
@@ -31,6 +32,7 @@
 // TODO: Unlimit max cache dic node size
 const int ScoringParams::MAX_CACHE_DIC_NODE_SIZE = 170;
 const int ScoringParams::MAX_CACHE_DIC_NODE_SIZE_FOR_SINGLE_POINT = 310;
+const int ScoringParams::MAX_CACHE_DIC_NODE_SIZE_FOR_LOW_PROBABILITY_LOCALE = 50;
 const int ScoringParams::THRESHOLD_SHORT_WORD_LENGTH = 4;
 
 const float ScoringParams::DISTANCE_WEIGHT_LENGTH = 0.1524f;
@@ -47,18 +49,21 @@
 const float ScoringParams::INSERTION_COST_PROXIMITY_CHAR = 0.674f;
 const float ScoringParams::INSERTION_COST_FIRST_CHAR = 0.639f;
 const float ScoringParams::TRANSPOSITION_COST = 0.5608f;
-const float ScoringParams::SPACE_SUBSTITUTION_COST = 0.334f;
-const float ScoringParams::ADDITIONAL_PROXIMITY_COST = 0.4576f;
+const float ScoringParams::SPACE_SUBSTITUTION_COST = 0.33f;
+const float ScoringParams::SPACE_OMISSION_COST = 0.1f;
+const float ScoringParams::ADDITIONAL_PROXIMITY_COST = 0.37972f;
 const float ScoringParams::SUBSTITUTION_COST = 0.3806f;
-const float ScoringParams::COST_NEW_WORD = 0.0314f;
 const float ScoringParams::COST_SECOND_OR_LATER_WORD_FIRST_CHAR_UPPERCASE = 0.3224f;
 const float ScoringParams::DISTANCE_WEIGHT_LANGUAGE = 1.1214f;
 const float ScoringParams::COST_FIRST_COMPLETION = 0.4836f;
 const float ScoringParams::COST_COMPLETION = 0.00624f;
 const float ScoringParams::HAS_PROXIMITY_TERMINAL_COST = 0.0683f;
 const float ScoringParams::HAS_EDIT_CORRECTION_TERMINAL_COST = 0.0362f;
-const float ScoringParams::HAS_MULTI_WORD_TERMINAL_COST = 0.4182f;
+const float ScoringParams::HAS_MULTI_WORD_TERMINAL_COST = 0.3482f;
 const float ScoringParams::TYPING_BASE_OUTPUT_SCORE = 1.0f;
 const float ScoringParams::TYPING_MAX_OUTPUT_SCORE_PER_INPUT = 0.1f;
 const float ScoringParams::NORMALIZED_SPATIAL_DISTANCE_THRESHOLD_FOR_EDIT = 0.095f;
+const float ScoringParams::LOCALE_WEIGHT_THRESHOLD_FOR_SPACE_SUBSTITUTION = 0.99f;
+const float ScoringParams::LOCALE_WEIGHT_THRESHOLD_FOR_SPACE_OMISSION = 0.99f;
+const float ScoringParams::LOCALE_WEIGHT_THRESHOLD_FOR_SMALL_CACHE_SIZE = 0.99f;
 } // namespace latinime
diff --git a/native/jni/src/suggest/policyimpl/typing/scoring_params.h b/native/jni/src/suggest/policyimpl/typing/scoring_params.h
index b12de6d..6f327a3 100644
--- a/native/jni/src/suggest/policyimpl/typing/scoring_params.h
+++ b/native/jni/src/suggest/policyimpl/typing/scoring_params.h
@@ -30,9 +30,11 @@
     static const float AUTOCORRECT_OUTPUT_THRESHOLD;
     static const int MAX_CACHE_DIC_NODE_SIZE;
     static const int MAX_CACHE_DIC_NODE_SIZE_FOR_SINGLE_POINT;
+    static const int MAX_CACHE_DIC_NODE_SIZE_FOR_LOW_PROBABILITY_LOCALE;
     static const int THRESHOLD_SHORT_WORD_LENGTH;
 
     static const float EXACT_MATCH_PROMOTION;
+    static const float PERFECT_MATCH_PROMOTION;
     static const float CASE_ERROR_PENALTY_FOR_EXACT_MATCH;
     static const float ACCENT_ERROR_PENALTY_FOR_EXACT_MATCH;
     static const float DIGRAPH_PENALTY_FOR_EXACT_MATCH;
@@ -55,9 +57,9 @@
     static const float INSERTION_COST_FIRST_CHAR;
     static const float TRANSPOSITION_COST;
     static const float SPACE_SUBSTITUTION_COST;
+    static const float SPACE_OMISSION_COST;
     static const float ADDITIONAL_PROXIMITY_COST;
     static const float SUBSTITUTION_COST;
-    static const float COST_NEW_WORD;
     static const float COST_SECOND_OR_LATER_WORD_FIRST_CHAR_UPPERCASE;
     static const float DISTANCE_WEIGHT_LANGUAGE;
     static const float COST_FIRST_COMPLETION;
@@ -68,6 +70,9 @@
     static const float TYPING_BASE_OUTPUT_SCORE;
     static const float TYPING_MAX_OUTPUT_SCORE_PER_INPUT;
     static const float NORMALIZED_SPATIAL_DISTANCE_THRESHOLD_FOR_EDIT;
+    static const float LOCALE_WEIGHT_THRESHOLD_FOR_SPACE_SUBSTITUTION;
+    static const float LOCALE_WEIGHT_THRESHOLD_FOR_SPACE_OMISSION;
+    static const float LOCALE_WEIGHT_THRESHOLD_FOR_SMALL_CACHE_SIZE;
 
  private:
     DISALLOW_IMPLICIT_CONSTRUCTORS(ScoringParams);
diff --git a/native/jni/src/suggest/policyimpl/typing/typing_scoring.h b/native/jni/src/suggest/policyimpl/typing/typing_scoring.h
index 04cb660..6acd767 100644
--- a/native/jni/src/suggest/policyimpl/typing/typing_scoring.h
+++ b/native/jni/src/suggest/policyimpl/typing/typing_scoring.h
@@ -33,32 +33,61 @@
     static const TypingScoring *getInstance() { return &sInstance; }
 
     AK_FORCE_INLINE void getMostProbableString(const DicTraverseSession *const traverseSession,
-            const float languageWeight, SuggestionResults *const outSuggestionResults) const {}
+            const float weightOfLangModelVsSpatialModel,
+            SuggestionResults *const outSuggestionResults) const {}
 
-    AK_FORCE_INLINE float getAdjustedLanguageWeight(DicTraverseSession *const traverseSession,
-            DicNode *const terminals, const int size) const {
+    AK_FORCE_INLINE float getAdjustedWeightOfLangModelVsSpatialModel(
+            DicTraverseSession *const traverseSession, DicNode *const terminals,
+            const int size) const {
         return 1.0f;
     }
 
     AK_FORCE_INLINE int calculateFinalScore(const float compoundDistance, const int inputSize,
             const ErrorTypeUtils::ErrorType containedErrorTypes, const bool forceCommit,
-            const bool boostExactMatches) const {
+            const bool boostExactMatches, const bool hasProbabilityZero) const {
         const float maxDistance = ScoringParams::DISTANCE_WEIGHT_LANGUAGE
                 + static_cast<float>(inputSize) * ScoringParams::TYPING_MAX_OUTPUT_SCORE_PER_INPUT;
         float score = ScoringParams::TYPING_BASE_OUTPUT_SCORE - compoundDistance / maxDistance;
         if (forceCommit) {
             score += ScoringParams::AUTOCORRECT_OUTPUT_THRESHOLD;
         }
-        if (boostExactMatches && ErrorTypeUtils::isExactMatch(containedErrorTypes)) {
-            score += ScoringParams::EXACT_MATCH_PROMOTION;
-            if ((ErrorTypeUtils::MATCH_WITH_CASE_ERROR & containedErrorTypes) != 0) {
-                score -= ScoringParams::CASE_ERROR_PENALTY_FOR_EXACT_MATCH;
+        if (hasProbabilityZero) {
+            // Previously, when both legitimate 0-frequency words (such as distracters) and
+            // offensive words were encoded in the same way, distracters would never show up
+            // when the user blocked offensive words (the default setting, as well as the
+            // setting for regression tests).
+            //
+            // When b/11031090 was fixed and a separate encoding was used for offensive words,
+            // 0-frequency words would no longer be blocked when they were an "exact match"
+            // (where case mismatches and accent mismatches would be considered an "exact
+            // match"). The exact match boosting functionality meant that, for example, when
+            // the user typed "mt" they would be suggested the word "Mt", although they most
+            // probably meant to type "my".
+            //
+            // For this reason, we introduced this change, which does the following:
+            // * Defines the "perfect match" as a really exact match, with no room for case or
+            // accent mismatches
+            // * When the target word has probability zero (as "Mt" does, because it is a
+            // distracter), ONLY boost its score if it is a perfect match.
+            //
+            // By doing this, when the user types "mt", the word "Mt" will NOT be boosted, and
+            // they will get "my". However, if the user makes an explicit effort to type "Mt",
+            // we do boost the word "Mt" so that the user's input is not autocorrected to "My".
+            if (boostExactMatches && ErrorTypeUtils::isPerfectMatch(containedErrorTypes)) {
+                score += ScoringParams::PERFECT_MATCH_PROMOTION;
             }
-            if ((ErrorTypeUtils::MATCH_WITH_ACCENT_ERROR & containedErrorTypes) != 0) {
-                score -= ScoringParams::ACCENT_ERROR_PENALTY_FOR_EXACT_MATCH;
-            }
-            if ((ErrorTypeUtils::MATCH_WITH_DIGRAPH & containedErrorTypes) != 0) {
-                score -= ScoringParams::DIGRAPH_PENALTY_FOR_EXACT_MATCH;
+        } else {
+            if (boostExactMatches && ErrorTypeUtils::isExactMatch(containedErrorTypes)) {
+                score += ScoringParams::EXACT_MATCH_PROMOTION;
+                if ((ErrorTypeUtils::MATCH_WITH_WRONG_CASE & containedErrorTypes) != 0) {
+                    score -= ScoringParams::CASE_ERROR_PENALTY_FOR_EXACT_MATCH;
+                }
+                if ((ErrorTypeUtils::MATCH_WITH_MISSING_ACCENT & containedErrorTypes) != 0) {
+                    score -= ScoringParams::ACCENT_ERROR_PENALTY_FOR_EXACT_MATCH;
+                }
+                if ((ErrorTypeUtils::MATCH_WITH_DIGRAPH & containedErrorTypes) != 0) {
+                    score -= ScoringParams::DIGRAPH_PENALTY_FOR_EXACT_MATCH;
+                }
             }
         }
         return static_cast<int>(score * SUGGEST_INTERFACE_OUTPUT_SCALE);
diff --git a/native/jni/src/suggest/policyimpl/typing/typing_traversal.h b/native/jni/src/suggest/policyimpl/typing/typing_traversal.h
index cb3dfac..b9b6314 100644
--- a/native/jni/src/suggest/policyimpl/typing/typing_traversal.h
+++ b/native/jni/src/suggest/policyimpl/typing/typing_traversal.h
@@ -26,6 +26,7 @@
 #include "suggest/core/layout/proximity_info_utils.h"
 #include "suggest/core/policy/traversal.h"
 #include "suggest/core/session/dic_traverse_session.h"
+#include "suggest/core/suggest_options.h"
 #include "suggest/policyimpl/typing/scoring_params.h"
 #include "utils/char_utils.h"
 
@@ -77,6 +78,13 @@
         if (!CORRECT_NEW_WORD_SPACE_SUBSTITUTION) {
             return false;
         }
+        if (traverseSession->getSuggestOptions()->weightForLocale()
+                < ScoringParams::LOCALE_WEIGHT_THRESHOLD_FOR_SPACE_SUBSTITUTION) {
+            // Space substitution is heavy, so we skip doing it if the weight for this language
+            // is low because we anticipate the suggestions out of this dictionary are not for
+            // the language the user intends to type in.
+            return false;
+        }
         if (!canDoLookAheadCorrection(traverseSession, dicNode)) {
             return false;
         }
@@ -91,6 +99,13 @@
         if (!CORRECT_NEW_WORD_SPACE_OMISSION) {
             return false;
         }
+        if (traverseSession->getSuggestOptions()->weightForLocale()
+                < ScoringParams::LOCALE_WEIGHT_THRESHOLD_FOR_SPACE_OMISSION) {
+            // Space omission is heavy, so we skip doing it if the weight for this language
+            // is low because we anticipate the suggestions out of this dictionary are not for
+            // the language the user intends to type in.
+            return false;
+        }
         const int inputSize = traverseSession->getInputSize();
         // TODO: Don't refer to isCompletion?
         if (dicNode->isCompletion(inputSize)) {
@@ -141,9 +156,14 @@
         return DicNodeVector::DEFAULT_NODES_SIZE_FOR_OPTIMIZATION;
     }
 
-    AK_FORCE_INLINE int getMaxCacheSize(const int inputSize) const {
-        return (inputSize <= 1) ? ScoringParams::MAX_CACHE_DIC_NODE_SIZE_FOR_SINGLE_POINT
-                : ScoringParams::MAX_CACHE_DIC_NODE_SIZE;
+    AK_FORCE_INLINE int getMaxCacheSize(const int inputSize, const float weightForLocale) const {
+        if (inputSize <= 1) {
+            return ScoringParams::MAX_CACHE_DIC_NODE_SIZE_FOR_SINGLE_POINT;
+        }
+        if (weightForLocale < ScoringParams::LOCALE_WEIGHT_THRESHOLD_FOR_SMALL_CACHE_SIZE) {
+            return ScoringParams::MAX_CACHE_DIC_NODE_SIZE_FOR_LOW_PROBABILITY_LOCALE;
+        }
+        return ScoringParams::MAX_CACHE_DIC_NODE_SIZE;
     }
 
     AK_FORCE_INLINE int getTerminalCacheSize() const {
@@ -161,8 +181,8 @@
         return true;
     }
 
-    AK_FORCE_INLINE bool isGoodToTraverseNextWord(const DicNode *const dicNode) const {
-        const int probability = dicNode->getProbability();
+    AK_FORCE_INLINE bool isGoodToTraverseNextWord(const DicNode *const dicNode,
+            const int probability) const {
         if (probability < ScoringParams::THRESHOLD_NEXT_WORD_PROBABILITY) {
             return false;
         }
diff --git a/native/jni/src/suggest/policyimpl/typing/typing_weighting.cpp b/native/jni/src/suggest/policyimpl/typing/typing_weighting.cpp
index 54f65c7..a0e5411 100644
--- a/native/jni/src/suggest/policyimpl/typing/typing_weighting.cpp
+++ b/native/jni/src/suggest/policyimpl/typing/typing_weighting.cpp
@@ -17,6 +17,7 @@
 #include "suggest/policyimpl/typing/typing_weighting.h"
 
 #include "suggest/core/dicnode/dic_node.h"
+#include "suggest/core/layout/proximity_info.h"
 #include "suggest/policyimpl/typing/scoring_params.h"
 
 namespace latinime {
@@ -36,30 +37,49 @@
                 // Compare the node code point with original primary code point on the keyboard.
                 const ProximityInfoState *const pInfoState =
                         traverseSession->getProximityInfoState(0);
-                const int primaryOriginalCodePoint = pInfoState->getPrimaryOriginalCodePointAt(
+                const int primaryCodePoint = pInfoState->getPrimaryCodePointAt(
                         dicNode->getInputIndex(0));
                 const int nodeCodePoint = dicNode->getNodeCodePoint();
-                if (primaryOriginalCodePoint == nodeCodePoint) {
+                const int keyIndex = traverseSession->getProximityInfo()->getKeyIndexOf(
+                        primaryCodePoint);
+                // TODO: Check whether the input code point is on the keyboard.
+                if (primaryCodePoint == nodeCodePoint) {
                     // Node code point is same as original code point on the keyboard.
                     return ErrorTypeUtils::NOT_AN_ERROR;
-                } else if (CharUtils::toLowerCase(primaryOriginalCodePoint) ==
+                } else if (CharUtils::toLowerCase(primaryCodePoint) ==
                         CharUtils::toLowerCase(nodeCodePoint)) {
                     // Only cases of the code points are different.
-                    return ErrorTypeUtils::MATCH_WITH_CASE_ERROR;
-                } else if (CharUtils::toBaseCodePoint(primaryOriginalCodePoint) ==
-                        CharUtils::toBaseCodePoint(nodeCodePoint)) {
+                    return ErrorTypeUtils::MATCH_WITH_WRONG_CASE;
+                } else if (primaryCodePoint == CharUtils::toBaseCodePoint(nodeCodePoint)) {
                     // Node code point is a variant of original code point.
-                    return ErrorTypeUtils::MATCH_WITH_ACCENT_ERROR;
-                } else {
+                    return ErrorTypeUtils::MATCH_WITH_MISSING_ACCENT;
+                } else if (CharUtils::toBaseCodePoint(primaryCodePoint)
+                        == CharUtils::toBaseCodePoint(nodeCodePoint)) {
+                    // Base code points are the same but the code point is intentionally input.
+                    if (keyIndex == NOT_AN_INDEX) {
+                        return ErrorTypeUtils::MATCH_WITH_MISSING_EXPLICIT_ACCENT;
+                    }
+                    return ErrorTypeUtils::MATCH_WITH_WRONG_ACCENT;
+                } else if (CharUtils::toLowerCase(primaryCodePoint)
+                        == CharUtils::toBaseLowerCase(nodeCodePoint)) {
                     // Node code point is a variant of original code point and the cases are also
                     // different.
-                    return ErrorTypeUtils::MATCH_WITH_ACCENT_ERROR
-                            | ErrorTypeUtils::MATCH_WITH_CASE_ERROR;
+                    return ErrorTypeUtils::MATCH_WITH_MISSING_ACCENT
+                            | ErrorTypeUtils::MATCH_WITH_WRONG_CASE;
+                } else {
+                    if (keyIndex == NOT_AN_INDEX) {
+                        return ErrorTypeUtils::MATCH_WITH_MISSING_EXPLICIT_ACCENT
+                                | ErrorTypeUtils::MATCH_WITH_WRONG_CASE;
+                    }
+                    // Base code points are the same and the cases are different.
+                    return ErrorTypeUtils::MATCH_WITH_WRONG_ACCENT
+                            | ErrorTypeUtils::MATCH_WITH_WRONG_CASE;
                 }
             }
             break;
         case CT_ADDITIONAL_PROXIMITY:
-            return  ErrorTypeUtils::PROXIMITY_CORRECTION;
+            // TODO: Change to EDIT_CORRECTION.
+            return ErrorTypeUtils::PROXIMITY_CORRECTION;
         case CT_OMISSION:
             if (parentDicNode->canBeIntentionalOmission()) {
                 return ErrorTypeUtils::INTENTIONAL_OMISSION;
@@ -68,6 +88,8 @@
             }
             break;
         case CT_SUBSTITUTION:
+            // TODO: Quit settng PROXIMITY_CORRECTION.
+            return ErrorTypeUtils::EDIT_CORRECTION | ErrorTypeUtils::PROXIMITY_CORRECTION;
         case CT_INSERTION:
         case CT_TERMINAL_INSERTION:
         case CT_TRANSPOSITION:
diff --git a/native/jni/src/suggest/policyimpl/typing/typing_weighting.h b/native/jni/src/suggest/policyimpl/typing/typing_weighting.h
index 8407717..1338ac8 100644
--- a/native/jni/src/suggest/policyimpl/typing/typing_weighting.h
+++ b/native/jni/src/suggest/policyimpl/typing/typing_weighting.h
@@ -150,9 +150,10 @@
         return cost + weightedDistance;
     }
 
-    float getNewWordSpatialCost(const DicTraverseSession *const traverseSession,
+    float getSpaceOmissionCost(const DicTraverseSession *const traverseSession,
             const DicNode *const dicNode, DicNode_InputStateG *inputStateG) const {
-        return ScoringParams::COST_NEW_WORD * traverseSession->getMultiWordCostMultiplier();
+        const float cost = ScoringParams::SPACE_OMISSION_COST;
+        return cost * traverseSession->getMultiWordCostMultiplier();
     }
 
     float getNewWordBigramLanguageCost(const DicTraverseSession *const traverseSession,
@@ -202,7 +203,10 @@
 
     AK_FORCE_INLINE float getSpaceSubstitutionCost(const DicTraverseSession *const traverseSession,
             const DicNode *const dicNode) const {
-        const float cost = ScoringParams::SPACE_SUBSTITUTION_COST + ScoringParams::COST_NEW_WORD;
+        const int inputIndex = dicNode->getInputIndex(0);
+        const float distanceToSpaceKey = traverseSession->getProximityInfoState(0)
+                ->getPointToKeyLength(inputIndex, KEYCODE_SPACE);
+        const float cost = ScoringParams::SPACE_SUBSTITUTION_COST * distanceToSpaceKey;
         return cost * traverseSession->getMultiWordCostMultiplier();
     }
 
diff --git a/native/jni/src/utils/byte_array_view.h b/native/jni/src/utils/byte_array_view.h
index 2c97c6d..2b778af 100644
--- a/native/jni/src/utils/byte_array_view.h
+++ b/native/jni/src/utils/byte_array_view.h
@@ -42,6 +42,13 @@
         return mPtr;
     }
 
+    AK_FORCE_INLINE const ReadOnlyByteArrayView skip(const size_t n) const {
+        if (mSize <= n) {
+            return ReadOnlyByteArrayView();
+        }
+        return ReadOnlyByteArrayView(mPtr + n, mSize - n);
+    }
+
  private:
     DISALLOW_ASSIGNMENT_OPERATOR(ReadOnlyByteArrayView);
 
@@ -77,10 +84,12 @@
     }
 
  private:
-    DISALLOW_ASSIGNMENT_OPERATOR(ReadWriteByteArrayView);
+    // Default copy constructor and assignment operator are used for using this class with STL
+    // containers.
 
-    uint8_t *const mPtr;
-    const size_t mSize;
+    // These members cannot be const to have the assignment operator.
+    uint8_t *mPtr;
+    size_t mSize;
 };
 
 } // namespace latinime
diff --git a/native/jni/src/utils/char_utils.cpp b/native/jni/src/utils/char_utils.cpp
index b17e084..a43e6dd 100644
--- a/native/jni/src/utils/char_utils.cpp
+++ b/native/jni/src/utils/char_utils.cpp
@@ -1057,11 +1057,11 @@
             - static_cast<int>((static_cast<const struct LatinCapitalSmallPair *>(b))->capital);
 }
 
-/* static */ unsigned short CharUtils::latin_tolower(const unsigned short c) {
+/* static */ int CharUtils::latin_tolower(const int c) {
     struct LatinCapitalSmallPair *p =
             static_cast<struct LatinCapitalSmallPair *>(bsearch(&c, SORTED_CHAR_MAP,
                     NELEMS(SORTED_CHAR_MAP), sizeof(SORTED_CHAR_MAP[0]), compare_pair_capital));
-    return p ? p->small : c;
+    return p ? static_cast<int>(p->small) : c;
 }
 
 /*
@@ -1117,7 +1117,9 @@
           // TODO: Check if it's really acceptable to consider ø a diacritical variant of o
     /* U+0100 */ 0x0041, 0x0061, 0x0041, 0x0061, 0x0041, 0x0061, 0x0043, 0x0063,
     /* U+0108 */ 0x0043, 0x0063, 0x0043, 0x0063, 0x0043, 0x0063, 0x0044, 0x0064,
-    /* U+0110 */ 0x0110, 0x0111, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065,
+    /* U+0110 */ 0x0046, 0x0064, 0x0045, 0x0065, 0x0045, 0x0065, 0x0045, 0x0065,
+        // U+0110: Manually changed from 0110 to 0046
+        // U+0111: Manually changed from 0111 to 0064
     /* U+0118 */ 0x0045, 0x0065, 0x0045, 0x0065, 0x0047, 0x0067, 0x0047, 0x0067,
     /* U+0120 */ 0x0047, 0x0067, 0x0047, 0x0067, 0x0048, 0x0068, 0x0126, 0x0127,
     /* U+0128 */ 0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0x0069, 0x0049, 0x0069,
@@ -1135,6 +1137,9 @@
     /* U+0170 */ 0x0055, 0x0075, 0x0055, 0x0075, 0x0057, 0x0077, 0x0059, 0x0079,
     /* U+0178 */ 0x0059, 0x005A, 0x007A, 0x005A, 0x007A, 0x005A, 0x007A, 0x0073,
     /* U+0180 */ 0x0180, 0x0181, 0x0182, 0x0183, 0x0184, 0x0185, 0x0186, 0x0187,
+          // TODO: A lot of letters are their own base code points, but for
+          // some (e.g. U+0180) it doesn't seem right. Ideally each code point should
+          // be checked individually with all languages it's used in.
     /* U+0188 */ 0x0188, 0x0189, 0x018A, 0x018B, 0x018C, 0x018D, 0x018E, 0x018F,
     /* U+0190 */ 0x0190, 0x0191, 0x0192, 0x0193, 0x0194, 0x0195, 0x0196, 0x0197,
     /* U+0198 */ 0x0198, 0x0199, 0x019A, 0x019B, 0x019C, 0x019D, 0x019E, 0x019F,
diff --git a/native/jni/src/utils/char_utils.h b/native/jni/src/utils/char_utils.h
index 6378650..7871c26 100644
--- a/native/jni/src/utils/char_utils.h
+++ b/native/jni/src/utils/char_utils.h
@@ -27,20 +27,14 @@
 
 class CharUtils {
  public:
+    static const std::vector<int> EMPTY_STRING;
+
     static AK_FORCE_INLINE bool isAsciiUpper(int c) {
         // Note: isupper(...) reports false positives for some Cyrillic characters, causing them to
         // be incorrectly lower-cased using toAsciiLower(...) rather than latin_tolower(...).
         return (c >= 'A' && c <= 'Z');
     }
 
-    static AK_FORCE_INLINE int toAsciiLower(int c) {
-        return c - 'A' + 'a';
-    }
-
-    static AK_FORCE_INLINE bool isAscii(int c) {
-        return isascii(c) != 0;
-    }
-
     static AK_FORCE_INLINE int toLowerCase(const int c) {
         if (isAsciiUpper(c)) {
             return toAsciiLower(c);
@@ -48,7 +42,7 @@
         if (isAscii(c)) {
             return c;
         }
-        return static_cast<int>(latin_tolower(static_cast<unsigned short>(c)));
+        return latin_tolower(c);
     }
 
     static AK_FORCE_INLINE int toBaseLowerCase(const int c) {
@@ -59,7 +53,6 @@
         // TODO: Do not hardcode here
         return codePoint == KEYCODE_SINGLE_QUOTE || codePoint == KEYCODE_HYPHEN_MINUS;
     }
-
     static AK_FORCE_INLINE int getCodePointCount(const int arraySize, const int *const codePoints) {
         int size = 0;
         for (; size < arraySize; ++size) {
@@ -91,9 +84,6 @@
         return codePoint >= MIN_UNICODE_CODE_POINT && codePoint <= MAX_UNICODE_CODE_POINT;
     }
 
-    static unsigned short latin_tolower(const unsigned short c);
-    static const std::vector<int> EMPTY_STRING;
-
     // Returns updated code point count. Returns 0 when the code points cannot be marked as a
     // Beginning-of-Sentence.
     static AK_FORCE_INLINE int attachBeginningOfSentenceMarker(int *const codePoints,
@@ -111,6 +101,17 @@
         return codePointCount + 1;
     }
 
+    // Returns updated code point count.
+    static AK_FORCE_INLINE int removeBeginningOfSentenceMarker(int *const codePoints,
+            const int codePointCount) {
+        if (codePointCount <= 0 || codePoints[0] != CODE_POINT_BEGINNING_OF_SENTENCE) {
+            return codePointCount;
+        }
+        const int newCodePointCount = codePointCount - 1;
+        memmove(codePoints, codePoints + 1, sizeof(int) * newCodePointCount);
+        return newCodePointCount;
+    }
+
  private:
     DISALLOW_IMPLICIT_CONSTRUCTORS(CharUtils);
 
@@ -125,6 +126,16 @@
      */
     static const int BASE_CHARS_SIZE = 0x0500;
     static const unsigned short BASE_CHARS[BASE_CHARS_SIZE];
+
+    static AK_FORCE_INLINE bool isAscii(int c) {
+        return isascii(c) != 0;
+    }
+
+    static AK_FORCE_INLINE int toAsciiLower(int c) {
+        return c - 'A' + 'a';
+    }
+
+    static int latin_tolower(const int c);
 };
 } // namespace latinime
 #endif // LATINIME_CHAR_UTILS_H
diff --git a/native/jni/src/utils/int_array_view.h b/native/jni/src/utils/int_array_view.h
index c1ddc98..e0f6710 100644
--- a/native/jni/src/utils/int_array_view.h
+++ b/native/jni/src/utils/int_array_view.h
@@ -17,8 +17,10 @@
 #ifndef LATINIME_INT_ARRAY_VIEW_H
 #define LATINIME_INT_ARRAY_VIEW_H
 
+#include <algorithm>
+#include <array>
 #include <cstdint>
-#include <cstdlib>
+#include <cstring>
 #include <vector>
 
 #include "defines.h"
@@ -56,14 +58,14 @@
     explicit IntArrayView(const std::vector<int> &vector)
             : mPtr(vector.data()), mSize(vector.size()) {}
 
-    template <int N>
-    AK_FORCE_INLINE static IntArrayView fromFixedSizeArray(const int (&array)[N]) {
-        return IntArrayView(array, N);
+    template <size_t N>
+    AK_FORCE_INLINE static IntArrayView fromArray(const std::array<int, N> &array) {
+        return IntArrayView(array.data(), array.size());
     }
 
-    // Returns a view that points one int object. Does not take ownership of the given object.
-    AK_FORCE_INLINE static IntArrayView fromObject(const int *const object) {
-        return IntArrayView(object, 1);
+    // Returns a view that points one int object.
+    AK_FORCE_INLINE static IntArrayView singleElementView(const int *const ptr) {
+        return IntArrayView(ptr, 1);
     }
 
     AK_FORCE_INLINE int operator[](const size_t index) const {
@@ -91,6 +93,69 @@
         return mPtr + mSize;
     }
 
+    AK_FORCE_INLINE bool contains(const int value) const {
+        return std::find(begin(), end(), value) != end();
+    }
+
+    // Returns the view whose size is smaller than or equal to the given count.
+    AK_FORCE_INLINE const IntArrayView limit(const size_t maxSize) const {
+        return IntArrayView(mPtr, std::min(maxSize, mSize));
+    }
+
+    AK_FORCE_INLINE const IntArrayView skip(const size_t n) const {
+        if (mSize <= n) {
+            return IntArrayView();
+        }
+        return IntArrayView(mPtr + n, mSize - n);
+    }
+
+    template <size_t N>
+    void copyToArray(std::array<int, N> *const buffer, const size_t offset) const {
+        ASSERT(mSize + offset <= N);
+        memmove(buffer->data() + offset, mPtr, sizeof(int) * mSize);
+    }
+
+    AK_FORCE_INLINE int firstOrDefault(const int defaultValue) const {
+        if (empty()) {
+            return defaultValue;
+        }
+        return mPtr[0];
+    }
+
+    AK_FORCE_INLINE int lastOrDefault(const int defaultValue) const {
+        if (empty()) {
+            return defaultValue;
+        }
+        return mPtr[mSize - 1];
+    }
+
+    AK_FORCE_INLINE std::vector<int> toVector() const {
+        return std::vector<int>(begin(), end());
+    }
+
+    std::vector<IntArrayView> split(const int separator, const int limit = S_INT_MAX) const {
+        if (limit <= 0) {
+            return std::vector<IntArrayView>();
+        }
+        std::vector<IntArrayView> result;
+        if (limit == 1) {
+            result.emplace_back(mPtr, mSize);
+            return result;
+        }
+        size_t startIndex = 0;
+        for (size_t i = 0; i < mSize; ++i) {
+            if (mPtr[i] == separator) {
+                result.emplace_back(mPtr + startIndex, i - startIndex);
+                startIndex = i + 1;
+                if (result.size() >= static_cast<size_t>(limit - 1)) {
+                    break;
+                }
+            }
+        }
+        result.emplace_back(mPtr + startIndex, mSize - startIndex);
+        return result;
+    }
+
  private:
     DISALLOW_ASSIGNMENT_OPERATOR(IntArrayView);
 
@@ -100,6 +165,9 @@
 
 using WordIdArrayView = IntArrayView;
 using PtNodePosArrayView = IntArrayView;
+using CodePointArrayView = IntArrayView;
+template <size_t size>
+using WordIdArray = std::array<int, size>;
 
 } // namespace latinime
 #endif // LATINIME_MEMORY_VIEW_H
diff --git a/native/jni/src/utils/jni_data_utils.cpp b/native/jni/src/utils/jni_data_utils.cpp
index 5555293..41f0623 100644
--- a/native/jni/src/utils/jni_data_utils.cpp
+++ b/native/jni/src/utils/jni_data_utils.cpp
@@ -16,9 +16,100 @@
 
 #include "utils/jni_data_utils.h"
 
+#include "utils/int_array_view.h"
+
 namespace latinime {
 
 const int JniDataUtils::CODE_POINT_REPLACEMENT_CHARACTER = 0xFFFD;
 const int JniDataUtils::CODE_POINT_NULL = 0;
 
+/* static */ void JniDataUtils::outputWordProperty(JNIEnv *const env,
+        const WordProperty &wordProperty, jintArray outCodePoints, jbooleanArray outFlags,
+        jintArray outProbabilityInfo, jobject outNgramPrevWordsArray,
+        jobject outNgramPrevWordIsBeginningOfSentenceArray, jobject outNgramTargets,
+        jobject outNgramProbabilities, jobject outShortcutTargets,
+        jobject outShortcutProbabilities) {
+    const CodePointArrayView codePoints = wordProperty.getCodePoints();
+    JniDataUtils::outputCodePoints(env, outCodePoints, 0 /* start */,
+            MAX_WORD_LENGTH /* maxLength */, codePoints.data(), codePoints.size(),
+            false /* needsNullTermination */);
+    const UnigramProperty &unigramProperty = wordProperty.getUnigramProperty();
+    const std::vector<NgramProperty> &ngrams = wordProperty.getNgramProperties();
+    jboolean flags[] = {unigramProperty.isNotAWord(), unigramProperty.isPossiblyOffensive(),
+            !ngrams.empty(), unigramProperty.hasShortcuts(),
+            unigramProperty.representsBeginningOfSentence()};
+    env->SetBooleanArrayRegion(outFlags, 0 /* start */, NELEMS(flags), flags);
+    const HistoricalInfo &historicalInfo = unigramProperty.getHistoricalInfo();
+    int probabilityInfo[] = {unigramProperty.getProbability(), historicalInfo.getTimestamp(),
+            historicalInfo.getLevel(), historicalInfo.getCount()};
+    env->SetIntArrayRegion(outProbabilityInfo, 0 /* start */, NELEMS(probabilityInfo),
+            probabilityInfo);
+
+    jclass integerClass = env->FindClass("java/lang/Integer");
+    jmethodID intToIntegerConstructorId = env->GetMethodID(integerClass, "<init>", "(I)V");
+    jclass arrayListClass = env->FindClass("java/util/ArrayList");
+    jmethodID addMethodId = env->GetMethodID(arrayListClass, "add", "(Ljava/lang/Object;)Z");
+
+    // Output ngrams.
+    jclass intArrayClass = env->FindClass("[I");
+    for (const auto &ngramProperty : ngrams) {
+        const NgramContext *const ngramContext = ngramProperty.getNgramContext();
+        jobjectArray prevWordWordCodePointsArray = env->NewObjectArray(
+                ngramContext->getPrevWordCount(), intArrayClass, nullptr);
+        jbooleanArray prevWordIsBeginningOfSentenceArray =
+                env->NewBooleanArray(ngramContext->getPrevWordCount());
+        for (size_t i = 0; i < ngramContext->getPrevWordCount(); ++i) {
+            const CodePointArrayView codePoints = ngramContext->getNthPrevWordCodePoints(i + 1);
+            jintArray prevWordCodePoints = env->NewIntArray(codePoints.size());
+            JniDataUtils::outputCodePoints(env, prevWordCodePoints, 0 /* start */,
+                    codePoints.size(), codePoints.data(), codePoints.size(),
+                    false /* needsNullTermination */);
+            env->SetObjectArrayElement(prevWordWordCodePointsArray, i, prevWordCodePoints);
+            env->DeleteLocalRef(prevWordCodePoints);
+            JniDataUtils::putBooleanToArray(env, prevWordIsBeginningOfSentenceArray, i,
+                    ngramContext->isNthPrevWordBeginningOfSentence(i + 1));
+        }
+        env->CallBooleanMethod(outNgramPrevWordsArray, addMethodId, prevWordWordCodePointsArray);
+        env->CallBooleanMethod(outNgramPrevWordIsBeginningOfSentenceArray, addMethodId,
+                prevWordIsBeginningOfSentenceArray);
+        env->DeleteLocalRef(prevWordWordCodePointsArray);
+        env->DeleteLocalRef(prevWordIsBeginningOfSentenceArray);
+
+        const std::vector<int> *const targetWordCodePoints = ngramProperty.getTargetCodePoints();
+        jintArray targetWordCodePointArray = env->NewIntArray(targetWordCodePoints->size());
+        JniDataUtils::outputCodePoints(env, targetWordCodePointArray, 0 /* start */,
+                targetWordCodePoints->size(), targetWordCodePoints->data(),
+                targetWordCodePoints->size(), false /* needsNullTermination */);
+        env->CallBooleanMethod(outNgramTargets, addMethodId, targetWordCodePointArray);
+        env->DeleteLocalRef(targetWordCodePointArray);
+
+        const HistoricalInfo &ngramHistoricalInfo = ngramProperty.getHistoricalInfo();
+        int bigramProbabilityInfo[] = {ngramProperty.getProbability(),
+                ngramHistoricalInfo.getTimestamp(), ngramHistoricalInfo.getLevel(),
+                ngramHistoricalInfo.getCount()};
+        jintArray bigramProbabilityInfoArray = env->NewIntArray(NELEMS(bigramProbabilityInfo));
+        env->SetIntArrayRegion(bigramProbabilityInfoArray, 0 /* start */,
+                NELEMS(bigramProbabilityInfo), bigramProbabilityInfo);
+        env->CallBooleanMethod(outNgramProbabilities, addMethodId, bigramProbabilityInfoArray);
+        env->DeleteLocalRef(bigramProbabilityInfoArray);
+    }
+
+    // Output shortcuts.
+    for (const auto &shortcut : unigramProperty.getShortcuts()) {
+        const std::vector<int> *const targetCodePoints = shortcut.getTargetCodePoints();
+        jintArray shortcutTargetCodePointArray = env->NewIntArray(targetCodePoints->size());
+        JniDataUtils::outputCodePoints(env, shortcutTargetCodePointArray, 0 /* start */,
+                targetCodePoints->size(), targetCodePoints->data(), targetCodePoints->size(),
+                false /* needsNullTermination */);
+        env->CallBooleanMethod(outShortcutTargets, addMethodId, shortcutTargetCodePointArray);
+        env->DeleteLocalRef(shortcutTargetCodePointArray);
+        jobject integerProbability = env->NewObject(integerClass, intToIntegerConstructorId,
+                shortcut.getProbability());
+        env->CallBooleanMethod(outShortcutProbabilities, addMethodId, integerProbability);
+        env->DeleteLocalRef(integerProbability);
+    }
+    env->DeleteLocalRef(integerClass);
+    env->DeleteLocalRef(arrayListClass);
+}
+
 } // namespace latinime
diff --git a/native/jni/src/utils/jni_data_utils.h b/native/jni/src/utils/jni_data_utils.h
index cb82d3c..8024e34 100644
--- a/native/jni/src/utils/jni_data_utils.h
+++ b/native/jni/src/utils/jni_data_utils.h
@@ -20,10 +20,11 @@
 #include <vector>
 
 #include "defines.h"
+#include "dictionary/header/header_read_write_utils.h"
+#include "dictionary/interface/dictionary_header_structure_policy.h"
+#include "dictionary/property/ngram_context.h"
+#include "dictionary/property/word_property.h"
 #include "jni.h"
-#include "suggest/core/session/prev_words_info.h"
-#include "suggest/core/policy/dictionary_header_structure_policy.h"
-#include "suggest/policyimpl/dictionary/header/header_read_write_utils.h"
 #include "utils/char_utils.h"
 
 namespace latinime {
@@ -50,6 +51,7 @@
             const jsize keyUtf8Length = env->GetStringUTFLength(keyString);
             char keyChars[keyUtf8Length + 1];
             env->GetStringUTFRegion(keyString, 0, env->GetStringLength(keyString), keyChars);
+            env->DeleteLocalRef(keyString);
             keyChars[keyUtf8Length] = '\0';
             DictionaryHeaderStructurePolicy::AttributeMap::key_type key;
             HeaderReadWriteUtils::insertCharactersIntoVector(keyChars, &key);
@@ -59,6 +61,7 @@
             const jsize valueUtf8Length = env->GetStringUTFLength(valueString);
             char valueChars[valueUtf8Length + 1];
             env->GetStringUTFRegion(valueString, 0, env->GetStringLength(valueString), valueChars);
+            env->DeleteLocalRef(valueString);
             valueChars[valueUtf8Length] = '\0';
             DictionaryHeaderStructurePolicy::AttributeMap::mapped_type value;
             HeaderReadWriteUtils::insertCharactersIntoVector(valueChars, &value);
@@ -96,18 +99,14 @@
         }
     }
 
-    static PrevWordsInfo constructPrevWordsInfo(JNIEnv *env, jobjectArray prevWordCodePointArrays,
-            jbooleanArray isBeginningOfSentenceArray) {
+    static NgramContext constructNgramContext(JNIEnv *env, jobjectArray prevWordCodePointArrays,
+            jbooleanArray isBeginningOfSentenceArray, const size_t prevWordCount) {
         int prevWordCodePoints[MAX_PREV_WORD_COUNT_FOR_N_GRAM][MAX_WORD_LENGTH];
         int prevWordCodePointCount[MAX_PREV_WORD_COUNT_FOR_N_GRAM];
         bool isBeginningOfSentence[MAX_PREV_WORD_COUNT_FOR_N_GRAM];
-        jsize prevWordsCount = env->GetArrayLength(prevWordCodePointArrays);
-        for (size_t i = 0; i < NELEMS(prevWordCodePoints); ++i) {
+        for (size_t i = 0; i < prevWordCount; ++i) {
             prevWordCodePointCount[i] = 0;
             isBeginningOfSentence[i] = false;
-            if (prevWordsCount <= static_cast<int>(i)) {
-                continue;
-            }
             jintArray prevWord = (jintArray)env->GetObjectArrayElement(prevWordCodePointArrays, i);
             if (!prevWord) {
                 continue;
@@ -117,14 +116,15 @@
                 continue;
             }
             env->GetIntArrayRegion(prevWord, 0, prevWordLength, prevWordCodePoints[i]);
+            env->DeleteLocalRef(prevWord);
             prevWordCodePointCount[i] = prevWordLength;
             jboolean isBeginningOfSentenceBoolean = JNI_FALSE;
             env->GetBooleanArrayRegion(isBeginningOfSentenceArray, i, 1 /* len */,
                     &isBeginningOfSentenceBoolean);
             isBeginningOfSentence[i] = isBeginningOfSentenceBoolean == JNI_TRUE;
         }
-        return PrevWordsInfo(prevWordCodePoints, prevWordCodePointCount, isBeginningOfSentence,
-                MAX_PREV_WORD_COUNT_FOR_N_GRAM);
+        return NgramContext(prevWordCodePoints, prevWordCodePointCount, isBeginningOfSentence,
+                prevWordCount);
     }
 
     static void putBooleanToArray(JNIEnv *env, jbooleanArray array, const int index,
@@ -141,6 +141,12 @@
         env->SetFloatArrayRegion(array, index, 1 /* len */, &value);
     }
 
+    static void outputWordProperty(JNIEnv *const env, const WordProperty &wordProperty,
+            jintArray outCodePoints, jbooleanArray outFlags, jintArray outProbabilityInfo,
+            jobject outNgramPrevWordsArray, jobject outNgramPrevWordIsBeginningOfSentenceArray,
+            jobject outNgramTargets, jobject outNgramProbabilities, jobject outShortcutTargets,
+            jobject outShortcutProbabilities);
+
  private:
     DISALLOW_IMPLICIT_CONSTRUCTORS(JniDataUtils);
 
diff --git a/native/jni/src/utils/ngram_utils.h b/native/jni/src/utils/ngram_utils.h
new file mode 100644
index 0000000..fa85ba3
--- /dev/null
+++ b/native/jni/src/utils/ngram_utils.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2014, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_NGRAM_UTILS_H
+#define LATINIME_NGRAM_UTILS_H
+
+#include "defines.h"
+
+namespace latinime {
+
+enum class NgramType : int {
+    Unigram = 0,
+    Bigram = 1,
+    Trigram = 2,
+    Quadgram = 3,
+    NotANgramType = -1,
+};
+
+namespace AllNgramTypes {
+// Use anonymous namespace to avoid ODR (One Definition Rule) violation.
+namespace {
+
+const NgramType ASCENDING[] = {
+   NgramType::Unigram, NgramType::Bigram, NgramType::Trigram
+};
+
+const NgramType DESCENDING[] = {
+   NgramType::Trigram, NgramType::Bigram, NgramType::Unigram
+};
+
+}  // namespace
+}  // namespace AllNgramTypes
+
+class NgramUtils final {
+ public:
+    static AK_FORCE_INLINE NgramType getNgramTypeFromWordCount(const int wordCount) {
+        // Max supported ngram is (MAX_PREV_WORD_COUNT_FOR_N_GRAM + 1)-gram.
+        if (wordCount <= 0 || wordCount > MAX_PREV_WORD_COUNT_FOR_N_GRAM + 1) {
+            return NgramType::NotANgramType;
+        }
+        // Convert word count to 0-origin enum value.
+        return static_cast<NgramType>(wordCount - 1);
+    }
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(NgramUtils);
+
+};
+}
+#endif /* LATINIME_NGRAM_UTILS_H */
diff --git a/native/jni/src/utils/profiler.h b/native/jni/src/utils/profiler.h
new file mode 100644
index 0000000..5f107fe
--- /dev/null
+++ b/native/jni/src/utils/profiler.h
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2014, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LATINIME_PROFILER_H
+#define LATINIME_PROFILER_H
+
+#ifdef FLAG_DO_PROFILE
+
+#include "defines.h"
+
+#include <ctime>
+#include <unordered_map>
+
+namespace latinime {
+
+class Profiler final {
+ public:
+    Profiler(const clockid_t clockId)
+            : mClockId(clockId), mStartTime(getTimeInMicroSec()), mStartTimes(), mTimes(),
+              mCounters() {}
+
+    ~Profiler() {
+        const float totalTime =
+                static_cast<float>(getTimeInMicroSec() - mStartTime) / 1000.f;
+        AKLOGI("Total time is %6.3f ms.", totalTime);
+        for (const auto &time : mTimes) {
+            AKLOGI("(%d): Used %4.2f%%, %8.4f ms. Called %d times.", time.first,
+                    time.second / totalTime * 100.0f, time.second, mCounters[time.first]);
+        }
+    }
+
+    void startTimer(const int id) {
+        mStartTimes[id] = getTimeInMicroSec();
+    }
+
+    void endTimer(const int id) {
+        mTimes[id] += static_cast<float>(getTimeInMicroSec() - mStartTimes[id]) / 1000.0f;
+        mCounters[id]++;
+    }
+
+    operator bool() const { return false; }
+
+ private:
+    DISALLOW_IMPLICIT_CONSTRUCTORS(Profiler);
+
+    const clockid_t mClockId;
+    int64_t mStartTime;
+    std::unordered_map<int, int64_t> mStartTimes;
+    std::unordered_map<int, float> mTimes;
+    std::unordered_map<int, int> mCounters;
+
+    int64_t getTimeInMicroSec() {
+        timespec time;
+        clock_gettime(mClockId, &time);
+        return static_cast<int64_t>(time.tv_sec) * 1000000
+                + static_cast<int64_t>(time.tv_nsec) / 1000;
+    }
+};
+} // namespace latinime
+
+#define PROF_INIT Profiler __LATINIME__PROFILER__(CLOCK_THREAD_CPUTIME_ID)
+#define PROF_TIMER_START(timer_id) __LATINIME__PROFILER__.startTimer(timer_id)
+#define PROF_TIMER_END(timer_id) __LATINIME__PROFILER__.endTimer(timer_id)
+
+#else // FLAG_DO_PROFILE
+
+#define PROF_INIT
+#define PROF_TIMER_START(timer_id)
+#define PROF_TIMER_END(timer_id)
+
+#endif // FLAG_DO_PROFILE
+
+#endif /* LATINIME_PROFILER_H */
diff --git a/native/jni/tests/dictionary/header/header_read_write_utils_test.cpp b/native/jni/tests/dictionary/header/header_read_write_utils_test.cpp
new file mode 100644
index 0000000..eab5d65
--- /dev/null
+++ b/native/jni/tests/dictionary/header/header_read_write_utils_test.cpp
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/header/header_read_write_utils.h"
+
+#include <gtest/gtest.h>
+
+#include <cstring>
+#include <vector>
+
+#include "dictionary/interface/dictionary_header_structure_policy.h"
+
+namespace latinime {
+namespace {
+
+TEST(HeaderReadWriteUtilsTest, TestInsertCharactersIntoVector) {
+    DictionaryHeaderStructurePolicy::AttributeMap::key_type vector;
+
+    HeaderReadWriteUtils::insertCharactersIntoVector("", &vector);
+    EXPECT_TRUE(vector.empty());
+
+    static const char *str = "abc-xyz!?";
+    HeaderReadWriteUtils::insertCharactersIntoVector(str, &vector);
+    EXPECT_EQ(strlen(str) , vector.size());
+    for (size_t i = 0; i < vector.size(); ++i) {
+        EXPECT_EQ(str[i], vector[i]);
+    }
+}
+
+TEST(HeaderReadWriteUtilsTest, TestAttributeMapForInt) {
+    DictionaryHeaderStructurePolicy::AttributeMap attributeMap;
+
+    // Returns default value if not exists.
+    EXPECT_EQ(-1, HeaderReadWriteUtils::readIntAttributeValue(&attributeMap, "", -1));
+    EXPECT_EQ(100, HeaderReadWriteUtils::readIntAttributeValue(&attributeMap, "abc", 100));
+
+    HeaderReadWriteUtils::setIntAttribute(&attributeMap, "abc", 10);
+    EXPECT_EQ(10, HeaderReadWriteUtils::readIntAttributeValue(&attributeMap, "abc", 100));
+    HeaderReadWriteUtils::setIntAttribute(&attributeMap, "abc", 20);
+    EXPECT_EQ(20, HeaderReadWriteUtils::readIntAttributeValue(&attributeMap, "abc", 100));
+    HeaderReadWriteUtils::setIntAttribute(&attributeMap, "abcd", 30);
+    EXPECT_EQ(30, HeaderReadWriteUtils::readIntAttributeValue(&attributeMap, "abcd", 100));
+    EXPECT_EQ(20, HeaderReadWriteUtils::readIntAttributeValue(&attributeMap, "abc", 100));
+}
+
+TEST(HeaderReadWriteUtilsTest, TestAttributeMapCodeForPoints) {
+    DictionaryHeaderStructurePolicy::AttributeMap attributeMap;
+
+    // Returns empty vector if not exists.
+    EXPECT_TRUE(HeaderReadWriteUtils::readCodePointVectorAttributeValue(&attributeMap, "").empty());
+    EXPECT_TRUE(HeaderReadWriteUtils::readCodePointVectorAttributeValue(
+            &attributeMap, "abc").empty());
+
+    HeaderReadWriteUtils::setCodePointVectorAttribute(&attributeMap, "abc", {});
+    EXPECT_TRUE(HeaderReadWriteUtils::readCodePointVectorAttributeValue(
+            &attributeMap, "abc").empty());
+
+    const std::vector<int> codePoints = { 0x0, 0x20, 0x1F, 0x100000 };
+    HeaderReadWriteUtils::setCodePointVectorAttribute(&attributeMap, "abc", codePoints);
+    EXPECT_EQ(codePoints, HeaderReadWriteUtils::readCodePointVectorAttributeValue(
+            &attributeMap, "abc"));
+}
+
+}  // namespace
+}  // namespace latinime
diff --git a/native/jni/tests/dictionary/structure/v4/content/language_model_dict_content_global_counters_test.cpp b/native/jni/tests/dictionary/structure/v4/content/language_model_dict_content_global_counters_test.cpp
new file mode 100644
index 0000000..2e3047e
--- /dev/null
+++ b/native/jni/tests/dictionary/structure/v4/content/language_model_dict_content_global_counters_test.cpp
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/v4/content/language_model_dict_content_global_counters.h"
+
+#include <gtest/gtest.h>
+
+#include "dictionary/structure/v4/ver4_dict_constants.h"
+
+namespace latinime {
+namespace {
+
+TEST(LanguageModelDictContentGlobalCountersTest, TestUpdateMaxValueOfCounters) {
+    LanguageModelDictContentGlobalCounters globalCounters;
+
+    EXPECT_FALSE(globalCounters.needsToHalveCounters());
+    globalCounters.updateMaxValueOfCounters(10);
+    EXPECT_FALSE(globalCounters.needsToHalveCounters());
+    const int count = (1 << (Ver4DictConstants::WORD_COUNT_FIELD_SIZE * CHAR_BIT)) - 1;
+    globalCounters.updateMaxValueOfCounters(count);
+    EXPECT_TRUE(globalCounters.needsToHalveCounters());
+    globalCounters.halveCounters();
+    EXPECT_FALSE(globalCounters.needsToHalveCounters());
+}
+
+TEST(LanguageModelDictContentGlobalCountersTest, TestIncrementTotalCount) {
+    LanguageModelDictContentGlobalCounters globalCounters;
+
+    EXPECT_EQ(0, globalCounters.getTotalCount());
+    globalCounters.incrementTotalCount();
+    EXPECT_EQ(1, globalCounters.getTotalCount());
+    for (int i = 1; i < 50; ++i) {
+        globalCounters.incrementTotalCount();
+    }
+    EXPECT_EQ(50, globalCounters.getTotalCount());
+    globalCounters.halveCounters();
+    EXPECT_EQ(25, globalCounters.getTotalCount());
+    globalCounters.halveCounters();
+    EXPECT_EQ(12, globalCounters.getTotalCount());
+    for (int i = 0; i < 4; ++i) {
+        globalCounters.halveCounters();
+    }
+    EXPECT_EQ(0, globalCounters.getTotalCount());
+}
+
+}  // namespace
+}  // namespace latinime
diff --git a/native/jni/tests/dictionary/structure/v4/content/language_model_dict_content_test.cpp b/native/jni/tests/dictionary/structure/v4/content/language_model_dict_content_test.cpp
new file mode 100644
index 0000000..ca8626e
--- /dev/null
+++ b/native/jni/tests/dictionary/structure/v4/content/language_model_dict_content_test.cpp
@@ -0,0 +1,120 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/v4/content/language_model_dict_content.h"
+
+#include <gtest/gtest.h>
+
+#include <array>
+#include <unordered_set>
+
+#include "utils/int_array_view.h"
+
+namespace latinime {
+namespace {
+
+TEST(LanguageModelDictContentTest, TestUnigramProbability) {
+    LanguageModelDictContent languageModelDictContent(false /* useHistoricalInfo */);
+
+    const int flag = 0xF0;
+    const int probability = 10;
+    const int wordId = 100;
+    const ProbabilityEntry probabilityEntry(flag, probability);
+    languageModelDictContent.setProbabilityEntry(wordId, &probabilityEntry);
+    const ProbabilityEntry entry =
+            languageModelDictContent.getProbabilityEntry(wordId);
+    EXPECT_EQ(flag, entry.getFlags());
+    EXPECT_EQ(probability, entry.getProbability());
+
+    // Remove
+    EXPECT_TRUE(languageModelDictContent.removeProbabilityEntry(wordId));
+    EXPECT_FALSE(languageModelDictContent.getProbabilityEntry(wordId).isValid());
+    EXPECT_FALSE(languageModelDictContent.removeProbabilityEntry(wordId));
+    EXPECT_TRUE(languageModelDictContent.setProbabilityEntry(wordId, &probabilityEntry));
+    EXPECT_TRUE(languageModelDictContent.getProbabilityEntry(wordId).isValid());
+}
+
+TEST(LanguageModelDictContentTest, TestUnigramProbabilityWithHistoricalInfo) {
+    LanguageModelDictContent languageModelDictContent(true /* useHistoricalInfo */);
+
+    const int flag = 0xF0;
+    const int timestamp = 0x3FFFFFFF;
+    const int count = 10;
+    const int wordId = 100;
+    const HistoricalInfo historicalInfo(timestamp, 0 /* level */, count);
+    const ProbabilityEntry probabilityEntry(flag, &historicalInfo);
+    languageModelDictContent.setProbabilityEntry(wordId, &probabilityEntry);
+    const ProbabilityEntry entry = languageModelDictContent.getProbabilityEntry(wordId);
+    EXPECT_EQ(flag, entry.getFlags());
+    EXPECT_EQ(timestamp, entry.getHistoricalInfo()->getTimestamp());
+    EXPECT_EQ(count, entry.getHistoricalInfo()->getCount());
+
+    // Remove
+    EXPECT_TRUE(languageModelDictContent.removeProbabilityEntry(wordId));
+    EXPECT_FALSE(languageModelDictContent.getProbabilityEntry(wordId).isValid());
+    EXPECT_FALSE(languageModelDictContent.removeProbabilityEntry(wordId));
+    EXPECT_TRUE(languageModelDictContent.setProbabilityEntry(wordId, &probabilityEntry));
+    EXPECT_TRUE(languageModelDictContent.removeProbabilityEntry(wordId));
+}
+
+TEST(LanguageModelDictContentTest, TestIterateProbabilityEntry) {
+    LanguageModelDictContent languageModelDictContent(false /* useHistoricalInfo */);
+
+    const ProbabilityEntry originalEntry(0xFC, 100);
+
+    const int wordIds[] = { 1, 2, 3, 4, 5 };
+    for (const int wordId : wordIds) {
+        languageModelDictContent.setProbabilityEntry(wordId, &originalEntry);
+    }
+    std::unordered_set<int> wordIdSet(std::begin(wordIds), std::end(wordIds));
+    for (const auto entry : languageModelDictContent.getProbabilityEntries(WordIdArrayView())) {
+        EXPECT_EQ(originalEntry.getFlags(), entry.getProbabilityEntry().getFlags());
+        EXPECT_EQ(originalEntry.getProbability(), entry.getProbabilityEntry().getProbability());
+        wordIdSet.erase(entry.getWordId());
+    }
+    EXPECT_TRUE(wordIdSet.empty());
+}
+
+TEST(LanguageModelDictContentTest, TestGetWordProbability) {
+    LanguageModelDictContent languageModelDictContent(false /* useHistoricalInfo */);
+
+    const int flag = 0xFF;
+    const int probability = 10;
+    const int bigramProbability = 20;
+    const int trigramProbability = 30;
+    const int wordId = 100;
+    const std::array<int, 2> prevWordIdArray = {{ 1, 2 }};
+    const WordIdArrayView prevWordIds = WordIdArrayView::fromArray(prevWordIdArray);
+
+    const ProbabilityEntry probabilityEntry(flag, probability);
+    languageModelDictContent.setProbabilityEntry(wordId, &probabilityEntry);
+    const ProbabilityEntry bigramProbabilityEntry(flag, bigramProbability);
+    languageModelDictContent.setProbabilityEntry(prevWordIds[0], &probabilityEntry);
+    languageModelDictContent.setNgramProbabilityEntry(prevWordIds.limit(1), wordId,
+            &bigramProbabilityEntry);
+    EXPECT_EQ(bigramProbability, languageModelDictContent.getWordAttributes(prevWordIds, wordId,
+            false /* mustMatchAllPrevWords */, nullptr /* headerPolicy */).getProbability());
+    const ProbabilityEntry trigramProbabilityEntry(flag, trigramProbability);
+    languageModelDictContent.setNgramProbabilityEntry(prevWordIds.limit(1),
+            prevWordIds[1], &probabilityEntry);
+    languageModelDictContent.setNgramProbabilityEntry(prevWordIds.limit(2), wordId,
+            &trigramProbabilityEntry);
+    EXPECT_EQ(trigramProbability, languageModelDictContent.getWordAttributes(prevWordIds, wordId,
+            false /* mustMatchAllPrevWords */, nullptr /* headerPolicy */).getProbability());
+}
+
+}  // namespace
+}  // namespace latinime
diff --git a/native/jni/tests/dictionary/structure/v4/content/probability_entry_test.cpp b/native/jni/tests/dictionary/structure/v4/content/probability_entry_test.cpp
new file mode 100644
index 0000000..ba81671
--- /dev/null
+++ b/native/jni/tests/dictionary/structure/v4/content/probability_entry_test.cpp
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/v4/content/probability_entry.h"
+
+#include <gtest/gtest.h>
+
+#include "defines.h"
+
+namespace latinime {
+namespace {
+
+TEST(ProbabilityEntryTest, TestEncodeDecode) {
+    const int flag = 0xFF;
+    const int probability = 10;
+
+    const ProbabilityEntry entry(flag, probability);
+    const uint64_t encodedEntry = entry.encode(false /* hasHistoricalInfo */);
+    const ProbabilityEntry decodedEntry =
+            ProbabilityEntry::decode(encodedEntry, false /* hasHistoricalInfo */);
+    EXPECT_EQ(0xFF0Aull, encodedEntry);
+    EXPECT_EQ(flag, decodedEntry.getFlags());
+    EXPECT_EQ(probability, decodedEntry.getProbability());
+}
+
+TEST(ProbabilityEntryTest, TestEncodeDecodeWithHistoricalInfo) {
+    const int flag = 0xF0;
+    const int timestamp = 0x3FFFFFFF;
+    const int count = 0xABCD;
+
+    const HistoricalInfo historicalInfo(timestamp, 0 /* level */, count);
+    const ProbabilityEntry entry(flag, &historicalInfo);
+
+    const uint64_t encodedEntry = entry.encode(true /* hasHistoricalInfo */);
+    EXPECT_EQ(0xF03FFFFFFFABCDull, encodedEntry);
+    const ProbabilityEntry decodedEntry =
+            ProbabilityEntry::decode(encodedEntry, true /* hasHistoricalInfo */);
+
+    EXPECT_EQ(flag, decodedEntry.getFlags());
+    EXPECT_EQ(timestamp, decodedEntry.getHistoricalInfo()->getTimestamp());
+    EXPECT_EQ(count, decodedEntry.getHistoricalInfo()->getCount());
+}
+
+}  // namespace
+}  // namespace latinime
diff --git a/native/jni/tests/dictionary/structure/v4/content/terminal_position_lookup_table_test.cpp b/native/jni/tests/dictionary/structure/v4/content/terminal_position_lookup_table_test.cpp
new file mode 100644
index 0000000..4f23889
--- /dev/null
+++ b/native/jni/tests/dictionary/structure/v4/content/terminal_position_lookup_table_test.cpp
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/structure/v4/content/terminal_position_lookup_table.h"
+
+#include <gtest/gtest.h>
+
+#include <vector>
+
+#include "defines.h"
+#include "dictionary/structure/v4/ver4_dict_constants.h"
+
+namespace latinime {
+namespace {
+
+TEST(TerminalPositionLookupTableTest, TestGetFromEmptyTable) {
+    TerminalPositionLookupTable lookupTable;
+
+    EXPECT_EQ(NOT_A_DICT_POS, lookupTable.getTerminalPtNodePosition(0));
+    EXPECT_EQ(NOT_A_DICT_POS, lookupTable.getTerminalPtNodePosition(-1));
+    EXPECT_EQ(NOT_A_DICT_POS, lookupTable.getTerminalPtNodePosition(
+            Ver4DictConstants::NOT_A_TERMINAL_ID));
+}
+
+TEST(TerminalPositionLookupTableTest, TestSetAndGet) {
+    TerminalPositionLookupTable lookupTable;
+
+    EXPECT_TRUE(lookupTable.setTerminalPtNodePosition(10, 100));
+    EXPECT_EQ(100, lookupTable.getTerminalPtNodePosition(10));
+    EXPECT_EQ(NOT_A_DICT_POS, lookupTable.getTerminalPtNodePosition(9));
+    EXPECT_TRUE(lookupTable.setTerminalPtNodePosition(9, 200));
+    EXPECT_EQ(200, lookupTable.getTerminalPtNodePosition(9));
+    EXPECT_TRUE(lookupTable.setTerminalPtNodePosition(10, 300));
+    EXPECT_EQ(300, lookupTable.getTerminalPtNodePosition(10));
+    EXPECT_FALSE(lookupTable.setTerminalPtNodePosition(-1, 400));
+    EXPECT_EQ(NOT_A_DICT_POS, lookupTable.getTerminalPtNodePosition(-1));
+    EXPECT_FALSE(lookupTable.setTerminalPtNodePosition(Ver4DictConstants::NOT_A_TERMINAL_ID, 500));
+    EXPECT_EQ(NOT_A_DICT_POS, lookupTable.getTerminalPtNodePosition(
+            Ver4DictConstants::NOT_A_TERMINAL_ID));
+}
+
+TEST(TerminalPositionLookupTableTest, TestGC) {
+    TerminalPositionLookupTable lookupTable;
+
+    const std::vector<int> terminalIds = { 10, 20, 30 };
+    const std::vector<int> terminalPositions = { 100, 200, 300 };
+
+    for (size_t i = 0; i < terminalIds.size(); ++i) {
+        EXPECT_TRUE(lookupTable.setTerminalPtNodePosition(terminalIds[i], terminalPositions[i]));
+    }
+
+    TerminalPositionLookupTable::TerminalIdMap terminalIdMap;
+    EXPECT_TRUE(lookupTable.runGCTerminalIds(&terminalIdMap));
+
+    for (size_t i = 0; i < terminalIds.size(); ++i) {
+        EXPECT_EQ(static_cast<int>(i), terminalIdMap[terminalIds[i]])
+                << "Terminal id (" << terminalIds[i] << ") should be changed to " << i;
+        EXPECT_EQ(terminalPositions[i], lookupTable.getTerminalPtNodePosition(i));
+    }
+}
+
+}  // namespace
+}  // namespace latinime
diff --git a/native/jni/tests/dictionary/utils/bloom_filter_test.cpp b/native/jni/tests/dictionary/utils/bloom_filter_test.cpp
new file mode 100644
index 0000000..bcc8843
--- /dev/null
+++ b/native/jni/tests/dictionary/utils/bloom_filter_test.cpp
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/utils/bloom_filter.h"
+
+#include <gtest/gtest.h>
+
+#include <algorithm>
+#include <cstdlib>
+#include <functional>
+#include <random>
+#include <unordered_set>
+#include <vector>
+
+namespace latinime {
+namespace {
+
+TEST(BloomFilterTest, TestFilter) {
+    static const int TEST_RANDOM_DATA_MAX = 65536;
+    static const int ELEMENT_COUNT = 1000;
+    std::vector<int> elements;
+
+    // Initialize data set with random integers.
+    {
+        // Use the uniform integer distribution [0, TEST_RANDOM_DATA_MAX].
+        std::uniform_int_distribution<int> distribution(0, TEST_RANDOM_DATA_MAX);
+        auto randomNumberGenerator = std::bind(distribution, std::mt19937());
+        for (int i = 0; i < ELEMENT_COUNT; ++i) {
+            elements.push_back(randomNumberGenerator());
+        }
+    }
+
+    // Make sure BloomFilter contains nothing by default.
+    BloomFilter bloomFilter;
+    for (const int elem : elements) {
+        ASSERT_FALSE(bloomFilter.isInFilter(elem));
+    }
+
+    // Copy some of the test vector into bloom filter.
+    std::unordered_set<int> elementsThatHaveBeenSetInFilter;
+    {
+        // Use the uniform integer distribution [0, 1].
+        std::uniform_int_distribution<int> distribution(0, 1);
+        auto randomBitGenerator = std::bind(distribution, std::mt19937());
+        for (const int elem : elements) {
+            if (randomBitGenerator() == 0) {
+                bloomFilter.setInFilter(elem);
+                elementsThatHaveBeenSetInFilter.insert(elem);
+            }
+        }
+    }
+
+    for (const int elem : elements) {
+        const bool existsInFilter = bloomFilter.isInFilter(elem);
+        const bool hasBeenSetInFilter =
+                elementsThatHaveBeenSetInFilter.find(elem) != elementsThatHaveBeenSetInFilter.end();
+        if (hasBeenSetInFilter) {
+            EXPECT_TRUE(existsInFilter) << "elem: " << elem;
+        }
+        if (!existsInFilter) {
+            EXPECT_FALSE(hasBeenSetInFilter) << "elem: " << elem;
+        }
+    }
+}
+
+}  // namespace
+}  // namespace latinime
diff --git a/native/jni/tests/dictionary/utils/buffer_with_extendable_buffer_test.cpp b/native/jni/tests/dictionary/utils/buffer_with_extendable_buffer_test.cpp
new file mode 100644
index 0000000..2587891
--- /dev/null
+++ b/native/jni/tests/dictionary/utils/buffer_with_extendable_buffer_test.cpp
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+
+#include <gtest/gtest.h>
+
+namespace latinime {
+namespace {
+
+const int DEFAULT_MAX_BUFFER_SIZE = 1024;
+
+TEST(BufferWithExtendablebufferTest, TestWriteAndRead) {
+    BufferWithExtendableBuffer buffer(DEFAULT_MAX_BUFFER_SIZE);
+    int pos = 0;
+    // 1 byte
+    const uint32_t data_1 = 0xFF;
+    EXPECT_TRUE(buffer.writeUint(data_1, 1 /* size */, pos));
+    EXPECT_EQ(data_1, buffer.readUint(1, pos));
+    pos += 1;
+    // 2 byte
+    const uint32_t data_2 = 0xFFFF;
+    EXPECT_TRUE(buffer.writeUint(data_2, 2 /* size */, pos));
+    EXPECT_EQ(data_2, buffer.readUint(2, pos));
+    pos += 2;
+    // 3 byte
+    const uint32_t data_3 = 0xFFFFFF;
+    EXPECT_TRUE(buffer.writeUint(data_3, 3 /* size */, pos));
+    EXPECT_EQ(data_3, buffer.readUint(3, pos));
+    pos += 3;
+    // 4 byte
+    const uint32_t data_4 = 0xFFFFFFFF;
+    EXPECT_TRUE(buffer.writeUint(data_4, 4 /* size */, pos));
+    EXPECT_EQ(data_4, buffer.readUint(4, pos));
+}
+
+TEST(BufferWithExtendablebufferTest, TestExtend) {
+    BufferWithExtendableBuffer buffer(DEFAULT_MAX_BUFFER_SIZE);
+    EXPECT_EQ(0, buffer.getTailPosition());
+    EXPECT_TRUE(buffer.writeUint(0xFF /* data */, 4 /* size */, 0 /* pos */));
+    EXPECT_EQ(4, buffer.getTailPosition());
+    EXPECT_TRUE(buffer.extend(8 /* size */));
+    EXPECT_EQ(12, buffer.getTailPosition());
+    EXPECT_TRUE(buffer.writeUint(0xFFFF /* data */, 4 /* size */, 8 /* pos */));
+    EXPECT_TRUE(buffer.writeUint(0xFF /* data */, 4 /* size */, 0 /* pos */));
+}
+
+TEST(BufferWithExtendablebufferTest, TestCopy) {
+    BufferWithExtendableBuffer buffer(DEFAULT_MAX_BUFFER_SIZE);
+    EXPECT_TRUE(buffer.writeUint(0xFF /* data */, 4 /* size */, 0 /* pos */));
+    EXPECT_TRUE(buffer.writeUint(0xFFFF /* data */, 4 /* size */, 4 /* pos */));
+    BufferWithExtendableBuffer targetBuffer(DEFAULT_MAX_BUFFER_SIZE);
+    EXPECT_TRUE(targetBuffer.copy(&buffer));
+    EXPECT_EQ(0xFFu, targetBuffer.readUint(4 /* size */, 0 /* pos */));
+    EXPECT_EQ(0xFFFFu, targetBuffer.readUint(4 /* size */, 4 /* pos */));
+}
+
+TEST(BufferWithExtendablebufferTest, TestSizeLimit) {
+    BufferWithExtendableBuffer emptyBuffer(0 /* maxAdditionalBufferSize */);
+    EXPECT_FALSE(emptyBuffer.writeUint(0 /* data */, 1 /* size */, 0 /* pos */));
+    EXPECT_FALSE(emptyBuffer.extend(1 /* size */));
+
+    BufferWithExtendableBuffer smallBuffer(4 /* maxAdditionalBufferSize */);
+    EXPECT_TRUE(smallBuffer.writeUint(0 /* data */, 4 /* size */, 0 /* pos */));
+    EXPECT_FALSE(smallBuffer.writeUint(0 /* data */, 1 /* size */, 4 /* pos */));
+
+    EXPECT_TRUE(smallBuffer.copy(&emptyBuffer));
+    EXPECT_FALSE(emptyBuffer.copy(&smallBuffer));
+
+    BufferWithExtendableBuffer buffer(DEFAULT_MAX_BUFFER_SIZE);
+    EXPECT_FALSE(buffer.isNearSizeLimit());
+    int pos = 0;
+    while (!buffer.isNearSizeLimit()) {
+        EXPECT_TRUE(buffer.writeUintAndAdvancePosition(0 /* data */, 4 /* size */, &pos));
+    }
+    EXPECT_GT(pos, 0);
+    EXPECT_LE(pos, DEFAULT_MAX_BUFFER_SIZE);
+}
+
+}  // namespace
+}  // namespace latinime
diff --git a/native/jni/tests/dictionary/utils/byte_array_utils_test.cpp b/native/jni/tests/dictionary/utils/byte_array_utils_test.cpp
new file mode 100644
index 0000000..0725753
--- /dev/null
+++ b/native/jni/tests/dictionary/utils/byte_array_utils_test.cpp
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/utils/byte_array_utils.h"
+
+#include <gtest/gtest.h>
+
+#include <cstdint>
+
+namespace latinime {
+namespace {
+
+TEST(ByteArrayUtilsTest, TestReadCodePointTable) {
+    const int codePointTable[] = { 0x6f, 0x6b };
+    const uint8_t buffer[] = { 0x20u, 0x21u, 0x00u, 0x01u, 0x00u };
+    int pos = 0;
+    // Expect the first entry of codePointTable
+    EXPECT_EQ(0x6f, ByteArrayUtils::readCodePointAndAdvancePosition(buffer, codePointTable, &pos));
+    // Expect the second entry of codePointTable
+    EXPECT_EQ(0x6b, ByteArrayUtils::readCodePointAndAdvancePosition(buffer, codePointTable, &pos));
+    // Expect the original code point from buffer[2] to buffer[4], 0x100
+    // It isn't picked from the codePointTable, since it exceeds the range of the codePointTable.
+    EXPECT_EQ(0x100, ByteArrayUtils::readCodePointAndAdvancePosition(buffer, codePointTable, &pos));
+}
+
+TEST(ByteArrayUtilsTest, TestReadInt) {
+    const uint8_t buffer[] = { 0x1u, 0x8Au, 0x0u, 0xAAu };
+
+    EXPECT_EQ(0x01u, ByteArrayUtils::readUint8(buffer, 0));
+    EXPECT_EQ(0x8Au, ByteArrayUtils::readUint8(buffer, 1));
+    EXPECT_EQ(0x0u, ByteArrayUtils::readUint8(buffer, 2));
+    EXPECT_EQ(0xAAu, ByteArrayUtils::readUint8(buffer, 3));
+
+    EXPECT_EQ(0x018Au, ByteArrayUtils::readUint16(buffer, 0));
+    EXPECT_EQ(0x8A00u, ByteArrayUtils::readUint16(buffer, 1));
+    EXPECT_EQ(0xAAu, ByteArrayUtils::readUint16(buffer, 2));
+
+    EXPECT_EQ(0x18A00AAu, ByteArrayUtils::readUint32(buffer, 0));
+
+    int pos = 0;
+    EXPECT_EQ(0x18A00, ByteArrayUtils::readSint24AndAdvancePosition(buffer, &pos));
+    pos = 1;
+    EXPECT_EQ(-0xA00AA, ByteArrayUtils::readSint24AndAdvancePosition(buffer, &pos));
+}
+
+TEST(ByteArrayUtilsTest, TestWriteAndReadInt) {
+    uint8_t buffer[4];
+
+    int pos = 0;
+    const uint8_t data_1B = 0xC8;
+    ByteArrayUtils::writeUintAndAdvancePosition(buffer, data_1B, 1, &pos);
+    EXPECT_EQ(data_1B, ByteArrayUtils::readUint(buffer, 1, 0));
+
+    pos = 0;
+    const uint32_t data_4B = 0xABCD1234;
+    ByteArrayUtils::writeUintAndAdvancePosition(buffer, data_4B, 4, &pos);
+    EXPECT_EQ(data_4B, ByteArrayUtils::readUint(buffer, 4, 0));
+}
+
+TEST(ByteArrayUtilsTest, TestReadCodePoint) {
+    const uint8_t buffer[] = { 0x10, 0xFF, 0x00u, 0x20u, 0x41u, 0x1Fu, 0x60 };
+
+    EXPECT_EQ(0x10FF00, ByteArrayUtils::readCodePoint(buffer, 0));
+    EXPECT_EQ(0x20, ByteArrayUtils::readCodePoint(buffer, 3));
+    EXPECT_EQ(0x41, ByteArrayUtils::readCodePoint(buffer, 4));
+    EXPECT_EQ(NOT_A_CODE_POINT, ByteArrayUtils::readCodePoint(buffer, 5));
+
+    int pos = 0;
+    int codePointArray[3];
+    EXPECT_EQ(3, ByteArrayUtils::readStringAndAdvancePosition(buffer, MAX_WORD_LENGTH, nullptr,
+            codePointArray, &pos));
+    EXPECT_EQ(0x10FF00, codePointArray[0]);
+    EXPECT_EQ(0x20, codePointArray[1]);
+    EXPECT_EQ(0x41, codePointArray[2]);
+    EXPECT_EQ(0x60, ByteArrayUtils::readCodePoint(buffer, pos));
+}
+
+TEST(ByteArrayUtilsTest, TestWriteAndReadCodePoint) {
+    uint8_t buffer[10];
+
+    const int codePointArray[] = { 0x10FF00, 0x20, 0x41 };
+    int pos = 0;
+    ByteArrayUtils::writeCodePointsAndAdvancePosition(buffer, codePointArray, 3,
+            true /* writesTerminator */, &pos);
+    EXPECT_EQ(0x10FF00, ByteArrayUtils::readCodePoint(buffer, 0));
+    EXPECT_EQ(0x20, ByteArrayUtils::readCodePoint(buffer, 3));
+    EXPECT_EQ(0x41, ByteArrayUtils::readCodePoint(buffer, 4));
+    EXPECT_EQ(NOT_A_CODE_POINT, ByteArrayUtils::readCodePoint(buffer, 5));
+}
+
+}  // namespace
+}  // namespace latinime
diff --git a/native/jni/tests/dictionary/utils/format_utils_test.cpp b/native/jni/tests/dictionary/utils/format_utils_test.cpp
new file mode 100644
index 0000000..3561bda
--- /dev/null
+++ b/native/jni/tests/dictionary/utils/format_utils_test.cpp
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/utils/format_utils.h"
+
+#include <gtest/gtest.h>
+
+#include <vector>
+
+#include "utils/byte_array_view.h"
+
+namespace latinime {
+namespace {
+
+TEST(FormatUtilsTest, TestMagicNumber) {
+    EXPECT_EQ(0x9BC13AFE, FormatUtils::MAGIC_NUMBER) << "Magic number must not be changed.";
+}
+
+const std::vector<uint8_t> getBuffer(const int magicNumber, const int version, const uint16_t flags,
+        const size_t headerSize) {
+    std::vector<uint8_t> buffer;
+    buffer.push_back(magicNumber >> 24);
+    buffer.push_back(magicNumber >> 16);
+    buffer.push_back(magicNumber >> 8);
+    buffer.push_back(magicNumber);
+
+    buffer.push_back(version >> 8);
+    buffer.push_back(version);
+
+    buffer.push_back(flags >> 8);
+    buffer.push_back(flags);
+
+    buffer.push_back(headerSize >> 24);
+    buffer.push_back(headerSize >> 16);
+    buffer.push_back(headerSize >> 8);
+    buffer.push_back(headerSize);
+    return buffer;
+}
+
+TEST(FormatUtilsTest, TestDetectFormatVersion) {
+    EXPECT_EQ(FormatUtils::UNKNOWN_VERSION,
+            FormatUtils::detectFormatVersion(ReadOnlyByteArrayView()));
+
+    {
+        const std::vector<uint8_t> buffer =
+                getBuffer(FormatUtils::MAGIC_NUMBER, FormatUtils::VERSION_2, 0, 0);
+        EXPECT_EQ(FormatUtils::VERSION_2, FormatUtils::detectFormatVersion(
+                ReadOnlyByteArrayView(buffer.data(), buffer.size())));
+    }
+    {
+        const std::vector<uint8_t> buffer =
+                getBuffer(FormatUtils::MAGIC_NUMBER, FormatUtils::VERSION_402, 0, 0);
+        EXPECT_EQ(FormatUtils::VERSION_402, FormatUtils::detectFormatVersion(
+                ReadOnlyByteArrayView(buffer.data(), buffer.size())));
+    }
+    {
+        const std::vector<uint8_t> buffer =
+                getBuffer(FormatUtils::MAGIC_NUMBER, FormatUtils::VERSION_403, 0, 0);
+        EXPECT_EQ(FormatUtils::VERSION_403, FormatUtils::detectFormatVersion(
+                ReadOnlyByteArrayView(buffer.data(), buffer.size())));
+    }
+
+    {
+        const std::vector<uint8_t> buffer =
+                getBuffer(FormatUtils::MAGIC_NUMBER - 1, FormatUtils::VERSION_2, 0, 0);
+        EXPECT_EQ(FormatUtils::UNKNOWN_VERSION, FormatUtils::detectFormatVersion(
+                ReadOnlyByteArrayView(buffer.data(), buffer.size())));
+    }
+    {
+        const std::vector<uint8_t> buffer =
+                getBuffer(FormatUtils::MAGIC_NUMBER, 100, 0, 0);
+        EXPECT_EQ(FormatUtils::UNKNOWN_VERSION, FormatUtils::detectFormatVersion(
+                ReadOnlyByteArrayView(buffer.data(), buffer.size())));
+    }
+    {
+        const std::vector<uint8_t> buffer =
+                getBuffer(FormatUtils::MAGIC_NUMBER, FormatUtils::VERSION_2, 0, 0);
+        EXPECT_EQ(FormatUtils::UNKNOWN_VERSION, FormatUtils::detectFormatVersion(
+                ReadOnlyByteArrayView(buffer.data(), buffer.size() - 1)));
+    }
+}
+
+}  // namespace
+}  // namespace latinime
diff --git a/native/jni/tests/dictionary/utils/probability_utils_test.cpp b/native/jni/tests/dictionary/utils/probability_utils_test.cpp
new file mode 100644
index 0000000..4020ea4
--- /dev/null
+++ b/native/jni/tests/dictionary/utils/probability_utils_test.cpp
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/utils/probability_utils.h"
+
+#include <gtest/gtest.h>
+
+#include "defines.h"
+
+namespace latinime {
+namespace {
+
+TEST(ProbabilityUtilsTest, TestEncodeRawProbability) {
+    EXPECT_EQ(MAX_PROBABILITY, ProbabilityUtils::encodeRawProbability(1.0f));
+    EXPECT_EQ(MAX_PROBABILITY - 9, ProbabilityUtils::encodeRawProbability(0.5f));
+    EXPECT_EQ(0, ProbabilityUtils::encodeRawProbability(0.0f));
+}
+
+}  // namespace
+}  // namespace latinime
diff --git a/native/jni/tests/dictionary/utils/sparse_table_test.cpp b/native/jni/tests/dictionary/utils/sparse_table_test.cpp
new file mode 100644
index 0000000..237c963
--- /dev/null
+++ b/native/jni/tests/dictionary/utils/sparse_table_test.cpp
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/utils/sparse_table.h"
+
+#include <gtest/gtest.h>
+
+#include "dictionary/utils/buffer_with_extendable_buffer.h"
+
+namespace latinime {
+namespace {
+
+TEST(SparseTableTest, TestSetAndGet) {
+    static const int BLOCK_SIZE = 64;
+    static const int DATA_SIZE = 4;
+    BufferWithExtendableBuffer indexTableBuffer(
+            BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE);
+    BufferWithExtendableBuffer contentTableBuffer(
+            BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE);
+    SparseTable sparseTable(&indexTableBuffer, &contentTableBuffer, BLOCK_SIZE, DATA_SIZE);
+
+    EXPECT_FALSE(sparseTable.contains(10));
+    EXPECT_TRUE(sparseTable.set(10, 100u));
+    EXPECT_EQ(100u, sparseTable.get(10));
+    EXPECT_TRUE(sparseTable.contains(10));
+    EXPECT_TRUE(sparseTable.contains(BLOCK_SIZE - 1));
+    EXPECT_FALSE(sparseTable.contains(BLOCK_SIZE));
+    EXPECT_TRUE(sparseTable.set(11, 101u));
+    EXPECT_EQ(100u, sparseTable.get(10));
+    EXPECT_EQ(101u, sparseTable.get(11));
+}
+
+}  // namespace
+}  // namespace latinime
diff --git a/native/jni/tests/dictionary/utils/trie_map_test.cpp b/native/jni/tests/dictionary/utils/trie_map_test.cpp
new file mode 100644
index 0000000..745d398
--- /dev/null
+++ b/native/jni/tests/dictionary/utils/trie_map_test.cpp
@@ -0,0 +1,252 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "dictionary/utils/trie_map.h"
+
+#include <gtest/gtest.h>
+
+#include <algorithm>
+#include <cstdlib>
+#include <functional>
+#include <map>
+#include <random>
+#include <unordered_map>
+
+namespace latinime {
+namespace {
+
+TEST(TrieMapTest, TestSetAndGet) {
+    TrieMap trieMap;
+    trieMap.putRoot(10, 10);
+    EXPECT_EQ(10ull, trieMap.getRoot(10).mValue);
+    trieMap.putRoot(0x10A, 10);
+    EXPECT_EQ(10ull, trieMap.getRoot(10).mValue);
+    EXPECT_EQ(10ull, trieMap.getRoot(0x10A).mValue);
+    trieMap.putRoot(10, 1000);
+    EXPECT_EQ(1000ull, trieMap.getRoot(10).mValue);
+    trieMap.putRoot(11, 1000);
+    EXPECT_EQ(1000ull, trieMap.getRoot(11).mValue);
+    const int next = trieMap.getNextLevelBitmapEntryIndex(10);
+    EXPECT_EQ(1000ull, trieMap.getRoot(10).mValue);
+    trieMap.put(9, 9, next);
+    EXPECT_EQ(9ull, trieMap.get(9, next).mValue);
+    EXPECT_FALSE(trieMap.get(11, next).mIsValid);
+    trieMap.putRoot(0, 0xFFFFFFFFFull);
+    EXPECT_EQ(0xFFFFFFFFFull, trieMap.getRoot(0).mValue);
+}
+
+TEST(TrieMapTest, TestRemove) {
+    TrieMap trieMap;
+    trieMap.putRoot(10, 10);
+    EXPECT_EQ(10ull, trieMap.getRoot(10).mValue);
+    EXPECT_TRUE(trieMap.remove(10, trieMap.getRootBitmapEntryIndex()));
+    EXPECT_FALSE(trieMap.getRoot(10).mIsValid);
+    for (const auto &element : trieMap.getEntriesInRootLevel()) {
+        EXPECT_TRUE(false);
+    }
+    EXPECT_TRUE(trieMap.putRoot(10, 0x3FFFFF));
+    EXPECT_FALSE(trieMap.remove(11, trieMap.getRootBitmapEntryIndex()))
+            << "Should fail if the key does not exist.";
+    EXPECT_EQ(0x3FFFFFull, trieMap.getRoot(10).mValue);
+    trieMap.putRoot(12, 11);
+    const int nextLevel = trieMap.getNextLevelBitmapEntryIndex(10);
+    trieMap.put(10, 10, nextLevel);
+    EXPECT_EQ(0x3FFFFFull, trieMap.getRoot(10).mValue);
+    EXPECT_EQ(10ull, trieMap.get(10, nextLevel).mValue);
+    EXPECT_TRUE(trieMap.remove(10, trieMap.getRootBitmapEntryIndex()));
+    const TrieMap::Result result = trieMap.getRoot(10);
+    EXPECT_FALSE(result.mIsValid);
+    EXPECT_EQ(TrieMap::INVALID_INDEX, result.mNextLevelBitmapEntryIndex);
+    EXPECT_EQ(11ull, trieMap.getRoot(12).mValue);
+    EXPECT_TRUE(trieMap.putRoot(S_INT_MAX, 0xFFFFFFFFFull));
+    EXPECT_TRUE(trieMap.remove(S_INT_MAX, trieMap.getRootBitmapEntryIndex()));
+}
+
+TEST(TrieMapTest, TestSetAndGetLarge) {
+    static const int ELEMENT_COUNT = 200000;
+    TrieMap trieMap;
+    for (int i = 0; i < ELEMENT_COUNT; ++i) {
+        EXPECT_TRUE(trieMap.putRoot(i, i));
+    }
+    for (int i = 0; i < ELEMENT_COUNT; ++i) {
+        EXPECT_EQ(static_cast<uint64_t>(i), trieMap.getRoot(i).mValue);
+    }
+}
+
+TEST(TrieMapTest, TestRandSetAndGetLarge) {
+    static const int ELEMENT_COUNT = 100000;
+    TrieMap trieMap;
+    std::unordered_map<int, uint64_t> testKeyValuePairs;
+
+    // Use the uniform integer distribution [S_INT_MIN, S_INT_MAX].
+    std::uniform_int_distribution<int> keyDistribution(S_INT_MIN, S_INT_MAX);
+    auto keyRandomNumberGenerator = std::bind(keyDistribution, std::mt19937());
+
+    // Use the uniform distribution [0, TrieMap::MAX_VALUE].
+    std::uniform_int_distribution<uint64_t> valueDistribution(0, TrieMap::MAX_VALUE);
+    auto valueRandomNumberGenerator = std::bind(valueDistribution, std::mt19937());
+
+    for (int i = 0; i < ELEMENT_COUNT; ++i) {
+        const int key = keyRandomNumberGenerator();
+        const uint64_t value = valueRandomNumberGenerator();
+        EXPECT_TRUE(trieMap.putRoot(key, value)) << key << " " << value;
+        testKeyValuePairs[key] = value;
+    }
+    for (const auto &v : testKeyValuePairs) {
+        EXPECT_EQ(v.second, trieMap.getRoot(v.first).mValue);
+    }
+}
+
+TEST(TrieMapTest, TestMultiLevel) {
+    static const int FIRST_LEVEL_ENTRY_COUNT = 10000;
+    static const int SECOND_LEVEL_ENTRY_COUNT = 20000;
+    static const int THIRD_LEVEL_ENTRY_COUNT = 40000;
+
+    TrieMap trieMap;
+    std::vector<int> firstLevelKeys;
+    std::map<int, uint64_t> firstLevelEntries;
+    std::vector<std::pair<int, int>> secondLevelKeys;
+    std::map<int, std::map<int, uint64_t>> twoLevelMap;
+    std::map<int, std::map<int, std::map<int, uint64_t>>> threeLevelMap;
+
+    // Use the uniform integer distribution [0, S_INT_MAX].
+    std::uniform_int_distribution<int> distribution(0, S_INT_MAX);
+    auto keyRandomNumberGenerator = std::bind(distribution, std::mt19937());
+    auto randomNumberGeneratorForKeySelection = std::bind(distribution, std::mt19937());
+
+    // Use the uniform distribution [0, TrieMap::MAX_VALUE].
+    std::uniform_int_distribution<uint64_t> valueDistribution(0, TrieMap::MAX_VALUE);
+    auto valueRandomNumberGenerator = std::bind(valueDistribution, std::mt19937());
+
+    for (int i = 0; i < FIRST_LEVEL_ENTRY_COUNT; ++i) {
+        const int key = keyRandomNumberGenerator();
+        const uint64_t value = valueRandomNumberGenerator();
+        EXPECT_TRUE(trieMap.putRoot(key, value));
+        firstLevelKeys.push_back(key);
+        firstLevelEntries[key] = value;
+    }
+
+    for (int i = 0; i < SECOND_LEVEL_ENTRY_COUNT; ++i) {
+        const int key = keyRandomNumberGenerator();
+        const uint64_t value = valueRandomNumberGenerator();
+        const int firstLevelKey =
+                firstLevelKeys[randomNumberGeneratorForKeySelection() % FIRST_LEVEL_ENTRY_COUNT];
+        const int nextLevelBitmapEntryIndex = trieMap.getNextLevelBitmapEntryIndex(firstLevelKey);
+        EXPECT_NE(TrieMap::INVALID_INDEX, nextLevelBitmapEntryIndex);
+        EXPECT_TRUE(trieMap.put(key, value, nextLevelBitmapEntryIndex));
+        secondLevelKeys.push_back(std::make_pair(firstLevelKey, key));
+        twoLevelMap[firstLevelKey][key] = value;
+    }
+
+    for (int i = 0; i < THIRD_LEVEL_ENTRY_COUNT; ++i) {
+        const int key = keyRandomNumberGenerator();
+        const uint64_t value = valueRandomNumberGenerator();
+        const std::pair<int, int> secondLevelKey =
+                secondLevelKeys[randomNumberGeneratorForKeySelection() % SECOND_LEVEL_ENTRY_COUNT];
+        const int secondLevel = trieMap.getNextLevelBitmapEntryIndex(secondLevelKey.first);
+        EXPECT_NE(TrieMap::INVALID_INDEX, secondLevel);
+        const int thirdLevel = trieMap.getNextLevelBitmapEntryIndex(
+                secondLevelKey.second, secondLevel);
+        EXPECT_NE(TrieMap::INVALID_INDEX, thirdLevel);
+        EXPECT_TRUE(trieMap.put(key, value, thirdLevel));
+        threeLevelMap[secondLevelKey.first][secondLevelKey.second][key] = value;
+    }
+
+    for (const auto &firstLevelEntry : firstLevelEntries) {
+        EXPECT_EQ(firstLevelEntry.second, trieMap.getRoot(firstLevelEntry.first).mValue);
+    }
+
+    for (const auto &firstLevelEntry : twoLevelMap) {
+        const int secondLevel = trieMap.getNextLevelBitmapEntryIndex(firstLevelEntry.first);
+        EXPECT_NE(TrieMap::INVALID_INDEX, secondLevel);
+        for (const auto &secondLevelEntry : firstLevelEntry.second) {
+            EXPECT_EQ(secondLevelEntry.second,
+                    trieMap.get(secondLevelEntry.first, secondLevel).mValue);
+        }
+    }
+
+    for (const auto &firstLevelEntry : threeLevelMap) {
+        const int secondLevel = trieMap.getNextLevelBitmapEntryIndex(firstLevelEntry.first);
+        EXPECT_NE(TrieMap::INVALID_INDEX, secondLevel);
+        for (const auto &secondLevelEntry : firstLevelEntry.second) {
+            const int thirdLevel =
+                    trieMap.getNextLevelBitmapEntryIndex(secondLevelEntry.first, secondLevel);
+            EXPECT_NE(TrieMap::INVALID_INDEX, thirdLevel);
+            for (const auto &thirdLevelEntry : secondLevelEntry.second) {
+                EXPECT_EQ(thirdLevelEntry.second,
+                        trieMap.get(thirdLevelEntry.first, thirdLevel).mValue);
+            }
+        }
+    }
+
+    // Iteration
+    for (const auto &firstLevelEntry : trieMap.getEntriesInRootLevel()) {
+        EXPECT_EQ(trieMap.getRoot(firstLevelEntry.key()).mValue, firstLevelEntry.value());
+        EXPECT_EQ(firstLevelEntries[firstLevelEntry.key()], firstLevelEntry.value());
+        firstLevelEntries.erase(firstLevelEntry.key());
+        for (const auto &secondLevelEntry : firstLevelEntry.getEntriesInNextLevel()) {
+            EXPECT_EQ(twoLevelMap[firstLevelEntry.key()][secondLevelEntry.key()],
+                    secondLevelEntry.value());
+            twoLevelMap[firstLevelEntry.key()].erase(secondLevelEntry.key());
+            for (const auto &thirdLevelEntry : secondLevelEntry.getEntriesInNextLevel()) {
+                EXPECT_EQ(threeLevelMap[firstLevelEntry.key()][secondLevelEntry.key()]
+                        [thirdLevelEntry.key()], thirdLevelEntry.value());
+                threeLevelMap[firstLevelEntry.key()][secondLevelEntry.key()].erase(
+                        thirdLevelEntry.key());
+            }
+        }
+    }
+
+    // Ensure all entries have been traversed.
+    EXPECT_TRUE(firstLevelEntries.empty());
+    for (const auto &secondLevelEntry : twoLevelMap) {
+        EXPECT_TRUE(secondLevelEntry.second.empty());
+    }
+    for (const auto &secondLevelEntry : threeLevelMap) {
+        for (const auto &thirdLevelEntry : secondLevelEntry.second) {
+            EXPECT_TRUE(thirdLevelEntry.second.empty());
+        }
+    }
+}
+
+TEST(TrieMapTest, TestIteration) {
+    static const int ELEMENT_COUNT = 200000;
+    TrieMap trieMap;
+    std::unordered_map<int, uint64_t> testKeyValuePairs;
+
+    // Use the uniform integer distribution [S_INT_MIN, S_INT_MAX].
+    std::uniform_int_distribution<int> keyDistribution(S_INT_MIN, S_INT_MAX);
+    auto keyRandomNumberGenerator = std::bind(keyDistribution, std::mt19937());
+
+    // Use the uniform distribution [0, TrieMap::MAX_VALUE].
+    std::uniform_int_distribution<uint64_t> valueDistribution(0, TrieMap::MAX_VALUE);
+    auto valueRandomNumberGenerator = std::bind(valueDistribution, std::mt19937());
+    for (int i = 0; i < ELEMENT_COUNT; ++i) {
+        const int key = keyRandomNumberGenerator();
+        const uint64_t value = valueRandomNumberGenerator();
+        EXPECT_TRUE(trieMap.putRoot(key, value));
+        testKeyValuePairs[key] = value;
+    }
+    for (const auto &entry : trieMap.getEntriesInRootLevel()) {
+        EXPECT_EQ(trieMap.getRoot(entry.key()).mValue, entry.value());
+        EXPECT_EQ(testKeyValuePairs[entry.key()], entry.value());
+        testKeyValuePairs.erase(entry.key());
+    }
+    EXPECT_TRUE(testKeyValuePairs.empty());
+}
+
+}  // namespace
+}  // namespace latinime
diff --git a/native/jni/tests/suggest/core/dicnode/dic_node_pool_test.cpp b/native/jni/tests/suggest/core/dicnode/dic_node_pool_test.cpp
new file mode 100644
index 0000000..854efdf
--- /dev/null
+++ b/native/jni/tests/suggest/core/dicnode/dic_node_pool_test.cpp
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "suggest/core/dicnode/dic_node_pool.h"
+
+#include <gtest/gtest.h>
+
+namespace latinime {
+namespace {
+
+TEST(DicNodePoolTest, TestGet) {
+    static const int CAPACITY = 10;
+    DicNodePool dicNodePool(CAPACITY);
+
+    for (int i = 0; i < CAPACITY; ++i) {
+        EXPECT_NE(nullptr, dicNodePool.getInstance());
+    }
+    EXPECT_EQ(nullptr, dicNodePool.getInstance());
+}
+
+TEST(DicNodePoolTest, TestPlaceBack) {
+    static const int CAPACITY = 1;
+    DicNodePool dicNodePool(CAPACITY);
+
+    DicNode *const dicNode = dicNodePool.getInstance();
+    EXPECT_NE(nullptr, dicNode);
+    EXPECT_EQ(nullptr, dicNodePool.getInstance());
+    dicNodePool.placeBackInstance(dicNode);
+    EXPECT_EQ(dicNode, dicNodePool.getInstance());
+}
+
+TEST(DicNodePoolTest, TestReset) {
+    static const int CAPACITY_SMALL = 2;
+    static const int CAPACITY_LARGE = 10;
+    DicNodePool dicNodePool(CAPACITY_SMALL);
+
+    for (int i = 0; i < CAPACITY_SMALL; ++i) {
+        EXPECT_NE(nullptr, dicNodePool.getInstance());
+    }
+    EXPECT_EQ(nullptr, dicNodePool.getInstance());
+
+    dicNodePool.reset(CAPACITY_LARGE);
+    for (int i = 0; i < CAPACITY_LARGE; ++i) {
+        EXPECT_NE(nullptr, dicNodePool.getInstance());
+    }
+    EXPECT_EQ(nullptr, dicNodePool.getInstance());
+
+    dicNodePool.reset(CAPACITY_SMALL);
+    for (int i = 0; i < CAPACITY_SMALL; ++i) {
+        EXPECT_NE(nullptr, dicNodePool.getInstance());
+    }
+    EXPECT_EQ(nullptr, dicNodePool.getInstance());
+}
+
+}  // namespace
+}  // namespace latinime
diff --git a/native/jni/tests/suggest/core/dictionary/bloom_filter_test.cpp b/native/jni/tests/suggest/core/dictionary/bloom_filter_test.cpp
deleted file mode 100644
index b620217..0000000
--- a/native/jni/tests/suggest/core/dictionary/bloom_filter_test.cpp
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/core/dictionary/bloom_filter.h"
-
-#include <gtest/gtest.h>
-
-#include <algorithm>
-#include <cstdlib>
-#include <functional>
-#include <random>
-#include <unordered_set>
-#include <vector>
-
-namespace latinime {
-namespace {
-
-TEST(BloomFilterTest, TestFilter) {
-    static const int TEST_RANDOM_DATA_MAX = 65536;
-    static const int ELEMENT_COUNT = 1000;
-    std::vector<int> elements;
-
-    // Initialize data set with random integers.
-    {
-        // Use the uniform integer distribution [0, TEST_RANDOM_DATA_MAX].
-        std::uniform_int_distribution<int> distribution(0, TEST_RANDOM_DATA_MAX);
-        auto randomNumberGenerator = std::bind(distribution, std::mt19937());
-        for (int i = 0; i < ELEMENT_COUNT; ++i) {
-            elements.push_back(randomNumberGenerator());
-        }
-    }
-
-    // Make sure BloomFilter contains nothing by default.
-    BloomFilter bloomFilter;
-    for (const int elem : elements) {
-        ASSERT_FALSE(bloomFilter.isInFilter(elem));
-    }
-
-    // Copy some of the test vector into bloom filter.
-    std::unordered_set<int> elementsThatHaveBeenSetInFilter;
-    {
-        // Use the uniform integer distribution [0, 1].
-        std::uniform_int_distribution<int> distribution(0, 1);
-        auto randomBitGenerator = std::bind(distribution, std::mt19937());
-        for (const int elem : elements) {
-            if (randomBitGenerator() == 0) {
-                bloomFilter.setInFilter(elem);
-                elementsThatHaveBeenSetInFilter.insert(elem);
-            }
-        }
-    }
-
-    for (const int elem : elements) {
-        const bool existsInFilter = bloomFilter.isInFilter(elem);
-        const bool hasBeenSetInFilter =
-                elementsThatHaveBeenSetInFilter.find(elem) != elementsThatHaveBeenSetInFilter.end();
-        if (hasBeenSetInFilter) {
-            EXPECT_TRUE(existsInFilter) << "elem: " << elem;
-        }
-        if (!existsInFilter) {
-            EXPECT_FALSE(hasBeenSetInFilter) << "elem: " << elem;
-        }
-    }
-}
-
-}  // namespace
-}  // namespace latinime
diff --git a/native/jni/tests/suggest/core/layout/geometry_utils_test.cpp b/native/jni/tests/suggest/core/layout/geometry_utils_test.cpp
new file mode 100644
index 0000000..f5f89ed
--- /dev/null
+++ b/native/jni/tests/suggest/core/layout/geometry_utils_test.cpp
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "suggest/core/layout/geometry_utils.h"
+
+#include <gtest/gtest.h>
+
+namespace latinime {
+namespace {
+
+::testing::AssertionResult ExpectAngleDiffEq(const char* expectedExpression,
+      const char* actualExpression, float expected, float actual) {
+    if (actual < 0.0f || M_PI_F < actual) {
+        return ::testing::AssertionFailure()
+              << "Must be in the range of [0.0f, M_PI_F]."
+              << " expected: " << expected
+              << " actual: " << actual;
+    }
+    return ::testing::internal::CmpHelperFloatingPointEQ<float>(
+            expectedExpression, actualExpression, expected, actual);
+}
+
+#define EXPECT_ANGLE_DIFF_EQ(expected, actual) \
+        EXPECT_PRED_FORMAT2(ExpectAngleDiffEq, expected, actual);
+
+TEST(GeometryUtilsTest, testSquareFloat) {
+    const float test_data[] = { 0.0f, 1.0f, 123.456f, -1.0f, -9876.54321f };
+    for (const float value : test_data) {
+        EXPECT_FLOAT_EQ(value * value, GeometryUtils::SQUARE_FLOAT(value));
+    }
+}
+
+TEST(GeometryUtilsTest, testGetAngle) {
+    EXPECT_FLOAT_EQ(0.0f, GeometryUtils::getAngle(0, 0, 0, 0));
+    EXPECT_FLOAT_EQ(0.0f, GeometryUtils::getAngle(100, -10, 100, -10));
+
+    EXPECT_FLOAT_EQ(M_PI_F / 4.0f, GeometryUtils::getAngle(1, 1, 0, 0));
+    EXPECT_FLOAT_EQ(M_PI_F, GeometryUtils::getAngle(-1, 0, 0, 0));
+
+    EXPECT_FLOAT_EQ(GeometryUtils::getAngle(0, 0, -1, 0), GeometryUtils::getAngle(1, 0, 0, 0));
+    EXPECT_FLOAT_EQ(GeometryUtils::getAngle(1, 2, 3, 4),
+            GeometryUtils::getAngle(100, 200, 300, 400));
+}
+
+TEST(GeometryUtilsTest, testGetAngleDiff) {
+    EXPECT_ANGLE_DIFF_EQ(0.0f, GeometryUtils::getAngleDiff(0.0f, 0.0f));
+    EXPECT_ANGLE_DIFF_EQ(0.0f, GeometryUtils::getAngleDiff(10000.0f, 10000.0f));
+    EXPECT_ANGLE_DIFF_EQ(ROUND_FLOAT_10000(M_PI_F),
+            GeometryUtils::getAngleDiff(0.0f, M_PI_F));
+    EXPECT_ANGLE_DIFF_EQ(ROUND_FLOAT_10000(M_PI_F / 6.0f),
+            GeometryUtils::getAngleDiff(M_PI_F / 3.0f, M_PI_F / 2.0f));
+    EXPECT_ANGLE_DIFF_EQ(ROUND_FLOAT_10000(M_PI_F / 2.0f),
+            GeometryUtils::getAngleDiff(0.0f, M_PI_F * 1.5f));
+    EXPECT_ANGLE_DIFF_EQ(0.0f, GeometryUtils::getAngleDiff(0.0f, M_PI_F * 1024.0f));
+    EXPECT_ANGLE_DIFF_EQ(0.0f, GeometryUtils::getAngleDiff(-M_PI_F, M_PI_F));
+}
+
+TEST(GeometryUtilsTest, testGetDistanceInt) {
+    EXPECT_EQ(0, GeometryUtils::getDistanceInt(0, 0, 0, 0));
+    EXPECT_EQ(0, GeometryUtils::getAngle(100, -10, 100, -10));
+
+    EXPECT_EQ(5, GeometryUtils::getDistanceInt(0, 0, 5, 0));
+    EXPECT_EQ(5, GeometryUtils::getDistanceInt(0, 0, 3, 4));
+    EXPECT_EQ(5, GeometryUtils::getDistanceInt(0, -4, 3, 0));
+    EXPECT_EQ(5, GeometryUtils::getDistanceInt(0, 0, -3, -4));
+    EXPECT_EQ(500, GeometryUtils::getDistanceInt(0, 0, 300, -400));
+}
+
+}  // namespace
+}  // namespace latinime
diff --git a/native/jni/tests/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content_test.cpp b/native/jni/tests/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content_test.cpp
deleted file mode 100644
index 6eef204..0000000
--- a/native/jni/tests/suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content_test.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/v4/content/language_model_dict_content.h"
-
-#include <gtest/gtest.h>
-
-#include "utils/int_array_view.h"
-
-namespace latinime {
-namespace {
-
-TEST(LanguageModelDictContentTest, TestUnigramProbability) {
-    LanguageModelDictContent LanguageModelDictContent(false /* useHistoricalInfo */);
-
-    const int flag = 0xFF;
-    const int probability = 10;
-    const int wordId = 100;
-    const ProbabilityEntry probabilityEntry(flag, probability);
-    LanguageModelDictContent.setProbabilityEntry(wordId, &probabilityEntry);
-    const ProbabilityEntry entry =
-            LanguageModelDictContent.getProbabilityEntry(wordId);
-    EXPECT_EQ(flag, entry.getFlags());
-    EXPECT_EQ(probability, entry.getProbability());
-}
-
-TEST(LanguageModelDictContentTest, TestUnigramProbabilityWithHistoricalInfo) {
-    LanguageModelDictContent LanguageModelDictContent(true /* useHistoricalInfo */);
-
-    const int flag = 0xF0;
-    const int timestamp = 0x3FFFFFFF;
-    const int level = 3;
-    const int count = 10;
-    const int wordId = 100;
-    const HistoricalInfo historicalInfo(timestamp, level, count);
-    const ProbabilityEntry probabilityEntry(flag, NOT_A_PROBABILITY, &historicalInfo);
-    LanguageModelDictContent.setProbabilityEntry(wordId, &probabilityEntry);
-    const ProbabilityEntry entry = LanguageModelDictContent.getProbabilityEntry(wordId);
-    EXPECT_EQ(flag, entry.getFlags());
-    EXPECT_EQ(timestamp, entry.getHistoricalInfo()->getTimeStamp());
-    EXPECT_EQ(level, entry.getHistoricalInfo()->getLevel());
-    EXPECT_EQ(count, entry.getHistoricalInfo()->getCount());
-}
-
-}  // namespace
-}  // namespace latinime
diff --git a/native/jni/tests/suggest/policyimpl/dictionary/structure/v4/content/probability_entry_test.cpp b/native/jni/tests/suggest/policyimpl/dictionary/structure/v4/content/probability_entry_test.cpp
deleted file mode 100644
index db94550..0000000
--- a/native/jni/tests/suggest/policyimpl/dictionary/structure/v4/content/probability_entry_test.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/structure/v4/content/probability_entry.h"
-
-#include <gtest/gtest.h>
-
-#include "defines.h"
-
-namespace latinime {
-namespace {
-
-TEST(ProbabilityEntryTest, TestEncodeDecode) {
-    const int flag = 0xFF;
-    const int probability = 10;
-
-    const ProbabilityEntry entry(flag, probability);
-    const uint64_t encodedEntry = entry.encode(false /* hasHistoricalInfo */);
-    const ProbabilityEntry decodedEntry =
-            ProbabilityEntry::decode(encodedEntry, false /* hasHistoricalInfo */);
-    EXPECT_EQ(0xFF0Aull, encodedEntry);
-    EXPECT_EQ(flag, decodedEntry.getFlags());
-    EXPECT_EQ(probability, decodedEntry.getProbability());
-}
-
-TEST(ProbabilityEntryTest, TestEncodeDecodeWithHistoricalInfo) {
-    const int flag = 0xF0;
-    const int timestamp = 0x3FFFFFFF;
-    const int level = 3;
-    const int count = 10;
-
-    const HistoricalInfo historicalInfo(timestamp, level, count);
-    const ProbabilityEntry entry(flag, NOT_A_PROBABILITY, &historicalInfo);
-
-    const uint64_t encodedEntry = entry.encode(true /* hasHistoricalInfo */);
-    EXPECT_EQ(0xF03FFFFFFF030Aull, encodedEntry);
-    const ProbabilityEntry decodedEntry =
-            ProbabilityEntry::decode(encodedEntry, true /* hasHistoricalInfo */);
-
-    EXPECT_EQ(flag, decodedEntry.getFlags());
-    EXPECT_EQ(timestamp, decodedEntry.getHistoricalInfo()->getTimeStamp());
-    EXPECT_EQ(level, decodedEntry.getHistoricalInfo()->getLevel());
-    EXPECT_EQ(count, decodedEntry.getHistoricalInfo()->getCount());
-}
-
-}  // namespace
-}  // namespace latinime
diff --git a/native/jni/tests/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer_test.cpp b/native/jni/tests/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer_test.cpp
deleted file mode 100644
index fa6c6d7..0000000
--- a/native/jni/tests/suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer_test.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
-
-#include <gtest/gtest.h>
-
-namespace latinime {
-namespace {
-
-const int DEFAULT_MAX_BUFFER_SIZE = 1024;
-
-TEST(BufferWithExtendablebufferTest, TestWriteAndRead) {
-    BufferWithExtendableBuffer buffer(DEFAULT_MAX_BUFFER_SIZE);
-    int pos = 0;
-    // 1 byte
-    const uint32_t data_1 = 0xFF;
-    EXPECT_TRUE(buffer.writeUint(data_1, 1 /* size */, pos));
-    EXPECT_EQ(data_1, buffer.readUint(1, pos));
-    pos += 1;
-    // 2 byte
-    const uint32_t data_2 = 0xFFFF;
-    EXPECT_TRUE(buffer.writeUint(data_2, 2 /* size */, pos));
-    EXPECT_EQ(data_2, buffer.readUint(2, pos));
-    pos += 2;
-    // 3 byte
-    const uint32_t data_3 = 0xFFFFFF;
-    EXPECT_TRUE(buffer.writeUint(data_3, 3 /* size */, pos));
-    EXPECT_EQ(data_3, buffer.readUint(3, pos));
-    pos += 3;
-    // 4 byte
-    const uint32_t data_4 = 0xFFFFFFFF;
-    EXPECT_TRUE(buffer.writeUint(data_4, 4 /* size */, pos));
-    EXPECT_EQ(data_4, buffer.readUint(4, pos));
-}
-
-TEST(BufferWithExtendablebufferTest, TestExtend) {
-    BufferWithExtendableBuffer buffer(DEFAULT_MAX_BUFFER_SIZE);
-    EXPECT_EQ(0, buffer.getTailPosition());
-    EXPECT_TRUE(buffer.writeUint(0xFF /* data */, 4 /* size */, 0 /* pos */));
-    EXPECT_EQ(4, buffer.getTailPosition());
-    EXPECT_TRUE(buffer.extend(8 /* size */));
-    EXPECT_EQ(12, buffer.getTailPosition());
-    EXPECT_TRUE(buffer.writeUint(0xFFFF /* data */, 4 /* size */, 8 /* pos */));
-    EXPECT_TRUE(buffer.writeUint(0xFF /* data */, 4 /* size */, 0 /* pos */));
-}
-
-TEST(BufferWithExtendablebufferTest, TestCopy) {
-    BufferWithExtendableBuffer buffer(DEFAULT_MAX_BUFFER_SIZE);
-    EXPECT_TRUE(buffer.writeUint(0xFF /* data */, 4 /* size */, 0 /* pos */));
-    EXPECT_TRUE(buffer.writeUint(0xFFFF /* data */, 4 /* size */, 4 /* pos */));
-    BufferWithExtendableBuffer targetBuffer(DEFAULT_MAX_BUFFER_SIZE);
-    EXPECT_TRUE(targetBuffer.copy(&buffer));
-    EXPECT_EQ(0xFFu, targetBuffer.readUint(4 /* size */, 0 /* pos */));
-    EXPECT_EQ(0xFFFFu, targetBuffer.readUint(4 /* size */, 4 /* pos */));
-}
-
-TEST(BufferWithExtendablebufferTest, TestSizeLimit) {
-    BufferWithExtendableBuffer emptyBuffer(0 /* maxAdditionalBufferSize */);
-    EXPECT_FALSE(emptyBuffer.writeUint(0 /* data */, 1 /* size */, 0 /* pos */));
-    EXPECT_FALSE(emptyBuffer.extend(1 /* size */));
-
-    BufferWithExtendableBuffer smallBuffer(4 /* maxAdditionalBufferSize */);
-    EXPECT_TRUE(smallBuffer.writeUint(0 /* data */, 4 /* size */, 0 /* pos */));
-    EXPECT_FALSE(smallBuffer.writeUint(0 /* data */, 1 /* size */, 4 /* pos */));
-
-    EXPECT_TRUE(smallBuffer.copy(&emptyBuffer));
-    EXPECT_FALSE(emptyBuffer.copy(&smallBuffer));
-
-    BufferWithExtendableBuffer buffer(DEFAULT_MAX_BUFFER_SIZE);
-    EXPECT_FALSE(buffer.isNearSizeLimit());
-    int pos = 0;
-    while (!buffer.isNearSizeLimit()) {
-        EXPECT_TRUE(buffer.writeUintAndAdvancePosition(0 /* data */, 4 /* size */, &pos));
-    }
-    EXPECT_GT(pos, 0);
-    EXPECT_LE(pos, DEFAULT_MAX_BUFFER_SIZE);
-}
-
-}  // namespace
-}  // namespace latinime
diff --git a/native/jni/tests/suggest/policyimpl/dictionary/utils/trie_map_test.cpp b/native/jni/tests/suggest/policyimpl/dictionary/utils/trie_map_test.cpp
deleted file mode 100644
index df778b6..0000000
--- a/native/jni/tests/suggest/policyimpl/dictionary/utils/trie_map_test.cpp
+++ /dev/null
@@ -1,224 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "suggest/policyimpl/dictionary/utils/trie_map.h"
-
-#include <gtest/gtest.h>
-
-#include <algorithm>
-#include <cstdlib>
-#include <functional>
-#include <map>
-#include <random>
-#include <unordered_map>
-
-namespace latinime {
-namespace {
-
-TEST(TrieMapTest, TestSetAndGet) {
-    TrieMap trieMap;
-    trieMap.putRoot(10, 10);
-    EXPECT_EQ(10ull, trieMap.getRoot(10).mValue);
-    trieMap.putRoot(0x10A, 10);
-    EXPECT_EQ(10ull, trieMap.getRoot(10).mValue);
-    EXPECT_EQ(10ull, trieMap.getRoot(0x10A).mValue);
-    trieMap.putRoot(10, 1000);
-    EXPECT_EQ(1000ull, trieMap.getRoot(10).mValue);
-    trieMap.putRoot(11, 1000);
-    EXPECT_EQ(1000ull, trieMap.getRoot(11).mValue);
-    const int next = trieMap.getNextLevelBitmapEntryIndex(10);
-    trieMap.put(9, 9, next);
-    EXPECT_EQ(9ull, trieMap.get(9, next).mValue);
-    EXPECT_FALSE(trieMap.get(11, next).mIsValid);
-    trieMap.putRoot(0, 0xFFFFFFFFFull);
-    EXPECT_EQ(0xFFFFFFFFFull, trieMap.getRoot(0).mValue);
-}
-
-TEST(TrieMapTest, TestSetAndGetLarge) {
-    static const int ELEMENT_COUNT = 200000;
-    TrieMap trieMap;
-    for (int i = 0; i < ELEMENT_COUNT; ++i) {
-        EXPECT_TRUE(trieMap.putRoot(i, i));
-    }
-    for (int i = 0; i < ELEMENT_COUNT; ++i) {
-        EXPECT_EQ(static_cast<uint64_t>(i), trieMap.getRoot(i).mValue);
-    }
-}
-
-TEST(TrieMapTest, TestRandSetAndGetLarge) {
-    static const int ELEMENT_COUNT = 100000;
-    TrieMap trieMap;
-    std::unordered_map<int, uint64_t> testKeyValuePairs;
-
-    // Use the uniform integer distribution [S_INT_MIN, S_INT_MAX].
-    std::uniform_int_distribution<int> keyDistribution(S_INT_MIN, S_INT_MAX);
-    auto keyRandomNumberGenerator = std::bind(keyDistribution, std::mt19937());
-
-    // Use the uniform distribution [0, TrieMap::MAX_VALUE].
-    std::uniform_int_distribution<uint64_t> valueDistribution(0, TrieMap::MAX_VALUE);
-    auto valueRandomNumberGenerator = std::bind(valueDistribution, std::mt19937());
-
-    for (int i = 0; i < ELEMENT_COUNT; ++i) {
-        const int key = keyRandomNumberGenerator();
-        const uint64_t value = valueRandomNumberGenerator();
-        EXPECT_TRUE(trieMap.putRoot(key, value)) << key << " " << value;
-        testKeyValuePairs[key] = value;
-    }
-    for (const auto &v : testKeyValuePairs) {
-        EXPECT_EQ(v.second, trieMap.getRoot(v.first).mValue);
-    }
-}
-
-TEST(TrieMapTest, TestMultiLevel) {
-    static const int FIRST_LEVEL_ENTRY_COUNT = 10000;
-    static const int SECOND_LEVEL_ENTRY_COUNT = 20000;
-    static const int THIRD_LEVEL_ENTRY_COUNT = 40000;
-
-    TrieMap trieMap;
-    std::vector<int> firstLevelKeys;
-    std::map<int, uint64_t> firstLevelEntries;
-    std::vector<std::pair<int, int>> secondLevelKeys;
-    std::map<int, std::map<int, uint64_t>> twoLevelMap;
-    std::map<int, std::map<int, std::map<int, uint64_t>>> threeLevelMap;
-
-    // Use the uniform integer distribution [0, S_INT_MAX].
-    std::uniform_int_distribution<int> distribution(0, S_INT_MAX);
-    auto keyRandomNumberGenerator = std::bind(distribution, std::mt19937());
-    auto randomNumberGeneratorForKeySelection = std::bind(distribution, std::mt19937());
-
-    // Use the uniform distribution [0, TrieMap::MAX_VALUE].
-    std::uniform_int_distribution<uint64_t> valueDistribution(0, TrieMap::MAX_VALUE);
-    auto valueRandomNumberGenerator = std::bind(valueDistribution, std::mt19937());
-
-    for (int i = 0; i < FIRST_LEVEL_ENTRY_COUNT; ++i) {
-        const int key = keyRandomNumberGenerator();
-        const uint64_t value = valueRandomNumberGenerator();
-        EXPECT_TRUE(trieMap.putRoot(key, value));
-        firstLevelKeys.push_back(key);
-        firstLevelEntries[key] = value;
-    }
-
-    for (int i = 0; i < SECOND_LEVEL_ENTRY_COUNT; ++i) {
-        const int key = keyRandomNumberGenerator();
-        const uint64_t value = valueRandomNumberGenerator();
-        const int firstLevelKey =
-                firstLevelKeys[randomNumberGeneratorForKeySelection() % FIRST_LEVEL_ENTRY_COUNT];
-        const int nextLevelBitmapEntryIndex = trieMap.getNextLevelBitmapEntryIndex(firstLevelKey);
-        EXPECT_NE(TrieMap::INVALID_INDEX, nextLevelBitmapEntryIndex);
-        EXPECT_TRUE(trieMap.put(key, value, nextLevelBitmapEntryIndex));
-        secondLevelKeys.push_back(std::make_pair(firstLevelKey, key));
-        twoLevelMap[firstLevelKey][key] = value;
-    }
-
-    for (int i = 0; i < THIRD_LEVEL_ENTRY_COUNT; ++i) {
-        const int key = keyRandomNumberGenerator();
-        const uint64_t value = valueRandomNumberGenerator();
-        const std::pair<int, int> secondLevelKey =
-                secondLevelKeys[randomNumberGeneratorForKeySelection() % SECOND_LEVEL_ENTRY_COUNT];
-        const int secondLevel = trieMap.getNextLevelBitmapEntryIndex(secondLevelKey.first);
-        EXPECT_NE(TrieMap::INVALID_INDEX, secondLevel);
-        const int thirdLevel = trieMap.getNextLevelBitmapEntryIndex(
-                secondLevelKey.second, secondLevel);
-        EXPECT_NE(TrieMap::INVALID_INDEX, thirdLevel);
-        EXPECT_TRUE(trieMap.put(key, value, thirdLevel));
-        threeLevelMap[secondLevelKey.first][secondLevelKey.second][key] = value;
-    }
-
-    for (const auto &firstLevelEntry : firstLevelEntries) {
-        EXPECT_EQ(firstLevelEntry.second, trieMap.getRoot(firstLevelEntry.first).mValue);
-    }
-
-    for (const auto &firstLevelEntry : twoLevelMap) {
-        const int secondLevel = trieMap.getNextLevelBitmapEntryIndex(firstLevelEntry.first);
-        EXPECT_NE(TrieMap::INVALID_INDEX, secondLevel);
-        for (const auto &secondLevelEntry : firstLevelEntry.second) {
-            EXPECT_EQ(secondLevelEntry.second,
-                    trieMap.get(secondLevelEntry.first, secondLevel).mValue);
-        }
-    }
-
-    for (const auto &firstLevelEntry : threeLevelMap) {
-        const int secondLevel = trieMap.getNextLevelBitmapEntryIndex(firstLevelEntry.first);
-        EXPECT_NE(TrieMap::INVALID_INDEX, secondLevel);
-        for (const auto &secondLevelEntry : firstLevelEntry.second) {
-            const int thirdLevel =
-                    trieMap.getNextLevelBitmapEntryIndex(secondLevelEntry.first, secondLevel);
-            EXPECT_NE(TrieMap::INVALID_INDEX, thirdLevel);
-            for (const auto &thirdLevelEntry : secondLevelEntry.second) {
-                EXPECT_EQ(thirdLevelEntry.second,
-                        trieMap.get(thirdLevelEntry.first, thirdLevel).mValue);
-            }
-        }
-    }
-
-    // Iteration
-    for (const auto &firstLevelEntry : trieMap.getEntriesInRootLevel()) {
-        EXPECT_EQ(trieMap.getRoot(firstLevelEntry.key()).mValue, firstLevelEntry.value());
-        EXPECT_EQ(firstLevelEntries[firstLevelEntry.key()], firstLevelEntry.value());
-        firstLevelEntries.erase(firstLevelEntry.key());
-        for (const auto &secondLevelEntry : firstLevelEntry.getEntriesInNextLevel()) {
-            EXPECT_EQ(twoLevelMap[firstLevelEntry.key()][secondLevelEntry.key()],
-                    secondLevelEntry.value());
-            twoLevelMap[firstLevelEntry.key()].erase(secondLevelEntry.key());
-            for (const auto &thirdLevelEntry : secondLevelEntry.getEntriesInNextLevel()) {
-                EXPECT_EQ(threeLevelMap[firstLevelEntry.key()][secondLevelEntry.key()]
-                        [thirdLevelEntry.key()], thirdLevelEntry.value());
-                threeLevelMap[firstLevelEntry.key()][secondLevelEntry.key()].erase(
-                        thirdLevelEntry.key());
-            }
-        }
-    }
-
-    // Ensure all entries have been traversed.
-    EXPECT_TRUE(firstLevelEntries.empty());
-    for (const auto &secondLevelEntry : twoLevelMap) {
-        EXPECT_TRUE(secondLevelEntry.second.empty());
-    }
-    for (const auto &secondLevelEntry : threeLevelMap) {
-        for (const auto &thirdLevelEntry : secondLevelEntry.second) {
-            EXPECT_TRUE(thirdLevelEntry.second.empty());
-        }
-    }
-}
-
-TEST(TrieMapTest, TestIteration) {
-    static const int ELEMENT_COUNT = 200000;
-    TrieMap trieMap;
-    std::unordered_map<int, uint64_t> testKeyValuePairs;
-
-    // Use the uniform integer distribution [S_INT_MIN, S_INT_MAX].
-    std::uniform_int_distribution<int> keyDistribution(S_INT_MIN, S_INT_MAX);
-    auto keyRandomNumberGenerator = std::bind(keyDistribution, std::mt19937());
-
-    // Use the uniform distribution [0, TrieMap::MAX_VALUE].
-    std::uniform_int_distribution<uint64_t> valueDistribution(0, TrieMap::MAX_VALUE);
-    auto valueRandomNumberGenerator = std::bind(valueDistribution, std::mt19937());
-    for (int i = 0; i < ELEMENT_COUNT; ++i) {
-        const int key = keyRandomNumberGenerator();
-        const uint64_t value = valueRandomNumberGenerator();
-        EXPECT_TRUE(trieMap.putRoot(key, value));
-        testKeyValuePairs[key] = value;
-    }
-    for (const auto &entry : trieMap.getEntriesInRootLevel()) {
-        EXPECT_EQ(trieMap.getRoot(entry.key()).mValue, entry.value());
-        EXPECT_EQ(testKeyValuePairs[entry.key()], entry.value());
-        testKeyValuePairs.erase(entry.key());
-    }
-    EXPECT_TRUE(testKeyValuePairs.empty());
-}
-
-}  // namespace
-}  // namespace latinime
diff --git a/native/jni/tests/suggest/policyimpl/utils/damerau_levenshtein_edit_distance_policy_test.cpp b/native/jni/tests/suggest/policyimpl/utils/damerau_levenshtein_edit_distance_policy_test.cpp
new file mode 100644
index 0000000..d134179
--- /dev/null
+++ b/native/jni/tests/suggest/policyimpl/utils/damerau_levenshtein_edit_distance_policy_test.cpp
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "suggest/policyimpl/utils/damerau_levenshtein_edit_distance_policy.h"
+
+#include <gtest/gtest.h>
+
+#include <vector>
+
+#include "suggest/policyimpl/utils/edit_distance.h"
+#include "utils/int_array_view.h"
+
+namespace latinime {
+namespace {
+
+TEST(DamerauLevenshteinEditDistancePolicyTest, TestConstructPolicy) {
+    const std::vector<int> codePoints0 = { 0x20, 0x40, 0x60 };
+    const std::vector<int> codePoints1 = { 0x10, 0x20, 0x30, 0x40, 0x50, 0x60 };
+    DamerauLevenshteinEditDistancePolicy policy(codePoints0.data(), codePoints0.size(),
+            codePoints1.data(), codePoints1.size());
+
+    EXPECT_EQ(static_cast<int>(codePoints0.size()), policy.getString0Length());
+    EXPECT_EQ(static_cast<int>(codePoints1.size()), policy.getString1Length());
+}
+
+float getEditDistance(const std::vector<int> &codePoints0, const std::vector<int> &codePoints1) {
+    DamerauLevenshteinEditDistancePolicy policy(codePoints0.data(), codePoints0.size(),
+            codePoints1.data(), codePoints1.size());
+    return EditDistance::getEditDistance(&policy);
+}
+
+TEST(DamerauLevenshteinEditDistancePolicyTest, TestEditDistance) {
+    EXPECT_FLOAT_EQ(0.0f, getEditDistance({}, {}));
+    EXPECT_FLOAT_EQ(0.0f, getEditDistance({ 1 }, { 1 }));
+    EXPECT_FLOAT_EQ(0.0f, getEditDistance({ 1, 2, 3 }, { 1, 2, 3 }));
+
+    EXPECT_FLOAT_EQ(1.0f, getEditDistance({ 1 }, { }));
+    EXPECT_FLOAT_EQ(1.0f, getEditDistance({}, { 100 }));
+    EXPECT_FLOAT_EQ(5.0f, getEditDistance({}, { 1, 2, 3, 4, 5 }));
+
+    EXPECT_FLOAT_EQ(1.0f, getEditDistance({ 0 }, { 100 }));
+    EXPECT_FLOAT_EQ(5.0f, getEditDistance({ 1, 2, 3, 4, 5 }, { 11, 12, 13, 14, 15 }));
+
+    EXPECT_FLOAT_EQ(1.0f, getEditDistance({ 1 }, { 1, 2 }));
+    EXPECT_FLOAT_EQ(2.0f, getEditDistance({ 1, 2 }, { 0, 1, 2, 3 }));
+    EXPECT_FLOAT_EQ(2.0f, getEditDistance({ 0, 1, 2, 3 }, { 1, 2 }));
+
+    EXPECT_FLOAT_EQ(1.0f, getEditDistance({ 1, 2 }, { 2, 1 }));
+    EXPECT_FLOAT_EQ(2.0f, getEditDistance({ 1, 2, 3, 4 }, { 2, 1, 4, 3 }));
+}
+}  // namespace
+}  // namespace latinime
diff --git a/native/jni/tests/utils/char_utils_test.cpp b/native/jni/tests/utils/char_utils_test.cpp
new file mode 100644
index 0000000..01d5340
--- /dev/null
+++ b/native/jni/tests/utils/char_utils_test.cpp
@@ -0,0 +1,122 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "utils/char_utils.h"
+
+#include <gtest/gtest.h>
+
+#include "defines.h"
+
+namespace latinime {
+namespace {
+
+TEST(CharUtilsTest, TestIsAsciiUpper) {
+    EXPECT_TRUE(CharUtils::isAsciiUpper('A'));
+    EXPECT_TRUE(CharUtils::isAsciiUpper('Z'));
+    EXPECT_FALSE(CharUtils::isAsciiUpper('a'));
+    EXPECT_FALSE(CharUtils::isAsciiUpper('z'));
+    EXPECT_FALSE(CharUtils::isAsciiUpper('@'));
+    EXPECT_FALSE(CharUtils::isAsciiUpper(' '));
+    EXPECT_FALSE(CharUtils::isAsciiUpper(0x00C0 /* LATIN CAPITAL LETTER A WITH GRAVE */));
+    EXPECT_FALSE(CharUtils::isAsciiUpper(0x00E0 /* LATIN SMALL LETTER A WITH GRAVE */));
+    EXPECT_FALSE(CharUtils::isAsciiUpper(0x03C2 /* GREEK SMALL LETTER FINAL SIGMA */));
+    EXPECT_FALSE(CharUtils::isAsciiUpper(0x0410 /* CYRILLIC CAPITAL LETTER A */));
+    EXPECT_FALSE(CharUtils::isAsciiUpper(0x0430 /* CYRILLIC SMALL LETTER A */));
+    EXPECT_FALSE(CharUtils::isAsciiUpper(0x3042 /* HIRAGANA LETTER A */));
+    EXPECT_FALSE(CharUtils::isAsciiUpper(0x1F36A /* COOKIE */));
+}
+
+TEST(CharUtilsTest, TestToLowerCase) {
+    EXPECT_EQ('a', CharUtils::toLowerCase('A'));
+    EXPECT_EQ('z', CharUtils::toLowerCase('Z'));
+    EXPECT_EQ('a', CharUtils::toLowerCase('a'));
+    EXPECT_EQ('z', CharUtils::toLowerCase('z'));
+    EXPECT_EQ('@', CharUtils::toLowerCase('@'));
+    EXPECT_EQ(' ', CharUtils::toLowerCase(' '));
+    EXPECT_EQ(0x00E0 /* LATIN SMALL LETTER A WITH GRAVE */,
+            CharUtils::toLowerCase(0x00C0 /* LATIN CAPITAL LETTER A WITH GRAVE */));
+    EXPECT_EQ(0x00E0 /* LATIN SMALL LETTER A WITH GRAVE */,
+            CharUtils::toLowerCase(0x00E0 /* LATIN SMALL LETTER A WITH GRAVE */));
+    EXPECT_EQ(0x03C2 /* GREEK SMALL LETTER FINAL SIGMA */,
+            CharUtils::toLowerCase(0x03C2 /* GREEK SMALL LETTER FINAL SIGMA */));
+    EXPECT_EQ(0x0430 /* CYRILLIC SMALL LETTER A */,
+            CharUtils::toLowerCase(0x0410 /* CYRILLIC CAPITAL LETTER A */));
+    EXPECT_EQ(0x0430 /* CYRILLIC SMALL LETTER A */,
+            CharUtils::toLowerCase(0x0430 /* CYRILLIC SMALL LETTER A */));
+    EXPECT_EQ(0x3042 /* HIRAGANA LETTER A */,
+            CharUtils::toLowerCase(0x3042 /* HIRAGANA LETTER A */));
+    EXPECT_EQ(0x1F36A /* COOKIE */, CharUtils::toLowerCase(0x1F36A /* COOKIE */));
+}
+
+TEST(CharUtilsTest, TestToBaseLowerCase) {
+    EXPECT_EQ('a', CharUtils::toBaseLowerCase('A'));
+    EXPECT_EQ('z', CharUtils::toBaseLowerCase('Z'));
+    EXPECT_EQ('a', CharUtils::toBaseLowerCase('a'));
+    EXPECT_EQ('z', CharUtils::toBaseLowerCase('z'));
+    EXPECT_EQ('@', CharUtils::toBaseLowerCase('@'));
+    EXPECT_EQ(' ', CharUtils::toBaseLowerCase(' '));
+    EXPECT_EQ('a', CharUtils::toBaseLowerCase(0x00C0 /* LATIN CAPITAL LETTER A WITH GRAVE */));
+    EXPECT_EQ('a', CharUtils::toBaseLowerCase(0x00E0 /* LATIN SMALL LETTER A WITH GRAVE */));
+    EXPECT_EQ(0x03C2 /* GREEK SMALL LETTER FINAL SIGMA */,
+            CharUtils::toBaseLowerCase(0x03C2 /* GREEK SMALL LETTER FINAL SIGMA */));
+    EXPECT_EQ(0x0430 /* CYRILLIC SMALL LETTER A */,
+            CharUtils::toBaseLowerCase(0x0410 /* CYRILLIC CAPITAL LETTER A */));
+    EXPECT_EQ(0x0430 /* CYRILLIC SMALL LETTER A */,
+            CharUtils::toBaseLowerCase(0x0430 /* CYRILLIC SMALL LETTER A */));
+    EXPECT_EQ(0x3042 /* HIRAGANA LETTER A */,
+            CharUtils::toBaseLowerCase(0x3042 /* HIRAGANA LETTER A */));
+    EXPECT_EQ(0x1F36A /* COOKIE */, CharUtils::toBaseLowerCase(0x1F36A /* COOKIE */));
+}
+
+TEST(CharUtilsTest, TestToBaseCodePoint) {
+    EXPECT_EQ('A', CharUtils::toBaseCodePoint('A'));
+    EXPECT_EQ('Z', CharUtils::toBaseCodePoint('Z'));
+    EXPECT_EQ('a', CharUtils::toBaseCodePoint('a'));
+    EXPECT_EQ('z', CharUtils::toBaseCodePoint('z'));
+    EXPECT_EQ('@', CharUtils::toBaseCodePoint('@'));
+    EXPECT_EQ(' ', CharUtils::toBaseCodePoint(' '));
+    EXPECT_EQ('A', CharUtils::toBaseCodePoint(0x00C0 /* LATIN CAPITAL LETTER A WITH GRAVE */));
+    EXPECT_EQ('a', CharUtils::toBaseCodePoint(0x00E0 /* LATIN SMALL LETTER A WITH GRAVE */));
+    EXPECT_EQ(0x03C2 /* GREEK SMALL LETTER FINAL SIGMA */,
+            CharUtils::toBaseLowerCase(0x03C2 /* GREEK SMALL LETTER FINAL SIGMA */));
+    EXPECT_EQ(0x0410 /* CYRILLIC CAPITAL LETTER A */,
+            CharUtils::toBaseCodePoint(0x0410 /* CYRILLIC CAPITAL LETTER A */));
+    EXPECT_EQ(0x0430 /* CYRILLIC SMALL LETTER A */,
+            CharUtils::toBaseCodePoint(0x0430 /* CYRILLIC SMALL LETTER A */));
+    EXPECT_EQ(0x3042 /* HIRAGANA LETTER A */,
+            CharUtils::toBaseCodePoint(0x3042 /* HIRAGANA LETTER A */));
+    EXPECT_EQ(0x1F36A /* COOKIE */, CharUtils::toBaseCodePoint(0x1F36A /* COOKIE */));
+}
+
+TEST(CharUtilsTest, TestIsIntentionalOmissionCodePoint) {
+    EXPECT_TRUE(CharUtils::isIntentionalOmissionCodePoint('\''));
+    EXPECT_TRUE(CharUtils::isIntentionalOmissionCodePoint('-'));
+    EXPECT_FALSE(CharUtils::isIntentionalOmissionCodePoint('a'));
+    EXPECT_FALSE(CharUtils::isIntentionalOmissionCodePoint('?'));
+    EXPECT_FALSE(CharUtils::isIntentionalOmissionCodePoint('/'));
+}
+
+TEST(CharUtilsTest, TestIsInUnicodeSpace) {
+    EXPECT_FALSE(CharUtils::isInUnicodeSpace(NOT_A_CODE_POINT));
+    EXPECT_FALSE(CharUtils::isInUnicodeSpace(CODE_POINT_BEGINNING_OF_SENTENCE));
+    EXPECT_TRUE(CharUtils::isInUnicodeSpace('a'));
+    EXPECT_TRUE(CharUtils::isInUnicodeSpace(0x0410 /* CYRILLIC CAPITAL LETTER A */));
+    EXPECT_TRUE(CharUtils::isInUnicodeSpace(0x3042 /* HIRAGANA LETTER A */));
+    EXPECT_TRUE(CharUtils::isInUnicodeSpace(0x1F36A /* COOKIE */));
+}
+
+}  // namespace
+}  // namespace latinime
diff --git a/native/jni/tests/utils/int_array_view_test.cpp b/native/jni/tests/utils/int_array_view_test.cpp
index bd843ab..2fce633 100644
--- a/native/jni/tests/utils/int_array_view_test.cpp
+++ b/native/jni/tests/utils/int_array_view_test.cpp
@@ -18,6 +18,7 @@
 
 #include <gtest/gtest.h>
 
+#include <array>
 #include <vector>
 
 namespace latinime {
@@ -45,17 +46,157 @@
 
 TEST(IntArrayViewTest, TestConstructFromArray) {
     const size_t ARRAY_SIZE = 100;
-    int intArray[ARRAY_SIZE];
-    const auto intArrayView = IntArrayView::fromFixedSizeArray(intArray);
+    std::array<int, ARRAY_SIZE> intArray;
+    const auto intArrayView = IntArrayView::fromArray(intArray);
     EXPECT_EQ(ARRAY_SIZE, intArrayView.size());
 }
 
 TEST(IntArrayViewTest, TestConstructFromObject) {
     const int object = 10;
-    const auto intArrayView = IntArrayView::fromObject(&object);
-    EXPECT_EQ(1, intArrayView.size());
+    const auto intArrayView = IntArrayView::singleElementView(&object);
+    EXPECT_EQ(1u, intArrayView.size());
     EXPECT_EQ(object, intArrayView[0]);
 }
 
+TEST(IntArrayViewTest, TestContains) {
+    EXPECT_FALSE(IntArrayView().contains(0));
+    EXPECT_FALSE(IntArrayView().contains(1));
+
+    const std::vector<int> intVector = {3, 2, 1, 0, -1, -2};
+    IntArrayView intArrayView(intVector);
+    EXPECT_TRUE(intArrayView.contains(0));
+    EXPECT_TRUE(intArrayView.contains(3));
+    EXPECT_TRUE(intArrayView.contains(-2));
+    EXPECT_FALSE(intArrayView.contains(-3));
+    EXPECT_FALSE(intArrayView.limit(0).contains(3));
+}
+
+TEST(IntArrayViewTest, TestLimit) {
+    const std::vector<int> intVector = {3, 2, 1, 0, -1, -2};
+    IntArrayView intArrayView(intVector);
+
+    EXPECT_TRUE(intArrayView.limit(0).empty());
+    EXPECT_EQ(intArrayView.size(), intArrayView.limit(intArrayView.size()).size());
+    EXPECT_EQ(intArrayView.size(), intArrayView.limit(1000).size());
+
+    IntArrayView subView = intArrayView.limit(4);
+    EXPECT_EQ(4u, subView.size());
+    for (size_t i = 0; i < subView.size(); ++i) {
+        EXPECT_EQ(intVector[i], subView[i]);
+    }
+}
+
+TEST(IntArrayViewTest, TestSkip) {
+    const std::vector<int> intVector = {3, 2, 1, 0, -1, -2};
+    IntArrayView intArrayView(intVector);
+
+    EXPECT_TRUE(intArrayView.skip(intVector.size()).empty());
+    EXPECT_TRUE(intArrayView.skip(intVector.size() + 1).empty());
+    EXPECT_EQ(intArrayView.size(), intArrayView.skip(0).size());
+    EXPECT_EQ(intArrayView.size(), intArrayView.limit(1000).size());
+
+    static const size_t SKIP_COUNT = 2;
+    IntArrayView subView = intArrayView.skip(SKIP_COUNT);
+    EXPECT_EQ(intVector.size() - SKIP_COUNT, subView.size());
+    for (size_t i = 0; i < subView.size(); ++i) {
+        EXPECT_EQ(intVector[i + SKIP_COUNT], subView[i]);
+    }
+}
+
+TEST(IntArrayViewTest, TestCopyToArray) {
+    // "{{" to suppress warning.
+    std::array<int, 7> buffer = {{10, 20, 30, 40, 50, 60, 70}};
+    const std::vector<int> intVector = {3, 2, 1, 0, -1, -2};
+    IntArrayView intArrayView(intVector);
+    intArrayView.limit(0).copyToArray(&buffer, 0);
+    EXPECT_EQ(10, buffer[0]);
+    EXPECT_EQ(20, buffer[1]);
+    intArrayView.limit(1).copyToArray(&buffer, 0);
+    EXPECT_EQ(intVector[0], buffer[0]);
+    EXPECT_EQ(20, buffer[1]);
+    intArrayView.limit(1).copyToArray(&buffer, 1);
+    EXPECT_EQ(intVector[0], buffer[0]);
+    EXPECT_EQ(intVector[0], buffer[1]);
+    intArrayView.copyToArray(&buffer, 0);
+    for (size_t i = 0; i < intArrayView.size(); ++i) {
+        EXPECT_EQ(intVector[i], buffer[i]);
+    }
+    EXPECT_EQ(70, buffer[6]);
+}
+
+TEST(IntArrayViewTest, TestFirstOrDefault) {
+    const std::vector<int> intVector = {3, 2, 1, 0, -1, -2};
+    IntArrayView intArrayView(intVector);
+
+    EXPECT_EQ(3, intArrayView.firstOrDefault(10));
+    EXPECT_EQ(10, intArrayView.limit(0).firstOrDefault(10));
+    EXPECT_EQ(-10, intArrayView.limit(0).firstOrDefault(-10));
+    EXPECT_EQ(10, intArrayView.skip(6).firstOrDefault(10));
+}
+
+TEST(IntArrayViewTest, TestLastOrDefault) {
+    const std::vector<int> intVector = {3, 2, 1, 0, -1, -2};
+    IntArrayView intArrayView(intVector);
+
+    EXPECT_EQ(-2, intArrayView.lastOrDefault(10));
+    EXPECT_EQ(10, intArrayView.limit(0).lastOrDefault(10));
+    EXPECT_EQ(-10, intArrayView.limit(0).lastOrDefault(-10));
+    EXPECT_EQ(10, intArrayView.skip(6).lastOrDefault(10));
+}
+
+TEST(IntArrayViewTest, TestToVector) {
+    const std::vector<int> intVector = {3, 2, 1, 0, -1, -2};
+    IntArrayView intArrayView(intVector);
+    EXPECT_EQ(intVector, intArrayView.toVector());
+    EXPECT_EQ(std::vector<int>(), CodePointArrayView().toVector());
+}
+
+TEST(IntArrayViewTest, TestSplit) {
+    EXPECT_TRUE(IntArrayView().split(0, 0).empty());
+    {
+        const auto intArrayViews = IntArrayView().split(0, 1);
+        EXPECT_EQ(1u, intArrayViews.size());
+        EXPECT_TRUE(intArrayViews[0].empty());
+    }
+    {
+        const auto intArrayViews = IntArrayView().split(0, 100);
+        EXPECT_EQ(1u, intArrayViews.size());
+        EXPECT_TRUE(intArrayViews[0].empty());
+    }
+
+    const std::vector<int> intVector = {1, 2, 3, 3, 2, 3};
+    const IntArrayView intArrayView(intVector);
+    {
+        const auto intArrayViews = intArrayView.split(2);
+        EXPECT_EQ(3u, intArrayViews.size());
+        EXPECT_EQ(std::vector<int>({1}), intArrayViews[0].toVector());
+        EXPECT_EQ(std::vector<int>({3, 3}), intArrayViews[1].toVector());
+        EXPECT_EQ(std::vector<int>({3}), intArrayViews[2].toVector());
+    }
+    {
+        const auto intArrayViews = intArrayView.split(2, 2);
+        EXPECT_EQ(2u, intArrayViews.size());
+        EXPECT_EQ(std::vector<int>({1}), intArrayViews[0].toVector());
+        EXPECT_EQ(std::vector<int>({3, 3, 2, 3}), intArrayViews[1].toVector());
+    }
+    {
+        const auto intArrayViews = intArrayView.split(2, 1);
+        EXPECT_EQ(1u, intArrayViews.size());
+        EXPECT_EQ(intVector, intArrayViews[0].toVector());
+    }
+    {
+        const auto intArrayViews = intArrayView.split(2, 0);
+        EXPECT_EQ(0u, intArrayViews.size());
+    }
+    {
+        const auto intArrayViews = intArrayView.split(3);
+        EXPECT_EQ(4u, intArrayViews.size());
+        EXPECT_EQ(std::vector<int>({1, 2}), intArrayViews[0].toVector());
+        EXPECT_EQ(std::vector<int>(), intArrayViews[1].toVector());
+        EXPECT_EQ(std::vector<int>({2}), intArrayViews[2].toVector());
+        EXPECT_EQ(std::vector<int>(), intArrayViews[3].toVector());
+    }
+}
+
 }  // namespace
 }  // namespace latinime
diff --git a/native/jni/tests/utils/time_keeper_test.cpp b/native/jni/tests/utils/time_keeper_test.cpp
new file mode 100644
index 0000000..3f54b91
--- /dev/null
+++ b/native/jni/tests/utils/time_keeper_test.cpp
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "utils/time_keeper.h"
+
+#include <gtest/gtest.h>
+
+namespace latinime {
+namespace {
+
+TEST(TimeKeeperTest, TestTestMode) {
+    TimeKeeper::setCurrentTime();
+    const int startTime = TimeKeeper::peekCurrentTime();
+    static const int TEST_CURRENT_TIME = 100;
+    TimeKeeper::startTestModeWithForceCurrentTime(TEST_CURRENT_TIME);
+    EXPECT_EQ(TEST_CURRENT_TIME, TimeKeeper::peekCurrentTime());
+    TimeKeeper::setCurrentTime();
+    EXPECT_EQ(TEST_CURRENT_TIME, TimeKeeper::peekCurrentTime());
+    TimeKeeper::stopTestMode();
+    TimeKeeper::setCurrentTime();
+    EXPECT_LE(startTime, TimeKeeper::peekCurrentTime());
+}
+
+}  // namespace
+}  // namespace latinime
diff --git a/tests/Android.mk b/tests/Android.mk
index 5baebbd..0b54491 100644
--- a/tests/Android.mk
+++ b/tests/Android.mk
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-LOCAL_PATH:= $(call my-dir)
+LOCAL_PATH := $(call my-dir)
 include $(CLEAR_VARS)
 
 # We only want this apk build for tests.
@@ -24,6 +24,8 @@
 # Do not compress test data file
 LOCAL_AAPT_FLAGS += -0 .txt
 
+LOCAL_STATIC_JAVA_LIBRARIES := android-support-test mockito-target
+
 # Include all test java files.
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
 
diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml
index 4ca846b..c7a9e13 100644
--- a/tests/AndroidManifest.xml
+++ b/tests/AndroidManifest.xml
@@ -17,16 +17,17 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.android.inputmethod.latin.tests">
 
-    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" />
+    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="21" />
 
     <uses-permission android:name="android.permission.READ_CONTACTS" />
 
-    <application>
+    <application android:label="@string/app_name"
+        android:icon="@drawable/ic_app">
         <uses-library android:name="android.test.runner" />
         <!-- meta-data android:name="com.android.contacts.iconset" android:resource="@xml/iconset" /-->
     </application>
 
-    <instrumentation android:name="android.test.InstrumentationTestRunner"
+    <instrumentation android:name="android.support.test.runner.AndroidJUnitRunner"
         android:targetPackage="com.android.inputmethod.latin"
         android:label="LatinIME tests">
     </instrumentation>
diff --git a/tests/res/drawable-hdpi/ic_app.png b/tests/res/drawable-hdpi/ic_app.png
new file mode 100644
index 0000000..345c23d
--- /dev/null
+++ b/tests/res/drawable-hdpi/ic_app.png
Binary files differ
diff --git a/tests/res/values/donottranslate.xml b/tests/res/values/donottranslate.xml
index 263d0af..f269476 100644
--- a/tests/res/values/donottranslate.xml
+++ b/tests/res/values/donottranslate.xml
@@ -50,13 +50,15 @@
     <string name="multiple_labels_with_escape_surrounded_by_spaces">" \\abc , d\\ef , gh\\i "</string>
     <string name="multiple_labels_with_comma_and_escape">"ab\\\\,d\\\\\\,,g\\,i"</string>
     <string name="multiple_labels_with_comma_and_escape_surrounded_by_spaces">" ab\\\\ , d\\\\\\, , g\\,i "</string>
-    <string name="indirect_string">!text/multiple_chars</string>
-    <string name="indirect_string_with_literal">x,!text/multiple_chars,y</string>
-    <string name="indirect2_string">!text/indirect_string</string>
-    <string name="infinite_indirection">infinite,!text/infinite_indirection,loop</string>
-    <string name="upper_indirect_string">!TEXT/MULTIPLE_CHARS</string>
-    <string name="upper_indirect_string_with_literal">x,!TEXT/MULTIPLE_CHARS,y</string>
-    <string name="upper_indirect2_string">!TEXT/UPPER_INDIRECT_STRING</string>
-    <string name="upper_infinite_indirection">infinite,!TEXT/INFINITE_INDIRECTION,loop</string>
+    <string name="indirect_string">!string/multiple_chars</string>
+    <string name="indirect_string_with_literal">x,!string/multiple_chars,y</string>
+    <string name="indirect2_string">!string/indirect_string</string>
+    <string name="infinite_indirection">infinite,!string/infinite_indirection,loop</string>
+    <string name="upper_indirect_string">!STRING/MULTIPLE_CHARS</string>
+    <string name="upper_indirect_string_with_literal">x,!STRING/MULTIPLE_CHARS,y</string>
+    <string name="upper_indirect2_string">!STRING/UPPER_INDIRECT_STRING</string>
+    <string name="upper_infinite_indirection">infinite,!STRING/INFINITE_INDIRECTION,loop</string>
     <string name="keyspec_indirect_navigate_actions">!fixedColumnOrder!2,!text/keyspec_action_previous,!text/keyspec_action_next</string>
+    <string name="label_next_key">ActionNext</string>
+    <string name="label_previous_key">ActionPrevious</string>
 </resources>
diff --git a/tests/res/values/strings.xml b/tests/res/values/strings.xml
new file mode 100644
index 0000000..5cc48b6
--- /dev/null
+++ b/tests/res/values/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+<resources>
+     <string name="app_name" translatable="false">LatinIMETests</string>
+</resources>
diff --git a/tests/src/com/android/inputmethod/compat/LocaleSpanCompatUtilsTests.java b/tests/src/com/android/inputmethod/compat/LocaleSpanCompatUtilsTests.java
index 319302c..67e7646 100644
--- a/tests/src/com/android/inputmethod/compat/LocaleSpanCompatUtilsTests.java
+++ b/tests/src/com/android/inputmethod/compat/LocaleSpanCompatUtilsTests.java
@@ -20,7 +20,6 @@
 import android.os.Build;
 import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
-import android.text.Spannable;
 import android.text.SpannableString;
 import android.text.Spanned;
 import android.text.style.StyleSpan;
@@ -72,141 +71,141 @@
             final SpannableString text = new SpannableString("0123456789");
             LocaleSpanCompatUtils.updateLocaleSpan(text, 1, 5, Locale.JAPANESE);
             assertSpanCount(1, text);
-            assertLocaleSpan(text, 0, 1, 5, Locale.JAPANESE, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+            assertLocaleSpan(text, 0, 1, 5, Locale.JAPANESE, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
         }
 
         // Test if only LocaleSpans are updated.
         {
             final SpannableString text = new SpannableString("0123456789");
             final StyleSpan styleSpan = new StyleSpan(Typeface.BOLD);
-            text.setSpan(styleSpan, 0, 7, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+            text.setSpan(styleSpan, 0, 7, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
             LocaleSpanCompatUtils.updateLocaleSpan(text, 1, 5, Locale.JAPANESE);
             assertSpanCount(2, text);
             assertSpanEquals(styleSpan, text, 0);
-            assertLocaleSpan(text, 1, 1, 5, Locale.JAPANESE, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+            assertLocaleSpan(text, 1, 1, 5, Locale.JAPANESE, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
         }
 
         // Test if two jointed spans are merged into one span.
         {
             final SpannableString text = new SpannableString("0123456789");
             text.setSpan(LocaleSpanCompatUtils.newLocaleSpan(Locale.JAPANESE), 1, 3,
-                    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+                    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
             LocaleSpanCompatUtils.updateLocaleSpan(text, 3, 5, Locale.JAPANESE);
             assertSpanCount(1, text);
-            assertLocaleSpan(text, 0, 1, 5, Locale.JAPANESE, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+            assertLocaleSpan(text, 0, 1, 5, Locale.JAPANESE, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
         }
 
         // Test if two overlapped spans are merged into one span.
         {
             final SpannableString text = new SpannableString("0123456789");
             text.setSpan(LocaleSpanCompatUtils.newLocaleSpan(Locale.JAPANESE), 1, 4,
-                    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+                    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
             LocaleSpanCompatUtils.updateLocaleSpan(text, 3, 5, Locale.JAPANESE);
             assertSpanCount(1, text);
-            assertLocaleSpan(text, 0, 1, 5, Locale.JAPANESE, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+            assertLocaleSpan(text, 0, 1, 5, Locale.JAPANESE, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
         }
 
         // Test if three overlapped spans are merged into one span.
         {
             final SpannableString text = new SpannableString("0123456789");
             text.setSpan(LocaleSpanCompatUtils.newLocaleSpan(Locale.JAPANESE), 1, 4,
-                    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+                    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
             text.setSpan(LocaleSpanCompatUtils.newLocaleSpan(Locale.JAPANESE), 5, 6,
-                    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+                    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
             LocaleSpanCompatUtils.updateLocaleSpan(text, 2, 8, Locale.JAPANESE);
             assertSpanCount(1, text);
-            assertLocaleSpan(text, 0, 1, 8, Locale.JAPANESE, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+            assertLocaleSpan(text, 0, 1, 8, Locale.JAPANESE, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
         }
 
         // Test if disjoint spans remain disjoint.
         {
             final SpannableString text = new SpannableString("0123456789");
             text.setSpan(LocaleSpanCompatUtils.newLocaleSpan(Locale.JAPANESE), 1, 3,
-                    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+                    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
             text.setSpan(LocaleSpanCompatUtils.newLocaleSpan(Locale.JAPANESE), 5, 6,
-                    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+                    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
             LocaleSpanCompatUtils.updateLocaleSpan(text, 8, 9, Locale.JAPANESE);
             assertSpanCount(3, text);
-            assertLocaleSpan(text, 0, 1, 3, Locale.JAPANESE, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
-            assertLocaleSpan(text, 1, 5, 6, Locale.JAPANESE, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
-            assertLocaleSpan(text, 2, 8, 9, Locale.JAPANESE, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+            assertLocaleSpan(text, 0, 1, 3, Locale.JAPANESE, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+            assertLocaleSpan(text, 1, 5, 6, Locale.JAPANESE, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+            assertLocaleSpan(text, 2, 8, 9, Locale.JAPANESE, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
         }
 
         // Test if existing span flags are preserved during merge.
         {
             final SpannableString text = new SpannableString("0123456789");
             text.setSpan(LocaleSpanCompatUtils.newLocaleSpan(Locale.JAPANESE), 1, 5,
-                    Spannable.SPAN_INCLUSIVE_INCLUSIVE | Spannable.SPAN_INTERMEDIATE);
+                    Spanned.SPAN_INCLUSIVE_INCLUSIVE | Spanned.SPAN_INTERMEDIATE);
             LocaleSpanCompatUtils.updateLocaleSpan(text, 3, 4, Locale.JAPANESE);
             assertSpanCount(1, text);
             assertLocaleSpan(text, 0, 1, 5, Locale.JAPANESE,
-                    Spannable.SPAN_INCLUSIVE_INCLUSIVE | Spannable.SPAN_INTERMEDIATE);
+                    Spanned.SPAN_INCLUSIVE_INCLUSIVE | Spanned.SPAN_INTERMEDIATE);
         }
 
         // Test if existing span flags are preserved even when partially overlapped (leading edge).
         {
             final SpannableString text = new SpannableString("0123456789");
             text.setSpan(LocaleSpanCompatUtils.newLocaleSpan(Locale.JAPANESE), 1, 5,
-                    Spannable.SPAN_INCLUSIVE_INCLUSIVE | Spannable.SPAN_INTERMEDIATE);
+                    Spanned.SPAN_INCLUSIVE_INCLUSIVE | Spanned.SPAN_INTERMEDIATE);
             LocaleSpanCompatUtils.updateLocaleSpan(text, 3, 7, Locale.JAPANESE);
             assertSpanCount(1, text);
             assertLocaleSpan(text, 0, 1, 7, Locale.JAPANESE,
-                    Spannable.SPAN_INCLUSIVE_EXCLUSIVE | Spannable.SPAN_INTERMEDIATE);
+                    Spanned.SPAN_INCLUSIVE_EXCLUSIVE | Spanned.SPAN_INTERMEDIATE);
         }
 
         // Test if existing span flags are preserved even when partially overlapped (trailing edge).
         {
             final SpannableString text = new SpannableString("0123456789");
             text.setSpan(LocaleSpanCompatUtils.newLocaleSpan(Locale.JAPANESE), 3, 7,
-                    Spannable.SPAN_INCLUSIVE_INCLUSIVE | Spannable.SPAN_INTERMEDIATE);
+                    Spanned.SPAN_INCLUSIVE_INCLUSIVE | Spanned.SPAN_INTERMEDIATE);
             LocaleSpanCompatUtils.updateLocaleSpan(text, 1, 5, Locale.JAPANESE);
             assertSpanCount(1, text);
             assertLocaleSpan(text, 0, 1, 7, Locale.JAPANESE,
-                    Spannable.SPAN_EXCLUSIVE_INCLUSIVE | Spannable.SPAN_INTERMEDIATE);
+                    Spanned.SPAN_EXCLUSIVE_INCLUSIVE | Spanned.SPAN_INTERMEDIATE);
         }
 
         // Test if existing locale span will be removed when the locale doesn't match.
         {
             final SpannableString text = new SpannableString("0123456789");
             text.setSpan(LocaleSpanCompatUtils.newLocaleSpan(Locale.ENGLISH), 3, 5,
-                    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+                    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
             LocaleSpanCompatUtils.updateLocaleSpan(text, 1, 7, Locale.JAPANESE);
             assertSpanCount(1, text);
-            assertLocaleSpan(text, 0, 1, 7, Locale.JAPANESE, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+            assertLocaleSpan(text, 0, 1, 7, Locale.JAPANESE, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
         }
 
         // Test if existing locale span will be removed when the locale doesn't match. (case 2)
         {
             final SpannableString text = new SpannableString("0123456789");
             text.setSpan(LocaleSpanCompatUtils.newLocaleSpan(Locale.ENGLISH), 3, 7,
-                    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+                    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
             LocaleSpanCompatUtils.updateLocaleSpan(text, 5, 6, Locale.JAPANESE);
             assertSpanCount(3, text);
-            assertLocaleSpan(text, 0, 3, 5, Locale.ENGLISH, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
-            assertLocaleSpan(text, 1, 6, 7, Locale.ENGLISH, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
-            assertLocaleSpan(text, 2, 5, 6, Locale.JAPANESE, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+            assertLocaleSpan(text, 0, 3, 5, Locale.ENGLISH, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+            assertLocaleSpan(text, 1, 6, 7, Locale.ENGLISH, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+            assertLocaleSpan(text, 2, 5, 6, Locale.JAPANESE, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
         }
 
         // Test if existing locale span will be removed when the locale doesn't match. (case 3)
         {
             final SpannableString text = new SpannableString("0123456789");
             text.setSpan(LocaleSpanCompatUtils.newLocaleSpan(Locale.ENGLISH), 3, 7,
-                    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+                    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
             LocaleSpanCompatUtils.updateLocaleSpan(text, 2, 5, Locale.JAPANESE);
             assertSpanCount(2, text);
-            assertLocaleSpan(text, 0, 5, 7, Locale.ENGLISH, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
-            assertLocaleSpan(text, 1, 2, 5, Locale.JAPANESE, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+            assertLocaleSpan(text, 0, 5, 7, Locale.ENGLISH, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+            assertLocaleSpan(text, 1, 2, 5, Locale.JAPANESE, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
         }
 
         // Test if existing locale span will be removed when the locale doesn't match. (case 3)
         {
             final SpannableString text = new SpannableString("0123456789");
             text.setSpan(LocaleSpanCompatUtils.newLocaleSpan(Locale.ENGLISH), 3, 7,
-                    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+                    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
             LocaleSpanCompatUtils.updateLocaleSpan(text, 5, 8, Locale.JAPANESE);
             assertSpanCount(2, text);
-            assertLocaleSpan(text, 0, 3, 5, Locale.ENGLISH, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
-            assertLocaleSpan(text, 1, 5, 8, Locale.JAPANESE, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+            assertLocaleSpan(text, 0, 3, 5, Locale.ENGLISH, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+            assertLocaleSpan(text, 1, 5, 8, Locale.JAPANESE, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
         }
     }
 }
diff --git a/tests/src/com/android/inputmethod/compat/SuggestionSpanUtilsTest.java b/tests/src/com/android/inputmethod/compat/SuggestionSpanUtilsTest.java
new file mode 100644
index 0000000..daf412c
--- /dev/null
+++ b/tests/src/com/android/inputmethod/compat/SuggestionSpanUtilsTest.java
@@ -0,0 +1,212 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.compat;
+
+import android.annotation.TargetApi;
+import android.os.Build;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.text.Spanned;
+import android.text.TextUtils;
+import android.text.style.SuggestionSpan;
+
+import com.android.inputmethod.latin.SuggestedWords;
+import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Locale;
+
+@SmallTest
+public class SuggestionSpanUtilsTest extends AndroidTestCase {
+
+    /**
+     * Helper method to create a dummy {@link SuggestedWordInfo}.
+     *
+     * @param kindAndFlags the kind and flags to be used to create {@link SuggestedWordInfo}.
+     * @param word the word to be used to create {@link SuggestedWordInfo}.
+     * @return a new instance of {@link SuggestedWordInfo}.
+     */
+    private static SuggestedWordInfo createWordInfo(final String word, final int kindAndFlags) {
+        return new SuggestedWordInfo(word, "" /* prevWordsContext */, 1 /* score */, kindAndFlags,
+                null /* sourceDict */,
+                SuggestedWordInfo.NOT_AN_INDEX /* indexOfTouchPointOfSecondWord */,
+                SuggestedWordInfo.NOT_A_CONFIDENCE /* autoCommitFirstWordConfidence */);
+    }
+
+    private static void assertNotSuggestionSpan(final String expectedText,
+            final CharSequence actualText) {
+        assertTrue(TextUtils.equals(expectedText, actualText));
+        if (!(actualText instanceof Spanned)) {
+            return;
+        }
+        final Spanned spanned = (Spanned)actualText;
+        final SuggestionSpan[] suggestionSpans = spanned.getSpans(0, spanned.length(),
+                SuggestionSpan.class);
+        assertEquals(0, suggestionSpans.length);
+    }
+
+    private static void assertSuggestionSpan(final String expectedText,
+            final int reuiredSuggestionSpanFlags, final int requiredSpanFlags,
+            final String[] expectedSuggestions,
+            final CharSequence actualText) {
+        assertTrue(TextUtils.equals(expectedText, actualText));
+        assertTrue(actualText instanceof Spanned);
+        final Spanned spanned = (Spanned)actualText;
+        final SuggestionSpan[] suggestionSpans = spanned.getSpans(0, spanned.length(),
+                SuggestionSpan.class);
+        assertEquals(1, suggestionSpans.length);
+        final SuggestionSpan suggestionSpan = suggestionSpans[0];
+        if (reuiredSuggestionSpanFlags != 0) {
+            assertTrue((suggestionSpan.getFlags() & reuiredSuggestionSpanFlags) != 0);
+        }
+        if (requiredSpanFlags != 0) {
+            assertTrue((spanned.getSpanFlags(suggestionSpan) & requiredSpanFlags) != 0);
+        }
+        if (expectedSuggestions != null) {
+            final String[] actualSuggestions = suggestionSpan.getSuggestions();
+            assertEquals(expectedSuggestions.length, actualSuggestions.length);
+            for (int i = 0; i < expectedSuggestions.length; ++i) {
+                assertEquals(expectedSuggestions[i], actualSuggestions[i]);
+            }
+        }
+    }
+
+    @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1)
+    public void testGetTextWithAutoCorrectionIndicatorUnderline() {
+        final String ORIGINAL_TEXT = "Hey!";
+        final CharSequence text = SuggestionSpanUtils.getTextWithAutoCorrectionIndicatorUnderline(
+                getContext(), ORIGINAL_TEXT);
+        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
+            assertNotSuggestionSpan(ORIGINAL_TEXT, text);
+            return;
+        }
+
+        assertSuggestionSpan(ORIGINAL_TEXT,
+                SuggestionSpan.FLAG_AUTO_CORRECTION /* reuiredSuggestionSpanFlags */,
+                Spanned.SPAN_COMPOSING | Spanned.SPAN_EXCLUSIVE_EXCLUSIVE /* requiredSpanFlags */,
+                new String[]{}, text);
+    }
+
+    public void testGetTextWithSuggestionSpan() {
+        final SuggestedWordInfo prediction1 =
+                createWordInfo("Quality", SuggestedWordInfo.KIND_PREDICTION);
+        final SuggestedWordInfo prediction2 =
+                createWordInfo("Speed", SuggestedWordInfo.KIND_PREDICTION);
+        final SuggestedWordInfo prediction3 =
+                createWordInfo("Price", SuggestedWordInfo.KIND_PREDICTION);
+
+        final SuggestedWordInfo typed =
+                createWordInfo("Hey", SuggestedWordInfo.KIND_TYPED);
+
+        final SuggestedWordInfo[] corrections =
+                new SuggestedWordInfo[SuggestionSpan.SUGGESTIONS_MAX_SIZE * 2];
+        for (int i = 0; i < corrections.length; ++i) {
+            corrections[i] = createWordInfo("correction" + i, SuggestedWordInfo.KIND_CORRECTION);
+        }
+
+        // SuggestionSpan will not be attached when {@link SuggestedWords#INPUT_STYLE_PREDICTION}
+        // is specified.
+        {
+            final SuggestedWords predictedWords = new SuggestedWords(
+                    new ArrayList<>(Arrays.asList(prediction1, prediction2, prediction3)),
+                    null /* rawSuggestions */,
+                    null /* typedWord */,
+                    false /* typedWordValid */,
+                    false /* willAutoCorrect */,
+                    false /* isObsoleteSuggestions */,
+                    SuggestedWords.INPUT_STYLE_PREDICTION,
+                    SuggestedWords.NOT_A_SEQUENCE_NUMBER);
+            final String PICKED_WORD = prediction2.mWord;
+            assertNotSuggestionSpan(
+                    PICKED_WORD,
+                    SuggestionSpanUtils.getTextWithSuggestionSpan(getContext(), PICKED_WORD,
+                            predictedWords));
+        }
+
+        final ArrayList<SuggestedWordInfo> suggestedWordList = new ArrayList<>();
+        suggestedWordList.add(typed);
+        suggestedWordList.add(prediction1);
+        suggestedWordList.add(prediction2);
+        suggestedWordList.add(prediction3);
+        suggestedWordList.addAll(Arrays.asList(corrections));
+        final SuggestedWords typedAndCollectedWords = new SuggestedWords(
+                suggestedWordList,
+                null /* rawSuggestions */,
+                null /* typedWord */,
+                false /* typedWordValid */,
+                false /* willAutoCorrect */,
+                false /* isObsoleteSuggestions */,
+                SuggestedWords.INPUT_STYLE_TYPING,
+                SuggestedWords.NOT_A_SEQUENCE_NUMBER);
+
+        for (final SuggestedWordInfo pickedWord : suggestedWordList) {
+            final String PICKED_WORD = pickedWord.mWord;
+
+            final ArrayList<String> expectedSuggestions = new ArrayList<>();
+            for (SuggestedWordInfo suggestedWordInfo : suggestedWordList) {
+                if (expectedSuggestions.size() >= SuggestionSpan.SUGGESTIONS_MAX_SIZE) {
+                    break;
+                }
+                if (suggestedWordInfo.isKindOf(SuggestedWordInfo.KIND_PREDICTION)) {
+                    // Currently predictions are not filled into SuggestionSpan.
+                    continue;
+                }
+                final String suggestedWord = suggestedWordInfo.mWord;
+                if (TextUtils.equals(PICKED_WORD, suggestedWord)) {
+                    // Typed word itself is not added to SuggestionSpan.
+                    continue;
+                }
+                expectedSuggestions.add(suggestedWord);
+            }
+
+            assertSuggestionSpan(
+                    PICKED_WORD,
+                    0 /* reuiredSuggestionSpanFlags */,
+                    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE /* requiredSpanFlags */,
+                    expectedSuggestions.toArray(new String[expectedSuggestions.size()]),
+                    SuggestionSpanUtils.getTextWithSuggestionSpan(getContext(), PICKED_WORD,
+                            typedAndCollectedWords));
+        }
+    }
+
+    public void testFindFirstLocaleFromSuggestionSpans() {
+        final String[] suggestions = new String[] {"Quality", "Speed", "Price"};
+        final SuggestionSpan nullLocaleSpan = new SuggestionSpan((Locale)null, suggestions, 0);
+        final SuggestionSpan emptyLocaleSpan = new SuggestionSpan(new Locale(""), suggestions, 0);
+        final SuggestionSpan enUsLocaleSpan = new SuggestionSpan(Locale.US, suggestions, 0);
+        final SuggestionSpan jaJpLocaleSpan = new SuggestionSpan(Locale.JAPAN, suggestions, 0);
+
+        assertEquals(null, SuggestionSpanUtils.findFirstLocaleFromSuggestionSpans(
+                new SuggestionSpan[] {}));
+
+        assertEquals(null, SuggestionSpanUtils.findFirstLocaleFromSuggestionSpans(
+                new SuggestionSpan[] {emptyLocaleSpan}));
+
+        assertEquals(Locale.US, SuggestionSpanUtils.findFirstLocaleFromSuggestionSpans(
+                new SuggestionSpan[] {enUsLocaleSpan}));
+
+        assertEquals(Locale.US, SuggestionSpanUtils.findFirstLocaleFromSuggestionSpans(
+                new SuggestionSpan[] {nullLocaleSpan, enUsLocaleSpan}));
+
+        assertEquals(Locale.US, SuggestionSpanUtils.findFirstLocaleFromSuggestionSpans(
+                new SuggestionSpan[] {nullLocaleSpan, emptyLocaleSpan, enUsLocaleSpan}));
+
+        assertEquals(Locale.JAPAN, SuggestionSpanUtils.findFirstLocaleFromSuggestionSpans(
+                new SuggestionSpan[] {nullLocaleSpan, jaJpLocaleSpan, enUsLocaleSpan}));
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetActionLabelBase.java b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetActionLabelBase.java
deleted file mode 100644
index a25d6d6..0000000
--- a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetActionLabelBase.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.keyboard;
-
-import android.content.res.Resources;
-import android.text.InputType;
-import android.view.inputmethod.EditorInfo;
-import android.view.inputmethod.InputMethodSubtype;
-
-import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
-import com.android.inputmethod.latin.Constants;
-import com.android.inputmethod.latin.utils.RunInLocale;
-import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
-
-import java.util.Locale;
-
-abstract class KeyboardLayoutSetActionLabelBase extends KeyboardLayoutSetTestsBase {
-    public void testActionUnspecified() {
-        for (final InputMethodSubtype subtype : getAllSubtypesList()) {
-            final String tag = "unspecifiled "
-                    + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
-            doTestActionKeyIcon(tag, subtype, EditorInfo.IME_ACTION_UNSPECIFIED,
-                    KeyboardIconsSet.NAME_ENTER_KEY);
-        }
-    }
-
-    public void testActionNone() {
-        for (final InputMethodSubtype subtype : getAllSubtypesList()) {
-            final String tag = "none " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
-            doTestActionKeyIcon(tag, subtype, EditorInfo.IME_ACTION_NONE,
-                    KeyboardIconsSet.NAME_ENTER_KEY);
-        }
-    }
-
-    public void testActionSearch() {
-        for (final InputMethodSubtype subtype : getAllSubtypesList()) {
-            final String tag = "search " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
-            doTestActionKeyIcon(tag, subtype, EditorInfo.IME_ACTION_SEARCH,
-                    KeyboardIconsSet.NAME_SEARCH_KEY);
-        }
-    }
-
-    public abstract void testActionGo();
-    public abstract void testActionSend();
-    public abstract void testActionNext();
-    public abstract void testActionDone();
-    public abstract void testActionPrevious();
-
-    public void testActionCustom() {
-        for (final InputMethodSubtype subtype : getAllSubtypesList()) {
-            final String tag = "custom " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
-            final CharSequence customLabel = "customLabel";
-            final EditorInfo editorInfo = new EditorInfo();
-            editorInfo.imeOptions = EditorInfo.IME_ACTION_UNSPECIFIED;
-            editorInfo.actionLabel = customLabel;
-            doTestActionKeyLabel(tag, subtype, editorInfo, customLabel);
-        }
-    }
-
-    private static void doTestActionKey(final String tag, final KeyboardLayoutSet layoutSet,
-            final int elementId, final CharSequence label, final int iconId) {
-        final Keyboard keyboard = layoutSet.getKeyboard(elementId);
-        final Key enterKey = keyboard.getKey(Constants.CODE_ENTER);
-        assertNotNull(tag + " enter key on " + keyboard.mId, enterKey);
-        assertEquals(tag + " enter label " + enterKey, label, enterKey.getLabel());
-        assertEquals(tag + " enter icon " + enterKey, iconId, enterKey.getIconId());
-    }
-
-    protected void doTestActionKeyLabelResId(final String tag, final InputMethodSubtype subtype,
-            final int actionId, final int labelResId) {
-        final Locale labelLocale = subtype.getLocale().equals(SubtypeLocaleUtils.NO_LANGUAGE)
-                ? null : SubtypeLocaleUtils.getSubtypeLocale(subtype);
-        doTestActionKeyLabelResIdInLocale(tag, subtype, actionId, labelLocale, labelResId);
-    }
-
-    protected void doTestActionKeyLabelResIdInLocale(final String tag,
-            final InputMethodSubtype subtype, final int actionId, final Locale labelLocale,
-            final int labelResId) {
-        final EditorInfo editorInfo = new EditorInfo();
-        editorInfo.imeOptions = actionId;
-        final RunInLocale<String> job = new RunInLocale<String>() {
-            @Override
-            protected String job(final Resources res) {
-                return res.getString(labelResId);
-            }
-        };
-        final String label = job.runInLocale(getContext().getResources(), labelLocale);
-        doTestActionKeyLabel(tag, subtype, editorInfo, label);
-    }
-
-    protected void doTestActionKeyLabel(final String tag, final InputMethodSubtype subtype,
-            final EditorInfo editorInfo, final CharSequence label) {
-        // Test text layouts.
-        editorInfo.inputType = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_NORMAL;
-        final KeyboardLayoutSet layoutSet = createKeyboardLayoutSet(subtype, editorInfo);
-        doTestActionKey(tag, layoutSet, KeyboardId.ELEMENT_ALPHABET,
-                label, KeyboardIconsSet.ICON_UNDEFINED);
-        doTestActionKey(tag, layoutSet, KeyboardId.ELEMENT_SYMBOLS,
-                label, KeyboardIconsSet.ICON_UNDEFINED);
-        doTestActionKey(tag, layoutSet, KeyboardId.ELEMENT_SYMBOLS_SHIFTED,
-                label, KeyboardIconsSet.ICON_UNDEFINED);
-        // Test phone number layouts.
-        doTestActionKey(tag, layoutSet, KeyboardId.ELEMENT_PHONE,
-                label, KeyboardIconsSet.ICON_UNDEFINED);
-        doTestActionKey(tag, layoutSet, KeyboardId.ELEMENT_PHONE_SYMBOLS,
-                label, KeyboardIconsSet.ICON_UNDEFINED);
-        // Test normal number layout.
-        doTestActionKey(tag, layoutSet, KeyboardId.ELEMENT_NUMBER,
-                label, KeyboardIconsSet.ICON_UNDEFINED);
-        // Test number password layouts.
-        editorInfo.inputType =
-                InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD;
-        final KeyboardLayoutSet passwordSet = createKeyboardLayoutSet(subtype, editorInfo);
-        doTestActionKey(tag, passwordSet, KeyboardId.ELEMENT_NUMBER,
-                label, KeyboardIconsSet.ICON_UNDEFINED);
-    }
-
-    protected void doTestActionKeyIcon(final String tag, final InputMethodSubtype subtype,
-            final int actionId, final String iconName) {
-        final int iconId = KeyboardIconsSet.getIconId(iconName);
-        final EditorInfo editorInfo = new EditorInfo();
-        editorInfo.imeOptions = actionId;
-        // Test text layouts.
-        editorInfo.inputType = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_NORMAL;
-        final KeyboardLayoutSet layoutSet = createKeyboardLayoutSet(subtype, editorInfo);
-        doTestActionKey(tag, layoutSet, KeyboardId.ELEMENT_ALPHABET, null /* label */, iconId);
-        doTestActionKey(tag, layoutSet, KeyboardId.ELEMENT_SYMBOLS, null /* label */, iconId);
-        doTestActionKey(
-                tag, layoutSet, KeyboardId.ELEMENT_SYMBOLS_SHIFTED, null /* label */, iconId);
-        // Test phone number layouts.
-        doTestActionKey(tag, layoutSet, KeyboardId.ELEMENT_PHONE, null /* label */, iconId);
-        doTestActionKey(
-                tag, layoutSet, KeyboardId.ELEMENT_PHONE_SYMBOLS, null /* label */, iconId);
-        // Test normal number layout.
-        doTestActionKey(tag, layoutSet, KeyboardId.ELEMENT_NUMBER, null /* label */, iconId);
-        // Test number password layout.
-        editorInfo.inputType =
-                InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD;
-        final KeyboardLayoutSet passwordSet = createKeyboardLayoutSet(subtype, editorInfo);
-        doTestActionKey(tag, passwordSet, KeyboardId.ELEMENT_NUMBER, null /* label */, iconId);
-    }
-}
diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetActionLabelKlpTests.java b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetActionLabelKlpTests.java
deleted file mode 100644
index 322a344..0000000
--- a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetActionLabelKlpTests.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.keyboard;
-
-import android.content.res.Resources;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.inputmethod.EditorInfo;
-import android.view.inputmethod.InputMethodSubtype;
-
-import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
-import com.android.inputmethod.latin.R;
-import com.android.inputmethod.latin.RichInputMethodManager;
-import com.android.inputmethod.latin.utils.RunInLocale;
-import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
-
-import java.util.Locale;
-
-@MediumTest
-public class KeyboardLayoutSetActionLabelKlpTests extends KeyboardLayoutSetActionLabelBase {
-    @Override
-    protected int getKeyboardThemeForTests() {
-        return KeyboardTheme.THEME_ID_KLP;
-    }
-
-    @Override
-    public void testActionGo() {
-        for (final InputMethodSubtype subtype : getAllSubtypesList()) {
-            final String tag = "go " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
-            doTestActionKeyLabelResId(tag, subtype, EditorInfo.IME_ACTION_GO,
-                    R.string.label_go_key);
-        }
-    }
-
-    @Override
-    public void testActionSend() {
-        for (final InputMethodSubtype subtype : getAllSubtypesList()) {
-            final String tag = "send " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
-            doTestActionKeyLabelResId(tag, subtype, EditorInfo.IME_ACTION_SEND,
-                    R.string.label_send_key);
-        }
-    }
-
-    @Override
-    public void testActionNext() {
-        for (final InputMethodSubtype subtype : getAllSubtypesList()) {
-            final String tag = "next " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
-            doTestActionKeyLabelResId(tag, subtype, EditorInfo.IME_ACTION_NEXT,
-                    R.string.label_next_key);
-        }
-    }
-
-    @Override
-    public void testActionDone() {
-        for (final InputMethodSubtype subtype : getAllSubtypesList()) {
-            final String tag = "done " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
-            doTestActionKeyLabelResId(tag, subtype, EditorInfo.IME_ACTION_DONE,
-                    R.string.label_done_key);
-        }
-    }
-
-    @Override
-    public void testActionPrevious() {
-        for (final InputMethodSubtype subtype : getAllSubtypesList()) {
-            final String tag = "previous " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
-            doTestActionKeyLabelResId(tag, subtype, EditorInfo.IME_ACTION_PREVIOUS,
-                    R.string.label_previous_key);
-        }
-    }
-
-    // Working variable to simulate system locale changing.
-    private Locale mSystemLocale = Locale.getDefault();
-
-    private void doTestActionLabelInLocale(final InputMethodSubtype subtype,
-            final Locale labelLocale, final Locale systemLocale) {
-        // Simulate system locale changing, see {@link SystemBroadcastReceiver}.
-        if (!systemLocale.equals(mSystemLocale)) {
-            KeyboardLayoutSet.onSystemLocaleChanged();
-            mSystemLocale = systemLocale;
-        }
-        final String tag = "label=" + labelLocale + " system=" + systemLocale
-                + " " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
-        final RunInLocale<Void> job = new RunInLocale<Void>() {
-            @Override
-            public Void job(final Resources res) {
-                doTestActionKeyIcon(tag + " unspecified", subtype,
-                        EditorInfo.IME_ACTION_UNSPECIFIED, KeyboardIconsSet.NAME_ENTER_KEY);
-                doTestActionKeyIcon(tag + " none", subtype,
-                        EditorInfo.IME_ACTION_NONE, KeyboardIconsSet.NAME_ENTER_KEY);
-                doTestActionKeyLabelResIdInLocale(tag + " go", subtype,
-                        EditorInfo.IME_ACTION_GO, labelLocale, R.string.label_go_key);
-                doTestActionKeyIcon(tag + " search", subtype,
-                        EditorInfo.IME_ACTION_SEARCH, KeyboardIconsSet.NAME_SEARCH_KEY);
-                doTestActionKeyLabelResIdInLocale(tag + " send", subtype,
-                        EditorInfo.IME_ACTION_SEND, labelLocale, R.string.label_send_key);
-                doTestActionKeyLabelResIdInLocale(tag + " next", subtype,
-                        EditorInfo.IME_ACTION_NEXT, labelLocale, R.string.label_next_key);
-                doTestActionKeyLabelResIdInLocale(tag + " done", subtype,
-                        EditorInfo.IME_ACTION_DONE, labelLocale, R.string.label_done_key);
-                doTestActionKeyLabelResIdInLocale(tag + " previous", subtype,
-                        EditorInfo.IME_ACTION_PREVIOUS, labelLocale, R.string.label_previous_key);
-                return null;
-            }
-        };
-        job.runInLocale(getContext().getResources(), systemLocale);
-    }
-
-    public void testActionLabelInOtherLocale() {
-        final RichInputMethodManager richImm = RichInputMethodManager.getInstance();
-        final InputMethodSubtype italian = richImm.findSubtypeByLocaleAndKeyboardLayoutSet(
-                Locale.ITALIAN.toString(), SubtypeLocaleUtils.QWERTY);
-        // An action label should be displayed in subtype's locale regardless of the system locale.
-        doTestActionLabelInLocale(italian, Locale.ITALIAN, Locale.US);
-        doTestActionLabelInLocale(italian, Locale.ITALIAN, Locale.FRENCH);
-        doTestActionLabelInLocale(italian, Locale.ITALIAN, Locale.ITALIAN);
-        doTestActionLabelInLocale(italian, Locale.ITALIAN, Locale.JAPANESE);
-    }
-
-    public void testNoLanguageSubtypeActionLabel() {
-        final RichInputMethodManager richImm = RichInputMethodManager.getInstance();
-        final InputMethodSubtype noLanguage = richImm.findSubtypeByLocaleAndKeyboardLayoutSet(
-                SubtypeLocaleUtils.NO_LANGUAGE, SubtypeLocaleUtils.QWERTY);
-        // An action label of no language keyboard should be displayed in the system locale.
-        doTestActionLabelInLocale(noLanguage, Locale.US, Locale.US);
-        doTestActionLabelInLocale(noLanguage, Locale.FRENCH, Locale.FRENCH);
-        doTestActionLabelInLocale(noLanguage, Locale.ITALIAN, Locale.ITALIAN);
-        doTestActionLabelInLocale(noLanguage, Locale.JAPANESE, Locale.JAPANESE);
-    }
-}
diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetActionLabelLxxTests.java b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetActionLabelLxxTests.java
deleted file mode 100644
index 028b3e4..0000000
--- a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetActionLabelLxxTests.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.keyboard;
-
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.inputmethod.EditorInfo;
-import android.view.inputmethod.InputMethodSubtype;
-
-import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
-import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
-
-@MediumTest
-public class KeyboardLayoutSetActionLabelLxxTests extends KeyboardLayoutSetActionLabelBase {
-    @Override
-    protected int getKeyboardThemeForTests() {
-        return KeyboardTheme.THEME_ID_LXX_LIGHT;
-    }
-
-    @Override
-    public void testActionGo() {
-        for (final InputMethodSubtype subtype : getAllSubtypesList()) {
-            final String tag = "go " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
-            doTestActionKeyIcon(tag, subtype, EditorInfo.IME_ACTION_GO,
-                    KeyboardIconsSet.NAME_GO_KEY);
-        }
-    }
-
-    @Override
-    public void testActionSend() {
-        for (final InputMethodSubtype subtype : getAllSubtypesList()) {
-            final String tag = "send " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
-            doTestActionKeyIcon(tag, subtype, EditorInfo.IME_ACTION_SEND,
-                    KeyboardIconsSet.NAME_SEND_KEY);
-        }
-    }
-
-    @Override
-    public void testActionNext() {
-        for (final InputMethodSubtype subtype : getAllSubtypesList()) {
-            final String tag = "next " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
-            doTestActionKeyIcon(tag, subtype, EditorInfo.IME_ACTION_NEXT,
-                    KeyboardIconsSet.NAME_NEXT_KEY);
-        }
-    }
-
-    @Override
-    public void testActionDone() {
-        for (final InputMethodSubtype subtype : getAllSubtypesList()) {
-            final String tag = "done " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
-            doTestActionKeyIcon(tag, subtype, EditorInfo.IME_ACTION_DONE,
-                    KeyboardIconsSet.NAME_DONE_KEY);
-        }
-    }
-
-    @Override
-    public void testActionPrevious() {
-        for (final InputMethodSubtype subtype : getAllSubtypesList()) {
-            final String tag = "previous " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
-            doTestActionKeyIcon(tag, subtype, EditorInfo.IME_ACTION_PREVIOUS,
-                    KeyboardIconsSet.NAME_PREVIOUS_KEY);
-        }
-    }
-}
diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetNavigateMoreKeysBase.java b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetNavigateMoreKeysBase.java
index 8a55455..21333b0 100644
--- a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetNavigateMoreKeysBase.java
+++ b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetNavigateMoreKeysBase.java
@@ -22,9 +22,9 @@
 
 import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
 import com.android.inputmethod.keyboard.internal.MoreKeySpec;
-import com.android.inputmethod.latin.Constants;
 import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.RichInputMethodManager;
+import com.android.inputmethod.latin.common.Constants;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
 import java.util.Arrays;
diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetSubtypesCountTests.java b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetSubtypesCountTests.java
deleted file mode 100644
index 6b0652c..0000000
--- a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetSubtypesCountTests.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.keyboard;
-
-import android.test.suitebuilder.annotation.SmallTest;
-import android.view.inputmethod.InputMethodSubtype;
-
-import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
-
-import java.util.ArrayList;
-
-@SmallTest
-public class KeyboardLayoutSetSubtypesCountTests extends KeyboardLayoutSetTestsBase {
-    private static final int NUMBER_OF_SUBTYPES = 76;
-    private static final int NUMBER_OF_ASCII_CAPABLE_SUBTYPES = 45;
-    private static final int NUMBER_OF_PREDEFINED_ADDITIONAL_SUBTYPES = 2;
-
-    @Override
-    protected int getKeyboardThemeForTests() {
-        return KeyboardTheme.THEME_ID_KLP;
-    }
-
-    private static String toString(final ArrayList<InputMethodSubtype> subtypeList) {
-        final StringBuilder sb = new StringBuilder();
-        for (int index = 0; index < subtypeList.size(); index++) {
-            final InputMethodSubtype subtype = subtypeList.get(index);
-            sb.append(index + ": ");
-            sb.append(SubtypeLocaleUtils.getSubtypeNameForLogging(subtype));
-            sb.append("\n");
-        }
-        return sb.toString();
-    }
-
-    public final void testAllSubtypesCount() {
-        final ArrayList<InputMethodSubtype> allSubtypesList = getAllSubtypesList();
-        assertEquals(toString(allSubtypesList), NUMBER_OF_SUBTYPES, allSubtypesList.size());
-    }
-
-    public final void testAsciiCapableSubtypesCount() {
-        final ArrayList<InputMethodSubtype> asciiCapableSubtypesList =
-                getAsciiCapableSubtypesList();
-        assertEquals(toString(asciiCapableSubtypesList),
-                NUMBER_OF_ASCII_CAPABLE_SUBTYPES, asciiCapableSubtypesList.size());
-    }
-
-    public final void testAdditionalSubtypesCount() {
-        final ArrayList<InputMethodSubtype> additionalSubtypesList = getAdditionalSubtypesList();
-        assertEquals(toString(additionalSubtypesList),
-                NUMBER_OF_PREDEFINED_ADDITIONAL_SUBTYPES, additionalSubtypesList.size());
-    }
-}
diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java
index a002bbe..29787ac 100644
--- a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java
+++ b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutSetTestsBase.java
@@ -26,9 +26,11 @@
 
 import com.android.inputmethod.compat.InputMethodSubtypeCompatUtils;
 import com.android.inputmethod.keyboard.KeyboardLayoutSet.Builder;
-import com.android.inputmethod.latin.Constants;
 import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.RichInputMethodManager;
+import com.android.inputmethod.latin.RichInputMethodSubtype;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.settings.Settings;
 import com.android.inputmethod.latin.utils.AdditionalSubtypeUtils;
 import com.android.inputmethod.latin.utils.ResourceUtils;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
@@ -39,9 +41,27 @@
 public abstract class KeyboardLayoutSetTestsBase extends AndroidTestCase {
     // All input method subtypes of LatinIME.
     private final ArrayList<InputMethodSubtype> mAllSubtypesList = new ArrayList<>();
-    private final ArrayList<InputMethodSubtype> mAsciiCapableSubtypesList = new ArrayList<>();
-    private final ArrayList<InputMethodSubtype> mAdditionalSubtypesList = new ArrayList<>();
 
+    public interface SubtypeFilter {
+        public boolean accept(final InputMethodSubtype subtype);
+    }
+
+    public static final SubtypeFilter FILTER_IS_ASCII_CAPABLE = new SubtypeFilter() {
+        @Override
+        public boolean accept(InputMethodSubtype subtype) {
+            return InputMethodSubtypeCompatUtils.isAsciiCapable(subtype);
+        }
+    };
+
+    public static final SubtypeFilter FILTER_IS_ADDITIONAL_SUBTYPE = new SubtypeFilter() {
+        @Override
+        public boolean accept(InputMethodSubtype subtype) {
+            return AdditionalSubtypeUtils.isAdditionalSubtype(subtype);
+        }
+    };
+
+    private RichInputMethodManager mRichImm;
+    private InputMethodSubtype[] mSavedAdditionalSubtypes;
     private int mScreenMetrics;
 
     protected abstract int getKeyboardThemeForTests();
@@ -49,46 +69,57 @@
     @Override
     protected void setUp() throws Exception {
         super.setUp();
+        final Context context = getContext();
+        final Resources res = context.getResources();
+        RichInputMethodManager.init(context);
+        mRichImm = RichInputMethodManager.getInstance();
+
+        // Save and reset additional subtypes preference.
+        mSavedAdditionalSubtypes = mRichImm.getAdditionalSubtypes();
+        final InputMethodSubtype[] predefinedAdditionalSubtypes =
+                AdditionalSubtypeUtils.createAdditionalSubtypesArray(
+                        AdditionalSubtypeUtils.createPrefSubtypes(
+                                res.getStringArray(R.array.predefined_subtypes)));
+        mRichImm.setAdditionalInputMethodSubtypes(predefinedAdditionalSubtypes);
+
         final KeyboardTheme keyboardTheme = KeyboardTheme.searchKeyboardThemeById(
-                getKeyboardThemeForTests());
+                getKeyboardThemeForTests(), KeyboardTheme.KEYBOARD_THEMES);
         setContext(new ContextThemeWrapper(getContext(), keyboardTheme.mStyleId));
         KeyboardLayoutSet.onKeyboardThemeChanged();
 
-        final Context context = getContext();
-        mScreenMetrics = context.getResources().getInteger(R.integer.config_screen_metrics);
-        RichInputMethodManager.init(context);
-        final RichInputMethodManager richImm = RichInputMethodManager.getInstance();
+        mScreenMetrics = Settings.readScreenMetrics(res);
 
-        final InputMethodInfo imi = richImm.getInputMethodInfoOfThisIme();
+        final InputMethodInfo imi = mRichImm.getInputMethodInfoOfThisIme();
         final int subtypeCount = imi.getSubtypeCount();
         for (int index = 0; index < subtypeCount; index++) {
-            final InputMethodSubtype subtype = imi.getSubtypeAt(index);
-            if (AdditionalSubtypeUtils.isAdditionalSubtype(subtype)) {
-                mAdditionalSubtypesList.add(subtype);
-                continue;
-            }
-            mAllSubtypesList.add(subtype);
-            if (InputMethodSubtypeCompatUtils.isAsciiCapable(subtype)) {
-                mAsciiCapableSubtypesList.add(subtype);
-            }
+            mAllSubtypesList.add(imi.getSubtypeAt(index));
         }
     }
 
+    @Override
+    protected void tearDown() throws Exception {
+        // Restore additional subtypes preference.
+        mRichImm.setAdditionalInputMethodSubtypes(mSavedAdditionalSubtypes);
+        super.tearDown();
+    }
+
     protected final ArrayList<InputMethodSubtype> getAllSubtypesList() {
         return mAllSubtypesList;
     }
 
-    protected final ArrayList<InputMethodSubtype> getAsciiCapableSubtypesList() {
-        return mAsciiCapableSubtypesList;
-    }
-
-    protected final ArrayList<InputMethodSubtype> getAdditionalSubtypesList() {
-        return mAdditionalSubtypesList;
+    protected final ArrayList<InputMethodSubtype> getSubtypesFilteredBy(
+            final SubtypeFilter filter) {
+        final ArrayList<InputMethodSubtype> list = new ArrayList<>();
+        for (final InputMethodSubtype subtype : mAllSubtypesList) {
+            if (filter.accept(subtype)) {
+                list.add(subtype);
+            }
+        }
+        return list;
     }
 
     protected final boolean isPhone() {
-        return mScreenMetrics == Constants.SCREEN_METRICS_SMALL_PHONE
-                || mScreenMetrics == Constants.SCREEN_METRICS_LARGE_PHONE;
+        return Constants.isPhone(mScreenMetrics);
     }
 
     protected final InputMethodSubtype getSubtype(final Locale locale,
@@ -101,7 +132,7 @@
                 return subtype;
             }
         }
-        for (final InputMethodSubtype subtype : mAsciiCapableSubtypesList) {
+        for (final InputMethodSubtype subtype : getSubtypesFilteredBy(FILTER_IS_ASCII_CAPABLE)) {
             final Locale subtypeLocale = SubtypeLocaleUtils.getSubtypeLocale(subtype);
             if (locale.equals(subtypeLocale)) {
                 // Create additional subtype.
@@ -116,21 +147,22 @@
     protected KeyboardLayoutSet createKeyboardLayoutSet(final InputMethodSubtype subtype,
             final EditorInfo editorInfo) {
         return createKeyboardLayoutSet(subtype, editorInfo, false /* voiceInputKeyEnabled */,
-                false /* languageSwitchKeyEnabled */);
+                false /* languageSwitchKeyEnabled */, false /* splitLayoutEnabled */);
     }
 
     protected KeyboardLayoutSet createKeyboardLayoutSet(final InputMethodSubtype subtype,
             final EditorInfo editorInfo, final boolean voiceInputKeyEnabled,
-            final boolean languageSwitchKeyEnabled) {
+            final boolean languageSwitchKeyEnabled, final boolean splitLayoutEnabled) {
         final Context context = getContext();
         final Resources res = context.getResources();
         final int keyboardWidth = ResourceUtils.getDefaultKeyboardWidth(res);
         final int keyboardHeight = ResourceUtils.getDefaultKeyboardHeight(res);
         final Builder builder = new Builder(context, editorInfo);
         builder.setKeyboardGeometry(keyboardWidth, keyboardHeight)
-                .setSubtype(subtype)
+                .setSubtype(RichInputMethodSubtype.getRichInputMethodSubtype(subtype))
                 .setVoiceInputKeyEnabled(voiceInputKeyEnabled)
-                .setLanguageSwitchKeyEnabled(languageSwitchKeyEnabled);
+                .setLanguageSwitchKeyEnabled(languageSwitchKeyEnabled)
+                .setSplitLayoutEnabledByUser(splitLayoutEnabled);
         return builder.build();
     }
 }
diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutTest.java b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutTest.java
new file mode 100644
index 0000000..1e1f82f
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/KeyboardLayoutTest.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.inputmethod.keyboard;
+
+import static org.junit.Assert.assertEquals;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import java.util.ArrayList;
+
+import org.junit.Test;
+
+@SmallTest
+public class KeyboardLayoutTest {
+
+    @Test
+    public void testNewKeyboardLayout() {
+        KeyboardLayout keyboardLayout = KeyboardLayout
+                .newKeyboardLayout(new ArrayList<Key>(), 11, 12, 13, 14);
+
+        assertEquals(11, keyboardLayout.mMostCommonKeyWidth);
+        assertEquals(12, keyboardLayout.mMostCommonKeyHeight);
+        assertEquals(13, keyboardLayout.mKeyboardWidth);
+        assertEquals(14, keyboardLayout.mKeyboardHeight);
+
+        assertEquals(0, keyboardLayout.getKeyCodes().length);
+        assertEquals(0, keyboardLayout.getKeyWidths().length);
+        assertEquals(0, keyboardLayout.getKeyHeights().length);
+        assertEquals(0, keyboardLayout.getKeyXCoordinates().length);
+        assertEquals(0, keyboardLayout.getKeyYCoordinates().length);
+
+        Key key1 = new Key("label1", 101, 102, "101", "101hint", 103, 104, 105, 106, 1100, 1101,
+                10, 10);
+        Key key2 = new Key("label2", 201, 103, "201", "201hint", 203, 204, 205, 206, 2100, 2101,
+                10, 10);
+
+        ArrayList<Key> sortedKeys = new ArrayList<>(2);
+        sortedKeys.add(key1);
+        sortedKeys.add(key2);
+        keyboardLayout = KeyboardLayout.newKeyboardLayout(sortedKeys, 11, 12, 13, 14);
+        assertEquals(2, keyboardLayout.getKeyCodes().length);
+        assertEquals(2, keyboardLayout.getKeyWidths().length);
+        assertEquals(2, keyboardLayout.getKeyHeights().length);
+        assertEquals(2, keyboardLayout.getKeyXCoordinates().length);
+        assertEquals(2, keyboardLayout.getKeyYCoordinates().length);
+
+        assertEquals(102, keyboardLayout.getKeyCodes()[0]);
+        // xCo + horizontalGap/2
+        assertEquals(105 + 5, keyboardLayout.getKeyXCoordinates()[0]);
+        assertEquals(106, keyboardLayout.getKeyYCoordinates()[0]);
+        // width - horizontalGap
+        assertEquals(1100 - 10, keyboardLayout.getKeyWidths()[0]);
+        // height - verticalGap
+        assertEquals(1101 - 10, keyboardLayout.getKeyHeights()[0]);
+
+        assertEquals(103, keyboardLayout.getKeyCodes()[1]);
+        // xCo + horizontalGap/2
+        assertEquals(205 + 5, keyboardLayout.getKeyXCoordinates()[1]);
+        assertEquals(206, keyboardLayout.getKeyYCoordinates()[1]);
+        // width - horizontalGap
+        assertEquals(2100 - 10, keyboardLayout.getKeyWidths()[1]);
+        // height - verticalGap
+        assertEquals(2101 - 10, keyboardLayout.getKeyHeights()[1]);
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/KeyboardThemeTests.java b/tests/src/com/android/inputmethod/keyboard/KeyboardThemeTests.java
index c20954f..33e88c1 100644
--- a/tests/src/com/android/inputmethod/keyboard/KeyboardThemeTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/KeyboardThemeTests.java
@@ -16,18 +16,20 @@
 
 package com.android.inputmethod.keyboard;
 
-import static com.android.inputmethod.compat.BuildCompatUtils.VERSION_CODES_LXX;
 import static com.android.inputmethod.keyboard.KeyboardTheme.THEME_ID_ICS;
 import static com.android.inputmethod.keyboard.KeyboardTheme.THEME_ID_KLP;
 import static com.android.inputmethod.keyboard.KeyboardTheme.THEME_ID_LXX_DARK;
 import static com.android.inputmethod.keyboard.KeyboardTheme.THEME_ID_LXX_LIGHT;
 
 import android.content.SharedPreferences;
+import android.os.Build;
 import android.os.Build.VERSION_CODES;
 import android.preference.PreferenceManager;
 import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
 
+import java.util.Arrays;
+
 @SmallTest
 public class KeyboardThemeTests extends AndroidTestCase {
     private SharedPreferences mPrefs;
@@ -77,7 +79,9 @@
     }
 
     private void assertKeyboardTheme(final int sdkVersion, final int expectedThemeId) {
-        assertEquals(expectedThemeId, KeyboardTheme.getKeyboardTheme(mPrefs, sdkVersion).mThemeId);
+        final KeyboardTheme actualTheme = KeyboardTheme.getKeyboardTheme(
+                mPrefs, sdkVersion, KeyboardTheme.KEYBOARD_THEMES);
+        assertEquals(expectedThemeId, actualTheme.mThemeId);
     }
 
     /*
@@ -127,7 +131,7 @@
     }
 
     public void testKeyboardThemePreferenceOnLxx() {
-        assertKeyboardThemePreferenceOnLxx(VERSION_CODES_LXX);
+        assertKeyboardThemePreferenceOnLxx(Build.VERSION_CODES.LOLLIPOP);
     }
 
     /*
@@ -139,8 +143,8 @@
         final String oldPrefKey = KeyboardTheme.KLP_KEYBOARD_THEME_KEY;
         setKeyboardThemePreference(oldPrefKey, previousThemeId);
 
-        final KeyboardTheme defaultTheme =
-                KeyboardTheme.getDefaultKeyboardTheme(mPrefs, sdkVersion);
+        final KeyboardTheme defaultTheme = KeyboardTheme.getDefaultKeyboardTheme(
+                mPrefs, sdkVersion, KeyboardTheme.KEYBOARD_THEMES);
 
         assertNotNull(defaultTheme);
         assertEquals(expectedThemeId, defaultTheme.mThemeId);
@@ -180,7 +184,7 @@
     }
 
     public void testDefaultKeyboardThemeOnLxx() {
-        assertDefaultKeyboardThemeOnLxx(VERSION_CODES_LXX);
+        assertDefaultKeyboardThemeOnLxx(Build.VERSION_CODES.LOLLIPOP);
     }
 
     /*
@@ -194,7 +198,8 @@
         // Clean up new keyboard theme preference to simulate "upgrade to LXX keyboard".
         setKeyboardThemePreference(KeyboardTheme.LXX_KEYBOARD_THEME_KEY, THEME_ID_NULL);
 
-        final KeyboardTheme theme = KeyboardTheme.getKeyboardTheme(mPrefs, sdkVersion);
+        final KeyboardTheme theme = KeyboardTheme.getKeyboardTheme(
+                mPrefs, sdkVersion, KeyboardTheme.KEYBOARD_THEMES);
 
         assertNotNull(theme);
         assertEquals(expectedThemeId, theme.mThemeId);
@@ -246,7 +251,7 @@
 
     // Upgrading keyboard on L.
     public void testUpgradeKeyboardToLxxOnLxx() {
-        assertUpgradeKeyboardToLxxOnLxx(VERSION_CODES_LXX);
+        assertUpgradeKeyboardToLxxOnLxx(Build.VERSION_CODES.LOLLIPOP);
     }
 
     /*
@@ -299,7 +304,7 @@
 
     private void assertUpgradePlatformToLxxFrom(final int oldSdkVersion) {
         // Forced to switch to LXX theme.
-        final int newSdkVersion = VERSION_CODES_LXX;
+        final int newSdkVersion = Build.VERSION_CODES.LOLLIPOP;
         assertUpgradePlatformFromTo(
                 oldSdkVersion, newSdkVersion, THEME_ID_NULL, THEME_ID_LXX_LIGHT);
         assertUpgradePlatformFromTo(
@@ -324,8 +329,8 @@
 
     // Update platform from L to L.
     public void testUpgradePlatformToLxxFromLxx() {
-        final int oldSdkVersion = VERSION_CODES_LXX;
-        final int newSdkVersion = VERSION_CODES_LXX;
+        final int oldSdkVersion = Build.VERSION_CODES.LOLLIPOP;
+        final int newSdkVersion = Build.VERSION_CODES.LOLLIPOP;
         assertUpgradePlatformFromTo(
                 oldSdkVersion, newSdkVersion, THEME_ID_NULL, THEME_ID_LXX_LIGHT);
         assertUpgradePlatformFromTo(
@@ -341,4 +346,86 @@
         assertUpgradePlatformFromTo(
                 oldSdkVersion, newSdkVersion, THEME_ID_ILLEGAL, THEME_ID_LXX_LIGHT);
     }
+
+    /*
+     * Test that KeyboardTheme array should be sorted by descending order of
+     * {@link KeyboardTheme#mMinApiVersion}.
+     */
+    private static void assertSortedKeyboardThemeArray(final KeyboardTheme[] array) {
+        assertNotNull(array);
+        final int length = array.length;
+        assertTrue("array length=" + length, length > 0);
+        for (int index = 0; index < length - 1; index++) {
+            final KeyboardTheme theme = array[index];
+            final KeyboardTheme nextTheme = array[index + 1];
+            assertTrue("sorted MinApiVersion: "
+                    + theme.mThemeName + ": minApiVersion=" + theme.mMinApiVersion,
+                    theme.mMinApiVersion >= nextTheme.mMinApiVersion);
+        }
+    }
+
+    public void testSortedKeyboardTheme() {
+        assertSortedKeyboardThemeArray(KeyboardTheme.KEYBOARD_THEMES);
+    }
+
+    public void testSortedAvailableKeyboardTheme() {
+        assertSortedKeyboardThemeArray(KeyboardTheme.getAvailableThemeArray(getContext()));
+    }
+
+    /*
+     * Test for missing selected theme.
+     */
+    private static KeyboardTheme[] LIMITED_THEMES = {
+        KeyboardTheme.searchKeyboardThemeById(THEME_ID_ICS, KeyboardTheme.KEYBOARD_THEMES),
+        KeyboardTheme.searchKeyboardThemeById(THEME_ID_KLP, KeyboardTheme.KEYBOARD_THEMES)
+    };
+    static {
+        Arrays.sort(LIMITED_THEMES);
+        assertSortedKeyboardThemeArray(LIMITED_THEMES);
+    }
+
+    public void testMissingSelectedThemeIcs() {
+        // Clean up preferences.
+        setKeyboardThemePreference(KeyboardTheme.KLP_KEYBOARD_THEME_KEY, THEME_ID_NULL);
+        setKeyboardThemePreference(KeyboardTheme.LXX_KEYBOARD_THEME_KEY, THEME_ID_NULL);
+
+        final int sdkVersion = VERSION_CODES.ICE_CREAM_SANDWICH;
+        final String oldPrefKey = KeyboardTheme.getPreferenceKey(sdkVersion);
+        setKeyboardThemePreference(oldPrefKey, THEME_ID_LXX_LIGHT);
+
+        final KeyboardTheme actualTheme = KeyboardTheme.getKeyboardTheme(
+                mPrefs, sdkVersion, LIMITED_THEMES);
+        // LXX_LIGHT is missing, fall-back to KLP.
+        assertEquals(THEME_ID_KLP, actualTheme.mThemeId);
+    }
+
+    public void testMissingSelectedThemeKlp() {
+        // Clean up preferences.
+        setKeyboardThemePreference(KeyboardTheme.KLP_KEYBOARD_THEME_KEY, THEME_ID_NULL);
+        setKeyboardThemePreference(KeyboardTheme.LXX_KEYBOARD_THEME_KEY, THEME_ID_NULL);
+
+        final int sdkVersion = VERSION_CODES.KITKAT;
+        final String oldPrefKey = KeyboardTheme.getPreferenceKey(sdkVersion);
+        setKeyboardThemePreference(oldPrefKey, THEME_ID_LXX_LIGHT);
+
+        final KeyboardTheme actualTheme = KeyboardTheme.getKeyboardTheme(
+                mPrefs, sdkVersion, LIMITED_THEMES);
+        // LXX_LIGHT is missing, fall-back to KLP.
+        assertEquals(THEME_ID_KLP, actualTheme.mThemeId);
+    }
+
+    public void testMissingSelectedThemeLxx() {
+        // Clean up preferences.
+        setKeyboardThemePreference(KeyboardTheme.KLP_KEYBOARD_THEME_KEY, THEME_ID_NULL);
+        setKeyboardThemePreference(KeyboardTheme.LXX_KEYBOARD_THEME_KEY, THEME_ID_NULL);
+
+        final int sdkVersion = Build.VERSION_CODES.LOLLIPOP;
+        final String oldPrefKey = KeyboardTheme.getPreferenceKey(sdkVersion);
+        setKeyboardThemePreference(oldPrefKey, THEME_ID_LXX_DARK);
+
+        final KeyboardTheme actualTheme = KeyboardTheme.getKeyboardTheme(
+                mPrefs, sdkVersion, LIMITED_THEMES);
+        // LXX_DARK is missing, fall-back to KLP.
+        assertEquals(THEME_ID_KLP, actualTheme.mThemeId);
+    }
 }
diff --git a/tests/src/com/android/inputmethod/keyboard/action/ActionTestsBase.java b/tests/src/com/android/inputmethod/keyboard/action/ActionTestsBase.java
new file mode 100644
index 0000000..1ea68e4
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/action/ActionTestsBase.java
@@ -0,0 +1,115 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.action;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.text.InputType;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.keyboard.Key;
+import com.android.inputmethod.keyboard.Keyboard;
+import com.android.inputmethod.keyboard.KeyboardId;
+import com.android.inputmethod.keyboard.KeyboardLayoutSet;
+import com.android.inputmethod.keyboard.KeyboardLayoutSetTestsBase;
+import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyVisual;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.LocaleUtils;
+import com.android.inputmethod.latin.utils.RunInLocale;
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+import java.util.Locale;
+
+abstract class ActionTestsBase extends KeyboardLayoutSetTestsBase {
+    static class ExpectedActionKey {
+        static ExpectedActionKey newIconKey(final String iconName) {
+            final int iconId = KeyboardIconsSet.getIconId(iconName);
+            return new ExpectedActionKey(ExpectedKeyVisual.newInstance(iconId));
+        }
+
+        static ExpectedActionKey newLabelKey(final String label) {
+            return new ExpectedActionKey(ExpectedKeyVisual.newInstance(label));
+        }
+
+        static ExpectedActionKey newLabelKey(final int labelResId,
+                final Locale labelLocale, final Context context) {
+            final RunInLocale<String> getString = new RunInLocale<String>() {
+                @Override
+                protected String job(final Resources res) {
+                    return res.getString(labelResId);
+                }
+            };
+            return newLabelKey(getString.runInLocale(context.getResources(), labelLocale));
+        }
+
+        private final ExpectedKeyVisual mVisual;
+
+        private ExpectedActionKey(final ExpectedKeyVisual visual) {
+            mVisual = visual;
+        }
+
+        public int getIconId() { return mVisual.getIconId(); }
+
+        public String getLabel() { return mVisual.getLabel(); }
+    }
+
+    protected static Locale getLabelLocale(final InputMethodSubtype subtype) {
+        final String localeString = subtype.getLocale();
+        if (localeString.equals(SubtypeLocaleUtils.NO_LANGUAGE)) {
+            return null;
+        }
+        return LocaleUtils.constructLocaleFromString(localeString);
+    }
+
+    private static void assertActionKey(final String tag, final KeyboardLayoutSet layoutSet,
+            final int elementId, final ExpectedActionKey expectedKey) {
+        final Keyboard keyboard = layoutSet.getKeyboard(elementId);
+        final Key actualKey = keyboard.getKey(Constants.CODE_ENTER);
+        assertNotNull(tag + " enter key on " + keyboard.mId, actualKey);
+        assertEquals(tag + " label " + expectedKey, expectedKey.getLabel(), actualKey.getLabel());
+        assertEquals(tag + " icon " + expectedKey, expectedKey.getIconId(), actualKey.getIconId());
+    }
+
+    protected void doTestActionKey(final String tag, final InputMethodSubtype subtype,
+            final int actionId, final ExpectedActionKey expectedKey) {
+        final EditorInfo editorInfo = new EditorInfo();
+        editorInfo.imeOptions = actionId;
+        doTestActionKey(tag, subtype, editorInfo, expectedKey);
+    }
+
+    protected void doTestActionKey(final String tag, final InputMethodSubtype subtype,
+            final EditorInfo editorInfo, final ExpectedActionKey expectedKey) {
+        // Test text layouts.
+        editorInfo.inputType = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_NORMAL;
+        final KeyboardLayoutSet layoutSet = createKeyboardLayoutSet(subtype, editorInfo);
+        assertActionKey(tag, layoutSet, KeyboardId.ELEMENT_ALPHABET, expectedKey);
+        assertActionKey(tag, layoutSet, KeyboardId.ELEMENT_SYMBOLS, expectedKey);
+        assertActionKey(tag, layoutSet, KeyboardId.ELEMENT_SYMBOLS_SHIFTED, expectedKey);
+        // Test phone number layouts.
+        assertActionKey(tag, layoutSet, KeyboardId.ELEMENT_PHONE, expectedKey);
+        assertActionKey(tag, layoutSet, KeyboardId.ELEMENT_PHONE_SYMBOLS, expectedKey);
+        // Test normal number layout.
+        assertActionKey(tag, layoutSet, KeyboardId.ELEMENT_NUMBER, expectedKey);
+        // Test number password layout.
+        editorInfo.inputType =
+                InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD;
+        final KeyboardLayoutSet passwordSet = createKeyboardLayoutSet(subtype, editorInfo);
+        assertActionKey(tag, passwordSet, KeyboardId.ELEMENT_NUMBER, expectedKey);
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/action/KlpActionCustomTests.java b/tests/src/com/android/inputmethod/keyboard/action/KlpActionCustomTests.java
new file mode 100644
index 0000000..cb1c6ad
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/action/KlpActionCustomTests.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.action;
+
+import android.test.suitebuilder.annotation.LargeTest;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+@LargeTest
+public class KlpActionCustomTests extends KlpActionTestsBase {
+    public void testActionCustom() {
+        for (final InputMethodSubtype subtype : mSubtypesWhoseNameIsDisplayedInItsLocale) {
+            final String tag = "custom " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
+            final EditorInfo editorInfo = new EditorInfo();
+            editorInfo.imeOptions = EditorInfo.IME_ACTION_UNSPECIFIED;
+            editorInfo.actionLabel = "customLabel";
+            final ExpectedActionKey expectedKey = ExpectedActionKey.newLabelKey("customLabel");
+            doTestActionKey(tag, subtype, editorInfo, expectedKey);
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/action/KlpActionDoneTests.java b/tests/src/com/android/inputmethod/keyboard/action/KlpActionDoneTests.java
new file mode 100644
index 0000000..e0a87a7
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/action/KlpActionDoneTests.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.action;
+
+import android.test.suitebuilder.annotation.LargeTest;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+@LargeTest
+public class KlpActionDoneTests extends KlpActionTestsBase {
+    public void testActionDone() {
+        for (final InputMethodSubtype subtype : mSubtypesWhoseNameIsDisplayedInItsLocale) {
+            final String tag = "done " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
+            final ExpectedActionKey expectedKey = ExpectedActionKey.newLabelKey(
+                    R.string.label_done_key, getLabelLocale(subtype), getContext());
+            doTestActionKey(tag, subtype, EditorInfo.IME_ACTION_DONE, expectedKey);
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/action/KlpActionGoTests.java b/tests/src/com/android/inputmethod/keyboard/action/KlpActionGoTests.java
new file mode 100644
index 0000000..865b598
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/action/KlpActionGoTests.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.action;
+
+import android.test.suitebuilder.annotation.LargeTest;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+@LargeTest
+public class KlpActionGoTests extends KlpActionTestsBase {
+    public void testActionGo() {
+        for (final InputMethodSubtype subtype : mSubtypesWhoseNameIsDisplayedInItsLocale) {
+            final String tag = "go " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
+            final ExpectedActionKey expectedKey = ExpectedActionKey.newLabelKey(
+                    R.string.label_go_key, getLabelLocale(subtype), getContext());
+            doTestActionKey(tag, subtype, EditorInfo.IME_ACTION_GO, expectedKey);
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/action/KlpActionLabelTests.java b/tests/src/com/android/inputmethod/keyboard/action/KlpActionLabelTests.java
new file mode 100644
index 0000000..07c604e
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/action/KlpActionLabelTests.java
@@ -0,0 +1,180 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.action;
+
+import android.content.res.Resources;
+import android.test.suitebuilder.annotation.MediumTest;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.keyboard.KeyboardLayoutSet;
+import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
+import com.android.inputmethod.keyboard.internal.KeyboardTextsSet;
+import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.RichInputMethodManager;
+import com.android.inputmethod.latin.utils.RunInLocale;
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+import java.util.Locale;
+
+@MediumTest
+public class KlpActionLabelTests extends KlpActionTestsBase {
+    void doTestActionKeys(final InputMethodSubtype subtype, final String tag,
+            final ExpectedActionKey unspecifiedKey, final ExpectedActionKey noneKey,
+            final ExpectedActionKey goKey, final ExpectedActionKey searchKey,
+            final ExpectedActionKey sendKey, final ExpectedActionKey nextKey,
+            final ExpectedActionKey doneKey, final ExpectedActionKey previousKey) {
+        doTestActionKey(
+                tag + " unspecified", subtype, EditorInfo.IME_ACTION_UNSPECIFIED, unspecifiedKey);
+        doTestActionKey(tag + " none", subtype, EditorInfo.IME_ACTION_NONE, noneKey);
+        doTestActionKey(tag + " go", subtype, EditorInfo.IME_ACTION_GO, goKey);
+        doTestActionKey(tag + " search", subtype, EditorInfo.IME_ACTION_SEARCH, searchKey);
+        doTestActionKey(tag + " send", subtype, EditorInfo.IME_ACTION_SEND, sendKey);
+        doTestActionKey(tag + " next", subtype, EditorInfo.IME_ACTION_NEXT, nextKey);
+        doTestActionKey(tag + " done", subtype, EditorInfo.IME_ACTION_DONE, doneKey);
+        doTestActionKey(tag + " previous", subtype, EditorInfo.IME_ACTION_PREVIOUS, previousKey);
+    }
+
+    // Working variable to simulate system locale changing.
+    private Locale mSystemLocale = Locale.getDefault();
+
+    private void doTestActionKeysInLocaleWithStringResources(final InputMethodSubtype subtype,
+            final Locale labelLocale, final Locale systemLocale) {
+        // Simulate system locale changing, see {@link SystemBroadcastReceiver}.
+        if (!systemLocale.equals(mSystemLocale)) {
+            KeyboardLayoutSet.onSystemLocaleChanged();
+            mSystemLocale = systemLocale;
+        }
+        final ExpectedActionKey enterKey = ExpectedActionKey.newIconKey(
+                KeyboardIconsSet.NAME_ENTER_KEY);
+        final ExpectedActionKey goKey = ExpectedActionKey.newLabelKey(
+                R.string.label_go_key, labelLocale, getContext());
+        final ExpectedActionKey searchKey = ExpectedActionKey.newIconKey(
+                KeyboardIconsSet.NAME_SEARCH_KEY);
+        final ExpectedActionKey sendKey = ExpectedActionKey.newLabelKey(
+                R.string.label_send_key, labelLocale, getContext());
+        final ExpectedActionKey nextKey = ExpectedActionKey.newLabelKey(
+                R.string.label_next_key, labelLocale, getContext());
+        final ExpectedActionKey doneKey = ExpectedActionKey.newLabelKey(
+                R.string.label_done_key, labelLocale, getContext());
+        final ExpectedActionKey previousKey = ExpectedActionKey.newLabelKey(
+                R.string.label_previous_key, labelLocale, getContext());
+        final String tag = "label=" + labelLocale + " system=" + systemLocale
+                + " " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
+        final RunInLocale<Void> job = new RunInLocale<Void>() {
+            @Override
+            public Void job(final Resources res) {
+                doTestActionKeys(subtype, tag, enterKey, enterKey, goKey, searchKey, sendKey,
+                        nextKey, doneKey, previousKey);
+                return null;
+            }
+        };
+        job.runInLocale(getContext().getResources(), systemLocale);
+    }
+
+    public void testActionLabelInOtherLocale() {
+        final RichInputMethodManager richImm = RichInputMethodManager.getInstance();
+        final InputMethodSubtype italian = richImm.findSubtypeByLocaleAndKeyboardLayoutSet(
+                Locale.ITALIAN.toString(), SubtypeLocaleUtils.QWERTY);
+        // An action label should be displayed in subtype's locale regardless of the system locale.
+        doTestActionKeysInLocaleWithStringResources(italian, Locale.ITALIAN, Locale.US);
+        doTestActionKeysInLocaleWithStringResources(italian, Locale.ITALIAN, Locale.FRENCH);
+        doTestActionKeysInLocaleWithStringResources(italian, Locale.ITALIAN, Locale.ITALIAN);
+        doTestActionKeysInLocaleWithStringResources(italian, Locale.ITALIAN, Locale.JAPANESE);
+    }
+
+    public void testNoLanguageSubtypeActionLabel() {
+        final RichInputMethodManager richImm = RichInputMethodManager.getInstance();
+        final InputMethodSubtype noLanguage = richImm.findSubtypeByLocaleAndKeyboardLayoutSet(
+                SubtypeLocaleUtils.NO_LANGUAGE, SubtypeLocaleUtils.QWERTY);
+        // An action label of no language keyboard should be displayed in the system locale.
+        doTestActionKeysInLocaleWithStringResources(noLanguage, Locale.US, Locale.US);
+        doTestActionKeysInLocaleWithStringResources(noLanguage, Locale.FRENCH, Locale.FRENCH);
+        doTestActionKeysInLocaleWithStringResources(noLanguage, Locale.ITALIAN, Locale.ITALIAN);
+        doTestActionKeysInLocaleWithStringResources(noLanguage, Locale.JAPANESE, Locale.JAPANESE);
+    }
+
+    private void doTestActionKeysInLocaleWithKeyboardTextsSet(final InputMethodSubtype subtype,
+            final Locale labelLocale, final Locale systemLocale) {
+        // Simulate system locale changing, see {@link SystemBroadcastReceiver}.
+        if (!systemLocale.equals(mSystemLocale)) {
+            KeyboardLayoutSet.onSystemLocaleChanged();
+            mSystemLocale = systemLocale;
+        }
+        final KeyboardTextsSet textsSet = new KeyboardTextsSet();
+        textsSet.setLocale(labelLocale, getContext());
+        final ExpectedActionKey enterKey = ExpectedActionKey.newIconKey(
+                KeyboardIconsSet.NAME_ENTER_KEY);
+        final ExpectedActionKey goKey = ExpectedActionKey.newLabelKey(
+                textsSet.getText("label_go_key"));
+        final ExpectedActionKey searchKey = ExpectedActionKey.newIconKey(
+                KeyboardIconsSet.NAME_SEARCH_KEY);
+        final ExpectedActionKey sendKey = ExpectedActionKey.newLabelKey(
+                textsSet.getText("label_send_key"));
+        final ExpectedActionKey nextKey = ExpectedActionKey.newLabelKey(
+                textsSet.getText("label_next_key"));
+        final ExpectedActionKey doneKey = ExpectedActionKey.newLabelKey(
+                textsSet.getText("label_done_key"));
+        final ExpectedActionKey previousKey = ExpectedActionKey.newLabelKey(
+                textsSet.getText("label_previous_key"));
+        final String tag = "label=" + subtype.getLocale() + " system=" + systemLocale
+                + " " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
+        final RunInLocale<Void> job = new RunInLocale<Void>() {
+            @Override
+            public Void job(final Resources res) {
+                doTestActionKeys(subtype, tag, enterKey, enterKey, goKey, searchKey, sendKey,
+                        nextKey, doneKey, previousKey);
+                return null;
+            }
+        };
+        job.runInLocale(getContext().getResources(), systemLocale);
+    }
+
+    public void testHinglishActionLabel() {
+        final RichInputMethodManager richImm = RichInputMethodManager.getInstance();
+        final Locale hi_ZZ = new Locale("hi", "ZZ");
+        final InputMethodSubtype hiLatn = richImm.findSubtypeByLocaleAndKeyboardLayoutSet(
+                hi_ZZ.toString(), SubtypeLocaleUtils.QWERTY);
+        // This is a preliminary subtype and may not exist.
+        if (hiLatn == null) {
+            return;
+        }
+        // An action label should be displayed in subtype's locale regardless of the system locale.
+        doTestActionKeysInLocaleWithKeyboardTextsSet(hiLatn, hi_ZZ, new Locale("hi"));
+        doTestActionKeysInLocaleWithKeyboardTextsSet(hiLatn, hi_ZZ, Locale.US);
+        doTestActionKeysInLocaleWithKeyboardTextsSet(hiLatn, hi_ZZ, Locale.FRENCH);
+        doTestActionKeysInLocaleWithKeyboardTextsSet(hiLatn, hi_ZZ, Locale.ITALIAN);
+        doTestActionKeysInLocaleWithKeyboardTextsSet(hiLatn, hi_ZZ, Locale.JAPANESE);
+    }
+
+    public void testSerbianLatinActionLabel() {
+        final RichInputMethodManager richImm = RichInputMethodManager.getInstance();
+        final Locale sr_ZZ = new Locale("sr", "ZZ");
+        final InputMethodSubtype srLatn = richImm.findSubtypeByLocaleAndKeyboardLayoutSet(
+                sr_ZZ.toString(), "serbian_qwertz");
+        // This is a preliminary subtype and may not exist.
+        if (srLatn == null) {
+            return;
+        }
+        // An action label should be displayed in subtype's locale regardless of the system locale.
+        doTestActionKeysInLocaleWithKeyboardTextsSet(srLatn, sr_ZZ, new Locale("sr"));
+        doTestActionKeysInLocaleWithKeyboardTextsSet(srLatn, sr_ZZ, Locale.US);
+        doTestActionKeysInLocaleWithKeyboardTextsSet(srLatn, sr_ZZ, Locale.FRENCH);
+        doTestActionKeysInLocaleWithKeyboardTextsSet(srLatn, sr_ZZ, Locale.ITALIAN);
+        doTestActionKeysInLocaleWithKeyboardTextsSet(srLatn, sr_ZZ, Locale.JAPANESE);
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/action/KlpActionNextTests.java b/tests/src/com/android/inputmethod/keyboard/action/KlpActionNextTests.java
new file mode 100644
index 0000000..c67740c
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/action/KlpActionNextTests.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.action;
+
+import android.test.suitebuilder.annotation.LargeTest;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+@LargeTest
+public class KlpActionNextTests extends KlpActionTestsBase {
+    public void testActionNext() {
+        for (final InputMethodSubtype subtype : mSubtypesWhoseNameIsDisplayedInItsLocale) {
+            final String tag = "next " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
+            final ExpectedActionKey expectedKey = ExpectedActionKey.newLabelKey(
+                    R.string.label_next_key, getLabelLocale(subtype), getContext());
+            doTestActionKey(tag, subtype, EditorInfo.IME_ACTION_NEXT, expectedKey);
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/action/KlpActionNoneTests.java b/tests/src/com/android/inputmethod/keyboard/action/KlpActionNoneTests.java
new file mode 100644
index 0000000..0be2ecb
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/action/KlpActionNoneTests.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.action;
+
+import android.test.suitebuilder.annotation.LargeTest;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+@LargeTest
+public class KlpActionNoneTests extends KlpActionTestsBase {
+    public void testActionNone() {
+        final ExpectedActionKey expectedKey = ExpectedActionKey.newIconKey(
+                KeyboardIconsSet.NAME_ENTER_KEY);
+        for (final InputMethodSubtype subtype : mSubtypesWhoseNameIsDisplayedInItsLocale) {
+            final String tag = "none " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
+            doTestActionKey(tag, subtype, EditorInfo.IME_ACTION_NONE, expectedKey);
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/action/KlpActionPreviousTests.java b/tests/src/com/android/inputmethod/keyboard/action/KlpActionPreviousTests.java
new file mode 100644
index 0000000..af6a154
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/action/KlpActionPreviousTests.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.action;
+
+import android.test.suitebuilder.annotation.LargeTest;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+@LargeTest
+public class KlpActionPreviousTests extends KlpActionTestsBase {
+    public void testActionPrevious() {
+        for (final InputMethodSubtype subtype : mSubtypesWhoseNameIsDisplayedInItsLocale) {
+            final String tag = "previous " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
+            final ExpectedActionKey expectedKey = ExpectedActionKey.newLabelKey(
+                    R.string.label_previous_key, getLabelLocale(subtype), getContext());
+            doTestActionKey(tag, subtype, EditorInfo.IME_ACTION_PREVIOUS, expectedKey);
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/action/KlpActionSearchTests.java b/tests/src/com/android/inputmethod/keyboard/action/KlpActionSearchTests.java
new file mode 100644
index 0000000..adc3fee
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/action/KlpActionSearchTests.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.action;
+
+import android.test.suitebuilder.annotation.LargeTest;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+@LargeTest
+public class KlpActionSearchTests extends KlpActionTestsBase {
+    public void testActionSearch() {
+        final ExpectedActionKey expectedKey = ExpectedActionKey.newIconKey(
+                KeyboardIconsSet.NAME_SEARCH_KEY);
+        for (final InputMethodSubtype subtype : mSubtypesWhoseNameIsDisplayedInItsLocale) {
+            final String tag = "search " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
+            doTestActionKey(tag, subtype, EditorInfo.IME_ACTION_SEARCH, expectedKey);
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/action/KlpActionSendTests.java b/tests/src/com/android/inputmethod/keyboard/action/KlpActionSendTests.java
new file mode 100644
index 0000000..82f97a2
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/action/KlpActionSendTests.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.action;
+
+import android.test.suitebuilder.annotation.LargeTest;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+@LargeTest
+public class KlpActionSendTests extends KlpActionTestsBase {
+    public void testActionSend() {
+        for (final InputMethodSubtype subtype : mSubtypesWhoseNameIsDisplayedInItsLocale) {
+            final String tag = "send " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
+            final ExpectedActionKey expectedKey = ExpectedActionKey.newLabelKey(
+                    R.string.label_send_key, getLabelLocale(subtype), getContext());
+            doTestActionKey(tag, subtype, EditorInfo.IME_ACTION_SEND, expectedKey);
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/action/KlpActionTestsBase.java b/tests/src/com/android/inputmethod/keyboard/action/KlpActionTestsBase.java
new file mode 100644
index 0000000..511f995
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/action/KlpActionTestsBase.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.action;
+
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.keyboard.KeyboardTheme;
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+import java.util.ArrayList;
+import java.util.Locale;
+
+abstract class KlpActionTestsBase extends ActionTestsBase {
+    // Filter a subtype whose name should be displayed using {@link Locale#ROOT}, such like
+    // Hinglish (hi_ZZ) and Serbian-Latn (sr_ZZ).
+    static final SubtypeFilter SUBTYPE_FILTER_NAME_IN_BASE_LOCALE = new SubtypeFilter() {
+        @Override
+        public boolean accept(final InputMethodSubtype subtype) {
+            return Locale.ROOT.equals(
+                    SubtypeLocaleUtils.getDisplayLocaleOfSubtypeLocale(subtype.getLocale()));
+        }
+    };
+
+    protected ArrayList<InputMethodSubtype> mSubtypesWhoseNameIsDisplayedInItsLocale;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mSubtypesWhoseNameIsDisplayedInItsLocale = getSubtypesFilteredBy(new SubtypeFilter() {
+            @Override
+            public boolean accept(final InputMethodSubtype subtype) {
+                return !SUBTYPE_FILTER_NAME_IN_BASE_LOCALE.accept(subtype);
+            }
+        });
+    }
+
+    @Override
+    protected int getKeyboardThemeForTests() {
+        return KeyboardTheme.THEME_ID_KLP;
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/action/KlpActionUnspecifiedTests.java b/tests/src/com/android/inputmethod/keyboard/action/KlpActionUnspecifiedTests.java
new file mode 100644
index 0000000..307e273
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/action/KlpActionUnspecifiedTests.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.action;
+
+import android.test.suitebuilder.annotation.LargeTest;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+@LargeTest
+public class KlpActionUnspecifiedTests extends KlpActionTestsBase {
+    public void testActionUnspecified() {
+        final ExpectedActionKey expectedKey = ExpectedActionKey.newIconKey(
+                KeyboardIconsSet.NAME_ENTER_KEY);
+        for (final InputMethodSubtype subtype : mSubtypesWhoseNameIsDisplayedInItsLocale) {
+            final String tag = "unspecifiled "
+                    + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
+            doTestActionKey(tag, subtype, EditorInfo.IME_ACTION_UNSPECIFIED, expectedKey);
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/action/LxxActionCustomTests.java b/tests/src/com/android/inputmethod/keyboard/action/LxxActionCustomTests.java
new file mode 100644
index 0000000..d561f45
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/action/LxxActionCustomTests.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.action;
+
+import android.test.suitebuilder.annotation.LargeTest;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+@LargeTest
+public class LxxActionCustomTests extends LxxActionTestsBase {
+    public void testActionCustom() {
+        for (final InputMethodSubtype subtype : getAllSubtypesList()) {
+            final String tag = "custom " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
+            final EditorInfo editorInfo = new EditorInfo();
+            editorInfo.imeOptions = EditorInfo.IME_ACTION_UNSPECIFIED;
+            editorInfo.actionLabel = "customLabel";
+            final ExpectedActionKey expectedKey = ExpectedActionKey.newLabelKey("customLabel");
+            doTestActionKey(tag, subtype, editorInfo, expectedKey);
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/action/LxxActionDoneTests.java b/tests/src/com/android/inputmethod/keyboard/action/LxxActionDoneTests.java
new file mode 100644
index 0000000..b818bb1
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/action/LxxActionDoneTests.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.action;
+
+import android.test.suitebuilder.annotation.LargeTest;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+@LargeTest
+public class LxxActionDoneTests extends LxxActionTestsBase {
+    public void testActionDone() {
+        final ExpectedActionKey expectedKey = ExpectedActionKey.newIconKey(
+                KeyboardIconsSet.NAME_DONE_KEY);
+        for (final InputMethodSubtype subtype : getAllSubtypesList()) {
+            final String tag = "done " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
+            doTestActionKey(tag, subtype, EditorInfo.IME_ACTION_DONE, expectedKey);
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/action/LxxActionGoTests.java b/tests/src/com/android/inputmethod/keyboard/action/LxxActionGoTests.java
new file mode 100644
index 0000000..8001f71
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/action/LxxActionGoTests.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.action;
+
+import android.test.suitebuilder.annotation.LargeTest;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+@LargeTest
+public class LxxActionGoTests extends LxxActionTestsBase {
+    public void testActionGo() {
+        final ExpectedActionKey expectedKey = ExpectedActionKey.newIconKey(
+                KeyboardIconsSet.NAME_GO_KEY);
+        for (final InputMethodSubtype subtype : getAllSubtypesList()) {
+            final String tag = "go " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
+            doTestActionKey(tag, subtype, EditorInfo.IME_ACTION_GO, expectedKey);
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/action/LxxActionNextTests.java b/tests/src/com/android/inputmethod/keyboard/action/LxxActionNextTests.java
new file mode 100644
index 0000000..09a8c87
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/action/LxxActionNextTests.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.action;
+
+import android.test.suitebuilder.annotation.LargeTest;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+@LargeTest
+public class LxxActionNextTests extends LxxActionTestsBase {
+    public void testActionNext() {
+        final ExpectedActionKey expectedKey = ExpectedActionKey.newIconKey(
+                KeyboardIconsSet.NAME_NEXT_KEY);
+        for (final InputMethodSubtype subtype : getAllSubtypesList()) {
+            final String tag = "next " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
+            doTestActionKey(tag, subtype, EditorInfo.IME_ACTION_NEXT, expectedKey);
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/action/LxxActionNoneTests.java b/tests/src/com/android/inputmethod/keyboard/action/LxxActionNoneTests.java
new file mode 100644
index 0000000..98595e9
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/action/LxxActionNoneTests.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.action;
+
+import android.test.suitebuilder.annotation.LargeTest;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+@LargeTest
+public class LxxActionNoneTests extends LxxActionTestsBase {
+    public void testActionNone() {
+        final ExpectedActionKey expectedKey = ExpectedActionKey.newIconKey(
+                KeyboardIconsSet.NAME_ENTER_KEY);
+        for (final InputMethodSubtype subtype : getAllSubtypesList()) {
+            final String tag = "none " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
+            doTestActionKey(tag, subtype, EditorInfo.IME_ACTION_NONE, expectedKey);
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/action/LxxActionPreviousTests.java b/tests/src/com/android/inputmethod/keyboard/action/LxxActionPreviousTests.java
new file mode 100644
index 0000000..2327889
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/action/LxxActionPreviousTests.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.action;
+
+import android.test.suitebuilder.annotation.LargeTest;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+@LargeTest
+public class LxxActionPreviousTests extends LxxActionTestsBase {
+    public void testActionPrevious() {
+        final ExpectedActionKey expectedKey = ExpectedActionKey.newIconKey(
+                KeyboardIconsSet.NAME_PREVIOUS_KEY);
+        for (final InputMethodSubtype subtype : getAllSubtypesList()) {
+            final String tag = "previous " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
+            doTestActionKey(tag, subtype, EditorInfo.IME_ACTION_PREVIOUS, expectedKey);
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/action/LxxActionSearchTests.java b/tests/src/com/android/inputmethod/keyboard/action/LxxActionSearchTests.java
new file mode 100644
index 0000000..7e1d86b
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/action/LxxActionSearchTests.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.action;
+
+import android.test.suitebuilder.annotation.LargeTest;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+@LargeTest
+public class LxxActionSearchTests extends LxxActionTestsBase {
+    public void testActionSearch() {
+        final ExpectedActionKey expectedKey = ExpectedActionKey.newIconKey(
+                KeyboardIconsSet.NAME_SEARCH_KEY);
+        for (final InputMethodSubtype subtype : getAllSubtypesList()) {
+            final String tag = "search " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
+            doTestActionKey(tag, subtype, EditorInfo.IME_ACTION_SEARCH, expectedKey);
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/action/LxxActionSendTests.java b/tests/src/com/android/inputmethod/keyboard/action/LxxActionSendTests.java
new file mode 100644
index 0000000..fa0134f
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/action/LxxActionSendTests.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.action;
+
+import android.test.suitebuilder.annotation.LargeTest;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+@LargeTest
+public class LxxActionSendTests extends LxxActionTestsBase {
+    public void testActionSend() {
+        final ExpectedActionKey expectedKey = ExpectedActionKey.newIconKey(
+                KeyboardIconsSet.NAME_SEND_KEY);
+        for (final InputMethodSubtype subtype : getAllSubtypesList()) {
+            final String tag = "send " + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
+            doTestActionKey(tag, subtype, EditorInfo.IME_ACTION_SEND, expectedKey);
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/action/LxxActionTestsBase.java b/tests/src/com/android/inputmethod/keyboard/action/LxxActionTestsBase.java
new file mode 100644
index 0000000..70de9a6
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/action/LxxActionTestsBase.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.action;
+
+import com.android.inputmethod.keyboard.KeyboardTheme;
+
+abstract class LxxActionTestsBase extends ActionTestsBase {
+    @Override
+    protected int getKeyboardThemeForTests() {
+        return KeyboardTheme.THEME_ID_LXX_LIGHT;
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/action/LxxActionUnspecifiedTests.java b/tests/src/com/android/inputmethod/keyboard/action/LxxActionUnspecifiedTests.java
new file mode 100644
index 0000000..711ca26
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/action/LxxActionUnspecifiedTests.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.action;
+
+import android.test.suitebuilder.annotation.LargeTest;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+@LargeTest
+public class LxxActionUnspecifiedTests extends LxxActionTestsBase {
+    public void testActionUnspecified() {
+        final ExpectedActionKey expectedKey = ExpectedActionKey.newIconKey(
+                KeyboardIconsSet.NAME_ENTER_KEY);
+        for (final InputMethodSubtype subtype : getAllSubtypesList()) {
+            final String tag = "unspecifiled "
+                    + SubtypeLocaleUtils.getSubtypeNameForLogging(subtype);
+            doTestActionKey(tag, subtype, EditorInfo.IME_ACTION_UNSPECIFIED, expectedKey);
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/KeySpecParserTests.java b/tests/src/com/android/inputmethod/keyboard/internal/KeySpecParserTests.java
index 8e26e7f..1cdc787 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/KeySpecParserTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/KeySpecParserTests.java
@@ -17,11 +17,11 @@
 package com.android.inputmethod.keyboard.internal;
 
 import static com.android.inputmethod.keyboard.internal.KeyboardIconsSet.ICON_UNDEFINED;
-import static com.android.inputmethod.latin.Constants.CODE_UNSPECIFIED;
+import static com.android.inputmethod.latin.common.Constants.CODE_UNSPECIFIED;
 
 import android.test.suitebuilder.annotation.SmallTest;
 
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.common.Constants;
 
 @SmallTest
 public final class KeySpecParserTests extends KeySpecParserTestsBase {
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/KeySpecParserTestsBase.java b/tests/src/com/android/inputmethod/keyboard/internal/KeySpecParserTestsBase.java
index b8cb11b..79cf10e 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/KeySpecParserTestsBase.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/KeySpecParserTestsBase.java
@@ -19,8 +19,8 @@
 import static com.android.inputmethod.keyboard.internal.KeyboardCodesSet.PREFIX_CODE;
 import static com.android.inputmethod.keyboard.internal.KeyboardIconsSet.ICON_UNDEFINED;
 import static com.android.inputmethod.keyboard.internal.KeyboardIconsSet.PREFIX_ICON;
-import static com.android.inputmethod.latin.Constants.CODE_OUTPUT_TEXT;
-import static com.android.inputmethod.latin.Constants.CODE_UNSPECIFIED;
+import static com.android.inputmethod.latin.common.Constants.CODE_OUTPUT_TEXT;
+import static com.android.inputmethod.latin.common.Constants.CODE_UNSPECIFIED;
 
 import android.test.AndroidTestCase;
 
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateTestsBase.java b/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateTestsBase.java
index 3ffd0a9..1474c8d 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateTestsBase.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/KeyboardStateTestsBase.java
@@ -18,7 +18,7 @@
 
 import android.test.AndroidTestCase;
 
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.common.Constants;
 
 public class KeyboardStateTestsBase extends AndroidTestCase
         implements MockKeyboardSwitcher.MockConstants {
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/LanguageOnSpacebarHelperTests.java b/tests/src/com/android/inputmethod/keyboard/internal/LanguageOnSpacebarHelperTests.java
deleted file mode 100644
index 6ea2758..0000000
--- a/tests/src/com/android/inputmethod/keyboard/internal/LanguageOnSpacebarHelperTests.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.keyboard.internal;
-
-import static com.android.inputmethod.keyboard.internal.LanguageOnSpacebarHelper.FORMAT_TYPE_FULL_LOCALE;
-import static com.android.inputmethod.keyboard.internal.LanguageOnSpacebarHelper.FORMAT_TYPE_LANGUAGE_ONLY;
-import static com.android.inputmethod.keyboard.internal.LanguageOnSpacebarHelper.FORMAT_TYPE_NONE;
-
-import android.content.Context;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.view.inputmethod.InputMethodSubtype;
-
-import com.android.inputmethod.latin.RichInputMethodManager;
-import com.android.inputmethod.latin.utils.AdditionalSubtypeUtils;
-import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Locale;
-
-@SmallTest
-public class LanguageOnSpacebarHelperTests extends AndroidTestCase {
-    private final LanguageOnSpacebarHelper mLanguageOnSpacebarHelper =
-            new LanguageOnSpacebarHelper();
-
-    private RichInputMethodManager mRichImm;
-
-    InputMethodSubtype EN_US_QWERTY;
-    InputMethodSubtype EN_GB_QWERTY;
-    InputMethodSubtype FR_AZERTY;
-    InputMethodSubtype FR_CA_QWERTY;
-    InputMethodSubtype FR_CH_SWISS;
-    InputMethodSubtype FR_CH_QWERTY;
-    InputMethodSubtype FR_CH_QWERTZ;
-    InputMethodSubtype ZZ_QWERTY;
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        final Context context = getContext();
-        RichInputMethodManager.init(context);
-        mRichImm = RichInputMethodManager.getInstance();
-        SubtypeLocaleUtils.init(context);
-
-        EN_US_QWERTY = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
-                Locale.US.toString(), "qwerty");
-        EN_GB_QWERTY = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
-                Locale.UK.toString(), "qwerty");
-        FR_AZERTY = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
-                Locale.FRENCH.toString(), "azerty");
-        FR_CA_QWERTY = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
-                Locale.CANADA_FRENCH.toString(), "qwerty");
-        FR_CH_SWISS = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
-                "fr_CH", "swiss");
-        FR_CH_QWERTZ = AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
-                "fr_CH", "qwertz");
-        FR_CH_QWERTY = AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
-                "fr_CH", "qwerty");
-        ZZ_QWERTY = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
-                SubtypeLocaleUtils.NO_LANGUAGE, "qwerty");
-    }
-
-    private static List<InputMethodSubtype> asList(final InputMethodSubtype ... subtypes) {
-        return Arrays.asList(subtypes);
-    }
-
-    public void testOneSubtype() {
-        mLanguageOnSpacebarHelper.updateEnabledSubtypes(asList(EN_US_QWERTY));
-        mLanguageOnSpacebarHelper.updateIsSystemLanguageSameAsInputLanguage(true /* isSame */);
-        assertEquals("one same English (US)", FORMAT_TYPE_NONE,
-                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(EN_US_QWERTY));
-        assertEquals("one same NoLanguage", FORMAT_TYPE_FULL_LOCALE,
-                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(ZZ_QWERTY));
-
-        mLanguageOnSpacebarHelper.updateEnabledSubtypes(asList(FR_AZERTY));
-        mLanguageOnSpacebarHelper.updateIsSystemLanguageSameAsInputLanguage(false /* isSame */);
-        assertEquals("one diff English (US)", FORMAT_TYPE_LANGUAGE_ONLY,
-                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(EN_US_QWERTY));
-        assertEquals("one diff NoLanguage", FORMAT_TYPE_FULL_LOCALE,
-                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(ZZ_QWERTY));
-    }
-
-    public void testTwoSubtypes() {
-        mLanguageOnSpacebarHelper.updateEnabledSubtypes(asList(EN_US_QWERTY, FR_AZERTY));
-
-        mLanguageOnSpacebarHelper.updateIsSystemLanguageSameAsInputLanguage(true /* isSame */);
-        assertEquals("two same English (US)", FORMAT_TYPE_LANGUAGE_ONLY,
-                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(EN_US_QWERTY));
-        assertEquals("two same French)", FORMAT_TYPE_LANGUAGE_ONLY,
-                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(FR_AZERTY));
-        assertEquals("two same NoLanguage", FORMAT_TYPE_FULL_LOCALE,
-                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(ZZ_QWERTY));
-
-        mLanguageOnSpacebarHelper.updateIsSystemLanguageSameAsInputLanguage(false /* isSame */);
-        assertEquals("two diff English (US)", FORMAT_TYPE_LANGUAGE_ONLY,
-                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(EN_US_QWERTY));
-        assertEquals("two diff French", FORMAT_TYPE_LANGUAGE_ONLY,
-                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(FR_AZERTY));
-        assertEquals("two diff NoLanguage", FORMAT_TYPE_FULL_LOCALE,
-                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(ZZ_QWERTY));
-    }
-
-    public void testSameLanuageSubtypes() {
-        mLanguageOnSpacebarHelper.updateEnabledSubtypes(
-                asList(EN_US_QWERTY, EN_GB_QWERTY, FR_AZERTY, ZZ_QWERTY));
-
-        mLanguageOnSpacebarHelper.updateIsSystemLanguageSameAsInputLanguage(true /* isSame */);
-        assertEquals("two same English (US)", FORMAT_TYPE_FULL_LOCALE,
-                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(EN_US_QWERTY));
-        assertEquals("two same English (UK)", FORMAT_TYPE_FULL_LOCALE,
-                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(EN_GB_QWERTY));
-        assertEquals("two same NoLanguage", FORMAT_TYPE_FULL_LOCALE,
-                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(ZZ_QWERTY));
-
-        mLanguageOnSpacebarHelper.updateIsSystemLanguageSameAsInputLanguage(false /* isSame */);
-        assertEquals("two diff English (US)", FORMAT_TYPE_FULL_LOCALE,
-                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(EN_US_QWERTY));
-        assertEquals("two diff English (UK)", FORMAT_TYPE_FULL_LOCALE,
-                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(EN_GB_QWERTY));
-        assertEquals("two diff NoLanguage", FORMAT_TYPE_FULL_LOCALE,
-                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(ZZ_QWERTY));
-    }
-
-    public void testMultiSameLanuageSubtypes() {
-        mLanguageOnSpacebarHelper.updateEnabledSubtypes(
-                asList(FR_AZERTY, FR_CA_QWERTY, FR_CH_SWISS, FR_CH_QWERTY, FR_CH_QWERTZ));
-
-        mLanguageOnSpacebarHelper.updateIsSystemLanguageSameAsInputLanguage(true /* isSame */);
-        assertEquals("multi same French", FORMAT_TYPE_LANGUAGE_ONLY,
-                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(FR_AZERTY));
-        assertEquals("multi same French (CA)", FORMAT_TYPE_FULL_LOCALE,
-                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(FR_CA_QWERTY));
-        assertEquals("multi same French (CH)", FORMAT_TYPE_LANGUAGE_ONLY,
-                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(FR_CH_SWISS));
-        assertEquals("multi same French (CH) (QWERTY)", FORMAT_TYPE_FULL_LOCALE,
-                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(FR_CH_QWERTY));
-        assertEquals("multi same French (CH) (QWERTZ)", FORMAT_TYPE_LANGUAGE_ONLY,
-                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(FR_CH_QWERTZ));
-
-        mLanguageOnSpacebarHelper.updateIsSystemLanguageSameAsInputLanguage(false /* isSame */);
-        assertEquals("multi diff French", FORMAT_TYPE_LANGUAGE_ONLY,
-                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(FR_AZERTY));
-        assertEquals("multi diff French (CA)", FORMAT_TYPE_FULL_LOCALE,
-                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(FR_CA_QWERTY));
-        assertEquals("multi diff French (CH)", FORMAT_TYPE_LANGUAGE_ONLY,
-                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(FR_CH_SWISS));
-        assertEquals("multi diff French (CH) (QWERTY)", FORMAT_TYPE_FULL_LOCALE,
-                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(FR_CH_QWERTY));
-        assertEquals("multi diff French (CH) (QWERTZ)", FORMAT_TYPE_LANGUAGE_ONLY,
-                mLanguageOnSpacebarHelper.getLanguageOnSpacebarFormatType(FR_CH_QWERTZ));
-    }
-}
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/MockKeyboardSwitcher.java b/tests/src/com/android/inputmethod/keyboard/internal/MockKeyboardSwitcher.java
index a353e5a..4b2ec95 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/MockKeyboardSwitcher.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/MockKeyboardSwitcher.java
@@ -18,7 +18,8 @@
 
 import android.text.TextUtils;
 
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.event.Event;
+import com.android.inputmethod.latin.common.Constants;
 import com.android.inputmethod.latin.utils.RecapitalizeStatus;
 
 public class MockKeyboardSwitcher implements KeyboardState.SwitchActions {
@@ -26,7 +27,7 @@
         // Argument for {@link KeyboardState#onPressKey} and {@link KeyboardState#onReleaseKey}.
         public static final boolean NOT_SLIDING = false;
         public static final boolean SLIDING = true;
-        // Argument for {@link KeyboardState#onCodeInput}.
+        // Argument for {@link KeyboardState#onEvent}.
         public static final boolean SINGLE = true;
         public static final boolean MULTI = false;
         public static final int CAP_MODE_OFF = Constants.TextUtils.CAP_MODE_OFF;
@@ -183,7 +184,11 @@
         } else {
             mAutoCapsState = mAutoCapsMode;
         }
-        mState.onCodeInput(code, mAutoCapsState, RecapitalizeStatus.NOT_A_RECAPITALIZE_MODE);
+        final Event event =
+                Event.createSoftwareKeypressEvent(code /* codePoint */, code /* keyCode */,
+                        Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE,
+                        false /* isKeyRepeat */);
+        mState.onEvent(event, mAutoCapsState, RecapitalizeStatus.NOT_A_RECAPITALIZE_MODE);
     }
 
     public void onFinishSlidingInput() {
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecSplitTests.java b/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecSplitTests.java
index 922d2a8..8f4648c 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecSplitTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecSplitTests.java
@@ -16,52 +16,33 @@
 
 package com.android.inputmethod.keyboard.internal;
 
-import android.app.Instrumentation;
 import android.content.Context;
 import android.content.res.Resources;
-import android.test.InstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
 
-import java.lang.reflect.Field;
-import java.util.ArrayList;
+import com.android.inputmethod.latin.R;
+
 import java.util.Arrays;
 import java.util.Locale;
 
-@MediumTest
-public class MoreKeySpecSplitTests extends InstrumentationTestCase {
+@SmallTest
+public class MoreKeySpecSplitTests extends AndroidTestCase {
     private static final Locale TEST_LOCALE = Locale.ENGLISH;
-    final KeyboardTextsSet mTextsSet = new KeyboardTextsSet();
+    private final KeyboardTextsSet mTextsSet = new KeyboardTextsSet();
 
     @Override
     protected void setUp() throws Exception {
         super.setUp();
 
-        final Instrumentation instrumentation = getInstrumentation();
-        final Context targetContext = instrumentation.getTargetContext();
-        mTextsSet.setLocale(TEST_LOCALE, targetContext);
-        final String[] testResourceNames = getAllResourceIdNames(
-                com.android.inputmethod.latin.tests.R.string.class);
-        final Context testContext = instrumentation.getContext();
-        final Resources testRes = testContext.getResources();
-        final String testResPackageName = testRes.getResourcePackageName(
-                // This dummy raw resource is needed to be able to load string resources from a test
-                // APK successfully.
-                com.android.inputmethod.latin.tests.R.raw.dummy_resource_for_testing);
-        mTextsSet.loadStringResourcesInternal(testRes, testResourceNames, testResPackageName);
+        final Context targetContext = getContext();
+        final Resources targetRes = targetContext.getResources();
+        final String targetPackageName = targetRes.getResourcePackageName(
+                R.string.english_ime_name);
+        mTextsSet.setLocale(TEST_LOCALE, targetRes, targetPackageName);
     }
 
-    private static String[] getAllResourceIdNames(final Class<?> resourceIdClass) {
-        final ArrayList<String> names = new ArrayList<>();
-        for (final Field field : resourceIdClass.getFields()) {
-            if (field.getType() == int.class) {
-                names.add(field.getName());
-            }
-        }
-        return names.toArray(new String[names.size()]);
-    }
-
-    private static <T> void assertArrayEquals(final String message, final T[] expected,
-            final T[] actual) {
+    static <T> void assertArrayEquals(final String message, final T[] expected, final T[] actual) {
         if (expected == actual) {
             return;
         }
@@ -109,14 +90,6 @@
     private static final String SURROGATE1 = PAIR1 + PAIR2;
     private static final String SURROGATE2 = PAIR1 + PAIR2 + PAIR3;
 
-    public void testResolveNullText() {
-        assertNull("resolve null", mTextsSet.resolveTextReference(null));
-    }
-
-    public void testResolveEmptyText() {
-        assertNull("resolve empty text", mTextsSet.resolveTextReference("!text/empty_string"));
-    }
-
     public void testSplitZero() {
         assertTextArray("Empty string", "");
         assertTextArray("Empty entry", ",");
@@ -224,132 +197,14 @@
                 "\\!", "\\!TEXT/EMPTY_STRING");
     }
 
-    public void testSplitResourceError() {
-        assertError("Incomplete resource name", "!text/", "!text/");
-        assertError("Non existing resource", "!text/non_existing");
+    public void testSplitTextReferenceError() {
+        assertError("Incomplete text name", "!text/", "!text/");
+        assertError("Non existing text", "!text/non_existing");
     }
 
-    public void testSplitResourceZero() {
-        assertTextArray("Empty string",
-                "!text/empty_string");
-    }
-
-    public void testSplitResourceSingle() {
-        assertTextArray("Single char",
-                "!text/single_char", "a");
-        assertTextArray("Space",
-                "!text/space", " ");
-        assertTextArray("Single label",
-                "!text/single_label", "abc");
-        assertTextArray("Spaces",
-                "!text/spaces", "   ");
-        assertTextArray("Spaces in label",
-                "!text/spaces_in_label", "a b c");
-        assertTextArray("Spaces at beginning of label",
-                "!text/spaces_at_beginning_of_label", " abc");
-        assertTextArray("Spaces at end of label",
-                "!text/spaces_at_end_of_label", "abc ");
-        assertTextArray("label surrounded by spaces",
-                "!text/label_surrounded_by_spaces", " abc ");
-
-        assertTextArray("Escape and single char",
-                "\\\\!text/single_char", "\\\\a");
-    }
-
-    public void testSplitResourceSingleEscaped() {
-        assertTextArray("Escaped char",
-                "!text/escaped_char", "\\a");
-        assertTextArray("Escaped comma",
-                "!text/escaped_comma", "\\,");
-        assertTextArray("Escaped comma escape",
-                "!text/escaped_comma_escape", "a\\,\\");
-        assertTextArray("Escaped escape",
-                "!text/escaped_escape", "\\\\");
-        assertTextArray("Escaped label",
-                "!text/escaped_label", "a\\bc");
-        assertTextArray("Escaped label at beginning",
-                "!text/escaped_label_at_beginning", "\\abc");
-        assertTextArray("Escaped label at end",
-                "!text/escaped_label_at_end", "abc\\");
-        assertTextArray("Escaped label with comma",
-                "!text/escaped_label_with_comma", "a\\,c");
-        assertTextArray("Escaped label with comma at beginning",
-                "!text/escaped_label_with_comma_at_beginning", "\\,bc");
-        assertTextArray("Escaped label with comma at end",
-                "!text/escaped_label_with_comma_at_end", "ab\\,");
-        assertTextArray("Escaped label with successive",
-                "!text/escaped_label_with_successive", "\\,\\\\bc");
-        assertTextArray("Escaped label with escape",
-                "!text/escaped_label_with_escape", "a\\\\c");
-    }
-
-    public void testSplitResourceMulti() {
-        assertTextArray("Multiple chars",
-                "!text/multiple_chars", "a", "b", "c");
-        assertTextArray("Multiple chars surrounded by spaces",
-                "!text/multiple_chars_surrounded_by_spaces",
-                " a ", " b ", " c ");
-        assertTextArray("Multiple labels",
-                "!text/multiple_labels", "abc", "def", "ghi");
-        assertTextArray("Multiple labels surrounded by spaces",
-                "!text/multiple_labels_surrounded_by_spaces", " abc ", " def ", " ghi ");
-    }
-
-    public void testSplitResourcetMultiEscaped() {
-        assertTextArray("Multiple chars with comma",
-                "!text/multiple_chars_with_comma",
-                "a", "\\,", "c");
-        assertTextArray("Multiple chars with comma surrounded by spaces",
-                "!text/multiple_chars_with_comma_surrounded_by_spaces",
-                " a ", " \\, ", " c ");
-        assertTextArray("Multiple labels with escape",
-                "!text/multiple_labels_with_escape",
-                "\\abc", "d\\ef", "gh\\i");
-        assertTextArray("Multiple labels with escape surrounded by spaces",
-                "!text/multiple_labels_with_escape_surrounded_by_spaces",
-                " \\abc ", " d\\ef ", " gh\\i ");
-        assertTextArray("Multiple labels with comma and escape",
-                "!text/multiple_labels_with_comma_and_escape",
-                "ab\\\\", "d\\\\\\,", "g\\,i");
-        assertTextArray("Multiple labels with comma and escape surrounded by spaces",
-                "!text/multiple_labels_with_comma_and_escape_surrounded_by_spaces",
-                " ab\\\\ ", " d\\\\\\, ", " g\\,i ");
-    }
-
-    public void testSplitMultipleResources() {
-        assertTextArray("Literals and resources",
-                "1,!text/multiple_chars,z", "1", "a", "b", "c", "z");
-        assertTextArray("Literals and resources and escape at end",
-                "\\1,!text/multiple_chars,z\\", "\\1", "a", "b", "c", "z\\");
-        assertTextArray("Multiple single resource chars and labels",
-                "!text/single_char,!text/single_label,!text/escaped_comma",
-                "a", "abc", "\\,");
-        assertTextArray("Multiple single resource chars and labels 2",
-                "!text/single_char,!text/single_label,!text/escaped_comma_escape",
-                "a", "abc", "a\\,\\");
-        assertTextArray("Multiple multiple resource chars and labels",
-                "!text/multiple_chars,!text/multiple_labels,!text/multiple_chars_with_comma",
-                "a", "b", "c", "abc", "def", "ghi", "a", "\\,", "c");
-        assertTextArray("Concatenated resources",
-                "!text/multiple_chars!text/multiple_labels!text/multiple_chars_with_comma",
-                "a", "b", "cabc", "def", "ghia", "\\,", "c");
-        assertTextArray("Concatenated resource and literal",
-                "abc!text/multiple_labels",
-                "abcabc", "def", "ghi");
-    }
-
-    public void testSplitIndirectReference() {
-        assertTextArray("Indirect",
-                "!text/indirect_string", "a", "b", "c");
-        assertTextArray("Indirect with literal",
-                "1,!text/indirect_string_with_literal,2", "1", "x", "a", "b", "c", "y", "2");
-        assertTextArray("Indirect2",
-                "!text/indirect2_string", "a", "b", "c");
-    }
-
-    public void testSplitInfiniteIndirectReference() {
-        assertError("Infinite indirection",
-                "1,!text/infinite_indirection,2", "1", "infinite", "<infinite>", "loop", "2");
+    public void testSplitEmptyTextReference() {
+        // Note that morekeys_q of English locale is empty.
+        assertTextArray("Empty string", "!text/morekeys_q");
     }
 
     public void testLabelReferece() {
@@ -360,12 +215,6 @@
 
         assertTextArray("Settings as more key", "!text/keyspec_settings",
                 "!icon/settings_key|!code/key_settings");
-
-        assertTextArray("Indirect naviagte actions as more key",
-                "!text/keyspec_indirect_navigate_actions",
-                "!fixedColumnOrder!2",
-                "!hasLabels!", "Prev|!code/key_action_previous",
-                "!hasLabels!", "Next|!code/key_action_next");
     }
 
     public void testUselessUpperCaseSpecifier() {
@@ -394,14 +243,6 @@
         assertTextArray("INDIRECT2",
                 "!TEXT/INDIRECT2_STRING", "!TEXT/INDIRECT2_STRING");
 
-        assertTextArray("Upper indirect",
-                "!text/upper_indirect_string", "!TEXT/MULTIPLE_CHARS");
-        assertTextArray("Upper indirect with literal",
-                "1,!text/upper_indirect_string_with_literal,2",
-                "1", "x", "!TEXT/MULTIPLE_CHARS", "y", "2");
-        assertTextArray("Upper indirect2",
-                "!text/upper_indirect2_string", "!TEXT/UPPER_INDIRECT_STRING");
-
         assertTextArray("UPPER INDIRECT",
                 "!TEXT/upper_INDIRECT_STRING", "!TEXT/upper_INDIRECT_STRING");
         assertTextArray("Upper INDIRECT with literal",
@@ -413,9 +254,6 @@
         assertTextArray("INFINITE INDIRECTION",
                 "1,!TEXT/INFINITE_INDIRECTION,2", "1", "!TEXT/INFINITE_INDIRECTION", "2");
 
-        assertTextArray("Upper infinite indirection",
-                "1,!text/upper_infinite_indirection,2",
-                "1", "infinite", "!TEXT/INFINITE_INDIRECTION", "loop", "2");
         assertTextArray("Upper INFINITE INDIRECTION",
                 "1,!TEXT/UPPER_INFINITE_INDIRECTION,2",
                 "1", "!TEXT/UPPER_INFINITE_INDIRECTION", "2");
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecStringReferenceTests.java b/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecStringReferenceTests.java
new file mode 100644
index 0000000..e06ecae
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecStringReferenceTests.java
@@ -0,0 +1,284 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.internal;
+
+import android.app.Instrumentation;
+import android.content.Context;
+import android.content.res.Resources;
+import android.test.InstrumentationTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.latin.tests.R;
+
+import java.util.Locale;
+
+@SmallTest
+public class MoreKeySpecStringReferenceTests extends InstrumentationTestCase {
+    private static final Locale TEST_LOCALE = Locale.ENGLISH;
+    private final KeyboardTextsSet mTextsSet = new KeyboardTextsSet();
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+
+        final Instrumentation instrumentation = getInstrumentation();
+        final Context testContext = instrumentation.getContext();
+        final Resources testRes = testContext.getResources();
+        final String testPackageName = testRes.getResourcePackageName(R.string.empty_string);
+        mTextsSet.setLocale(TEST_LOCALE, testRes, testPackageName);
+    }
+
+    private void assertTextArray(final String message, final String value,
+            final String ... expectedArray) {
+        final String resolvedActual = mTextsSet.resolveTextReference(value);
+        final String[] actual = MoreKeySpec.splitKeySpecs(resolvedActual);
+        final String[] expected = (expectedArray.length == 0) ? null : expectedArray;
+        MoreKeySpecSplitTests.assertArrayEquals(message, expected, actual);
+    }
+
+    private void assertError(final String message, final String value, final String ... expected) {
+        try {
+            assertTextArray(message, value, expected);
+            fail(message);
+        } catch (Exception pcpe) {
+            // success.
+        }
+    }
+
+    public void testResolveNullText() {
+        assertEquals("resolve null",
+                mTextsSet.resolveTextReference(null), null);
+    }
+
+    public void testResolveEmptyText() {
+        assertEquals("resolve empty text",
+                mTextsSet.resolveTextReference("!string/empty_string"), null);
+    }
+
+    public void testSplitSingleEscaped() {
+        assertTextArray("Escaped !string", "\\!string",
+                "\\!string");
+        assertTextArray("Escaped !string/", "\\!string/",
+                "\\!string/");
+        assertTextArray("Escaped !STRING/", "\\!STRING/",
+                "\\!STRING/");
+        assertTextArray("Escaped !string/name", "\\!string/empty_string",
+                "\\!string/empty_string");
+        assertTextArray("Escaped !STRING/NAME", "\\!STRING/EMPTY_STRING",
+                "\\!STRING/EMPTY_STRING");
+    }
+
+    public void testSplitMultiEscaped() {
+        assertTextArray("Multiple escaped !string", "\\!,\\!string/empty_string",
+                "\\!", "\\!string/empty_string");
+        assertTextArray("Multiple escaped !STRING", "\\!,\\!STRING/EMPTY_STRING",
+                "\\!", "\\!STRING/EMPTY_STRING");
+    }
+
+    public void testSplitStringReferenceError() {
+        assertError("Incomplete resource name", "!string/", "!string/");
+        assertError("Non existing resource", "!string/non_existing");
+    }
+
+    public void testSplitEmptyStringReference() {
+        assertTextArray("Empty string", "!string/empty_string");
+    }
+
+    public void testSplitResourceSingle() {
+        assertTextArray("Single char", "!string/single_char",
+                "a");
+        assertTextArray("Space", "!string/space",
+                " ");
+        assertTextArray("Single label", "!string/single_label",
+                "abc");
+        assertTextArray("Spaces", "!string/spaces",
+                "   ");
+        assertTextArray("Spaces in label", "!string/spaces_in_label",
+                "a b c");
+        assertTextArray("Spaces at beginning of label", "!string/spaces_at_beginning_of_label",
+                " abc");
+        assertTextArray("Spaces at end of label", "!string/spaces_at_end_of_label",
+                "abc ");
+        assertTextArray("label surrounded by spaces", "!string/label_surrounded_by_spaces",
+                " abc ");
+        assertTextArray("Escape and single char", "\\\\!string/single_char",
+                "\\\\a");
+    }
+
+    public void testSplitResourceSingleEscaped() {
+        assertTextArray("Escaped char",
+                "!string/escaped_char", "\\a");
+        assertTextArray("Escaped comma",
+                "!string/escaped_comma", "\\,");
+        assertTextArray("Escaped comma escape",
+                "!string/escaped_comma_escape", "a\\,\\");
+        assertTextArray("Escaped escape",
+                "!string/escaped_escape", "\\\\");
+        assertTextArray("Escaped label",
+                "!string/escaped_label", "a\\bc");
+        assertTextArray("Escaped label at beginning",
+                "!string/escaped_label_at_beginning", "\\abc");
+        assertTextArray("Escaped label at end",
+                "!string/escaped_label_at_end", "abc\\");
+        assertTextArray("Escaped label with comma",
+                "!string/escaped_label_with_comma", "a\\,c");
+        assertTextArray("Escaped label with comma at beginning",
+                "!string/escaped_label_with_comma_at_beginning", "\\,bc");
+        assertTextArray("Escaped label with comma at end",
+                "!string/escaped_label_with_comma_at_end", "ab\\,");
+        assertTextArray("Escaped label with successive",
+                "!string/escaped_label_with_successive", "\\,\\\\bc");
+        assertTextArray("Escaped label with escape",
+                "!string/escaped_label_with_escape", "a\\\\c");
+    }
+
+    public void testSplitResourceMulti() {
+        assertTextArray("Multiple chars",
+                "!string/multiple_chars", "a", "b", "c");
+        assertTextArray("Multiple chars surrounded by spaces",
+                "!string/multiple_chars_surrounded_by_spaces",
+                " a ", " b ", " c ");
+        assertTextArray("Multiple labels",
+                "!string/multiple_labels", "abc", "def", "ghi");
+        assertTextArray("Multiple labels surrounded by spaces",
+                "!string/multiple_labels_surrounded_by_spaces", " abc ", " def ", " ghi ");
+    }
+
+    public void testSplitResourcetMultiEscaped() {
+        assertTextArray("Multiple chars with comma",
+                "!string/multiple_chars_with_comma",
+                "a", "\\,", "c");
+        assertTextArray("Multiple chars with comma surrounded by spaces",
+                "!string/multiple_chars_with_comma_surrounded_by_spaces",
+                " a ", " \\, ", " c ");
+        assertTextArray("Multiple labels with escape",
+                "!string/multiple_labels_with_escape",
+                "\\abc", "d\\ef", "gh\\i");
+        assertTextArray("Multiple labels with escape surrounded by spaces",
+                "!string/multiple_labels_with_escape_surrounded_by_spaces",
+                " \\abc ", " d\\ef ", " gh\\i ");
+        assertTextArray("Multiple labels with comma and escape",
+                "!string/multiple_labels_with_comma_and_escape",
+                "ab\\\\", "d\\\\\\,", "g\\,i");
+        assertTextArray("Multiple labels with comma and escape surrounded by spaces",
+                "!string/multiple_labels_with_comma_and_escape_surrounded_by_spaces",
+                " ab\\\\ ", " d\\\\\\, ", " g\\,i ");
+    }
+
+    public void testSplitMultipleResources() {
+        assertTextArray("Literals and resources",
+                "1,!string/multiple_chars,z",
+                "1", "a", "b", "c", "z");
+        assertTextArray("Literals and resources and escape at end",
+                "\\1,!string/multiple_chars,z\\",
+                "\\1", "a", "b", "c", "z\\");
+        assertTextArray("Multiple single resource chars and labels",
+                "!string/single_char,!string/single_label,!string/escaped_comma",
+                "a", "abc", "\\,");
+        assertTextArray("Multiple single resource chars and labels 2",
+                "!string/single_char,!string/single_label,!string/escaped_comma_escape",
+                "a", "abc", "a\\,\\");
+        assertTextArray("Multiple multiple resource chars and labels",
+                "!string/multiple_chars,!string/multiple_labels,!string/multiple_chars_with_comma",
+                "a", "b", "c", "abc", "def", "ghi", "a", "\\,", "c");
+        assertTextArray("Concatenated resources",
+                "!string/multiple_chars!string/multiple_labels!string/multiple_chars_with_comma",
+                "a", "b", "cabc", "def", "ghia", "\\,", "c");
+        assertTextArray("Concatenated resource and literal",
+                "abc!string/multiple_labels",
+                "abcabc", "def", "ghi");
+    }
+
+    public void testSplitIndirectReference() {
+        assertTextArray("Indirect",
+                "!string/indirect_string", "a", "b", "c");
+        assertTextArray("Indirect with literal",
+                "1,!string/indirect_string_with_literal,2", "1", "x", "a", "b", "c", "y", "2");
+        assertTextArray("Indirect2",
+                "!string/indirect2_string", "a", "b", "c");
+    }
+
+    public void testSplitInfiniteIndirectReference() {
+        assertError("Infinite indirection",
+                "1,!string/infinite_indirection,2", "1", "infinite", "<infinite>", "loop", "2");
+    }
+
+    public void testLabelReferece() {
+        assertTextArray("Indirect naviagte actions as more key",
+                "!string/keyspec_indirect_navigate_actions",
+                "!fixedColumnOrder!2",
+                "!hasLabels!", "ActionPrevious|!code/key_action_previous",
+                "!hasLabels!", "ActionNext|!code/key_action_next");
+    }
+
+    public void testUselessUpperCaseSpecifier() {
+        assertTextArray("EMPTY STRING",
+                "!STRING/EMPTY_STRING", "!STRING/EMPTY_STRING");
+
+        assertTextArray("SINGLE CHAR",
+                "!STRING/SINGLE_CHAR", "!STRING/SINGLE_CHAR");
+        assertTextArray("Escape and SINGLE CHAR",
+                "\\\\!STRING/SINGLE_CHAR", "\\\\!STRING/SINGLE_CHAR");
+
+        assertTextArray("MULTIPLE CHARS",
+                "!STRING/MULTIPLE_CHARS", "!STRING/MULTIPLE_CHARS");
+
+        assertTextArray("Literals and RESOURCES",
+                "1,!STRING/MULTIPLE_CHARS,z", "1", "!STRING/MULTIPLE_CHARS", "z");
+        assertTextArray("Multiple single RESOURCE chars and LABELS 2",
+                "!STRING/SINGLE_CHAR,!STRING/SINGLE_LABEL,!STRING/ESCAPED_COMMA_ESCAPE",
+                "!STRING/SINGLE_CHAR", "!STRING/SINGLE_LABEL", "!STRING/ESCAPED_COMMA_ESCAPE");
+
+        assertTextArray("INDIRECT",
+                "!STRING/INDIRECT_STRING", "!STRING/INDIRECT_STRING");
+        assertTextArray("INDIRECT with literal",
+                "1,!STRING/INDIRECT_STRING_WITH_LITERAL,2",
+                "1", "!STRING/INDIRECT_STRING_WITH_LITERAL", "2");
+        assertTextArray("INDIRECT2",
+                "!STRING/INDIRECT2_STRING", "!STRING/INDIRECT2_STRING");
+
+        assertTextArray("Upper indirect",
+                "!string/upper_indirect_string", "!STRING/MULTIPLE_CHARS");
+        assertTextArray("Upper indirect with literal",
+                "1,!string/upper_indirect_string_with_literal,2",
+                "1", "x", "!STRING/MULTIPLE_CHARS", "y", "2");
+        assertTextArray("Upper indirect2",
+                "!string/upper_indirect2_string", "!STRING/UPPER_INDIRECT_STRING");
+
+        assertTextArray("UPPER INDIRECT",
+                "!STRING/upper_INDIRECT_STRING", "!STRING/upper_INDIRECT_STRING");
+        assertTextArray("Upper INDIRECT with literal",
+                "1,!STRING/upper_INDIRECT_STRING_WITH_LITERAL,2",
+                "1", "!STRING/upper_INDIRECT_STRING_WITH_LITERAL", "2");
+        assertTextArray("Upper INDIRECT2",
+                "!STRING/upper_INDIRECT2_STRING", "!STRING/upper_INDIRECT2_STRING");
+
+        assertTextArray("INFINITE INDIRECTION",
+                "1,!STRING/INFINITE_INDIRECTION,2", "1", "!STRING/INFINITE_INDIRECTION", "2");
+
+        assertTextArray("Upper infinite indirection",
+                "1,!string/upper_infinite_indirection,2",
+                "1", "infinite", "!STRING/INFINITE_INDIRECTION", "loop", "2");
+        assertTextArray("Upper INFINITE INDIRECTION",
+                "1,!STRING/UPPER_INFINITE_INDIRECTION,2",
+                "1", "!STRING/UPPER_INFINITE_INDIRECTION", "2");
+
+        assertTextArray("INDIRECT NAVIGATE ACTIONS AS MORE KEY",
+                "!STRING/INDIRECT_NAVIGATE_ACTIONS_AS_MORE_KEY",
+                "!STRING/INDIRECT_NAVIGATE_ACTIONS_AS_MORE_KEY");
+     }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecTests.java b/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecTests.java
index 6c0d749..d9e5d10 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecTests.java
@@ -17,11 +17,11 @@
 package com.android.inputmethod.keyboard.internal;
 
 import static com.android.inputmethod.keyboard.internal.KeyboardIconsSet.ICON_UNDEFINED;
-import static com.android.inputmethod.latin.Constants.CODE_UNSPECIFIED;
+import static com.android.inputmethod.latin.common.Constants.CODE_UNSPECIFIED;
 
 import android.test.suitebuilder.annotation.SmallTest;
 
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.common.Constants;
 
 import java.util.Arrays;
 import java.util.Locale;
@@ -78,6 +78,7 @@
         assertArrayEquals(message, expected, actual);
     }
 
+    @SuppressWarnings("static-method")
     public void testEmptyEntry() {
         assertInsertAdditionalMoreKeys("null more keys and null additons",
                 null,
@@ -106,6 +107,7 @@
                 new String[] { "a", "A", "b", "B", "c", "d" });
     }
 
+    @SuppressWarnings("static-method")
     public void testInsertAdditionalMoreKeys() {
         // Escaped marker.
         assertInsertAdditionalMoreKeys("escaped marker",
@@ -306,6 +308,7 @@
         assertArrayEquals(message, expected, actual);
     }
 
+    @SuppressWarnings("static-method")
     public void testGetBooleanValue() {
         assertGetBooleanValue("Has label", HAS_LABEL,
                 new String[] { HAS_LABEL, "a", "b", "c" },
@@ -345,6 +348,7 @@
         assertArrayEquals(message, expected, actual);
     }
 
+    @SuppressWarnings("static-method")
     public void testGetIntValue() {
         assertGetIntValue("Fixed column order 3", FIXED_COLUMN_ORDER, -1,
                 new String[] { FIXED_COLUMN_ORDER + "3", "a", "b", "c" },
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Arabic.java b/tests/src/com/android/inputmethod/keyboard/layout/Arabic.java
index 3f85e4b..ff05f92 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Arabic.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Arabic.java
@@ -18,26 +18,25 @@
 
 import com.android.inputmethod.keyboard.layout.Symbols.RtlSymbols;
 import com.android.inputmethod.keyboard.layout.SymbolsShifted.RtlSymbolsShifted;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.common.Constants;
 
 import java.util.Locale;
 
 public final class Arabic extends LayoutBase {
     private static final String LAYOUT_NAME = "arabic";
 
-    public Arabic(final LayoutCustomizer customizer) {
-        super(customizer, ArabicSymbols.class, ArabicSymbolsShifted.class);
+    public Arabic(final Locale locale) {
+        super(new ArabicCustomizer(locale), ArabicSymbols.class, ArabicSymbolsShifted.class);
     }
 
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class ArabicCustomizer extends LayoutCustomizer {
-        public ArabicCustomizer(final Locale locale) {
-            super(locale);
-        }
+    private static class ArabicCustomizer extends LayoutCustomizer {
+        ArabicCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey getAlphabetKey() { return ARABIC_ALPHABET_KEY; }
@@ -141,12 +140,11 @@
     ExpectedKey[][] getCommonAlphabetLayout(final boolean isPhone) {
         if (isPhone) {
             return ALPHABET_COMMON;
-        } else {
-            final ExpectedKeyboardBuilder builder = new ExpectedKeyboardBuilder(ALPHABET_COMMON);
-            // U+0626: "ئ" ARABIC LETTER YEH WITH HAMZA ABOVE
-            builder.insertKeysAtRow(3, 2, "\u0626");
-            return builder.build();
         }
+        final ExpectedKeyboardBuilder builder = new ExpectedKeyboardBuilder(ALPHABET_COMMON);
+        // U+0626: "ئ" ARABIC LETTER YEH WITH HAMZA ABOVE
+        builder.insertKeysAtRow(3, 2, "\u0626");
+        return builder.build();
     }
 
     @Override
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/ArmenianPhonetic.java b/tests/src/com/android/inputmethod/keyboard/layout/ArmenianPhonetic.java
index 2cecedc..cbbeff4 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/ArmenianPhonetic.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/ArmenianPhonetic.java
@@ -16,9 +16,10 @@
 
 package com.android.inputmethod.keyboard.layout;
 
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.common.Constants;
 
 import java.util.Locale;
 
@@ -28,15 +29,16 @@
 public final class ArmenianPhonetic extends LayoutBase {
     private static final String LAYOUT_NAME = "armenian_phonetic";
 
-    public ArmenianPhonetic(final LayoutCustomizer customizer) {
-        super(customizer, ArmenianSymbols.class, ArmenianSymbolsShifted.class);
+    public ArmenianPhonetic(final Locale locale) {
+        super(new ArmenianPhoneticCustomizer(locale), ArmenianSymbols.class,
+                ArmenianSymbolsShifted.class);
     }
 
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class ArmenianPhoneticCustomizer extends LayoutCustomizer {
-        public ArmenianPhoneticCustomizer(final Locale locale) { super(locale); }
+    private static class ArmenianPhoneticCustomizer extends LayoutCustomizer {
+        ArmenianPhoneticCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public int getNumberOfRows() { return 5; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Azerty.java b/tests/src/com/android/inputmethod/keyboard/layout/Azerty.java
index a094963..f3176d0 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Azerty.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Azerty.java
@@ -17,6 +17,7 @@
 package com.android.inputmethod.keyboard.layout;
 
 import com.android.inputmethod.keyboard.KeyboardId;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Bengali.java b/tests/src/com/android/inputmethod/keyboard/layout/Bengali.java
index 2101ddf..339cab4 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Bengali.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Bengali.java
@@ -16,11 +16,9 @@
 
 package com.android.inputmethod.keyboard.layout;
 
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-import com.android.inputmethod.latin.Constants;
-
-import java.util.Locale;
 
 /**
  * The Bengali keyboard.
@@ -35,32 +33,6 @@
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class BengaliCustomizer extends LayoutCustomizer {
-        public BengaliCustomizer(final Locale locale) { super(locale); }
-
-        @Override
-        public ExpectedKey getAlphabetKey() { return BENGALI_ALPHABET_KEY; }
-
-        @Override
-        public ExpectedKey[] getOtherCurrencyKeys() {
-            return SymbolsShifted.CURRENCIES_OTHER_GENERIC;
-        }
-
-        @Override
-        public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) { return EMPTY_KEYS; }
-
-        @Override
-        public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
-            return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
-        }
-
-        // U+0995: "क" BENGALI LETTER KA
-        // U+0996: "ख" BENGALI LETTER KHA
-        // U+0997: "ग" BENGALI LETTER GA
-        private static final ExpectedKey BENGALI_ALPHABET_KEY = key(
-                "\u0995\u0996\u0997", Constants.CODE_SWITCH_ALPHA_SYMBOL);
-    }
-
     @Override
     ExpectedKey[][] getCommonAlphabetLayout(boolean isPhone) { return ALPHABET_COMMON; }
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/BengaliAkkhor.java b/tests/src/com/android/inputmethod/keyboard/layout/BengaliAkkhor.java
new file mode 100644
index 0000000..bb1dc10
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/BengaliAkkhor.java
@@ -0,0 +1,497 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout;
+
+import com.android.inputmethod.keyboard.KeyboardId;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+/**
+ * The Bengali Akkhor keyboard.
+ */
+public final class BengaliAkkhor extends LayoutBase {
+    private static final String LAYOUT_NAME = "bengali_akkhor";
+
+    public BengaliAkkhor(final LayoutCustomizer customizer) {
+        super(customizer, Symbols.class, SymbolsShifted.class);
+    }
+
+    @Override
+    public String getName() { return LAYOUT_NAME; }
+
+    @Override
+    ExpectedKey[][] getCommonAlphabetLayout(boolean isPhone) { return ALPHABET_COMMON; }
+
+    @Override
+    ExpectedKey[][] getCommonAlphabetShiftLayout(boolean isPhone, final int elementId) {
+        if (elementId == KeyboardId.ELEMENT_ALPHABET_AUTOMATIC_SHIFTED) {
+            return getCommonAlphabetLayout(isPhone);
+        }
+        return ALPHABET_SHIFTED_COMMON;
+    }
+
+    private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder()
+            .setKeysOfRow(1,
+                    // U+09A7: "ধ" BENGALI LETTER DHA
+                    // U+09E7: "১" BENGALI DIGIT ONE
+                    // U+09A7/U+09CD/U+09AC:
+                    //     "ধ্ব্র" BENGALI LETTER DHA/BENGALI SIGN VIRAMA/BENGALI LETTER BA
+                    // U+09A7/U+09CD/U+09AF:
+                    //     "ধ্য্র" BENGALI LETTER DHA/BENGALI SIGN VIRAMA/BENGALI LETTER YA
+                    // U+09A7/U+09CD/U+09B0:
+                    //     "ধ্র" BENGALI LETTER DHA/BENGALI SIGN VIRAMA/BENGALI LETTER RA
+                    key("\u09A7", joinMoreKeys("\u09E7", "\u09A7\u09CD\u09AC", "\u09A7\u09CD\u09AF",
+                            "\u09A7\u09CD\u09B0")),
+                    // U+09A5: "থ" BENGALI LETTER THA
+                    // U+09E8: "২" BENGALI DIGIT TWO
+                    // U+09A5/U+09CD/U+09AF:
+                    //     "থ্য" BENGALI LETTER THA/BENGALI SIGN VIRAMA/BENGALI LETTER YA
+                    // U+09A5/U+09CD/U+09B0:
+                    //     "থ্র" BENGALI LETTER THA/BENGALI SIGN VIRAMA/BENGALI LETTER RA
+                    key("\u09A5", joinMoreKeys("\u09E8", "\u09A5\u09CD\u09AF",
+                            "\u09A5\u09CD\u09B0")),
+                    // U+09C7: "ে" BENGALI VOWEL SIGN E
+                    // U+09E9: "৩" BENGALI DIGIT THREE
+                    // U+098F: "এ" BENGALI LETTER E
+                    key("\u09C7", joinMoreKeys("\u09E9", "\u098F")),
+                    // U+09B0: "র" BENGALI LETTER RA
+                    // U+09EA: "৪" BENGALI DIGIT FOUR
+                    key("\u09B0", joinMoreKeys("\u09EA")),
+                    // U+09A4: "ত" BENGALI LETTER TA
+                    // U+09EB: "৫" BENGALI DIGIT FIVE
+                    // U+09CE: "ৎ" BENGALI LETTER KHANDA TA
+                    // U+09A4/U+09CD/U+09A4:
+                    //     "ত্ত" BENGALI LETTER TA/BENGALI SIGN VIRAMA/BENGALI LETTER TA
+                    // U+09A4/U+09CD/U+09A8:
+                    //     "ত্ন" BENGALI LETTER TA/BENGALI SIGN VIRAMA/BENGALI LETTER NA
+                    // U+09A4/U+09CD/U+09AC:
+                    //     "ত্ব" BENGALI LETTER TA/BENGALI SIGN VIRAMA/BENGALI LETTER BA
+                    // U+09A4/U+09CD/U+09AE:
+                    //     "ত্ম" BENGALI LETTER TA/BENGALI SIGN VIRAMA/BENGALI LETTER MA
+                    key("\u09A4", joinMoreKeys("\u09EB", "\u09CE", "\u09A4\u09CD\u09A4",
+                            "\u09A4\u09CD\u09A8", "\u09A4\u09CD\u09AC", "\u09A4\u09CD\u09AE")),
+                    // U+09DF: "য়" BENGALI LETTER YYA
+                    // U+09EC: "৬" BENGALI DIGIT SIX
+                    key("\u09DF", joinMoreKeys("\u09EC")),
+                    // U+09C1: "ু" BENGALI VOWEL SIGN U
+                    // U+09ED: "৭" BENGALI DIGIT SEVEN
+                    // U+0989: "উ" BENGALI LETTER U
+                    key("\u09C1", joinMoreKeys("\u09ED", "\u0989")),
+                    // U+09BF: "ি" BENGALI VOWEL SIGN I
+                    // U+09EE: "৮" BENGALI DIGIT EIGHT
+                    // U+0987: "ই BENGALI LETTER I
+                    key("\u09Bf", joinMoreKeys("\u09EE", "\u0987")),
+                    // U+09CB: "ো" BENGALI VOWEL SIGN O
+                    // U+09EF: "৯" BENGALI DIGIT NINE
+                    // U+0993: "ও" BENGALI LETTER O
+                    key("\u09CB", joinMoreKeys("\u09EF", "\u0993")),
+                    // U+09AA: "প" BENGALI LETTER PA
+                    // U+09E6: "০" BENGALI DIGIT ZERO
+                    // U+09AA/U+09CD/U+09A4:
+                    //     "প্ত" BENGALI LETTER PA/BENGALI SIGN VIRAMA/BENGALI LETTER TA
+                    // U+09AA/U+09CD/U+09A8:
+                    //     "প্ন" BENGALI LETTER PA/BENGALI SIGN VIRAMA/BENGALI LETTER NA
+                    // U+09AA/U+09CD/U+09AA:
+                    //     "প্প" BENGALI LETTER PA/BENGALI SIGN VIRAMA/BENGALI LETTER PA
+                    // U+09AA/U+09CD/U+09AF:
+                    //     "প্য" BENGALI LETTER PA/BENGALI SIGN VIRAMA/BENGALI LETTER YA
+                    // U+09AA/U+09CD/U+09B0:
+                    //     "প্র" BENGALI LETTER PA/BENGALI SIGN VIRAMA/BENGALI LETTER RA
+                    // U+09AA/U+09CD/U+09B2:
+                    //     "প্ল" BENGALI LETTER PA/BENGALI SIGN VIRAMA/BENGALI LETTER LA
+                    // U+09AA/U+09CD/U+09B8:
+                    //     "প্স" BENGALI LETTER PA/BENGALI SIGN VIRAMA/BENGALI LETTER SA
+                    key("\u09AA", joinMoreKeys("\u09E6", "\u09AA\u09CD\u09A4", "\u09AA\u09CD\u09A8",
+                            "\u09AA\u09CD\u09AA", "\u09AA\u09CD\u09AF", "\u09AA\u09CD\u09B0",
+                            "\u09AA\u09CD\u09B2", "\u09AA\u09CD\u09B8")),
+                    // U+0986: "আ" BENGALI LETTER AA
+                    key("\u0986"))
+            .setKeysOfRow(2,
+                    // U+09BE: "া BENGALI VOWEL SIGN AA
+                    // U+0986: "আ" BENGALI LETTER AA
+                    key("\u09BE", moreKey("\u0986")),
+                    // U+09B8: "স" BENGALI LETTER SA
+                    // U+09B8/U+09CD/U+09AC:
+                    //     "স্ব" BENGALI LETTER SA/BENGALI SIGN VIRAMA/BENGALI LETTER BA
+                    // U+09B8/U+09CD/U+09A4:
+                    //     "স্ত" BENGALI LETTER SA/BENGALI SIGN VIRAMA/BENGALI LETTER TA
+                    // U+09B8/U+09CD/U+099F:
+                    //     "স্ট" BENGALI LETTER SA/BENGALI SIGN VIRAMA/BENGALI LETTER TTA
+                    // U+09B8/U+09CD/U+0995:
+                    //     "স্ক" BENGALI LETTER SA/BENGALI SIGN VIRAMA/BENGALI LETTER KA
+                    // U+09B8/U+09CD/U+09AA:
+                    //     "স্প" BENGALI LETTER SA/BENGALI SIGN VIRAMA/BENGALI LETTER PA
+                    key("\u09B8", joinMoreKeys("\u09B8\u09CD\u09AC", "\u09B8\u09CD\u09A4",
+                            "\u09B8\u09CD\u099F", "\u09B8\u09CD\u0995", "\u09B8\u09CD\u09AA")),
+                    // U+09A6: "দ" BENGALI LETTER DA
+                    // U+09A6/U+09CD/U+09A6:
+                    //     "দ্দ" BENGALI LETTER DA/BENGALI SIGN VIRAMA/BENGALI LETTER DA
+                    // U+09A6/U+09CD/U+09A7:
+                    //     "দ্ধ" BENGALI LETTER DA/BENGALI SIGN VIRAMA/BENGALI LETTER DHA
+                    // U+09A6/U+09CD/U+09AC:
+                    //     "দ্ব" BENGALI LETTER DA/BENGALI SIGN VIRAMA/BENGALI LETTER BA
+                    // U+09A6/U+09CD/U+09AD:
+                    //     "দ্ভ" BENGALI LETTER DA/BENGALI SIGN VIRAMA/BENGALI LETTER BHA
+                    // U+09A6/U+09CD/U+09AE:
+                    //     "দ্ম" BENGALI LETTER DA/BENGALI SIGN VIRAMA/BENGALI LETTER MA
+                    // U+09A6/U+09CD/U+09AF:
+                    //     "দ্য" BENGALI LETTER DA/BENGALI SIGN VIRAMA/BENGALI LETTER YA
+                    // U+09A6/U+09CD/U+09B0:
+                    //     "দ্র" BENGALI LETTER DA/BENGALI SIGN VIRAMA/BENGALI LETTER RA
+                    key("\u09A6", joinMoreKeys("\u09A6\u09CD\u09A6", "\u09A6\u09CD\u09A7",
+                            "\u09A6\u09CD\u09AC", "\u09A6\u09CD\u09AD", "\u09A6\u09CD\u09AE",
+                            "\u09A6\u09CD\u09AF", "\u09A6\u09CD\u09B0")),
+                    // U+09C3: "ৃ" BENGALI VOWEL SIGN VOCALIC R
+                    // U+098B: "ঋ" BENGALI LETTER VOCALIC R
+                    key("\u09C3", moreKey("\u098B")),
+                    // U+0997: "গ" BENGALI LETTER GA
+                    // U+0997/U+09CD/U+09A7:
+                    //     "গ্ধ" BENGALI LETTER GA/BENGALI SIGN VIRAMA/BENGALI LETTER DH A
+                    // U+0997/U+09CD/U+09B0:
+                    //     "গ্র" BENGALI LETTER GA/BENGALI SIGN VIRAMA/BENGALI LETTER RA
+                    // U+0997/U+09CD/U+09B2:
+                    //     "গ্ল" BENGALI LETTER GA/BENGALI SIGN VIRAMA/BENGALI LETTER LA
+                    // U+0997/U+09CD/U+09A8:
+                    //     "গ্ন" BENGALI LETTER GA/BENGALI SIGN VIRAMA/BENGALI LETTER NA
+                    key("\u0997", joinMoreKeys("\u0997\u09CD\u09A7", "\u0997\u09CD\u09B0",
+                            "\u0997\u09CD\u09B2", "\u0997\u09CD\u09A8")),
+                    // U+09CD: "্" BENGALI SIGN VIRAMA
+                    key("\u09CD"),
+                    // U+099C: "জ" BENGALI LETTER JA
+                    // U+099C/U+09CD/U+099E:
+                    //     "জ্ঞ" BENGALI LETTER JA/BENGALI SIGN VIRAMA/BENGALI LETTER NYA
+                    // U+099C/U+09CD/U+099C:
+                    //     "জ্জ" BENGALI LETTER JA/BENGALI SIGN VIRAMA/BENGALI LETTER JA
+                    // U+099C/U+09CD/U+09AF:
+                    //     "জ্ব" BENGALI LETTER JA/BENGALI SIGN VIRAMA/BENGALI LETTER YA
+                    // U+099C/U+09CD/U+09AC:
+                    //     "জ্য" BENGALI LETTER JA/BENGALI SIGN VIRAMA/BENGALI LETTER BA
+                    // U+099C/U+09CD/U+09B0:
+                    //     "জ্র" BENGALI LETTER JA/BENGALI SIGN VIRAMA/BENGALI LETTER RA
+                    key("\u099C", joinMoreKeys("\u099C\u09CD\u099E", "\u099C\u09CD\u099C",
+                            "\u099C\u09CD\u09AF", "\u099C\u09CD\u09AC", "\u099C\u09CD\u09B0")),
+                    // U+0995: "ক" BENGALI LETTER KA
+                    // U+0995/U+09CD/U+09B7:
+                    //     "ক্ষ" BENGALI LETTER KA/BENGALI SIGN VIRAMA/BENGALI LETTER SSA
+                    // U+0995/U+09CD/U+0995:
+                    //     "ক্ক" BENGALI LETTER KA/BENGALI SIGN VIRAMA/BENGALI LETTER KA
+                    // U+0995/U+09CD/U+099F:
+                    //     "ক্ট" BENGALI LETTER KA/BENGALI SIGN VIRAMA/BENGALI LETTER TTA
+                    // U+0995/U+09CD/U+09A4:
+                    //     "ক্ত" BENGALI LETTER KA/BENGALI SIGN VIRAMA/BENGALI LETTER TA
+                    // U+0995/U+09CD/U+09B0:
+                    //     "ক্র" BENGALI LETTER KA/BENGALI SIGN VIRAMA/BENGALI LETTER RA
+                    // U+0995/U+09CD/U+09B8:
+                    //     "ক্স" BENGALI LETTER KA/BENGALI SIGN VIRAMA/BENGALI LETTER SA
+                    // U+0995/U+09CD/U+09B2:
+                    //     "ক্ল" BENGALI LETTER KA/BENGALI SIGN VIRAMA/BENGALI LETTER LA
+                    key("\u0995", joinMoreKeys("\u0995\u09CD\u09B7", "\u0995\u09CD\u0995",
+                            "\u0995\u09CD\u099F", "\u0995\u09CD\u09A4", "\u0995\u09CD\u09B0",
+                            "\u0995\u09CD\u09B8", "\u0995\u09CD\u09B2")),
+                    // U+09B2: "ল" BENGALI LETTER LA
+                    // U+09B2/U+09CD/U+0995:
+                    //     "ল্ক" BENGALI LETTER LA/BENGALI SIGN VIRAMA/BENGALI LETTER KA
+                    // U+09B2/U+09CD/U+0997:
+                    //     "ল্গ" BENGALI LETTER LA/BENGALI SIGN VIRAMA/BENGALI LETTER GA
+                    // U+09B2/U+09CD/U+099F:
+                    //     "ল্ট" BENGALI LETTER LA/BENGALI SIGN VIRAMA/BENGALI LETTER TTA
+                    // U+09B2/U+09CD/U+09A1:
+                    //     "ল্ড" BENGALI LETTER LA/BENGALI SIGN VIRAMA/BENGALI LETTER DDA
+                    // U+09B2/U+09CD/U+09A4:
+                    //     "ল্ত" BENGALI LETTER LA/BENGALI SIGN VIRAMA/BENGALI LETTER TA
+                    // U+09B2/U+09CD/U+09A6:
+                    //     "ল্দ" BENGALI LETTER LA/BENGALI SIGN VIRAMA/BENGALI LETTER DA
+                    // U+09B2/U+09CD/U+09A7:
+                    //     "ল্ধ" BENGALI LETTER LA/BENGALI SIGN VIRAMA/BENGALI LETTER DHA
+                    // U+09B2/U+09CD/U+09AA:
+                    //     "ল্প" BENGALI LETTER LA/BENGALI SIGN VIRAMA/BENGALI LETTER PA
+                    // U+09B2/U+09CD/U+09AB:
+                    //     "ল্ফ" BENGALI LETTER LA/BENGALI SIGN VIRAMA/BENGALI LETTER PHA
+                    // U+09B2/U+09CD/U+09AC:
+                    //     "ল্ব" BENGALI LETTER LA/BENGALI SIGN VIRAMA/BENGALI LETTER BA
+                    // U+09B2/U+09CD/U+09AE:
+                    //     "ল্ম" BENGALI LETTER LA/BENGALI SIGN VIRAMA/BENGALI LETTER MA
+                    // U+09B2/U+09CD/U+09B2:
+                    //     "ল্ল" BENGALI LETTER LA/BENGALI SIGN VIRAMA/BENGALI LETTER LA
+                    key("\u09B2", joinMoreKeys("\u09B2\u09CD\u0995", "\u09B2\u09CD\u0997",
+                            "\u09B2\u09CD\u099F", "\u09B2\u09CD\u09A1", "\u09B2\u09CD\u09A4",
+                            "\u09B2\u09CD\u09A6", "\u09B2\u09CD\u09A7", "\u09B2\u09CD\u09AA",
+                            "\u09B2\u09CD\u09AB", "\u09B2\u09CD\u09AC", "\u09B2\u09CD\u09AE",
+                            "\u09B2\u09CD\u09B2")),
+                    // U+0987: "ই" BENGALI LETTER I
+                    key("\u0987"),
+                    // U+0989: "উ" BENGALI LETTER U
+                    key("\u0989"))
+            .setKeysOfRow(3,
+                    // U+09AF: "য" BENGALI LETTER YA
+                    // U+09CD/U+09AF: "্য" BENGALI SIGN VIRAMA/BENGALI LETTER YA
+                    key("\u09AF", moreKey("\u09CD\u09AF")),
+                    // U+09B7: "ষ" BENGALI LETTER SSA
+                    // U+09B7/U+09CD/U+0995:
+                    //     "ষ্ক" BENGALI LETTER SSA/BENGALI SIGN VIRAMA/BENGALI LETTER KA
+                    // U+09B7/U+09CD/U+099F:
+                    //     "ষ্ট" BENGALI LETTER SSA/BENGALI SIGN VIRAMA/BENGALI LETTER TTA
+                    // U+09B7/U+09CD/U+09A0:
+                    //     "ষ্ঠ" BENGALI LETTER SSA/BENGALI SIGN VIRAMA/BENGALI LETTER TTHA
+                    // U+09B7/U+09CD/U+09A3:
+                    //     "ষ্ণ" BENGALI LETTER SSA/BENGALI SIGN VIRAMA/BENGALI LETTER NNA
+                    // U+09B7/U+09CD/U+09AA:
+                    //     "ষ্প" BENGALI LETTER SSA/BENGALI SIGN VIRAMA/BENGALI LETTER PA
+                    // U+09B7/U+09CD/U+09AB:
+                    //     "ষ্ফ" BENGALI LETTER SSA/BENGALI SIGN VIRAMA/BENGALI LETTER PHA
+                    // U+09B7/U+09CD/U+09AE:
+                    //     "ষ্ম" BENGALI LETTER SSA/BENGALI SIGN VIRAMA/BENGALI LETTER MA
+                    key("\u09B7", joinMoreKeys("\u09B7\u09CD\u0995", "\u09B7\u09CD\u099F",
+                            "\u09B7\u09CD\u09A0", "\u09B7\u09CD\u09A3", "\u09B7\u09CD\u09AA",
+                            "\u09B7\u09CD\u09AB", "\u09B7\u09CD\u09AE")),
+                    // U+099A: "চ" BENGALI LETTER CA
+                    // U+099A/U+09CD/U+099A:
+                    //     "চ্চ" BENGALI LETTER CA/BENGALI SIGN VIRAMA/BENGALI LETTER CA
+                    // U+099A/U+09CD/U+099B:
+                    //     "চ্ছ" BENGALI LETTER CA/BENGALI SIGN VIRAMA/BENGALI LETTER CHA
+                    key("\u099A", joinMoreKeys("\u099A\u09CD\u099A", "\u099A\u09CD\u099B")),
+                    // U+09AD: "ভ" BENGALI LETTER BHA
+                    // U+09AD/U+09CD/U+09AF:
+                    //     "ভ্" BENGALI LETTER BHA/BENGALI SIGN VIRAMA/BENGALI LETTER YA
+                    // U+09AD/U+09CD/U+09B0:
+                    //     "ভ্র" BENGALI LETTER BHA/BENGALI SIGN VIRAMA/BENGALI LETTER RA
+                    // U+09AD/U+09CD/U+09B2:
+                    //     "ভ্ল" BENGALI LETTER BHA/BENGALI SIGN VIRAMA/BENGALI LETTER LA
+                    key("\u09AD", joinMoreKeys("\u09AD\u09CD\u09AF", "\u09AD\u09CD\u09B0",
+                            "\u09AD\u09CD\u09B2")),
+                    // U+09AC: "ব" BENGALI LETTER BA
+                    // U+09CD/U+09AC: "্ব" BENGALI SIGN VIRAMA/BENGALI LETTER BA
+                    // U+09AC/U+09CD/U+09B0:
+                    //     "ব্র" BENGALI LETTER BA/BENGALI SIGN VIRAMA/BENGALI LETTER RA
+                    // U+09AC/U+09CD/U+099C:
+                    //     "ব্জ" BENGALI LETTER BA/BENGALI SIGN VIRAMA/BENGALI LETTER JA
+                    // U+09AC/U+09CD/U+09A6:
+                    //     "ব্দ" BENGALI LETTER BA/BENGALI SIGN VIRAMA/BENGALI LETTER DA
+                    // U+09AC/U+09CD/U+09A7:
+                    //     "ব্ধ" BENGALI LETTER BA/BENGALI SIGN VIRAMA/BENGALI LETTER DHA
+                    // U+09AC/U+09CD/U+09AC:
+                    //     "ব্ব" BENGALI LETTER BA/BENGALI SIGN VIRAMA/BENGALI LETTER BA
+                    // U+09AC/U+09CD/U+09B2:
+                    //     "ব্ল" BENGALI LETTER BA/BENGALI SIGN VIRAMA/BENGALI LETTER LA
+                    // U+09F1: "ৱ" BENGALI LETTER RA WITH MIDDLE DIAGONAL
+                    // U+09F0: "ৰ" BENGALI LETTER RA WITH LOWER DIAGONAL
+                    key("\u09AC", joinMoreKeys("\u09CD\u09AC", "\u09AC\u09CD\u09B0",
+                            "\u09AC\u09CD\u099C", "\u09AC\u09CD\u09A6", "\u09AC\u09CD\u09A7",
+                            "\u09AC\u09CD\u09AC", "\u09AC\u09CD\u09B2", "\u09F1", "\u09F0")),
+                    // U+09A8: "ন" BENGALI LETTER NA
+                    // U+09A8/U+09CD/U+09A4:
+                    //     "ন্ত" BENGALI LETTER NA/BENGALI SIGN VIRAMA/BENGALI LETTER TA
+                    // U+09A8/U+09CD/U+09A5:
+                    //     "ন্থ" BENGALI LETTER NA/BENGALI SIGN VIRAMA/BENGALI LETTER THA
+                    // U+09A8/U+09CD/U+099F:
+                    //     "ন্ট" BENGALI LETTER NA/BENGALI SIGN VIRAMA/BENGALI LETTER TTA
+                    // U+09A8/U+09CD/U+09A6:
+                    //     "ন্দ" BENGALI LETTER NA/BENGALI SIGN VIRAMA/BENGALI LETTER DA
+                    // U+09A8/U+09CD/U+09A7:
+                    //     "ন্ধ" BENGALI LETTER NA/BENGALI SIGN VIRAMA/BENGALI LETTER DHA
+                    // U+09A8/U+09CD/U+09A1:
+                    //     "ন্ড" BENGALI LETTER NA/BENGALI SIGN VIRAMA/BENGALI LETTER DDA
+                    // U+09A8/U+09CD/U+09A8:
+                    //     "ন্ন" BENGALI LETTER NA/BENGALI SIGN VIRAMA/BENGALI LETTER NA
+                    // U+09A8/U+09CD/U+09AC:
+                    //     "ন্ব" BENGALI LETTER NA/BENGALI SIGN VIRAMA/BENGALI LETTER BA
+                    // U+09A8/U+09CD/U+09AE:
+                    //     "ন্ম" BENGALI LETTER NA/BENGALI SIGN VIRAMA/BENGALI LETTER MA
+                    // U+09A8/U+09CD/U+09B8:
+                    //     "ন্স" BENGALI LETTER NA/BENGALI SIGN VIRAMA/BENGALI LETTER SA
+                    key("\u09A8", joinMoreKeys("\u09A8\u09CD\u09A4", "\u09A8\u09CD\u09A5",
+                            "\u09A8\u09CD\u099F", "\u09A8\u09CD\u09A6", "\u09A8\u09CD\u09A7",
+                            "\u09A8\u09CD\u09A1", "\u09A8\u09CD\u09A8", "\u09A8\u09CD\u09AC",
+                            "\u09A8\u09CD\u09AE", "\u09A8\u09CD\u09B8")),
+                    // U+09AE: "ম" BENGALI LETTER MA
+                    // U+09AE/U+09CD/U+09A8:
+                    //     "ম্ন" BENGALI LETTER MA/BENGALI SIGN VIRAMA/BENGALI LETTER NA
+                    // U+09AE/U+09CD/U+09AA:
+                    //     "ম্প" BENGALI LETTER MA/BENGALI SIGN VIRAMA/BENGALI LETTER PA
+                    // U+09AE/U+09CD/U+09AC:
+                    //     "ম্ব" BENGALI LETTER MA/BENGALI SIGN VIRAMA/BENGALI LETTER BA
+                    // U+09AE/U+09CD/U+09AD:
+                    //     "ম্ভ" BENGALI LETTER MA/BENGALI SIGN VIRAMA/BENGALI LETTER BHA
+                    // U+09AE/U+09CD/U+09AE:
+                    //     "ম্ম" BENGALI LETTER MA/BENGALI SIGN VIRAMA/BENGALI LETTER MA
+                    // U+09AE/U+09CD/U+09B0:
+                    //     "ম্র" BENGALI LETTER MA/BENGALI SIGN VIRAMA/BENGALI LETTER RA
+                    // U+09AE/U+09CD/U+09B2:
+                    //     "ম্ল" BENGALI LETTER MA/BENGALI SIGN VIRAMA/BENGALI LETTER LA
+                    key("\u09AE", joinMoreKeys("\u09AE\u09CD\u09A8", "\u09AE\u09CD\u09AA",
+                            "\u09AE\u09CD\u09AC", "\u09AE\u09CD\u09AD", "\u09AE\u09CD\u09AE",
+                            "\u09AE\u09CD\u09B0", "\u09AE\u09CD\u09B2")),
+                    // U+098F: "এ" BENGALI LETTER E
+                    key("\u098F"),
+                    // U+0993: "ও" BENGALI LETTER O
+                    key("\u0993"))
+            .build();
+
+    private static final ExpectedKey[][] ALPHABET_SHIFTED_COMMON = new ExpectedKeyboardBuilder()
+            .setKeysOfRow(1,
+                    // U+09A2: "ঢ" BENGALI LETTER DDHA
+                    key("\u09A2"),
+                    // U+09A0: "ঠ" BENGALI LETTER TTHA
+                    key("\u09A0"),
+                    // U+09C8: "ৈ" BENGALI VOWEL SIGN AI
+                    // U+0990: "ঐ" BENGALI LETTER AI
+                    key("\u09C8", moreKey("\u0990")),
+                    // U+09DC: "ড়" BENGALI LETTER RRA
+                    // U+09BC: "়" BENGALI SIGN NUKTA
+                    key("\u09DC", moreKey("\u09BC")),
+                    // U+099F: "ট" BENGALI LETTER TTA
+                    // U+09F3: "৳" BENGALI RUPEE SIGN
+                    // U+099F/U+09CD/U+099F:
+                    //     "ট্ট" BENGALI LETTER TTA/BENGALI SIGN VIRAMA/BENGALI LETTER TTA
+                    // U+099F/U+09CD/U+09AC:
+                    //     "ট্ব" BENGALI LETTER TTA/BENGALI SIGN VIRAMA/BENGALI LETTER BA
+                    // U+099F/U+09CD/U+09AE:
+                    //     "ট্ম" BENGALI LETTER TTA/BENGALI SIGN VIRAMA/BENGALI LETTER MA
+                    key("\u099F", joinMoreKeys("\u09F3", "\u099F\u09CD\u099F", "\u099F\u09CD\u09AC",
+                            "\u099F\u09CD\u09AE")),
+                    // U+099E: "ঞ" BENGALI LETTER NYA
+                    // U+099E/U+09CD/U+099A:
+                    //     "ঞ্চ" BENGALI LETTER NYA/BENGALI SIGN VIRAMA/BENGALI LETTER CA
+                    // U+099E/U+09CD/U+099B:
+                    //     "ঞ্ছ" BENGALI LETTER NYA/BENGALI SIGN VIRAMA/BENGALI LETTER CHA
+                    // U+099E/U+09CD/U+099C:
+                    //     "ঞ্জ" BENGALI LETTER NYA/BENGALI SIGN VIRAMA/BENGALI LETTER JA
+                    key("\u099E", joinMoreKeys("\u099E\u09CD\u099A", "\u099E\u09CD\u099B",
+                            "\u099E\u09CD\u099C")),
+                    // U+09C2: "ূ" BENGALI VOWEL SIGN UU
+                    // U+098A: "ঊ" BENGALI LETTER UU
+                    key("\u09C2", moreKey("\u098A")),
+                    // U+09C0: "ী" BENGALI VOWEL SIGN II
+                    // U+0988: "ঈ" BENGALI LETTER II
+                    key("\u09C0", moreKey("\u0988")),
+                    // U+09CC: "ৌ" BENGALI VOWEL SIGN AU
+                    // U+099A: "ঔ" BENGALI LETTER CA
+                    // U+09D7: "ৗ" BENGALI AU LENGTH MARK
+                    key("\u09CC", joinMoreKeys("\u099A", "\u09D7")),
+                    // U+09AB: "ফ" BENGALI LETTER PHA
+                    // U+09AB/U+09CD/U+099F:
+                    //     "ফ্ট" BENGALI LETTER PHA/BENGALI SIGN VIRAMA/BENGALI LETTER TTA
+                    // U+09AB/U+09CD/U+09AF:
+                    //     "ফ্য" BENGALI LETTER PHA/BENGALI SIGN VIRAMA/BENGALI LETTER YA
+                    // U+09AB/U+09CD/U+09B0:
+                    //     "ফ্র" BENGALI LETTER PHA/BENGALI SIGN VIRAMA/BENGALI LETTER RA
+                    // U+09AB/U+09CD/U+09B2:
+                    //     "ফ্ল" BENGALI LETTER PHA/BENGALI SIGN VIRAMA/BENGALI LETTER LA
+                    key("\u09AB", joinMoreKeys("\u09AB\u09CD\u099F", "\u09AB\u09CD\u09AF",
+                            "\u09AB\u09CD\u09B0", "\u09AB\u09CD\u09B2")),
+                    // U+098B: "ঋ" BENGALI LETTER VOCALIC R
+                    // U+098C: "ঌ" BENGALI LETTER VOCALIC L
+                    // U+09E1: "ৡ" BENGALI LETTER VOCALIC LL
+                    // U+09F4: "৴" BENGALI CURRENCY NUMERATOR ONE
+                    // U+09F5: "৵" BENGALI CURRENCY NUMERATOR TWO
+                    // U+09F6: "৶" BENGALI CURRENCY NUMERATOR THREE
+                    // U+09E2: " ৢ" BENGALI VOWEL SIGN VOCALIC L
+                    // U+09E3: " ৣ" BENGALI VOWEL SIGN VOCALIC LL
+                    key("\u098B", joinMoreKeys("\u098C", "\u09E1", "\u09F4", "\u09F5", "\u09F6",
+                            "\u09E2", "\u09E3")))
+            .setKeysOfRow(2,
+                    // U+0985: "অ" BENGALI LETTER A
+                    key("\u0985"),
+                    // U+09B6: "শ" BENGALI LETTER SHA
+                    // U+09B6/U+09CD/U+099A:
+                    //     "শ্চ" BENGALI LETTER SHA/BENGALI SIGN VIRAMA/BENGALI LETTER CA
+                    // U+09B6/U+09CD/U+099B:
+                    //     "শ্ছ" BENGALI LETTER SHA/BENGALI SIGN VIRAMA/BENGALI LETTER CHA
+                    // U+09B6/U+09CD/U+09A4:
+                    //     "শ্ত" BENGALI LETTER SHA/BENGALI SIGN VIRAMA/BENGALI LETTER TA
+                    // U+09B6/U+09CD/U+09A8:
+                    //     "শ্ন" BENGALI LETTER SHA/BENGALI SIGN VIRAMA/BENGALI LETTER NA
+                    // U+09B6/U+09CD/U+09AC:
+                    //     "শ্ব" BENGALI LETTER SHA/BENGALI SIGN VIRAMA/BENGALI LETTER BA
+                    // U+09B6/U+09CD/U+09AE:
+                    //     "শ্ম" BENGALI LETTER SHA/BENGALI SIGN VIRAMA/BENGALI LETTER MA
+                    // U+09B6/U+09CD/U+09B0:
+                    //     "শ্র" BENGALI LETTER SHA/BENGALI SIGN VIRAMA/BENGALI LETTER RA
+                    // U+09B6/U+09CD/U+09B2:
+                    //     "শ্ল" BENGALI LETTER SHA/BENGALI SIGN VIRAMA/BENGALI LETTER LA
+                    key("\u09B6", joinMoreKeys("\u09B6\u09CD\u099A", "\u09B6\u09CD\u099B",
+                            "\u09B6\u09CD\u09A4", "\u09B6\u09CD\u09A8", "\u09B6\u09CD\u09AC",
+                            "\u09B6\u09CD\u09AE", "\u09B6\u09CD\u09B0", "\u09B6\u09CD\u09B2")),
+                    // U+09A1: "ড" BENGALI LETTER DDA
+                    // U+09A1/U+09CD/U+09A1:
+                    //     "ড্ড" BENGALI LETTER DDA/BENGALI SIGN VIRAMA/BENGALI LETTER DDA
+                    key("\u09A1", moreKey("\u09A1\u09CD\u09A1")),
+                    // U+09DD: "ঢ়" BENGALI LETTER RHA
+                    key("\u09DD"),
+                    // U+0998: "ঘ" BENGALI LETTER GHA
+                    key("\u0998"),
+                    // U+09B9: "হ" BENGALI LETTER HA
+                    // U+09BD: "ঽ" BENGALI SIGN AVAGRAHA
+                    // U+09B9/U+09CD/U+09A3:
+                    //     "হ্ণ" BENGALI LETTER HA/BENGALI SIGN VIRAMA/BENGALI LETTER NNA
+                    // U+09B9/U+09CD/U+09A8:
+                    //     "হ্ন" BENGALI LETTER HA/BENGALI SIGN VIRAMA/BENGALI LETTER NA
+                    // U+09B9/U+09CD/U+09AC:
+                    //     "হ্ব" BENGALI LETTER HA/BENGALI SIGN VIRAMA/BENGALI LETTER BA
+                    // U+09B9/U+09CD/U+09AE:
+                    //     "হ্ম" BENGALI LETTER HA/BENGALI SIGN VIRAMA/BENGALI LETTER MA
+                    // U+09B9/U+09CD/U+09B0:
+                    //     "হ্র" BENGALI LETTER HA/BENGALI SIGN VIRAMA/BENGALI LETTER RA
+                    // U+09B9/U+09CD/U+09B2:
+                    //     "হ্ল" BENGALI LETTER HA/BENGALI SIGN VIRAMA/BENGALI LETTER LA
+                    key("\u09B9", joinMoreKeys("\u09BD", "\u09B9\u09CD\u09A3", "\u09B9\u09CD\u09A8",
+                            "\u09B9\u09CD\u09AC", "\u09B9\u09CD\u09AE", "\u09B9\u09CD\u09B0",
+                            "\u09B9\u09CD\u09B2")),
+                    // U+099D: "ঝ" BENGALI LETTER JHA
+                    key("\u099D"),
+                    // U+0996: "খ" BENGALI LETTER KHA
+                    key("\u0996"),
+                    // U+09CE: "ৎ" BENGALI LETTER KHANDA TA
+                    key("\u09CE"),
+                    // U+0988: "ঈ" BENGALI LETTER II
+                    key("\u0988"),
+                    // U+098A: "ঊ" BENGALI LETTER UU
+                    key("\u098A"))
+            .setKeysOfRow(3,
+                    // U+0964: "।" DEVANAGARI DANDA
+                    // U+0965: "॥" DEVANAGARI DOUBLE DANDA
+                    key("\u0964", moreKey("\u0965")),
+                    // U+0999: "ঙ BENGALI LETTER NGA
+                    // U+0999/U+09CD/U+0995: "ঙ্ক"
+                    // U+0999/U+09CD/U+0996: "ঙ্খ"
+                    // U+0999/U+09CD/U+0997: "ঙ্গ"
+                    key("\u0999", joinMoreKeys("\u0999\u09CD\u0995", "\u0999\u09CD\u0996",
+                            "\u0999\u09CD\u0997")),
+                    // U+099B: "ছ" BENGALI LETTER CHA
+                    key("\u099B"),
+                    // U+0983: "ঃ" BENGALI SIGN VISARGA
+                    key("\u0983"),
+                    // U+0981: "ঁ" BENGALI SIGN CANDRABINDU
+                    key("\u0981"),
+                    // U+09A3: "ণ" BENGALI LETTER NNA
+                    // U+09A3/U+09CD/U+099F:
+                    //     "ণ্ট" BENGALI LETTER NNA/BENGALI SIGN VIRAMA/BENGALI LETTER TT/A
+                    // U+09A3/U+09CD/U+09A1:
+                    //     "ণ্ড" BENGALI LETTER NNA/BENGALI SIGN VIRAMA/BENGALI LETTER DDA
+                    // U+09A3/U+09CD/U+09A3:
+                    //     "ণ্ণ" BENGALI LETTER NNA/BENGALI SIGN VIRAMA/BENGALI LETTER NN
+                    key("\u09A3", joinMoreKeys("\u09A3\u09CD\u099F", "\u09A3\u09CD\u09A1",
+                            "\u09A3\u09CD\u09A3")),
+                    // U+0982: "ং" BENGALI SIGN ANUSVARA
+                    key("\u0982"),
+                    // U+0990: "ঐ" BENGALI LETTER AI
+                    key("\u0990"),
+                    // U+0994: "ঔ" BENGALI LETTER AU
+                    key("\u0994"))
+            .build();
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Bulgarian.java b/tests/src/com/android/inputmethod/keyboard/layout/Bulgarian.java
index 3282e44..bbe0384 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Bulgarian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Bulgarian.java
@@ -16,7 +16,8 @@
 
 package com.android.inputmethod.keyboard.layout;
 
-import com.android.inputmethod.keyboard.layout.EastSlavic.EastSlavicCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.EastSlavicCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
@@ -25,17 +26,17 @@
 public final class Bulgarian extends LayoutBase {
     private static final String LAYOUT_NAME = "bulgarian";
 
-    public Bulgarian(final LayoutCustomizer customizer) {
-        super(customizer, Symbols.class, SymbolsShifted.class);
+    public Bulgarian(final Locale locale) {
+        super(new BulgarianCustomizer(locale), Symbols.class, SymbolsShifted.class);
     }
 
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class BulgarianCustomizer extends LayoutCustomizer {
+    private static class BulgarianCustomizer extends LayoutCustomizer {
         private final EastSlavicCustomizer mEastSlavicCustomizer;
 
-        public BulgarianCustomizer(final Locale locale) {
+        BulgarianCustomizer(final Locale locale) {
             super(locale);
             mEastSlavicCustomizer = new EastSlavicCustomizer(locale);
         }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/BulgarianBds.java b/tests/src/com/android/inputmethod/keyboard/layout/BulgarianBds.java
index 20a5f7d..74372b9 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/BulgarianBds.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/BulgarianBds.java
@@ -16,7 +16,7 @@
 
 package com.android.inputmethod.keyboard.layout;
 
-import com.android.inputmethod.keyboard.layout.EastSlavic.EastSlavicCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.EastSlavicCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
@@ -25,15 +25,15 @@
 public final class BulgarianBds extends LayoutBase {
     private static final String LAYOUT_NAME = "bulgarian_bds";
 
-    public BulgarianBds(final LayoutCustomizer customizer) {
-        super(customizer, Symbols.class, SymbolsShifted.class);
+    public BulgarianBds(final Locale locale) {
+        super(new BulgarianBdsCustomizer(locale), Symbols.class, SymbolsShifted.class);
     }
 
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class BulgarianBdsCustomizer extends EastSlavicCustomizer {
-        public BulgarianBdsCustomizer(final Locale locale) { super(locale); }
+    private static class BulgarianBdsCustomizer extends EastSlavicCustomizer {
+        BulgarianBdsCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Colemak.java b/tests/src/com/android/inputmethod/keyboard/layout/Colemak.java
index a4a9701..3f8ce28 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Colemak.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Colemak.java
@@ -17,6 +17,7 @@
 package com.android.inputmethod.keyboard.layout;
 
 import com.android.inputmethod.keyboard.KeyboardId;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Dvorak.java b/tests/src/com/android/inputmethod/keyboard/layout/Dvorak.java
index ba94c8d..7cb3b92 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Dvorak.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Dvorak.java
@@ -17,12 +17,9 @@
 package com.android.inputmethod.keyboard.layout;
 
 import com.android.inputmethod.keyboard.KeyboardId;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKey.ExpectedAdditionalMoreKey;
-import com.android.inputmethod.latin.settings.CustomInputStyleSettingsFragment;
-
-import java.util.Locale;
 
 /**
  * The Dvorak alphabet keyboard.
@@ -37,52 +34,17 @@
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class DvorakCustomizer extends LayoutCustomizer {
-        public DvorakCustomizer(final Locale locale) { super(locale); }
-
-        @Override
-        public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) {
-            return isPhone ? joinKeys(SHIFT_KEY): joinKeys(SHIFT_KEY, key("q"));
-        }
-
-        @Override
-        public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
-            return isPhone ? EMPTY_KEYS : joinKeys(key("z"), SHIFT_KEY);
-        }
-
-        @Override
-        public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
-            // U+00A1: "¡" INVERTED EXCLAMATION MARK
-            return isPhone ? joinKeys(key("q", SETTINGS_KEY))
-                    : joinKeys(key("!", joinMoreKeys("\u00A1", SETTINGS_KEY)));
-        }
-
-        @Override
-        public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
-            final ExpectedAdditionalMoreKey[] punctuationMoreKeys =
-                    convertToAdditionalMoreKeys(getPunctuationMoreKeys(isPhone));
-            // U+00BF: "¿" INVERTED QUESTION MARK
-            return isPhone
-                    ? joinKeys(key("z", punctuationMoreKeys))
-                    : joinKeys(key("?", joinMoreKeys(punctuationMoreKeys, "\u00BF")));
-        }
-
-        private static ExpectedAdditionalMoreKey[] convertToAdditionalMoreKeys(
-                final ExpectedKey ... moreKeys) {
-            final ExpectedAdditionalMoreKey[] additionalMoreKeys =
-                    new ExpectedAdditionalMoreKey[moreKeys.length];
-            for (int index = 0; index < moreKeys.length; index++) {
-                additionalMoreKeys[index] = ExpectedAdditionalMoreKey.newInstance(moreKeys[index]);
-            }
-            return additionalMoreKeys;
-        }
-    }
-
     @Override
     public ExpectedKey[][] getCommonAlphabetLayout(final boolean isPhone) {
         return ALPHABET_COMMON;
     }
 
+    /**
+     * Get the left most key of the first row.
+     * @param isPhone true if requesting phone's keys.
+     * @param elementId the element id of the requesting shifted mode.
+     * @return the left most key of the first row.
+     */
     protected ExpectedKey getRow1_1Key(final boolean isPhone, final int elementId) {
         if (elementId == KeyboardId.ELEMENT_ALPHABET
                 || elementId == KeyboardId.ELEMENT_ALPHABET_AUTOMATIC_SHIFTED) {
@@ -91,6 +53,12 @@
         return key("\"", additionalMoreKey("1"));
     }
 
+    /**
+     * Get the 2nd left key of the first row.
+     * @param isPhone true if requesting phone's keys.
+     * @param elementId the element id of the requesting shifted mode.
+     * @return the 2nd left key of the first row.
+     */
     protected ExpectedKey getRow1_2Key(final boolean isPhone, final int elementId) {
         if (elementId == KeyboardId.ELEMENT_ALPHABET
                 || elementId == KeyboardId.ELEMENT_ALPHABET_AUTOMATIC_SHIFTED) {
@@ -99,6 +67,12 @@
         return key("<", additionalMoreKey("2"));
     }
 
+    /**
+     * Get the 3rd left key of the first row.
+     * @param isPhone true if requesting phone's keys.
+     * @param elementId the element id of the requesting shifted mode.
+     * @return the 3rd left key of the first row.
+     */
     protected ExpectedKey getRow1_3Key(final boolean isPhone, final int elementId) {
         if (elementId == KeyboardId.ELEMENT_ALPHABET
                 || elementId == KeyboardId.ELEMENT_ALPHABET_AUTOMATIC_SHIFTED) {
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/EastSlavic.java b/tests/src/com/android/inputmethod/keyboard/layout/EastSlavic.java
index 7fcc974..f95d2d2 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/EastSlavic.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/EastSlavic.java
@@ -16,11 +16,9 @@
 
 package com.android.inputmethod.keyboard.layout;
 
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-import com.android.inputmethod.latin.Constants;
-
-import java.util.Locale;
 
 public final class EastSlavic extends LayoutBase {
     private static final String LAYOUT_NAME = "east_slavic";
@@ -32,26 +30,6 @@
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class EastSlavicCustomizer extends LayoutCustomizer {
-        public EastSlavicCustomizer(final Locale locale) {
-            super(locale);
-        }
-
-        @Override
-        public final ExpectedKey getAlphabetKey() { return EAST_SLAVIC_ALPHABET_KEY; }
-
-        @Override
-        public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
-            return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
-        }
-
-        // U+0410: "А" CYRILLIC CAPITAL LETTER A
-        // U+0411: "Б" CYRILLIC CAPITAL LETTER BE
-        // U+0412: "В" CYRILLIC CAPITAL LETTER VE
-        private static final ExpectedKey EAST_SLAVIC_ALPHABET_KEY = key(
-                "\u0410\u0411\u0412", Constants.CODE_SWITCH_ALPHA_SYMBOL);
-    }
-
     @Override
     ExpectedKey[][] getCommonAlphabetLayout(final boolean isPhone) { return ALPHABET_COMMON; }
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Farsi.java b/tests/src/com/android/inputmethod/keyboard/layout/Farsi.java
index 7390457..6dc4559 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Farsi.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Farsi.java
@@ -18,26 +18,25 @@
 
 import com.android.inputmethod.keyboard.layout.Symbols.RtlSymbols;
 import com.android.inputmethod.keyboard.layout.SymbolsShifted.RtlSymbolsShifted;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.common.Constants;
 
 import java.util.Locale;
 
 public final class Farsi extends LayoutBase {
     private static final String LAYOUT_NAME = "farsi";
 
-    public Farsi(final LayoutCustomizer customizer) {
-        super(customizer, FarsiSymbols.class, FarsiSymbolsShifted.class);
+    public Farsi(final Locale locale) {
+        super(new FarsiCustomizer(locale), FarsiSymbols.class, FarsiSymbolsShifted.class);
     }
 
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class FarsiCustomizer extends LayoutCustomizer {
-        public FarsiCustomizer(final Locale locale) {
-            super(locale);
-        }
+    private static class FarsiCustomizer extends LayoutCustomizer {
+        FarsiCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey getAlphabetKey() { return FARSI_ALPHABET_KEY; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Georgian.java b/tests/src/com/android/inputmethod/keyboard/layout/Georgian.java
index 6f20dfc..d1ac5fd 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Georgian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Georgian.java
@@ -17,9 +17,10 @@
 package com.android.inputmethod.keyboard.layout;
 
 import com.android.inputmethod.keyboard.KeyboardId;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.common.Constants;
 
 import java.util.Locale;
 
@@ -29,15 +30,15 @@
 public final class Georgian extends LayoutBase {
     private static final String LAYOUT_NAME = "georgian";
 
-    public Georgian(final LayoutCustomizer customizer) {
-        super(customizer, Symbols.class, SymbolsShifted.class);
+    public Georgian(final Locale locale) {
+        super(new GeorgianCustomizer(locale), Symbols.class, SymbolsShifted.class);
     }
 
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class GeorgianCustomizer extends LayoutCustomizer {
-        public GeorgianCustomizer(final Locale locale) { super(locale); }
+    private static class GeorgianCustomizer extends LayoutCustomizer {
+        GeorgianCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey getAlphabetKey() { return GEORGIAN_ALPHABET_KEY; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Greek.java b/tests/src/com/android/inputmethod/keyboard/layout/Greek.java
index 475052c..0209c2a 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Greek.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Greek.java
@@ -17,9 +17,10 @@
 package com.android.inputmethod.keyboard.layout;
 
 import com.android.inputmethod.keyboard.KeyboardId;
+import com.android.inputmethod.keyboard.layout.customizer.EuroCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.common.Constants;
 
 import java.util.Locale;
 
@@ -29,15 +30,15 @@
 public final class Greek extends LayoutBase {
     private static final String LAYOUT_NAME = "greek";
 
-    public Greek(final LayoutCustomizer customizer) {
-        super(customizer, Symbols.class, SymbolsShifted.class);
+    public Greek(final Locale locale) {
+        super(new GreekCustomizer(locale), Symbols.class, SymbolsShifted.class);
     }
 
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class GreekCustomizer extends EuroCustomizer {
-        public GreekCustomizer(final Locale locale) { super(locale); }
+    private static class GreekCustomizer extends EuroCustomizer {
+        GreekCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey getAlphabetKey() { return GREEK_ALPHABET_KEY; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Hebrew.java b/tests/src/com/android/inputmethod/keyboard/layout/Hebrew.java
index 552f0d3..1b91b47 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Hebrew.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Hebrew.java
@@ -18,26 +18,25 @@
 
 import com.android.inputmethod.keyboard.layout.Symbols.RtlSymbols;
 import com.android.inputmethod.keyboard.layout.SymbolsShifted.RtlSymbolsShifted;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.common.Constants;
 
 import java.util.Locale;
 
 public final class Hebrew extends LayoutBase {
     private static final String LAYOUT_NAME = "hebrew";
 
-    public Hebrew(final LayoutCustomizer customizer) {
-        super(customizer, HebrewSymbols.class, RtlSymbolsShifted.class);
+    public Hebrew(final Locale locale) {
+        super(new HebrewCustomizer(locale), HebrewSymbols.class, RtlSymbolsShifted.class);
     }
 
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class HebrewCustomizer extends LayoutCustomizer {
-        public HebrewCustomizer(final Locale locale) {
-            super(locale);
-        }
+    private static class HebrewCustomizer extends LayoutCustomizer {
+        HebrewCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey getAlphabetKey() { return HEBREW_ALPHABET_KEY; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Hindi.java b/tests/src/com/android/inputmethod/keyboard/layout/Hindi.java
index b12b8be..82f67ac 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Hindi.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Hindi.java
@@ -19,11 +19,9 @@
 import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.*;
 
 import com.android.inputmethod.keyboard.KeyboardId;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-import com.android.inputmethod.latin.Constants;
-
-import java.util.Locale;
 
 /**
  * The Hindi keyboard.
@@ -38,50 +36,6 @@
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class HindiCustomizer extends LayoutCustomizer {
-        public HindiCustomizer(final Locale locale) { super(locale); }
-
-        @Override
-        public ExpectedKey getAlphabetKey() { return HINDI_ALPHABET_KEY; }
-
-        @Override
-        public ExpectedKey getSymbolsKey() { return HINDI_SYMBOLS_KEY; }
-
-        @Override
-        public ExpectedKey getBackToSymbolsKey() { return HINDI_BACK_TO_SYMBOLS_KEY; }
-
-        @Override
-        public ExpectedKey getCurrencyKey() { return CURRENCY_RUPEE; }
-
-        @Override
-        public ExpectedKey[] getOtherCurrencyKeys() {
-            return SymbolsShifted.CURRENCIES_OTHER_GENERIC;
-        }
-
-        @Override
-        public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
-            return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
-        }
-
-        // U+0915: "क" DEVANAGARI LETTER KA
-        // U+0916: "ख" DEVANAGARI LETTER KHA
-        // U+0917: "ग" DEVANAGARI LETTER GA
-        private static final ExpectedKey HINDI_ALPHABET_KEY = key(
-                "\u0915\u0916\u0917", Constants.CODE_SWITCH_ALPHA_SYMBOL);
-        // U+0967: "१" DEVANAGARI DIGIT ONE
-        // U+0968: "२" DEVANAGARI DIGIT TWO
-        // U+0969: "३" DEVANAGARI DIGIT THREE
-        private static final String HINDI_SYMBOLS_LABEL = "?\u0967\u0968\u0969";
-        private static final ExpectedKey HINDI_SYMBOLS_KEY = key(HINDI_SYMBOLS_LABEL,
-                Constants.CODE_SWITCH_ALPHA_SYMBOL);
-        private static final ExpectedKey HINDI_BACK_TO_SYMBOLS_KEY = key(HINDI_SYMBOLS_LABEL,
-                Constants.CODE_SHIFT);
-
-        // U+20B9: "₹" INDIAN RUPEE SIGN
-        private static final ExpectedKey CURRENCY_RUPEE = key("\u20B9",
-                Symbols.CURRENCY_GENERIC_MORE_KEYS);
-    }
-
     @Override
     ExpectedKey[][] getCommonAlphabetLayout(boolean isPhone) { return ALPHABET_COMMON; }
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/HindiCompact.java b/tests/src/com/android/inputmethod/keyboard/layout/HindiCompact.java
index c2a15f3..a2e3399 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/HindiCompact.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/HindiCompact.java
@@ -18,8 +18,8 @@
 
 import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.*;
 
-import com.android.inputmethod.keyboard.layout.Hindi.HindiCustomizer;
 import com.android.inputmethod.keyboard.layout.Hindi.HindiSymbols;
+import com.android.inputmethod.keyboard.layout.customizer.HindiCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
@@ -31,41 +31,20 @@
 public final class HindiCompact extends LayoutBase {
     private static final String LAYOUT_NAME = "hindi_compact";
 
-    public HindiCompact(final LayoutCustomizer customizer) {
-        super(customizer, HindiSymbols.class, SymbolsShifted.class);
+    public HindiCompact(final Locale locale) {
+        super(new HindiCompactCustomizer(locale), HindiSymbols.class, SymbolsShifted.class);
     }
 
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class HindiCompactCustomizer extends HindiCustomizer {
-        public HindiCompactCustomizer(final Locale locale) { super(locale); }
+    private static class HindiCompactCustomizer extends HindiCustomizer {
+        HindiCompactCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) {
             return EMPTY_KEYS;
         }
-
-        @Override
-        public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
-            // U+0964: "।" DEVANAGARI DANDA
-            final ExpectedKey periodKey = key("\u0964", getPunctuationMoreKeys(isPhone));
-            return joinKeys(periodKey);
-        }
-
-        @Override
-        public ExpectedKey[] getPunctuationMoreKeys(final boolean isPhone) {
-            return isPhone ? HINDI_PHONE_PUNCTUATION_MORE_KEYS : HINDI_TABLET_PUNCTUATION_MORE_KEYS;
-        }
-
-        // Punctuation more keys for phone form factor.
-        private static final ExpectedKey[] HINDI_PHONE_PUNCTUATION_MORE_KEYS = joinKeys(
-                ",", ".", "?", "!", "#", ")", "(", "/", ";",
-                "'", "@", ":", "-", "\"", "+", "%", "&");
-        // Punctuation more keys for tablet form factor.
-        private static final ExpectedKey[] HINDI_TABLET_PUNCTUATION_MORE_KEYS = joinKeys(
-                ",", ".", "'", "#", ")", "(", "/", ";",
-                "@", ":", "-", "\"", "+", "%", "&");
     }
 
     @Override
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Kannada.java b/tests/src/com/android/inputmethod/keyboard/layout/Kannada.java
index 8bee1f8..5a8d32c 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Kannada.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Kannada.java
@@ -16,9 +16,10 @@
 
 package com.android.inputmethod.keyboard.layout;
 
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.common.Constants;
 
 import java.util.Locale;
 
@@ -28,15 +29,15 @@
 public final class Kannada extends LayoutBase {
     private static final String LAYOUT_NAME = "kannada";
 
-    public Kannada(final LayoutCustomizer customizer) {
-        super(customizer, Symbols.class, SymbolsShifted.class);
+    public Kannada(final Locale locale) {
+        super(new KannadaCustomizer(locale), Symbols.class, SymbolsShifted.class);
     }
 
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class KannadaCustomizer extends LayoutCustomizer {
-        public KannadaCustomizer(final Locale locale) { super(locale); }
+    private static class KannadaCustomizer extends LayoutCustomizer {
+        KannadaCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey getAlphabetKey() { return KANNADA_ALPHABET_KEY; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Khmer.java b/tests/src/com/android/inputmethod/keyboard/layout/Khmer.java
index 7e4f159..4d82f09 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Khmer.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Khmer.java
@@ -17,9 +17,10 @@
 package com.android.inputmethod.keyboard.layout;
 
 import com.android.inputmethod.keyboard.KeyboardId;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.common.Constants;
 
 import java.util.Locale;
 
@@ -29,15 +30,15 @@
 public final class Khmer extends LayoutBase {
     private static final String LAYOUT_NAME = "khmer";
 
-    public Khmer(final LayoutCustomizer customizer) {
-        super(customizer, Symbols.class, SymbolsShifted.class);
+    public Khmer(final Locale locale) {
+        super(new KhmerCustomizer(locale), Symbols.class, SymbolsShifted.class);
     }
 
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class KhmerCustomizer extends LayoutCustomizer {
-        public KhmerCustomizer(final Locale locale) { super(locale); }
+    private static class KhmerCustomizer extends LayoutCustomizer {
+        KhmerCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public int getNumberOfRows() { return 5; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Lao.java b/tests/src/com/android/inputmethod/keyboard/layout/Lao.java
index aaa1c8a..149f753 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Lao.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Lao.java
@@ -17,9 +17,10 @@
 package com.android.inputmethod.keyboard.layout;
 
 import com.android.inputmethod.keyboard.KeyboardId;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.common.Constants;
 
 import java.util.Locale;
 
@@ -29,15 +30,15 @@
 public final class Lao extends LayoutBase {
     private static final String LAYOUT_NAME = "lao";
 
-    public Lao(final LayoutCustomizer customizer) {
-        super(customizer, Symbols.class, SymbolsShifted.class);
+    public Lao(final Locale locale) {
+        super(new LaoCustomizer(locale), Symbols.class, SymbolsShifted.class);
     }
 
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class LaoCustomizer extends LayoutCustomizer {
-        public LaoCustomizer(final Locale locale) { super(locale); }
+    private static class LaoCustomizer extends LayoutCustomizer {
+        LaoCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public int getNumberOfRows() { return 5; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/LayoutBase.java b/tests/src/com/android/inputmethod/keyboard/layout/LayoutBase.java
index b05789b..285a50c 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/LayoutBase.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/LayoutBase.java
@@ -17,11 +17,10 @@
 package com.android.inputmethod.keyboard.layout;
 
 import com.android.inputmethod.keyboard.KeyboardId;
-import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.AbstractLayoutBase;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-import com.android.inputmethod.latin.Constants;
 
 import java.util.Locale;
 
@@ -29,200 +28,6 @@
  * The base class of keyboard layout.
  */
 public abstract class LayoutBase extends AbstractLayoutBase {
-    /**
-     * This class is used to customize common keyboard layout to language specific layout.
-     */
-    public static class LayoutCustomizer {
-        private final Locale mLocale;
-
-        // Empty keys definition to remove keys by adding this.
-        protected static final ExpectedKey[] EMPTY_KEYS = joinKeys();
-
-        public LayoutCustomizer(final Locale locale) {
-            mLocale = locale;
-        }
-
-        public final Locale getLocale() {
-            return mLocale;
-        }
-
-        public int getNumberOfRows() {
-            return 4;
-        }
-
-        /**
-         * Set accented letters to common layout.
-         * @param builder the {@link ExpectedKeyboardBuilder} object that contains common keyboard
-         *        layout.
-         * @return the {@link ExpectedKeyboardBuilder} object that contains accented letters as
-         *        "more keys".
-         */
-        public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
-            return builder;
-        }
-
-        /**
-         * Get the function key to switch to alphabet layout.
-         * @return the {@link ExpectedKey} of the alphabet key.
-         */
-        public ExpectedKey getAlphabetKey() { return ALPHABET_KEY; }
-
-        /**
-         * Get the function key to switch to symbols layout.
-         * @return the {@link ExpectedKey} of the symbols key.
-         */
-        public ExpectedKey getSymbolsKey() { return SYMBOLS_KEY; }
-
-        /**
-         * Get the function key to switch to symbols shift layout.
-         * @param isPhone true if requesting phone's key.
-         * @return the {@link ExpectedKey} of the symbols shift key.
-         */
-        public ExpectedKey getSymbolsShiftKey(boolean isPhone) {
-            return isPhone ? SYMBOLS_SHIFT_KEY : TABLET_SYMBOLS_SHIFT_KEY;
-        }
-
-        /**
-         * Get the function key to switch from symbols shift to symbols layout.
-         * @return the {@link ExpectedKey} of the back to symbols key.
-         */
-        public ExpectedKey getBackToSymbolsKey() { return BACK_TO_SYMBOLS_KEY; }
-
-        /**
-         * Get the currency key.
-         * @return the {@link ExpectedKey} of the currency key.
-         */
-        public ExpectedKey getCurrencyKey() { return Symbols.CURRENCY_DOLLAR; }
-
-        /**
-         * Get other currencies keys.
-         * @return the array of {@link ExpectedKey} that represents other currency keys.
-         */
-        public ExpectedKey[] getOtherCurrencyKeys() {
-            return SymbolsShifted.CURRENCIES_OTHER_THAN_DOLLAR;
-        }
-
-        /**
-         * Get "more keys" of double quotation mark.
-         * @return the array of {@link ExpectedKey} of more double quotation marks in natural order.
-         */
-        public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_9LR; }
-
-        /**
-         * Get "more keys" of single quotation mark.
-         * @return the array of {@link ExpectedKey} of more single quotation marks in natural order.
-         */
-        public ExpectedKey[] getSingleQuoteMoreKeys() { return Symbols.SINGLE_QUOTES_9LR; }
-
-        /**
-         * Get double angle quotation marks in natural order.
-         * @return the array of {@link ExpectedKey} of double angle quotation marks in natural
-         *         order.
-         */
-        public ExpectedKey[] getDoubleAngleQuoteKeys() { return Symbols.DOUBLE_ANGLE_QUOTES_LR; }
-
-        /**
-         * Get single angle quotation marks in natural order.
-         * @return the array of {@link ExpectedKey} of single angle quotation marks in natural
-         *         order.
-         */
-        public ExpectedKey[] getSingleAngleQuoteKeys() { return Symbols.SINGLE_ANGLE_QUOTES_LR; }
-
-        /**
-         * Get the left shift keys.
-         * @param isPhone true if requesting phone's keys.
-         * @return the array of {@link ExpectedKey} that should be placed at left edge of the
-         *         keyboard.
-         */
-        public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) {
-            return joinKeys(SHIFT_KEY);
-        }
-
-        /**
-         * Get the right shift keys.
-         * @param isPhone true if requesting phone's keys.
-         * @return the array of {@link ExpectedKey} that should be placed at right edge of the
-         *         keyboard.
-         */
-        public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
-            return isPhone ? EMPTY_KEYS : joinKeys(EXCLAMATION_AND_QUESTION_MARKS, SHIFT_KEY);
-        }
-
-        /**
-         * Get the enter key.
-         * @param isPhone true if requesting phone's key.
-         * @return the array of {@link ExpectedKey} that should be placed as an enter key.
-         */
-        public ExpectedKey getEnterKey(final boolean isPhone) {
-            return isPhone ? key(ENTER_KEY, EMOJI_ACTION_KEY) : ENTER_KEY;
-        }
-
-        /**
-         * Get the emoji key.
-         * @param isPhone true if requesting phone's key.
-         * @return the array of {@link ExpectedKey} that should be placed as an emoji key.
-         */
-        public ExpectedKey getEmojiKey(final boolean isPhone) {
-            return EMOJI_NORMAL_KEY;
-        }
-
-        /**
-         * Get the space keys.
-         * @param isPhone true if requesting phone's keys.
-         * @return the array of {@link ExpectedKey} that should be placed at the center of the
-         *         keyboard.
-         */
-        public ExpectedKey[] getSpaceKeys(final boolean isPhone) {
-            return joinKeys(LANGUAGE_SWITCH_KEY, SPACE_KEY);
-        }
-
-        /**
-         * Get the keys left to the spacebar.
-         * @param isPhone true if requesting phone's keys.
-         * @return the array of {@link ExpectedKey} that should be placed at left of the spacebar.
-         */
-        public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
-            // U+002C: "," COMMA
-            return joinKeys(key("\u002C", SETTINGS_KEY));
-        }
-
-        /**
-         * Get the keys right to the spacebar.
-         * @param isPhone true if requesting phone's keys.
-         * @return the array of {@link ExpectedKey} that should be placed at right of the spacebar.
-         */
-        public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
-            final ExpectedKey periodKey = key(".", getPunctuationMoreKeys(isPhone));
-            return joinKeys(periodKey);
-        }
-
-        /**
-         * Get "more keys" for the punctuation key (usually the period key).
-         * @param isPhone true if requesting phone's keys.
-         * @return the array of {@link ExpectedKey} that are "more keys" of the punctuation key.
-         */
-        public ExpectedKey[] getPunctuationMoreKeys(final boolean isPhone) {
-            return isPhone ? PHONE_PUNCTUATION_MORE_KEYS : TABLET_PUNCTUATION_MORE_KEYS;
-        }
-    }
-
-    /**
-     * The layout customize class for countries that use Euro.
-     */
-    public static class EuroCustomizer extends LayoutCustomizer {
-        public EuroCustomizer(final Locale locale) {
-            super(locale);
-        }
-
-        @Override
-        public final ExpectedKey getCurrencyKey() { return Symbols.CURRENCY_EURO; }
-
-        @Override
-        public final ExpectedKey[] getOtherCurrencyKeys() {
-            return SymbolsShifted.CURRENCIES_OTHER_THAN_EURO;
-        }
-    }
-
     private final LayoutCustomizer mCustomizer;
     private final Symbols mSymbols;
     private final SymbolsShifted mSymbolsShifted;
@@ -258,77 +63,6 @@
      */
     public final LayoutCustomizer getCustomizer() { return mCustomizer; }
 
-    // Icon ids.
-    private static final int ICON_DELETE = KeyboardIconsSet.getIconId(
-            KeyboardIconsSet.NAME_DELETE_KEY);
-    private static final int ICON_SPACE = KeyboardIconsSet.getIconId(
-            KeyboardIconsSet.NAME_SPACE_KEY);
-    private static final int ICON_TAB = KeyboardIconsSet.getIconId(
-            KeyboardIconsSet.NAME_TAB_KEY);
-    private static final int ICON_SHORTCUT = KeyboardIconsSet.getIconId(
-            KeyboardIconsSet.NAME_SHORTCUT_KEY);
-    private static final int ICON_SETTINGS = KeyboardIconsSet.getIconId(
-            KeyboardIconsSet.NAME_SETTINGS_KEY);
-    private static final int ICON_LANGUAGE_SWITCH = KeyboardIconsSet.getIconId(
-            KeyboardIconsSet.NAME_LANGUAGE_SWITCH_KEY);
-    private static final int ICON_ENTER = KeyboardIconsSet.getIconId(
-            KeyboardIconsSet.NAME_ENTER_KEY);
-    private static final int ICON_EMOJI_ACTION = KeyboardIconsSet.getIconId(
-            KeyboardIconsSet.NAME_EMOJI_ACTION_KEY);
-    private static final int ICON_EMOJI_NORMAL = KeyboardIconsSet.getIconId(
-            KeyboardIconsSet.NAME_EMOJI_NORMAL_KEY);
-    private static final int ICON_SHIFT = KeyboardIconsSet.getIconId(
-            KeyboardIconsSet.NAME_SHIFT_KEY);
-    private static final int ICON_SHIFTED_SHIFT = KeyboardIconsSet.getIconId(
-            KeyboardIconsSet.NAME_SHIFT_KEY_SHIFTED);
-    private static final int ICON_ZWNJ = KeyboardIconsSet.getIconId(
-            KeyboardIconsSet.NAME_ZWNJ_KEY);
-    private static final int ICON_ZWJ = KeyboardIconsSet.getIconId(
-            KeyboardIconsSet.NAME_ZWJ_KEY);
-
-    // Functional keys.
-    public static final ExpectedKey DELETE_KEY = key(ICON_DELETE, Constants.CODE_DELETE);
-    public static final ExpectedKey TAB_KEY = key(ICON_TAB, Constants.CODE_TAB);
-    public static final ExpectedKey SHORTCUT_KEY = key(ICON_SHORTCUT, Constants.CODE_SHORTCUT);
-    public static final ExpectedKey SETTINGS_KEY = key(ICON_SETTINGS, Constants.CODE_SETTINGS);
-    public static final ExpectedKey LANGUAGE_SWITCH_KEY = key(
-            ICON_LANGUAGE_SWITCH, Constants.CODE_LANGUAGE_SWITCH);
-    public static final ExpectedKey ENTER_KEY = key(ICON_ENTER, Constants.CODE_ENTER);
-    public static final ExpectedKey EMOJI_ACTION_KEY = key(ICON_EMOJI_ACTION, Constants.CODE_EMOJI);
-    public static final ExpectedKey EMOJI_NORMAL_KEY = key(ICON_EMOJI_NORMAL, Constants.CODE_EMOJI);
-    public static final ExpectedKey SPACE_KEY = key(ICON_SPACE, Constants.CODE_SPACE);
-    static final ExpectedKey CAPSLOCK_MORE_KEY = key(" ", Constants.CODE_CAPSLOCK);
-    public static final ExpectedKey SHIFT_KEY = key(ICON_SHIFT,
-            Constants.CODE_SHIFT, CAPSLOCK_MORE_KEY);
-    public static final ExpectedKey SHIFTED_SHIFT_KEY = key(ICON_SHIFTED_SHIFT,
-            Constants.CODE_SHIFT, CAPSLOCK_MORE_KEY);
-    static final ExpectedKey ALPHABET_KEY = key("ABC", Constants.CODE_SWITCH_ALPHA_SYMBOL);
-    static final ExpectedKey SYMBOLS_KEY = key("?123", Constants.CODE_SWITCH_ALPHA_SYMBOL);
-    static final ExpectedKey BACK_TO_SYMBOLS_KEY = key("?123", Constants.CODE_SHIFT);
-    static final ExpectedKey SYMBOLS_SHIFT_KEY = key("= \\ <", Constants.CODE_SHIFT);
-    static final ExpectedKey TABLET_SYMBOLS_SHIFT_KEY = key("~ [ <", Constants.CODE_SHIFT);
-
-    // U+00A1: "¡" INVERTED EXCLAMATION MARK
-    // U+00BF: "¿" INVERTED QUESTION MARK
-    static final ExpectedKey[] EXCLAMATION_AND_QUESTION_MARKS = joinKeys(
-            key("!", moreKey("\u00A1")), key("?", moreKey("\u00BF")));
-    // U+200C: ZERO WIDTH NON-JOINER
-    // U+200D: ZERO WIDTH JOINER
-    static final ExpectedKey ZWNJ_KEY = key(ICON_ZWNJ, "\u200C");
-    static final ExpectedKey ZWJ_KEY = key(ICON_ZWJ, "\u200D");
-    // Domain key
-    public static final ExpectedKey DOMAIN_KEY =
-            key(".com", joinMoreKeys(".net", ".org", ".gov", ".edu")).preserveCase();
-
-    // Punctuation more keys for phone form factor.
-    public static final ExpectedKey[] PHONE_PUNCTUATION_MORE_KEYS = joinKeys(
-            ",", "?", "!", "#", ")", "(", "/", ";",
-            "'", "@", ":", "-", "\"", "+", "%", "&");
-    // Punctuation more keys for tablet form factor.
-    public static final ExpectedKey[] TABLET_PUNCTUATION_MORE_KEYS = joinKeys(
-            ",", "'", "#", ")", "(", "/", ";",
-            "@", ":", "-", "\"", "+", "%", "&");
-
     /**
      * Helper method to create alphabet layout adding special function keys.
      * @param builder the {@link ExpectedKeyboardBuilder} object that contains common keyboard
@@ -386,7 +120,7 @@
     ExpectedKey[][] getCommonAlphabetShiftLayout(final boolean isPhone, final int elementId) {
         final ExpectedKeyboardBuilder builder = new ExpectedKeyboardBuilder(
                 getCommonAlphabetLayout(isPhone));
-        getCustomizer().setAccentedLetters(builder);
+        getCustomizer().setAccentedLetters(builder, elementId);
         builder.toUpperCase(getLocale());
         return builder.build();
     }
@@ -411,7 +145,7 @@
         final ExpectedKeyboardBuilder builder;
         if (elementId == KeyboardId.ELEMENT_ALPHABET) {
             builder = new ExpectedKeyboardBuilder(getCommonAlphabetLayout(isPhone));
-            getCustomizer().setAccentedLetters(builder);
+            getCustomizer().setAccentedLetters(builder, elementId);
         } else {
             final ExpectedKey[][] commonLayout = getCommonAlphabetShiftLayout(isPhone, elementId);
             if (commonLayout == null) {
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Malayalam.java b/tests/src/com/android/inputmethod/keyboard/layout/Malayalam.java
index b44b888..3497c35 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Malayalam.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Malayalam.java
@@ -16,9 +16,10 @@
 
 package com.android.inputmethod.keyboard.layout;
 
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.common.Constants;
 
 import java.util.Locale;
 
@@ -28,15 +29,15 @@
 public final class Malayalam extends LayoutBase {
     private static final String LAYOUT_NAME = "malayalam";
 
-    public Malayalam(final LayoutCustomizer customizer) {
-        super(customizer, Symbols.class, SymbolsShifted.class);
+    public Malayalam(final Locale locale) {
+        super(new MalayalamCustomizer(locale), Symbols.class, SymbolsShifted.class);
     }
 
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class MalayalamCustomizer extends LayoutCustomizer {
-        public MalayalamCustomizer(final Locale locale) { super(locale); }
+    private static class MalayalamCustomizer extends LayoutCustomizer {
+        MalayalamCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey getAlphabetKey() { return MALAYALAM_ALPHABET_KEY; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Marathi.java b/tests/src/com/android/inputmethod/keyboard/layout/Marathi.java
index 00cf838..af26ec5 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Marathi.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Marathi.java
@@ -18,8 +18,8 @@
 
 import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.*;
 
-import com.android.inputmethod.keyboard.layout.Hindi.HindiCustomizer;
 import com.android.inputmethod.keyboard.layout.Hindi.HindiSymbols;
+import com.android.inputmethod.keyboard.layout.customizer.DevanagariCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
@@ -31,20 +31,37 @@
 public final class Marathi extends LayoutBase {
     private static final String LAYOUT_NAME = "marathi";
 
-    public Marathi(final LayoutCustomizer customizer) {
-        super(customizer, HindiSymbols.class, SymbolsShifted.class);
+    public Marathi(final Locale locale) {
+        super(new MarathiCustomizer(locale), HindiSymbols.class, SymbolsShifted.class);
     }
 
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class MarathiCustomizer extends HindiCustomizer {
-        public MarathiCustomizer(final Locale locale) { super(locale); }
+    private static class MarathiCustomizer extends DevanagariCustomizer {
+        MarathiCustomizer(final Locale locale) { super(locale); }
+
+        @Override
+        public ExpectedKey getCurrencyKey() { return CURRENCY_RUPEE; }
+
+        @Override
+        public ExpectedKey[] getOtherCurrencyKeys() {
+            return SymbolsShifted.CURRENCIES_OTHER_GENERIC;
+        }
 
         @Override
         public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) {
             return EMPTY_KEYS;
         }
+
+        @Override
+        public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
+            return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
+        }
+
+        // U+20B9: "₹" INDIAN RUPEE SIGN
+        private static final ExpectedKey CURRENCY_RUPEE = key("\u20B9",
+                Symbols.CURRENCY_GENERIC_MORE_KEYS);
     }
 
     @Override
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Mongolian.java b/tests/src/com/android/inputmethod/keyboard/layout/Mongolian.java
index 3c6c058..288a17e 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Mongolian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Mongolian.java
@@ -16,7 +16,7 @@
 
 package com.android.inputmethod.keyboard.layout;
 
-import com.android.inputmethod.keyboard.layout.EastSlavic.EastSlavicCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.EastSlavicCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
@@ -25,17 +25,15 @@
 public final class Mongolian extends LayoutBase {
     private static final String LAYOUT_NAME = "mongolian";
 
-    public Mongolian(final LayoutCustomizer customizer) {
-        super(customizer, Symbols.class, SymbolsShifted.class);
+    public Mongolian(final Locale locale) {
+        super(new MongolianCustomizer(locale), Symbols.class, SymbolsShifted.class);
     }
 
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class MongolianMNCustomizer extends EastSlavicCustomizer {
-        public MongolianMNCustomizer(final Locale locale) {
-            super(locale);
-        }
+    private static class MongolianCustomizer extends EastSlavicCustomizer {
+        MongolianCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey getCurrencyKey() { return CURRENCY_TUGRIK; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Myanmar.java b/tests/src/com/android/inputmethod/keyboard/layout/Myanmar.java
deleted file mode 100644
index 3c70d32..0000000
--- a/tests/src/com/android/inputmethod/keyboard/layout/Myanmar.java
+++ /dev/null
@@ -1,270 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.keyboard.layout;
-
-import com.android.inputmethod.keyboard.KeyboardId;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-import com.android.inputmethod.latin.Constants;
-
-import java.util.Locale;
-
-/**
- * The Myanmar alphabet keyboard.
- */
-public final class Myanmar extends LayoutBase {
-    private static final String LAYOUT_NAME = "myanmar";
-
-    public Myanmar(final LayoutCustomizer customizer) {
-        super(customizer, Symbols.class, SymbolsShifted.class);
-    }
-
-    @Override
-    public String getName() { return LAYOUT_NAME; }
-
-    public static class MyanmarCustomizer extends LayoutCustomizer {
-        public MyanmarCustomizer(final Locale locale) { super(locale); }
-
-        @Override
-        public int getNumberOfRows() { return 5; }
-
-        @Override
-        public ExpectedKey getAlphabetKey() { return MYANMAR_ALPHABET_KEY; }
-
-        @Override
-        public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
-            return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
-        }
-
-        @Override
-        public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
-            // U+002C: "," COMMA
-            // U+104A: "၊" MYANMAR SIGN LITTLE SECTION
-            return isPhone ? joinKeys(key("\u002C", SETTINGS_KEY))
-                    : joinKeys(key("\u104A", moreKey(","), SETTINGS_KEY));
-        }
-
-        @Override
-        public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
-            // U+104B: "။" MYANMAR SIGN SECTION
-            final ExpectedKey periodKey = key("\u104B", getPunctuationMoreKeys(isPhone));
-            return joinKeys(periodKey);
-        }
-
-        @Override
-        public ExpectedKey[] getPunctuationMoreKeys(final boolean isPhone) {
-            return isPhone ? MYANMAR_PHONE_PUNCTUATION_MORE_KEYS
-                    : MYANMAR_TABLET_PUNCTUATION_MORE_KEYS;
-        }
-
-        // U+1000: "က" MYANMAR LETTER KA
-        // U+1001: "ခ" MYANMAR LETTER KHA
-        // U+1002: "ဂ" MYANMAR LETTER GA
-        private static final ExpectedKey MYANMAR_ALPHABET_KEY = key(
-                "\u1000\u1001\u1002", Constants.CODE_SWITCH_ALPHA_SYMBOL);
-
-        // U+104A: "၊" MYANMAR SIGN LITTLE SECTION
-        // Punctuation more keys for phone form factor.
-        private static final ExpectedKey[] MYANMAR_PHONE_PUNCTUATION_MORE_KEYS = joinKeys(
-                "\u104A", ".", "?", "!", "#", ")", "(", "/", ";",
-                "...", "'", "@", ":", "-", "\"", "+", "%", "&");
-        // Punctuation more keys for tablet form factor.
-        private static final ExpectedKey[] MYANMAR_TABLET_PUNCTUATION_MORE_KEYS = joinKeys(
-                ".", "'", "#", ")", "(", "/", ";", "@",
-                "...", ":", "-", "\"", "+", "%", "&");
-    }
-
-    @Override
-    ExpectedKey[][] getCommonAlphabetLayout(final boolean isPhone) { return ALPHABET_COMMON; }
-
-    @Override
-    public ExpectedKey[][] getCommonAlphabetShiftLayout(final boolean isPhone,
-            final int elementId) {
-        if (elementId == KeyboardId.ELEMENT_ALPHABET_AUTOMATIC_SHIFTED) {
-            return getCommonAlphabetLayout(isPhone);
-        }
-        return ALPHABET_SHIFTED_COMMON;
-    }
-
-    private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder()
-            .setKeysOfRow(1,
-                    // U+1041: "၁" MYANMAR DIGIT ONE
-                    key("\u1041", moreKey("1")),
-                    // U+1042: "၂" MYANMAR DIGIT TWO
-                    key("\u1042", moreKey("2")),
-                    // U+1043: "၃" MYANMAR DIGIT THREE
-                    key("\u1043", moreKey("3")),
-                    // U+1044: "၄" MYANMAR DIGIT FOUR
-                    key("\u1044", moreKey("4")),
-                    // U+1045: "၅" MYANMAR DIGIT FIVE
-                    key("\u1045", moreKey("5")),
-                    // U+1046: "၆" MYANMAR DIGIT SIX
-                    key("\u1046", moreKey("6")),
-                    // U+1047: "၇" MYANMAR DIGIT SEVEN
-                    key("\u1047", moreKey("7")),
-                    // U+1048: "၈" MYANMAR DIGIT EIGHT
-                    key("\u1048", moreKey("8")),
-                    // U+1049: "၉" MYANMAR DIGIT NINE
-                    key("\u1049", moreKey("9")),
-                    // U+1040: "၀" MYANMAR DIGIT ZERO
-                    key("\u1040", moreKey("0")))
-            .setKeysOfRow(2,
-                    // U+1006: "ဆ" MYANMAR LETTER CHA
-                    // U+1039/U+1006: "္ဆ" MYANMAR SIGN VIRAMA/MYANMAR LETTER CHA
-                    key("\u1006", moreKey("\u1039\u1006")),
-                    // U+1010: "တ" MYANMAR LETTER TA
-                    // U+1039/U+1010: "္တ" MYANMAR SIGN VIRAMA/MYANMAR LETTER TA
-                    key("\u1010", moreKey("\u1039\u1010")),
-                    // U+1014: "န" MYANMAR LETTER NA
-                    // U+1039/U+1014: "္န" MYANMAR SIGN VIRAMA/MYANMAR LETTER NA
-                    key("\u1014", moreKey("\u1039\u1014")),
-                    // U+1019: "မ" MYANMAR LETTER MA
-                    // U+1039/U+1019: "္မ" MYANMAR SIGN VIRAMA/MYANMAR LETTER MA
-                    key("\u1019", moreKey("\u1039\u1019")),
-                    // U+1021: "အ" MYANMAR LETTER A
-                    // U+1015: "ပ" MYANMAR LETTER PA
-                    "\u1021", "\u1015",
-                    // U+1000: "က" MYANMAR LETTER KA
-                    // U+1039/U+1000: "္က" MYANMAR SIGN VIRAMA/MYANMAR LETTER KA
-                    key("\u1000", moreKey("\u1039\u1000")),
-                    // U+1004: "င" MYANMAR LETTER NGA
-                    // U+101E: "သ" MYANMAR LETTER SA
-                    "\u1004", "\u101E",
-                    // U+1005: "စ" MYANMAR LETTER CA
-                    // U+1039/U+1005: "္စ" MYANMAR SIGN VIRAMA/MYANMAR LETTER CA
-                    key("\u1005", moreKey("\u1039\u1005")))
-            .setKeysOfRow(3,
-                    // U+1031: "ေ" MYANMAR VOWEL SIGN E
-                    // U+103B: "ျ" MYANMAR CONSONANT SIGN MEDIAL YA
-                    // U+103C: "ြ" MYANMAR CONSONANT SIGN MEDIAL RA
-                    "\u1031", "\u103B", "\u103C",
-                    // U+103D: "ွ" MYANMAR CONSONANT SIGN MEDIAL WA
-                    // U+103E: "ှ" MYANMAR CONSONANT SIGN MEDIAL HA
-                    // U+103D/U+103E:
-                    //     "ွှ" MYANMAR CONSONANT SIGN MEDIAL WA/MYANMAR CONSONANT SIGN MEDIAL HA
-                    key("\u103D", joinMoreKeys("\u103E", "\u103D\u103E")),
-                    // U+102D: "ိ" MYANMAR VOWEL SIGN I
-                    // U+102E: "ီ" MYANMAR VOWEL SIGN II
-                    key("\u102D", moreKey("\u102E")),
-                    // U+102F: "ု" MYANMAR VOWEL SIGN U
-                    // U+1030: "ူ" MYANMAR VOWEL SIGN UU
-                    key("\u102F", moreKey("\u1030")),
-                    // U+102C: "ာ" MYANMAR VOWEL SIGN AA
-                    // U+102B: "ါ" MYANMAR VOWEL SIGN TALL AA
-                    key("\u102C", moreKey("\u102B")),
-                    // U+103A: "်" MYANMAR SIGN ASAT
-                    // U+1032: "ဲ" MYANMAR VOWEL SIGN AI
-                    key("\u103A", moreKey("\u1032")),
-                    // U+1037: "့" MYANMAR SIGN DOT BELOW
-                    // U+1036: "ံ" MYANMAR SIGN ANUSVARA
-                    key("\u1037", moreKey("\u1036")),
-                    // U+1038: "း" MYANMAR SIGN VISARGA
-                    "\u1038")
-            .setKeysOfRow(4,
-                    // U+1016: "ဖ" MYANMAR LETTER PHA
-                    "\u1016",
-                    // U+1011: "ထ" MYANMAR LETTER THA
-                    // U+1039/U+1011: "္ထ" MYANMAR SIGN VIRAMA/MYANMAR LETTER THA
-                    key("\u1011", moreKey("\u1039\u1011")),
-                    // U+1001: "ခ" MYANMAR LETTER KHA
-                    // U+1039/U+1001: "္ခ" MYANMAR SIGN VIRAMA/MYANMAR LETTER KHA
-                    key("\u1001", moreKey("\u1039\u1001")),
-                    // U+101C: "လ" MYANMAR LETTER LA
-                    // U+1039/U+101C: "္လ" MYANMAR SIGN VIRAMA/MYANMAR LETTER LA
-                    key("\u101C", moreKey("\u1039\u101C")),
-                    // U+1018: "ဘ" MYANMAR LETTER BHA
-                    // U+1039/U+1018: "္ဘ" MYANMAR SIGN VIRAMA/MYANMAR LETTER BHA
-                    key("\u1018", moreKey("\u1039\u1018")),
-                    // U+100A: "ည" MYANMAR LETTER NNYA
-                    // U+1009: "ဉ" MYANMAR LETTER NYA
-                    key("\u100A", moreKey("\u1009")),
-                    // U+101B: "ရ" MYANMAR LETTER RA
-                    // U+101D: "ဝ" MYANMAR LETTER WA
-                    "\u101B", "\u101D")
-            .build();
-
-    private static final ExpectedKey[][] ALPHABET_SHIFTED_COMMON = new ExpectedKeyboardBuilder()
-            .setKeysOfRow(1,
-                    // U+1027: "ဧ" MYANMAR LETTER E
-                    // U+104F: "၏" MYANMAR SYMBOL GENITIVE
-                    // U+1024: "ဤ" MYANMAR LETTER II
-                    // U+1023: "ဣ" MYANMAR LETTER I
-                    // U+104E: "၎" MYANMAR SYMBOL AFOREMENTIONED
-                    // U+1000/U+103B/U+1015/U+103A: "ကျပ်" MYANMAR LETTER KA
-                    //     /MYANMAR CONSONANT SIGN MEDIAL YA/MYANMAR LETTER PA/MYANMAR SIGN ASAT
-                    // U+1029: "ဩ" MYANMAR LETTER O
-                    // U+102A: "ဪ" MYANMAR LETTER AU
-                    // U+104D: "၍" MYANMAR SYMBOL COMPLETED
-                    // U+104C: "၌" MYANMAR SYMBOL LOCATIVE
-                    "\u1027", "\u104F", "\u1024", "\u1023", "\u104E", "\u1000\u103B\u1015\u103A",
-                    "\u1029", "\u102A", "\u104D", "\u104C")
-            .setKeysOfRow(2,
-                    // U+1017: "ဗ" MYANMAR LETTER BA
-                    // U+1039/U+1017: "္ဗ" MYANMAR SIGN VIRAMA/MYANMAR LETTER BA
-                    key("\u1017", moreKey("\u1039\u1017")),
-                    // U+1012: "ဒ" MYANMAR LETTER DA
-                    // U+1039/U+1012: "္ဒ" MYANMAR SIGN VIRAMA/MYANMAR LETTER DA
-                    key("\u1012", moreKey("\u1039\u1012")),
-                    // U+1013: "ဓ" MYANMAR LETTER DHA
-                    // U+1039/U+1013: "္ဓ" MYANMAR SIGN VIRAMA/MYANMAR LETTER DHA
-                    key("\u1013", moreKey("\u1039\u1013")),
-                    // U+1003: "ဃ" MYANMAR LETTER GHA
-                    // U+100E: "ဎ" MYANMAR LETTER DDHA
-                    // U+103F: "ဿ" MYANMAR LETTER GREAT SA
-                    // U+100F: "ဏ" MYANMAR LETTER NNA
-                    "\u1003", "\u100E", "\u103F", "\u100F",
-                    // U+1008: "ဈ" MYANMAR LETTER JHA
-                    // U+1039/U+1008: "္ဈ" MYANMAR SIGN VIRAMA/MYANMAR LETTER JHA
-                    key("\u1008", moreKey("\u1039\u1008")),
-                    // U+1007: "ဇ" MYANMAR LETTER JA
-                    // U+1039/U+1007: "္ဇ" MYANMAR SIGN VIRAMA/MYANMAR LETTER JA
-                    key("\u1007", moreKey("\u1039\u1007")),
-                    // U+1002: "ဂ" MYANMAR LETTER GA
-                    // U+1039/U+1002: "္ဂ" MYANMAR SIGN VIRAMA/MYANMAR LETTER GA
-                    key("\u1002", moreKey("\u1039\u1002")))
-            .setKeysOfRow(3,
-                    // U+101A: "ယ" MYANMAR LETTER YA
-                    // U+1039: "္" MYANMAR SIGN VIRAMA
-                    // U+1004/U+103A/U+1039: "င်္င" MYANMAR LETTER NGA
-                    //     /MYANMAR SIGN ASAT/MYANMAR SIGN VIRAMA
-                    // U+103E: "ှ" MYANMAR CONSONANT SIGN MEDIAL HA
-                    // U+102E: "ီ" MYANMAR VOWEL SIGN II
-                    // U+1030: "ူ" MYANMAR VOWEL SIGN UU
-                    // U+102B: "ါ" MYANMAR VOWEL SIGN TALL AA
-                    // U+1032: "ဲ" MYANMAR VOWEL SIGN AI
-                    // U+1036: "ံ" MYANMAR SIGN ANUSVARA
-                    // U+101F: "ဟ" MYANMAR LETTER HA
-                    "\u101A", "\u1039", "\u1004\u103A\u1039", "\u103E", "\u102E", "\u1030",
-                    "\u102B", "\u1032", "\u1036", "\u101F")
-            .setKeysOfRow(4,
-                    // U+1025: "ဥ" MYANMAR LETTER U
-                    // U+1026: "ဦ" MYANMAR LETTER UU
-                    // U+100C: "ဌ" MYANMAR LETTER TTHA
-                    // U+100B: "ဋ" MYANMAR LETTER TTA
-                    // U+100D: "ဍ" MYANMAR LETTER DDA
-                    // U+1020: "ဠ" MYANMAR LETTER LLA
-                    // U+100B/U+1039/U+100C: "ဋ္ဌ" MYANMAR LETTER TTA
-                    //     /MYANMAR SIGN VIRAMA/MYANMAR LETTER TTHA
-                    "\u1025", "\u1026", "\u100C", "\u100B", "\u100D", "\u1020",
-                    "\u100B\u1039\u100C",
-                    // U+100F/U+1039/U+100D: "ဏ္ဍ" MYANMAR LETTER NNA
-                    //     /MYANMAR SIGN VIRAMA/MYANMAR LETTER DDA
-                    // U+100F/U+1039/U+100C: "ဏ္ဌ" MYANMAR LETTER NNA
-                    //     /MYANMAR SIGN VIRAMA/MYANMAR LETTER TTHA
-                    key("\u100F\u1039\u100D", moreKey("\u100F\u1039\u100C")))
-            .build();
-}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/NepaliRomanized.java b/tests/src/com/android/inputmethod/keyboard/layout/NepaliRomanized.java
index 7933d07..299cb61 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/NepaliRomanized.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/NepaliRomanized.java
@@ -19,8 +19,8 @@
 import static com.android.inputmethod.keyboard.layout.DevanagariLetterConstants.*;
 
 import com.android.inputmethod.keyboard.KeyboardId;
-import com.android.inputmethod.keyboard.layout.Hindi.HindiCustomizer;
 import com.android.inputmethod.keyboard.layout.Hindi.HindiSymbols;
+import com.android.inputmethod.keyboard.layout.customizer.NepaliCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
@@ -32,35 +32,18 @@
 public final class NepaliRomanized extends LayoutBase {
     private static final String LAYOUT_NAME = "nepali_romanized";
 
-    public NepaliRomanized(final LayoutCustomizer customizer) {
-        super(customizer, HindiSymbols.class, SymbolsShifted.class);
+    public NepaliRomanized(final Locale locale) {
+        super(new NepaliCustomizer(locale), HindiSymbols.class, SymbolsShifted.class);
     }
 
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class NepaliRomanizedCustomizer extends HindiCustomizer {
-        public NepaliRomanizedCustomizer(final Locale locale) { super(locale); }
-
-        @Override
-        public ExpectedKey getCurrencyKey() { return CURRENCY_NEPALI; }
-
-        @Override
-        public ExpectedKey[] getSpaceKeys(final boolean isPhone) {
-            return joinKeys(LANGUAGE_SWITCH_KEY, SPACE_KEY, key(ZWNJ_KEY, ZWJ_KEY));
-        }
-
-        // U+0930/U+0941/U+002E "रु." NEPALESE RUPEE SIGN
-        private static final ExpectedKey CURRENCY_NEPALI = key("\u0930\u0941\u002E",
-                Symbols.DOLLAR_SIGN, Symbols.CENT_SIGN, Symbols.EURO_SIGN, Symbols.POUND_SIGN,
-                Symbols.YEN_SIGN, Symbols.PESO_SIGN);
-    }
+    @Override
+    ExpectedKey[][] getCommonAlphabetLayout(final boolean isPhone) { return ALPHABET_COMMON; }
 
     @Override
-    ExpectedKey[][] getCommonAlphabetLayout(boolean isPhone) { return ALPHABET_COMMON; }
-
-    @Override
-    ExpectedKey[][] getCommonAlphabetShiftLayout(boolean isPhone, final int elementId) {
+    ExpectedKey[][] getCommonAlphabetShiftLayout(final boolean isPhone, final int elementId) {
         if (elementId == KeyboardId.ELEMENT_ALPHABET_AUTOMATIC_SHIFTED) {
             return getCommonAlphabetLayout(isPhone);
         }
@@ -126,11 +109,9 @@
                     // U+0928: "न" DEVANAGARI LETTER NA
                     // U+092E: "म" DEVANAGARI LETTER MA
                     "\u0937", "\u0921", "\u091A", "\u0935", "\u092C", "\u0928", "\u092E",
-                    // U+0964: "।" DEVANAGARI DANDA
-                    // U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA
-                    key("\u0964", moreKey("\u093D")),
                     // U+094D: "्" DEVANAGARI SIGN VIRAMA
-                    key(SIGN_VIRAMA, "\u094D"))
+                    // U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA
+                    key(SIGN_VIRAMA, "\u094D", moreKey("\u093D")))
             .build();
 
     private static final ExpectedKey[][] ALPHABET_SHIFTED_COMMON = new ExpectedKeyboardBuilder()
@@ -180,8 +161,6 @@
                     // U+0902: "ं" DEVANAGARI SIGN ANUSVARA
                     key(SIGN_ANUSVARA, "\u0902"),
                     // U+0919: "ङ" DEVANAGARI LETTER NGA
-                    "\u0919",
-                    // U+094D: "्" DEVANAGARI SIGN VIRAMA
-                    key(SIGN_VIRAMA, "\u094D"))
+                    "\u0919")
             .build();
 }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/NepaliTraditional.java b/tests/src/com/android/inputmethod/keyboard/layout/NepaliTraditional.java
index 4d6cded..0a2bea3 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/NepaliTraditional.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/NepaliTraditional.java
@@ -20,7 +20,7 @@
 
 import com.android.inputmethod.keyboard.KeyboardId;
 import com.android.inputmethod.keyboard.layout.Hindi.HindiSymbols;
-import com.android.inputmethod.keyboard.layout.NepaliRomanized.NepaliRomanizedCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.NepaliCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
@@ -32,93 +32,31 @@
 public final class NepaliTraditional extends LayoutBase {
     private static final String LAYOUT_NAME = "nepali_traditional";
 
-    public NepaliTraditional(final LayoutCustomizer customizer) {
-        super(customizer, HindiSymbols.class, SymbolsShifted.class);
+    public NepaliTraditional(final Locale locale) {
+        super(new NepaliTraditionalCustomizer(locale), HindiSymbols.class, SymbolsShifted.class);
     }
 
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class NepaliTraditionalCustomizer extends NepaliRomanizedCustomizer {
-        public NepaliTraditionalCustomizer(final Locale locale) { super(locale); }
+    private static class NepaliTraditionalCustomizer extends NepaliCustomizer {
+        NepaliTraditionalCustomizer(final Locale locale) { super(locale); }
 
         @Override
-        public ExpectedKey[] getRightShiftKeys(final boolean isPhone) { return EMPTY_KEYS; }
-
-        @Override
-        public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
-            if (isPhone) {
-                // U+094D: "्" DEVANAGARI SIGN VIRAMA
-                return joinKeys(key(SIGN_VIRAMA, "\u094D", PHONE_PUNCTUATION_MORE_KEYS));
-            }
-            return super.getKeysRightToSpacebar(isPhone);
+        public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
+            return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
         }
     }
 
     @Override
-    ExpectedKey[][] getCommonAlphabetLayout(boolean isPhone) {
-        final ExpectedKeyboardBuilder builder = new ExpectedKeyboardBuilder(ALPHABET_COMMON);
-        if (isPhone) {
-            builder.addKeysOnTheRightOfRow(3,
-                    // U+0947: "े" DEVANAGARI VOWEL SIGN E
-                    // U+0903: "ः‍" DEVANAGARI SIGN VISARGA
-                    // U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA
-                    key(VOWEL_SIGN_E, "\u0947", joinMoreKeys(
-                            moreKey(SIGN_VISARGA, "\u0903"), "\u093D")),
-                    // U+0964: "।" DEVANAGARI DANDA
-                    "\u0964",
-                    // U+0930: "र" DEVANAGARI LETTER RA
-                    // U+0930/U+0941: "रु" DEVANAGARI LETTER RA/DEVANAGARI VOWEL SIGN U
-                    key("\u0930", moreKey("\u0930\u0941")));
-        } else {
-            builder.addKeysOnTheRightOfRow(3,
-                    // U+0903: "ः" DEVANAGARI SIGN VISARGA
-                    // U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA
-                    key(SIGN_VISARGA, "\u0903", moreKey("\u093D")),
-                    // U+0947: "े" DEVANAGARI VOWEL SIGN E
-                    key(VOWEL_SIGN_E, "\u0947"),
-                    // U+0964: "।" DEVANAGARI DANDA
-                    "\u0964",
-                    // U+0930: "र" DEVANAGARI LETTER RA
-                    key("\u0930", moreKey("!")),
-                    // U+094D: "्" DEVANAGARI SIGN VIRAMA
-                    key(SIGN_VIRAMA, "\u094D", moreKey("?")));
-        }
-        return builder.build();
-    }
+    ExpectedKey[][] getCommonAlphabetLayout(final boolean isPhone) { return ALPHABET_COMMON; }
 
     @Override
-    ExpectedKey[][] getCommonAlphabetShiftLayout(boolean isPhone, final int elementId) {
+    ExpectedKey[][] getCommonAlphabetShiftLayout(final boolean isPhone, final int elementId) {
         if (elementId == KeyboardId.ELEMENT_ALPHABET_AUTOMATIC_SHIFTED) {
             return getCommonAlphabetLayout(isPhone);
         }
-        final ExpectedKeyboardBuilder builder = new ExpectedKeyboardBuilder(
-                ALPHABET_SHIFTED_COMMON);
-        if (isPhone) {
-            builder.addKeysOnTheRightOfRow(3,
-                    // U+0902: "ं" DEVANAGARI SIGN ANUSVARA
-                    key(SIGN_ANUSVARA, "\u0902"),
-                    // U+0919: "ङ" DEVANAGARI LETTER NGA
-                    "\u0919",
-                    // U+0948: "ै" DEVANAGARI VOWEL SIGN AI
-                    // U+0936/U+094D/U+0930:
-                    //     "श्र" DEVANAGARI LETTER SHA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA
-                    key(VOWEL_SIGN_AI, "\u0948", moreKey("\u0936\u094D\u0930")));
-        } else {
-            builder.addKeysOnTheRightOfRow(3,
-                    // U+0902: "ं" DEVANAGARI SIGN ANUSVARA
-                    key(SIGN_ANUSVARA, "\u0902"),
-                    // U+0919: "ङ" DEVANAGARI LETTER NGA
-                    "\u0919",
-                    // U+0948: "ै" DEVANAGARI VOWEL SIGN AI
-                    // U+0936/U+094D/U+0930:
-                    //     "श्र" DEVANAGARI LETTER SHA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA
-                    key(VOWEL_SIGN_AI, "\u0948", moreKey("\u0936\u094D\u0930")),
-                    // U+0930/U+0941: "रु" DEVANAGARI LETTER RA/DEVANAGARI VOWEL SIGN U
-                    key("\u0930\u0941", moreKey("!")),
-                    "?");
-        }
-        return builder.build();
+        return ALPHABET_SHIFTED_COMMON;
     }
 
     private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder()
@@ -181,7 +119,17 @@
                     // U+0916: "ख" DEVANAGARI LETTER KHA
                     // U+0926: "द" DEVANAGARI LETTER DA
                     // U+0932: "ल" DEVANAGARI LETTER LA
-                    "\u0936", "\u0939", "\u0905", "\u0916", "\u0926", "\u0932")
+                    "\u0936", "\u0939", "\u0905", "\u0916", "\u0926", "\u0932",
+                    // U+0947: "े" DEVANAGARI VOWEL SIGN E
+                    // U+0903: "ः‍" DEVANAGARI SIGN VISARGA
+                    // U+093D: "ऽ" DEVANAGARI SIGN AVAGRAHA
+                    key(VOWEL_SIGN_E, "\u0947", joinMoreKeys(
+                            moreKey(SIGN_VISARGA, "\u0903"), "\u093D")),
+                    // U+094D: "्" DEVANAGARI SIGN VIRAMA
+                    key(SIGN_VIRAMA, "\u094D"),
+                    // U+0930: "र" DEVANAGARI LETTER RA
+                    // U+0930/U+0941: "रु" DEVANAGARI LETTER RA/DEVANAGARI VOWEL SIGN U
+                    key("\u0930", moreKey("\u0930\u0941")))
             .build();
 
     private static final ExpectedKey[][] ALPHABET_SHIFTED_COMMON = new ExpectedKeyboardBuilder()
@@ -264,6 +212,14 @@
                     key(VOWEL_SIGN_AU, "\u094C"),
                     // U+0926/U+094D/U+092F:
                     //     "द्य" DEVANAGARI LETTER DA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER YA
-                    "\u0926\u094D\u092F")
+                    "\u0926\u094D\u092F",
+                    // U+0902: "ं" DEVANAGARI SIGN ANUSVARA
+                    key(SIGN_ANUSVARA, "\u0902"),
+                    // U+0919: "ङ" DEVANAGARI LETTER NGA
+                    "\u0919",
+                    // U+0948: "ै" DEVANAGARI VOWEL SIGN AI
+                    // U+0936/U+094D/U+0930:
+                    //     "श्र" DEVANAGARI LETTER SHA/DEVANAGARI SIGN VIRAMA/DEVANAGARI LETTER RA
+                    key(VOWEL_SIGN_AI, "\u0948", moreKey("\u0936\u094D\u0930")))
             .build();
 }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Nordic.java b/tests/src/com/android/inputmethod/keyboard/layout/Nordic.java
index c791c40..4f718e6 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Nordic.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Nordic.java
@@ -16,6 +16,7 @@
 
 package com.android.inputmethod.keyboard.layout;
 
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/PcQwerty.java b/tests/src/com/android/inputmethod/keyboard/layout/PcQwerty.java
index 3f7340f..0085ac6 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/PcQwerty.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/PcQwerty.java
@@ -17,11 +17,10 @@
 package com.android.inputmethod.keyboard.layout;
 
 import com.android.inputmethod.keyboard.KeyboardId;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
-import java.util.Locale;
-
 /**
  * The PC QWERTY alphabet keyboard.
  */
@@ -35,35 +34,6 @@
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class PcQwertyCustomizer extends LayoutCustomizer {
-        public PcQwertyCustomizer(final Locale locale) { super(locale); }
-
-        @Override
-        public int getNumberOfRows() { return 5; }
-
-        @Override
-        public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) {
-            return joinKeys(SHIFT_KEY);
-        }
-
-        @Override
-        public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
-            return joinKeys(SHIFT_KEY);
-        }
-
-        @Override
-        public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
-            return joinKeys(SETTINGS_KEY);
-        }
-
-        @Override
-        public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
-            return isPhone
-                    ? joinKeys(key(ENTER_KEY, EMOJI_ACTION_KEY))
-                    : joinKeys(EMOJI_NORMAL_KEY);
-        }
-    }
-
     @Override
     ExpectedKey[][] getCommonAlphabetLayout(final boolean isPhone) {
         final LayoutCustomizer customizer = getCustomizer();
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Qwerty.java b/tests/src/com/android/inputmethod/keyboard/layout/Qwerty.java
index d790a1e..508df0c 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Qwerty.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Qwerty.java
@@ -16,6 +16,7 @@
 
 package com.android.inputmethod.keyboard.layout;
 
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Qwertz.java b/tests/src/com/android/inputmethod/keyboard/layout/Qwertz.java
index 26ba6cf..cc41fbf 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Qwertz.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Qwertz.java
@@ -16,6 +16,7 @@
 
 package com.android.inputmethod.keyboard.layout;
 
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/SerbianQwertz.java b/tests/src/com/android/inputmethod/keyboard/layout/SerbianQwertz.java
new file mode 100644
index 0000000..a493628
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/SerbianQwertz.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout;
+
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+public final class SerbianQwertz extends LayoutBase {
+    private static final String LAYOUT_NAME = "serbian_qwertz";
+
+    public SerbianQwertz(final LayoutCustomizer customizer) {
+        super(customizer, Symbols.class, SymbolsShifted.class);
+    }
+
+    @Override
+    public String getName() { return LAYOUT_NAME; }
+
+    @Override
+    ExpectedKey[][] getCommonAlphabetLayout(final boolean isPhone) { return ALPHABET_COMMON; }
+
+    public static final String ROW1_11 = "ROW1_11";
+    public static final String ROW2_10 = "ROW2_10";
+    public static final String ROW2_11 = "ROW2_11";
+    public static final String ROW3_8 = "ROW3_8";
+    public static final String ROW3_9 = "ROW3_9";
+
+    private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder()
+            .setKeysOfRow(1,
+                    key("q", additionalMoreKey("1")),
+                    key("w", additionalMoreKey("2")),
+                    key("e", additionalMoreKey("3")),
+                    key("r", additionalMoreKey("4")),
+                    key("t", additionalMoreKey("5")),
+                    key("z", additionalMoreKey("6")),
+                    key("u", additionalMoreKey("7")),
+                    key("i", additionalMoreKey("8")),
+                    key("o", additionalMoreKey("9")),
+                    key("p", additionalMoreKey("0")),
+                    ROW1_11)
+            .setKeysOfRow(2, "a", "s", "d", "f", "g", "h", "j", "k", "l", ROW2_10, ROW2_11)
+            .setKeysOfRow(3, "y", "x", "c", "v", "b", "n", "m", ROW3_8, ROW3_9)
+            .build();
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Sinhala.java b/tests/src/com/android/inputmethod/keyboard/layout/Sinhala.java
index 354141d..c3a9351 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Sinhala.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Sinhala.java
@@ -17,9 +17,10 @@
 package com.android.inputmethod.keyboard.layout;
 
 import com.android.inputmethod.keyboard.KeyboardId;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.common.Constants;
 
 import java.util.Locale;
 
@@ -29,15 +30,15 @@
 public final class Sinhala extends LayoutBase {
     private static final String LAYOUT_NAME = "sinhala";
 
-    public Sinhala(final LayoutCustomizer customizer) {
-        super(customizer, Symbols.class, SymbolsShifted.class);
+    public Sinhala(final Locale locale) {
+        super(new SinhalaCustomizer(locale), Symbols.class, SymbolsShifted.class);
     }
 
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class SinhalaCustomizer extends LayoutCustomizer {
-        public SinhalaCustomizer(final Locale locale) { super(locale); }
+    private static class SinhalaCustomizer extends LayoutCustomizer {
+        SinhalaCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey getAlphabetKey() { return SINHALA_ALPHABET_KEY; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/SouthSlavic.java b/tests/src/com/android/inputmethod/keyboard/layout/SouthSlavic.java
index be8b435..ad82787 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/SouthSlavic.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/SouthSlavic.java
@@ -16,11 +16,9 @@
 
 package com.android.inputmethod.keyboard.layout;
 
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-import com.android.inputmethod.latin.Constants;
-
-import java.util.Locale;
 
 public final class SouthSlavic extends LayoutBase {
     private static final String LAYOUT_NAME = "south_slavic";
@@ -32,26 +30,6 @@
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class SouthSlavicLayoutCustomizer extends LayoutCustomizer {
-        public SouthSlavicLayoutCustomizer(final Locale locale) {
-            super(locale);
-        }
-
-        @Override
-        public final ExpectedKey getAlphabetKey() { return SOUTH_SLAVIC_ALPHABET_KEY; }
-
-        @Override
-        public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
-            return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
-        }
-
-        // U+0410: "А" CYRILLIC CAPITAL LETTER A
-        // U+0411: "Б" CYRILLIC CAPITAL LETTER BE
-        // U+0412: "В" CYRILLIC CAPITAL LETTER VE
-        private static final ExpectedKey SOUTH_SLAVIC_ALPHABET_KEY = key(
-                "\u0410\u0411\u0412", Constants.CODE_SWITCH_ALPHA_SYMBOL);
-    }
-
     @Override
     ExpectedKey[][] getCommonAlphabetLayout(final boolean isPhone) { return ALPHABET_COMMON; }
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Spanish.java b/tests/src/com/android/inputmethod/keyboard/layout/Spanish.java
index 225b9f6..fc6f1ea 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Spanish.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Spanish.java
@@ -16,6 +16,7 @@
 
 package com.android.inputmethod.keyboard.layout;
 
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Swiss.java b/tests/src/com/android/inputmethod/keyboard/layout/Swiss.java
index 01a6020..57e3725 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Swiss.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Swiss.java
@@ -16,6 +16,7 @@
 
 package com.android.inputmethod.keyboard.layout;
 
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Symbols.java b/tests/src/com/android/inputmethod/keyboard/layout/Symbols.java
index 8030897..7ad7b54 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Symbols.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Symbols.java
@@ -16,7 +16,7 @@
 
 package com.android.inputmethod.keyboard.layout;
 
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.AbstractLayoutBase;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
@@ -41,13 +41,13 @@
                 customizer.getSingleQuoteMoreKeys(), customizer.getSingleAngleQuoteKeys())));
         if (isPhone) {
             builder.addKeysOnTheLeftOfRow(3, customizer.getSymbolsShiftKey(isPhone))
-                    .addKeysOnTheRightOfRow(3, LayoutBase.DELETE_KEY)
+                    .addKeysOnTheRightOfRow(3, DELETE_KEY)
                     .addKeysOnTheLeftOfRow(4, customizer.getAlphabetKey())
                     .addKeysOnTheRightOfRow(4, customizer.getEnterKey(isPhone));
         } else {
             // Tablet symbols keyboard has extra two keys at the left edge of the 3rd row.
             builder.addKeysOnTheLeftOfRow(3, (Object[])joinKeys("\\", "="));
-            builder.addKeysOnTheRightOfRow(1, LayoutBase.DELETE_KEY)
+            builder.addKeysOnTheRightOfRow(1, DELETE_KEY)
                     .addKeysOnTheRightOfRow(2, customizer.getEnterKey(isPhone))
                     .addKeysOnTheLeftOfRow(3, customizer.getSymbolsShiftKey(isPhone))
                     .addKeysOnTheRightOfRow(3, customizer.getSymbolsShiftKey(isPhone))
@@ -167,7 +167,7 @@
                     // U+00BF: "¿" INVERTED QUESTION MARK
                     key("?", moreKey("\u00BF")))
             .setKeysOfRow(4,
-                    key(","), key("_"), LayoutBase.SPACE_KEY, key("/"),
+                    key(","), key("_"), SPACE_KEY, key("/"),
                     // U+2026: "…" HORIZONTAL ELLIPSIS
                     key(".", moreKey("\u2026")))
             .build();
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/SymbolsShifted.java b/tests/src/com/android/inputmethod/keyboard/layout/SymbolsShifted.java
index 19cb607..6426216 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/SymbolsShifted.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/SymbolsShifted.java
@@ -16,7 +16,7 @@
 
 package com.android.inputmethod.keyboard.layout;
 
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 import com.android.inputmethod.keyboard.layout.expected.AbstractLayoutBase;
@@ -37,7 +37,7 @@
         builder.replaceKeyOfLabel(OTHER_CURRENCIES, (Object[])customizer.getOtherCurrencyKeys());
         if (isPhone) {
             builder.addKeysOnTheLeftOfRow(3, customizer.getBackToSymbolsKey())
-                    .addKeysOnTheRightOfRow(3, LayoutBase.DELETE_KEY)
+                    .addKeysOnTheRightOfRow(3, DELETE_KEY)
                     .addKeysOnTheLeftOfRow(4, customizer.getAlphabetKey())
                     .addKeysOnTheRightOfRow(4, customizer.getEnterKey(isPhone));
         } else {
@@ -45,7 +45,7 @@
             // U+00BF: "¿" INVERTED QUESTION MARK
             // U+00A1: "¡" INVERTED EXCLAMATION MARK
             builder.addKeysOnTheRightOfRow(3, (Object[])joinKeys("\u00A1", "\u00BF"));
-            builder.addKeysOnTheRightOfRow(1, LayoutBase.DELETE_KEY)
+            builder.addKeysOnTheRightOfRow(1, DELETE_KEY)
                     .addKeysOnTheRightOfRow(2, customizer.getEnterKey(isPhone))
                     .addKeysOnTheLeftOfRow(3, customizer.getBackToSymbolsKey())
                     .addKeysOnTheRightOfRow(3, customizer.getBackToSymbolsKey())
@@ -122,7 +122,7 @@
                     // U+2264: "≤" LESS-THAN OR EQUAL TO
                     // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
                     key("<", joinMoreKeys("\u2039", "\u2264", "\u00AB")),
-                    LayoutBase.SPACE_KEY,
+                    SPACE_KEY,
                     // U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
                     // U+2265: "≥" GREATER-THAN EQUAL TO
                     // U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Tamil.java b/tests/src/com/android/inputmethod/keyboard/layout/Tamil.java
index 597b6fa..1413e36 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Tamil.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Tamil.java
@@ -16,11 +16,9 @@
 
 package com.android.inputmethod.keyboard.layout;
 
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-import com.android.inputmethod.latin.Constants;
-
-import java.util.Locale;
 
 /**
  * The Tamil keyboard.
@@ -35,29 +33,6 @@
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class TamilCustomizer extends LayoutCustomizer {
-        public TamilCustomizer(final Locale locale) { super(locale); }
-
-        @Override
-        public ExpectedKey getAlphabetKey() { return TAMIL_ALPHABET_KEY; }
-
-        @Override
-        public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) {
-            return EMPTY_KEYS;
-        }
-
-        @Override
-        public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
-            return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
-        }
-
-        // U+0BA4: "த" TAMIL LETTER TA
-        // U+0BAE/U+0BBF: "மி" TAMIL LETTER MA/TAMIL VOWEL SIGN I
-        // U+0BB4/U+0BCD: "ழ்" TAMIL LETTER LLLA/TAMIL SIGN VIRAMA
-        private static final ExpectedKey TAMIL_ALPHABET_KEY = key(
-                "\u0BA4\u0BAE\u0BBF\u0BB4\u0BCD", Constants.CODE_SWITCH_ALPHA_SYMBOL);
-    }
-
     @Override
     ExpectedKey[][] getCommonAlphabetLayout(boolean isPhone) { return ALPHABET_COMMON; }
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Telugu.java b/tests/src/com/android/inputmethod/keyboard/layout/Telugu.java
index cc8224c..81437f3 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Telugu.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Telugu.java
@@ -16,9 +16,10 @@
 
 package com.android.inputmethod.keyboard.layout;
 
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.common.Constants;
 
 import java.util.Locale;
 
@@ -28,15 +29,15 @@
 public final class Telugu extends LayoutBase {
     private static final String LAYOUT_NAME = "telugu";
 
-    public Telugu(final LayoutCustomizer customizer) {
-        super(customizer, Symbols.class, SymbolsShifted.class);
+    public Telugu(final Locale locale) {
+        super(new TeluguCustomizer(locale), Symbols.class, SymbolsShifted.class);
     }
 
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class TeluguCustomizer extends LayoutCustomizer {
-        public TeluguCustomizer(final Locale locale) { super(locale); }
+    private static class TeluguCustomizer extends LayoutCustomizer {
+        TeluguCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey getAlphabetKey() { return TELUGU_ALPHABET_KEY; }
@@ -139,8 +140,8 @@
                     key("\u0C2A", moreKey("\u0C2B")),
                     // U+0C30: "ర" TELUGU LETTER RA
                     // U+0C31: "ఱ" TELUGU LETTER RRA
-                    // U+0C43: "ృ" TELUGU VOWEL SIGN VOCALIC R
-                    key("\u0C30", joinMoreKeys("\u0C31", "\u0C43")),
+                    // U+0C4D/U+0C30: "్ర" TELUGU SIGN VIRAMA/TELUGU LETTER RA
+                    key("\u0C30", joinMoreKeys("\u0C31", "\u0C4D\u0C30")),
                     // U+0C15: "క" TELUGU LETTER KA
                     // U+0C16: "ఖ" TELUGU LETTER KHA
                     key("\u0C15", moreKey("\u0C16")),
@@ -154,18 +155,21 @@
                     // U+0C20: "ఠ" TELUGU LETTER TTHA
                     key("\u0C1F", moreKey("\u0C20")))
             .setKeysOfRow(3,
-                    // U+0C46: "ె" TELUGU VOWEL SIGN E
+                    // U+0C4A: "ొ" TELUGU VOWEL SIGN O
                     // U+0C12: "ఒ" TELUGU LETTER O
-                    key("\u0C46", moreKey("\u0C12")),
-                    // U+0C02: "ం" TELUGU SIGN ANUSVARA
+                    key("\u0C4A", moreKey("\u0C12")),
+                    // U+0C46: "ె" TELUGU VOWEL SIGN E
                     // U+0C0E: "ఎ" TELUGU LETTER E
-                    key("\u0C02", moreKey("\u0C0E")),
+                    key("\u0C46", moreKey("\u0C0E")),
                     // U+0C2E: "మ" TELUGU LETTER MA
-                    "\u0C2E",
+                    // U+0C02: "ం" TELUGU SIGN ANUSVARA
+                    // U+0C01: "ఁ" TELUGU SIGN CANDRABINDU
+                    key("\u0C2E", joinMoreKeys("\u0C02", "\u0C01")),
                     // U+0C28: "న" TELUGU LETTER NA
                     // U+0C23: "ణ" TELUGU LETTER NNA
                     // U+0C19: "ఙ" TELUGU LETTER NGA
-                    key("\u0C28", joinMoreKeys("\u0C23", "\u0C19")),
+                    // U+0C1E: "ఞ" TELUGU LETTER NYA
+                    key("\u0C28", joinMoreKeys("\u0C23", "\u0C19", "\u0C1E")),
                     // U+0C35: "వ" TELUGU LETTER VA
                     "\u0C35",
                     // U+0C32: "ల" TELUGU LETTER LA
@@ -175,8 +179,8 @@
                     // U+0C36: "శ" TELUGU LETTER SHA
                     key("\u0C38", moreKey("\u0C36")),
                     // U+0C0B: "ఋ" TELUGU LETTER VOCALIC R
-                    // U+0C4D/U+0C30: "్ర" TELUGU SIGN VIRAMA/TELUGU LETTER RA
-                    key("\u0C0B", moreKey("\u0C4D\u0C30")),
+                    // U+0C43: "ృ" TELUGU VOWEL SIGN VOCALIC R
+                    key("\u0C0B", moreKey("\u0C43")),
                     // U+0C37: "ష" TELUGU LETTER SSA
                     // U+0C15/U+0C4D/U+0C37:
                     //     "క్ష" TELUGU LETTER KA/TELUGU SIGN VIRAMA/TELUGU LETTER SSA
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Thai.java b/tests/src/com/android/inputmethod/keyboard/layout/Thai.java
index cfda294..ce5fd80 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/Thai.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Thai.java
@@ -17,9 +17,10 @@
 package com.android.inputmethod.keyboard.layout;
 
 import com.android.inputmethod.keyboard.KeyboardId;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.common.Constants;
 
 import java.util.Locale;
 
@@ -29,15 +30,15 @@
 public final class Thai extends LayoutBase {
     private static final String LAYOUT_NAME = "thai";
 
-    public Thai(final LayoutCustomizer customizer) {
-        super(customizer, Symbols.class, SymbolsShifted.class);
+    public Thai(final Locale locale) {
+        super(new ThaiCustomizer(locale), Symbols.class, SymbolsShifted.class);
     }
 
     @Override
     public String getName() { return LAYOUT_NAME; }
 
-    public static class ThaiCustomizer extends LayoutCustomizer {
-        public ThaiCustomizer(final Locale locale) { super(locale); }
+    private static class ThaiCustomizer extends LayoutCustomizer {
+        ThaiCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public int getNumberOfRows() { return 5; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/Uzbek.java b/tests/src/com/android/inputmethod/keyboard/layout/Uzbek.java
new file mode 100644
index 0000000..f37fd22
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/Uzbek.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout;
+
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+/**
+ * The Uzbek alphabet keyboard.
+ */
+public final class Uzbek extends LayoutBase {
+    private static final String LAYOUT_NAME = "uzbek";
+
+    public Uzbek(final LayoutCustomizer customizer) {
+        super(customizer, Symbols.class, SymbolsShifted.class);
+    }
+
+    @Override
+    public String getName() { return LAYOUT_NAME; }
+
+    @Override
+    ExpectedKey[][] getCommonAlphabetLayout(final boolean isPhone) { return ALPHABET_COMMON; }
+
+    public static final String ROW1_11 = "ROW1_11";
+    public static final String ROW2_10 = "ROW2_10";
+    public static final String ROW2_11 = "ROW2_11";
+
+    private static final ExpectedKey[][] ALPHABET_COMMON = new ExpectedKeyboardBuilder()
+            .setKeysOfRow(1,
+                    key("q", additionalMoreKey("1")),
+                    key("w", additionalMoreKey("2")),
+                    key("e", additionalMoreKey("3")),
+                    key("r", additionalMoreKey("4")),
+                    key("t", additionalMoreKey("5")),
+                    key("y", additionalMoreKey("6")),
+                    key("u", additionalMoreKey("7")),
+                    key("i", additionalMoreKey("8")),
+                    key("o", additionalMoreKey("9")),
+                    key("p", additionalMoreKey("0")),
+                    ROW1_11)
+            .setKeysOfRow(2, "a", "s", "d", "f", "g", "h", "j", "k", "l", ROW2_10, ROW2_11)
+            .setKeysOfRow(3, "z", "x", "c", "v", "b", "n", "m")
+            .build();
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/BengaliCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/BengaliCustomizer.java
new file mode 100644
index 0000000..f13c261
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/BengaliCustomizer.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.layout.SymbolsShifted;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.latin.common.Constants;
+
+import java.util.Locale;
+
+public class BengaliCustomizer extends LayoutCustomizer {
+    public BengaliCustomizer(final Locale locale) { super(locale); }
+
+    @Override
+    public ExpectedKey getAlphabetKey() { return BENGALI_ALPHABET_KEY; }
+
+    @Override
+    public ExpectedKey[] getOtherCurrencyKeys() {
+        return SymbolsShifted.CURRENCIES_OTHER_GENERIC;
+    }
+
+    @Override
+    public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
+        return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
+    }
+
+    // U+0995: "क" BENGALI LETTER KA
+    // U+0996: "ख" BENGALI LETTER KHA
+    // U+0997: "ग" BENGALI LETTER GA
+    private static final ExpectedKey BENGALI_ALPHABET_KEY = key(
+            "\u0995\u0996\u0997", Constants.CODE_SWITCH_ALPHA_SYMBOL);
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/DanishCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/DanishCustomizer.java
new file mode 100644
index 0000000..3d91194
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/DanishCustomizer.java
@@ -0,0 +1,112 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.layout.Nordic;
+import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+public class DanishCustomizer extends EuroCustomizer {
+    public DanishCustomizer(final Locale locale) { super(locale); }
+
+    @Override
+    public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }
+
+    @Override
+    public ExpectedKey[] getSingleQuoteMoreKeys() { return Symbols.SINGLE_QUOTES_R9L; }
+
+    @Override
+    public ExpectedKey[] getDoubleAngleQuoteKeys() { return Symbols.DOUBLE_ANGLE_QUOTES_RL; }
+
+    @Override
+    public ExpectedKey[] getSingleAngleQuoteKeys() { return Symbols.SINGLE_ANGLE_QUOTES_RL; }
+
+    protected void setNordicKeys(final ExpectedKeyboardBuilder builder) {
+        builder
+                // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+                .replaceKeyOfLabel(Nordic.ROW1_11, "\u00E5")
+                // U+00E6: "æ" LATIN SMALL LETTER AE
+                // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+                .replaceKeyOfLabel(Nordic.ROW2_10, "\u00E6")
+                .setMoreKeysOf("\u00E6", "\u00E4")
+                // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+                // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+                .replaceKeyOfLabel(Nordic.ROW2_11, "\u00F8")
+                .setMoreKeysOf("\u00F8", "\u00F6");
+    }
+
+    protected void setMoreKeysOfA(final ExpectedKeyboardBuilder builder) {
+        builder
+                // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+                // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+                // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+                // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+                // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+                // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+                .setMoreKeysOf("a", "\u00E1", "\u00E4", "\u00E0", "\u00E2", "\u00E3", "\u0101");
+    }
+
+    protected void setMoreKeysOfO(final ExpectedKeyboardBuilder builder) {
+        builder
+                // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+                // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+                // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+                // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+                // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+                // U+0153: "œ" LATIN SMALL LIGATURE OE
+                // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+                .setMoreKeysOf("o", "\u00F6", "\u00F3", "\u00F4", "\u00F2", "\u00F5", "\u0153",
+                        "\u014D");
+    }
+
+    @Override
+    public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+        setNordicKeys(builder);
+        setMoreKeysOfA(builder);
+        setMoreKeysOfO(builder);
+        return builder
+                // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+                // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+                .setMoreKeysOf("e", "\u00E9", "\u00EB")
+                // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
+                // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
+                .setMoreKeysOf("y", "\u00FD", "\u00FF")
+                // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+                // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+                // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+                // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+                // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+                .setMoreKeysOf("u", "\u00FA", "\u00FC", "\u00FB", "\u00F9", "\u016B")
+                // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+                // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+                .setMoreKeysOf("i", "\u00ED", "\u00EF")
+                // U+00DF: "ß" LATIN SMALL LETTER SHARP S
+                // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
+                // U+0161: "š" LATIN SMALL LETTER S WITH CARON
+                .setMoreKeysOf("s", "\u00DF", "\u015B", "\u0161")
+                // U+00F0: "ð" LATIN SMALL LETTER ETH
+                .setMoreKeysOf("d", "\u00F0")
+                // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
+                .setMoreKeysOf("l", "\u0142")
+                // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+                // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+                .setMoreKeysOf("n", "\u00F1", "\u0144");
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/DevanagariCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/DevanagariCustomizer.java
new file mode 100644
index 0000000..13f9171
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/DevanagariCustomizer.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.latin.common.Constants;
+
+import java.util.Locale;
+
+public class DevanagariCustomizer extends LayoutCustomizer {
+    public DevanagariCustomizer(final Locale locale) { super(locale); }
+
+    @Override
+    public ExpectedKey getAlphabetKey() { return HINDI_ALPHABET_KEY; }
+
+    @Override
+    public ExpectedKey getSymbolsKey() { return HINDI_SYMBOLS_KEY; }
+
+    @Override
+    public ExpectedKey getBackToSymbolsKey() { return HINDI_BACK_TO_SYMBOLS_KEY; }
+
+    // U+0915: "क" DEVANAGARI LETTER KA
+    // U+0916: "ख" DEVANAGARI LETTER KHA
+    // U+0917: "ग" DEVANAGARI LETTER GA
+    private static final ExpectedKey HINDI_ALPHABET_KEY = key(
+            "\u0915\u0916\u0917", Constants.CODE_SWITCH_ALPHA_SYMBOL);
+    // U+0967: "१" DEVANAGARI DIGIT ONE
+    // U+0968: "२" DEVANAGARI DIGIT TWO
+    // U+0969: "३" DEVANAGARI DIGIT THREE
+    private static final String HINDI_SYMBOLS_LABEL = "?\u0967\u0968\u0969";
+    private static final ExpectedKey HINDI_SYMBOLS_KEY = key(HINDI_SYMBOLS_LABEL,
+            Constants.CODE_SWITCH_ALPHA_SYMBOL);
+    private static final ExpectedKey HINDI_BACK_TO_SYMBOLS_KEY = key(HINDI_SYMBOLS_LABEL,
+            Constants.CODE_SHIFT);
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/DutchCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/DutchCustomizer.java
new file mode 100644
index 0000000..825afb6
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/DutchCustomizer.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+public class DutchCustomizer extends EuroCustomizer {
+    public DutchCustomizer(final Locale locale) { super(locale); }
+
+    @Override
+    public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_L9R; }
+
+    @Override
+    public ExpectedKey[] getSingleQuoteMoreKeys() { return Symbols.SINGLE_QUOTES_L9R; }
+
+    @Override
+    public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+        return builder
+                // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+                // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+                // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+                // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+                // U+00E6: "æ" LATIN SMALL LETTER AE
+                // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+                // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+                // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+                .setMoreKeysOf("a",
+                        "\u00E1", "\u00E4", "\u00E2", "\u00E0", "\u00E6", "\u00E3", "\u00E5",
+                        "\u0101")
+                // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+                // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+                // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+                // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+                // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+                // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+                // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+                .setMoreKeysOf("e",
+                        "\u00E9", "\u00EB", "\u00EA", "\u00E8", "\u0119", "\u0117", "\u0113")
+                // U+0133: "ĳ" LATIN SMALL LIGATURE IJ
+                .setMoreKeysOf("y", "\u0133")
+                // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+                // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+                // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+                // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+                // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+                .setMoreKeysOf("u", "\u00FA", "\u00FC", "\u00FB", "\u00F9", "\u016B")
+                // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+                // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+                // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+                // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+                // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+                // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
+                // U+0133: "ĳ" LATIN SMALL LIGATURE IJ
+                .setMoreKeysOf("i",
+                        "\u00ED", "\u00EF", "\u00EC", "\u00EE", "\u012F", "\u012B", "\u0133")
+                // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+                // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+                // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+                // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+                // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+                // U+0153: "œ" LATIN SMALL LIGATURE OE
+                // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+                // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+                .setMoreKeysOf("o",
+                        "\u00F3", "\u00F6", "\u00F4", "\u00F2", "\u00F5", "\u0153", "\u00F8",
+                        "\u014D")
+                // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+                // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+                .setMoreKeysOf("n", "\u00F1", "\u0144");
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/DvorakCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/DvorakCustomizer.java
new file mode 100644
index 0000000..b7b0187
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/DvorakCustomizer.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey.ExpectedAdditionalMoreKey;
+
+import java.util.Locale;
+
+public class DvorakCustomizer extends LayoutCustomizer {
+    public DvorakCustomizer(final Locale locale) { super(locale); }
+
+    @Override
+    public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) {
+        return isPhone ? joinKeys(SHIFT_KEY): joinKeys(SHIFT_KEY, key("q"));
+    }
+
+    @Override
+    public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
+        return isPhone ? EMPTY_KEYS : joinKeys(key("z"), SHIFT_KEY);
+    }
+
+    @Override
+    public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
+        // U+00A1: "¡" INVERTED EXCLAMATION MARK
+        return isPhone ? joinKeys(key("q", SETTINGS_KEY))
+                : joinKeys(key("!", joinMoreKeys("\u00A1", SETTINGS_KEY)));
+    }
+
+    @Override
+    public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
+        final ExpectedAdditionalMoreKey[] punctuationMoreKeys =
+                convertToAdditionalMoreKeys(getPunctuationMoreKeys(isPhone));
+        // U+00BF: "¿" INVERTED QUESTION MARK
+        return isPhone
+                ? joinKeys(key("z", punctuationMoreKeys))
+                : joinKeys(key("?", joinMoreKeys(punctuationMoreKeys, "\u00BF")));
+    }
+
+    private static ExpectedAdditionalMoreKey[] convertToAdditionalMoreKeys(
+            final ExpectedKey ... moreKeys) {
+        final ExpectedAdditionalMoreKey[] additionalMoreKeys =
+                new ExpectedAdditionalMoreKey[moreKeys.length];
+        for (int index = 0; index < moreKeys.length; index++) {
+            additionalMoreKeys[index] = ExpectedAdditionalMoreKey.newInstance(moreKeys[index]);
+        }
+        return additionalMoreKeys;
+    }
+
+    public static class EnglishDvorakCustomizer extends DvorakCustomizer {
+        private final EnglishCustomizer mEnglishCustomizer;
+
+        public EnglishDvorakCustomizer(final Locale locale) {
+            super(locale);
+            mEnglishCustomizer = new EnglishCustomizer(locale);
+        }
+
+        @Override
+        public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+            return mEnglishCustomizer.setAccentedLetters(builder);
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/EastSlavicCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/EastSlavicCustomizer.java
new file mode 100644
index 0000000..8815b06
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/EastSlavicCustomizer.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.latin.common.Constants;
+
+import java.util.Locale;
+
+public class EastSlavicCustomizer extends LayoutCustomizer {
+    public EastSlavicCustomizer(final Locale locale) { super(locale); }
+
+    @Override
+    public final ExpectedKey getAlphabetKey() { return EAST_SLAVIC_ALPHABET_KEY; }
+
+    @Override
+    public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
+        return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
+    }
+
+    // U+0410: "А" CYRILLIC CAPITAL LETTER A
+    // U+0411: "Б" CYRILLIC CAPITAL LETTER BE
+    // U+0412: "В" CYRILLIC CAPITAL LETTER VE
+    private static final ExpectedKey EAST_SLAVIC_ALPHABET_KEY = key(
+            "\u0410\u0411\u0412", Constants.CODE_SWITCH_ALPHA_SYMBOL);
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/EnglishCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/EnglishCustomizer.java
new file mode 100644
index 0000000..9a9c6bb
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/EnglishCustomizer.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+public class EnglishCustomizer extends LayoutCustomizer {
+    public EnglishCustomizer(final Locale locale) { super(locale); }
+
+    @Override
+    public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+        return builder
+                // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+                // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+                // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+                // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+                // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+                .setMoreKeysOf("e", "\u00E9", "\u00E8", "\u00EA", "\u00EB", "\u0113")
+                // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+                // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+                // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+                // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+                // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+                .setMoreKeysOf("u", "\u00FA", "\u00FB", "\u00FC", "\u00F9", "\u016B")
+                // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+                // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+                // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+                // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
+                // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+                .setMoreKeysOf("i", "\u00ED", "\u00EE", "\u00EF", "\u012B", "\u00EC")
+                // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+                // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+                // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+                // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+                // U+0153: "œ" LATIN SMALL LIGATURE OE
+                // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+                // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+                // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+                .setMoreKeysOf("o",
+                        "\u00F3", "\u00F4", "\u00F6", "\u00F2", "\u0153", "\u00F8", "\u014D",
+                        "\u00F5")
+                // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+                // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+                // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+                // U+00E6: "æ" LATIN SMALL LETTER AE
+                // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+                // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+                // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+                .setMoreKeysOf("a",
+                        "\u00E0", "\u00E1", "\u00E2", "\u00E4", "\u00E6", "\u00E3", "\u00E5",
+                        "\u0101")
+                // U+00DF: "ß" LATIN SMALL LETTER SHARP S
+                .setMoreKeysOf("s", "\u00DF")
+                // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
+                .setMoreKeysOf("c", "\u00E7")
+                // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+                .setMoreKeysOf("n", "\u00F1");
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/EstonianEECustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/EstonianEECustomizer.java
new file mode 100644
index 0000000..a7d611a
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/EstonianEECustomizer.java
@@ -0,0 +1,167 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.KeyboardId;
+import com.android.inputmethod.keyboard.layout.Nordic;
+import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+public class EstonianEECustomizer extends EuroCustomizer {
+    public EstonianEECustomizer(final Locale locale) { super(locale); }
+
+    @Override
+    public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }
+
+    @Override
+    public ExpectedKey[] getSingleQuoteMoreKeys() { return Symbols.SINGLE_QUOTES_R9L; }
+
+    protected void setNordicKeys(final ExpectedKeyboardBuilder builder) {
+        builder
+                // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+                .replaceKeyOfLabel(Nordic.ROW1_11, "\u00FC")
+                // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+                // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+                .replaceKeyOfLabel(Nordic.ROW2_10, "\u00F6")
+                .setMoreKeysOf("\u00F6", "\u00F5")
+                // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+                .replaceKeyOfLabel(Nordic.ROW2_11, "\u00E4");
+    }
+
+    protected void setMoreKeysOfA(final ExpectedKeyboardBuilder builder) {
+        builder
+                // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+                // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+                // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+                // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+                // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+                // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+                // U+00E6: "æ" LATIN SMALL LETTER AE
+                // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
+                .setMoreKeysOf("a", "\u0101", "\u00E0", "\u00E1", "\u00E2", "\u00E3", "\u00E5",
+                        "\u00E6", "\u0105");
+    }
+
+    protected void setMoreKeysOfI(final ExpectedKeyboardBuilder builder, final int elementId) {
+        // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
+        // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+        // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+        // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+        // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+        // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+        // U+0131: "ı" LATIN SMALL LETTER DOTLESS I
+        if (elementId == KeyboardId.ELEMENT_ALPHABET) {
+            builder.setMoreKeysOf("i",
+                    "\u012B", "\u00EC", "\u012F", "\u00ED", "\u00EE", "\u00EF", "\u0131");
+        } else {
+            // The upper-case letter of "ı" in Estonian locale is "I". It should be omitted
+            // from the more keys of "I".
+            builder.setMoreKeysOf("i",
+                    "\u012B", "\u00EC", "\u012F", "\u00ED", "\u00EE", "\u00EF");
+        }
+    }
+
+    protected void setMoreKeysOfO(final ExpectedKeyboardBuilder builder) {
+        builder
+                // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+                // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+                // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+                // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+                // U+0153: "œ" LATIN SMALL LIGATURE OE
+                // U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE
+                // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+                .setMoreKeysOf("o", "\u00F5", "\u00F2", "\u00F3", "\u00F4", "\u0153", "\u0151",
+                        "\u00F8");
+    }
+
+    protected void setMoreKeysOfU(final ExpectedKeyboardBuilder builder) {
+        builder
+                // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+                // U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK
+                // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+                // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+                // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+                // U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
+                // U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
+                .setMoreKeysOf("u", "\u016B", "\u0173", "\u00F9", "\u00FA", "\u00FB", "\u016F",
+                        "\u0171");
+    }
+
+    @Override
+    public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder,
+            final int elementId) {
+        setNordicKeys(builder);
+        setMoreKeysOfA(builder);
+        setMoreKeysOfI(builder, elementId);
+        setMoreKeysOfO(builder);
+        setMoreKeysOfU(builder);
+        return builder
+                // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+                // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+                // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+                // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+                // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+                // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+                // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+                // U+011B: "ě" LATIN SMALL LETTER E WITH CARON
+                .setMoreKeysOf("e",
+                        "\u0113", "\u00E8", "\u0117", "\u00E9", "\u00EA", "\u00EB", "\u0119",
+                        "\u011B")
+                // U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
+                // U+0159: "ř" LATIN SMALL LETTER R WITH CARON
+                // U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
+                .setMoreKeysOf("r", "\u0157", "\u0159", "\u0155")
+                // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
+                // U+0165: "ť" LATIN SMALL LETTER T WITH CARON
+                .setMoreKeysOf("t", "\u0163", "\u0165")
+                // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
+                // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
+                .setMoreKeysOf("y", "\u00FD", "\u00FF")
+                // U+0161: "š" LATIN SMALL LETTER S WITH CARON
+                // U+00DF: "ß" LATIN SMALL LETTER SHARP S
+                // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
+                // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
+                .setMoreKeysOf("s", "\u0161", "\u00DF", "\u015B", "\u015F")
+                // U+010F: "ď" LATIN SMALL LETTER D WITH CARON
+                .setMoreKeysOf("d", "\u010F")
+                // U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA
+                // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
+                .setMoreKeysOf("g", "\u0123", "\u011F")
+                // U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA
+                .setMoreKeysOf("k", "\u0137")
+                // U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA
+                // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
+                // U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE
+                // U+013E: "ľ" LATIN SMALL LETTER L WITH CARON
+                .setMoreKeysOf("l", "\u013C", "\u0142", "\u013A", "\u013E")
+                // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
+                // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
+                // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
+                .setMoreKeysOf("z", "\u017E", "\u017C", "\u017A")
+                // U+010D: "č" LATIN SMALL LETTER C WITH CARON
+                // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
+                // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
+                .setMoreKeysOf("c", "\u010D", "\u00E7", "\u0107")
+                // U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
+                // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+                // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+                .setMoreKeysOf("n", "\u0146", "\u00F1", "\u0144");
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/EuroCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/EuroCustomizer.java
new file mode 100644
index 0000000..ee0236d
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/EuroCustomizer.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.SymbolsShifted;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+
+import java.util.Locale;
+
+/**
+ * The layout customize class for countries that use Euro.
+ */
+public class EuroCustomizer extends LayoutCustomizer {
+    public EuroCustomizer(final Locale locale) {
+        super(locale);
+    }
+
+    @Override
+    public final ExpectedKey getCurrencyKey() { return Symbols.CURRENCY_EURO; }
+
+    @Override
+    public final ExpectedKey[] getOtherCurrencyKeys() {
+        return SymbolsShifted.CURRENCIES_OTHER_THAN_EURO;
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/FinnishCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/FinnishCustomizer.java
new file mode 100644
index 0000000..a792f91
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/FinnishCustomizer.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.layout.Nordic;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+public class FinnishCustomizer extends EuroCustomizer {
+    public FinnishCustomizer(final Locale locale) { super(locale); }
+
+    protected void setNordicKeys(final ExpectedKeyboardBuilder builder) {
+        builder
+                // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+                .replaceKeyOfLabel(Nordic.ROW1_11, "\u00E5")
+                // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+                // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+                .replaceKeyOfLabel(Nordic.ROW2_10, "\u00F6")
+                .setMoreKeysOf("\u00F6","\u00F8")
+                // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+                // U+00E6: "æ" LATIN SMALL LETTER AE
+                .replaceKeyOfLabel(Nordic.ROW2_11, "\u00E4")
+                .setMoreKeysOf("\u00E4", "\u00E6");
+    }
+
+    protected void setMoreKeysOfA(final ExpectedKeyboardBuilder builder) {
+        builder
+                // U+00E6: "æ" LATIN SMALL LETTER AE
+                // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+                // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+                // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+                // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+                // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+                .setMoreKeysOf("a", "\u00E6", "\u00E0", "\u00E1", "\u00E2", "\u00E3", "\u0101");
+    }
+
+    protected void setMoreKeysOfO(final ExpectedKeyboardBuilder builder) {
+        builder
+                // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+                // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+                // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+                // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+                // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+                // U+0153: "œ" LATIN SMALL LIGATURE OE
+                // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+                .setMoreKeysOf("o", "\u00F8", "\u00F4", "\u00F2", "\u00F3", "\u00F5", "\u0153",
+                        "\u014D");
+    }
+
+    @Override
+    public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+        setNordicKeys(builder);
+        setMoreKeysOfA(builder);
+        setMoreKeysOfO(builder);
+        return builder
+                // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+                .setMoreKeysOf("u", "\u00FC")
+                // U+0161: "š" LATIN SMALL LETTER S WITH CARON
+                // U+00DF: "ß" LATIN SMALL LETTER SHARP S
+                // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
+                .setMoreKeysOf("s", "\u0161", "\u00DF", "\u015B")
+                // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
+                // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
+                // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
+                .setMoreKeysOf("z", "\u017E", "\u017A", "\u017C");
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/FrenchCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/FrenchCustomizer.java
new file mode 100644
index 0000000..d7798cc
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/FrenchCustomizer.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+public class FrenchCustomizer extends LayoutCustomizer {
+    public FrenchCustomizer(final Locale locale) { super(locale); }
+
+    @Override
+    public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+        return builder
+                // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+                // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+                // U+00E6: "æ" LATIN SMALL LETTER AE
+                // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+                // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+                // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+                // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+                // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+                // U+00AA: "ª" FEMININE ORDINAL INDICATOR
+                .setAdditionalMoreKeysPositionOf("a", 3)
+                .setMoreKeysOf("a",
+                        "\u00E0", "\u00E2", "\u00E6", "\u00E1", "\u00E4", "\u00E3", "\u00E5",
+                        "\u0101", "\u00AA")
+                // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+                // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+                // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+                // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+                // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+                // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+                // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+                .setAdditionalMoreKeysPositionOf("e", 5)
+                .setMoreKeysOf("e",
+                        "\u00E9", "\u00E8", "\u00EA", "\u00EB", "\u0119", "\u0117", "\u0113")
+                // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
+                .setMoreKeysOf("y", "\u00FF")
+                // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+                // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+                // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+                // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+                // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+                .setAdditionalMoreKeysPositionOf("u", 3)
+                .setMoreKeysOf("u", "\u00F9", "\u00FB", "\u00FC", "\u00FA", "\u016B")
+                // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+                // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+                // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+                // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+                // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+                // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
+                .setAdditionalMoreKeysPositionOf("i", 2)
+                .setMoreKeysOf("i", "\u00EE", "\u00EF", "\u00EC", "\u00ED", "\u012F", "\u012B")
+                // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+                // U+0153: "œ" LATIN SMALL LIGATURE OE
+                // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+                // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+                // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+                // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+                // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+                // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+                // U+00BA: "º" MASCULINE ORDINAL INDICATOR
+                .setAdditionalMoreKeysPositionOf("o", 3)
+                .setMoreKeysOf("o",
+                        "\u00F4", "\u0153", "\u00F6", "\u00F2", "\u00F3", "\u00F5", "\u00F8",
+                        "\u014D", "\u00BA")
+                // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
+                // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
+                // U+010D: "č" LATIN SMALL LETTER C WITH CARON
+                .setMoreKeysOf("c", "\u00E7", "\u0107", "\u010D")
+                .setAdditionalMoreKeysPositionOf("c", 2);
+    }
+
+    public static final class FrenchEuroCustomizer extends FrenchCustomizer {
+        private final EuroCustomizer mEuroCustomizer;
+
+        public FrenchEuroCustomizer(final Locale locale) {
+            super(locale);
+            mEuroCustomizer = new EuroCustomizer(locale);
+        }
+
+        @Override
+        public final ExpectedKey getCurrencyKey() { return mEuroCustomizer.getCurrencyKey(); }
+
+        @Override
+        public final ExpectedKey[] getOtherCurrencyKeys() {
+            return mEuroCustomizer.getOtherCurrencyKeys();
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/GermanCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/GermanCustomizer.java
new file mode 100644
index 0000000..e0e4c78
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/GermanCustomizer.java
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+public class GermanCustomizer extends LayoutCustomizer {
+    public GermanCustomizer(final Locale locale) { super(locale); }
+
+    @Override
+    public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }
+
+    @Override
+    public ExpectedKey[] getSingleQuoteMoreKeys() { return Symbols.SINGLE_QUOTES_R9L; }
+
+    @Override
+    public ExpectedKey[] getDoubleAngleQuoteKeys() { return Symbols.DOUBLE_ANGLE_QUOTES_RL; }
+
+    @Override
+    public ExpectedKey[] getSingleAngleQuoteKeys() { return Symbols.SINGLE_ANGLE_QUOTES_RL; }
+
+    @Override
+    public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+        return builder
+                // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+                // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+                // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+                // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+                // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+                .setMoreKeysOf("e", "\u00E9", "\u00E8", "\u00EA", "\u00EB", "\u0117")
+                // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+                // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+                // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+                // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+                // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+                .setMoreKeysOf("u", "\u00FC", "\u00FB", "\u00F9", "\u00FA", "\u016B")
+                .setAdditionalMoreKeysPositionOf("u", 2)
+                // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+                // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+                // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+                // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+                // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+                // U+0153: "œ" LATIN SMALL LIGATURE OE
+                // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+                // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+                .setMoreKeysOf("o",
+                        "\u00F6", "\u00F4", "\u00F2", "\u00F3", "\u00F5", "\u0153", "\u00F8",
+                        "\u014D")
+                .setAdditionalMoreKeysPositionOf("o", 2)
+                // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+                // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+                // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+                // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+                // U+00E6: "æ" LATIN SMALL LETTER AE
+                // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+                // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+                // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+                .setMoreKeysOf("a",
+                        "\u00E4", "\u00E2", "\u00E0", "\u00E1", "\u00E6", "\u00E3", "\u00E5",
+                        "\u0101")
+                .setAdditionalMoreKeysPositionOf("a", 2)
+                // U+00DF: "ß" LATIN SMALL LETTER SHARP S
+                // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
+                // U+0161: "š" LATIN SMALL LETTER S WITH CARON
+                .setMoreKeysOf("s", "\u00DF", "\u015B", "\u0161")
+                // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+                // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+                .setMoreKeysOf("n", "\u00F1", "\u0144");
+    }
+
+    public static class GermanEuroCustomizer extends GermanCustomizer {
+        private final EuroCustomizer mEuroCustomizer;
+
+        public GermanEuroCustomizer(final Locale locale) {
+            super(locale);
+            mEuroCustomizer = new EuroCustomizer(locale);
+        }
+
+        @Override
+        public ExpectedKey getCurrencyKey() { return mEuroCustomizer.getCurrencyKey(); }
+
+        @Override
+        public ExpectedKey[] getOtherCurrencyKeys() {
+            return mEuroCustomizer.getOtherCurrencyKeys();
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/HindiCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/HindiCustomizer.java
new file mode 100644
index 0000000..c7fe9db
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/HindiCustomizer.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.SymbolsShifted;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+
+import java.util.Locale;
+
+public class HindiCustomizer extends DevanagariCustomizer {
+    public HindiCustomizer(final Locale locale) { super(locale); }
+
+    @Override
+    public ExpectedKey getCurrencyKey() { return CURRENCY_RUPEE; }
+
+    @Override
+    public ExpectedKey[] getOtherCurrencyKeys() {
+        return SymbolsShifted.CURRENCIES_OTHER_GENERIC;
+    }
+
+    @Override
+    public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
+        return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
+    }
+
+    @Override
+    public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
+        // U+0964: "।" DEVANAGARI DANDA
+        final ExpectedKey periodKey = key("\u0964", getPunctuationMoreKeys(isPhone));
+        return joinKeys(periodKey);
+    }
+
+    @Override
+    public ExpectedKey[] getPunctuationMoreKeys(final boolean isPhone) {
+        return isPhone ? HINDI_PHONE_PUNCTUATION_MORE_KEYS : HINDI_TABLET_PUNCTUATION_MORE_KEYS;
+    }
+
+    // U+20B9: "₹" INDIAN RUPEE SIGN
+    private static final ExpectedKey CURRENCY_RUPEE = key("\u20B9",
+            Symbols.CURRENCY_GENERIC_MORE_KEYS);
+
+    // Punctuation more keys for phone form factor.
+    private static final ExpectedKey[] HINDI_PHONE_PUNCTUATION_MORE_KEYS = joinKeys(
+            ",", ".", "?", "!", "#", ")", "(", "/", ";",
+            "'", "@", ":", "-", "\"", "+", "%", "&");
+    // Punctuation more keys for tablet form factor.
+    private static final ExpectedKey[] HINDI_TABLET_PUNCTUATION_MORE_KEYS = joinKeys(
+            ",", ".", "'", "#", ")", "(", "/", ";",
+            "@", ":", "-", "\"", "+", "%", "&");
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/ItalianCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/ItalianCustomizer.java
new file mode 100644
index 0000000..3b547fd
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/ItalianCustomizer.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+public class ItalianCustomizer extends LayoutCustomizer {
+    public ItalianCustomizer(final Locale locale) { super(locale); }
+
+    @Override
+    public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+        return builder
+                // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+                // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+                // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+                // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+                // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+                // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+                // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+                .setMoreKeysOf("e",
+                        "\u00E8", "\u00E9", "\u00EA", "\u00EB", "\u0119", "\u0117", "\u0113")
+                // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+                // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+                // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+                // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+                // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+                .setMoreKeysOf("u", "\u00F9", "\u00FA", "\u00FB", "\u00FC", "\u016B")
+                // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+                // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+                // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+                // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+                // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+                // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
+                .setMoreKeysOf("i", "\u00EC", "\u00ED", "\u00EE", "\u00EF", "\u012F", "\u012B")
+                // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+                // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+                // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+                // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+                // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+                // U+0153: "œ" LATIN SMALL LIGATURE OE
+                // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+                // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+                // U+00BA: "º" MASCULINE ORDINAL INDICATOR
+                .setMoreKeysOf("o",
+                        "\u00F2", "\u00F3", "\u00F4", "\u00F6", "\u00F5", "\u0153", "\u00F8",
+                        "\u014D", "\u00BA")
+                // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+                // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+                // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+                // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+                // U+00E6: "æ" LATIN SMALL LETTER AE
+                // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+                // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+                // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+                // U+00AA: "ª" FEMININE ORDINAL INDICATOR
+                .setMoreKeysOf("a",
+                        "\u00E0", "\u00E1", "\u00E2", "\u00E4", "\u00E6", "\u00E3", "\u00E5",
+                        "\u0101", "\u00AA");
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/LayoutCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/LayoutCustomizer.java
new file mode 100644
index 0000000..27f5534
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/LayoutCustomizer.java
@@ -0,0 +1,214 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.SymbolsShifted;
+import com.android.inputmethod.keyboard.layout.expected.AbstractLayoutBase;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+/**
+ * This class is used to customize common keyboard layout to language specific layout.
+ */
+public class LayoutCustomizer extends AbstractLayoutBase {
+    private final Locale mLocale;
+
+    // Empty keys definition to remove keys by adding this.
+    protected static final ExpectedKey[] EMPTY_KEYS = joinKeys();
+
+    public LayoutCustomizer(final Locale locale) {  mLocale = locale; }
+
+    public final Locale getLocale() { return mLocale; }
+
+    public int getNumberOfRows() { return 4; }
+
+    /**
+     * Set accented letters to a specific keyboard element.
+     * @param builder the {@link ExpectedKeyboardBuilder} object that contains common keyboard
+     *        layout.
+     * @param elementId the element id of keyboard
+     * @return the {@link ExpectedKeyboardBuilder} object that contains accented letters as
+     *        "more keys".
+     */
+    public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder,
+            final int elementId) {
+        // This method can be overridden by an extended class to provide customized expected
+        // accented letters depending on the shift state of keyboard.
+        // This is a default behavior to call a shift-state-independent
+        // {@link #setAccentedLetters(ExpectedKeyboardBuilder)} implementation, so that
+        // <code>elementId</code> is ignored here.
+        return setAccentedLetters(builder);
+    }
+
+    /**
+     * Set accented letters to common layout.
+     * @param builder the {@link ExpectedKeyboardBuilder} object that contains common keyboard
+     *        layout.
+     * @return the {@link ExpectedKeyboardBuilder} object that contains accented letters as
+     *        "more keys".
+     */
+    public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+        return builder;
+    }
+
+    /**
+     * Get the function key to switch to alphabet layout.
+     * @return the {@link ExpectedKey} of the alphabet key.
+     */
+    public ExpectedKey getAlphabetKey() { return ALPHABET_KEY; }
+
+    /**
+     * Get the function key to switch to symbols layout.
+     * @return the {@link ExpectedKey} of the symbols key.
+     */
+    public ExpectedKey getSymbolsKey() { return SYMBOLS_KEY; }
+
+    /**
+     * Get the function key to switch to symbols shift layout.
+     * @param isPhone true if requesting phone's key.
+     * @return the {@link ExpectedKey} of the symbols shift key.
+     */
+    public ExpectedKey getSymbolsShiftKey(boolean isPhone) {
+        return isPhone ? SYMBOLS_SHIFT_KEY : TABLET_SYMBOLS_SHIFT_KEY;
+    }
+
+    /**
+     * Get the function key to switch from symbols shift to symbols layout.
+     * @return the {@link ExpectedKey} of the back to symbols key.
+     */
+    public ExpectedKey getBackToSymbolsKey() { return BACK_TO_SYMBOLS_KEY; }
+
+    /**
+     * Get the currency key.
+     * @return the {@link ExpectedKey} of the currency key.
+     */
+    public ExpectedKey getCurrencyKey() { return Symbols.CURRENCY_DOLLAR; }
+
+    /**
+     * Get other currencies keys.
+     * @return the array of {@link ExpectedKey} that represents other currency keys.
+     */
+    public ExpectedKey[] getOtherCurrencyKeys() {
+        return SymbolsShifted.CURRENCIES_OTHER_THAN_DOLLAR;
+    }
+
+    /**
+     * Get "more keys" of double quotation mark.
+     * @return the array of {@link ExpectedKey} of more double quotation marks in natural order.
+     */
+    public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_9LR; }
+
+    /**
+     * Get "more keys" of single quotation mark.
+     * @return the array of {@link ExpectedKey} of more single quotation marks in natural order.
+     */
+    public ExpectedKey[] getSingleQuoteMoreKeys() { return Symbols.SINGLE_QUOTES_9LR; }
+
+    /**
+     * Get double angle quotation marks in natural order.
+     * @return the array of {@link ExpectedKey} of double angle quotation marks in natural
+     *         order.
+     */
+    public ExpectedKey[] getDoubleAngleQuoteKeys() { return Symbols.DOUBLE_ANGLE_QUOTES_LR; }
+
+    /**
+     * Get single angle quotation marks in natural order.
+     * @return the array of {@link ExpectedKey} of single angle quotation marks in natural
+     *         order.
+     */
+    public ExpectedKey[] getSingleAngleQuoteKeys() { return Symbols.SINGLE_ANGLE_QUOTES_LR; }
+
+    /**
+     * Get the left shift keys.
+     * @param isPhone true if requesting phone's keys.
+     * @return the array of {@link ExpectedKey} that should be placed at left edge of the
+     *         keyboard.
+     */
+    public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) {
+        return joinKeys(SHIFT_KEY);
+    }
+
+    /**
+     * Get the right shift keys.
+     * @param isPhone true if requesting phone's keys.
+     * @return the array of {@link ExpectedKey} that should be placed at right edge of the
+     *         keyboard.
+     */
+    public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
+        return isPhone ? EMPTY_KEYS : joinKeys(EXCLAMATION_AND_QUESTION_MARKS, SHIFT_KEY);
+    }
+
+    /**
+     * Get the enter key.
+     * @param isPhone true if requesting phone's key.
+     * @return the array of {@link ExpectedKey} that should be placed as an enter key.
+     */
+    public ExpectedKey getEnterKey(final boolean isPhone) {
+        return isPhone ? key(ENTER_KEY, EMOJI_ACTION_KEY) : ENTER_KEY;
+    }
+
+    /**
+     * Get the emoji key.
+     * @param isPhone true if requesting phone's key.
+     * @return the array of {@link ExpectedKey} that should be placed as an emoji key.
+     */
+    public ExpectedKey getEmojiKey(final boolean isPhone) {
+        return EMOJI_NORMAL_KEY;
+    }
+
+    /**
+     * Get the space keys.
+     * @param isPhone true if requesting phone's keys.
+     * @return the array of {@link ExpectedKey} that should be placed at the center of the
+     *         keyboard.
+     */
+    public ExpectedKey[] getSpaceKeys(final boolean isPhone) {
+        return joinKeys(LANGUAGE_SWITCH_KEY, SPACE_KEY);
+    }
+
+    /**
+     * Get the keys left to the spacebar.
+     * @param isPhone true if requesting phone's keys.
+     * @return the array of {@link ExpectedKey} that should be placed at left of the spacebar.
+     */
+    public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
+        // U+002C: "," COMMA
+        return joinKeys(key("\u002C", SETTINGS_KEY));
+    }
+
+    /**
+     * Get the keys right to the spacebar.
+     * @param isPhone true if requesting phone's keys.
+     * @return the array of {@link ExpectedKey} that should be placed at right of the spacebar.
+     */
+    public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
+        final ExpectedKey periodKey = key(".", getPunctuationMoreKeys(isPhone));
+        return joinKeys(periodKey);
+    }
+
+    /**
+     * Get "more keys" for the punctuation key (usually the period key).
+     * @param isPhone true if requesting phone's keys.
+     * @return the array of {@link ExpectedKey} that are "more keys" of the punctuation key.
+     */
+    public ExpectedKey[] getPunctuationMoreKeys(final boolean isPhone) {
+        return isPhone ? PHONE_PUNCTUATION_MORE_KEYS : TABLET_PUNCTUATION_MORE_KEYS;
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/NepaliCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/NepaliCustomizer.java
new file mode 100644
index 0000000..264322f
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/NepaliCustomizer.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.SymbolsShifted;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+
+import java.util.Locale;
+
+public class NepaliCustomizer extends DevanagariCustomizer {
+    public NepaliCustomizer(final Locale locale) { super(locale); }
+
+    @Override
+    public ExpectedKey getCurrencyKey() { return CURRENCY_NEPALI; }
+
+    @Override
+    public ExpectedKey[] getOtherCurrencyKeys() {
+        return SymbolsShifted.CURRENCIES_OTHER_GENERIC;
+    }
+
+    @Override
+    public ExpectedKey[] getSpaceKeys(final boolean isPhone) {
+        return joinKeys(LANGUAGE_SWITCH_KEY, SPACE_KEY, key(ZWNJ_KEY, ZWJ_KEY));
+    }
+
+    @Override
+    public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
+        // U+0964: "।" DEVANAGARI DANDA
+        final ExpectedKey periodKey = key("\u0964", getPunctuationMoreKeys(isPhone));
+        return joinKeys(periodKey);
+    }
+
+    @Override
+    public ExpectedKey[] getPunctuationMoreKeys(final boolean isPhone) {
+        return isPhone ? NEPALI_PHONE_PUNCTUATION_MORE_KEYS
+                : NEPALI_TABLET_PUNCTUATION_MORE_KEYS;
+    }
+
+    // U+0930/U+0941/U+002E "रु." NEPALESE RUPEE SIGN
+    private static final ExpectedKey CURRENCY_NEPALI = key("\u0930\u0941\u002E",
+            Symbols.DOLLAR_SIGN, Symbols.CENT_SIGN, Symbols.EURO_SIGN, Symbols.POUND_SIGN,
+            Symbols.YEN_SIGN, Symbols.PESO_SIGN);
+
+    // Punctuation more keys for phone form factor.
+    private static final ExpectedKey[] NEPALI_PHONE_PUNCTUATION_MORE_KEYS = joinKeys(
+            ".", ",", "?", "!", "#", ")", "(", "/", ";",
+            "'", "@", ":", "-", "\"", "+", "%", "&");
+    // Punctuation more keys for tablet form factor.
+    private static final ExpectedKey[] NEPALI_TABLET_PUNCTUATION_MORE_KEYS = joinKeys(
+            ".", ",", "'", "#", ")", "(", "/", ";",
+            "@", ":", "-", "\"", "+", "%", "&");
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/NoLanguageCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/NoLanguageCustomizer.java
new file mode 100644
index 0000000..b6bf5bf
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/NoLanguageCustomizer.java
@@ -0,0 +1,158 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+public class NoLanguageCustomizer extends LayoutCustomizer {
+    public NoLanguageCustomizer(final Locale locale) { super(locale); }
+
+    @Override
+    public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+        return builder
+                // U+0175: "ŵ" LATIN SMALL LETTER W WITH CIRCUMFLEX
+                .setMoreKeysOf("w", "\u0175")
+                // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+                // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+                // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+                // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+                // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+                // U+0115: "ĕ" LATIN SMALL LETTER E WITH BREVE
+                // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+                // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+                // U+011B: "ě" LATIN SMALL LETTER E WITH CARON
+                .setMoreKeysOf("e",
+                        "\u00E8", "\u00E9", "\u00EA", "\u00EB", "\u0113", "\u0115", "\u0117",
+                        "\u0119", "\u011B")
+                // U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
+                // U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
+                // U+0159: "ř" LATIN SMALL LETTER R WITH CARON
+                .setMoreKeysOf("r", "\u0155", "\u0157", "\u0159")
+                // U+00FE: "þ" LATIN SMALL LETTER THORN
+                // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
+                // U+0165: "ť" LATIN SMALL LETTER T WITH CARON
+                // U+0167: "ŧ" LATIN SMALL LETTER T WITH STROKE
+                .setMoreKeysOf("t", "\u00FE", "\u0163", "\u0165", "\u0167")
+                // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
+                // U+0177: "ŷ" LATIN SMALL LETTER Y WITH CIRCUMFLEX
+                // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
+                // U+0133: "ĳ" LATIN SMALL LIGATURE IJ
+                .setMoreKeysOf("y", "\u00FD", "\u0177", "\u00FF", "\u0133")
+                // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+                // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+                // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+                // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+                // U+0169: "ũ" LATIN SMALL LETTER U WITH TILDE
+                // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+                // U+016D: "ŭ" LATIN SMALL LETTER U WITH BREVE
+                // U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
+                // U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
+                // U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK
+                .setMoreKeysOf("u",
+                        "\u00F9", "\u00FA", "\u00FB", "\u00FC", "\u0169", "\u016B", "\u016D",
+                        "\u016F", "\u0171", "\u0173")
+                // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+                // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+                // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+                // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+                // U+0129: "ĩ" LATIN SMALL LETTER I WITH TILDE
+                // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
+                // U+012D: "ĭ" LATIN SMALL LETTER I WITH BREVE
+                // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+                // U+0131: "ı" LATIN SMALL LETTER DOTLESS I
+                // U+0133: "ĳ" LATIN SMALL LIGATURE IJ
+                .setMoreKeysOf("i",
+                        "\u00EC", "\u00ED", "\u00EE", "\u00EF", "\u0129", "\u012B", "\u012D",
+                        "\u012F", "\u0131", "\u0133")
+                // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+                // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+                // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+                // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+                // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+                // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+                // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+                // U+014F: "ŏ" LATIN SMALL LETTER O WITH BREVE
+                // U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE
+                // U+0153: "œ" LATIN SMALL LIGATURE OE
+                // U+00BA: "º" MASCULINE ORDINAL INDICATOR
+                .setMoreKeysOf("o",
+                        "\u00F2", "\u00F3", "\u00F4", "\u00F5", "\u00F6", "\u00F8", "\u014D",
+                        "\u014F", "\u0151", "\u0153", "\u00BA")
+                // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+                // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+                // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+                // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+                // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+                // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+                // U+00E6: "æ" LATIN SMALL LETTER AE
+                // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+                // U+0103: "ă" LATIN SMALL LETTER A WITH BREVE
+                // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
+                // U+00AA: "ª" FEMININE ORDINAL INDICATOR
+                .setMoreKeysOf("a",
+                        "\u00E0", "\u00E1", "\u00E2", "\u00E3", "\u00E4", "\u00E5", "\u00E6",
+                        "\u0101", "\u0103", "\u0105", "\u00AA")
+                // U+00DF: "ß" LATIN SMALL LETTER SHARP S
+                // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
+                // U+015D: "ŝ" LATIN SMALL LETTER S WITH CIRCUMFLEX
+                // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
+                // U+0161: "š" LATIN SMALL LETTER S WITH CARON
+                // U+017F: "ſ" LATIN SMALL LETTER LONG S
+                .setMoreKeysOf("s", "\u00DF", "\u015B", "\u015D", "\u015F", "\u0161", "\u017F")
+                // U+010F: "ď" LATIN SMALL LETTER D WITH CARON
+                // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
+                // U+00F0: "ð" LATIN SMALL LETTER ETH
+                .setMoreKeysOf("d", "\u010F", "\u0111", "\u00F0")
+                // U+011D: "ĝ" LATIN SMALL LETTER G WITH CIRCUMFLEX
+                // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
+                // U+0121: "ġ" LATIN SMALL LETTER G WITH DOT ABOVE
+                // U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA
+                .setMoreKeysOf("g", "\u011D", "\u011F", "\u0121", "\u0123")
+                // U+0125: "ĥ" LATIN SMALL LETTER H WITH CIRCUMFLEX
+                .setMoreKeysOf("h", "\u0125")
+                // U+0135: "ĵ" LATIN SMALL LETTER J WITH CIRCUMFLEX
+                .setMoreKeysOf("j", "\u0135")
+                // U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA
+                // U+0138: "ĸ" LATIN SMALL LETTER KRA
+                .setMoreKeysOf("k", "\u0137", "\u0138")
+                // U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE
+                // U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA
+                // U+013E: "ľ" LATIN SMALL LETTER L WITH CARON
+                // U+0140: "ŀ" LATIN SMALL LETTER L WITH MIDDLE DOT
+                // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
+                .setMoreKeysOf("l", "\u013A", "\u013C", "\u013E", "\u0140", "\u0142")
+                // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
+                // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
+                // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
+                .setMoreKeysOf("z", "\u017A", "\u017C", "\u017E")
+                // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
+                // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
+                // U+0109: "ĉ" LATIN SMALL LETTER C WITH CIRCUMFLEX
+                // U+010B: "ċ" LATIN SMALL LETTER C WITH DOT ABOVE
+                // U+010D: "č" LATIN SMALL LETTER C WITH CARON
+                .setMoreKeysOf("c", "\u00E7", "\u0107", "\u0109", "\u010B", "\u010D")
+                // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+                // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+                // U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
+                // U+0148: "ň" LATIN SMALL LETTER N WITH CARON
+                // U+0149: "ŉ" LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+                // U+014B: "ŋ" LATIN SMALL LETTER ENG
+                .setMoreKeysOf("n", "\u00F1", "\u0144", "\u0146", "\u0148", "\u0149", "\u014B");
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/NorwegianCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/NorwegianCustomizer.java
new file mode 100644
index 0000000..6cc44e5
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/NorwegianCustomizer.java
@@ -0,0 +1,95 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.layout.Nordic;
+import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+public class NorwegianCustomizer extends LayoutCustomizer {
+    public NorwegianCustomizer(final Locale locale) { super(locale); }
+
+    @Override
+    public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_L9R; }
+
+    @Override
+    public ExpectedKey[] getSingleQuoteMoreKeys() { return Symbols.SINGLE_QUOTES_L9R; }
+
+    protected void setNordicKeys(final ExpectedKeyboardBuilder builder) {
+        builder
+                // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+                .replaceKeyOfLabel(Nordic.ROW1_11, "\u00E5")
+                // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+                // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+                .replaceKeyOfLabel(Nordic.ROW2_10, "\u00F8")
+                .setMoreKeysOf("\u00F8", "\u00F6")
+                // U+00E6: "æ" LATIN SMALL LETTER AE
+                // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+                .replaceKeyOfLabel(Nordic.ROW2_11, "\u00E6")
+                .setMoreKeysOf("\u00E6", "\u00E4");
+    }
+
+    protected void setMoreKeysOfA(final ExpectedKeyboardBuilder builder) {
+        builder
+                // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+                // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+                // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+                // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+                // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+                // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+                .setMoreKeysOf("a", "\u00E4", "\u00E0", "\u00E1", "\u00E2", "\u00E3", "\u0101");
+    }
+
+    protected void setMoreKeysOfO(final ExpectedKeyboardBuilder builder) {
+        builder
+                // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+                // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+                // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+                // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+                // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+                // U+0153: "œ" LATIN SMALL LIGATURE OE
+                // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+                .setMoreKeysOf("o", "\u00F6", "\u00F4", "\u00F2", "\u00F3", "\u00F5", "\u0153",
+                        "\u014D");
+    }
+
+    @Override
+    public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+        setNordicKeys(builder);
+        setMoreKeysOfA(builder);
+        setMoreKeysOfO(builder);
+        return builder
+                // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+                // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+                // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+                // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+                // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+                // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+                // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+                .setMoreKeysOf("e",
+                        "\u00E9", "\u00E8", "\u00EA", "\u00EB", "\u0119", "\u0117", "\u0113")
+                // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+                // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+                // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+                // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+                // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+                .setMoreKeysOf("u", "\u00FC", "\u00FB", "\u00F9", "\u00FA", "\u016B");
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/PcQwertyCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/PcQwertyCustomizer.java
new file mode 100644
index 0000000..9a0f764
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/PcQwertyCustomizer.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+
+import java.util.Locale;
+
+public class PcQwertyCustomizer extends LayoutCustomizer {
+    public PcQwertyCustomizer(final Locale locale) { super(locale); }
+
+    @Override
+    public int getNumberOfRows() { return 5; }
+
+    @Override
+    public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) {
+        return joinKeys(SHIFT_KEY);
+    }
+
+    @Override
+    public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
+        return joinKeys(SHIFT_KEY);
+    }
+
+    @Override
+    public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
+        return joinKeys(SETTINGS_KEY);
+    }
+
+    @Override
+    public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
+        return isPhone
+                ? joinKeys(key(ENTER_KEY, EMOJI_ACTION_KEY))
+                : joinKeys(EMOJI_NORMAL_KEY);
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/PortugueseCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/PortugueseCustomizer.java
new file mode 100644
index 0000000..4fc64cc
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/PortugueseCustomizer.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+public class PortugueseCustomizer extends LayoutCustomizer {
+    public PortugueseCustomizer(final Locale locale) { super(locale); }
+
+    @Override
+    public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+        return builder
+                // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+                // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+                // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+                // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+                // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+                // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+                // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+                .setMoreKeysOf("e",
+                        "\u00E9", "\u00EA", "\u00E8", "\u0119", "\u0117", "\u0113", "\u00EB")
+                // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+                // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+                // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+                // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+                // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+                .setMoreKeysOf("u", "\u00FA", "\u00FC", "\u00F9", "\u00FB", "\u016B")
+                // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+                // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+                // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+                // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+                // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+                // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
+                .setMoreKeysOf("i", "\u00ED", "\u00EE", "\u00EC", "\u00EF", "\u012F", "\u012B")
+                // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+                // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+                // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+                // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+                // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+                // U+0153: "œ" LATIN SMALL LIGATURE OE
+                // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+                // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+                // U+00BA: "º" MASCULINE ORDINAL INDICATOR
+                .setMoreKeysOf("o",
+                        "\u00F3", "\u00F5", "\u00F4", "\u00F2", "\u00F6", "\u0153", "\u00F8",
+                        "\u014D", "\u00BA")
+                // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+                // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+                // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+                // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+                // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+                // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+                // U+00E6: "æ" LATIN SMALL LETTER AE
+                // U+00AA: "ª" FEMININE ORDINAL INDICATOR
+                .setMoreKeysOf("a",
+                        "\u00E1", "\u00E3", "\u00E0", "\u00E2", "\u00E4", "\u00E5", "\u00E6",
+                        "\u00AA")
+                // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
+                // U+010D: "č" LATIN SMALL LETTER C WITH CARON
+                // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
+                .setMoreKeysOf("c", "\u00E7", "\u010D", "\u0107");
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/SerbianLatinCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/SerbianLatinCustomizer.java
new file mode 100644
index 0000000..4d03c8b
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/SerbianLatinCustomizer.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.layout.SerbianQwertz;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+public class SerbianLatinCustomizer extends LayoutCustomizer {
+    public SerbianLatinCustomizer(final Locale locale) { super(locale); }
+
+    @Override
+    public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
+        return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
+    }
+
+    protected void setSerbianKeys(final ExpectedKeyboardBuilder builder) {
+        builder
+                // U+0161: "š" LATIN SMALL LETTER S WITH CARON
+                .replaceKeyOfLabel(SerbianQwertz.ROW1_11, "\u0161")
+                // U+010D: "č" LATIN SMALL LETTER C WITH CARON
+                .replaceKeyOfLabel(SerbianQwertz.ROW2_10, "\u010D")
+                // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
+                .replaceKeyOfLabel(SerbianQwertz.ROW2_11, "\u0107")
+                // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
+                .replaceKeyOfLabel(SerbianQwertz.ROW3_8, "\u0111")
+                // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
+                .replaceKeyOfLabel(SerbianQwertz.ROW3_9, "\u017E");
+    }
+
+    @SuppressWarnings("unused")
+    protected void setMoreKeysOfS(final ExpectedKeyboardBuilder builder) {
+        // Serbian QWERTZ has a dedicated "š" key.
+    }
+
+    @SuppressWarnings("unused")
+    protected void setMoreKeysOfC(final ExpectedKeyboardBuilder builder) {
+        // Serbian QWERTZ has a dedicated "č" and "ć" keys.
+    }
+
+    @SuppressWarnings("unused")
+    protected void setMoreKeysOfD(final ExpectedKeyboardBuilder builder) {
+        // Serbian QWERTZ has a dedicated "đ" key.
+    }
+
+    @SuppressWarnings("unused")
+    protected void setMoreKeysOfZ(final ExpectedKeyboardBuilder builder) {
+        // Serbian QWERTZ has a dedicated "ž" key.
+    }
+
+    @Override
+    public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+        setSerbianKeys(builder);
+        setMoreKeysOfS(builder);
+        setMoreKeysOfC(builder);
+        setMoreKeysOfD(builder);
+        setMoreKeysOfZ(builder);
+        return builder
+                // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+                .setMoreKeysOf("e", "\u00E8")
+                // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+                .setMoreKeysOf("i", "\u00EC");
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/SouthSlavicLayoutCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/SouthSlavicLayoutCustomizer.java
new file mode 100644
index 0000000..bec8160
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/SouthSlavicLayoutCustomizer.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.latin.common.Constants;
+
+import java.util.Locale;
+
+public class SouthSlavicLayoutCustomizer extends LayoutCustomizer {
+    public SouthSlavicLayoutCustomizer(final Locale locale) {
+        super(locale);
+    }
+
+    @Override
+    public final ExpectedKey getAlphabetKey() { return SOUTH_SLAVIC_ALPHABET_KEY; }
+
+    @Override
+    public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
+        return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
+    }
+
+    // U+0410: "А" CYRILLIC CAPITAL LETTER A
+    // U+0411: "Б" CYRILLIC CAPITAL LETTER BE
+    // U+0412: "В" CYRILLIC CAPITAL LETTER VE
+    private static final ExpectedKey SOUTH_SLAVIC_ALPHABET_KEY = key(
+            "\u0410\u0411\u0412", Constants.CODE_SWITCH_ALPHA_SYMBOL);
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/SpanishCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/SpanishCustomizer.java
new file mode 100644
index 0000000..1284f05
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/SpanishCustomizer.java
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.layout.Spanish;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+public class SpanishCustomizer extends LayoutCustomizer {
+    public SpanishCustomizer(final Locale locale) { super(locale); }
+
+    @Override
+    public ExpectedKey[] getPunctuationMoreKeys(final boolean isPhone) {
+        return isPhone ? SPANISH_PHONE_PUNCTUATION_MORE_KEYS : TABLET_PUNCTUATION_MORE_KEYS;
+    }
+
+    // Punctuation more keys for phone form factor.
+    private static final ExpectedKey[] SPANISH_PHONE_PUNCTUATION_MORE_KEYS = joinKeys(
+            // U+00A1: "¡" INVERTED EXCLAMATION MARK
+            // U+00BF: "¿" INVERTED QUESTION MARK
+            ",", "?", "!", "#", ")", "(", "/", ";", "\u00A1",
+            "'", "@", ":", "-", "\"", "+", "%", "&", "\u00BF");
+
+    @Override
+    public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+        return builder
+                // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+                // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+                // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+                // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+                // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+                // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+                // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+                .setMoreKeysOf("e",
+                        "\u00E9", "\u00E8", "\u00EB", "\u00EA", "\u0119", "\u0117", "\u0113")
+                // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+                // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+                // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+                // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+                // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+                .setMoreKeysOf("u", "\u00FA", "\u00FC", "\u00F9", "\u00FB", "\u016B")
+                // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+                // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+                // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+                // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+                // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+                // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
+                .setMoreKeysOf("i", "\u00ED", "\u00EF", "\u00EC", "\u00EE", "\u012F", "\u012B")
+                // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+                // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+                // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+                // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+                // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+                // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+                // U+0153: "œ" LATIN SMALL LIGATURE OE
+                // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+                // U+00BA: "º" MASCULINE ORDINAL INDICATOR
+                .setMoreKeysOf("o",
+                        "\u00F3", "\u00F2", "\u00F6", "\u00F4", "\u00F5", "\u00F8", "\u0153",
+                        "\u014D", "\u00BA")
+                // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+                // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+                // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+                // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+                // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+                // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+                // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
+                // U+00E6: "æ" LATIN SMALL LETTER AE
+                // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+                // U+00AA: "ª" FEMININE ORDINAL INDICATOR
+                .setMoreKeysOf("a",
+                        "\u00E1", "\u00E0", "\u00E4", "\u00E2", "\u00E3", "\u00E5", "\u0105",
+                        "\u00E6", "\u0101", "\u00AA")
+                // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+                .replaceKeyOfLabel(Spanish.ROW2_10, "\u00F1")
+                // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
+                // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
+                // U+010D: "č" LATIN SMALL LETTER C WITH CARON
+                .setMoreKeysOf("c", "\u00E7", "\u0107", "\u010D")
+                // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+                // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+                .setMoreKeysOf("n", "\u00F1", "\u0144");
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/SwedishCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/SwedishCustomizer.java
new file mode 100644
index 0000000..f4ff594
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/SwedishCustomizer.java
@@ -0,0 +1,143 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.layout.Nordic;
+import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+public class SwedishCustomizer extends LayoutCustomizer {
+    private final LayoutCustomizer mEuroCustomizer;
+
+    public SwedishCustomizer(final Locale locale) {
+        super(locale);
+        mEuroCustomizer = new EuroCustomizer(locale);
+    }
+
+    @Override
+    public ExpectedKey getCurrencyKey() {
+        return mEuroCustomizer.getCurrencyKey();
+    }
+
+    @Override
+    public ExpectedKey[] getOtherCurrencyKeys() {
+        return mEuroCustomizer.getOtherCurrencyKeys();
+    }
+
+    @Override
+    public ExpectedKey[] getDoubleAngleQuoteKeys() { return Symbols.DOUBLE_ANGLE_QUOTES_RL; }
+
+    @Override
+    public ExpectedKey[] getSingleAngleQuoteKeys() { return Symbols.SINGLE_ANGLE_QUOTES_RL; }
+
+    protected void setNordicKeys(final ExpectedKeyboardBuilder builder) {
+        builder
+                // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+                .replaceKeyOfLabel(Nordic.ROW1_11, "\u00E5")
+                // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+                // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+                // U+0153: "œ" LATIN SMALL LIGATURE OE
+                .replaceKeyOfLabel(Nordic.ROW2_10, "\u00F6")
+                .setMoreKeysOf("\u00F6", "\u00F8", "\u0153")
+                // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+                // U+00E6: "æ" LATIN SMALL LETTER AE
+                .replaceKeyOfLabel(Nordic.ROW2_11, "\u00E4")
+                .setMoreKeysOf("\u00E4", "\u00E6");
+    }
+
+    protected void setMoreKeysOfA(final ExpectedKeyboardBuilder builder) {
+        builder
+                // U+00E6: "æ" LATIN SMALL LETTER AE
+                // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+                // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+                // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+                // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
+                // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+                .setMoreKeysOf("a", "\u00E6", "\u00E1", "\u00E0", "\u00E2", "\u0105", "\u00E3");
+    }
+
+    protected void setMoreKeysOfO(final ExpectedKeyboardBuilder builder) {
+        builder
+                // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+                // U+0153: "œ" LATIN SMALL LIGATURE OE
+                // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+                // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+                // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+                // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+                // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+                .setMoreKeysOf("o", "\u00F8", "\u0153", "\u00F3", "\u00F2", "\u00F4", "\u00F5",
+                        "\u014D");
+    }
+
+    @Override
+    public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+        setNordicKeys(builder);
+        setMoreKeysOfA(builder);
+        setMoreKeysOfO(builder);
+        return builder
+                // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+                // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+                // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+                // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+                // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+                .setMoreKeysOf("e", "\u00E9", "\u00E8", "\u00EA", "\u00EB", "\u0119")
+                // U+0159: "ř" LATIN SMALL LETTER R WITH CARON
+                .setMoreKeysOf("r", "\u0159")
+                // U+0165: "ť" LATIN SMALL LETTER T WITH CARON
+                // U+00FE: "þ" LATIN SMALL LETTER THORN
+                .setMoreKeysOf("t", "\u0165", "\u00FE")
+                // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
+                // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
+                .setMoreKeysOf("y", "\u00FD", "\u00FF")
+                // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+                // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+                // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+                // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+                // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+                .setMoreKeysOf("u", "\u00FC", "\u00FA", "\u00F9", "\u00FB", "\u016B")
+                // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+                // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+                // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+                // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+                .setMoreKeysOf("i", "\u00ED", "\u00EC", "\u00EE", "\u00EF")
+                // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
+                // U+0161: "š" LATIN SMALL LETTER S WITH CARON
+                // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
+                // U+00DF: "ß" LATIN SMALL LETTER SHARP S
+                .setMoreKeysOf("s", "\u015B", "\u0161", "\u015F", "\u00DF")
+                // U+00F0: "ð" LATIN SMALL LETTER ETH
+                // U+010F: "ď" LATIN SMALL LETTER D WITH CARON
+                .setMoreKeysOf("d", "\u00F0", "\u010F")
+                // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
+                .setMoreKeysOf("l", "\u0142")
+                // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
+                // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
+                // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
+                .setMoreKeysOf("z", "\u017A", "\u017E", "\u017C")
+                // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
+                // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
+                // U+010D: "č" LATIN SMALL LETTER C WITH CARON
+                .setMoreKeysOf("c", "\u00E7", "\u0107", "\u010D")
+                // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+                // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+                // U+0148: "ň" LATIN SMALL LETTER N WITH CARON
+                .setMoreKeysOf("n", "\u0144", "\u00F1", "\u0148");
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/TamilCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/TamilCustomizer.java
new file mode 100644
index 0000000..de82aaf
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/TamilCustomizer.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.latin.common.Constants;
+
+import java.util.Locale;
+
+public class TamilCustomizer extends LayoutCustomizer {
+    public TamilCustomizer(final Locale locale) { super(locale); }
+
+    @Override
+    public ExpectedKey getAlphabetKey() { return TAMIL_ALPHABET_KEY; }
+
+    @Override
+    public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) {
+        return EMPTY_KEYS;
+    }
+
+    @Override
+    public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
+        return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
+    }
+
+    // U+0BA4: "த" TAMIL LETTER TA
+    // U+0BAE/U+0BBF: "மி" TAMIL LETTER MA/TAMIL VOWEL SIGN I
+    // U+0BB4/U+0BCD: "ழ்" TAMIL LETTER LLLA/TAMIL SIGN VIRAMA
+    private static final ExpectedKey TAMIL_ALPHABET_KEY = key(
+            "\u0BA4\u0BAE\u0BBF\u0BB4\u0BCD", Constants.CODE_SWITCH_ALPHA_SYMBOL);
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/TurkicCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/TurkicCustomizer.java
new file mode 100644
index 0000000..3fd3aa2
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/TurkicCustomizer.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+/**
+ * Turkic languages layout customizer.
+ */
+public class TurkicCustomizer extends LayoutCustomizer {
+    public TurkicCustomizer(final Locale locale) { super(locale); }
+
+    @Override
+    public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+        return builder
+                // U+0259: "ə" LATIN SMALL LETTER SCHWA
+                // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+                .setMoreKeysOf("e", "\u0259", "\u00E9")
+                // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
+                .setMoreKeysOf("y", "\u00FD")
+                // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+                // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+                // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+                // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+                // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+                .setMoreKeysOf("u", "\u00FC", "\u00FB", "\u00F9", "\u00FA", "\u016B")
+                // U+0131: "ı" LATIN SMALL LETTER DOTLESS I
+                // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+                // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+                // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+                // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+                // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+                // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
+                .setMoreKeysOf("i",
+                        "\u0131", "\u00EE", "\u00EF", "\u00EC", "\u00ED", "\u012F", "\u012B")
+                // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+                // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+                // U+0153: "œ" LATIN SMALL LIGATURE OE
+                // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+                // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+                // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+                // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+                // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+                .setMoreKeysOf("o",
+                        "\u00F6", "\u00F4", "\u0153", "\u00F2", "\u00F3", "\u00F5", "\u00F8",
+                        "\u014D")
+                // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+                // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+                // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+                .setMoreKeysOf("a", "\u00E2", "\u00E4", "\u00E1")
+                // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
+                // U+00DF: "ß" LATIN SMALL LETTER SHARP S
+                // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
+                // U+0161: "š" LATIN SMALL LETTER S WITH CARON
+                .setMoreKeysOf("s", "\u015F", "\u00DF", "\u015B", "\u0161")
+                // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
+                .setMoreKeysOf("g", "\u011F")
+                // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
+                .setMoreKeysOf("z", "\u017E")
+                // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
+                // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
+                // U+010D: "č" LATIN SMALL LETTER C WITH CARON
+                .setMoreKeysOf("c", "\u00E7", "\u0107", "\u010D")
+                // U+0148: "ň" LATIN SMALL LETTER N WITH CARON
+                // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+                .setMoreKeysOf("n", "\u0148", "\u00F1");
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/customizer/UzbekCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/customizer/UzbekCustomizer.java
new file mode 100644
index 0000000..9948616
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/customizer/UzbekCustomizer.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.customizer;
+
+import com.android.inputmethod.keyboard.layout.Nordic;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+public class UzbekCustomizer extends TurkicCustomizer {
+    public UzbekCustomizer(final Locale locale) { super(locale); }
+
+    protected void setUzbekKeys(final ExpectedKeyboardBuilder builder) {
+        builder
+                // U+006F/U+02BB: "oʻ" LATIN SMALL LETTER O/MODIFIER LETTER TURNED COMMA
+                .replaceKeyOfLabel(Nordic.ROW1_11, "o\u02BB")
+                // U+0067/U+02BB: "gʻ" LATIN SMALL LETTER G/MODIFIER LETTER TURNED COMMA
+                .replaceKeyOfLabel(Nordic.ROW2_10, "g\u02BB")
+                // U+02BC: "ʼ" MODIFIER LETTER APOSTROPHE
+                .replaceKeyOfLabel(Nordic.ROW2_11, "\u02BC");
+    }
+
+    @Override
+    public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+        setUzbekKeys(builder);
+        return super.setAccentedLetters(builder);
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/expected/AbstractLayoutBase.java b/tests/src/com/android/inputmethod/keyboard/layout/expected/AbstractLayoutBase.java
index 3556cb4..2232548 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/expected/AbstractLayoutBase.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/expected/AbstractLayoutBase.java
@@ -16,7 +16,9 @@
 
 package com.android.inputmethod.keyboard.layout.expected;
 
+import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey.ExpectedAdditionalMoreKey;
+import com.android.inputmethod.latin.common.Constants;
 
 /**
  * Base class to create an expected keyboard for unit test.
@@ -102,4 +104,75 @@
     public static ExpectedKey[] joinKeys(final Object ... keys) {
         return ExpectedKeyboardBuilder.joinKeys(keys);
     }
+
+    // Icon ids.
+    private static final int ICON_DELETE = KeyboardIconsSet.getIconId(
+            KeyboardIconsSet.NAME_DELETE_KEY);
+    private static final int ICON_SPACE = KeyboardIconsSet.getIconId(
+            KeyboardIconsSet.NAME_SPACE_KEY);
+    private static final int ICON_TAB = KeyboardIconsSet.getIconId(
+            KeyboardIconsSet.NAME_TAB_KEY);
+    private static final int ICON_SHORTCUT = KeyboardIconsSet.getIconId(
+            KeyboardIconsSet.NAME_SHORTCUT_KEY);
+    private static final int ICON_SETTINGS = KeyboardIconsSet.getIconId(
+            KeyboardIconsSet.NAME_SETTINGS_KEY);
+    private static final int ICON_LANGUAGE_SWITCH = KeyboardIconsSet.getIconId(
+            KeyboardIconsSet.NAME_LANGUAGE_SWITCH_KEY);
+    private static final int ICON_ENTER = KeyboardIconsSet.getIconId(
+            KeyboardIconsSet.NAME_ENTER_KEY);
+    private static final int ICON_EMOJI_ACTION = KeyboardIconsSet.getIconId(
+            KeyboardIconsSet.NAME_EMOJI_ACTION_KEY);
+    private static final int ICON_EMOJI_NORMAL = KeyboardIconsSet.getIconId(
+            KeyboardIconsSet.NAME_EMOJI_NORMAL_KEY);
+    private static final int ICON_SHIFT = KeyboardIconsSet.getIconId(
+            KeyboardIconsSet.NAME_SHIFT_KEY);
+    private static final int ICON_SHIFTED_SHIFT = KeyboardIconsSet.getIconId(
+            KeyboardIconsSet.NAME_SHIFT_KEY_SHIFTED);
+    private static final int ICON_ZWNJ = KeyboardIconsSet.getIconId(
+            KeyboardIconsSet.NAME_ZWNJ_KEY);
+    private static final int ICON_ZWJ = KeyboardIconsSet.getIconId(
+            KeyboardIconsSet.NAME_ZWJ_KEY);
+
+    // Functional keys.
+    protected static final ExpectedKey DELETE_KEY = key(ICON_DELETE, Constants.CODE_DELETE);
+    protected static final ExpectedKey TAB_KEY = key(ICON_TAB, Constants.CODE_TAB);
+    protected static final ExpectedKey SHORTCUT_KEY = key(ICON_SHORTCUT, Constants.CODE_SHORTCUT);
+    protected static final ExpectedKey SETTINGS_KEY = key(ICON_SETTINGS, Constants.CODE_SETTINGS);
+    protected static final ExpectedKey LANGUAGE_SWITCH_KEY = key(
+            ICON_LANGUAGE_SWITCH, Constants.CODE_LANGUAGE_SWITCH);
+    protected static final ExpectedKey ENTER_KEY = key(ICON_ENTER, Constants.CODE_ENTER);
+    protected static final ExpectedKey EMOJI_ACTION_KEY = key(ICON_EMOJI_ACTION, Constants.CODE_EMOJI);
+    protected static final ExpectedKey EMOJI_NORMAL_KEY = key(ICON_EMOJI_NORMAL, Constants.CODE_EMOJI);
+    protected static final ExpectedKey SPACE_KEY = key(ICON_SPACE, Constants.CODE_SPACE);
+    protected static final ExpectedKey CAPSLOCK_MORE_KEY = key(" ", Constants.CODE_CAPSLOCK);
+    protected static final ExpectedKey SHIFT_KEY = key(ICON_SHIFT,
+            Constants.CODE_SHIFT, CAPSLOCK_MORE_KEY);
+    protected static final ExpectedKey SHIFTED_SHIFT_KEY = key(ICON_SHIFTED_SHIFT,
+            Constants.CODE_SHIFT, CAPSLOCK_MORE_KEY);
+    protected static final ExpectedKey ALPHABET_KEY = key("ABC", Constants.CODE_SWITCH_ALPHA_SYMBOL);
+    protected static final ExpectedKey SYMBOLS_KEY = key("?123", Constants.CODE_SWITCH_ALPHA_SYMBOL);
+    protected static final ExpectedKey BACK_TO_SYMBOLS_KEY = key("?123", Constants.CODE_SHIFT);
+    protected static final ExpectedKey SYMBOLS_SHIFT_KEY = key("= \\ <", Constants.CODE_SHIFT);
+    protected static final ExpectedKey TABLET_SYMBOLS_SHIFT_KEY = key("~ [ <", Constants.CODE_SHIFT);
+
+    // U+00A1: "¡" INVERTED EXCLAMATION MARK
+    // U+00BF: "¿" INVERTED QUESTION MARK
+    protected static final ExpectedKey[] EXCLAMATION_AND_QUESTION_MARKS = joinKeys(
+            key("!", moreKey("\u00A1")), key("?", moreKey("\u00BF")));
+    // U+200C: ZERO WIDTH NON-JOINER
+    // U+200D: ZERO WIDTH JOINER
+    protected static final ExpectedKey ZWNJ_KEY = key(ICON_ZWNJ, "\u200C");
+    protected static final ExpectedKey ZWJ_KEY = key(ICON_ZWJ, "\u200D");
+    // Domain key
+    protected static final ExpectedKey DOMAIN_KEY =
+            key(".com", joinMoreKeys(".net", ".org", ".gov", ".edu")).preserveCase();
+
+    // Punctuation more keys for phone form factor.
+    protected static final ExpectedKey[] PHONE_PUNCTUATION_MORE_KEYS = joinKeys(
+            ",", "?", "!", "#", ")", "(", "/", ";",
+            "'", "@", ":", "-", "\"", "+", "%", "&");
+    // Punctuation more keys for tablet form factor.
+    protected static final ExpectedKey[] TABLET_PUNCTUATION_MORE_KEYS = joinKeys(
+            ",", "'", "#", ")", "(", "/", ";",
+            "@", ":", "-", "\"", "+", "%", "&");
 }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/expected/ActualKeyboardBuilder.java b/tests/src/com/android/inputmethod/keyboard/layout/expected/ActualKeyboardBuilder.java
index 5614918..2a040f5 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/expected/ActualKeyboardBuilder.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/expected/ActualKeyboardBuilder.java
@@ -19,12 +19,15 @@
 import com.android.inputmethod.keyboard.Key;
 import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
 import com.android.inputmethod.keyboard.internal.MoreKeySpec;
-import com.android.inputmethod.latin.Constants;
-import com.android.inputmethod.latin.utils.StringUtils;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.StringUtils;
 
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
 /**
  * This class builds an actual keyboard for unit test.
  *
@@ -98,9 +101,13 @@
 
         @Override
         public String stringize(final MoreKeySpec spec) {
+            if (spec == null) {
+                return "null";
+            }
             return toString(spec.mLabel, spec.mIconId, spec.mOutputText, spec.mCode);
         }
 
+        @Nonnull
         static String toString(final String label, final int iconId, final String outputText,
                 final int code) {
             final String visual = (iconId != KeyboardIconsSet.ICON_UNDEFINED)
@@ -125,7 +132,7 @@
         static final KeyStringizer STRINGIZER = new KeyStringizer();
 
         @Override
-        public String stringize(final Key key) {
+        public String stringize(@Nullable final Key key) {
             if (key == null) {
                 return "NULL";
             }
@@ -150,7 +157,8 @@
      * @param key the key to be converted to string.
      * @return the human readable representation of <code>key</code>.
      */
-    public static String toString(final Key key) {
+    @Nonnull
+    public static String toString(@Nullable final Key key) {
         return KeyStringizer.STRINGIZER.stringize(key);
     }
 
@@ -159,7 +167,8 @@
      * @param keys the keyboard row to be converted to string.
      * @return the human readable representation of <code>keys</code>.
      */
-    public static String toString(final Key[] keys) {
+    @Nonnull
+    public static String toString(@Nullable final Key[] keys) {
         return KeyStringizer.STRINGIZER.join(keys);
     }
 
@@ -168,7 +177,7 @@
         static final KeyArrayStringizer STRINGIZER = new KeyArrayStringizer();
 
         @Override
-        public String stringize(final Key[] keyArray) {
+        public String stringize(@Nullable final Key[] keyArray) {
             return KeyStringizer.STRINGIZER.join(keyArray);
         }
     }
@@ -178,7 +187,8 @@
      * @param rows the keyboard to be converted to string.
      * @return the human readable representation of <code>rows</code>.
      */
-    public static String toString(final Key[][] rows) {
+    @Nonnull
+    public static String toString(@Nullable final Key[][] rows) {
         return KeyArrayStringizer.STRINGIZER.join(rows, "\n" /* delimiter */);
     }
 }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKey.java b/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKey.java
index 2674a6a..5c147a3 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKey.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKey.java
@@ -105,11 +105,11 @@
     // The expected output of this key.
     private final ExpectedKeyOutput mOutput;
 
-    public final ExpectedKeyVisual getVisual() {
+    protected final ExpectedKeyVisual getVisual() {
         return mVisual;
     }
 
-    public final ExpectedKeyOutput getOutput() {
+    protected final ExpectedKeyOutput getOutput() {
         return mOutput;
     }
 
@@ -162,18 +162,19 @@
 
     public boolean equalsTo(final Key key) {
         // This key has no "more keys".
-        return mVisual.equalsTo(key) && mOutput.equalsTo(key) && key.getMoreKeys() == null;
+        return mVisual.hasSameKeyVisual(key) && mOutput.hasSameKeyOutput(key)
+                && key.getMoreKeys() == null;
     }
 
     public boolean equalsTo(final MoreKeySpec moreKeySpec) {
-        return mVisual.equalsTo(moreKeySpec) && mOutput.equalsTo(moreKeySpec);
+        return mVisual.hasSameKeyVisual(moreKeySpec) && mOutput.hasSameKeyOutput(moreKeySpec);
     }
 
     @Override
     public boolean equals(final Object object) {
         if (object instanceof ExpectedKey) {
             final ExpectedKey key = (ExpectedKey) object;
-            return mVisual.equalsTo(key.mVisual) && mOutput.equalsTo(key.mOutput)
+            return mVisual.hasSameKeyVisual(key.mVisual) && mOutput.hasSameKeyOutput(key.mOutput)
                     && Arrays.equals(getMoreKeys(), key.getMoreKeys());
         }
         return false;
@@ -190,7 +191,7 @@
 
     @Override
     public String toString() {
-        if (mVisual.equalsTo(mOutput)) {
+        if (mVisual.hasSameKeyVisual(mOutput)) {
             return mVisual.toString();
         }
         return mVisual + "|" + mOutput;
@@ -274,7 +275,7 @@
 
         @Override
         public boolean equalsTo(final Key key) {
-            if (getVisual().equalsTo(key) && getOutput().equalsTo(key)) {
+            if (getVisual().hasSameKeyVisual(key) && getOutput().hasSameKeyOutput(key)) {
                 final MoreKeySpec[] moreKeySpecs = key.getMoreKeys();
                 final ExpectedKey[] moreKeys = getMoreKeys();
                 // This key should have at least one "more key".
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKeyOutput.java b/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKeyOutput.java
index 8b2bb42..e7b0f09 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKeyOutput.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKeyOutput.java
@@ -18,8 +18,8 @@
 
 import com.android.inputmethod.keyboard.Key;
 import com.android.inputmethod.keyboard.internal.MoreKeySpec;
-import com.android.inputmethod.latin.Constants;
-import com.android.inputmethod.latin.utils.StringUtils;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.StringUtils;
 
 import java.util.Locale;
 
@@ -43,10 +43,10 @@
 
     abstract ExpectedKeyOutput toUpperCase(final Locale locale);
     abstract ExpectedKeyOutput preserveCase();
-    abstract boolean equalsTo(final String text);
-    abstract boolean equalsTo(final Key key);
-    abstract boolean equalsTo(final MoreKeySpec moreKeySpec);
-    abstract boolean equalsTo(final ExpectedKeyOutput output);
+    abstract boolean hasSameKeyOutput(final String text);
+    abstract boolean hasSameKeyOutput(final Key key);
+    abstract boolean hasSameKeyOutput(final MoreKeySpec moreKeySpec);
+    abstract boolean hasSameKeyOutput(final ExpectedKeyOutput output);
 
     /**
      * This class represents an integer code point.
@@ -63,8 +63,7 @@
                 final String codeString = StringUtils.newSingleCodePointString(mCode);
                 // A letter may have an upper case counterpart that consists of multiple code
                 // points, for instance the upper case of "ß" is "SS".
-                return newInstance(StringUtils.toUpperCaseOfStringForLocale(
-                        codeString, true /* needsToUpperCase */, locale));
+                return newInstance(StringUtils.toTitleCaseOfKeyLabel(codeString, locale));
             }
             // A special negative value has no upper case.
             return this;
@@ -76,22 +75,22 @@
         }
 
         @Override
-        boolean equalsTo(final String text) {
+        boolean hasSameKeyOutput(final String text) {
             return StringUtils.codePointCount(text) == 1 && text.codePointAt(0) == mCode;
         }
 
         @Override
-        boolean equalsTo(final Key key) {
+        boolean hasSameKeyOutput(final Key key) {
             return mCode == key.getCode();
         }
 
         @Override
-        boolean equalsTo(final MoreKeySpec moreKeySpec) {
+        boolean hasSameKeyOutput(final MoreKeySpec moreKeySpec) {
             return mCode == moreKeySpec.mCode;
         }
 
         @Override
-        boolean equalsTo(final ExpectedKeyOutput output) {
+        boolean hasSameKeyOutput(final ExpectedKeyOutput output) {
             return (output instanceof Code) && mCode == ((Code)output).mCode;
         }
 
@@ -131,24 +130,24 @@
         }
 
         @Override
-        boolean equalsTo(final String text) {
+        boolean hasSameKeyOutput(final String text) {
             return text.equals(text);
         }
 
         @Override
-        boolean equalsTo(final Key key) {
+        boolean hasSameKeyOutput(final Key key) {
             return key.getCode() == Constants.CODE_OUTPUT_TEXT
                     && mText.equals(key.getOutputText());
         }
 
         @Override
-        boolean equalsTo(final MoreKeySpec moreKeySpec) {
+        boolean hasSameKeyOutput(final MoreKeySpec moreKeySpec) {
             return moreKeySpec.mCode == Constants.CODE_OUTPUT_TEXT
                     && mText.equals(moreKeySpec.mOutputText);
         }
 
         @Override
-        boolean equalsTo(final ExpectedKeyOutput output) {
+        boolean hasSameKeyOutput(final ExpectedKeyOutput output) {
             return (output instanceof Text) && mText == ((Text)output).mText;
         }
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKeyVisual.java b/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKeyVisual.java
index 34024a5..3f9f12a 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKeyVisual.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKeyVisual.java
@@ -19,7 +19,7 @@
 import com.android.inputmethod.keyboard.Key;
 import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
 import com.android.inputmethod.keyboard.internal.MoreKeySpec;
-import com.android.inputmethod.latin.utils.StringUtils;
+import com.android.inputmethod.latin.common.StringUtils;
 
 import java.util.Locale;
 
@@ -28,22 +28,24 @@
  *
  * There are two types of expected visual, an integer icon id and a string label.
  */
-abstract class ExpectedKeyVisual {
-    static ExpectedKeyVisual newInstance(final String label) {
+public abstract class ExpectedKeyVisual {
+    public static ExpectedKeyVisual newInstance(final String label) {
         return new Label(label);
     }
 
-    static ExpectedKeyVisual newInstance(final int iconId) {
+    public static ExpectedKeyVisual newInstance(final int iconId) {
         return new Icon(iconId);
     }
 
+    public abstract int getIconId();
+    public abstract String getLabel();
     abstract ExpectedKeyVisual toUpperCase(final Locale locale);
     abstract ExpectedKeyVisual preserveCase();
-    abstract boolean equalsTo(final String text);
-    abstract boolean equalsTo(final Key key);
-    abstract boolean equalsTo(final MoreKeySpec moreKeySpec);
-    abstract boolean equalsTo(final ExpectedKeyOutput output);
-    abstract boolean equalsTo(final ExpectedKeyVisual visual);
+    abstract boolean hasSameKeyVisual(final String text);
+    abstract boolean hasSameKeyVisual(final Key key);
+    abstract boolean hasSameKeyVisual(final MoreKeySpec moreKeySpec);
+    abstract boolean hasSameKeyVisual(final ExpectedKeyOutput output);
+    abstract boolean hasSameKeyVisual(final ExpectedKeyVisual visual);
 
     /**
      * This class represents an integer icon id.
@@ -56,6 +58,16 @@
         }
 
         @Override
+        public int getIconId() {
+            return mIconId;
+        }
+
+        @Override
+        public String getLabel() {
+            return null;
+        }
+
+        @Override
         ExpectedKeyVisual toUpperCase(final Locale locale) {
             return this;
         }
@@ -66,27 +78,32 @@
         }
 
         @Override
-        boolean equalsTo(final String text) {
+        boolean hasSameKeyVisual(final String text) {
             return false;
         }
 
         @Override
-        boolean equalsTo(final Key key) {
-            return mIconId == key.getIconId();
+        boolean hasSameKeyVisual(final Key key) {
+            // If the actual key has an icon as its visual, a label has to be null.
+            // See {@link KeyboardView#onDrawKeyTopVisuals(Key,Canvas,Paint,KeyDrawParams).
+            return mIconId == key.getIconId() && key.getLabel() == null;
         }
 
         @Override
-        boolean equalsTo(final MoreKeySpec moreKeySpec) {
-            return mIconId == moreKeySpec.mIconId;
+        boolean hasSameKeyVisual(final MoreKeySpec moreKeySpec) {
+            // If the actual more key has an icon as its visual, a label has to be null.
+            // See {@link KeySpecParser#getIconId(String)} and
+            // {@link KeySpecParser#getLabel(String)}.
+            return mIconId == moreKeySpec.mIconId && moreKeySpec.mLabel == null;
         }
 
         @Override
-        boolean equalsTo(final ExpectedKeyOutput output) {
+        boolean hasSameKeyVisual(final ExpectedKeyOutput output) {
             return false;
         }
 
         @Override
-        boolean equalsTo(final ExpectedKeyVisual visual) {
+        boolean hasSameKeyVisual(final ExpectedKeyVisual visual) {
             return (visual instanceof Icon) && mIconId == ((Icon)visual).mIconId;
         }
 
@@ -102,12 +119,23 @@
     private static class Label extends ExpectedKeyVisual {
         private final String mLabel;
 
-        Label(final String label) { mLabel = label; }
+        Label(final String label) {
+            mLabel = label;
+        }
+
+        @Override
+        public int getIconId() {
+            return KeyboardIconsSet.ICON_UNDEFINED;
+        }
+
+        @Override
+        public String getLabel() {
+            return mLabel;
+        }
 
         @Override
         ExpectedKeyVisual toUpperCase(final Locale locale) {
-            return new Label(StringUtils.toUpperCaseOfStringForLocale(
-                    mLabel, true /* needsToUpperCase */, locale));
+            return new Label(StringUtils.toTitleCaseOfKeyLabel(mLabel, locale));
         }
 
         @Override
@@ -116,27 +144,34 @@
         }
 
         @Override
-        boolean equalsTo(final String text) {
+        boolean hasSameKeyVisual(final String text) {
             return mLabel.equals(text);
         }
 
         @Override
-        boolean equalsTo(final Key key) {
-            return mLabel.equals(key.getLabel());
+        boolean hasSameKeyVisual(final Key key) {
+            // If the actual key has a label as its visual, an icon has to be undefined.
+            // See {@link KeyboardView#onDrawKeyTopVisuals(Key,Canvas,Paint,KeyDrawParams).
+            return mLabel.equals(key.getLabel())
+                    && key.getIconId() == KeyboardIconsSet.ICON_UNDEFINED;
         }
 
         @Override
-        boolean equalsTo(final MoreKeySpec moreKeySpec) {
-            return mLabel.equals(moreKeySpec.mLabel);
+        boolean hasSameKeyVisual(final MoreKeySpec moreKeySpec) {
+            // If the actual more key has a label as its visual, an icon has to be undefined.
+            // See {@link KeySpecParser#getIconId(String)} and
+            // {@link KeySpecParser#getLabel(String)}.
+            return mLabel.equals(moreKeySpec.mLabel)
+                    && moreKeySpec.mIconId == KeyboardIconsSet.ICON_UNDEFINED;
         }
 
         @Override
-        boolean equalsTo(final ExpectedKeyOutput output) {
-            return output.equalsTo(mLabel);
+        boolean hasSameKeyVisual(final ExpectedKeyOutput output) {
+            return output.hasSameKeyOutput(mLabel);
         }
 
         @Override
-        boolean equalsTo(final ExpectedKeyVisual visual) {
+        boolean hasSameKeyVisual(final ExpectedKeyVisual visual) {
             return (visual instanceof Label) && mLabel.equals(((Label)visual).mLabel);
         }
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKeyboardBuilder.java b/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKeyboardBuilder.java
index 9b7de88..f5531c9 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKeyboardBuilder.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/expected/ExpectedKeyboardBuilder.java
@@ -91,7 +91,7 @@
             ExpectedKey[] keys = getRowAt(row);
             for (int columnIndex = 0; columnIndex < keys.length; /* nothing */) {
                 final ExpectedKey currentKey = keys[columnIndex];
-                if (!currentKey.getVisual().equalsTo(visual)) {
+                if (!currentKey.getVisual().hasSameKeyVisual(visual)) {
                     columnIndex++;
                     continue;
                 }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/EnglishCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/EnglishCustomizer.java
deleted file mode 100644
index 3e82f65..0000000
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/EnglishCustomizer.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.keyboard.layout.tests;
-
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-
-import java.util.Locale;
-
-class EnglishCustomizer extends LayoutCustomizer {
-    EnglishCustomizer(final Locale locale) { super(locale); }
-
-    @Override
-    public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
-        return builder
-                // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
-                // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
-                // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
-                // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
-                // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
-                .setMoreKeysOf("e", "\u00E9", "\u00E8", "\u00EA", "\u00EB", "\u0113")
-                // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-                // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-                // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-                // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-                // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-                .setMoreKeysOf("u", "\u00FA", "\u00FB", "\u00FC", "\u00F9", "\u016B")
-                // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
-                // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
-                // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
-                // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
-                // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
-                .setMoreKeysOf("i", "\u00ED", "\u00EE", "\u00EF", "\u012B", "\u00EC")
-                // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
-                // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
-                // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
-                // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
-                // U+0153: "œ" LATIN SMALL LIGATURE OE
-                // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
-                // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
-                // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
-                .setMoreKeysOf("o",
-                        "\u00F3", "\u00F4", "\u00F6", "\u00F2", "\u0153", "\u00F8", "\u014D",
-                        "\u00F5")
-                // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
-                // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
-                // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
-                // U+00E6: "æ" LATIN SMALL LETTER AE
-                // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
-                // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
-                // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
-                .setMoreKeysOf("a",
-                        "\u00E0", "\u00E1", "\u00E2", "\u00E4", "\u00E6", "\u00E3", "\u00E5",
-                        "\u0101")
-                // U+00DF: "ß" LATIN SMALL LETTER SHARP S
-                .setMoreKeysOf("s", "\u00DF")
-                // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
-                .setMoreKeysOf("c", "\u00E7")
-                // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
-                .setMoreKeysOf("n", "\u00F1");
-    }
-}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/FrenchCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/FrenchCustomizer.java
deleted file mode 100644
index ab90267..0000000
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/FrenchCustomizer.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.keyboard.layout.tests;
-
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-
-import java.util.Locale;
-
-class FrenchCustomizer extends LayoutCustomizer {
-    FrenchCustomizer(final Locale locale) { super(locale); }
-
-    @Override
-    public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
-        return builder
-                // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
-                // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
-                // U+00E6: "æ" LATIN SMALL LETTER AE
-                // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
-                // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
-                // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
-                // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
-                // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
-                // U+00AA: "ª" FEMININE ORDINAL INDICATOR
-                .setAdditionalMoreKeysPositionOf("a", 3)
-                .setMoreKeysOf("a",
-                        "\u00E0", "\u00E2", "\u00E6", "\u00E1", "\u00E4", "\u00E3", "\u00E5",
-                        "\u0101", "\u00AA")
-                // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
-                // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
-                // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
-                // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
-                // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
-                // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
-                // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
-                .setAdditionalMoreKeysPositionOf("e", 5)
-                .setMoreKeysOf("e",
-                        "\u00E9", "\u00E8", "\u00EA", "\u00EB", "\u0119", "\u0117", "\u0113")
-                // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
-                .setMoreKeysOf("y", "\u00FF")
-                // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-                // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-                // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-                // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-                // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-                .setAdditionalMoreKeysPositionOf("u", 3)
-                .setMoreKeysOf("u", "\u00F9", "\u00FB", "\u00FC", "\u00FA", "\u016B")
-                // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
-                // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
-                // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
-                // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
-                // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
-                // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
-                .setAdditionalMoreKeysPositionOf("i", 2)
-                .setMoreKeysOf("i", "\u00EE", "\u00EF", "\u00EC", "\u00ED", "\u012F", "\u012B")
-                // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
-                // U+0153: "œ" LATIN SMALL LIGATURE OE
-                // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
-                // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
-                // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
-                // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
-                // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
-                // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
-                // U+00BA: "º" MASCULINE ORDINAL INDICATOR
-                .setAdditionalMoreKeysPositionOf("o", 3)
-                .setMoreKeysOf("o",
-                        "\u00F4", "\u0153", "\u00F6", "\u00F2", "\u00F3", "\u00F5", "\u00F8",
-                        "\u014D", "\u00BA")
-                // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
-                // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
-                // U+010D: "č" LATIN SMALL LETTER C WITH CARON
-                .setMoreKeysOf("c", "\u00E7", "\u0107", "\u010D")
-                .setAdditionalMoreKeysPositionOf("c", 2);
-    }
-}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/GermanCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/GermanCustomizer.java
deleted file mode 100644
index 6d38937..0000000
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/GermanCustomizer.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.keyboard.layout.tests;
-
-import com.android.inputmethod.keyboard.layout.Symbols;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-
-import java.util.Locale;
-
-class GermanCustomizer extends LayoutCustomizer {
-    public GermanCustomizer(final Locale locale) { super(locale); }
-
-    @Override
-    public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }
-
-    @Override
-    public ExpectedKey[] getSingleQuoteMoreKeys() { return Symbols.SINGLE_QUOTES_R9L; }
-
-    @Override
-    public ExpectedKey[] getDoubleAngleQuoteKeys() { return Symbols.DOUBLE_ANGLE_QUOTES_RL; }
-
-    @Override
-    public ExpectedKey[] getSingleAngleQuoteKeys() { return Symbols.SINGLE_ANGLE_QUOTES_RL; }
-
-    @Override
-    public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
-        return builder
-                // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
-                // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
-                // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
-                // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
-                // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
-                .setMoreKeysOf("e", "\u00E9", "\u00E8", "\u00EA", "\u00EB", "\u0117")
-                // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-                // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-                // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-                // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-                // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-                .setMoreKeysOf("u", "\u00FC", "\u00FB", "\u00F9", "\u00FA", "\u016B")
-                .setAdditionalMoreKeysPositionOf("u", 2)
-                // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
-                // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
-                // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
-                // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
-                // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
-                // U+0153: "œ" LATIN SMALL LIGATURE OE
-                // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
-                // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
-                .setMoreKeysOf("o",
-                        "\u00F6", "\u00F4", "\u00F2", "\u00F3", "\u00F5", "\u0153", "\u00F8",
-                        "\u014D")
-                .setAdditionalMoreKeysPositionOf("o", 2)
-                // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
-                // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
-                // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
-                // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
-                // U+00E6: "æ" LATIN SMALL LETTER AE
-                // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
-                // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
-                // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
-                .setMoreKeysOf("a",
-                        "\u00E4", "\u00E2", "\u00E0", "\u00E1", "\u00E6", "\u00E3", "\u00E5",
-                        "\u0101")
-                .setAdditionalMoreKeysPositionOf("a", 2)
-                // U+00DF: "ß" LATIN SMALL LETTER SHARP S
-                // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
-                // U+0161: "š" LATIN SMALL LETTER S WITH CARON
-                .setMoreKeysOf("s", "\u00DF", "\u015B", "\u0161")
-                // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
-                // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
-                .setMoreKeysOf("n", "\u00F1", "\u0144");
-    }
-}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/ItalianCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/ItalianCustomizer.java
deleted file mode 100644
index 7350709..0000000
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/ItalianCustomizer.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.keyboard.layout.tests;
-
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-
-import java.util.Locale;
-
-class ItalianCustomizer extends LayoutCustomizer {
-    public ItalianCustomizer(final Locale locale) { super(locale); }
-
-    @Override
-    public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
-        return builder
-                // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
-                // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
-                // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
-                // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
-                // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
-                // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
-                // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
-                .setMoreKeysOf("e",
-                        "\u00E8", "\u00E9", "\u00EA", "\u00EB", "\u0119", "\u0117", "\u0113")
-                // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-                // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-                // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-                // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-                // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-                .setMoreKeysOf("u", "\u00F9", "\u00FA", "\u00FB", "\u00FC", "\u016B")
-                // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
-                // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
-                // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
-                // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
-                // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
-                // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
-                .setMoreKeysOf("i", "\u00EC", "\u00ED", "\u00EE", "\u00EF", "\u012F", "\u012B")
-                // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
-                // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
-                // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
-                // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
-                // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
-                // U+0153: "œ" LATIN SMALL LIGATURE OE
-                // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
-                // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
-                // U+00BA: "º" MASCULINE ORDINAL INDICATOR
-                .setMoreKeysOf("o",
-                        "\u00F2", "\u00F3", "\u00F4", "\u00F6", "\u00F5", "\u0153", "\u00F8",
-                        "\u014D", "\u00BA")
-                // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
-                // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
-                // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
-                // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
-                // U+00E6: "æ" LATIN SMALL LETTER AE
-                // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
-                // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
-                // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
-                // U+00AA: "ª" FEMININE ORDINAL INDICATOR
-                .setMoreKeysOf("a",
-                        "\u00E0", "\u00E1", "\u00E2", "\u00E4", "\u00E6", "\u00E3", "\u00E5",
-                        "\u0101", "\u00AA");
-    }
-}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/KeyboardLayoutSetSubtypesCountTests.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/KeyboardLayoutSetSubtypesCountTests.java
new file mode 100644
index 0000000..87f2f30
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/KeyboardLayoutSetSubtypesCountTests.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.keyboard.KeyboardLayoutSetTestsBase;
+import com.android.inputmethod.keyboard.KeyboardTheme;
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+import java.util.ArrayList;
+
+@SmallTest
+public class KeyboardLayoutSetSubtypesCountTests extends KeyboardLayoutSetTestsBase {
+    private static final int NUMBER_OF_SUBTYPES = 81;
+    private static final int NUMBER_OF_ASCII_CAPABLE_SUBTYPES = 49;
+    private static final int NUMBER_OF_PREDEFINED_ADDITIONAL_SUBTYPES = 2;
+
+    @Override
+    protected int getKeyboardThemeForTests() {
+        return KeyboardTheme.THEME_ID_KLP;
+    }
+
+    private static String toString(final ArrayList<InputMethodSubtype> subtypeList) {
+        final StringBuilder sb = new StringBuilder();
+        for (int index = 0; index < subtypeList.size(); index++) {
+            final InputMethodSubtype subtype = subtypeList.get(index);
+            sb.append(index + ": ");
+            sb.append(SubtypeLocaleUtils.getSubtypeNameForLogging(subtype));
+            sb.append("\n");
+        }
+        return sb.toString();
+    }
+
+    public final void testAllSubtypesCount() {
+        final ArrayList<InputMethodSubtype> allSubtypesList = getAllSubtypesList();
+        assertEquals(toString(allSubtypesList), NUMBER_OF_SUBTYPES, allSubtypesList.size());
+    }
+
+    public final void testAsciiCapableSubtypesCount() {
+        final ArrayList<InputMethodSubtype> asciiCapableSubtypesList =
+                getSubtypesFilteredBy(FILTER_IS_ASCII_CAPABLE);
+        assertEquals(toString(asciiCapableSubtypesList),
+                NUMBER_OF_ASCII_CAPABLE_SUBTYPES, asciiCapableSubtypesList.size());
+    }
+
+    public final void testAdditionalSubtypesCount() {
+        final ArrayList<InputMethodSubtype> additionalSubtypesList =
+                getSubtypesFilteredBy(FILTER_IS_ADDITIONAL_SUBTYPE);
+        assertEquals(toString(additionalSubtypesList),
+                NUMBER_OF_PREDEFINED_ADDITIONAL_SUBTYPES, additionalSubtypesList.size());
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/LayoutTestsBase.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/LayoutTestsBase.java
index a22ed60..27519ee 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/LayoutTestsBase.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/LayoutTestsBase.java
@@ -54,7 +54,8 @@
                 + (isPhone() ? "phone" : "tablet");
         // TODO: Test with language switch key enabled and disabled.
         mKeyboardLayoutSet = createKeyboardLayoutSet(mSubtype, null /* editorInfo */,
-                true /* voiceInputKeyEnabled */, true /* languageSwitchKeyEnabled */);
+                true /* voiceInputKeyEnabled */, true /* languageSwitchKeyEnabled */,
+                false /* splitLayoutEnabled */);
     }
 
     @Override
@@ -119,31 +120,13 @@
 
     // TODO: Add phone, phone symbols, number, number password layout tests.
 
-    public final void testAlphabet() {
+    public final void testLayouts() {
         doKeyboardTests(KeyboardId.ELEMENT_ALPHABET);
-    }
-
-    public final void testAlphabetAutomaticShifted() {
         doKeyboardTests(KeyboardId.ELEMENT_ALPHABET_AUTOMATIC_SHIFTED);
-    }
-
-    public final void testAlphabetManualShifted() {
         doKeyboardTests(KeyboardId.ELEMENT_ALPHABET_MANUAL_SHIFTED);
-    }
-
-    public final void testAlphabetShiftLocked() {
         doKeyboardTests(KeyboardId.ELEMENT_ALPHABET_SHIFT_LOCKED);
-    }
-
-    public final void testAlphabetShiftLockShifted() {
         doKeyboardTests(KeyboardId.ELEMENT_ALPHABET_SHIFT_LOCK_SHIFTED);
-    }
-
-    public final void testSymbols() {
         doKeyboardTests(KeyboardId.ELEMENT_SYMBOLS);
-    }
-
-    public final void testSymbolsShifted() {
         doKeyboardTests(KeyboardId.ELEMENT_SYMBOLS_SHIFTED);
     }
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/NoLanguageCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/NoLanguageCustomizer.java
deleted file mode 100644
index 9edbcab..0000000
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/NoLanguageCustomizer.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.keyboard.layout.tests;
-
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-
-import java.util.Locale;
-
-class NoLanguageCustomizer extends LayoutCustomizer {
-    NoLanguageCustomizer(final Locale locale) { super(locale); }
-
-    @Override
-    public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
-        return builder
-                // U+0175: "ŵ" LATIN SMALL LETTER W WITH CIRCUMFLEX
-                .setMoreKeysOf("w", "\u0175")
-                // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
-                // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
-                // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
-                // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
-                // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
-                // U+0115: "ĕ" LATIN SMALL LETTER E WITH BREVE
-                // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
-                // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
-                // U+011B: "ě" LATIN SMALL LETTER E WITH CARON
-                .setMoreKeysOf("e",
-                        "\u00E8", "\u00E9", "\u00EA", "\u00EB", "\u0113", "\u0115", "\u0117",
-                        "\u0119", "\u011B")
-                // U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
-                // U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
-                // U+0159: "ř" LATIN SMALL LETTER R WITH CARON
-                .setMoreKeysOf("r", "\u0155", "\u0157", "\u0159")
-                // U+00FE: "þ" LATIN SMALL LETTER THORN
-                // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
-                // U+0165: "ť" LATIN SMALL LETTER T WITH CARON
-                // U+0167: "ŧ" LATIN SMALL LETTER T WITH STROKE
-                .setMoreKeysOf("t", "\u00FE", "\u0163", "\u0165", "\u0167")
-                // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
-                // U+0177: "ŷ" LATIN SMALL LETTER Y WITH CIRCUMFLEX
-                // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
-                // U+0133: "ĳ" LATIN SMALL LIGATURE IJ
-                .setMoreKeysOf("y", "\u00FD", "\u0177", "\u00FF", "\u0133")
-                // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-                // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-                // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-                // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-                // U+0169: "ũ" LATIN SMALL LETTER U WITH TILDE
-                // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-                // U+016D: "ŭ" LATIN SMALL LETTER U WITH BREVE
-                // U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
-                // U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
-                // U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK
-                .setMoreKeysOf("u",
-                        "\u00F9", "\u00FA", "\u00FB", "\u00FC", "\u0169", "\u016B", "\u016D",
-                        "\u016F", "\u0171", "\u0173")
-                // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
-                // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
-                // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
-                // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
-                // U+0129: "ĩ" LATIN SMALL LETTER I WITH TILDE
-                // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
-                // U+012D: "ĭ" LATIN SMALL LETTER I WITH BREVE
-                // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
-                // U+0131: "ı" LATIN SMALL LETTER DOTLESS I
-                // U+0133: "ĳ" LATIN SMALL LIGATURE IJ
-                .setMoreKeysOf("i",
-                        "\u00EC", "\u00ED", "\u00EE", "\u00EF", "\u0129", "\u012B", "\u012D",
-                        "\u012F", "\u0131", "\u0133")
-                // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
-                // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
-                // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
-                // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
-                // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
-                // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
-                // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
-                // U+014F: "ŏ" LATIN SMALL LETTER O WITH BREVE
-                // U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE
-                // U+0153: "œ" LATIN SMALL LIGATURE OE
-                // U+00BA: "º" MASCULINE ORDINAL INDICATOR
-                .setMoreKeysOf("o",
-                        "\u00F2", "\u00F3", "\u00F4", "\u00F5", "\u00F6", "\u00F8", "\u014D",
-                        "\u014F", "\u0151", "\u0153", "\u00BA")
-                // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
-                // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
-                // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
-                // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
-                // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
-                // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
-                // U+00E6: "æ" LATIN SMALL LETTER AE
-                // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
-                // U+0103: "ă" LATIN SMALL LETTER A WITH BREVE
-                // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
-                // U+00AA: "ª" FEMININE ORDINAL INDICATOR
-                .setMoreKeysOf("a",
-                        "\u00E0", "\u00E1", "\u00E2", "\u00E3", "\u00E4", "\u00E5", "\u00E6",
-                        "\u0101", "\u0103", "\u0105", "\u00AA")
-                // U+00DF: "ß" LATIN SMALL LETTER SHARP S
-                // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
-                // U+015D: "ŝ" LATIN SMALL LETTER S WITH CIRCUMFLEX
-                // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
-                // U+0161: "š" LATIN SMALL LETTER S WITH CARON
-                // U+017F: "ſ" LATIN SMALL LETTER LONG S
-                .setMoreKeysOf("s", "\u00DF", "\u015B", "\u015D", "\u015F", "\u0161", "\u017F")
-                // U+010F: "ď" LATIN SMALL LETTER D WITH CARON
-                // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
-                // U+00F0: "ð" LATIN SMALL LETTER ETH
-                .setMoreKeysOf("d", "\u010F", "\u0111", "\u00F0")
-                // U+011D: "ĝ" LATIN SMALL LETTER G WITH CIRCUMFLEX
-                // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
-                // U+0121: "ġ" LATIN SMALL LETTER G WITH DOT ABOVE
-                // U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA
-                .setMoreKeysOf("g", "\u011D", "\u011F", "\u0121", "\u0123")
-                // U+0125: "ĥ" LATIN SMALL LETTER H WITH CIRCUMFLEX
-                .setMoreKeysOf("h", "\u0125")
-                // U+0135: "ĵ" LATIN SMALL LETTER J WITH CIRCUMFLEX
-                .setMoreKeysOf("j", "\u0135")
-                // U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA
-                // U+0138: "ĸ" LATIN SMALL LETTER KRA
-                .setMoreKeysOf("k", "\u0137", "\u0138")
-                // U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE
-                // U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA
-                // U+013E: "ľ" LATIN SMALL LETTER L WITH CARON
-                // U+0140: "ŀ" LATIN SMALL LETTER L WITH MIDDLE DOT
-                // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
-                .setMoreKeysOf("l", "\u013A", "\u013C", "\u013E", "\u0140", "\u0142")
-                // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
-                // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
-                // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
-                .setMoreKeysOf("z", "\u017A", "\u017C", "\u017E")
-                // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
-                // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
-                // U+0109: "ĉ" LATIN SMALL LETTER C WITH CIRCUMFLEX
-                // U+010B: "ċ" LATIN SMALL LETTER C WITH DOT ABOVE
-                // U+010D: "č" LATIN SMALL LETTER C WITH CARON
-                .setMoreKeysOf("c", "\u00E7", "\u0107", "\u0109", "\u010B", "\u010D")
-                // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
-                // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
-                // U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
-                // U+0148: "ň" LATIN SMALL LETTER N WITH CARON
-                // U+0149: "ŉ" LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
-                // U+014B: "ŋ" LATIN SMALL LETTER ENG
-                .setMoreKeysOf("n", "\u00F1", "\u0144", "\u0146", "\u0148", "\u0149", "\u014B");
-    }
-}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/PortugueseCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/PortugueseCustomizer.java
deleted file mode 100644
index 629e8cb..0000000
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/PortugueseCustomizer.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.keyboard.layout.tests;
-
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-
-import java.util.Locale;
-
-class PortugueseCustomizer extends LayoutCustomizer {
-    PortugueseCustomizer(final Locale locale) { super(locale); }
-
-    @Override
-    public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
-        return builder
-                // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
-                // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
-                // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
-                // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
-                // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
-                // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
-                // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
-                .setMoreKeysOf("e",
-                        "\u00E9", "\u00EA", "\u00E8", "\u0119", "\u0117", "\u0113", "\u00EB")
-                // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-                // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-                // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-                // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-                // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-                .setMoreKeysOf("u", "\u00FA", "\u00FC", "\u00F9", "\u00FB", "\u016B")
-                // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
-                // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
-                // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
-                // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
-                // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
-                // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
-                .setMoreKeysOf("i", "\u00ED", "\u00EE", "\u00EC", "\u00EF", "\u012F", "\u012B")
-                // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
-                // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
-                // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
-                // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
-                // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
-                // U+0153: "œ" LATIN SMALL LIGATURE OE
-                // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
-                // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
-                // U+00BA: "º" MASCULINE ORDINAL INDICATOR
-                .setMoreKeysOf("o",
-                        "\u00F3", "\u00F5", "\u00F4", "\u00F2", "\u00F6", "\u0153", "\u00F8",
-                        "\u014D", "\u00BA")
-                // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
-                // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
-                // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
-                // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
-                // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
-                // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
-                // U+00E6: "æ" LATIN SMALL LETTER AE
-                // U+00AA: "ª" FEMININE ORDINAL INDICATOR
-                .setMoreKeysOf("a",
-                        "\u00E1", "\u00E3", "\u00E0", "\u00E2", "\u00E4", "\u00E5", "\u00E6",
-                        "\u00AA")
-                // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
-                // U+010D: "č" LATIN SMALL LETTER C WITH CARON
-                // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
-                .setMoreKeysOf("c", "\u00E7", "\u010D", "\u0107");
-    }
-}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/SpanishCustomizer.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/SpanishCustomizer.java
deleted file mode 100644
index 8974ad6..0000000
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/SpanishCustomizer.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.keyboard.layout.tests;
-
-import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
-import com.android.inputmethod.keyboard.layout.Spanish;
-import com.android.inputmethod.keyboard.layout.expected.AbstractLayoutBase;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-
-import java.util.Locale;
-
-class SpanishCustomizer extends LayoutCustomizer {
-    SpanishCustomizer(final Locale locale) { super(locale); }
-
-    @Override
-    public ExpectedKey[] getPunctuationMoreKeys(final boolean isPhone) {
-        return isPhone ? PHONE_PUNCTUATION_MORE_KEYS
-                : LayoutBase.TABLET_PUNCTUATION_MORE_KEYS;
-    }
-
-    // Punctuation more keys for phone form factor.
-    private static final ExpectedKey[] PHONE_PUNCTUATION_MORE_KEYS = AbstractLayoutBase.joinKeys(
-            // U+00A1: "¡" INVERTED EXCLAMATION MARK
-            // U+00BF: "¿" INVERTED QUESTION MARK
-            ",", "?", "!", "#", ")", "(", "/", ";", "\u00A1",
-            "'", "@", ":", "-", "\"", "+", "%", "&", "\u00BF");
-
-    @Override
-    public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
-        return builder
-                // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
-                // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
-                // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
-                // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
-                // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
-                // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
-                // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
-                .setMoreKeysOf("e",
-                        "\u00E9", "\u00E8", "\u00EB", "\u00EA", "\u0119", "\u0117", "\u0113")
-                // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-                // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-                // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-                // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-                // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-                .setMoreKeysOf("u", "\u00FA", "\u00FC", "\u00F9", "\u00FB", "\u016B")
-                // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
-                // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
-                // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
-                // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
-                // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
-                // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
-                .setMoreKeysOf("i", "\u00ED", "\u00EF", "\u00EC", "\u00EE", "\u012F", "\u012B")
-                // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
-                // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
-                // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
-                // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
-                // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
-                // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
-                // U+0153: "œ" LATIN SMALL LIGATURE OE
-                // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
-                // U+00BA: "º" MASCULINE ORDINAL INDICATOR
-                .setMoreKeysOf("o",
-                        "\u00F3", "\u00F2", "\u00F6", "\u00F4", "\u00F5", "\u00F8", "\u0153",
-                        "\u014D", "\u00BA")
-                // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
-                // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
-                // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
-                // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
-                // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
-                // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
-                // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
-                // U+00E6: "æ" LATIN SMALL LETTER AE
-                // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
-                // U+00AA: "ª" FEMININE ORDINAL INDICATOR
-                .setMoreKeysOf("a",
-                        "\u00E1", "\u00E0", "\u00E4", "\u00E2", "\u00E3", "\u00E5", "\u0105",
-                        "\u00E6", "\u0101", "\u00AA")
-                // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
-                .replaceKeyOfLabel(Spanish.ROW2_10, "\u00F1")
-                // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
-                // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
-                // U+010D: "č" LATIN SMALL LETTER C WITH CARON
-                .setMoreKeysOf("c", "\u00E7", "\u0107", "\u010D")
-                // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
-                // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
-                .setMoreKeysOf("n", "\u00F1", "\u0144");
-    }
-}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsAfrikaans.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsAfrikaans.java
index cd22598..f534cd6 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsAfrikaans.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsAfrikaans.java
@@ -19,8 +19,8 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.Qwerty;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
 import java.util.Locale;
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsArabic.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsArabic.java
index fd76708..a9be163 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsArabic.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsArabic.java
@@ -19,7 +19,6 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.Arabic;
-import com.android.inputmethod.keyboard.layout.Arabic.ArabicCustomizer;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 
 import java.util.Locale;
@@ -30,7 +29,7 @@
 @SmallTest
 public class TestsArabic extends LayoutTestsBase {
     private static final Locale LOCALE = new Locale("ar");
-    private static final LayoutBase LAYOUT = new Arabic(new ArabicCustomizer(LOCALE));
+    private static final LayoutBase LAYOUT = new Arabic(LOCALE);
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsArmenianAMPhonetic.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsArmenianAMPhonetic.java
index 327e943..8ef97d2 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsArmenianAMPhonetic.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsArmenianAMPhonetic.java
@@ -19,7 +19,6 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.ArmenianPhonetic;
-import com.android.inputmethod.keyboard.layout.ArmenianPhonetic.ArmenianPhoneticCustomizer;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 
 import java.util.Locale;
@@ -30,8 +29,7 @@
 @SmallTest
 public final class TestsArmenianAMPhonetic extends LayoutTestsBase {
     private static final Locale LOCALE = new Locale("hy", "AM");
-    private static final LayoutBase LAYOUT = new ArmenianPhonetic(
-            new ArmenianPhoneticCustomizer(LOCALE));
+    private static final LayoutBase LAYOUT = new ArmenianPhonetic(LOCALE);
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsAzerbaijaniAZ.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsAzerbaijaniAZ.java
index f5317e2..a10023c 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsAzerbaijaniAZ.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsAzerbaijaniAZ.java
@@ -19,9 +19,8 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.Qwerty;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+import com.android.inputmethod.keyboard.layout.customizer.TurkicCustomizer;
 
 import java.util.Locale;
 
@@ -31,58 +30,8 @@
 @SmallTest
 public final class TestsAzerbaijaniAZ extends LayoutTestsBase {
     private static final Locale LOCALE = new Locale("az", "AZ");
-    private static final LayoutBase LAYOUT = new Qwerty(new AzerbaijaniAZCustomizer(LOCALE));
+    private static final LayoutBase LAYOUT = new Qwerty(new TurkicCustomizer(LOCALE));
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
-
-    private static final class AzerbaijaniAZCustomizer extends LayoutCustomizer {
-        public AzerbaijaniAZCustomizer(final Locale locale) { super(locale); }
-
-        @Override
-        public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
-            return builder
-                    // U+0259: "ə" LATIN SMALL LETTER SCHWA
-                    .setMoreKeysOf("e", "\u0259")
-                    // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-                    // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-                    // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-                    // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-                    // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-                    .setMoreKeysOf("u", "\u00FC", "\u00FB", "\u00F9", "\u00FA", "\u016B")
-                    // U+0131: "ı" LATIN SMALL LETTER DOTLESS I
-                    // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
-                    // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
-                    // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
-                    // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
-                    // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
-                    // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
-                    .setMoreKeysOf("i",
-                            "\u0131", "\u00EE", "\u00EF", "\u00EC", "\u00ED", "\u012F", "\u012B")
-                    // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
-                    // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
-                    // U+0153: "œ" LATIN SMALL LIGATURE OE
-                    // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
-                    // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
-                    // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
-                    // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
-                    // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
-                    .setMoreKeysOf("o",
-                            "\u00F6", "\u00F4", "\u0153", "\u00F2", "\u00F3", "\u00F5", "\u00F8",
-                            "\u014D")
-                    // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
-                    .setMoreKeysOf("a", "\u00E2")
-                    // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
-                    // U+00DF: "ß" LATIN SMALL LETTER SHARP S
-                    // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
-                    // U+0161: "š" LATIN SMALL LETTER S WITH CARON
-                    .setMoreKeysOf("s", "\u015F", "\u00DF", "\u015B", "\u0161")
-                    // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
-                    // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
-                    // U+010D: "č" LATIN SMALL LETTER C WITH CARON
-                    .setMoreKeysOf("c", "\u00E7", "\u0107", "\u010D")
-                    // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
-                    .setMoreKeysOf("g", "\u011F");
-        }
-    }
 }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBasqueES.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBasqueES.java
index bef18c5..103fac1 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBasqueES.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBasqueES.java
@@ -19,8 +19,9 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
 import com.android.inputmethod.keyboard.layout.Spanish;
+import com.android.inputmethod.keyboard.layout.customizer.EuroCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.SpanishCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
 import java.util.Locale;
@@ -39,7 +40,7 @@
     private static class BasqueESCustomizer extends EuroCustomizer {
         private final SpanishCustomizer mSpanishCustomizer;
 
-        public BasqueESCustomizer(final Locale locale) {
+        BasqueESCustomizer(final Locale locale) {
             super(locale);
             mSpanishCustomizer = new SpanishCustomizer(locale);
         }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBelarusianBY.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBelarusianBY.java
index c5238d5..0b23933 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBelarusianBY.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBelarusianBY.java
@@ -19,9 +19,9 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.EastSlavic;
-import com.android.inputmethod.keyboard.layout.EastSlavic.EastSlavicCustomizer;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.customizer.EastSlavicCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
@@ -39,7 +39,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class BelarusianBYCustomizer extends EastSlavicCustomizer {
-        public BelarusianBYCustomizer(final Locale locale) { super(locale); }
+        BelarusianBYCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey[] getDoubleQuoteMoreKeys() {
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBengaliBD.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBengaliBD.java
new file mode 100644
index 0000000..2d38c87
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBengaliBD.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.keyboard.layout.BengaliAkkhor;
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.customizer.BengaliCustomizer;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+
+import java.util.Locale;
+
+/**
+ * bn_BD: Bengali (Bangladesh)/bengali_akkhor
+ */
+@SmallTest
+public final class TestsBengaliBD extends LayoutTestsBase {
+    private static final Locale LOCALE = new Locale("bn", "BD");
+    private static final LayoutBase LAYOUT = new BengaliAkkhor(new BengaliBDCustomzier(LOCALE));
+
+    @Override
+    LayoutBase getLayout() { return LAYOUT; }
+
+    private static class BengaliBDCustomzier extends BengaliCustomizer {
+        BengaliBDCustomzier(final Locale locale) { super(locale); }
+
+        @Override
+        public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
+            return isPhone ? EMPTY_KEYS : EXCLAMATION_AND_QUESTION_MARKS;
+        }
+
+        @Override
+        public ExpectedKey[] getSpaceKeys(final boolean isPhone) {
+            return joinKeys(LANGUAGE_SWITCH_KEY, SPACE_KEY, key(ZWNJ_KEY, ZWJ_KEY));
+        }
+
+        @Override
+        public ExpectedKey getCurrencyKey() { return CURRENCY_RUPEE; }
+
+        // U+09F3: "৳" BENGALI RUPEE SIGN
+        private static final ExpectedKey CURRENCY_RUPEE = key("\u09F3",
+                Symbols.CURRENCY_GENERIC_MORE_KEYS);
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBengaliIN.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBengaliIN.java
index d642632..022b085 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBengaliIN.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBengaliIN.java
@@ -19,9 +19,9 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.Bengali;
-import com.android.inputmethod.keyboard.layout.Bengali.BengaliCustomizer;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.customizer.BengaliCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 
 import java.util.Locale;
@@ -38,7 +38,10 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class BengaliINCustomzier extends BengaliCustomizer {
-        public BengaliINCustomzier(final Locale locale) { super(locale); }
+        BengaliINCustomzier(final Locale locale) { super(locale); }
+
+        @Override
+        public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) { return EMPTY_KEYS; }
 
         @Override
         public ExpectedKey getCurrencyKey() { return CURRENCY_RUPEE; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBulgarian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBulgarian.java
index ded8d72..1530827 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBulgarian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBulgarian.java
@@ -19,7 +19,6 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.Bulgarian;
-import com.android.inputmethod.keyboard.layout.Bulgarian.BulgarianCustomizer;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 
 import java.util.Locale;
@@ -30,7 +29,7 @@
 @SmallTest
 public final class TestsBulgarian extends LayoutTestsBase {
     private static final Locale LOCALE = new Locale("bg");
-    private static final LayoutBase LAYOUT = new Bulgarian(new BulgarianCustomizer(LOCALE));
+    private static final LayoutBase LAYOUT = new Bulgarian(LOCALE);
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBulgarianBds.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBulgarianBds.java
index 22b2011..558b1d4 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBulgarianBds.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsBulgarianBds.java
@@ -19,7 +19,6 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.BulgarianBds;
-import com.android.inputmethod.keyboard.layout.BulgarianBds.BulgarianBdsCustomizer;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 
 import java.util.Locale;
@@ -30,7 +29,7 @@
 @SmallTest
 public final class TestsBulgarianBds extends LayoutTestsBase {
     private static final Locale LOCALE = new Locale("bg");
-    private static final LayoutBase LAYOUT = new BulgarianBds(new BulgarianBdsCustomizer(LOCALE));
+    private static final LayoutBase LAYOUT = new BulgarianBds(LOCALE);
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCatalan.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCatalan.java
index 151a0a6..a323ffd 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCatalan.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCatalan.java
@@ -19,8 +19,8 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
 import com.android.inputmethod.keyboard.layout.Spanish;
+import com.android.inputmethod.keyboard.layout.customizer.EuroCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
@@ -38,20 +38,20 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class CatalanCustomizer extends EuroCustomizer {
-        public CatalanCustomizer(final Locale locale) { super(locale); }
+        CatalanCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey[] getPunctuationMoreKeys(final boolean isPhone) {
-            return isPhone ? PHONE_PUNCTUATION_MORE_KEYS
-                    : TABLET_PUNCTUATION_MORE_KEYS;
+            return isPhone ? CATALAN_PHONE_PUNCTUATION_MORE_KEYS
+                    : CATALAN_TABLET_PUNCTUATION_MORE_KEYS;
         }
 
         // U+00B7: "·" MIDDLE DOT
-        private static final ExpectedKey[] PHONE_PUNCTUATION_MORE_KEYS = joinKeys(
+        private static final ExpectedKey[] CATALAN_PHONE_PUNCTUATION_MORE_KEYS = joinKeys(
                 ",", "?", "!", "\u00B7", "#", ")", "(", "/", ";",
                 "'", "@", ":", "-", "\"", "+", "%", "&");
 
-        private static final ExpectedKey[] TABLET_PUNCTUATION_MORE_KEYS = joinKeys(
+        private static final ExpectedKey[] CATALAN_TABLET_PUNCTUATION_MORE_KEYS = joinKeys(
                 ",", "'", "\u00B7", "#", ")", "(", "/", ";",
                 "@", ":", "-", "\"", "+", "%", "&");
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCroatian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCroatian.java
index 8575ef2..d8af75b 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCroatian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCroatian.java
@@ -19,9 +19,9 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.Qwertz;
 import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
@@ -39,7 +39,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class CroatianCustomizer extends LayoutCustomizer {
-        public CroatianCustomizer(final Locale locale) { super(locale); }
+        CroatianCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_L9R; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCzech.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCzech.java
index f479470..f05b8eb 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCzech.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsCzech.java
@@ -19,9 +19,9 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.Qwertz;
 import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
@@ -39,7 +39,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class CzechCustomizer extends LayoutCustomizer {
-        public CzechCustomizer(final Locale locale) { super(locale); }
+        CzechCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDanish.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDanish.java
index 85c63a1..fb7338d 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDanish.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDanish.java
@@ -19,11 +19,8 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
 import com.android.inputmethod.keyboard.layout.Nordic;
-import com.android.inputmethod.keyboard.layout.Symbols;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+import com.android.inputmethod.keyboard.layout.customizer.DanishCustomizer;
 
 import java.util.Locale;
 
@@ -37,73 +34,4 @@
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
-
-    private static class DanishCustomizer extends EuroCustomizer {
-        public DanishCustomizer(final Locale locale) { super(locale); }
-
-        @Override
-        public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }
-
-        @Override
-        public ExpectedKey[] getSingleQuoteMoreKeys() { return Symbols.SINGLE_QUOTES_R9L; }
-
-        @Override
-        public ExpectedKey[] getDoubleAngleQuoteKeys() { return Symbols.DOUBLE_ANGLE_QUOTES_RL; }
-
-        @Override
-        public ExpectedKey[] getSingleAngleQuoteKeys() { return Symbols.SINGLE_ANGLE_QUOTES_RL; }
-
-        @Override
-        public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
-            return builder
-                    // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
-                    // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
-                    .setMoreKeysOf("e", "\u00E9", "\u00EB")
-                    // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
-                    // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
-                    .setMoreKeysOf("y", "\u00FD", "\u00FF")
-                    // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-                    // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-                    // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-                    // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-                    // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-                    .setMoreKeysOf("u", "\u00FA", "\u00FC", "\u00FB", "\u00F9", "\u016B")
-                    // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
-                    // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
-                    .setMoreKeysOf("i", "\u00ED", "\u00EF")
-                    // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
-                    // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
-                    // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
-                    // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
-                    // U+0153: "œ" LATIN SMALL LIGATURE OE
-                    // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
-                    .setMoreKeysOf("o", "\u00F3", "\u00F4", "\u00F2", "\u00F5", "\u0153", "\u014D")
-                    // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
-                    .replaceKeyOfLabel(Nordic.ROW1_11, "\u00E5")
-                    // U+00E6: "æ" LATIN SMALL LETTER AE
-                    // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
-                    .replaceKeyOfLabel(Nordic.ROW2_10, key("\u00E6", moreKey("\u00E4")))
-                    // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
-                    // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
-                    .replaceKeyOfLabel(Nordic.ROW2_11, key("\u00F8", moreKey("\u00F6")))
-                    // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
-                    // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
-                    // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
-                    // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
-                    // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
-                    // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
-                    .setMoreKeysOf("a", "\u00E1", "\u00E4", "\u00E0", "\u00E2", "\u00E3", "\u0101")
-                    // U+00DF: "ß" LATIN SMALL LETTER SHARP S
-                    // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
-                    // U+0161: "š" LATIN SMALL LETTER S WITH CARON
-                    .setMoreKeysOf("s", "\u00DF", "\u015B", "\u0161")
-                    // U+00F0: "ð" LATIN SMALL LETTER ETH
-                    .setMoreKeysOf("d", "\u00F0")
-                    // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
-                    .setMoreKeysOf("l", "\u0142")
-                    // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
-                    // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
-                    .setMoreKeysOf("n", "\u00F1", "\u0144");
-        }
-    }
 }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDanishQwertz.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDanishQwertz.java
new file mode 100644
index 0000000..718bf8a
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDanishQwertz.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.Qwertz;
+import com.android.inputmethod.keyboard.layout.customizer.DanishCustomizer;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+/**
+ * da: Danish/qwertz
+ */
+@SmallTest
+public final class TestsDanishQwertz extends LayoutTestsBase {
+    private static final Locale LOCALE = new Locale("da");
+    private static final LayoutBase LAYOUT = new Qwertz(new DanishQwertyCustomizer(LOCALE));
+
+    @Override
+    LayoutBase getLayout() { return LAYOUT; }
+
+    private static class DanishQwertyCustomizer extends DanishCustomizer {
+        DanishQwertyCustomizer(final Locale locale) { super(locale); }
+
+        @Override
+        protected void setNordicKeys(final ExpectedKeyboardBuilder builder) {
+            // QWERTZ layout doesn't have Nordic keys.
+        }
+
+        @Override
+        protected void setMoreKeysOfA(final ExpectedKeyboardBuilder builder) {
+            builder
+                    // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+                    // U+00E6: "æ" LATIN SMALL LETTER AE
+                    // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+                    // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+                    // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+                    // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+                    // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+                    // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+                    .setMoreKeysOf("a", "\u00E5", "\u00E6", "\u00E1", "\u00E4", "\u00E0", "\u00E2",
+                            "\u00E3", "\u0101");
+        }
+
+        @Override
+        protected void setMoreKeysOfO(final ExpectedKeyboardBuilder builder) {
+            builder
+                    // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+                    // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+                    // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+                    // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+                    // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+                    // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+                    // U+0153: "œ" LATIN SMALL LIGATURE OE
+                    // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+                    .setMoreKeysOf("o", "\u00F8", "\u00F6", "\u00F3", "\u00F4", "\u00F2", "\u00F5",
+                            "\u0153", "\u014D");
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDutch.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDutch.java
index 1730f66..12bd1b1 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDutch.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDutch.java
@@ -19,11 +19,8 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
 import com.android.inputmethod.keyboard.layout.Qwerty;
-import com.android.inputmethod.keyboard.layout.Symbols;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+import com.android.inputmethod.keyboard.layout.customizer.DutchCustomizer;
 
 import java.util.Locale;
 
@@ -37,70 +34,4 @@
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
-
-    static class DutchCustomizer extends EuroCustomizer {
-        public DutchCustomizer(final Locale locale) { super(locale); }
-
-        @Override
-        public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_L9R; }
-
-        @Override
-        public ExpectedKey[] getSingleQuoteMoreKeys() { return Symbols.SINGLE_QUOTES_L9R; }
-
-        @Override
-        public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
-            return builder
-                    // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
-                    // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
-                    // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
-                    // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
-                    // U+00E6: "æ" LATIN SMALL LETTER AE
-                    // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
-                    // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
-                    // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
-                    .setMoreKeysOf("a",
-                            "\u00E1", "\u00E4", "\u00E2", "\u00E0", "\u00E6", "\u00E3", "\u00E5",
-                            "\u0101")
-                    // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
-                    // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
-                    // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
-                    // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
-                    // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
-                    // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
-                    // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
-                    .setMoreKeysOf("e",
-                            "\u00E9", "\u00EB", "\u00EA", "\u00E8", "\u0119", "\u0117", "\u0113")
-                    // U+0133: "ĳ" LATIN SMALL LIGATURE IJ
-                    .setMoreKeysOf("y", "\u0133")
-                    // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-                    // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-                    // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-                    // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-                    // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-                    .setMoreKeysOf("u", "\u00FA", "\u00FC", "\u00FB", "\u00F9", "\u016B")
-                    // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
-                    // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
-                    // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
-                    // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
-                    // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
-                    // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
-                    // U+0133: "ĳ" LATIN SMALL LIGATURE IJ
-                    .setMoreKeysOf("i",
-                            "\u00ED", "\u00EF", "\u00EC", "\u00EE", "\u012F", "\u012B", "\u0133")
-                    // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
-                    // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
-                    // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
-                    // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
-                    // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
-                    // U+0153: "œ" LATIN SMALL LIGATURE OE
-                    // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
-                    // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
-                    .setMoreKeysOf("o",
-                            "\u00F3", "\u00F6", "\u00F4", "\u00F2", "\u00F5", "\u0153", "\u00F8",
-                            "\u014D")
-                    // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
-                    // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
-                    .setMoreKeysOf("n", "\u00F1", "\u0144");
-        }
-    }
 }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDutchBE.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDutchBE.java
index 31adf7a..1464118 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDutchBE.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDutchBE.java
@@ -20,7 +20,7 @@
 
 import com.android.inputmethod.keyboard.layout.Azerty;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.tests.TestsDutch.DutchCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.DutchCustomizer;
 
 import java.util.Locale;
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDvorakEmail.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDvorakEmail.java
index 37ca092..3966ebc 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDvorakEmail.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDvorakEmail.java
@@ -25,8 +25,9 @@
 import com.android.inputmethod.keyboard.KeyboardLayoutSet;
 import com.android.inputmethod.keyboard.layout.Dvorak;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.customizer.DvorakCustomizer.EnglishDvorakCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
-import com.android.inputmethod.keyboard.layout.tests.TestsEnglishDvorak.EnglishDvorakCustomizer;
 
 import java.util.Locale;
 
@@ -44,12 +45,13 @@
     @Override
     protected KeyboardLayoutSet createKeyboardLayoutSet(final InputMethodSubtype subtype,
             final EditorInfo editorInfo, final boolean voiceInputKeyEnabled,
-            final boolean languageSwitchKeyEnabled) {
+            final boolean languageSwitchKeyEnabled, final boolean splitLayoutEnabled) {
         final EditorInfo emailField = new EditorInfo();
         emailField.inputType =
                 InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS;
         return super.createKeyboardLayoutSet(
-                subtype, emailField, voiceInputKeyEnabled, languageSwitchKeyEnabled);
+                subtype, emailField, voiceInputKeyEnabled, languageSwitchKeyEnabled,
+                splitLayoutEnabled);
     }
 
     private static class DvorakEmailCustomizer extends EnglishDvorakCustomizer {
@@ -59,23 +61,23 @@
 
         @Override
         public ExpectedKey getEnterKey(final boolean isPhone) {
-            return isPhone ? LayoutBase.ENTER_KEY : super.getEnterKey(isPhone);
+            return isPhone ? ENTER_KEY : super.getEnterKey(isPhone);
         }
 
         @Override
         public ExpectedKey getEmojiKey(final boolean isPhone) {
-            return LayoutBase.DOMAIN_KEY;
+            return DOMAIN_KEY;
         }
 
         @Override
         public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
             return isPhone ? super.getKeysLeftToSpacebar(isPhone)
-                    : joinKeys(key("@", LayoutBase.SETTINGS_KEY));
+                    : joinKeys(key("@", SETTINGS_KEY));
         }
     }
 
     private static class DvorakEmail extends Dvorak {
-        public DvorakEmail(final LayoutCustomizer customizer) {
+        DvorakEmail(final LayoutCustomizer customizer) {
             super(customizer);
         }
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDvorakUrl.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDvorakUrl.java
index 3bcae0c..67e0d91 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDvorakUrl.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsDvorakUrl.java
@@ -25,8 +25,9 @@
 import com.android.inputmethod.keyboard.KeyboardLayoutSet;
 import com.android.inputmethod.keyboard.layout.Dvorak;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.customizer.DvorakCustomizer.EnglishDvorakCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
-import com.android.inputmethod.keyboard.layout.tests.TestsEnglishDvorak.EnglishDvorakCustomizer;
 
 import java.util.Locale;
 
@@ -44,40 +45,37 @@
     @Override
     protected KeyboardLayoutSet createKeyboardLayoutSet(final InputMethodSubtype subtype,
             final EditorInfo editorInfo, final boolean voiceInputKeyEnabled,
-            final boolean languageSwitchKeyEnabled) {
+            final boolean languageSwitchKeyEnabled, final boolean splitLayoutEnabled) {
         final EditorInfo emailField = new EditorInfo();
         emailField.inputType =
                 InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_URI;
         return super.createKeyboardLayoutSet(
-                subtype, emailField, voiceInputKeyEnabled, languageSwitchKeyEnabled);
+                subtype, emailField, voiceInputKeyEnabled, languageSwitchKeyEnabled,
+                splitLayoutEnabled);
     }
 
     private static class DvorakUrlCustomizer extends EnglishDvorakCustomizer {
-        DvorakUrlCustomizer(final Locale locale) {
-            super(locale);
-        }
+        DvorakUrlCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey getEnterKey(final boolean isPhone) {
-            return isPhone ? LayoutBase.ENTER_KEY : super.getEnterKey(isPhone);
+            return isPhone ? ENTER_KEY : super.getEnterKey(isPhone);
         }
 
         @Override
         public ExpectedKey getEmojiKey(final boolean isPhone) {
-            return LayoutBase.DOMAIN_KEY;
+            return DOMAIN_KEY;
         }
 
         @Override
         public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
             return isPhone ? super.getKeysLeftToSpacebar(isPhone)
-                    : joinKeys(key("/", LayoutBase.SETTINGS_KEY));
+                    : joinKeys(key("/", SETTINGS_KEY));
         }
     }
 
     private static class DvorakEmail extends Dvorak {
-        public DvorakEmail(final LayoutCustomizer customizer) {
-            super(customizer);
-        }
+        DvorakEmail(final LayoutCustomizer customizer) { super(customizer); }
 
         @Override
         protected ExpectedKey getRow1_1Key(final boolean isPhone, final int elementId) {
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishDvorak.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishDvorak.java
index e647f8a..2b25f81 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishDvorak.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishDvorak.java
@@ -19,9 +19,8 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.Dvorak;
-import com.android.inputmethod.keyboard.layout.Dvorak.DvorakCustomizer;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+import com.android.inputmethod.keyboard.layout.customizer.DvorakCustomizer.EnglishDvorakCustomizer;
 
 import java.util.Locale;
 
@@ -35,18 +34,4 @@
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
-
-    public static class EnglishDvorakCustomizer extends DvorakCustomizer {
-        private final EnglishCustomizer mEnglishCustomizer;
-
-        EnglishDvorakCustomizer(final Locale locale) {
-            super(locale);
-            mEnglishCustomizer = new EnglishCustomizer(locale);
-        }
-
-        @Override
-        public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
-            return mEnglishCustomizer.setAccentedLetters(builder);
-        }
-    }
 }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishIN.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishIN.java
index c80b250..54759ce 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishIN.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishIN.java
@@ -22,6 +22,7 @@
 import com.android.inputmethod.keyboard.layout.Qwerty;
 import com.android.inputmethod.keyboard.layout.Symbols;
 import com.android.inputmethod.keyboard.layout.SymbolsShifted;
+import com.android.inputmethod.keyboard.layout.customizer.EnglishCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 
 import java.util.Locale;
@@ -38,7 +39,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class EnglishINCustomizer extends EnglishCustomizer {
-        public EnglishINCustomizer(final Locale locale) { super(locale); }
+        EnglishINCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey getCurrencyKey() { return CURRENCY_RUPEE; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishUK.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishUK.java
index c0dcbdc..714a600 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishUK.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishUK.java
@@ -21,6 +21,7 @@
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Qwerty;
 import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.customizer.EnglishCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 
 import java.util.Locale;
@@ -37,7 +38,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class EnglishUKCustomizer extends EnglishCustomizer {
-        public EnglishUKCustomizer(final Locale locale) { super(locale); }
+        EnglishUKCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey getCurrencyKey() { return CURRENCY_POUND; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishUS.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishUS.java
index 6ea8f60..570ee9d 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishUS.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEnglishUS.java
@@ -20,6 +20,7 @@
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Qwerty;
+import com.android.inputmethod.keyboard.layout.customizer.EnglishCustomizer;
 
 import java.util.Locale;
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEsperanto.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEsperanto.java
index 6a44187..a6792e2 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEsperanto.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEsperanto.java
@@ -19,8 +19,8 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.Spanish;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
 import java.util.Locale;
@@ -37,7 +37,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class EsperantoCustomizer extends LayoutCustomizer {
-        public EsperantoCustomizer(final Locale locale) { super(locale); }
+        EsperantoCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEstonianEE.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEstonianEE.java
index 865e9ea..8cb67e2 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEstonianEE.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEstonianEE.java
@@ -19,11 +19,8 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
 import com.android.inputmethod.keyboard.layout.Nordic;
-import com.android.inputmethod.keyboard.layout.Symbols;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+import com.android.inputmethod.keyboard.layout.customizer.EstonianEECustomizer;
 
 import java.util.Locale;
 
@@ -37,121 +34,4 @@
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
-
-    private static class EstonianEECustomizer extends EuroCustomizer {
-        public EstonianEECustomizer(final Locale locale) {
-            super(locale);
-        }
-
-        @Override
-        public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }
-
-        @Override
-        public ExpectedKey[] getSingleQuoteMoreKeys() { return Symbols.SINGLE_QUOTES_R9L; }
-
-        @Override
-        public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
-            return builder
-                    // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
-                    // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
-                    // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
-                    // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
-                    // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
-                    // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
-                    // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
-                    // U+011B: "ě" LATIN SMALL LETTER E WITH CARON
-                    .setMoreKeysOf("e",
-                            "\u0113", "\u00E8", "\u0117", "\u00E9", "\u00EA", "\u00EB", "\u0119",
-                            "\u011B")
-                    // U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
-                    // U+0159: "ř" LATIN SMALL LETTER R WITH CARON
-                    // U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
-                    .setMoreKeysOf("r", "\u0157", "\u0159", "\u0155")
-                    // U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
-                    // U+0165: "ť" LATIN SMALL LETTER T WITH CARON
-                    .setMoreKeysOf("t", "\u0163", "\u0165")
-                    // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
-                    // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
-                    .setMoreKeysOf("y", "\u00FD", "\u00FF")
-                    // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-                    // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-                    // U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK
-                    // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-                    // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-                    // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-                    // U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
-                    // U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
-                    .setMoreKeysOf("u",
-                            "\u00FC", "\u016B", "\u0173", "\u00F9", "\u00FA", "\u00FB", "\u016F",
-                            "\u0171")
-                    // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
-                    // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
-                    // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
-                    // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
-                    // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
-                    // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
-                    // U+0131: "ı" LATIN SMALL LETTER DOTLESS I
-                    .setMoreKeysOf("i",
-                            "\u012B", "\u00EC", "\u012F", "\u00ED", "\u00EE", "\u00EF", "\u0131")
-                    // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
-                    // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
-                    // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
-                    // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
-                    // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
-                    // U+0153: "œ" LATIN SMALL LIGATURE OE
-                    // U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE
-                    // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
-                    .setMoreKeysOf("o",
-                            "\u00F6", "\u00F5", "\u00F2", "\u00F3", "\u00F4", "\u0153", "\u0151",
-                            "\u00F8")
-                    // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-                    .replaceKeyOfLabel(Nordic.ROW1_11, "\u00FC")
-                    // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
-                    // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
-                    .replaceKeyOfLabel(Nordic.ROW2_10, key("\u00F6", moreKey("\u00F5")))
-                    // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
-                    .replaceKeyOfLabel(Nordic.ROW2_11, "\u00E4")
-                    // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
-                    // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
-                    // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
-                    // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
-                    // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
-                    // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
-                    // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
-                    // U+00E6: "æ" LATIN SMALL LETTER AE
-                    // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
-                    .setMoreKeysOf("a",
-                            "\u00E4", "\u0101", "\u00E0", "\u00E1", "\u00E2", "\u00E3", "\u00E5",
-                            "\u00E6", "\u0105")
-                    // U+0161: "š" LATIN SMALL LETTER S WITH CARON
-                    // U+00DF: "ß" LATIN SMALL LETTER SHARP S
-                    // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
-                    // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
-                    .setMoreKeysOf("s", "\u0161", "\u00DF", "\u015B", "\u015F")
-                    // U+010F: "ď" LATIN SMALL LETTER D WITH CARON
-                    .setMoreKeysOf("d", "\u010F")
-                    // U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA
-                    // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
-                    .setMoreKeysOf("g", "\u0123", "\u011F")
-                    // U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA
-                    .setMoreKeysOf("k", "\u0137")
-                    // U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA
-                    // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
-                    // U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE
-                    // U+013E: "ľ" LATIN SMALL LETTER L WITH CARON
-                    .setMoreKeysOf("l", "\u013C", "\u0142", "\u013A", "\u013E")
-                    // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
-                    // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
-                    // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
-                    .setMoreKeysOf("z", "\u017E", "\u017C", "\u017A")
-                    // U+010D: "č" LATIN SMALL LETTER C WITH CARON
-                    // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
-                    // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
-                    .setMoreKeysOf("c", "\u010D", "\u00E7", "\u0107")
-                    // U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
-                    // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
-                    // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
-                    .setMoreKeysOf("n", "\u0146", "\u00F1", "\u0144");
-        }
-    }
 }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEstonianEEQwerty.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEstonianEEQwerty.java
new file mode 100644
index 0000000..fb7c243
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsEstonianEEQwerty.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.Qwerty;
+import com.android.inputmethod.keyboard.layout.customizer.EstonianEECustomizer;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+/**
+ * et_EE: Estonian (Estonia)/qwerty
+ */
+@SmallTest
+public final class TestsEstonianEEQwerty extends LayoutTestsBase {
+    private static final Locale LOCALE = new Locale("et", "EE");
+    private static final LayoutBase LAYOUT = new Qwerty(new EstonianEEQwertyCustomizer(LOCALE));
+
+    @Override
+    LayoutBase getLayout() { return LAYOUT; }
+
+    private static class EstonianEEQwertyCustomizer extends EstonianEECustomizer {
+        EstonianEEQwertyCustomizer(final Locale locale) { super(locale); }
+
+        @Override
+        protected void setNordicKeys(final ExpectedKeyboardBuilder builder) {
+            // QWERTY layout doesn't have Nordic keys.
+        }
+
+        @Override
+        protected void setMoreKeysOfA(final ExpectedKeyboardBuilder builder) {
+            builder
+                    // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+                    // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+                    // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+                    // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+                    // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+                    // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+                    // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+                    // U+00E6: "æ" LATIN SMALL LETTER AE
+                    // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
+                    .setMoreKeysOf("a", "\u00E4", "\u0101", "\u00E0", "\u00E1", "\u00E2", "\u00E3",
+                            "\u00E5", "\u00E6", "\u0105");
+        }
+
+        @Override
+        protected void setMoreKeysOfI(final ExpectedKeyboardBuilder builder, final int elementId) {
+            // TODO: The upper-case letter of "ı" in Estonian locale is "I". It should be omitted
+            // from the more keys of "I".
+            builder
+                    // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
+                    // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+                    // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+                    // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+                    // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+                    // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+                    // U+0131: "ı" LATIN SMALL LETTER DOTLESS I
+                    .setMoreKeysOf("i",
+                            "\u012B", "\u00EC", "\u012F", "\u00ED", "\u00EE", "\u00EF", "\u0131");
+        }
+
+        @Override
+        protected void setMoreKeysOfO(final ExpectedKeyboardBuilder builder) {
+            builder
+                    // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+                    // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+                    // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+                    // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+                    // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+                    // U+0153: "œ" LATIN SMALL LIGATURE OE
+                    // U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE
+                    // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+                    .setMoreKeysOf("o", "\u00F6", "\u00F5", "\u00F2", "\u00F3", "\u00F4", "\u0153",
+                            "\u0151", "\u00F8");
+        }
+
+        @Override
+        protected void setMoreKeysOfU(final ExpectedKeyboardBuilder builder) {
+            builder
+                    // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+                    // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+                    // U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK
+                    // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+                    // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+                    // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+                    // U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
+                    // U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
+                    .setMoreKeysOf("u", "\u00FC", "\u016B", "\u0173", "\u00F9", "\u00FA", "\u00FB",
+                            "\u016F", "\u0171");
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFinnish.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFinnish.java
index ff32da1..3d42f30 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFinnish.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFinnish.java
@@ -19,9 +19,8 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
 import com.android.inputmethod.keyboard.layout.Nordic;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+import com.android.inputmethod.keyboard.layout.customizer.FinnishCustomizer;
 
 import java.util.Locale;
 
@@ -35,47 +34,4 @@
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
-
-    private static class FinnishCustomizer extends EuroCustomizer {
-        public FinnishCustomizer(final Locale locale) { super(locale); }
-
-        @Override
-        public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
-            return builder
-                    // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-                    .setMoreKeysOf("u", "\u00FC")
-                    // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
-                    // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
-                    // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
-                    // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
-                    // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
-                    // U+0153: "œ" LATIN SMALL LIGATURE OE
-                    // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
-                    .setMoreKeysOf("o",
-                            "\u00F8", "\u00F4", "\u00F2", "\u00F3", "\u00F5", "\u0153", "\u014D")
-                    // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
-                    .replaceKeyOfLabel(Nordic.ROW1_11, "\u00E5")
-                    // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
-                    // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
-                    .replaceKeyOfLabel(Nordic.ROW2_10, key("\u00F6", moreKey("\u00F8")))
-                    // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
-                    // U+00E6: "æ" LATIN SMALL LETTER AE
-                    .replaceKeyOfLabel(Nordic.ROW2_11, key("\u00E4", moreKey("\u00E6")))
-                    // U+00E6: "æ" LATIN SMALL LETTER AE
-                    // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
-                    // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
-                    // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
-                    // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
-                    // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
-                    .setMoreKeysOf("a", "\u00E6", "\u00E0", "\u00E1", "\u00E2", "\u00E3", "\u0101")
-                    // U+0161: "š" LATIN SMALL LETTER S WITH CARON
-                    // U+00DF: "ß" LATIN SMALL LETTER SHARP S
-                    // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
-                    .setMoreKeysOf("s", "\u0161", "\u00DF", "\u015B")
-                    // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
-                    // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
-                    // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
-                    .setMoreKeysOf("z", "\u017E", "\u017A", "\u017C");
-        }
-    }
 }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFinnishQwerty.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFinnishQwerty.java
new file mode 100644
index 0000000..c81b2a2
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFinnishQwerty.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.Qwerty;
+import com.android.inputmethod.keyboard.layout.customizer.FinnishCustomizer;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+/**
+ * fi: Finnish/qwerty
+ */
+@SmallTest
+public final class TestsFinnishQwerty extends LayoutTestsBase {
+    private static final Locale LOCALE = new Locale("fi");
+    private static final LayoutBase LAYOUT = new Qwerty(new FinnishQwertyCustomizer(LOCALE));
+
+    @Override
+    LayoutBase getLayout() { return LAYOUT; }
+
+    private static class FinnishQwertyCustomizer extends FinnishCustomizer {
+        FinnishQwertyCustomizer(final Locale locale) { super(locale); }
+
+        @Override
+        protected void setNordicKeys(final ExpectedKeyboardBuilder builder) {
+            // QWERTY layout doesn't have Nordic keys.
+        }
+
+        @Override
+        protected void setMoreKeysOfA(final ExpectedKeyboardBuilder builder) {
+            builder
+                    // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+                    // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+                    // U+00E6: "æ" LATIN SMALL LETTER AE
+                    // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+                    // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+                    // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+                    // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+                    // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+                    .setMoreKeysOf("a", "\u00E4", "\u00E5", "\u00E6", "\u00E0", "\u00E1", "\u00E2",
+                            "\u00E3", "\u0101");
+        }
+
+        @Override
+        protected void setMoreKeysOfO(final ExpectedKeyboardBuilder builder) {
+            builder
+                    // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+                    // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+                    // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+                    // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+                    // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+                    // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+                    // U+0153: "œ" LATIN SMALL LIGATURE OE
+                    // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+                    .setMoreKeysOf("o", "\u00F6", "\u00F8", "\u00F4", "\u00F2", "\u00F3", "\u00F5",
+                            "\u0153", "\u014D");
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrench.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrench.java
index 7ced1fb..ca663f4 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrench.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrench.java
@@ -20,8 +20,7 @@
 
 import com.android.inputmethod.keyboard.layout.Azerty;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.customizer.FrenchCustomizer.FrenchEuroCustomizer;
 
 import java.util.Locale;
 
@@ -35,21 +34,4 @@
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
-
-    static final class FrenchEuroCustomizer extends FrenchCustomizer {
-        private final EuroCustomizer mEuroCustomizer;
-
-        public FrenchEuroCustomizer(final Locale locale) {
-            super(locale);
-            mEuroCustomizer = new EuroCustomizer(locale);
-        }
-
-        @Override
-        public final ExpectedKey getCurrencyKey() { return mEuroCustomizer.getCurrencyKey(); }
-
-        @Override
-        public final ExpectedKey[] getOtherCurrencyKeys() {
-            return mEuroCustomizer.getOtherCurrencyKeys();
-        }
-    }
-}
\ No newline at end of file
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchCA.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchCA.java
index 9b3cd1e..12c94b1 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchCA.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchCA.java
@@ -20,6 +20,7 @@
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Qwerty;
+import com.android.inputmethod.keyboard.layout.customizer.FrenchCustomizer;
 
 import java.util.Locale;
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchCH.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchCH.java
index 2598aa3..2461157 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchCH.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchCH.java
@@ -20,6 +20,7 @@
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Swiss;
+import com.android.inputmethod.keyboard.layout.customizer.FrenchCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
 import java.util.Locale;
@@ -36,7 +37,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class FrenchCHCustomizer extends FrenchCustomizer {
-        public FrenchCHCustomizer(final Locale locale) { super(locale); }
+        FrenchCHCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchDvorak.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchDvorak.java
index 33d1445..4053063 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchDvorak.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchDvorak.java
@@ -19,11 +19,11 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.Dvorak;
-import com.android.inputmethod.keyboard.layout.Dvorak.DvorakCustomizer;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.customizer.DvorakCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.FrenchCustomizer.FrenchEuroCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
-import com.android.inputmethod.keyboard.layout.tests.TestsFrench.FrenchEuroCustomizer;
 
 import java.util.Locale;
 
@@ -41,7 +41,7 @@
     private static class FrenchDvorakCustomizer extends DvorakCustomizer {
         private final FrenchEuroCustomizer mFrenchEuroCustomizer;
 
-        public FrenchDvorakCustomizer(final Locale locale) {
+        FrenchDvorakCustomizer(final Locale locale) {
             super(locale);
             mFrenchEuroCustomizer = new FrenchEuroCustomizer(locale);
         }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchQwertz.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchQwertz.java
index 6ab2870..67edace 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchQwertz.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsFrenchQwertz.java
@@ -20,7 +20,7 @@
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Qwertz;
-import com.android.inputmethod.keyboard.layout.tests.TestsFrench.FrenchEuroCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.FrenchCustomizer.FrenchEuroCustomizer;
 
 import java.util.Locale;
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGalicianES.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGalicianES.java
index 1472828..c37fff2 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGalicianES.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGalicianES.java
@@ -19,8 +19,9 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
 import com.android.inputmethod.keyboard.layout.Spanish;
+import com.android.inputmethod.keyboard.layout.customizer.EuroCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.SpanishCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
 import java.util.Locale;
@@ -39,7 +40,7 @@
     private static class GalicianESCustomizer extends EuroCustomizer {
         private final SpanishCustomizer mSpanishCustomizer;
 
-        public GalicianESCustomizer(final Locale locale) {
+        GalicianESCustomizer(final Locale locale) {
             super(locale);
             mSpanishCustomizer = new SpanishCustomizer(locale);
         }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGeorgianGE.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGeorgianGE.java
index f25942f..f6e3080 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGeorgianGE.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGeorgianGE.java
@@ -19,7 +19,6 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.Georgian;
-import com.android.inputmethod.keyboard.layout.Georgian.GeorgianCustomizer;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 
 import java.util.Locale;
@@ -30,7 +29,7 @@
 @SmallTest
 public final class TestsGeorgianGE extends LayoutTestsBase {
     private static final Locale LOCALE = new Locale("ka", "GE");
-    private static final LayoutBase LAYOUT = new Georgian(new GeorgianCustomizer(LOCALE));
+    private static final LayoutBase LAYOUT = new Georgian(LOCALE);
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGerman.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGerman.java
index 6f75711..52c5a06 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGerman.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGerman.java
@@ -19,9 +19,8 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
 import com.android.inputmethod.keyboard.layout.Qwertz;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.customizer.GermanCustomizer.GermanEuroCustomizer;
 
 import java.util.Locale;
 
@@ -35,21 +34,4 @@
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
-
-    static class GermanEuroCustomizer extends GermanCustomizer {
-        final EuroCustomizer mEuroCustomizer;
-
-        public GermanEuroCustomizer(final Locale locale) {
-            super(locale);
-            mEuroCustomizer = new EuroCustomizer(locale);
-        }
-
-        @Override
-        public ExpectedKey getCurrencyKey() { return mEuroCustomizer.getCurrencyKey(); }
-
-        @Override
-        public ExpectedKey[] getOtherCurrencyKeys() {
-            return mEuroCustomizer.getOtherCurrencyKeys();
-        }
-    }
 }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGermanCH.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGermanCH.java
index 7deb00b..10981d9 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGermanCH.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGermanCH.java
@@ -20,6 +20,7 @@
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Swiss;
+import com.android.inputmethod.keyboard.layout.customizer.GermanCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
 import java.util.Locale;
@@ -36,7 +37,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class GermanCHCustomizer extends GermanCustomizer {
-        public GermanCHCustomizer(final Locale locale) { super(locale); }
+        GermanCHCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGermanDvorak.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGermanDvorak.java
index b28d5cf..36d1cb8 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGermanDvorak.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGermanDvorak.java
@@ -19,10 +19,11 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.Dvorak;
-import com.android.inputmethod.keyboard.layout.Dvorak.DvorakCustomizer;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Symbols;
 import com.android.inputmethod.keyboard.layout.SymbolsShifted;
+import com.android.inputmethod.keyboard.layout.customizer.DvorakCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.GermanCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
@@ -39,10 +40,10 @@
     @Override
     LayoutBase getLayout() { return LAYOUT; }
 
-    static class GermanDvorakCustomizer extends DvorakCustomizer {
-        final GermanCustomizer mGermanCustomizer;
+    private static class GermanDvorakCustomizer extends DvorakCustomizer {
+        private final GermanCustomizer mGermanCustomizer;
 
-        public GermanDvorakCustomizer(final Locale locale) {
+        GermanDvorakCustomizer(final Locale locale) {
             super(locale);
             mGermanCustomizer = new GermanCustomizer(locale);
         }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGermanQwerty.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGermanQwerty.java
index 19ae5a3..6db942f 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGermanQwerty.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGermanQwerty.java
@@ -20,7 +20,7 @@
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Qwerty;
-import com.android.inputmethod.keyboard.layout.tests.TestsGerman.GermanEuroCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.GermanCustomizer.GermanEuroCustomizer;
 
 import java.util.Locale;
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGreek.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGreek.java
index 4acb119..fd21d52 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGreek.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsGreek.java
@@ -19,7 +19,6 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.Greek;
-import com.android.inputmethod.keyboard.layout.Greek.GreekCustomizer;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 
 import java.util.Locale;
@@ -30,7 +29,7 @@
 @SmallTest
 public class TestsGreek extends LayoutTestsBase {
     private static final Locale LOCALE = new Locale("el");
-    private static final LayoutBase LAYOUT = new Greek(new GreekCustomizer(LOCALE));
+    private static final LayoutBase LAYOUT = new Greek(LOCALE);
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHebrew.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHebrew.java
index c0243a8..cc63048 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHebrew.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHebrew.java
@@ -19,7 +19,6 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.Hebrew;
-import com.android.inputmethod.keyboard.layout.Hebrew.HebrewCustomizer;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 
 import java.util.Locale;
@@ -30,7 +29,7 @@
 @SmallTest
 public class TestsHebrew extends LayoutTestsBase {
     private static final Locale LOCALE = new Locale("iw");
-    private static final LayoutBase LAYOUT = new Hebrew(new HebrewCustomizer(LOCALE));
+    private static final LayoutBase LAYOUT = new Hebrew(LOCALE);
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHindi.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHindi.java
index 84053b5..53652fc 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHindi.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHindi.java
@@ -19,8 +19,8 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.Hindi;
-import com.android.inputmethod.keyboard.layout.Hindi.HindiCustomizer;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.customizer.HindiCustomizer;
 
 import java.util.Locale;
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHindiCompact.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHindiCompact.java
index 2e676df..cfe3e9e 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHindiCompact.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHindiCompact.java
@@ -19,7 +19,6 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.HindiCompact;
-import com.android.inputmethod.keyboard.layout.HindiCompact.HindiCompactCustomizer;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 
 import java.util.Locale;
@@ -30,7 +29,7 @@
 @SmallTest
 public final class TestsHindiCompact extends LayoutTestsBase {
     private static final Locale LOCALE = new Locale("hi");
-    private static final LayoutBase LAYOUT = new HindiCompact(new HindiCompactCustomizer(LOCALE));
+    private static final LayoutBase LAYOUT = new HindiCompact(LOCALE);
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHinglish.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHinglish.java
new file mode 100644
index 0000000..a8e8723
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHinglish.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.Suppress;
+
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.Qwerty;
+import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.SymbolsShifted;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+
+import java.util.Locale;
+
+/*
+ * hi_ZZ: Hinglish/qwerty
+ */
+@Suppress
+public final class TestsHinglish extends LayoutTestsBase {
+    private static final Locale LOCALE = new Locale("hi", "ZZ");
+    private static final LayoutBase LAYOUT = new Qwerty(new HinglishCustomizer(LOCALE));
+
+    @Override
+    LayoutBase getLayout() { return LAYOUT; }
+
+    private static class HinglishCustomizer extends LayoutCustomizer {
+        HinglishCustomizer(final Locale locale) { super(locale); }
+
+        @Override
+        public ExpectedKey getCurrencyKey() { return CURRENCY_RUPEE; }
+
+        @Override
+        public ExpectedKey[] getOtherCurrencyKeys() {
+            return SymbolsShifted.CURRENCIES_OTHER_GENERIC;
+        }
+
+        // U+20B9: "₹" INDIAN RUPEE SIGN
+        private static final ExpectedKey CURRENCY_RUPEE = key("\u20B9",
+                Symbols.CURRENCY_GENERIC_MORE_KEYS);
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHungarian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHungarian.java
index efc95dc..a32e2b5 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHungarian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsHungarian.java
@@ -19,9 +19,9 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.Qwertz;
 import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
@@ -39,7 +39,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class HungarianCustomizer extends LayoutCustomizer {
-        public HungarianCustomizer(final Locale locale) { super(locale); }
+        HungarianCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_L9R; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsIcelandic.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsIcelandic.java
index 62b111e..8eabf18 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsIcelandic.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsIcelandic.java
@@ -19,9 +19,9 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.Qwerty;
 import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
@@ -39,7 +39,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class IcelandicCustomizer extends LayoutCustomizer {
-        public IcelandicCustomizer(final Locale locale) { super(locale); }
+        IcelandicCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsIndonesian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsIndonesian.java
index 9b23bfe..8371171 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsIndonesian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsIndonesian.java
@@ -19,8 +19,8 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.Qwerty;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 
 import java.util.Locale;
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsItalian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsItalian.java
index f3c610c..2acc967 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsItalian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsItalian.java
@@ -19,8 +19,9 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
 import com.android.inputmethod.keyboard.layout.Qwerty;
+import com.android.inputmethod.keyboard.layout.customizer.EuroCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.ItalianCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
 import java.util.Locale;
@@ -39,7 +40,7 @@
     private static class ItalianITCustomizer extends EuroCustomizer {
         private final ItalianCustomizer mItalianCustomizer;
 
-        public ItalianITCustomizer(final Locale locale) {
+        ItalianITCustomizer(final Locale locale) {
             super(locale);
             mItalianCustomizer = new ItalianCustomizer(locale);
         }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsItalianCH.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsItalianCH.java
index d32f9e9..f98545a 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsItalianCH.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsItalianCH.java
@@ -20,6 +20,7 @@
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Swiss;
+import com.android.inputmethod.keyboard.layout.customizer.ItalianCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
 import java.util.Locale;
@@ -36,7 +37,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class ItalianCHCustomizer extends ItalianCustomizer {
-        public ItalianCHCustomizer(final Locale locale) { super(locale); }
+        ItalianCHCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKannadaIN.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKannadaIN.java
index d1866e8..a0ff1d0 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKannadaIN.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKannadaIN.java
@@ -19,7 +19,6 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.Kannada;
-import com.android.inputmethod.keyboard.layout.Kannada.KannadaCustomizer;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 
 import java.util.Locale;
@@ -30,7 +29,7 @@
 @SmallTest
 public final class TestsKannadaIN extends LayoutTestsBase {
     private static final Locale LOCALE = new Locale("kn", "IN");
-    private static final LayoutBase LAYOUT = new Kannada(new KannadaCustomizer(LOCALE));
+    private static final LayoutBase LAYOUT = new Kannada(LOCALE);
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKazakh.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKazakh.java
index d255a0f..66ece29 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKazakh.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKazakh.java
@@ -19,8 +19,8 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.EastSlavic;
-import com.android.inputmethod.keyboard.layout.EastSlavic.EastSlavicCustomizer;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.customizer.EastSlavicCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
 import java.util.Locale;
@@ -37,7 +37,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class KazakhCustomizer extends EastSlavicCustomizer {
-        public KazakhCustomizer(final Locale locale) { super(locale); }
+        KazakhCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKhmerKH.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKhmerKH.java
index df2f40d..dde9b87 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKhmerKH.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKhmerKH.java
@@ -19,7 +19,6 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.Khmer;
-import com.android.inputmethod.keyboard.layout.Khmer.KhmerCustomizer;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 
 import java.util.Locale;
@@ -30,7 +29,7 @@
 @SmallTest
 public final class TestsKhmerKH extends LayoutTestsBase {
     private static final Locale LOCALE = new Locale("km", "KH");
-    private static final LayoutBase LAYOUT = new Khmer(new KhmerCustomizer(LOCALE));
+    private static final LayoutBase LAYOUT = new Khmer(LOCALE);
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKyrgyz.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKyrgyz.java
index 9797b4b..3faf2f6 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKyrgyz.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsKyrgyz.java
@@ -19,8 +19,8 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.EastSlavic;
-import com.android.inputmethod.keyboard.layout.EastSlavic.EastSlavicCustomizer;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.customizer.EastSlavicCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
 import java.util.Locale;
@@ -37,7 +37,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class KyrgyzCustomizer extends EastSlavicCustomizer {
-        public KyrgyzCustomizer(final Locale locale) { super(locale); }
+        KyrgyzCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsLaoLA.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsLaoLA.java
index 34ad1fb..ffa3372 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsLaoLA.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsLaoLA.java
@@ -19,7 +19,6 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.Lao;
-import com.android.inputmethod.keyboard.layout.Lao.LaoCustomizer;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 
 import java.util.Locale;
@@ -30,7 +29,7 @@
 @SmallTest
 public final class TestsLaoLA extends LayoutTestsBase {
     private static final Locale LOCALE = new Locale("lo", "LA");
-    private static final LayoutBase LAYOUT = new Lao(new LaoCustomizer(LOCALE));
+    private static final LayoutBase LAYOUT = new Lao(LOCALE);
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsLatvian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsLatvian.java
index dc1736c..dbab16a 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsLatvian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsLatvian.java
@@ -19,9 +19,9 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.Qwerty;
 import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
@@ -39,7 +39,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class LatvianCustomizer extends LayoutCustomizer {
-        public LatvianCustomizer(final Locale locale) { super(locale); }
+        LatvianCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsLithuanian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsLithuanian.java
index 55ac37a..248014a 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsLithuanian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsLithuanian.java
@@ -19,9 +19,9 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.Qwerty;
 import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
@@ -39,7 +39,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class LithuanianCustomizer extends LayoutCustomizer {
-        public LithuanianCustomizer(final Locale locale) { super(locale); }
+        LithuanianCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMacedonian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMacedonian.java
index 1d7d856..46b1c39 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMacedonian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMacedonian.java
@@ -20,8 +20,8 @@
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.SouthSlavic;
-import com.android.inputmethod.keyboard.layout.SouthSlavic.SouthSlavicLayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.customizer.SouthSlavicLayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
@@ -39,7 +39,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class MacedonianCustomizer extends SouthSlavicLayoutCustomizer {
-        public MacedonianCustomizer(final Locale locale) { super(locale); }
+        MacedonianCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMalayMY.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMalayMY.java
index 9792af9..a6e6cd5 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMalayMY.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMalayMY.java
@@ -19,8 +19,8 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.Qwerty;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 
 import java.util.Locale;
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMalayalamIN.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMalayalamIN.java
index b494ad3..e3fcb53 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMalayalamIN.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMalayalamIN.java
@@ -20,7 +20,6 @@
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Malayalam;
-import com.android.inputmethod.keyboard.layout.Malayalam.MalayalamCustomizer;
 
 import java.util.Locale;
 
@@ -30,7 +29,7 @@
 @SmallTest
 public final class TestsMalayalamIN extends LayoutTestsBase {
     private static final Locale LOCALE = new Locale("ml", "IN");
-    private static final LayoutBase LAYOUT = new Malayalam(new MalayalamCustomizer(LOCALE));
+    private static final LayoutBase LAYOUT = new Malayalam(LOCALE);
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMarathiIN.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMarathiIN.java
index b937629..3e54f6e 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMarathiIN.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMarathiIN.java
@@ -20,7 +20,6 @@
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Marathi;
-import com.android.inputmethod.keyboard.layout.Marathi.MarathiCustomizer;
 
 import java.util.Locale;
 
@@ -30,7 +29,7 @@
 @SmallTest
 public final class TestsMarathiIN extends LayoutTestsBase {
     private static final Locale LOCALE = new Locale("mr", "IN");
-    private static final LayoutBase LAYOUT = new Marathi(new MarathiCustomizer(LOCALE));
+    private static final LayoutBase LAYOUT = new Marathi(LOCALE);
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMongolianMN.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMongolianMN.java
index e28e962..6dafe77 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMongolianMN.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMongolianMN.java
@@ -20,7 +20,6 @@
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Mongolian;
-import com.android.inputmethod.keyboard.layout.Mongolian.MongolianMNCustomizer;
 
 import java.util.Locale;
 
@@ -30,7 +29,7 @@
 @SmallTest
 public final class TestsMongolianMN extends LayoutTestsBase {
     private static final Locale LOCALE = new Locale("mn", "MN");
-    private static final LayoutBase LAYOUT = new Mongolian(new MongolianMNCustomizer(LOCALE));
+    private static final LayoutBase LAYOUT = new Mongolian(LOCALE);
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMyanmarMM.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMyanmarMM.java
deleted file mode 100644
index a0bd50c..0000000
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsMyanmarMM.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.keyboard.layout.tests;
-
-import android.test.suitebuilder.annotation.Suppress;
-
-import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.Myanmar;
-import com.android.inputmethod.keyboard.layout.Myanmar.MyanmarCustomizer;
-
-import java.util.Locale;
-
-/**
- * my_MM: Myanmar (Myanmar)/myanmar
- */
-@Suppress
-public final class TestsMyanmarMM extends LayoutTestsBase {
-    private static final Locale LOCALE = new Locale("my", "MM");
-    private static final LayoutBase LAYOUT = new Myanmar(new MyanmarCustomizer(LOCALE));
-
-    @Override
-    LayoutBase getLayout() { return LAYOUT; }
-}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNepaliRomanized.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNepaliRomanized.java
index 971976a..f646db3 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNepaliRomanized.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNepaliRomanized.java
@@ -20,7 +20,6 @@
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.NepaliRomanized;
-import com.android.inputmethod.keyboard.layout.NepaliRomanized.NepaliRomanizedCustomizer;
 
 import java.util.Locale;
 
@@ -30,8 +29,7 @@
 @SmallTest
 public final class TestsNepaliRomanized extends LayoutTestsBase {
     private static final Locale LOCALE = new Locale("ne", "NP");
-    private static final LayoutBase LAYOUT = new NepaliRomanized(
-            new NepaliRomanizedCustomizer(LOCALE));
+    private static final LayoutBase LAYOUT = new NepaliRomanized(LOCALE);
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNepaliTraditional.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNepaliTraditional.java
index 724c430..99d87b1 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNepaliTraditional.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNepaliTraditional.java
@@ -20,7 +20,6 @@
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.NepaliTraditional;
-import com.android.inputmethod.keyboard.layout.NepaliTraditional.NepaliTraditionalCustomizer;
 
 import java.util.Locale;
 
@@ -30,8 +29,7 @@
 @SmallTest
 public final class TestsNepaliTraditional extends LayoutTestsBase {
     private static final Locale LOCALE = new Locale("ne", "NP");
-    private static final LayoutBase LAYOUT = new NepaliTraditional(
-            new NepaliTraditionalCustomizer(LOCALE));
+    private static final LayoutBase LAYOUT = new NepaliTraditional(LOCALE);
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguage.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguage.java
index 3ed6315..149d520 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguage.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguage.java
@@ -20,6 +20,7 @@
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Qwerty;
+import com.android.inputmethod.keyboard.layout.customizer.NoLanguageCustomizer;
 
 import java.util.Locale;
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguageColemak.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguageColemak.java
index 8d627e3..979947f 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguageColemak.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguageColemak.java
@@ -20,7 +20,8 @@
 
 import com.android.inputmethod.keyboard.layout.Colemak;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.NoLanguageCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
 import java.util.Locale;
@@ -39,7 +40,7 @@
     private static class NoLanguageColemakCustomizer extends LayoutCustomizer {
         private final NoLanguageCustomizer mNoLanguageCustomizer;
 
-        public NoLanguageColemakCustomizer(final Locale locale) {
+        NoLanguageColemakCustomizer(final Locale locale) {
             super(locale);
             mNoLanguageCustomizer = new NoLanguageCustomizer(locale);
         }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguageDvorak.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguageDvorak.java
index 9bf47ed..5423193 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguageDvorak.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguageDvorak.java
@@ -19,8 +19,9 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.Dvorak;
-import com.android.inputmethod.keyboard.layout.Dvorak.DvorakCustomizer;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.customizer.DvorakCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.NoLanguageCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
 import java.util.Locale;
@@ -39,7 +40,7 @@
     private static class NoLanguageDvorakCustomizer extends DvorakCustomizer {
         private final NoLanguageCustomizer mNoLanguageCustomizer;
 
-        public NoLanguageDvorakCustomizer(final Locale locale) {
+        NoLanguageDvorakCustomizer(final Locale locale) {
             super(locale);
             mNoLanguageCustomizer = new NoLanguageCustomizer(locale);
         }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguagePcQwerty.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguagePcQwerty.java
index cd8d43c..20b587b 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguagePcQwerty.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNoLanguagePcQwerty.java
@@ -20,7 +20,8 @@
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.PcQwerty;
-import com.android.inputmethod.keyboard.layout.PcQwerty.PcQwertyCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.NoLanguageCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.PcQwertyCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
 import java.util.Locale;
@@ -39,7 +40,7 @@
     private static class NoLanguagePcQwertyCustomizer extends PcQwertyCustomizer {
         private final NoLanguageCustomizer mNoLanguageCustomizer;
 
-        public NoLanguagePcQwertyCustomizer(final Locale locale) {
+        NoLanguagePcQwertyCustomizer(final Locale locale) {
             super(locale);
             mNoLanguageCustomizer = new NoLanguageCustomizer(locale);
         }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNorwegian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNorwegian.java
index 5d220df..910512c 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNorwegian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNorwegian.java
@@ -19,11 +19,8 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.Nordic;
-import com.android.inputmethod.keyboard.layout.Symbols;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+import com.android.inputmethod.keyboard.layout.customizer.NorwegianCustomizer;
 
 import java.util.Locale;
 
@@ -37,58 +34,4 @@
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
-
-    private static class NorwegianCustomizer extends LayoutCustomizer {
-        public NorwegianCustomizer(final Locale locale) { super(locale); }
-
-        @Override
-        public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_L9R; }
-
-        @Override
-        public ExpectedKey[] getSingleQuoteMoreKeys() { return Symbols.SINGLE_QUOTES_L9R; }
-
-        @Override
-        public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
-            return builder
-                    // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
-                    // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
-                    // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
-                    // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
-                    // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
-                    // U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
-                    // U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
-                    .setMoreKeysOf("e",
-                            "\u00E9", "\u00E8", "\u00EA", "\u00EB", "\u0119", "\u0117", "\u0113")
-                    // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-                    // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-                    // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-                    // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-                    // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-                    .setMoreKeysOf("u", "\u00FC", "\u00FB", "\u00F9", "\u00FA", "\u016B")
-                    // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
-                    // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
-                    // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
-                    // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
-                    // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
-                    // U+0153: "œ" LATIN SMALL LIGATURE OE
-                    // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
-                    .setMoreKeysOf("o",
-                            "\u00F4", "\u00F2", "\u00F3", "\u00F6", "\u00F5", "\u0153", "\u014D")
-                    // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
-                    .replaceKeyOfLabel(Nordic.ROW1_11, "\u00E5")
-                    // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
-                    // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
-                    .replaceKeyOfLabel(Nordic.ROW2_10, key("\u00F8", moreKey("\u00F6")))
-                    // U+00E6: "æ" LATIN SMALL LETTER AE
-                    // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
-                    .replaceKeyOfLabel(Nordic.ROW2_11, key("\u00E6", moreKey("\u00E4")))
-                    // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
-                    // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
-                    // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
-                    // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
-                    // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
-                    // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
-                    .setMoreKeysOf("a", "\u00E0", "\u00E4", "\u00E1", "\u00E2", "\u00E3", "\u0101");
-        }
-    }
 }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNorwegianColemak.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNorwegianColemak.java
new file mode 100644
index 0000000..689c38e
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsNorwegianColemak.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.keyboard.layout.Colemak;
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.customizer.NorwegianCustomizer;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+/**
+ * nb: Norwegian Bokmål/colemak
+ */
+@SmallTest
+public final class TestsNorwegianColemak extends LayoutTestsBase {
+    private static final Locale LOCALE = new Locale("nb");
+    private static final LayoutBase LAYOUT = new Colemak(new NorwegianColemakCustomizer(LOCALE));
+
+    @Override
+    LayoutBase getLayout() { return LAYOUT; }
+
+    private static class NorwegianColemakCustomizer extends NorwegianCustomizer {
+        NorwegianColemakCustomizer(final Locale locale) { super(locale); }
+
+        @Override
+        protected void setNordicKeys(final ExpectedKeyboardBuilder builder) {
+            // Colemak layout doesn't have Nordic keys.
+        }
+
+        @Override
+        protected void setMoreKeysOfA(final ExpectedKeyboardBuilder builder) {
+            builder
+                    // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+                    // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+                    // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+                    // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+                    // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+                    // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+                    // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+                    // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+                    .setMoreKeysOf("a", "\u00E5", "\u00E6", "\u00E4", "\u00E0", "\u00E1", "\u00E2",
+                            "\u00E3", "\u0101");
+        }
+
+        @Override
+        protected void setMoreKeysOfO(final ExpectedKeyboardBuilder builder) {
+            builder
+                    // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+                    // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+                    // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+                    // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+                    // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+                    // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+                    // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+                    // U+0153: "œ" LATIN SMALL LIGATURE OE
+                    // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+                    .setMoreKeysOf("o", "\u00F8", "\u00F6", "\u00F4", "\u00F2", "\u00F3", "\u00F5",
+                            "\u0153", "\u014D");
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPersian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPersian.java
index b7d75c9..8ea8075 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPersian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPersian.java
@@ -19,7 +19,6 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.Farsi;
-import com.android.inputmethod.keyboard.layout.Farsi.FarsiCustomizer;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 
 import java.util.Locale;
@@ -30,7 +29,7 @@
 @SmallTest
 public class TestsPersian extends LayoutTestsBase {
     private static final Locale LOCALE = new Locale("fa");
-    private static final LayoutBase LAYOUT = new Farsi(new FarsiCustomizer(LOCALE));
+    private static final LayoutBase LAYOUT = new Farsi(LOCALE);
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPolish.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPolish.java
index 04f88c3..4f1170a 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPolish.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPolish.java
@@ -19,9 +19,9 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.Qwerty;
 import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
@@ -39,7 +39,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class PolishCustomizer extends LayoutCustomizer {
-        public PolishCustomizer(final Locale locale) { super(locale); }
+        PolishCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_L9R; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPortugueseBR.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPortugueseBR.java
index 8a984a7..7fadaac 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPortugueseBR.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPortugueseBR.java
@@ -20,6 +20,7 @@
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Qwerty;
+import com.android.inputmethod.keyboard.layout.customizer.PortugueseCustomizer;
 
 import java.util.Locale;
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPortuguesePT.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPortuguesePT.java
index e15e811..5936e8d 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPortuguesePT.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsPortuguesePT.java
@@ -19,8 +19,9 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
 import com.android.inputmethod.keyboard.layout.Qwerty;
+import com.android.inputmethod.keyboard.layout.customizer.EuroCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.PortugueseCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 
 import java.util.Locale;
@@ -39,7 +40,7 @@
     private static class PortuguesePTCustomizer extends PortugueseCustomizer {
         private final EuroCustomizer mEuroCustomizer;
 
-        public PortuguesePTCustomizer(final Locale locale) {
+        PortuguesePTCustomizer(final Locale locale) {
             super(locale);
             mEuroCustomizer = new EuroCustomizer(locale);
         }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsQwertyEmail.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsQwertyEmail.java
index 8563d69..cc204de 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsQwertyEmail.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsQwertyEmail.java
@@ -24,6 +24,7 @@
 import com.android.inputmethod.keyboard.KeyboardLayoutSet;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Qwerty;
+import com.android.inputmethod.keyboard.layout.customizer.EnglishCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 
 import java.util.Locale;
@@ -42,32 +43,31 @@
     @Override
     protected KeyboardLayoutSet createKeyboardLayoutSet(final InputMethodSubtype subtype,
             final EditorInfo editorInfo, final boolean voiceInputKeyEnabled,
-            final boolean languageSwitchKeyEnabled) {
+            final boolean languageSwitchKeyEnabled, final boolean splitLayoutEnabled) {
         final EditorInfo emailField = new EditorInfo();
         emailField.inputType =
                 InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS;
         return super.createKeyboardLayoutSet(
-                subtype, emailField, voiceInputKeyEnabled, languageSwitchKeyEnabled);
+                subtype, emailField, voiceInputKeyEnabled, languageSwitchKeyEnabled,
+                splitLayoutEnabled);
     }
 
     private static class EnglishEmailCustomizer extends EnglishCustomizer {
-        EnglishEmailCustomizer(final Locale locale) {
-            super(locale);
-        }
+        EnglishEmailCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey getEnterKey(final boolean isPhone) {
-            return isPhone ? LayoutBase.ENTER_KEY : super.getEnterKey(isPhone);
+            return isPhone ? ENTER_KEY : super.getEnterKey(isPhone);
         }
 
         @Override
         public ExpectedKey getEmojiKey(final boolean isPhone) {
-            return LayoutBase.DOMAIN_KEY;
+            return DOMAIN_KEY;
         }
 
         @Override
         public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
-            return joinKeys(key("@", LayoutBase.SETTINGS_KEY));
+            return joinKeys(key("@", SETTINGS_KEY));
         }
     }
 }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsQwertyUrl.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsQwertyUrl.java
index 1c1a2bb..acd09d2 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsQwertyUrl.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsQwertyUrl.java
@@ -24,6 +24,7 @@
 import com.android.inputmethod.keyboard.KeyboardLayoutSet;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Qwerty;
+import com.android.inputmethod.keyboard.layout.customizer.EnglishCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 
 import java.util.Locale;
@@ -42,32 +43,31 @@
     @Override
     protected KeyboardLayoutSet createKeyboardLayoutSet(final InputMethodSubtype subtype,
             final EditorInfo editorInfo, final boolean voiceInputKeyEnabled,
-            final boolean languageSwitchKeyEnabled) {
+            final boolean languageSwitchKeyEnabled, final boolean splitLayoutEnabled) {
         final EditorInfo emailField = new EditorInfo();
         emailField.inputType =
                 InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_URI;
         return super.createKeyboardLayoutSet(
-                subtype, emailField, voiceInputKeyEnabled, languageSwitchKeyEnabled);
+                subtype, emailField, voiceInputKeyEnabled, languageSwitchKeyEnabled,
+                splitLayoutEnabled);
     }
 
     private static class EnglishUrlCustomizer extends EnglishCustomizer {
-        EnglishUrlCustomizer(final Locale locale) {
-            super(locale);
-        }
+        EnglishUrlCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey getEnterKey(final boolean isPhone) {
-            return isPhone ? LayoutBase.ENTER_KEY : super.getEnterKey(isPhone);
+            return isPhone ? ENTER_KEY : super.getEnterKey(isPhone);
         }
 
         @Override
         public ExpectedKey getEmojiKey(final boolean isPhone) {
-            return LayoutBase.DOMAIN_KEY;
+            return DOMAIN_KEY;
         }
 
         @Override
         public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
-            return joinKeys(key("/", LayoutBase.SETTINGS_KEY));
+            return joinKeys(key("/", SETTINGS_KEY));
         }
     }
 }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsRomanian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsRomanian.java
index 0207f1c..af4fbca 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsRomanian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsRomanian.java
@@ -19,9 +19,9 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.Qwerty;
 import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
@@ -39,7 +39,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class RomanianCustomizer extends LayoutCustomizer {
-        public RomanianCustomizer(final Locale locale) { super(locale); }
+        RomanianCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_L9R; }
@@ -59,9 +59,9 @@
                     // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
                     // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
                     .setMoreKeysOf("i", "\u00EE", "\u00EF", "\u00EC", "\u00ED", "\u012F", "\u012B")
+                    // U+0103: "ă" LATIN SMALL LETTER A WITH BREVE
                     // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
                     // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
-                    // U+0103: "ă" LATIN SMALL LETTER A WITH BREVE
                     // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
                     // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
                     // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
@@ -69,7 +69,7 @@
                     // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
                     // U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
                     .setMoreKeysOf("a",
-                            "\u00E2", "\u00E3", "\u0103", "\u00E0", "\u00E1", "\u00E4", "\u00E6",
+                            "\u0103", "\u00E2", "\u00E3", "\u00E0", "\u00E1", "\u00E4", "\u00E6",
                             "\u00E5", "\u0101")
                     // U+0219: "ș" LATIN SMALL LETTER S WITH COMMA BELOW
                     // U+00DF: "ß" LATIN SMALL LETTER SHARP S
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsRussian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsRussian.java
index 9919207..75ef481 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsRussian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsRussian.java
@@ -19,9 +19,9 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.EastSlavic;
-import com.android.inputmethod.keyboard.layout.EastSlavic.EastSlavicCustomizer;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.customizer.EastSlavicCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
@@ -39,7 +39,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class RussianCustomizer extends EastSlavicCustomizer {
-        public RussianCustomizer(final Locale locale) { super(locale); }
+        RussianCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSerbian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSerbian.java
index 41f1690..9495706 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSerbian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSerbian.java
@@ -20,8 +20,8 @@
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.SouthSlavic;
-import com.android.inputmethod.keyboard.layout.SouthSlavic.SouthSlavicLayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.customizer.SouthSlavicLayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
@@ -39,7 +39,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class SerbianCustomizer extends SouthSlavicLayoutCustomizer {
-        public SerbianCustomizer(final Locale locale) { super(locale); }
+        SerbianCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSerbianLatin.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSerbianLatin.java
new file mode 100644
index 0000000..7490d30
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSerbianLatin.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.SerbianQwertz;
+import com.android.inputmethod.keyboard.layout.customizer.SerbianLatinCustomizer;
+
+import java.util.Locale;
+
+/**
+ * sr_ZZ: Serbian (Latin)/serbian_qwertz
+ */
+@SmallTest
+public final class TestsSerbianLatin extends LayoutTestsBase {
+    private static final Locale LOCALE = new Locale("sr", "ZZ");
+    private static final LayoutBase LAYOUT = new SerbianQwertz(new SerbianLatinCustomizer(LOCALE));
+
+    @Override
+    LayoutBase getLayout() { return LAYOUT; }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSerbianLatinQwerty.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSerbianLatinQwerty.java
new file mode 100644
index 0000000..6d9351c
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSerbianLatinQwerty.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.Qwerty;
+import com.android.inputmethod.keyboard.layout.customizer.SerbianLatinCustomizer;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+/**
+ * sr_ZZ: Serbian (Latin)/qwerty
+ */
+@SmallTest
+public final class TestsSerbianLatinQwerty extends LayoutTestsBase {
+    private static final Locale LOCALE = new Locale("sr", "ZZ");
+    private static final LayoutBase LAYOUT = new Qwerty(new SerbianLatinQwertyCustomizer(LOCALE));
+
+    @Override
+    LayoutBase getLayout() { return LAYOUT; }
+
+    private static class SerbianLatinQwertyCustomizer extends SerbianLatinCustomizer {
+        SerbianLatinQwertyCustomizer(final Locale locale) { super(locale); }
+
+        @Override
+        public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
+            return isPhone ? EMPTY_KEYS
+                    : joinKeys(EXCLAMATION_AND_QUESTION_MARKS, SHIFT_KEY);
+        }
+
+        @Override
+        protected void setSerbianKeys(final ExpectedKeyboardBuilder builder) {
+            // QWERTY layout doesn't have Serbian Latin Keys.
+        }
+
+        @Override
+        protected void setMoreKeysOfS(final ExpectedKeyboardBuilder builder) {
+            builder
+                    // U+0161: "š" LATIN SMALL LETTER S WITH CARON
+                    .setMoreKeysOf("s", "\u0161")
+                    .setAdditionalMoreKeysPositionOf("s", 2);
+        }
+
+        @Override
+        protected void setMoreKeysOfC(final ExpectedKeyboardBuilder builder) {
+            builder
+                    // U+010D: "č" LATIN SMALL LETTER C WITH CARON
+                    // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
+                    .setMoreKeysOf("c", "\u010D", "\u0107")
+                    .setAdditionalMoreKeysPositionOf("c", 3);
+        }
+
+        @Override
+        protected void setMoreKeysOfD(final ExpectedKeyboardBuilder builder) {
+            builder
+                    // U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
+                    .setMoreKeysOf("d", "\u0111")
+                    .setAdditionalMoreKeysPositionOf("d", 2);
+        }
+
+        @Override
+        protected void setMoreKeysOfZ(final ExpectedKeyboardBuilder builder) {
+            builder
+                    // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
+                    .setMoreKeysOf("z", "\u017E")
+                    .setAdditionalMoreKeysPositionOf("z", 2);
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSinhalaLK.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSinhalaLK.java
index 8b86135..c55c17c 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSinhalaLK.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSinhalaLK.java
@@ -20,7 +20,6 @@
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Sinhala;
-import com.android.inputmethod.keyboard.layout.Sinhala.SinhalaCustomizer;
 
 import java.util.Locale;
 
@@ -30,7 +29,7 @@
 @Suppress
 public final class TestsSinhalaLK extends LayoutTestsBase {
     private static final Locale LOCALE = new Locale("si", "LK");
-    private static final LayoutBase LAYOUT = new Sinhala(new SinhalaCustomizer(LOCALE));
+    private static final LayoutBase LAYOUT = new Sinhala(LOCALE);
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSlovak.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSlovak.java
index bdaf0ca..c944716 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSlovak.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSlovak.java
@@ -19,9 +19,9 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
 import com.android.inputmethod.keyboard.layout.Qwerty;
 import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.customizer.EuroCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
@@ -39,7 +39,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class SlovakCustomizer extends EuroCustomizer {
-        public SlovakCustomizer(final Locale locale) { super(locale); }
+        SlovakCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSlovenian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSlovenian.java
index cdb1bee..e49a27b 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSlovenian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSlovenian.java
@@ -19,9 +19,9 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
 import com.android.inputmethod.keyboard.layout.Qwerty;
 import com.android.inputmethod.keyboard.layout.Symbols;
+import com.android.inputmethod.keyboard.layout.customizer.EuroCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
@@ -39,7 +39,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class SlovenianCustomizer extends EuroCustomizer {
-        public SlovenianCustomizer(final Locale locale) { super(locale); }
+        SlovenianCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSpanish.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSpanish.java
index 12e8676..6c86931 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSpanish.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSpanish.java
@@ -19,8 +19,9 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
 import com.android.inputmethod.keyboard.layout.Spanish;
+import com.android.inputmethod.keyboard.layout.customizer.EuroCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.SpanishCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 
 import java.util.Locale;
@@ -39,7 +40,7 @@
     private static class SpanishESCustomizer extends SpanishCustomizer {
         private final EuroCustomizer mEuroCustomizer;
 
-        public SpanishESCustomizer(final Locale locale) {
+        SpanishESCustomizer(final Locale locale) {
             super(locale);
             mEuroCustomizer = new EuroCustomizer(locale);
         }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSpanish419.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSpanish419.java
index 75aad13..828f4c4 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSpanish419.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSpanish419.java
@@ -20,6 +20,7 @@
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Spanish;
+import com.android.inputmethod.keyboard.layout.customizer.SpanishCustomizer;
 
 import java.util.Locale;
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSpanishUS.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSpanishUS.java
index c3ac0a0..b5bfbe4 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSpanishUS.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSpanishUS.java
@@ -20,6 +20,7 @@
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Spanish;
+import com.android.inputmethod.keyboard.layout.customizer.SpanishCustomizer;
 
 import java.util.Locale;
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSplitLayoutQwertyEnglishUS.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSplitLayoutQwertyEnglishUS.java
new file mode 100644
index 0000000..c401d3d
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSplitLayoutQwertyEnglishUS.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.keyboard.KeyboardLayoutSet;
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.Qwerty;
+import com.android.inputmethod.keyboard.layout.customizer.EnglishCustomizer;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+
+import java.util.Locale;
+
+/**
+ * en_US: English (United States)/qwerty - split layout
+ */
+@SmallTest
+public class TestsSplitLayoutQwertyEnglishUS extends LayoutTestsBase {
+    private static final Locale LOCALE = new Locale("en", "US");
+    private static final LayoutBase LAYOUT = new Qwerty(new EnglishSplitCustomizer(LOCALE));
+
+    @Override
+    protected KeyboardLayoutSet createKeyboardLayoutSet(final InputMethodSubtype subtype,
+            final EditorInfo editorInfo, final boolean voiceInputKeyEnabled,
+            final boolean languageSwitchKeyEnabled, final boolean splitLayoutEnabled) {
+        return super.createKeyboardLayoutSet(subtype, editorInfo, voiceInputKeyEnabled,
+            languageSwitchKeyEnabled, true /* splitLayoutEnabled */);
+    }
+
+    @Override
+    LayoutBase getLayout() { return LAYOUT; }
+
+    private static class EnglishSplitCustomizer extends EnglishCustomizer {
+        EnglishSplitCustomizer(Locale locale) { super(locale); }
+
+        @Override
+        public ExpectedKey[] getSpaceKeys(final boolean isPhone) {
+            if (isPhone) {
+                return super.getSpaceKeys(isPhone);
+            }
+            return joinKeys(LANGUAGE_SWITCH_KEY, SPACE_KEY, SPACE_KEY);
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSwahili.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSwahili.java
index 13b9741..a8ab966 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSwahili.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSwahili.java
@@ -19,8 +19,8 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.Qwerty;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
 import java.util.Locale;
@@ -37,7 +37,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class SwahiliCustomizer extends LayoutCustomizer {
-        public SwahiliCustomizer(final Locale locale) { super(locale); }
+        SwahiliCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSwedish.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSwedish.java
index 9b58914..061001d 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSwedish.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSwedish.java
@@ -19,11 +19,8 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
 import com.android.inputmethod.keyboard.layout.Nordic;
-import com.android.inputmethod.keyboard.layout.Symbols;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
-import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+import com.android.inputmethod.keyboard.layout.customizer.SwedishCustomizer;
 
 import java.util.Locale;
 
@@ -37,88 +34,4 @@
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
-
-    private static class SwedishCustomizer extends EuroCustomizer {
-        public SwedishCustomizer(final Locale locale) { super(locale); }
-
-        @Override
-        public ExpectedKey[] getDoubleAngleQuoteKeys() { return Symbols.DOUBLE_ANGLE_QUOTES_RL; }
-
-        @Override
-        public ExpectedKey[] getSingleAngleQuoteKeys() { return Symbols.SINGLE_ANGLE_QUOTES_RL; }
-
-        @Override
-        public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
-            return builder
-                    // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
-                    // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
-                    // U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
-                    // U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
-                    // U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
-                    .setMoreKeysOf("e", "\u00E9", "\u00E8", "\u00EA", "\u00EB", "\u0119")
-                    // U+0159: "ř" LATIN SMALL LETTER R WITH CARON
-                    .setMoreKeysOf("r", "\u0159")
-                    // U+0165: "ť" LATIN SMALL LETTER T WITH CARON
-                    // U+00FE: "þ" LATIN SMALL LETTER THORN
-                    .setMoreKeysOf("t", "\u0165", "\u00FE")
-                    // U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
-                    // U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
-                    .setMoreKeysOf("y", "\u00FD", "\u00FF")
-                    // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-                    // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-                    // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-                    // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-                    // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-                    .setMoreKeysOf("u", "\u00FC", "\u00FA", "\u00F9", "\u00FB", "\u016B")
-                    // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
-                    // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
-                    // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
-                    // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
-                    .setMoreKeysOf("i", "\u00ED", "\u00EC", "\u00EE", "\u00EF")
-                    // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
-                    // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
-                    // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
-                    // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
-                    // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
-                    .setMoreKeysOf("o", "\u00F3", "\u00F2", "\u00F4", "\u00F5", "\u014D")
-                    // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
-                    .replaceKeyOfLabel(Nordic.ROW1_11, "\u00E5")
-                    // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
-                    // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
-                    // U+0153: "œ" LATIN SMALL LIGATURE OE
-                    .replaceKeyOfLabel(Nordic.ROW2_10,
-                            key("\u00F6", joinMoreKeys("\u00F8", "\u0153")))
-                    // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
-                    // U+00E6: "æ" LATIN SMALL LETTER AE
-                    .replaceKeyOfLabel(Nordic.ROW2_11, key("\u00E4", moreKey("\u00E6")))
-                    // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
-                    // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
-                    // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
-                    // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
-                    // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
-                    .setMoreKeysOf("a", "\u00E1", "\u00E0", "\u00E2", "\u0105", "\u00E3")
-                    // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
-                    // U+0161: "š" LATIN SMALL LETTER S WITH CARON
-                    // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
-                    // U+00DF: "ß" LATIN SMALL LETTER SHARP S
-                    .setMoreKeysOf("s", "\u015B", "\u0161", "\u015F", "\u00DF")
-                    // U+00F0: "ð" LATIN SMALL LETTER ETH
-                    // U+010F: "ď" LATIN SMALL LETTER D WITH CARON
-                    .setMoreKeysOf("d", "\u00F0", "\u010F")
-                    // U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
-                    .setMoreKeysOf("l", "\u0142")
-                    // U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
-                    // U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
-                    // U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
-                    .setMoreKeysOf("z", "\u017A", "\u017E", "\u017C")
-                    // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
-                    // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
-                    // U+010D: "č" LATIN SMALL LETTER C WITH CARON
-                    .setMoreKeysOf("c", "\u00E7", "\u0107", "\u010D")
-                    // U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
-                    // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
-                    // U+0148: "ň" LATIN SMALL LETTER N WITH CARON
-                    .setMoreKeysOf("n", "\u0144", "\u00F1", "\u0148");
-        }
-    }
 }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSwedishPcQwerty.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSwedishPcQwerty.java
new file mode 100644
index 0000000..dc3d831
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsSwedishPcQwerty.java
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.PcQwerty;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.PcQwertyCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.SwedishCustomizer;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+/**
+ * sv: Swedish/pcqwerty
+ */
+@SmallTest
+public final class TestsSwedishPcQwerty extends LayoutTestsBase {
+    private static final Locale LOCALE = new Locale("sv");
+    private static final LayoutBase LAYOUT = new PcQwerty(new SwedishPcQwertyCustomizer(LOCALE));
+
+    @Override
+    LayoutBase getLayout() { return LAYOUT; }
+
+    private static class SwedishPcQwertyCustomizer extends SwedishCustomizer {
+        private final LayoutCustomizer mPcQwertyCustomizer;
+
+        SwedishPcQwertyCustomizer(final Locale locale) {
+            super(locale);
+            mPcQwertyCustomizer = new PcQwertyCustomizer(locale);
+        }
+
+        @Override
+        public ExpectedKey getCurrencyKey() {
+            return mPcQwertyCustomizer.getCurrencyKey();
+        }
+
+        @Override
+        public ExpectedKey[] getOtherCurrencyKeys() {
+            return mPcQwertyCustomizer.getOtherCurrencyKeys();
+        }
+
+        @Override
+        public int getNumberOfRows() {
+            return mPcQwertyCustomizer.getNumberOfRows();
+        }
+
+        @Override
+        public ExpectedKey[] getLeftShiftKeys(final boolean isPhone) {
+            return mPcQwertyCustomizer.getLeftShiftKeys(isPhone);
+        }
+
+        @Override
+        public ExpectedKey[] getRightShiftKeys(final boolean isPhone) {
+            return mPcQwertyCustomizer.getRightShiftKeys(isPhone);
+        }
+
+        @Override
+        public ExpectedKey[] getKeysLeftToSpacebar(final boolean isPhone) {
+            return mPcQwertyCustomizer.getKeysLeftToSpacebar(isPhone);
+        }
+
+        @Override
+        public ExpectedKey[] getKeysRightToSpacebar(final boolean isPhone) {
+            return mPcQwertyCustomizer.getKeysRightToSpacebar(isPhone);
+        }
+
+        @Override
+        protected void setNordicKeys(final ExpectedKeyboardBuilder builder) {
+            // PC QWERTY layout doesn't have Nordic keys.
+        }
+
+        @Override
+        protected void setMoreKeysOfA(final ExpectedKeyboardBuilder builder) {
+            builder
+                    // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+                    // U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+                    // U+00E6: "æ" LATIN SMALL LETTER AE
+                    // U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+                    // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+                    // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+                    // U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
+                    // U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+                    .setMoreKeysOf("a", "\u00E4", "\u00E5", "\u00E6", "\u00E1", "\u00E0", "\u00E2",
+                            "\u0105", "\u00E3");
+        }
+
+        @Override
+        protected void setMoreKeysOfO(final ExpectedKeyboardBuilder builder) {
+            builder
+                    // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+                    // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+                    // U+0153: "œ" LATIN SMALL LIGATURE OE
+                    // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+                    // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+                    // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+                    // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+                    // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+                    .setMoreKeysOf("o", "\u00F6", "\u00F8", "\u0153", "\u00F3", "\u00F2", "\u00F4",
+                            "\u00F5", "\u014D");
+        }
+
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTagalog.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTagalog.java
index 38d5364..ecef2d7 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTagalog.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTagalog.java
@@ -20,6 +20,7 @@
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Spanish;
+import com.android.inputmethod.keyboard.layout.customizer.SpanishCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 
 import java.util.Locale;
@@ -36,15 +37,11 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class TagalogCustomizer extends SpanishCustomizer {
-
-        public TagalogCustomizer(final Locale locale) {
-            super(locale);
-        }
+        TagalogCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey[] getPunctuationMoreKeys(final boolean isPhone) {
-            return isPhone ? LayoutBase.PHONE_PUNCTUATION_MORE_KEYS
-                    : LayoutBase.TABLET_PUNCTUATION_MORE_KEYS;
+            return isPhone ? PHONE_PUNCTUATION_MORE_KEYS : TABLET_PUNCTUATION_MORE_KEYS;
         }
     }
 }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTamilIN.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTamilIN.java
index 31df53c..3297d39 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTamilIN.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTamilIN.java
@@ -22,7 +22,7 @@
 import com.android.inputmethod.keyboard.layout.Symbols;
 import com.android.inputmethod.keyboard.layout.SymbolsShifted;
 import com.android.inputmethod.keyboard.layout.Tamil;
-import com.android.inputmethod.keyboard.layout.Tamil.TamilCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.TamilCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 
 import java.util.Locale;
@@ -39,7 +39,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class TamilINCustomizer extends TamilCustomizer {
-        public TamilINCustomizer(final Locale locale) { super(locale); }
+        TamilINCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey getCurrencyKey() { return CURRENCY_RUPEE; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTamilLK.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTamilLK.java
index 65ec0b0..72872ba 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTamilLK.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTamilLK.java
@@ -22,7 +22,7 @@
 import com.android.inputmethod.keyboard.layout.Symbols;
 import com.android.inputmethod.keyboard.layout.SymbolsShifted;
 import com.android.inputmethod.keyboard.layout.Tamil;
-import com.android.inputmethod.keyboard.layout.Tamil.TamilCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.TamilCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 
 import java.util.Locale;
@@ -39,7 +39,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class TamilLKCustomizer extends TamilCustomizer {
-        public TamilLKCustomizer(final Locale locale) { super(locale); }
+        TamilLKCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey getCurrencyKey() { return CURRENCY_RUPEE; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTamilSG.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTamilSG.java
index ade7aba..a7a041b 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTamilSG.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTamilSG.java
@@ -20,7 +20,7 @@
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Tamil;
-import com.android.inputmethod.keyboard.layout.Tamil.TamilCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.TamilCustomizer;
 
 import java.util.Locale;
 
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTeluguIN.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTeluguIN.java
index 04996d9..2b202a9 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTeluguIN.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTeluguIN.java
@@ -20,7 +20,6 @@
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Telugu;
-import com.android.inputmethod.keyboard.layout.Telugu.TeluguCustomizer;
 
 import java.util.Locale;
 
@@ -30,7 +29,7 @@
 @SmallTest
 public final class TestsTeluguIN extends LayoutTestsBase {
     private static final Locale LOCALE = new Locale("te", "IN");
-    private static final LayoutBase LAYOUT = new Telugu(new TeluguCustomizer(LOCALE));
+    private static final LayoutBase LAYOUT = new Telugu(LOCALE);
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsThai.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsThai.java
index 3c87272..2c1a29e 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsThai.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsThai.java
@@ -20,7 +20,6 @@
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Thai;
-import com.android.inputmethod.keyboard.layout.Thai.ThaiCustomizer;
 
 import java.util.Locale;
 
@@ -30,7 +29,7 @@
 @SmallTest
 public final class TestsThai extends LayoutTestsBase {
     private static final Locale LOCALE = new Locale("th");
-    private static final LayoutBase LAYOUT = new Thai(new ThaiCustomizer(LOCALE));
+    private static final LayoutBase LAYOUT = new Thai(LOCALE);
 
     @Override
     LayoutBase getLayout() { return LAYOUT; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTurkish.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTurkish.java
index b35f885..95f86e4 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTurkish.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsTurkish.java
@@ -19,8 +19,9 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
 import com.android.inputmethod.keyboard.layout.Qwerty;
+import com.android.inputmethod.keyboard.layout.customizer.EuroCustomizer;
+import com.android.inputmethod.keyboard.layout.customizer.TurkicCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
 import java.util.Locale;
@@ -37,50 +38,16 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class TurkishCustomizer extends EuroCustomizer {
-        public TurkishCustomizer(final Locale locale) { super(locale); }
+        private final TurkicCustomizer mTurkicCustomizer;
+
+        TurkishCustomizer(final Locale locale) {
+            super(locale);
+            mTurkicCustomizer = new TurkicCustomizer(locale);
+        }
 
         @Override
         public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
-            return builder
-                    // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
-                    // U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
-                    // U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
-                    // U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
-                    // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-                    .setMoreKeysOf("u", "\u00FC", "\u00FB", "\u00F9", "\u00FA", "\u016B")
-                    // U+0131: "ı" LATIN SMALL LETTER DOTLESS I
-                    // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
-                    // U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
-                    // U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
-                    // U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
-                    // U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
-                    // U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
-                    .setMoreKeysOf("i",
-                            "\u0131", "\u00EE", "\u00EF", "\u00EC", "\u00ED", "\u012F", "\u012B")
-                    // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
-                    // U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
-                    // U+0153: "œ" LATIN SMALL LIGATURE OE
-                    // U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
-                    // U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
-                    // U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
-                    // U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
-                    // U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
-                    .setMoreKeysOf("o",
-                            "\u00F6", "\u00F4", "\u0153", "\u00F2", "\u00F3", "\u00F5", "\u00F8",
-                            "\u014D")
-                    // U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
-                    .setMoreKeysOf("a", "\u00E2")
-                    // U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
-                    // U+00DF: "ß" LATIN SMALL LETTER SHARP S
-                    // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
-                    // U+0161: "š" LATIN SMALL LETTER S WITH CARON
-                    .setMoreKeysOf("s", "\u015F", "\u00DF", "\u015B", "\u0161")
-                    // U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
-                    .setMoreKeysOf("g", "\u011F")
-                    // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
-                    // U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
-                    // U+010D: "č" LATIN SMALL LETTER C WITH CARON
-                    .setMoreKeysOf("c", "\u00E7", "\u0107", "\u010D");
+            return mTurkicCustomizer.setAccentedLetters(builder);
         }
     }
 }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsUkrainian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsUkrainian.java
index a6bcacc..da93d6c 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsUkrainian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsUkrainian.java
@@ -19,10 +19,10 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.EastSlavic;
-import com.android.inputmethod.keyboard.layout.EastSlavic.EastSlavicCustomizer;
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Symbols;
 import com.android.inputmethod.keyboard.layout.SymbolsShifted;
+import com.android.inputmethod.keyboard.layout.customizer.EastSlavicCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
@@ -40,7 +40,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class UkrainianCustomizer extends EastSlavicCustomizer {
-        public UkrainianCustomizer(final Locale locale) { super(locale); }
+        UkrainianCustomizer(final Locale locale) { super(locale); }
 
         @Override
         public ExpectedKey getCurrencyKey() { return CURRENCY_HRYVNIA; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsUzbek.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsUzbek.java
new file mode 100644
index 0000000..fd12a6a
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsUzbek.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.Uzbek;
+import com.android.inputmethod.keyboard.layout.customizer.UzbekCustomizer;
+
+import java.util.Locale;
+
+/**
+ * uz_UZ: Uzbek (Uzbekistan)/uzbek
+ */
+@SmallTest
+public final class TestsUzbek extends LayoutTestsBase {
+    private static final Locale LOCALE = new Locale("uz", "UZ");
+    private static final LayoutBase LAYOUT = new Uzbek(new UzbekCustomizer(LOCALE));
+
+    @Override
+    LayoutBase getLayout() { return LAYOUT; }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsUzbekQwerty.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsUzbekQwerty.java
new file mode 100644
index 0000000..4c33a8c
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsUzbekQwerty.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.Qwerty;
+import com.android.inputmethod.keyboard.layout.customizer.UzbekCustomizer;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+
+import java.util.Locale;
+
+/**
+ * uz_UZ: Uzbek (Uzbekistan)/qwerty
+ */
+@SmallTest
+public final class TestsUzbekQwerty extends LayoutTestsBase {
+    private static final Locale LOCALE = new Locale("uz", "UZ");
+    private static final LayoutBase LAYOUT = new Qwerty(new UzbekQwertyCustomizer(LOCALE));
+
+    @Override
+    LayoutBase getLayout() { return LAYOUT; }
+
+    private static class UzbekQwertyCustomizer extends UzbekCustomizer {
+        UzbekQwertyCustomizer(final Locale locale) { super(locale); }
+
+        @Override
+        protected void setUzbekKeys(final ExpectedKeyboardBuilder builder) {
+            // QWERTY layout doesn't have Uzebk keys.
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsVietnamese.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsVietnamese.java
index 83d86ac..356b042 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsVietnamese.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsVietnamese.java
@@ -19,10 +19,10 @@
 import android.test.suitebuilder.annotation.SmallTest;
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
-import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.Qwerty;
 import com.android.inputmethod.keyboard.layout.Symbols;
 import com.android.inputmethod.keyboard.layout.SymbolsShifted;
+import com.android.inputmethod.keyboard.layout.customizer.LayoutCustomizer;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
 import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
 
@@ -40,9 +40,7 @@
     LayoutBase getLayout() { return LAYOUT; }
 
     private static class VietnameseCustomizer extends LayoutCustomizer {
-        public VietnameseCustomizer(final Locale locale) {
-            super(locale);
-        }
+        VietnameseCustomizer(final Locale locale) { super(locale);  }
 
         @Override
         public ExpectedKey getCurrencyKey() { return CURRENCY_DONG; }
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsZulu.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsZulu.java
index e048e92..abf3cad 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsZulu.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsZulu.java
@@ -20,6 +20,7 @@
 
 import com.android.inputmethod.keyboard.layout.LayoutBase;
 import com.android.inputmethod.keyboard.layout.Qwerty;
+import com.android.inputmethod.keyboard.layout.customizer.EnglishCustomizer;
 
 import java.util.Locale;
 
diff --git a/tests/src/com/android/inputmethod/latin/BinaryDictionaryDecayingTests.java b/tests/src/com/android/inputmethod/latin/BinaryDictionaryDecayingTests.java
deleted file mode 100644
index ae18426..0000000
--- a/tests/src/com/android/inputmethod/latin/BinaryDictionaryDecayingTests.java
+++ /dev/null
@@ -1,692 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin;
-
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.util.Pair;
-
-import com.android.inputmethod.latin.PrevWordsInfo.WordInfo;
-import com.android.inputmethod.latin.makedict.BinaryDictIOUtils;
-import com.android.inputmethod.latin.makedict.CodePointUtils;
-import com.android.inputmethod.latin.makedict.DictDecoder;
-import com.android.inputmethod.latin.makedict.DictionaryHeader;
-import com.android.inputmethod.latin.makedict.FormatSpec;
-import com.android.inputmethod.latin.makedict.FusionDictionary;
-import com.android.inputmethod.latin.makedict.FusionDictionary.PtNode;
-import com.android.inputmethod.latin.makedict.UnsupportedFormatException;
-import com.android.inputmethod.latin.utils.BinaryDictionaryUtils;
-import com.android.inputmethod.latin.utils.FileUtils;
-import com.android.inputmethod.latin.utils.LocaleUtils;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Random;
-import java.util.concurrent.TimeUnit;
-
-@LargeTest
-public class BinaryDictionaryDecayingTests extends AndroidTestCase {
-    private static final String TEST_DICT_FILE_EXTENSION = ".testDict";
-    private static final String TEST_LOCALE = "test";
-    private static final int DUMMY_PROBABILITY = 0;
-    private static final int[] DICT_FORMAT_VERSIONS =
-            new int[] { FormatSpec.VERSION4, FormatSpec.VERSION4_DEV };
-
-    private int mCurrentTime = 0;
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mCurrentTime = 0;
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        stopTestModeInNativeCode();
-        super.tearDown();
-    }
-
-    private static boolean supportsBeginningOfSentence(final int formatVersion) {
-        return formatVersion > FormatSpec.VERSION401;
-    }
-
-    private void addUnigramWord(final BinaryDictionary binaryDictionary, final String word,
-            final int probability) {
-        binaryDictionary.addUnigramEntry(word, probability, "" /* shortcutTarget */,
-                BinaryDictionary.NOT_A_PROBABILITY /* shortcutProbability */,
-                false /* isBeginningOfSentence */, false /* isNotAWord */,
-                false /* isBlacklisted */, mCurrentTime /* timestamp */);
-    }
-
-    private void addBigramWords(final BinaryDictionary binaryDictionary, final String word0,
-            final String word1, final int probability) {
-        binaryDictionary.addNgramEntry(new PrevWordsInfo(new WordInfo(word0)), word1, probability,
-                mCurrentTime /* timestamp */);
-    }
-
-    private static boolean isValidBigram(final BinaryDictionary binaryDictionary,
-            final String word0, final String word1) {
-        return binaryDictionary.isValidNgram(new PrevWordsInfo(new WordInfo(word0)), word1);
-    }
-
-    private void forcePassingShortTime(final BinaryDictionary binaryDictionary) {
-        // 30 days.
-        final int timeToElapse = (int)TimeUnit.SECONDS.convert(30, TimeUnit.DAYS);
-        mCurrentTime += timeToElapse;
-        setCurrentTimeForTestMode(mCurrentTime);
-        binaryDictionary.flushWithGC();
-    }
-
-    private void forcePassingLongTime(final BinaryDictionary binaryDictionary) {
-        // 365 days.
-        final int timeToElapse = (int)TimeUnit.SECONDS.convert(365, TimeUnit.DAYS);
-        mCurrentTime += timeToElapse;
-        setCurrentTimeForTestMode(mCurrentTime);
-        binaryDictionary.flushWithGC();
-    }
-
-    private File createEmptyDictionaryAndGetFile(final String dictId,
-            final int formatVersion) throws IOException {
-        if (formatVersion == FormatSpec.VERSION4
-                || formatVersion == FormatSpec.VERSION4_ONLY_FOR_TESTING
-                || formatVersion == FormatSpec.VERSION4_DEV) {
-            return createEmptyVer4DictionaryAndGetFile(dictId, formatVersion);
-        } else {
-            throw new IOException("Dictionary format version " + formatVersion
-                    + " is not supported.");
-        }
-    }
-
-    private File createEmptyVer4DictionaryAndGetFile(final String dictId, final int formatVersion)
-            throws IOException {
-        final File file = File.createTempFile(dictId, TEST_DICT_FILE_EXTENSION,
-                getContext().getCacheDir());
-        FileUtils.deleteRecursively(file);
-        Map<String, String> attributeMap = new HashMap<>();
-        attributeMap.put(DictionaryHeader.DICTIONARY_ID_KEY, dictId);
-        attributeMap.put(DictionaryHeader.DICTIONARY_VERSION_KEY,
-                String.valueOf(TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis())));
-        attributeMap.put(DictionaryHeader.USES_FORGETTING_CURVE_KEY,
-                DictionaryHeader.ATTRIBUTE_VALUE_TRUE);
-        attributeMap.put(DictionaryHeader.HAS_HISTORICAL_INFO_KEY,
-                DictionaryHeader.ATTRIBUTE_VALUE_TRUE);
-        if (BinaryDictionaryUtils.createEmptyDictFile(file.getAbsolutePath(), formatVersion,
-                LocaleUtils.constructLocaleFromString(TEST_LOCALE), attributeMap)) {
-            return file;
-        } else {
-            throw new IOException("Empty dictionary " + file.getAbsolutePath()
-                    + " cannot be created. Foramt version: " + formatVersion);
-        }
-    }
-
-    private static int setCurrentTimeForTestMode(final int currentTime) {
-        return BinaryDictionaryUtils.setCurrentTimeForTest(currentTime);
-    }
-
-    private static int stopTestModeInNativeCode() {
-        return BinaryDictionaryUtils.setCurrentTimeForTest(-1);
-    }
-
-    public void testReadDictInJavaSide() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testReadDictInJavaSide(formatVersion);
-        }
-    }
-
-    private void testReadDictInJavaSide(final int formatVersion) {
-        setCurrentTimeForTestMode(mCurrentTime);
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
-        addUnigramWord(binaryDictionary, "a", DUMMY_PROBABILITY);
-        addUnigramWord(binaryDictionary, "ab", DUMMY_PROBABILITY);
-        addUnigramWord(binaryDictionary, "aaa", DUMMY_PROBABILITY);
-        addBigramWords(binaryDictionary, "a", "aaa", DUMMY_PROBABILITY);
-        binaryDictionary.flushWithGC();
-        binaryDictionary.close();
-
-        final DictDecoder dictDecoder =
-                BinaryDictIOUtils.getDictDecoder(dictFile, 0, dictFile.length());
-        try {
-            final FusionDictionary dict =
-                    dictDecoder.readDictionaryBinary(false /* deleteDictIfBroken */);
-            PtNode ptNode = FusionDictionary.findWordInTree(dict.mRootNodeArray, "a");
-            assertNotNull(ptNode);
-            assertTrue(ptNode.isTerminal());
-            assertNotNull(ptNode.getBigram("aaa"));
-            ptNode = FusionDictionary.findWordInTree(dict.mRootNodeArray, "ab");
-            assertNotNull(ptNode);
-            assertTrue(ptNode.isTerminal());
-            ptNode = FusionDictionary.findWordInTree(dict.mRootNodeArray, "aaa");
-            assertNotNull(ptNode);
-            assertTrue(ptNode.isTerminal());
-        } catch (IOException e) {
-            fail("IOException while reading dictionary: " + e);
-        } catch (UnsupportedFormatException e) {
-            fail("Unsupported format: " + e);
-        }
-        dictFile.delete();
-    }
-
-    public void testControlCurrentTime() {
-        final int TEST_COUNT = 1000;
-        final long seed = System.currentTimeMillis();
-        final Random random = new Random(seed);
-        final int startTime = stopTestModeInNativeCode();
-        for (int i = 0; i < TEST_COUNT; i++) {
-            final int currentTime = random.nextInt(Integer.MAX_VALUE);
-            final int currentTimeInNativeCode = setCurrentTimeForTestMode(currentTime);
-            assertEquals(currentTime, currentTimeInNativeCode);
-        }
-        final int endTime = stopTestModeInNativeCode();
-        final int MAX_ALLOWED_ELAPSED_TIME = 10;
-        assertTrue(startTime <= endTime && endTime <= startTime + MAX_ALLOWED_ELAPSED_TIME);
-    }
-
-    public void testAddValidAndInvalidWords() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testAddValidAndInvalidWords(formatVersion);
-        }
-    }
-
-    private void testAddValidAndInvalidWords(final int formatVersion) {
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
-
-        addUnigramWord(binaryDictionary, "a", Dictionary.NOT_A_PROBABILITY);
-        assertFalse(binaryDictionary.isValidWord("a"));
-        addUnigramWord(binaryDictionary, "a", Dictionary.NOT_A_PROBABILITY);
-        addUnigramWord(binaryDictionary, "a", Dictionary.NOT_A_PROBABILITY);
-        assertTrue(binaryDictionary.isValidWord("a"));
-
-        addUnigramWord(binaryDictionary, "b", DUMMY_PROBABILITY);
-        assertTrue(binaryDictionary.isValidWord("b"));
-
-        addBigramWords(binaryDictionary, "a", "b", Dictionary.NOT_A_PROBABILITY);
-        assertFalse(isValidBigram(binaryDictionary, "a", "b"));
-        addBigramWords(binaryDictionary, "a", "b", Dictionary.NOT_A_PROBABILITY);
-        assertTrue(isValidBigram(binaryDictionary, "a", "b"));
-
-        addUnigramWord(binaryDictionary, "c", DUMMY_PROBABILITY);
-        addBigramWords(binaryDictionary, "a", "c", DUMMY_PROBABILITY);
-        assertTrue(isValidBigram(binaryDictionary, "a", "c"));
-
-        // Add bigrams of not valid unigrams.
-        addBigramWords(binaryDictionary, "x", "y", Dictionary.NOT_A_PROBABILITY);
-        assertFalse(isValidBigram(binaryDictionary, "x", "y"));
-        addBigramWords(binaryDictionary, "x", "y", DUMMY_PROBABILITY);
-        assertFalse(isValidBigram(binaryDictionary, "x", "y"));
-
-        binaryDictionary.close();
-        dictFile.delete();
-    }
-
-    public void testDecayingProbability() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testDecayingProbability(formatVersion);
-        }
-    }
-
-    private void testDecayingProbability(final int formatVersion) {
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
-
-        addUnigramWord(binaryDictionary, "a", DUMMY_PROBABILITY);
-        assertTrue(binaryDictionary.isValidWord("a"));
-        forcePassingShortTime(binaryDictionary);
-        assertFalse(binaryDictionary.isValidWord("a"));
-
-        addUnigramWord(binaryDictionary, "a", DUMMY_PROBABILITY);
-        addUnigramWord(binaryDictionary, "a", DUMMY_PROBABILITY);
-        addUnigramWord(binaryDictionary, "a", DUMMY_PROBABILITY);
-        assertTrue(binaryDictionary.isValidWord("a"));
-        forcePassingShortTime(binaryDictionary);
-        assertTrue(binaryDictionary.isValidWord("a"));
-        forcePassingLongTime(binaryDictionary);
-        assertFalse(binaryDictionary.isValidWord("a"));
-
-        addUnigramWord(binaryDictionary, "a", DUMMY_PROBABILITY);
-        addUnigramWord(binaryDictionary, "b", DUMMY_PROBABILITY);
-        addBigramWords(binaryDictionary, "a", "b", DUMMY_PROBABILITY);
-        assertTrue(isValidBigram(binaryDictionary, "a", "b"));
-        forcePassingShortTime(binaryDictionary);
-        assertFalse(isValidBigram(binaryDictionary, "a", "b"));
-
-        addUnigramWord(binaryDictionary, "a", DUMMY_PROBABILITY);
-        addUnigramWord(binaryDictionary, "b", DUMMY_PROBABILITY);
-        addBigramWords(binaryDictionary, "a", "b", DUMMY_PROBABILITY);
-        addUnigramWord(binaryDictionary, "a", DUMMY_PROBABILITY);
-        addUnigramWord(binaryDictionary, "b", DUMMY_PROBABILITY);
-        addBigramWords(binaryDictionary, "a", "b", DUMMY_PROBABILITY);
-        addUnigramWord(binaryDictionary, "a", DUMMY_PROBABILITY);
-        addUnigramWord(binaryDictionary, "b", DUMMY_PROBABILITY);
-        addBigramWords(binaryDictionary, "a", "b", DUMMY_PROBABILITY);
-        assertTrue(isValidBigram(binaryDictionary, "a", "b"));
-        forcePassingShortTime(binaryDictionary);
-        assertTrue(isValidBigram(binaryDictionary, "a", "b"));
-        forcePassingLongTime(binaryDictionary);
-        assertFalse(isValidBigram(binaryDictionary, "a", "b"));
-
-        binaryDictionary.close();
-        dictFile.delete();
-    }
-
-    public void testAddManyUnigramsToDecayingDict() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testAddManyUnigramsToDecayingDict(formatVersion);
-        }
-    }
-
-    private void testAddManyUnigramsToDecayingDict(final int formatVersion) {
-        final int unigramCount = 30000;
-        final int unigramTypedCount = 100000;
-        final int codePointSetSize = 50;
-        final long seed = System.currentTimeMillis();
-        final Random random = new Random(seed);
-
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
-        setCurrentTimeForTestMode(mCurrentTime);
-
-        final int[] codePointSet = CodePointUtils.generateCodePointSet(codePointSetSize, random);
-        final ArrayList<String> words = new ArrayList<>();
-
-        for (int i = 0; i < unigramCount; i++) {
-            final String word = CodePointUtils.generateWord(random, codePointSet);
-            words.add(word);
-        }
-
-        final int maxUnigramCount = Integer.parseInt(
-                binaryDictionary.getPropertyForTest(BinaryDictionary.MAX_UNIGRAM_COUNT_QUERY));
-        for (int i = 0; i < unigramTypedCount; i++) {
-            final String word = words.get(random.nextInt(words.size()));
-            addUnigramWord(binaryDictionary, word, DUMMY_PROBABILITY);
-
-            if (binaryDictionary.needsToRunGC(true /* mindsBlockByGC */)) {
-                final int unigramCountBeforeGC =
-                        Integer.parseInt(binaryDictionary.getPropertyForTest(
-                                BinaryDictionary.UNIGRAM_COUNT_QUERY));
-                while (binaryDictionary.needsToRunGC(true /* mindsBlockByGC */)) {
-                    forcePassingShortTime(binaryDictionary);
-                }
-                final int unigramCountAfterGC =
-                        Integer.parseInt(binaryDictionary.getPropertyForTest(
-                                BinaryDictionary.UNIGRAM_COUNT_QUERY));
-                assertTrue(unigramCountBeforeGC > unigramCountAfterGC);
-            }
-        }
-
-        assertTrue(Integer.parseInt(binaryDictionary.getPropertyForTest(
-                BinaryDictionary.UNIGRAM_COUNT_QUERY)) > 0);
-        assertTrue(Integer.parseInt(binaryDictionary.getPropertyForTest(
-                BinaryDictionary.UNIGRAM_COUNT_QUERY)) <= maxUnigramCount);
-        forcePassingLongTime(binaryDictionary);
-        assertEquals(0, Integer.parseInt(binaryDictionary.getPropertyForTest(
-                BinaryDictionary.UNIGRAM_COUNT_QUERY)));
-    }
-
-    public void testOverflowUnigrams() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testOverflowUnigrams(formatVersion);
-        }
-    }
-
-    private void testOverflowUnigrams(final int formatVersion) {
-        final int unigramCount = 20000;
-        final int eachUnigramTypedCount = 2;
-        final int strongUnigramTypedCount = 20;
-        final int weakUnigramTypedCount = 1;
-        final int codePointSetSize = 50;
-        final long seed = System.currentTimeMillis();
-        final Random random = new Random(seed);
-
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
-        setCurrentTimeForTestMode(mCurrentTime);
-        final int[] codePointSet = CodePointUtils.generateCodePointSet(codePointSetSize, random);
-
-        final String strong = "strong";
-        final String weak = "weak";
-        for (int j = 0; j < strongUnigramTypedCount; j++) {
-            addUnigramWord(binaryDictionary, strong, DUMMY_PROBABILITY);
-        }
-        for (int j = 0; j < weakUnigramTypedCount; j++) {
-            addUnigramWord(binaryDictionary, weak, DUMMY_PROBABILITY);
-        }
-        assertTrue(binaryDictionary.isValidWord(strong));
-        assertTrue(binaryDictionary.isValidWord(weak));
-
-        for (int i = 0; i < unigramCount; i++) {
-            final String word = CodePointUtils.generateWord(random, codePointSet);
-            for (int j = 0; j < eachUnigramTypedCount; j++) {
-                addUnigramWord(binaryDictionary, word, DUMMY_PROBABILITY);
-            }
-            if (binaryDictionary.needsToRunGC(true /* mindsBlockByGC */)) {
-                final int unigramCountBeforeGC =
-                        Integer.parseInt(binaryDictionary.getPropertyForTest(
-                                BinaryDictionary.UNIGRAM_COUNT_QUERY));
-                assertTrue(binaryDictionary.isValidWord(strong));
-                assertTrue(binaryDictionary.isValidWord(weak));
-                binaryDictionary.flushWithGC();
-                final int unigramCountAfterGC =
-                        Integer.parseInt(binaryDictionary.getPropertyForTest(
-                                BinaryDictionary.UNIGRAM_COUNT_QUERY));
-                assertTrue(unigramCountBeforeGC > unigramCountAfterGC);
-                assertFalse(binaryDictionary.isValidWord(weak));
-                assertTrue(binaryDictionary.isValidWord(strong));
-                break;
-            }
-        }
-    }
-
-    public void testAddManyBigramsToDecayingDict() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testAddManyBigramsToDecayingDict(formatVersion);
-        }
-    }
-
-    private void testAddManyBigramsToDecayingDict(final int formatVersion) {
-        final int unigramCount = 5000;
-        final int bigramCount = 30000;
-        final int bigramTypedCount = 100000;
-        final int codePointSetSize = 50;
-        final long seed = System.currentTimeMillis();
-        final Random random = new Random(seed);
-
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
-        setCurrentTimeForTestMode(mCurrentTime);
-
-        final int[] codePointSet = CodePointUtils.generateCodePointSet(codePointSetSize, random);
-        final ArrayList<String> words = new ArrayList<>();
-        final ArrayList<Pair<String, String>> bigrams = new ArrayList<>();
-
-        for (int i = 0; i < unigramCount; ++i) {
-            final String word = CodePointUtils.generateWord(random, codePointSet);
-            words.add(word);
-        }
-        for (int i = 0; i < bigramCount; ++i) {
-            final int word0Index = random.nextInt(words.size());
-            int word1Index = random.nextInt(words.size() - 1);
-            if (word1Index >= word0Index) {
-                word1Index += 1;
-            }
-            final String word0 = words.get(word0Index);
-            final String word1 = words.get(word1Index);
-            final Pair<String, String> bigram = new Pair<>(word0, word1);
-            bigrams.add(bigram);
-        }
-
-        final int maxBigramCount = Integer.parseInt(
-                binaryDictionary.getPropertyForTest(BinaryDictionary.MAX_BIGRAM_COUNT_QUERY));
-        for (int i = 0; i < bigramTypedCount; ++i) {
-            final Pair<String, String> bigram = bigrams.get(random.nextInt(bigrams.size()));
-            addUnigramWord(binaryDictionary, bigram.first, DUMMY_PROBABILITY);
-            addUnigramWord(binaryDictionary, bigram.second, DUMMY_PROBABILITY);
-            addBigramWords(binaryDictionary, bigram.first, bigram.second, DUMMY_PROBABILITY);
-
-            if (binaryDictionary.needsToRunGC(true /* mindsBlockByGC */)) {
-                final int bigramCountBeforeGC =
-                        Integer.parseInt(binaryDictionary.getPropertyForTest(
-                                BinaryDictionary.BIGRAM_COUNT_QUERY));
-                while (binaryDictionary.needsToRunGC(true /* mindsBlockByGC */)) {
-                    forcePassingShortTime(binaryDictionary);
-                }
-                final int bigramCountAfterGC =
-                        Integer.parseInt(binaryDictionary.getPropertyForTest(
-                                BinaryDictionary.BIGRAM_COUNT_QUERY));
-                assertTrue(bigramCountBeforeGC > bigramCountAfterGC);
-            }
-        }
-
-        assertTrue(Integer.parseInt(binaryDictionary.getPropertyForTest(
-                BinaryDictionary.BIGRAM_COUNT_QUERY)) > 0);
-        assertTrue(Integer.parseInt(binaryDictionary.getPropertyForTest(
-                BinaryDictionary.BIGRAM_COUNT_QUERY)) <= maxBigramCount);
-        forcePassingLongTime(binaryDictionary);
-        assertEquals(0, Integer.parseInt(binaryDictionary.getPropertyForTest(
-                BinaryDictionary.BIGRAM_COUNT_QUERY)));
-    }
-
-    public void testOverflowBigrams() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testOverflowBigrams(formatVersion);
-        }
-    }
-
-    private void testOverflowBigrams(final int formatVersion) {
-        final int bigramCount = 20000;
-        final int unigramCount = 1000;
-        final int unigramTypedCount = 20;
-        final int eachBigramTypedCount = 2;
-        final int strongBigramTypedCount = 20;
-        final int weakBigramTypedCount = 1;
-        final int codePointSetSize = 50;
-        final long seed = System.currentTimeMillis();
-        final Random random = new Random(seed);
-
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
-        setCurrentTimeForTestMode(mCurrentTime);
-        final int[] codePointSet = CodePointUtils.generateCodePointSet(codePointSetSize, random);
-
-        final ArrayList<String> words = new ArrayList<>();
-        for (int i = 0; i < unigramCount; i++) {
-            final String word = CodePointUtils.generateWord(random, codePointSet);
-            words.add(word);
-            for (int j = 0; j < unigramTypedCount; j++) {
-                addUnigramWord(binaryDictionary, word, DUMMY_PROBABILITY);
-            }
-        }
-        final String strong = "strong";
-        final String weak = "weak";
-        final String target = "target";
-        for (int j = 0; j < unigramTypedCount; j++) {
-            addUnigramWord(binaryDictionary, strong, DUMMY_PROBABILITY);
-            addUnigramWord(binaryDictionary, weak, DUMMY_PROBABILITY);
-            addUnigramWord(binaryDictionary, target, DUMMY_PROBABILITY);
-        }
-        binaryDictionary.flushWithGC();
-        for (int j = 0; j < strongBigramTypedCount; j++) {
-            addBigramWords(binaryDictionary, strong, target, DUMMY_PROBABILITY);
-        }
-        for (int j = 0; j < weakBigramTypedCount; j++) {
-            addBigramWords(binaryDictionary, weak, target, DUMMY_PROBABILITY);
-        }
-        assertTrue(isValidBigram(binaryDictionary, strong, target));
-        assertTrue(isValidBigram(binaryDictionary, weak, target));
-
-        for (int i = 0; i < bigramCount; i++) {
-            final int word0Index = random.nextInt(words.size());
-            final String word0 = words.get(word0Index);
-            final int index = random.nextInt(words.size() - 1);
-            final int word1Index = (index >= word0Index) ? index + 1 : index;
-            final String word1 = words.get(word1Index);
-
-            for (int j = 0; j < eachBigramTypedCount; j++) {
-                addBigramWords(binaryDictionary, word0, word1, DUMMY_PROBABILITY);
-            }
-            if (binaryDictionary.needsToRunGC(true /* mindsBlockByGC */)) {
-                final int bigramCountBeforeGC =
-                        Integer.parseInt(binaryDictionary.getPropertyForTest(
-                                BinaryDictionary.BIGRAM_COUNT_QUERY));
-                binaryDictionary.flushWithGC();
-                final int bigramCountAfterGC =
-                        Integer.parseInt(binaryDictionary.getPropertyForTest(
-                                BinaryDictionary.BIGRAM_COUNT_QUERY));
-                assertTrue(bigramCountBeforeGC > bigramCountAfterGC);
-                assertTrue(isValidBigram(binaryDictionary, strong, target));
-                assertFalse(isValidBigram(binaryDictionary, weak, target));
-                break;
-            }
-        }
-    }
-
-    public void testDictMigration() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testDictMigration(FormatSpec.VERSION4_ONLY_FOR_TESTING, formatVersion);
-        }
-    }
-
-    private void testDictMigration(final int fromFormatVersion, final int toFormatVersion) {
-        setCurrentTimeForTestMode(mCurrentTime);
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", fromFormatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        final BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
-        addUnigramWord(binaryDictionary, "aaa", DUMMY_PROBABILITY);
-        assertTrue(binaryDictionary.isValidWord("aaa"));
-        addUnigramWord(binaryDictionary, "bbb", Dictionary.NOT_A_PROBABILITY);
-        assertFalse(binaryDictionary.isValidWord("bbb"));
-        addUnigramWord(binaryDictionary, "ccc", DUMMY_PROBABILITY);
-        addUnigramWord(binaryDictionary, "ccc", DUMMY_PROBABILITY);
-        addUnigramWord(binaryDictionary, "ccc", DUMMY_PROBABILITY);
-        addUnigramWord(binaryDictionary, "ccc", DUMMY_PROBABILITY);
-        addUnigramWord(binaryDictionary, "ccc", DUMMY_PROBABILITY);
-        addUnigramWord(binaryDictionary, "abc", DUMMY_PROBABILITY);
-        addBigramWords(binaryDictionary, "aaa", "abc", DUMMY_PROBABILITY);
-        assertTrue(isValidBigram(binaryDictionary, "aaa", "abc"));
-        addBigramWords(binaryDictionary, "aaa", "bbb", Dictionary.NOT_A_PROBABILITY);
-        assertFalse(isValidBigram(binaryDictionary, "aaa", "bbb"));
-
-        assertEquals(fromFormatVersion, binaryDictionary.getFormatVersion());
-        assertTrue(binaryDictionary.migrateTo(toFormatVersion));
-        assertTrue(binaryDictionary.isValidDictionary());
-        assertEquals(toFormatVersion, binaryDictionary.getFormatVersion());
-        assertTrue(binaryDictionary.isValidWord("aaa"));
-        assertFalse(binaryDictionary.isValidWord("bbb"));
-        assertTrue(binaryDictionary.getFrequency("aaa") < binaryDictionary.getFrequency("ccc"));
-        addUnigramWord(binaryDictionary, "bbb", Dictionary.NOT_A_PROBABILITY);
-        assertTrue(binaryDictionary.isValidWord("bbb"));
-        assertTrue(isValidBigram(binaryDictionary, "aaa", "abc"));
-        assertFalse(isValidBigram(binaryDictionary, "aaa", "bbb"));
-        addBigramWords(binaryDictionary, "aaa", "bbb", Dictionary.NOT_A_PROBABILITY);
-        assertTrue(isValidBigram(binaryDictionary, "aaa", "bbb"));
-        binaryDictionary.close();
-        dictFile.delete();
-    }
-
-    public void testBeginningOfSentence() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            if (supportsBeginningOfSentence(formatVersion)) {
-                testBeginningOfSentence(formatVersion);
-            }
-        }
-    }
-
-    private void testBeginningOfSentence(final int formatVersion) {
-        setCurrentTimeForTestMode(mCurrentTime);
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        final BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
-
-        binaryDictionary.addUnigramEntry("", DUMMY_PROBABILITY, "" /* shortcutTarget */,
-                BinaryDictionary.NOT_A_PROBABILITY /* shortcutProbability */,
-                true /* isBeginningOfSentence */, true /* isNotAWord */, false /* isBlacklisted */,
-                mCurrentTime);
-        final PrevWordsInfo prevWordsInfoStartOfSentence = PrevWordsInfo.BEGINNING_OF_SENTENCE;
-        addUnigramWord(binaryDictionary, "aaa", DUMMY_PROBABILITY);
-        binaryDictionary.addNgramEntry(prevWordsInfoStartOfSentence, "aaa", DUMMY_PROBABILITY,
-                mCurrentTime);
-        assertTrue(binaryDictionary.isValidNgram(prevWordsInfoStartOfSentence, "aaa"));
-        binaryDictionary.addNgramEntry(prevWordsInfoStartOfSentence, "aaa", DUMMY_PROBABILITY,
-                mCurrentTime);
-        addUnigramWord(binaryDictionary, "bbb", DUMMY_PROBABILITY);
-        binaryDictionary.addNgramEntry(prevWordsInfoStartOfSentence, "bbb", DUMMY_PROBABILITY,
-                mCurrentTime);
-        assertTrue(binaryDictionary.isValidNgram(prevWordsInfoStartOfSentence, "aaa"));
-        assertTrue(binaryDictionary.isValidNgram(prevWordsInfoStartOfSentence, "bbb"));
-
-        forcePassingLongTime(binaryDictionary);
-        assertFalse(binaryDictionary.isValidNgram(prevWordsInfoStartOfSentence, "aaa"));
-        assertFalse(binaryDictionary.isValidNgram(prevWordsInfoStartOfSentence, "bbb"));
-
-        addUnigramWord(binaryDictionary, "aaa", DUMMY_PROBABILITY);
-        binaryDictionary.addNgramEntry(prevWordsInfoStartOfSentence, "aaa", DUMMY_PROBABILITY,
-                mCurrentTime);
-        addUnigramWord(binaryDictionary, "bbb", DUMMY_PROBABILITY);
-        binaryDictionary.addNgramEntry(prevWordsInfoStartOfSentence, "bbb", DUMMY_PROBABILITY,
-                mCurrentTime);
-        assertTrue(binaryDictionary.isValidNgram(prevWordsInfoStartOfSentence, "aaa"));
-        assertTrue(binaryDictionary.isValidNgram(prevWordsInfoStartOfSentence, "bbb"));
-        binaryDictionary.close();
-        dictFile.delete();
-    }
-}
diff --git a/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java b/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java
index 6ba18d6..e96c934 100644
--- a/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java
+++ b/tests/src/com/android/inputmethod/latin/BinaryDictionaryTests.java
@@ -21,14 +21,14 @@
 import android.text.TextUtils;
 import android.util.Pair;
 
-import com.android.inputmethod.latin.PrevWordsInfo.WordInfo;
-import com.android.inputmethod.latin.makedict.CodePointUtils;
+import com.android.inputmethod.latin.NgramContext.WordInfo;
+import com.android.inputmethod.latin.common.CodePointUtils;
+import com.android.inputmethod.latin.common.FileUtils;
+import com.android.inputmethod.latin.makedict.DictionaryHeader;
 import com.android.inputmethod.latin.makedict.FormatSpec;
 import com.android.inputmethod.latin.makedict.WeightedString;
 import com.android.inputmethod.latin.makedict.WordProperty;
 import com.android.inputmethod.latin.utils.BinaryDictionaryUtils;
-import com.android.inputmethod.latin.utils.FileUtils;
-import com.android.inputmethod.latin.utils.LanguageModelParam;
 
 import java.io.File;
 import java.io.IOException;
@@ -36,103 +36,100 @@
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Locale;
-import java.util.Map;
 import java.util.Random;
 
-// TODO Use the seed passed as an argument for makedict test.
 @LargeTest
 public class BinaryDictionaryTests extends AndroidTestCase {
     private static final String TEST_DICT_FILE_EXTENSION = ".testDict";
     private static final String TEST_LOCALE = "test";
-    private static final int[] DICT_FORMAT_VERSIONS =
-            new int[] { FormatSpec.VERSION4, FormatSpec.VERSION4_DEV };
+    private static final String DICTIONARY_ID = "TestBinaryDictionary";
 
-    private static boolean canCheckBigramProbability(final int formatVersion) {
-        return formatVersion > FormatSpec.VERSION401;
+    private HashSet<File> mDictFilesToBeDeleted = new HashSet<>();
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mDictFilesToBeDeleted.clear();
     }
 
-    private static boolean supportsBeginningOfSentence(final int formatVersion) {
-        return formatVersion > FormatSpec.VERSION401;
-    }
-
-    private File createEmptyDictionaryAndGetFile(final String dictId,
-            final int formatVersion) throws IOException {
-        if (formatVersion == FormatSpec.VERSION4
-                || formatVersion == FormatSpec.VERSION4_ONLY_FOR_TESTING
-                || formatVersion == FormatSpec.VERSION4_DEV) {
-            return createEmptyVer4DictionaryAndGetFile(dictId, formatVersion);
-        } else {
-            throw new IOException("Dictionary format version " + formatVersion
-                    + " is not supported.");
+    @Override
+    protected void tearDown() throws Exception {
+        for (final File dictFile : mDictFilesToBeDeleted) {
+            dictFile.delete();
         }
+        mDictFilesToBeDeleted.clear();
+        super.tearDown();
     }
 
-    private File createEmptyVer4DictionaryAndGetFile(final String dictId,
-            final int formatVersion) throws IOException {
-        final File file = File.createTempFile(dictId, TEST_DICT_FILE_EXTENSION,
+    private File createEmptyDictionaryAndGetFile(final int formatVersion) {
+        return createEmptyDictionaryWithAttributesAndGetFile(formatVersion,
+                new HashMap<String, String>());
+    }
+
+    private File createEmptyDictionaryWithAttributesAndGetFile(final int formatVersion,
+            final HashMap<String, String> attributeMap) {
+        try {
+            final File dictFile = createEmptyVer4DictionaryAndGetFile(formatVersion,
+                    attributeMap);
+            mDictFilesToBeDeleted.add(dictFile);
+            return dictFile;
+        } catch (final IOException e) {
+            fail(e.toString());
+        }
+        return null;
+    }
+
+    private File createEmptyVer4DictionaryAndGetFile(final int formatVersion,
+            final HashMap<String, String> attributeMap) throws IOException {
+        final File file = File.createTempFile(DICTIONARY_ID, TEST_DICT_FILE_EXTENSION,
                 getContext().getCacheDir());
         file.delete();
         file.mkdir();
-        Map<String, String> attributeMap = new HashMap<>();
         if (BinaryDictionaryUtils.createEmptyDictFile(file.getAbsolutePath(), formatVersion,
                 Locale.ENGLISH, attributeMap)) {
             return file;
-        } else {
-            throw new IOException("Empty dictionary " + file.getAbsolutePath()
-                    + " cannot be created. Format version: " + formatVersion);
         }
+        throw new IOException("Empty dictionary " + file.getAbsolutePath()
+                + " cannot be created. Format version: " + formatVersion);
+    }
+
+    private static BinaryDictionary getBinaryDictionary(final File dictFile) {
+        return new BinaryDictionary(dictFile.getAbsolutePath(),
+                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
+                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
+    }
+
+    private BinaryDictionary getEmptyBinaryDictionary(final int formatVersion) {
+        final File dictFile = createEmptyDictionaryAndGetFile(formatVersion);
+        return new BinaryDictionary(dictFile.getAbsolutePath(),
+                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
+                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
     }
 
     public void testIsValidDictionary() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testIsValidDictionary(formatVersion);
-        }
-    }
-
-    private void testIsValidDictionary(final int formatVersion) {
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
+        final File dictFile = createEmptyDictionaryAndGetFile(FormatSpec.VERSION403);
+        BinaryDictionary binaryDictionary = getBinaryDictionary(dictFile);
         assertTrue("binaryDictionary must be valid for existing valid dictionary file.",
                 binaryDictionary.isValidDictionary());
         binaryDictionary.close();
         assertFalse("binaryDictionary must be invalid after closing.",
                 binaryDictionary.isValidDictionary());
         FileUtils.deleteRecursively(dictFile);
-        binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(), 0 /* offset */,
-                dictFile.length(), true /* useFullEditDistance */, Locale.getDefault(),
-                TEST_LOCALE, true /* isUpdatable */);
+        binaryDictionary = getBinaryDictionary(dictFile);
         assertFalse("binaryDictionary must be invalid for not existing dictionary file.",
                 binaryDictionary.isValidDictionary());
         binaryDictionary.close();
     }
 
     public void testConstructingDictionaryOnMemory() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testConstructingDictionaryOnMemory(formatVersion);
-        }
-    }
-
-    private void testConstructingDictionaryOnMemory(final int formatVersion) {
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
+        final File dictFile = createEmptyDictionaryAndGetFile(FormatSpec.VERSION403);
         FileUtils.deleteRecursively(dictFile);
         assertFalse(dictFile.exists());
-        BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                true /* useFullEditDistance */, Locale.getDefault(), TEST_LOCALE, formatVersion,
-                new HashMap<String, String>());
+        final BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
+                true /* useFullEditDistance */, Locale.getDefault(), TEST_LOCALE,
+                FormatSpec.VERSION403, new HashMap<String, String>());
         assertTrue(binaryDictionary.isValidDictionary());
-        assertEquals(formatVersion, binaryDictionary.getFormatVersion());
+        assertEquals(FormatSpec.VERSION403, binaryDictionary.getFormatVersion());
         final int probability = 100;
         addUnigramWord(binaryDictionary, "word", probability);
         assertEquals(probability, binaryDictionary.getFrequency("word"));
@@ -140,31 +137,15 @@
         binaryDictionary.flush();
         assertTrue(dictFile.exists());
         assertTrue(binaryDictionary.isValidDictionary());
-        assertEquals(formatVersion, binaryDictionary.getFormatVersion());
+        assertEquals(FormatSpec.VERSION403, binaryDictionary.getFormatVersion());
         assertEquals(probability, binaryDictionary.getFrequency("word"));
         binaryDictionary.close();
-        dictFile.delete();
     }
 
     public void testAddTooLongWord() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testAddTooLongWord(formatVersion);
-        }
-    }
-
-    private void testAddTooLongWord(final int formatVersion) {
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        final BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
-
+        final BinaryDictionary binaryDictionary = getEmptyBinaryDictionary(FormatSpec.VERSION403);
         final StringBuffer stringBuilder = new StringBuffer();
-        for (int i = 0; i < Constants.DICTIONARY_MAX_WORD_LENGTH; i++) {
+        for (int i = 0; i < BinaryDictionary.DICTIONARY_MAX_WORD_LENGTH; i++) {
             stringBuilder.append('a');
         }
         final String validLongWord = stringBuilder.toString();
@@ -175,9 +156,8 @@
         addUnigramWord(binaryDictionary, validLongWord, probability);
         addUnigramWord(binaryDictionary, invalidLongWord, probability);
         // Too long short cut.
-        binaryDictionary.addUnigramEntry("a", probability, invalidLongWord,
-                10 /* shortcutProbability */, false /* isBeginningOfSentence */,
-                false /* isNotAWord */, false /* isBlacklisted */,
+        binaryDictionary.addUnigramEntry("a", probability, false /* isBeginningOfSentence */,
+                false /* isNotAWord */, false /* isPossiblyOffensive */,
                 BinaryDictionary.NOT_A_VALID_TIMESTAMP);
         addUnigramWord(binaryDictionary, "abc", probability);
         final int updatedProbability = 200;
@@ -188,58 +168,49 @@
 
         assertEquals(probability, binaryDictionary.getFrequency("aaa"));
         assertEquals(updatedProbability, binaryDictionary.getFrequency(validLongWord));
-        assertEquals(BinaryDictionary.NOT_A_PROBABILITY,
-                binaryDictionary.getFrequency(invalidLongWord));
+        assertEquals(Dictionary.NOT_A_PROBABILITY, binaryDictionary.getFrequency(invalidLongWord));
         assertEquals(updatedProbability, binaryDictionary.getFrequency("abc"));
-        dictFile.delete();
     }
 
     private static void addUnigramWord(final BinaryDictionary binaryDictionary, final String word,
             final int probability) {
-        binaryDictionary.addUnigramEntry(word, probability, "" /* shortcutTarget */,
-                BinaryDictionary.NOT_A_PROBABILITY /* shortcutProbability */,
+        binaryDictionary.addUnigramEntry(word, probability,
                 false /* isBeginningOfSentence */, false /* isNotAWord */,
-                false /* isBlacklisted */, BinaryDictionary.NOT_A_VALID_TIMESTAMP /* timestamp */);
+                false /* isPossiblyOffensive */,
+                BinaryDictionary.NOT_A_VALID_TIMESTAMP /* timestamp */);
     }
 
     private static void addBigramWords(final BinaryDictionary binaryDictionary, final String word0,
             final String word1, final int probability) {
-        binaryDictionary.addNgramEntry(new PrevWordsInfo(new WordInfo(word0)), word1, probability,
+        binaryDictionary.addNgramEntry(new NgramContext(new WordInfo(word0)), word1, probability,
                 BinaryDictionary.NOT_A_VALID_TIMESTAMP /* timestamp */);
     }
 
+    private static void addTrigramEntry(final BinaryDictionary binaryDictionary, final String word0,
+            final String word1, final String word2, final int probability) {
+        binaryDictionary.addNgramEntry(
+                new NgramContext(new WordInfo(word1), new WordInfo(word0)), word2,
+                probability, BinaryDictionary.NOT_A_VALID_TIMESTAMP /* timestamp */);
+    }
+
     private static boolean isValidBigram(final BinaryDictionary binaryDictionary,
             final String word0, final String word1) {
-        return binaryDictionary.isValidNgram(new PrevWordsInfo(new WordInfo(word0)), word1);
-    }
-
-    private static void removeBigramEntry(final BinaryDictionary binaryDictionary,
-            final String word0, final String word1) {
-        binaryDictionary.removeNgramEntry(new PrevWordsInfo(new WordInfo(word0)), word1);
+        return binaryDictionary.isValidNgram(new NgramContext(new WordInfo(word0)), word1);
     }
 
     private static int getBigramProbability(final BinaryDictionary binaryDictionary,
             final String word0,  final String word1) {
-        return binaryDictionary.getNgramProbability(new PrevWordsInfo(new WordInfo(word0)), word1);
+        return binaryDictionary.getNgramProbability(new NgramContext(new WordInfo(word0)), word1);
+    }
+
+    private static int getTrigramProbability(final BinaryDictionary binaryDictionary,
+            final String word0, final String word1, final String word2) {
+        return binaryDictionary.getNgramProbability(
+                new NgramContext(new WordInfo(word1), new WordInfo(word0)), word2);
     }
 
     public void testAddUnigramWord() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testAddUnigramWord(formatVersion);
-        }
-    }
-
-    private void testAddUnigramWord(final int formatVersion) {
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
-
+        final BinaryDictionary binaryDictionary = getEmptyBinaryDictionary(FormatSpec.VERSION403);
         final int probability = 100;
         addUnigramWord(binaryDictionary, "aaa", probability);
         // Reallocate and create.
@@ -263,30 +234,13 @@
         assertEquals(probability, binaryDictionary.getFrequency("aaaa"));
         assertEquals(probability, binaryDictionary.getFrequency("a"));
         assertEquals(updatedProbability, binaryDictionary.getFrequency("aaa"));
-
-        dictFile.delete();
     }
 
     public void testRandomlyAddUnigramWord() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testRandomlyAddUnigramWord(formatVersion);
-        }
-    }
-
-    private void testRandomlyAddUnigramWord(final int formatVersion) {
         final int wordCount = 1000;
         final int codePointSetSize = 50;
         final long seed = System.currentTimeMillis();
-
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
+        final BinaryDictionary binaryDictionary = getEmptyBinaryDictionary(FormatSpec.VERSION403);
 
         final HashMap<String, Integer> probabilityMap = new HashMap<>();
         // Test a word that isn't contained within the dictionary.
@@ -302,25 +256,10 @@
         for (String word : probabilityMap.keySet()) {
             assertEquals(word, (int)probabilityMap.get(word), binaryDictionary.getFrequency(word));
         }
-        dictFile.delete();
     }
 
     public void testAddBigramWords() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testAddBigramWords(formatVersion);
-        }
-    }
-
-    private void testAddBigramWords(final int formatVersion) {
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
+        final BinaryDictionary binaryDictionary = getEmptyBinaryDictionary(FormatSpec.VERSION403);
 
         final int unigramProbability = 100;
         final int bigramProbability = 150;
@@ -337,18 +276,14 @@
         assertTrue(isValidBigram(binaryDictionary, "aaa", "bcc"));
         assertTrue(isValidBigram(binaryDictionary, "abb", "aaa"));
         assertTrue(isValidBigram(binaryDictionary, "abb", "bcc"));
-        if (canCheckBigramProbability(formatVersion)) {
-            assertEquals(bigramProbability, getBigramProbability(binaryDictionary, "aaa", "abb"));
-            assertEquals(bigramProbability, getBigramProbability(binaryDictionary, "aaa", "bcc"));
-            assertEquals(bigramProbability, getBigramProbability(binaryDictionary, "abb", "aaa"));
-            assertEquals(bigramProbability, getBigramProbability(binaryDictionary, "abb", "bcc"));
-        }
+        assertEquals(bigramProbability, getBigramProbability(binaryDictionary, "aaa", "abb"));
+        assertEquals(bigramProbability, getBigramProbability(binaryDictionary, "aaa", "bcc"));
+        assertEquals(bigramProbability, getBigramProbability(binaryDictionary, "abb", "aaa"));
+        assertEquals(bigramProbability, getBigramProbability(binaryDictionary, "abb", "bcc"));
 
         addBigramWords(binaryDictionary, "aaa", "abb", updatedBigramProbability);
-        if (canCheckBigramProbability(formatVersion)) {
-            assertEquals(updatedBigramProbability,
-                    getBigramProbability(binaryDictionary, "aaa", "abb"));
-        }
+        assertEquals(updatedBigramProbability,
+                getBigramProbability(binaryDictionary, "aaa", "abb"));
 
         assertFalse(isValidBigram(binaryDictionary, "bcc", "aaa"));
         assertFalse(isValidBigram(binaryDictionary, "bcc", "bbc"));
@@ -368,43 +303,21 @@
         addUnigramWord(binaryDictionary, "abc", unigramProbability);
         addUnigramWord(binaryDictionary, "f", unigramProbability);
 
-        if (canCheckBigramProbability(formatVersion)) {
-            assertEquals(bigramProbability,
-                    getBigramProbability(binaryDictionary, "abcde", "fghij"));
-        }
+        assertEquals(bigramProbability, getBigramProbability(binaryDictionary, "abcde", "fghij"));
         assertEquals(Dictionary.NOT_A_PROBABILITY,
                 getBigramProbability(binaryDictionary, "abcde", "fgh"));
         addBigramWords(binaryDictionary, "abcde", "fghij", updatedBigramProbability);
-        if (canCheckBigramProbability(formatVersion)) {
-            assertEquals(updatedBigramProbability,
-                    getBigramProbability(binaryDictionary, "abcde", "fghij"));
-        }
-
-        dictFile.delete();
+        assertEquals(updatedBigramProbability,
+                getBigramProbability(binaryDictionary, "abcde", "fghij"));
     }
 
     public void testRandomlyAddBigramWords() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testRandomlyAddBigramWords(formatVersion);
-        }
-    }
-
-    private void testRandomlyAddBigramWords(final int formatVersion) {
         final int wordCount = 100;
         final int bigramCount = 1000;
         final int codePointSetSize = 50;
         final long seed = System.currentTimeMillis();
         final Random random = new Random(seed);
-
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
+        final BinaryDictionary binaryDictionary = getEmptyBinaryDictionary(FormatSpec.VERSION403);
 
         final ArrayList<String> words = new ArrayList<>();
         final ArrayList<Pair<String, String>> bigramWords = new ArrayList<>();
@@ -439,83 +352,40 @@
             final int bigramProbability = bigramProbabilities.get(bigram);
             assertEquals(bigramProbability != Dictionary.NOT_A_PROBABILITY,
                     isValidBigram(binaryDictionary, bigram.first, bigram.second));
-            if (canCheckBigramProbability(formatVersion)) {
-                assertEquals(bigramProbability,
-                        getBigramProbability(binaryDictionary, bigram.first, bigram.second));
-            }
-        }
-
-        dictFile.delete();
-    }
-
-    public void testRemoveBigramWords() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testRemoveBigramWords(formatVersion);
+            assertEquals(bigramProbability,
+                    getBigramProbability(binaryDictionary, bigram.first, bigram.second));
         }
     }
 
-    private void testRemoveBigramWords(final int formatVersion) {
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
+    public void testAddTrigramWords() {
+        final BinaryDictionary binaryDictionary = getEmptyBinaryDictionary(FormatSpec.VERSION403);
         final int unigramProbability = 100;
-        final int bigramProbability = 150;
+        final int trigramProbability = 150;
+        final int updatedTrigramProbability = 200;
         addUnigramWord(binaryDictionary, "aaa", unigramProbability);
         addUnigramWord(binaryDictionary, "abb", unigramProbability);
         addUnigramWord(binaryDictionary, "bcc", unigramProbability);
-        addBigramWords(binaryDictionary, "aaa", "abb", bigramProbability);
-        addBigramWords(binaryDictionary, "aaa", "bcc", bigramProbability);
-        addBigramWords(binaryDictionary, "abb", "aaa", bigramProbability);
-        addBigramWords(binaryDictionary, "abb", "bcc", bigramProbability);
 
-        assertTrue(isValidBigram(binaryDictionary, "aaa", "abb"));
-        assertTrue(isValidBigram(binaryDictionary, "aaa", "bcc"));
-        assertTrue(isValidBigram(binaryDictionary, "abb", "aaa"));
-        assertTrue(isValidBigram(binaryDictionary, "abb", "bcc"));
+        addBigramWords(binaryDictionary, "abb", "bcc", 10);
+        addBigramWords(binaryDictionary, "abb", "aaa", 10);
 
-        removeBigramEntry(binaryDictionary, "aaa", "abb");
+        addTrigramEntry(binaryDictionary, "aaa", "abb", "bcc", trigramProbability);
+        addTrigramEntry(binaryDictionary, "bcc", "abb", "aaa", trigramProbability);
+
+        assertEquals(trigramProbability,
+                getTrigramProbability(binaryDictionary, "aaa", "abb", "bcc"));
+        assertEquals(trigramProbability,
+                getTrigramProbability(binaryDictionary, "bcc", "abb", "aaa"));
         assertFalse(isValidBigram(binaryDictionary, "aaa", "abb"));
-        addBigramWords(binaryDictionary, "aaa", "abb", bigramProbability);
-        assertTrue(isValidBigram(binaryDictionary, "aaa", "abb"));
 
-
-        removeBigramEntry(binaryDictionary, "aaa", "bcc");
-        assertFalse(isValidBigram(binaryDictionary, "aaa", "bcc"));
-        removeBigramEntry(binaryDictionary, "abb", "aaa");
-        assertFalse(isValidBigram(binaryDictionary, "abb", "aaa"));
-        removeBigramEntry(binaryDictionary, "abb", "bcc");
-        assertFalse(isValidBigram(binaryDictionary, "abb", "bcc"));
-
-        removeBigramEntry(binaryDictionary, "aaa", "abb");
-        // Test remove non-existing bigram operation.
-        removeBigramEntry(binaryDictionary, "aaa", "abb");
-        removeBigramEntry(binaryDictionary, "bcc", "aaa");
-
-        dictFile.delete();
+        addTrigramEntry(binaryDictionary, "bcc", "abb", "aaa", updatedTrigramProbability);
+        assertEquals(updatedTrigramProbability,
+                getTrigramProbability(binaryDictionary, "bcc", "abb", "aaa"));
     }
 
     public void testFlushDictionary() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testFlushDictionary(formatVersion);
-        }
-    }
-
-    private void testFlushDictionary(final int formatVersion) {
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
+        final File dictFile = createEmptyDictionaryAndGetFile(FormatSpec.VERSION403);
+        BinaryDictionary binaryDictionary = getBinaryDictionary(dictFile);
 
         final int probability = 100;
         addUnigramWord(binaryDictionary, "aaa", probability);
@@ -535,42 +405,21 @@
         binaryDictionary.flush();
         binaryDictionary.close();
 
-        binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
-
+        binaryDictionary = getBinaryDictionary(dictFile);
         assertEquals(probability, binaryDictionary.getFrequency("aaa"));
         assertEquals(probability, binaryDictionary.getFrequency("abcd"));
         addUnigramWord(binaryDictionary, "bcde", probability);
         binaryDictionary.flush();
         binaryDictionary.close();
 
-        binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
+        binaryDictionary = getBinaryDictionary(dictFile);
         assertEquals(probability, binaryDictionary.getFrequency("bcde"));
         binaryDictionary.close();
-
-        dictFile.delete();
     }
 
     public void testFlushWithGCDictionary() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testFlushWithGCDictionary(formatVersion);
-        }
-    }
-
-    private void testFlushWithGCDictionary(final int formatVersion) {
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
-
+        final File dictFile = createEmptyDictionaryAndGetFile(FormatSpec.VERSION403);
+        BinaryDictionary binaryDictionary = getBinaryDictionary(dictFile);
         final int unigramProbability = 100;
         final int bigramProbability = 150;
         addUnigramWord(binaryDictionary, "aaa", unigramProbability);
@@ -583,51 +432,30 @@
         binaryDictionary.flushWithGC();
         binaryDictionary.close();
 
-        binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
+        binaryDictionary = getBinaryDictionary(dictFile);
         assertEquals(unigramProbability, binaryDictionary.getFrequency("aaa"));
         assertEquals(unigramProbability, binaryDictionary.getFrequency("abb"));
         assertEquals(unigramProbability, binaryDictionary.getFrequency("bcc"));
-        if (canCheckBigramProbability(formatVersion)) {
-            assertEquals(bigramProbability, getBigramProbability(binaryDictionary, "aaa", "abb"));
-            assertEquals(bigramProbability, getBigramProbability(binaryDictionary, "aaa", "bcc"));
-            assertEquals(bigramProbability, getBigramProbability(binaryDictionary, "abb", "aaa"));
-            assertEquals(bigramProbability, getBigramProbability(binaryDictionary, "abb", "bcc"));
-        }
+        assertEquals(bigramProbability, getBigramProbability(binaryDictionary, "aaa", "abb"));
+        assertEquals(bigramProbability, getBigramProbability(binaryDictionary, "aaa", "bcc"));
+        assertEquals(bigramProbability, getBigramProbability(binaryDictionary, "abb", "aaa"));
+        assertEquals(bigramProbability, getBigramProbability(binaryDictionary, "abb", "bcc"));
         assertFalse(isValidBigram(binaryDictionary, "bcc", "aaa"));
         assertFalse(isValidBigram(binaryDictionary, "bcc", "bbc"));
         assertFalse(isValidBigram(binaryDictionary, "aaa", "aaa"));
         binaryDictionary.flushWithGC();
         binaryDictionary.close();
-
-        dictFile.delete();
     }
 
     public void testAddBigramWordsAndFlashWithGC() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testAddBigramWordsAndFlashWithGC(formatVersion);
-        }
-    }
-
-    // TODO: Evaluate performance of GC
-    private void testAddBigramWordsAndFlashWithGC(final int formatVersion) {
         final int wordCount = 100;
         final int bigramCount = 1000;
         final int codePointSetSize = 30;
         final long seed = System.currentTimeMillis();
         final Random random = new Random(seed);
 
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-
-        BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
+        final File dictFile = createEmptyDictionaryAndGetFile(FormatSpec.VERSION403);
+        BinaryDictionary binaryDictionary = getBinaryDictionary(dictFile);
 
         final ArrayList<String> words = new ArrayList<>();
         final ArrayList<Pair<String, String>> bigramWords = new ArrayList<>();
@@ -660,52 +488,37 @@
 
         binaryDictionary.flushWithGC();
         binaryDictionary.close();
-        binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
-
+        binaryDictionary = getBinaryDictionary(dictFile);
 
         for (final Pair<String, String> bigram : bigramWords) {
             final int bigramProbability = bigramProbabilities.get(bigram);
             assertEquals(bigramProbability != Dictionary.NOT_A_PROBABILITY,
                     isValidBigram(binaryDictionary, bigram.first, bigram.second));
-            if (canCheckBigramProbability(formatVersion)) {
-                assertEquals(bigramProbability,
-                        getBigramProbability(binaryDictionary, bigram.first, bigram.second));
-            }
+            assertEquals(bigramProbability,
+                    getBigramProbability(binaryDictionary, bigram.first, bigram.second));
         }
-
-        dictFile.delete();
     }
 
     public void testRandomOperationsAndFlashWithGC() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testRandomOperationsAndFlashWithGC(formatVersion);
-        }
-    }
+        final int maxUnigramCount = 5000;
+        final int maxBigramCount = 10000;
+        final HashMap<String, String> attributeMap = new HashMap<>();
+        attributeMap.put(DictionaryHeader.MAX_UNIGRAM_COUNT_KEY, String.valueOf(maxUnigramCount));
+        attributeMap.put(DictionaryHeader.MAX_BIGRAM_COUNT_KEY, String.valueOf(maxBigramCount));
 
-    private void testRandomOperationsAndFlashWithGC(final int formatVersion) {
         final int flashWithGCIterationCount = 50;
         final int operationCountInEachIteration = 200;
         final int initialUnigramCount = 100;
         final float addUnigramProb = 0.5f;
         final float addBigramProb = 0.8f;
-        final float removeBigramProb = 0.2f;
         final int codePointSetSize = 30;
 
         final long seed = System.currentTimeMillis();
         final Random random = new Random(seed);
+        final File dictFile = createEmptyDictionaryWithAttributesAndGetFile(FormatSpec.VERSION403,
+                attributeMap);
+        BinaryDictionary binaryDictionary = getBinaryDictionary(dictFile);
 
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-
-        BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
         final ArrayList<String> words = new ArrayList<>();
         final ArrayList<Pair<String, String>> bigramWords = new ArrayList<>();
         final int[] codePointSet = CodePointUtils.generateCodePointSet(codePointSetSize, random);
@@ -722,9 +535,7 @@
         binaryDictionary.close();
 
         for (int gcCount = 0; gcCount < flashWithGCIterationCount; gcCount++) {
-            binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                    0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                    Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
+            binaryDictionary = getBinaryDictionary(dictFile);
             for (int opCount = 0; opCount < operationCountInEachIteration; opCount++) {
                 // Add unigram.
                 if (random.nextFloat() < addUnigramProb) {
@@ -754,14 +565,6 @@
                     bigramProbabilities.put(bigram, bigramProbability);
                     addBigramWords(binaryDictionary, word0, word1, bigramProbability);
                 }
-                // Remove bigram.
-                if (random.nextFloat() < removeBigramProb && !bigramWords.isEmpty()) {
-                    final int bigramIndex = random.nextInt(bigramWords.size());
-                    final Pair<String, String> bigram = bigramWords.get(bigramIndex);
-                    bigramWords.remove(bigramIndex);
-                    bigramProbabilities.remove(bigram);
-                    removeBigramEntry(binaryDictionary, bigram.first, bigram.second);
-                }
             }
 
             // Test whether the all unigram operations are collectlly handled.
@@ -775,45 +578,29 @@
                 final Pair<String, String> bigram = bigramWords.get(i);
                 final int probability;
                 if (bigramProbabilities.containsKey(bigram)) {
-                    final int bigramProbability = bigramProbabilities.get(bigram);
-                    probability = bigramProbability;
+                    probability = bigramProbabilities.get(bigram);
                 } else {
                     probability = Dictionary.NOT_A_PROBABILITY;
                 }
 
-                if (canCheckBigramProbability(formatVersion)) {
-                    assertEquals(probability,
-                            getBigramProbability(binaryDictionary, bigram.first, bigram.second));
-                }
+                assertEquals(probability,
+                        getBigramProbability(binaryDictionary, bigram.first, bigram.second));
                 assertEquals(probability != Dictionary.NOT_A_PROBABILITY,
                         isValidBigram(binaryDictionary, bigram.first, bigram.second));
             }
             binaryDictionary.flushWithGC();
             binaryDictionary.close();
         }
-
-        dictFile.delete();
     }
 
     public void testAddManyUnigramsAndFlushWithGC() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testAddManyUnigramsAndFlushWithGC(formatVersion);
-        }
-    }
-
-    private void testAddManyUnigramsAndFlushWithGC(final int formatVersion) {
         final int flashWithGCIterationCount = 3;
         final int codePointSetSize = 50;
 
         final long seed = System.currentTimeMillis();
         final Random random = new Random(seed);
 
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
+        final File dictFile = createEmptyDictionaryAndGetFile(FormatSpec.VERSION403);
 
         final ArrayList<String> words = new ArrayList<>();
         final HashMap<String, Integer> unigramProbabilities = new HashMap<>();
@@ -821,9 +608,7 @@
 
         BinaryDictionary binaryDictionary;
         for (int i = 0; i < flashWithGCIterationCount; i++) {
-            binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                    0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                    Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
+            binaryDictionary = getBinaryDictionary(dictFile);
             while(!binaryDictionary.needsToRunGC(true /* mindsBlockByGC */)) {
                 final String word = CodePointUtils.generateWord(random, codePointSet);
                 words.add(word);
@@ -841,30 +626,23 @@
             binaryDictionary.flushWithGC();
             binaryDictionary.close();
         }
-
-        dictFile.delete();
     }
 
     public void testUnigramAndBigramCount() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testUnigramAndBigramCount(formatVersion);
-        }
-    }
+        final int maxUnigramCount = 5000;
+        final int maxBigramCount = 10000;
+        final HashMap<String, String> attributeMap = new HashMap<>();
+        attributeMap.put(DictionaryHeader.MAX_UNIGRAM_COUNT_KEY, String.valueOf(maxUnigramCount));
+        attributeMap.put(DictionaryHeader.MAX_BIGRAM_COUNT_KEY, String.valueOf(maxBigramCount));
 
-    private void testUnigramAndBigramCount(final int formatVersion) {
         final int flashWithGCIterationCount = 10;
         final int codePointSetSize = 50;
         final int unigramCountPerIteration = 1000;
         final int bigramCountPerIteration = 2000;
         final long seed = System.currentTimeMillis();
         final Random random = new Random(seed);
-
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
+        final File dictFile = createEmptyDictionaryWithAttributesAndGetFile(FormatSpec.VERSION403,
+                attributeMap);
 
         final ArrayList<String> words = new ArrayList<>();
         final HashSet<Pair<String, String>> bigrams = new HashSet<>();
@@ -872,9 +650,7 @@
 
         BinaryDictionary binaryDictionary;
         for (int i = 0; i < flashWithGCIterationCount; i++) {
-            binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                    0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                    Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
+            binaryDictionary = getBinaryDictionary(dictFile);
             for (int j = 0; j < unigramCountPerIteration; j++) {
                 final String word = CodePointUtils.generateWord(random, codePointSet);
                 words.add(word);
@@ -892,108 +668,31 @@
                 addBigramWords(binaryDictionary, word0, word1, bigramProbability);
             }
             assertEquals(new HashSet<>(words).size(), Integer.parseInt(
-                    binaryDictionary.getPropertyForTest(BinaryDictionary.UNIGRAM_COUNT_QUERY)));
+                    binaryDictionary.getPropertyForGettingStats(
+                            BinaryDictionary.UNIGRAM_COUNT_QUERY)));
             assertEquals(new HashSet<>(bigrams).size(), Integer.parseInt(
-                    binaryDictionary.getPropertyForTest(BinaryDictionary.BIGRAM_COUNT_QUERY)));
+                    binaryDictionary.getPropertyForGettingStats(
+                            BinaryDictionary.BIGRAM_COUNT_QUERY)));
             binaryDictionary.flushWithGC();
             assertEquals(new HashSet<>(words).size(), Integer.parseInt(
-                    binaryDictionary.getPropertyForTest(BinaryDictionary.UNIGRAM_COUNT_QUERY)));
+                    binaryDictionary.getPropertyForGettingStats(
+                            BinaryDictionary.UNIGRAM_COUNT_QUERY)));
             assertEquals(new HashSet<>(bigrams).size(), Integer.parseInt(
-                    binaryDictionary.getPropertyForTest(BinaryDictionary.BIGRAM_COUNT_QUERY)));
+                    binaryDictionary.getPropertyForGettingStats(
+                            BinaryDictionary.BIGRAM_COUNT_QUERY)));
             binaryDictionary.close();
         }
-
-        dictFile.delete();
-    }
-
-    public void testAddMultipleDictionaryEntries() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testAddMultipleDictionaryEntries(formatVersion);
-        }
-    }
-
-    private void testAddMultipleDictionaryEntries(final int formatVersion) {
-        final int codePointSetSize = 20;
-        final int lmParamCount = 1000;
-        final double bigramContinueRate = 0.9;
-        final long seed = System.currentTimeMillis();
-        final Random random = new Random(seed);
-
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-
-        final int[] codePointSet = CodePointUtils.generateCodePointSet(codePointSetSize, random);
-        final HashMap<String, Integer> unigramProbabilities = new HashMap<>();
-        final HashMap<Pair<String, String>, Integer> bigramProbabilities = new HashMap<>();
-
-        final LanguageModelParam[] languageModelParams = new LanguageModelParam[lmParamCount];
-        String prevWord = null;
-        for (int i = 0; i < languageModelParams.length; i++) {
-            final String word = CodePointUtils.generateWord(random, codePointSet);
-            final int probability = random.nextInt(0xFF);
-            final int bigramProbability = probability + random.nextInt(0xFF - probability);
-            unigramProbabilities.put(word, probability);
-            if (prevWord == null) {
-                languageModelParams[i] = new LanguageModelParam(word, probability,
-                        BinaryDictionary.NOT_A_VALID_TIMESTAMP);
-            } else {
-                languageModelParams[i] = new LanguageModelParam(prevWord, word, probability,
-                        bigramProbability, BinaryDictionary.NOT_A_VALID_TIMESTAMP);
-                bigramProbabilities.put(new Pair<>(prevWord, word),
-                        bigramProbability);
-            }
-            prevWord = (random.nextDouble() < bigramContinueRate) ? word : null;
-        }
-
-        final BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
-        binaryDictionary.addMultipleDictionaryEntries(languageModelParams);
-
-        for (Map.Entry<String, Integer> entry : unigramProbabilities.entrySet()) {
-            assertEquals((int)entry.getValue(), binaryDictionary.getFrequency(entry.getKey()));
-        }
-
-        for (Map.Entry<Pair<String, String>, Integer> entry : bigramProbabilities.entrySet()) {
-            final String word0 = entry.getKey().first;
-            final String word1 = entry.getKey().second;
-            final int bigramProbability = entry.getValue();
-            assertEquals(bigramProbability != Dictionary.NOT_A_PROBABILITY,
-                    isValidBigram(binaryDictionary, word0, word1));
-            if (canCheckBigramProbability(formatVersion)) {
-                assertEquals(bigramProbability,
-                        getBigramProbability(binaryDictionary, word0, word1));
-            }
-        }
     }
 
     public void testGetWordProperties() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testGetWordProperties(formatVersion);
-        }
-    }
-
-    private void testGetWordProperties(final int formatVersion) {
         final long seed = System.currentTimeMillis();
         final Random random = new Random(seed);
         final int UNIGRAM_COUNT = 1000;
         final int BIGRAM_COUNT = 1000;
         final int codePointSetSize = 20;
         final int[] codePointSet = CodePointUtils.generateCodePointSet(codePointSetSize, random);
-
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        final BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
+        final File dictFile = createEmptyDictionaryAndGetFile(FormatSpec.VERSION403);
+        final BinaryDictionary binaryDictionary = getBinaryDictionary(dictFile);
 
         final WordProperty invalidWordProperty = binaryDictionary.getWordProperty("dummyWord",
                 false /* isBeginningOfSentence */);
@@ -1008,11 +707,10 @@
             final String word = CodePointUtils.generateWord(random, codePointSet);
             final int unigramProbability = random.nextInt(0xFF);
             final boolean isNotAWord = random.nextBoolean();
-            final boolean isBlacklisted = random.nextBoolean();
+            final boolean isPossiblyOffensive = random.nextBoolean();
             // TODO: Add tests for historical info.
             binaryDictionary.addUnigramEntry(word, unigramProbability,
-                    null /* shortcutTarget */, BinaryDictionary.NOT_A_PROBABILITY,
-                    false /* isBeginningOfSentence */, isNotAWord, isBlacklisted,
+                    false /* isBeginningOfSentence */, isNotAWord, isPossiblyOffensive,
                     BinaryDictionary.NOT_A_VALID_TIMESTAMP);
             if (binaryDictionary.needsToRunGC(false /* mindsBlockByGC */)) {
                 binaryDictionary.flushWithGC();
@@ -1024,11 +722,9 @@
             assertEquals(word, wordProperty.mWord);
             assertTrue(wordProperty.isValid());
             assertEquals(isNotAWord, wordProperty.mIsNotAWord);
-            assertEquals(isBlacklisted, wordProperty.mIsBlacklistEntry);
-            assertEquals(false, wordProperty.mHasBigrams);
-            assertEquals(false, wordProperty.mHasShortcuts);
+            assertEquals(isPossiblyOffensive, wordProperty.mIsPossiblyOffensive);
+            assertEquals(false, wordProperty.mHasNgrams);
             assertEquals(unigramProbability, wordProperty.mProbabilityInfo.mProbability);
-            assertTrue(wordProperty.mShortcutTargets.isEmpty());
         }
 
         for (int i = 0; i < BIGRAM_COUNT; i++) {
@@ -1062,41 +758,25 @@
             final HashSet<String> bigramWord1s = bigrams.get(word0);
             final WordProperty wordProperty = binaryDictionary.getWordProperty(word0,
                     false /* isBeginningOfSentence */);
-            assertEquals(bigramWord1s.size(), wordProperty.mBigrams.size());
-            for (int j = 0; j < wordProperty.mBigrams.size(); j++) {
-                final String word1 = wordProperty.mBigrams.get(j).mWord;
+            assertEquals(bigramWord1s.size(), wordProperty.mNgrams.size());
+            // TODO: Support ngram.
+            for (final WeightedString bigramTarget : wordProperty.getBigrams()) {
+                final String word1 = bigramTarget.mWord;
                 assertTrue(bigramWord1s.contains(word1));
-                if (canCheckBigramProbability(formatVersion)) {
-                    final int bigramProbability = bigramProbabilities.get(new Pair<>(word0, word1));
-                    assertEquals(bigramProbability, wordProperty.mBigrams.get(j).getProbability());
-                }
+                final int bigramProbability = bigramProbabilities.get(new Pair<>(word0, word1));
+                assertEquals(bigramProbability, bigramTarget.getProbability());
             }
         }
     }
 
     public void testIterateAllWords() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testIterateAllWords(formatVersion);
-        }
-    }
-
-    private void testIterateAllWords(final int formatVersion) {
         final long seed = System.currentTimeMillis();
         final Random random = new Random(seed);
         final int UNIGRAM_COUNT = 1000;
         final int BIGRAM_COUNT = 1000;
         final int codePointSetSize = 20;
         final int[] codePointSet = CodePointUtils.generateCodePointSet(codePointSetSize, random);
-
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        final BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
+        final BinaryDictionary binaryDictionary = getEmptyBinaryDictionary(FormatSpec.VERSION403);
 
         final WordProperty invalidWordProperty = binaryDictionary.getWordProperty("dummyWord",
                 false /* isBeginningOfSentence */);
@@ -1155,15 +835,16 @@
                     wordProperty.mProbabilityInfo.mProbability);
             wordSet.remove(word0);
             final HashSet<String> bigramWord1s = bigrams.get(word0);
-            for (int j = 0; j < wordProperty.mBigrams.size(); j++) {
-                final String word1 = wordProperty.mBigrams.get(j).mWord;
-                assertTrue(bigramWord1s.contains(word1));
-                final Pair<String, String> bigram = new Pair<>(word0, word1);
-                if (canCheckBigramProbability(formatVersion)) {
+            // TODO: Support ngram.
+            if (wordProperty.mHasNgrams) {
+                for (final WeightedString bigramTarget : wordProperty.getBigrams()) {
+                    final String word1 = bigramTarget.mWord;
+                    assertTrue(bigramWord1s.contains(word1));
+                    final Pair<String, String> bigram = new Pair<>(word0, word1);
                     final int bigramProbability = bigramProbabilitiesToCheckLater.get(bigram);
-                    assertEquals(bigramProbability, wordProperty.mBigrams.get(j).getProbability());
+                    assertEquals(bigramProbability, bigramTarget.getProbability());
+                    bigramSet.remove(bigram);
                 }
-                bigramSet.remove(bigram);
             }
             token = result.mNextToken;
         } while (token != 0);
@@ -1171,346 +852,33 @@
         assertTrue(bigramSet.isEmpty());
     }
 
-    public void testAddShortcuts() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testAddShortcuts(formatVersion);
-        }
-    }
-
-    private void testAddShortcuts(final int formatVersion) {
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        final BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
-
-        final int unigramProbability = 100;
-        final int shortcutProbability = 10;
-        binaryDictionary.addUnigramEntry("aaa", unigramProbability, "zzz",
-                shortcutProbability, false /* isBeginningOfSentence */,
-                false /* isNotAWord */, false /* isBlacklisted */, 0 /* timestamp */);
-        WordProperty wordProperty = binaryDictionary.getWordProperty("aaa",
-                false /* isBeginningOfSentence */);
-        assertEquals(1, wordProperty.mShortcutTargets.size());
-        assertEquals("zzz", wordProperty.mShortcutTargets.get(0).mWord);
-        assertEquals(shortcutProbability, wordProperty.mShortcutTargets.get(0).getProbability());
-        final int updatedShortcutProbability = 2;
-        binaryDictionary.addUnigramEntry("aaa", unigramProbability, "zzz",
-                updatedShortcutProbability, false /* isBeginningOfSentence */,
-                false /* isNotAWord */, false /* isBlacklisted */, 0 /* timestamp */);
-        wordProperty = binaryDictionary.getWordProperty("aaa",
-                false /* isBeginningOfSentence */);
-        assertEquals(1, wordProperty.mShortcutTargets.size());
-        assertEquals("zzz", wordProperty.mShortcutTargets.get(0).mWord);
-        assertEquals(updatedShortcutProbability,
-                wordProperty.mShortcutTargets.get(0).getProbability());
-        binaryDictionary.addUnigramEntry("aaa", unigramProbability, "yyy",
-                shortcutProbability, false /* isBeginningOfSentence */, false /* isNotAWord */,
-                false /* isBlacklisted */, 0 /* timestamp */);
-        final HashMap<String, Integer> shortcutTargets = new HashMap<>();
-        shortcutTargets.put("zzz", updatedShortcutProbability);
-        shortcutTargets.put("yyy", shortcutProbability);
-        wordProperty = binaryDictionary.getWordProperty("aaa",
-                false /* isBeginningOfSentence */);
-        assertEquals(2, wordProperty.mShortcutTargets.size());
-        for (WeightedString shortcutTarget : wordProperty.mShortcutTargets) {
-            assertTrue(shortcutTargets.containsKey(shortcutTarget.mWord));
-            assertEquals((int)shortcutTargets.get(shortcutTarget.mWord),
-                    shortcutTarget.getProbability());
-            shortcutTargets.remove(shortcutTarget.mWord);
-        }
-        shortcutTargets.put("zzz", updatedShortcutProbability);
-        shortcutTargets.put("yyy", shortcutProbability);
-        binaryDictionary.flushWithGC();
-        wordProperty = binaryDictionary.getWordProperty("aaa",
-                false /* isBeginningOfSentence */);
-        assertEquals(2, wordProperty.mShortcutTargets.size());
-        for (WeightedString shortcutTarget : wordProperty.mShortcutTargets) {
-            assertTrue(shortcutTargets.containsKey(shortcutTarget.mWord));
-            assertEquals((int)shortcutTargets.get(shortcutTarget.mWord),
-                    shortcutTarget.getProbability());
-            shortcutTargets.remove(shortcutTarget.mWord);
-        }
-    }
-
-    public void testAddManyShortcuts() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testAddManyShortcuts(formatVersion);
-        }
-    }
-
-    private void testAddManyShortcuts(final int formatVersion) {
-        final long seed = System.currentTimeMillis();
-        final Random random = new Random(seed);
-        final int UNIGRAM_COUNT = 1000;
-        final int SHORTCUT_COUNT = 10000;
-        final int codePointSetSize = 20;
-        final int[] codePointSet = CodePointUtils.generateCodePointSet(codePointSetSize, random);
-
-        final ArrayList<String> words = new ArrayList<>();
-        final HashMap<String, Integer> unigramProbabilities = new HashMap<>();
-        final HashMap<String, HashMap<String, Integer>> shortcutTargets = new HashMap<>();
-
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        final BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
-
-        for (int i = 0; i < UNIGRAM_COUNT; i++) {
-            final String word = CodePointUtils.generateWord(random, codePointSet);
-            final int unigramProbability = random.nextInt(0xFF);
-            addUnigramWord(binaryDictionary, word, unigramProbability);
-            words.add(word);
-            unigramProbabilities.put(word, unigramProbability);
-            if (binaryDictionary.needsToRunGC(true /* mindsBlockByGC */)) {
-                binaryDictionary.flushWithGC();
-            }
-        }
-        for (int i = 0; i < SHORTCUT_COUNT; i++) {
-            final String shortcutTarget = CodePointUtils.generateWord(random, codePointSet);
-            final int shortcutProbability = random.nextInt(0xF);
-            final String word = words.get(random.nextInt(words.size()));
-            final int unigramProbability = unigramProbabilities.get(word);
-            binaryDictionary.addUnigramEntry(word, unigramProbability, shortcutTarget,
-                    shortcutProbability, false /* isBeginningOfSentence */, false /* isNotAWord */,
-                    false /* isBlacklisted */, 0 /* timestamp */);
-            if (shortcutTargets.containsKey(word)) {
-                final HashMap<String, Integer> shortcutTargetsOfWord = shortcutTargets.get(word);
-                shortcutTargetsOfWord.put(shortcutTarget, shortcutProbability);
-            } else {
-                final HashMap<String, Integer> shortcutTargetsOfWord = new HashMap<>();
-                shortcutTargetsOfWord.put(shortcutTarget, shortcutProbability);
-                shortcutTargets.put(word, shortcutTargetsOfWord);
-            }
-            if (binaryDictionary.needsToRunGC(true /* mindsBlockByGC */)) {
-                binaryDictionary.flushWithGC();
-            }
-        }
-
-        for (final String word : words) {
-            final WordProperty wordProperty = binaryDictionary.getWordProperty(word,
-                    false /* isBeginningOfSentence */);
-            assertEquals((int)unigramProbabilities.get(word),
-                    wordProperty.mProbabilityInfo.mProbability);
-            if (!shortcutTargets.containsKey(word)) {
-                // The word does not have shortcut targets.
-                continue;
-            }
-            assertEquals(shortcutTargets.get(word).size(), wordProperty.mShortcutTargets.size());
-            for (final WeightedString shortcutTarget : wordProperty.mShortcutTargets) {
-                final String targetCodePonts = shortcutTarget.mWord;
-                assertEquals((int)shortcutTargets.get(word).get(targetCodePonts),
-                        shortcutTarget.getProbability());
-            }
-        }
-    }
-
-    public void testDictMigration() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testDictMigration(FormatSpec.VERSION4_ONLY_FOR_TESTING, formatVersion);
-        }
-    }
-
-    private void testDictMigration(final int fromFormatVersion, final int toFormatVersion) {
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", fromFormatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        final BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
-        final int unigramProbability = 100;
-        addUnigramWord(binaryDictionary, "aaa", unigramProbability);
-        addUnigramWord(binaryDictionary, "bbb", unigramProbability);
-        final int bigramProbability = 150;
-        addBigramWords(binaryDictionary, "aaa", "bbb", bigramProbability);
-        final int shortcutProbability = 10;
-        binaryDictionary.addUnigramEntry("ccc", unigramProbability, "xxx", shortcutProbability,
-                false /* isBeginningOfSentence */, false /* isNotAWord */,
-                false /* isBlacklisted */, 0 /* timestamp */);
-        binaryDictionary.addUnigramEntry("ddd", unigramProbability, null /* shortcutTarget */,
-                Dictionary.NOT_A_PROBABILITY, false /* isBeginningOfSentence */,
-                true /* isNotAWord */, true /* isBlacklisted */, 0 /* timestamp */);
-        binaryDictionary.addNgramEntry(PrevWordsInfo.BEGINNING_OF_SENTENCE,
-                "aaa", bigramProbability, 0 /* timestamp */);
-        assertEquals(unigramProbability, binaryDictionary.getFrequency("aaa"));
-        assertEquals(unigramProbability, binaryDictionary.getFrequency("bbb"));
-        assertTrue(isValidBigram(binaryDictionary, "aaa", "bbb"));
-        assertEquals(fromFormatVersion, binaryDictionary.getFormatVersion());
-        assertTrue(binaryDictionary.migrateTo(toFormatVersion));
-        assertTrue(binaryDictionary.isValidDictionary());
-        assertEquals(toFormatVersion, binaryDictionary.getFormatVersion());
-        assertEquals(unigramProbability, binaryDictionary.getFrequency("aaa"));
-        assertEquals(unigramProbability, binaryDictionary.getFrequency("bbb"));
-        if (canCheckBigramProbability(toFormatVersion)) {
-            assertEquals(bigramProbability, getBigramProbability(binaryDictionary, "aaa", "bbb"));
-            assertEquals(bigramProbability, binaryDictionary.getNgramProbability(
-                    PrevWordsInfo.BEGINNING_OF_SENTENCE, "aaa"));
-        }
-        assertTrue(isValidBigram(binaryDictionary, "aaa", "bbb"));
-        WordProperty wordProperty = binaryDictionary.getWordProperty("ccc",
-                false /* isBeginningOfSentence */);
-        assertEquals(1, wordProperty.mShortcutTargets.size());
-        assertEquals("xxx", wordProperty.mShortcutTargets.get(0).mWord);
-        wordProperty = binaryDictionary.getWordProperty("ddd",
-                false /* isBeginningOfSentence */);
-        assertTrue(wordProperty.mIsBlacklistEntry);
-        assertTrue(wordProperty.mIsNotAWord);
-    }
-
-    public void testLargeDictMigration() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testLargeDictMigration(FormatSpec.VERSION4_ONLY_FOR_TESTING, formatVersion);
-        }
-    }
-
-    private void testLargeDictMigration(final int fromFormatVersion, final int toFormatVersion) {
-        final int UNIGRAM_COUNT = 3000;
-        final int BIGRAM_COUNT = 3000;
-        final int codePointSetSize = 50;
-        final long seed = System.currentTimeMillis();
-        final Random random = new Random(seed);
-
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", fromFormatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        final BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
-
-        final ArrayList<String> words = new ArrayList<>();
-        final ArrayList<Pair<String, String>> bigrams = new ArrayList<>();
-        final int[] codePointSet = CodePointUtils.generateCodePointSet(codePointSetSize, random);
-        final HashMap<String, Integer> unigramProbabilities = new HashMap<>();
-        final HashMap<Pair<String, String>, Integer> bigramProbabilities = new HashMap<>();
-
-        for (int i = 0; i < UNIGRAM_COUNT; i++) {
-            final String word = CodePointUtils.generateWord(random, codePointSet);
-            final int unigramProbability = random.nextInt(0xFF);
-            addUnigramWord(binaryDictionary, word, unigramProbability);
-            if (binaryDictionary.needsToRunGC(true /* mindsBlockByGC */)) {
-                binaryDictionary.flushWithGC();
-            }
-            words.add(word);
-            unigramProbabilities.put(word, unigramProbability);
-        }
-
-        for (int i = 0; i < BIGRAM_COUNT; i++) {
-            final int word0Index = random.nextInt(words.size());
-            final int word1Index = random.nextInt(words.size());
-            if (word0Index == word1Index) {
-                continue;
-            }
-            final String word0 = words.get(word0Index);
-            final String word1 = words.get(word1Index);
-            final int unigramProbability = unigramProbabilities.get(word1);
-            final int bigramProbability =
-                    random.nextInt(0xFF - unigramProbability) + unigramProbability;
-            addBigramWords(binaryDictionary, word0, word1, bigramProbability);
-            if (binaryDictionary.needsToRunGC(true /* mindsBlockByGC */)) {
-                binaryDictionary.flushWithGC();
-            }
-            final Pair<String, String> bigram = new Pair<>(word0, word1);
-            bigrams.add(bigram);
-            bigramProbabilities.put(bigram, bigramProbability);
-        }
-        assertTrue(binaryDictionary.migrateTo(toFormatVersion));
-
-        for (final String word : words) {
-            assertEquals((int)unigramProbabilities.get(word), binaryDictionary.getFrequency(word));
-        }
-        assertEquals(unigramProbabilities.size(), Integer.parseInt(
-                binaryDictionary.getPropertyForTest(BinaryDictionary.UNIGRAM_COUNT_QUERY)));
-
-        for (final Pair<String, String> bigram : bigrams) {
-            if (canCheckBigramProbability(toFormatVersion)) {
-                assertEquals((int)bigramProbabilities.get(bigram),
-                        getBigramProbability(binaryDictionary, bigram.first, bigram.second));
-            }
-            assertTrue(isValidBigram(binaryDictionary, bigram.first, bigram.second));
-        }
-        assertEquals(bigramProbabilities.size(), Integer.parseInt(
-                binaryDictionary.getPropertyForTest(BinaryDictionary.BIGRAM_COUNT_QUERY)));
+    public void testPossiblyOffensiveAttributeMaintained() {
+        final BinaryDictionary binaryDictionary =
+                getEmptyBinaryDictionary(FormatSpec.VERSION403);
+        binaryDictionary.addUnigramEntry("ddd", 100, false, true, true, 0);
+        WordProperty wordProperty = binaryDictionary.getWordProperty("ddd", false);
+        assertEquals(true, wordProperty.mIsPossiblyOffensive);
     }
 
     public void testBeginningOfSentence() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            if (supportsBeginningOfSentence(formatVersion)) {
-                testBeginningOfSentence(formatVersion);
-            }
-        }
-    }
-
-    private void testBeginningOfSentence(final int formatVersion) {
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        final BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
+        final BinaryDictionary binaryDictionary = getEmptyBinaryDictionary(FormatSpec.VERSION403);
         final int dummyProbability = 0;
-        final PrevWordsInfo prevWordsInfoBeginningOfSentence = PrevWordsInfo.BEGINNING_OF_SENTENCE;
+        final NgramContext beginningOfSentenceContext = NgramContext.BEGINNING_OF_SENTENCE;
         final int bigramProbability = 200;
         addUnigramWord(binaryDictionary, "aaa", dummyProbability);
-        binaryDictionary.addNgramEntry(prevWordsInfoBeginningOfSentence, "aaa", bigramProbability,
+        binaryDictionary.addNgramEntry(beginningOfSentenceContext, "aaa", bigramProbability,
                 BinaryDictionary.NOT_A_VALID_TIMESTAMP /* timestamp */);
         assertEquals(bigramProbability,
-                binaryDictionary.getNgramProbability(prevWordsInfoBeginningOfSentence, "aaa"));
-        binaryDictionary.addNgramEntry(prevWordsInfoBeginningOfSentence, "aaa", bigramProbability,
+                binaryDictionary.getNgramProbability(beginningOfSentenceContext, "aaa"));
+        binaryDictionary.addNgramEntry(beginningOfSentenceContext, "aaa", bigramProbability,
                 BinaryDictionary.NOT_A_VALID_TIMESTAMP /* timestamp */);
         addUnigramWord(binaryDictionary, "bbb", dummyProbability);
-        binaryDictionary.addNgramEntry(prevWordsInfoBeginningOfSentence, "bbb", bigramProbability,
+        binaryDictionary.addNgramEntry(beginningOfSentenceContext, "bbb", bigramProbability,
                 BinaryDictionary.NOT_A_VALID_TIMESTAMP /* timestamp */);
         binaryDictionary.flushWithGC();
         assertEquals(bigramProbability,
-                binaryDictionary.getNgramProbability(prevWordsInfoBeginningOfSentence, "aaa"));
+                binaryDictionary.getNgramProbability(beginningOfSentenceContext, "aaa"));
         assertEquals(bigramProbability,
-                binaryDictionary.getNgramProbability(prevWordsInfoBeginningOfSentence, "bbb"));
-    }
-
-    public void testGetMaxFrequencyOfExactMatches() {
-        for (final int formatVersion : DICT_FORMAT_VERSIONS) {
-            testGetMaxFrequencyOfExactMatches(formatVersion);
-        }
-    }
-
-    private void testGetMaxFrequencyOfExactMatches(final int formatVersion) {
-        File dictFile = null;
-        try {
-            dictFile = createEmptyDictionaryAndGetFile("TestBinaryDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        final BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, dictFile.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
-        addUnigramWord(binaryDictionary, "abc", 10);
-        addUnigramWord(binaryDictionary, "aBc", 15);
-        assertEquals(15, binaryDictionary.getMaxFrequencyOfExactMatches("abc"));
-        addUnigramWord(binaryDictionary, "ab'c", 20);
-        assertEquals(20, binaryDictionary.getMaxFrequencyOfExactMatches("abc"));
-        addUnigramWord(binaryDictionary, "a-b-c", 25);
-        assertEquals(25, binaryDictionary.getMaxFrequencyOfExactMatches("abc"));
-        addUnigramWord(binaryDictionary, "ab-'-'-'-c", 30);
-        assertEquals(30, binaryDictionary.getMaxFrequencyOfExactMatches("abc"));
-        addUnigramWord(binaryDictionary, "ab c", 255);
-        assertEquals(30, binaryDictionary.getMaxFrequencyOfExactMatches("abc"));
+                binaryDictionary.getNgramProbability(beginningOfSentenceContext, "bbb"));
     }
 }
diff --git a/tests/src/com/android/inputmethod/latin/BlueUnderlineTests.java b/tests/src/com/android/inputmethod/latin/BlueUnderlineTests.java
index 6e894de..afb94ef 100644
--- a/tests/src/com/android/inputmethod/latin/BlueUnderlineTests.java
+++ b/tests/src/com/android/inputmethod/latin/BlueUnderlineTests.java
@@ -20,6 +20,8 @@
 import android.text.style.SuggestionSpan;
 import android.text.style.UnderlineSpan;
 
+import com.android.inputmethod.latin.common.Constants;
+
 @LargeTest
 public class BlueUnderlineTests extends InputTestsBase {
 
@@ -28,7 +30,7 @@
         final int EXPECTED_SPAN_START = 0;
         final int EXPECTED_SPAN_END = 4;
         type(STRING_TO_TYPE);
-        sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
+        sleep(DELAY_TO_WAIT_FOR_UNDERLINE_MILLIS);
         runMessages();
         final SpanGetter span = new SpanGetter(mEditText.getText(), SuggestionSpan.class);
         assertEquals("show blue underline, span start", EXPECTED_SPAN_START, span.mStart);
@@ -37,12 +39,12 @@
     }
 
     public void testBlueUnderlineDisappears() {
-        final String STRING_1_TO_TYPE = "tgis";
-        final String STRING_2_TO_TYPE = "q";
+        final String STRING_1_TO_TYPE = "tqis";
+        final String STRING_2_TO_TYPE = "g";
         final int EXPECTED_SPAN_START = 0;
         final int EXPECTED_SPAN_END = 5;
         type(STRING_1_TO_TYPE);
-        sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
+        sleep(DELAY_TO_WAIT_FOR_UNDERLINE_MILLIS);
         runMessages();
         type(STRING_2_TO_TYPE);
         // We haven't have time to look into the dictionary yet, so the line should still be
@@ -51,7 +53,7 @@
         assertEquals("extend blue underline, span start", EXPECTED_SPAN_START, spanBefore.mStart);
         assertEquals("extend blue underline, span end", EXPECTED_SPAN_END, spanBefore.mEnd);
         assertTrue("extend blue underline, span color", spanBefore.isAutoCorrectionIndicator());
-        sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
+        sleep(DELAY_TO_WAIT_FOR_UNDERLINE_MILLIS);
         runMessages();
         // Now we have been able to re-evaluate the word, there shouldn't be an auto-correction span
         final SpanGetter spanAfter = new SpanGetter(mEditText.getText(), SuggestionSpan.class);
@@ -61,22 +63,21 @@
     public void testBlueUnderlineOnBackspace() {
         final String STRING_TO_TYPE = "tgis";
         final int typedLength = STRING_TO_TYPE.length();
-        final int EXPECTED_SUGGESTION_SPAN_START = -1;
         final int EXPECTED_UNDERLINE_SPAN_START = 0;
-        final int EXPECTED_UNDERLINE_SPAN_END = 4;
+        final int EXPECTED_UNDERLINE_SPAN_END = 3;
         type(STRING_TO_TYPE);
-        sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
+        sleep(DELAY_TO_WAIT_FOR_UNDERLINE_MILLIS);
         runMessages();
         type(Constants.CODE_SPACE);
         // typedLength + 1 because we also typed a space
         mLatinIME.onUpdateSelection(0, 0, typedLength + 1, typedLength + 1, -1, -1);
-        sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
+        sleep(DELAY_TO_WAIT_FOR_UNDERLINE_MILLIS);
         runMessages();
         type(Constants.CODE_DELETE);
-        sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
+        sleep(DELAY_TO_WAIT_FOR_UNDERLINE_MILLIS);
         runMessages();
         type(Constants.CODE_DELETE);
-        sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
+        sleep(DELAY_TO_WAIT_FOR_UNDERLINE_MILLIS);
         runMessages();
         final SpanGetter suggestionSpan = new SpanGetter(mEditText.getText(), SuggestionSpan.class);
         assertFalse("show no blue underline after backspace, span should not be the auto-"
@@ -93,7 +94,7 @@
         final int typedLength = STRING_TO_TYPE.length();
         final int NEW_CURSOR_POSITION = 0;
         type(STRING_TO_TYPE);
-        sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
+        sleep(DELAY_TO_WAIT_FOR_UNDERLINE_MILLIS);
         // Simulate the onUpdateSelection() event
         mLatinIME.onUpdateSelection(0, 0, typedLength, typedLength, -1, -1);
         runMessages();
@@ -103,7 +104,7 @@
         mInputConnection.setSelection(NEW_CURSOR_POSITION, NEW_CURSOR_POSITION);
         mLatinIME.onUpdateSelection(typedLength, typedLength,
                 NEW_CURSOR_POSITION, NEW_CURSOR_POSITION, -1, -1);
-        sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
+        sleep(DELAY_TO_WAIT_FOR_UNDERLINE_MILLIS);
         runMessages();
         final SpanGetter span = new SpanGetter(mEditText.getText(), SuggestionSpan.class);
         assertFalse("blue underline removed when cursor is moved",
@@ -113,7 +114,7 @@
     public void testComposingStopsOnSpace() {
         final String STRING_TO_TYPE = "this ";
         type(STRING_TO_TYPE);
-        sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
+        sleep(DELAY_TO_WAIT_FOR_UNDERLINE_MILLIS);
         // Simulate the onUpdateSelection() event
         mLatinIME.onUpdateSelection(0, 0, STRING_TO_TYPE.length(), STRING_TO_TYPE.length(), -1, -1);
         runMessages();
diff --git a/tests/src/com/android/inputmethod/latin/ContactsContentObserverTest.java b/tests/src/com/android/inputmethod/latin/ContactsContentObserverTest.java
new file mode 100644
index 0000000..f90a18b
--- /dev/null
+++ b/tests/src/com/android/inputmethod/latin/ContactsContentObserverTest.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.validateMockitoUsage;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.provider.ContactsContract.Contacts;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.util.ArrayList;
+
+/**
+ * Tests for {@link ContactsContentObserver}.
+ */
+@SmallTest
+public class ContactsContentObserverTest {
+    private static final int UPDATED_CONTACT_COUNT = 10;
+    private static final int STALE_CONTACT_COUNT = 8;
+    private static final ArrayList<String> STALE_NAMES_LIST = new ArrayList<>();
+    private static final ArrayList<String> UPDATED_NAMES_LIST = new ArrayList<>();
+
+    static {
+        STALE_NAMES_LIST.add("Larry Page");
+        STALE_NAMES_LIST.add("Roger Federer");
+        UPDATED_NAMES_LIST.add("Larry Page");
+        UPDATED_NAMES_LIST.add("Roger Federer");
+        UPDATED_NAMES_LIST.add("Barak Obama");
+    }
+
+    @Mock private ContactsManager mMockManager;
+    @Mock private Context mContext;
+
+    private ContactsContentObserver mObserver;
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+        mObserver = new ContactsContentObserver(mMockManager, mContext);
+    }
+
+    @After
+    public void tearDown() {
+        validateMockitoUsage();
+    }
+
+    @Test
+    public void testHaveContentsChanged_NoChange() {
+        when(mMockManager.getContactCount()).thenReturn(STALE_CONTACT_COUNT);
+        when(mMockManager.getContactCountAtLastRebuild()).thenReturn(STALE_CONTACT_COUNT);
+        when(mMockManager.getValidNames(eq(Contacts.CONTENT_URI))).thenReturn(STALE_NAMES_LIST);
+        when(mMockManager.getHashCodeAtLastRebuild()).thenReturn(STALE_NAMES_LIST.hashCode());
+        assertFalse(mObserver.haveContentsChanged());
+    }
+    @Test
+    public void testHaveContentsChanged_UpdatedCount() {
+        when(mMockManager.getContactCount()).thenReturn(UPDATED_CONTACT_COUNT);
+        when(mMockManager.getContactCountAtLastRebuild()).thenReturn(STALE_CONTACT_COUNT);
+        assertTrue(mObserver.haveContentsChanged());
+    }
+
+    @Test
+    public void testHaveContentsChanged_HashUpdate() {
+        when(mMockManager.getContactCount()).thenReturn(STALE_CONTACT_COUNT);
+        when(mMockManager.getContactCountAtLastRebuild()).thenReturn(STALE_CONTACT_COUNT);
+        when(mMockManager.getValidNames(eq(Contacts.CONTENT_URI))).thenReturn(UPDATED_NAMES_LIST);
+        when(mMockManager.getHashCodeAtLastRebuild()).thenReturn(STALE_NAMES_LIST.hashCode());
+        assertTrue(mObserver.haveContentsChanged());
+    }
+}
diff --git a/tests/src/com/android/inputmethod/latin/ContactsDictionaryUtilsTest.java b/tests/src/com/android/inputmethod/latin/ContactsDictionaryUtilsTest.java
new file mode 100644
index 0000000..9b49f1a
--- /dev/null
+++ b/tests/src/com/android/inputmethod/latin/ContactsDictionaryUtilsTest.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import org.junit.Test;
+
+import java.util.Locale;
+
+/**
+ * Tests for {@link ContactsDictionaryUtils}
+ */
+@SmallTest
+public class ContactsDictionaryUtilsTest {
+
+    @Test
+    public void testGetWordEndPosition() {
+        final String testString1 = "Larry Page";
+        assertEquals(5, ContactsDictionaryUtils.getWordEndPosition(
+                testString1, testString1.length(), 0 /* startIndex */));
+
+        assertEquals(10, ContactsDictionaryUtils.getWordEndPosition(
+                testString1, testString1.length(), 6 /* startIndex */));
+
+        final String testString2 = "Larry-Page";
+        assertEquals(10, ContactsDictionaryUtils.getWordEndPosition(
+                testString2, testString1.length(), 0 /* startIndex */));
+
+        final String testString3 = "Larry'Page";
+        assertEquals(10, ContactsDictionaryUtils.getWordEndPosition(
+                testString3, testString1.length(), 0 /* startIndex */));
+    }
+
+    @Test
+    public void testUseFirstLastBigramsForLocale() {
+        assertTrue(ContactsDictionaryUtils.useFirstLastBigramsForLocale(Locale.ENGLISH));
+        assertTrue(ContactsDictionaryUtils.useFirstLastBigramsForLocale(Locale.US));
+        assertTrue(ContactsDictionaryUtils.useFirstLastBigramsForLocale(Locale.UK));
+        assertFalse(ContactsDictionaryUtils.useFirstLastBigramsForLocale(Locale.CHINA));
+        assertFalse(ContactsDictionaryUtils.useFirstLastBigramsForLocale(Locale.GERMAN));
+    }
+}
diff --git a/tests/src/com/android/inputmethod/latin/ContactsManagerTest.java b/tests/src/com/android/inputmethod/latin/ContactsManagerTest.java
new file mode 100644
index 0000000..6326b3b
--- /dev/null
+++ b/tests/src/com/android/inputmethod/latin/ContactsManagerTest.java
@@ -0,0 +1,127 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.database.Cursor;
+import android.database.MatrixCursor;
+import android.net.Uri;
+import android.provider.ContactsContract;
+import android.provider.ContactsContract.Contacts;
+import android.test.AndroidTestCase;
+import android.test.RenamingDelegatingContext;
+import android.test.mock.MockContentProvider;
+import android.test.mock.MockContentResolver;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+/**
+ * Tests for {@link ContactsManager}
+ */
+@SmallTest
+public class ContactsManagerTest extends AndroidTestCase {
+
+    private ContactsManager mManager;
+    private FakeContactsContentProvider mFakeContactsContentProvider;
+    private MatrixCursor mMatrixCursor;
+
+    @Before
+    @Override
+    public void setUp() throws Exception {
+        // Fake content provider
+        mFakeContactsContentProvider = new FakeContactsContentProvider();
+        mMatrixCursor = new MatrixCursor(ContactsDictionaryConstants.PROJECTION);
+        // Add the fake content provider to fake content resolver.
+        final MockContentResolver contentResolver = new MockContentResolver();
+        contentResolver.addProvider(ContactsContract.AUTHORITY, mFakeContactsContentProvider);
+        // Add the fake content resolver to a fake context.
+        final ContextWithMockContentResolver context = new ContextWithMockContentResolver(mContext);
+        context.setContentResolver(contentResolver);
+
+        mManager = new ContactsManager(context);
+    }
+
+    @Test
+    public void testGetValidNames() {
+        final String contactName1 = "firstname lastname";
+        final String contactName2 = "larry";
+        mMatrixCursor.addRow(new Object[] { 1, contactName1 });
+        mMatrixCursor.addRow(new Object[] { 2, null /* null name */ });
+        mMatrixCursor.addRow(new Object[] { 3, contactName2 });
+        mMatrixCursor.addRow(new Object[] { 4, "floopy@example.com" /* invalid name */ });
+        mFakeContactsContentProvider.addQueryResult(Contacts.CONTENT_URI, mMatrixCursor);
+
+        final ArrayList<String> validNames = mManager.getValidNames(Contacts.CONTENT_URI);
+        assertEquals(2, validNames.size());
+        assertEquals(contactName1, validNames.get(0));
+        assertEquals(contactName2, validNames.get(1));
+    }
+
+    @Test
+    public void testGetCount() {
+        mMatrixCursor.addRow(new Object[] { 1, "firstname" });
+        mMatrixCursor.addRow(new Object[] { 2, null /* null name */ });
+        mMatrixCursor.addRow(new Object[] { 3, "larry" });
+        mMatrixCursor.addRow(new Object[] { 4, "floopy@example.com" /* invalid name */ });
+        mFakeContactsContentProvider.addQueryResult(Contacts.CONTENT_URI, mMatrixCursor);
+
+        assertEquals(4, mManager.getContactCount());
+    }
+
+
+    static class ContextWithMockContentResolver extends RenamingDelegatingContext {
+        private ContentResolver contentResolver;
+
+        public void setContentResolver(final ContentResolver contentResolver) {
+            this.contentResolver = contentResolver;
+        }
+
+        public ContextWithMockContentResolver(final Context targetContext) {
+            super(targetContext, "test");
+        }
+
+        @Override
+        public ContentResolver getContentResolver() {
+            return contentResolver;
+        }
+    }
+
+    static class FakeContactsContentProvider extends MockContentProvider {
+        private final HashMap<String, MatrixCursor> mQueryCursorMapForTestExpectations =
+                new HashMap<>();
+
+        @Override
+        public Cursor query(final Uri uri, final String[] projection, final String selection,
+                final String[] selectionArgs, final String sortOrder) {
+            return mQueryCursorMapForTestExpectations.get(uri.toString());
+        }
+
+        public void reset() {
+            mQueryCursorMapForTestExpectations.clear();
+        }
+
+        public void addQueryResult(final Uri uri, final MatrixCursor cursor) {
+            mQueryCursorMapForTestExpectations.put(uri.toString(), cursor);
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCacheTests.java b/tests/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCacheTests.java
new file mode 100644
index 0000000..6b0bbc2
--- /dev/null
+++ b/tests/src/com/android/inputmethod/latin/DictionaryFacilitatorLruCacheTests.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin;
+
+import java.util.Locale;
+
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.LargeTest;
+
+@LargeTest
+public class DictionaryFacilitatorLruCacheTests extends AndroidTestCase {
+    public void testGetFacilitator() {
+        final DictionaryFacilitatorLruCache cache =
+                new DictionaryFacilitatorLruCache(getContext(), "");
+
+        final DictionaryFacilitator dictionaryFacilitatorEnUs = cache.get(Locale.US);
+        assertNotNull(dictionaryFacilitatorEnUs);
+        assertTrue(dictionaryFacilitatorEnUs.isForLocale(Locale.US));
+
+        final DictionaryFacilitator dictionaryFacilitatorFr = cache.get(Locale.FRENCH);
+        assertNotNull(dictionaryFacilitatorEnUs);
+        assertTrue(dictionaryFacilitatorFr.isForLocale(Locale.FRENCH));
+
+        final DictionaryFacilitator dictionaryFacilitatorDe = cache.get(Locale.GERMANY);
+        assertNotNull(dictionaryFacilitatorDe);
+        assertTrue(dictionaryFacilitatorDe.isForLocale(Locale.GERMANY));
+    }
+}
diff --git a/tests/src/com/android/inputmethod/latin/DistracterFilterTest.java b/tests/src/com/android/inputmethod/latin/DistracterFilterTest.java
deleted file mode 100644
index e6fb282..0000000
--- a/tests/src/com/android/inputmethod/latin/DistracterFilterTest.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin;
-
-import java.util.ArrayList;
-import java.util.Locale;
-
-import android.content.Context;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.view.inputmethod.InputMethodSubtype;
-
-import com.android.inputmethod.latin.utils.DistracterFilterCheckingExactMatchesAndSuggestions;
-
-/**
- * Unit test for DistracterFilter
- */
-@LargeTest
-public class DistracterFilterTest extends AndroidTestCase {
-    private DistracterFilterCheckingExactMatchesAndSuggestions mDistracterFilter;
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        final Context context = getContext();
-        mDistracterFilter = new DistracterFilterCheckingExactMatchesAndSuggestions(context);
-        RichInputMethodManager.init(context);
-        final RichInputMethodManager richImm = RichInputMethodManager.getInstance();
-        final ArrayList<InputMethodSubtype> subtypes = new ArrayList<>();
-        subtypes.add(richImm.findSubtypeByLocaleAndKeyboardLayoutSet(
-                Locale.US.toString(), "qwerty"));
-        subtypes.add(richImm.findSubtypeByLocaleAndKeyboardLayoutSet(
-                Locale.FRENCH.toString(), "azerty"));
-        subtypes.add(richImm.findSubtypeByLocaleAndKeyboardLayoutSet(
-                Locale.GERMAN.toString(), "qwertz"));
-        mDistracterFilter.updateEnabledSubtypes(subtypes);
-    }
-
-    public void testIsDistractorToWordsInDictionaries() {
-        final PrevWordsInfo EMPTY_PREV_WORDS_INFO = PrevWordsInfo.EMPTY_PREV_WORDS_INFO;
-
-        final Locale localeEnUs = new Locale("en", "US");
-        String typedWord;
-
-        typedWord = "Bill";
-        // For this test case, we consider "Bill" is a distracter to "bill".
-        assertTrue(mDistracterFilter.isDistracterToWordsInDictionaries(
-                EMPTY_PREV_WORDS_INFO, typedWord, localeEnUs));
-
-        typedWord = "nOt";
-        // For this test case, we consider "nOt" is a distracter to "not".
-        assertTrue(mDistracterFilter.isDistracterToWordsInDictionaries(
-                EMPTY_PREV_WORDS_INFO, typedWord, localeEnUs));
-
-        typedWord = "youre";
-        // For this test case, we consider "youre" is a distracter to "you're".
-        assertTrue(mDistracterFilter.isDistracterToWordsInDictionaries(
-                EMPTY_PREV_WORDS_INFO, typedWord, localeEnUs));
-
-        typedWord = "Banana";
-        // For this test case, we consider "Banana" is a distracter to "banana".
-        assertTrue(mDistracterFilter.isDistracterToWordsInDictionaries(
-                EMPTY_PREV_WORDS_INFO, typedWord, localeEnUs));
-
-        typedWord = "orange";
-        // For this test case, we consider "orange" is not a distracter to any word in dictionaries.
-        assertFalse(mDistracterFilter.isDistracterToWordsInDictionaries(
-                EMPTY_PREV_WORDS_INFO, typedWord, localeEnUs));
-
-        typedWord = "Orange";
-        // For this test case, we consider "Orange" is a distracter to "orange".
-        assertTrue(mDistracterFilter.isDistracterToWordsInDictionaries(
-                EMPTY_PREV_WORDS_INFO, typedWord, localeEnUs));
-
-        typedWord = "café";
-        // For this test case, we consider "café" is a distracter to "cafe".
-        assertTrue(mDistracterFilter.isDistracterToWordsInDictionaries(
-                EMPTY_PREV_WORDS_INFO, typedWord, localeEnUs));
-
-        typedWord = "cafe";
-        // For this test case, we consider "cafe" is not a distracter to any word in dictionaries.
-        assertFalse(mDistracterFilter.isDistracterToWordsInDictionaries(
-                EMPTY_PREV_WORDS_INFO, typedWord, localeEnUs));
-
-        typedWord = "I'll";
-        // For this test case, we consider "I'll" is not a distracter to any word in dictionaries.
-        assertFalse(mDistracterFilter.isDistracterToWordsInDictionaries(
-                EMPTY_PREV_WORDS_INFO, typedWord, localeEnUs));
-
-        typedWord = "ill";
-        // For this test case, we consider "ill" is a distracter to "I'll"
-        assertTrue(mDistracterFilter.isDistracterToWordsInDictionaries(
-                EMPTY_PREV_WORDS_INFO, typedWord, localeEnUs));
-
-        typedWord = "asdfd";
-        // For this test case, we consider "asdfd" is not a distracter to any word in dictionaries.
-        assertFalse(
-                mDistracterFilter.isDistracterToWordsInDictionaries(
-                        EMPTY_PREV_WORDS_INFO, typedWord, localeEnUs));
-
-        typedWord = "thank";
-        // For this test case, we consider "thank" is not a distracter to any other word
-        // in dictionaries.
-        assertFalse(mDistracterFilter.isDistracterToWordsInDictionaries(
-                EMPTY_PREV_WORDS_INFO, typedWord, localeEnUs));
-
-        typedWord = "thabk";
-        // For this test case, we consider "thabk" is a distracter to "thank"
-        assertTrue(mDistracterFilter.isDistracterToWordsInDictionaries(
-                EMPTY_PREV_WORDS_INFO, typedWord, localeEnUs));
-
-        typedWord = "thanks";
-        // For this test case, we consider "thanks" is not a distracter to any other word
-        // in dictionaries.
-        assertFalse(mDistracterFilter.isDistracterToWordsInDictionaries(
-                EMPTY_PREV_WORDS_INFO, typedWord, localeEnUs));
-
-        typedWord = "thabks";
-        // For this test case, we consider "thabks" is a distracter to "thanks"
-        assertTrue(mDistracterFilter.isDistracterToWordsInDictionaries(
-                EMPTY_PREV_WORDS_INFO, typedWord, localeEnUs));
-
-        typedWord = "think";
-        // For this test case, we consider "think" is not a distracter to any other word
-        // in dictionaries.
-        assertFalse(mDistracterFilter.isDistracterToWordsInDictionaries(
-                EMPTY_PREV_WORDS_INFO, typedWord, localeEnUs));
-
-        typedWord = "thibk";
-        // For this test case, we consider "thibk" is a distracter to "think"
-        assertTrue(mDistracterFilter.isDistracterToWordsInDictionaries(
-                EMPTY_PREV_WORDS_INFO, typedWord, localeEnUs));
-
-        typedWord = "tgis";
-        // For this test case, we consider "tgis" is a distracter to "this"
-        assertTrue(mDistracterFilter.isDistracterToWordsInDictionaries(
-                EMPTY_PREV_WORDS_INFO, typedWord, localeEnUs));
-
-        final Locale localeDeDe = new Locale("de");
-
-        typedWord = "fUEr";
-        // For this test case, we consider "fUEr" is a distracter to "für".
-        assertTrue(mDistracterFilter.isDistracterToWordsInDictionaries(
-                EMPTY_PREV_WORDS_INFO, typedWord, localeDeDe));
-
-        typedWord = "fuer";
-        // For this test case, we consider "fuer" is a distracter to "für".
-        assertTrue(mDistracterFilter.isDistracterToWordsInDictionaries(
-                EMPTY_PREV_WORDS_INFO, typedWord, localeDeDe));
-
-        typedWord = "fur";
-        // For this test case, we consider "fur" is a distracter to "für".
-        assertTrue(mDistracterFilter.isDistracterToWordsInDictionaries(
-                EMPTY_PREV_WORDS_INFO, typedWord, localeDeDe));
-
-        final Locale localeFrFr = new Locale("fr");
-
-        typedWord = "a";
-        // For this test case, we consider "a" is a distracter to "à".
-        assertTrue(mDistracterFilter.isDistracterToWordsInDictionaries(
-                EMPTY_PREV_WORDS_INFO, typedWord, localeFrFr));
-
-        typedWord = "à";
-        // For this test case, we consider "à" is not a distracter to any word in dictionaries.
-        assertFalse(mDistracterFilter.isDistracterToWordsInDictionaries(
-                EMPTY_PREV_WORDS_INFO, typedWord, localeFrFr));
-
-        typedWord = "etre";
-        // For this test case, we consider "etre" is a distracter to "être".
-        assertTrue(mDistracterFilter.isDistracterToWordsInDictionaries(
-                EMPTY_PREV_WORDS_INFO, typedWord, localeFrFr));
-
-        typedWord = "États-unis";
-        // For this test case, we consider "États-unis" is a distracter to "États-Unis".
-        assertTrue(mDistracterFilter.isDistracterToWordsInDictionaries(
-                EMPTY_PREV_WORDS_INFO, typedWord, localeFrFr));
-
-        typedWord = "ÉtatsUnis";
-        // For this test case, we consider "ÉtatsUnis" is a distracter to "États-Unis".
-        assertTrue(mDistracterFilter.isDistracterToWordsInDictionaries(
-                EMPTY_PREV_WORDS_INFO, typedWord, localeFrFr));
-    }
-}
diff --git a/tests/src/com/android/inputmethod/latin/FusionDictionaryTests.java b/tests/src/com/android/inputmethod/latin/FusionDictionaryTests.java
deleted file mode 100644
index 09309bc..0000000
--- a/tests/src/com/android/inputmethod/latin/FusionDictionaryTests.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin;
-
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-import com.android.inputmethod.latin.makedict.FormatSpec.DictionaryOptions;
-import com.android.inputmethod.latin.makedict.FusionDictionary;
-import com.android.inputmethod.latin.makedict.ProbabilityInfo;
-import com.android.inputmethod.latin.makedict.FusionDictionary.PtNodeArray;
-
-import java.util.HashMap;
-
-/**
- * Unit test for FusionDictionary
- */
-@SmallTest
-public class FusionDictionaryTests extends AndroidTestCase {
-    public void testFindWordInTree() {
-        FusionDictionary dict = new FusionDictionary(new PtNodeArray(),
-                new DictionaryOptions(new HashMap<String,String>()));
-
-        dict.add("abc", new ProbabilityInfo(10), null, false /* isNotAWord */);
-        assertNull(FusionDictionary.findWordInTree(dict.mRootNodeArray, "aaa"));
-        assertNotNull(FusionDictionary.findWordInTree(dict.mRootNodeArray, "abc"));
-
-        dict.add("aa", new ProbabilityInfo(10), null, false /* isNotAWord */);
-        assertNull(FusionDictionary.findWordInTree(dict.mRootNodeArray, "aaa"));
-        assertNotNull(FusionDictionary.findWordInTree(dict.mRootNodeArray, "aa"));
-
-        dict.add("babcd", new ProbabilityInfo(10), null, false /* isNotAWord */);
-        dict.add("bacde", new ProbabilityInfo(10), null, false /* isNotAWord */);
-        assertNull(FusionDictionary.findWordInTree(dict.mRootNodeArray, "ba"));
-        assertNotNull(FusionDictionary.findWordInTree(dict.mRootNodeArray, "babcd"));
-        assertNotNull(FusionDictionary.findWordInTree(dict.mRootNodeArray, "bacde"));
-    }
-}
diff --git a/tests/src/com/android/inputmethod/latin/InputLogicTests.java b/tests/src/com/android/inputmethod/latin/InputLogicTests.java
index 59b858d..02cd21c 100644
--- a/tests/src/com/android/inputmethod/latin/InputLogicTests.java
+++ b/tests/src/com/android/inputmethod/latin/InputLogicTests.java
@@ -16,15 +16,33 @@
 
 package com.android.inputmethod.latin;
 
+import static android.test.MoreAsserts.assertNotEqual;
+
 import android.test.suitebuilder.annotation.LargeTest;
 import android.text.TextUtils;
 import android.view.inputmethod.BaseInputConnection;
 
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.define.DecoderSpecificConstants;
 import com.android.inputmethod.latin.settings.Settings;
 
 @LargeTest
 public class InputLogicTests extends InputTestsBase {
 
+    private boolean mNextWordPrediction;
+
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+        mNextWordPrediction = getBooleanPreference(Settings.PREF_BIGRAM_PREDICTIONS, true);
+    }
+
+    @Override
+    public void tearDown() throws Exception {
+        setBooleanPreference(Settings.PREF_BIGRAM_PREDICTIONS, mNextWordPrediction, true);
+        super.tearDown();
+    }
+
     public void testTypeWord() {
         final String WORD_TO_TYPE = "abcd";
         type(WORD_TO_TYPE);
@@ -36,7 +54,7 @@
         final String EXPECTED_RESULT = "thi";
         type(WORD_TO_TYPE);
         pickSuggestionManually(WORD_TO_TYPE);
-        mLatinIME.onUpdateSelection(0, 0, WORD_TO_TYPE.length(), WORD_TO_TYPE.length(), -1, -1);
+        sendUpdateForCursorMoveTo(WORD_TO_TYPE.length());
         type(Constants.CODE_DELETE);
         assertEquals("press suggestion then backspace", EXPECTED_RESULT,
                 mEditText.getText().toString());
@@ -49,7 +67,7 @@
         type(WORD_TO_TYPE);
         // Choose the auto-correction. For "tgis", the auto-correction should be "this".
         pickSuggestionManually(WORD_TO_PICK);
-        mLatinIME.onUpdateSelection(0, 0, WORD_TO_TYPE.length(), WORD_TO_TYPE.length(), -1, -1);
+        sendUpdateForCursorMoveTo(WORD_TO_TYPE.length());
         assertEquals("pick typed word over auto-correction then backspace", WORD_TO_PICK,
                 mEditText.getText().toString());
         type(Constants.CODE_DELETE);
@@ -63,7 +81,7 @@
         type(WORD_TO_TYPE);
         // Choose the typed word.
         pickSuggestionManually(WORD_TO_TYPE);
-        mLatinIME.onUpdateSelection(0, 0, WORD_TO_TYPE.length(), WORD_TO_TYPE.length(), -1, -1);
+        sendUpdateForCursorMoveTo(WORD_TO_TYPE.length());
         assertEquals("pick typed word over auto-correction then backspace", WORD_TO_TYPE,
                 mEditText.getText().toString());
         type(Constants.CODE_DELETE);
@@ -78,7 +96,7 @@
         type(WORD_TO_TYPE);
         // Choose the second suggestion, which should be "thus" when "tgis" is typed.
         pickSuggestionManually(WORD_TO_PICK);
-        mLatinIME.onUpdateSelection(0, 0, WORD_TO_TYPE.length(), WORD_TO_TYPE.length(), -1, -1);
+        sendUpdateForCursorMoveTo(WORD_TO_TYPE.length());
         assertEquals("pick different suggestion then backspace", WORD_TO_PICK,
                 mEditText.getText().toString());
         type(Constants.CODE_DELETE);
@@ -93,7 +111,8 @@
         final int SELECTION_END = 19;
         final String EXPECTED_RESULT = "some text  some text";
         type(STRING_TO_TYPE);
-        // There is no IMF to call onUpdateSelection for us so we must do it by hand.
+        // Don't use the sendUpdateForCursorMove* family of methods here because they
+        // don't handle selections.
         // Send once to simulate the cursor actually responding to the move caused by typing.
         // This is necessary because LatinIME is bookkeeping to avoid confusing a real cursor
         // move with a move triggered by LatinIME inputting stuff.
@@ -113,7 +132,8 @@
         final int SELECTION_END = 19;
         final String EXPECTED_RESULT = "some text some text";
         type(STRING_TO_TYPE);
-        // There is no IMF to call onUpdateSelection for us so we must do it by hand.
+        // Don't use the sendUpdateForCursorMove* family of methods here because they
+        // don't handle selections.
         // Send once to simulate the cursor actually responding to the move caused by typing.
         // This is necessary because LatinIME is bookkeeping to avoid confusing a real cursor
         // move with a move triggered by LatinIME inputting stuff.
@@ -152,49 +172,90 @@
         final String STRING_TO_TYPE = "tgis.";
         final String EXPECTED_RESULT = "tgis.";
         type(STRING_TO_TYPE);
-        mLatinIME.onUpdateSelection(0, 0, STRING_TO_TYPE.length(), STRING_TO_TYPE.length(), -1, -1);
+        sendUpdateForCursorMoveTo(STRING_TO_TYPE.length());
         type(Constants.CODE_DELETE);
         assertEquals("auto-correct with period then revert", EXPECTED_RESULT,
                 mEditText.getText().toString());
     }
 
     public void testAutoCorrectWithSpaceThenRevert() {
+        // Backspacing to cancel the "tgis"->"this" autocorrection should result in
+        // a "phantom space": if the user presses space immediately after,
+        // only one space will be inserted in total.
         final String STRING_TO_TYPE = "tgis ";
-        final String EXPECTED_RESULT = "tgis ";
+        final String EXPECTED_RESULT = "tgis";
         type(STRING_TO_TYPE);
-        mLatinIME.onUpdateSelection(0, 0, STRING_TO_TYPE.length(), STRING_TO_TYPE.length(), -1, -1);
+        sendUpdateForCursorMoveTo(STRING_TO_TYPE.length());
         type(Constants.CODE_DELETE);
         assertEquals("auto-correct with space then revert", EXPECTED_RESULT,
                 mEditText.getText().toString());
     }
 
+    public void testAutoCorrectWithSpaceThenRevertThenTypeMore() {
+        final String STRING_TO_TYPE_FIRST = "tgis ";
+        final String STRING_TO_TYPE_SECOND = "a";
+        final String EXPECTED_RESULT = "tgis a";
+        type(STRING_TO_TYPE_FIRST);
+        sendUpdateForCursorMoveTo(STRING_TO_TYPE_FIRST.length());
+        type(Constants.CODE_DELETE);
+
+        type(STRING_TO_TYPE_SECOND);
+        sendUpdateForCursorMoveTo(STRING_TO_TYPE_FIRST.length() - 1
+                + STRING_TO_TYPE_SECOND.length());
+        assertEquals("auto-correct with space then revert then type more", EXPECTED_RESULT,
+                mEditText.getText().toString());
+    }
+
     public void testAutoCorrectToSelfDoesNotRevert() {
         final String STRING_TO_TYPE = "this ";
         final String EXPECTED_RESULT = "this";
         type(STRING_TO_TYPE);
-        mLatinIME.onUpdateSelection(0, 0, STRING_TO_TYPE.length(), STRING_TO_TYPE.length(), -1, -1);
+        sendUpdateForCursorMoveTo(STRING_TO_TYPE.length());
         type(Constants.CODE_DELETE);
         assertEquals("auto-correct with space does not revert", EXPECTED_RESULT,
                 mEditText.getText().toString());
     }
 
     public void testDoubleSpace() {
-        // Set default pref just in case
-        setBooleanPreference(Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, true, true);
         // U+1F607 is an emoji
         final String[] STRINGS_TO_TYPE =
                 new String[] { "this   ", "a+  ", "\u1F607  ", "..  ", ")  ", "(  ", "%  " };
         final String[] EXPECTED_RESULTS =
                 new String[] { "this.  ", "a+. ", "\u1F607. ", "..  ", "). ", "(  ", "%. " };
-        for (int i = 0; i < STRINGS_TO_TYPE.length; ++i) {
+        verifyDoubleSpace(STRINGS_TO_TYPE, EXPECTED_RESULTS);
+    }
+
+    public void testDoubleSpaceHindi() {
+        changeLanguage("hi");
+        // U+1F607 is an emoji
+        final String[] STRINGS_TO_TYPE =
+                new String[] { "this   ", "a+  ", "\u1F607  ", "||  ", ")  ", "(  ", "%  " };
+        final String[] EXPECTED_RESULTS =
+                new String[] { "this|  ", "a+| ", "\u1F607| ", "||  ", ")| ", "(  ", "%| " };
+        verifyDoubleSpace(STRINGS_TO_TYPE, EXPECTED_RESULTS);
+    }
+
+    private void verifyDoubleSpace(String[] stringsToType, String[] expectedResults) {
+        // Set default pref just in case
+        setBooleanPreference(Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, true, true);
+        for (int i = 0; i < stringsToType.length; ++i) {
             mEditText.setText("");
-            type(STRINGS_TO_TYPE[i]);
-            assertEquals("double space processing", EXPECTED_RESULTS[i],
+            type(stringsToType[i]);
+            assertEquals("double space processing", expectedResults[i],
                     mEditText.getText().toString());
         }
     }
 
-    public void testCancelDoubleSpace() {
+    public void testCancelDoubleSpaceEnglish() {
+        final String STRING_TO_TYPE = "this  ";
+        final String EXPECTED_RESULT = "this ";
+        type(STRING_TO_TYPE);
+        type(Constants.CODE_DELETE);
+        assertEquals("double space make a period", EXPECTED_RESULT, mEditText.getText().toString());
+    }
+
+    public void testCancelDoubleSpaceHindi() {
+        changeLanguage("hi");
         final String STRING_TO_TYPE = "this  ";
         final String EXPECTED_RESULT = "this ";
         type(STRING_TO_TYPE);
@@ -243,9 +304,9 @@
     public void testDoubleSpacePeriod() {
         // Reset settings to default, else these tests will go flaky.
         setBooleanPreference(Settings.PREF_SHOW_SUGGESTIONS, true, true);
-        setStringPreference(Settings.PREF_AUTO_CORRECTION_THRESHOLD, "1", "1");
+        setBooleanPreference(Settings.PREF_AUTO_CORRECTION, true, true);
         setBooleanPreference(Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, true, true);
-        testDoubleSpacePeriodWithSettings(true /* expectsPeriod */);
+        testDoubleSpacePeriodWithSettings(true);
         // "Suggestion visibility" to off
         testDoubleSpacePeriodWithSettings(true, Settings.PREF_SHOW_SUGGESTIONS, false);
         // "Suggestion visibility" to on
@@ -255,18 +316,16 @@
         testDoubleSpacePeriodWithSettings(false, Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, false);
 
         // "Auto-correction" to "off"
-        testDoubleSpacePeriodWithSettings(true, Settings.PREF_AUTO_CORRECTION_THRESHOLD, "0");
-        // "Auto-correction" to "modest"
-        testDoubleSpacePeriodWithSettings(true, Settings.PREF_AUTO_CORRECTION_THRESHOLD, "1");
-        // "Auto-correction" to "very aggressive"
-        testDoubleSpacePeriodWithSettings(true, Settings.PREF_AUTO_CORRECTION_THRESHOLD, "3");
+        testDoubleSpacePeriodWithSettings(true, Settings.PREF_AUTO_CORRECTION, false);
+        // "Auto-correction" to "on"
+        testDoubleSpacePeriodWithSettings(true, Settings.PREF_AUTO_CORRECTION, true);
 
         // "Suggestion visibility" to "always hide" and "Auto-correction" to "off"
         testDoubleSpacePeriodWithSettings(true, Settings.PREF_SHOW_SUGGESTIONS, false,
-                Settings.PREF_AUTO_CORRECTION_THRESHOLD, "0");
+                Settings.PREF_AUTO_CORRECTION, false);
         // "Suggestion visibility" to "always hide" and "Auto-correction" to "off"
         testDoubleSpacePeriodWithSettings(false, Settings.PREF_SHOW_SUGGESTIONS, false,
-                Settings.PREF_AUTO_CORRECTION_THRESHOLD, "0",
+                Settings.PREF_AUTO_CORRECTION, false,
                 Settings.PREF_KEY_USE_DOUBLE_SPACE_PERIOD, false);
     }
 
@@ -276,10 +335,9 @@
         final String EXPECTED_RESULT = "this ";
         final int NEW_CURSOR_POSITION = 0;
         type(STRING_TO_TYPE);
-        mLatinIME.onUpdateSelection(0, 0, typedLength, typedLength, -1, -1);
+        sendUpdateForCursorMoveTo(typedLength);
         mInputConnection.setSelection(NEW_CURSOR_POSITION, NEW_CURSOR_POSITION);
-        mLatinIME.onUpdateSelection(typedLength, typedLength,
-                NEW_CURSOR_POSITION, NEW_CURSOR_POSITION, -1, -1);
+        sendUpdateForCursorMoveTo(NEW_CURSOR_POSITION);
         type(Constants.CODE_DELETE);
         assertEquals("auto correct then move cursor to start of line then backspace",
                 EXPECTED_RESULT, mEditText.getText().toString());
@@ -291,10 +349,9 @@
         final String EXPECTED_RESULT = "andthis ";
         final int NEW_CURSOR_POSITION = STRING_TO_TYPE.indexOf('t');
         type(STRING_TO_TYPE);
-        mLatinIME.onUpdateSelection(0, 0, typedLength, typedLength, -1, -1);
+        sendUpdateForCursorMoveTo(typedLength);
         mInputConnection.setSelection(NEW_CURSOR_POSITION, NEW_CURSOR_POSITION);
-        mLatinIME.onUpdateSelection(typedLength, typedLength,
-                NEW_CURSOR_POSITION, NEW_CURSOR_POSITION, -1, -1);
+        sendUpdateForCursorMoveTo(NEW_CURSOR_POSITION);
         type(Constants.CODE_DELETE);
         assertEquals("auto correct then move cursor then backspace",
                 EXPECTED_RESULT, mEditText.getText().toString());
@@ -329,8 +386,8 @@
         assertEquals("manual pick then separator", EXPECTED_RESULT, mEditText.getText().toString());
     }
 
-    // This test matches the one in InputLogicTestsNonEnglish. In some non-English languages,
-    // ! and ? are clustering punctuation signs.
+    // This test matches testClusteringPunctuationForFrench.
+    // In some non-English languages, ! and ? are clustering punctuation signs.
     public void testClusteringPunctuation() {
         final String WORD1_TO_TYPE = "test";
         final String WORD2_TO_TYPE = "!!?!:!";
@@ -394,7 +451,7 @@
                 BaseInputConnection.getComposingSpanStart(mEditText.getText()));
         assertEquals("resume suggestion on backspace", -1,
                 BaseInputConnection.getComposingSpanEnd(mEditText.getText()));
-        mLatinIME.onUpdateSelection(0, 0, typedLength, typedLength, -1, -1);
+        sendUpdateForCursorMoveTo(typedLength);
         type(Constants.CODE_DELETE);
         assertEquals("resume suggestion on backspace", 4,
                 BaseInputConnection.getComposingSpanStart(mEditText.getText()));
@@ -429,44 +486,25 @@
         type("  ");
         helperTestComposing("a'", true);
     }
+
     // TODO: Add some tests for non-BMP characters
 
     public void testAutoCorrectByUserHistory() {
-        final String WORD_TO_BE_CORRECTED = "qpmx";
-        final String NOT_CORRECTED_RESULT = "qpmx ";
-        final String DESIRED_WORD = "qpmz";
-        final String CORRECTED_RESULT = "qpmz ";
-        final int typeCountNotToAutocorrect = 1;
-        final int typeCountToAutoCorrect = 16;
-        int startIndex = 0;
-        int endIndex = 0;
+        type("qpmz");
+        type(Constants.CODE_SPACE);
 
-        for (int i = 0; i < typeCountNotToAutocorrect; i++) {
-            type(DESIRED_WORD);
-            type(Constants.CODE_SPACE);
-        }
-        startIndex = mEditText.getText().length();
-        type(WORD_TO_BE_CORRECTED);
+        int startIndex = mEditText.getText().length();
+        type("qpmx");
         type(Constants.CODE_SPACE);
-        endIndex = mEditText.getText().length();
-        assertEquals("not auto-corrected by user history", NOT_CORRECTED_RESULT,
-                mEditText.getText().subSequence(startIndex, endIndex).toString());
-        for (int i = typeCountNotToAutocorrect; i < typeCountToAutoCorrect; i++) {
-            type(DESIRED_WORD);
-            type(Constants.CODE_SPACE);
-        }
-        startIndex = mEditText.getText().length();
-        type(WORD_TO_BE_CORRECTED);
-        type(Constants.CODE_SPACE);
-        endIndex = mEditText.getText().length();
+        int endIndex = mEditText.getText().length();
         assertEquals("auto-corrected by user history",
-                CORRECTED_RESULT, mEditText.getText().subSequence(startIndex, endIndex).toString());
+                "qpmz ", mEditText.getText().subSequence(startIndex, endIndex).toString());
     }
 
     public void testPredictionsAfterSpace() {
         final String WORD_TO_TYPE = "Barack ";
         type(WORD_TO_TYPE);
-        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
+        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS_MILLIS);
         runMessages();
         // Test the first prediction is displayed
         final SuggestedWords suggestedWords = mLatinIME.getSuggestedWordsForTest();
@@ -476,24 +514,19 @@
 
     public void testPredictionsWithDoubleSpaceToPeriod() {
         mLatinIME.clearPersonalizedDictionariesForTest();
-        final String WORD_TO_TYPE = "Barack ";
+        final String WORD_TO_TYPE = "Barack  ";
         type(WORD_TO_TYPE);
-        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
+        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS_MILLIS);
         runMessages();
-        // No need to test here, testPredictionsAfterSpace is testing it already
-        type(" ");
-        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
-        runMessages();
-        // Test the predictions have been cleared
-        SuggestedWords suggestedWords = mLatinIME.getSuggestedWordsForTest();
-        assertEquals("predictions cleared after double-space-to-period", suggestedWords.size(), 0);
+
         type(Constants.CODE_DELETE);
-        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
+        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS_MILLIS);
         runMessages();
-        // Test the first prediction is displayed
+
+        SuggestedWords suggestedWords = mLatinIME.getSuggestedWordsForTest();
         suggestedWords = mLatinIME.getSuggestedWordsForTest();
         assertEquals("predictions after cancel double-space-to-period", "Obama",
-                suggestedWords.size() > 0 ? suggestedWords.getWord(0) : null);
+                mLatinIME.getSuggestedWordsForTest().getWord(0));
     }
 
     public void testPredictionsAfterManualPick() {
@@ -501,7 +534,7 @@
         type(WORD_TO_TYPE);
         // Choose the auto-correction. For "Barack", the auto-correction should be "Barack".
         pickSuggestionManually(WORD_TO_TYPE);
-        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
+        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS_MILLIS);
         runMessages();
         // Test the first prediction is displayed
         final SuggestedWords suggestedWords = mLatinIME.getSuggestedWordsForTest();
@@ -513,17 +546,11 @@
         mLatinIME.clearPersonalizedDictionariesForTest();
         final String WORD_TO_TYPE = "Barack. ";
         type(WORD_TO_TYPE);
-        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
+        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS_MILLIS);
         runMessages();
-        SuggestedWords suggestedWords = mLatinIME.getSuggestedWordsForTest();
-        assertEquals("No prediction after period after inputting once.", 0, suggestedWords.size());
 
-        type(WORD_TO_TYPE);
-        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
-        runMessages();
-        suggestedWords = mLatinIME.getSuggestedWordsForTest();
-        assertEquals("Beginning-of-Sentence prediction after inputting 2 times.", "Barack",
-                suggestedWords.size() > 0 ? suggestedWords.getWord(0) : null);
+        SuggestedWords suggestedWords = mLatinIME.getSuggestedWordsForTest();
+        assertFalse(mLatinIME.getSuggestedWordsForTest().isEmpty());
     }
 
     public void testPredictionsAfterRecorrection() {
@@ -535,27 +562,23 @@
         final int endOfSuggestion = endOfPrefix + FIRST_NON_TYPED_SUGGESTION.length();
         final int indexForManualCursor = endOfPrefix + 3; // +3 because it's after "Bar" in "Barack"
         type(PREFIX);
-        mLatinIME.onUpdateSelection(0, 0, endOfPrefix, endOfPrefix, -1, -1);
+        sendUpdateForCursorMoveTo(endOfPrefix);
         type(WORD_TO_TYPE);
         pickSuggestionManually(FIRST_NON_TYPED_SUGGESTION);
-        mLatinIME.onUpdateSelection(endOfPrefix, endOfPrefix, endOfSuggestion, endOfSuggestion,
-                -1, -1);
+        sendUpdateForCursorMoveTo(endOfSuggestion);
         runMessages();
         type(" ");
-        mLatinIME.onUpdateSelection(endOfSuggestion, endOfSuggestion,
-                endOfSuggestion + 1, endOfSuggestion + 1, -1, -1);
-        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
+        sendUpdateForCursorMoveBy(1);
+        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS_MILLIS);
         runMessages();
         // Simulate a manual cursor move
         mInputConnection.setSelection(indexForManualCursor, indexForManualCursor);
-        mLatinIME.onUpdateSelection(endOfSuggestion + 1, endOfSuggestion + 1,
-                indexForManualCursor, indexForManualCursor, -1, -1);
-        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
+        sendUpdateForCursorMoveTo(indexForManualCursor);
+        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS_MILLIS);
         runMessages();
         pickSuggestionManually(WORD_TO_TYPE);
-        mLatinIME.onUpdateSelection(indexForManualCursor, indexForManualCursor,
-                endOfWord, endOfWord, -1, -1);
-        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
+        sendUpdateForCursorMoveTo(endOfWord);
+        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS_MILLIS);
         runMessages();
         // Test the first prediction is displayed
         final SuggestedWords suggestedWords = mLatinIME.getSuggestedWordsForTest();
@@ -603,7 +626,7 @@
 
         for (int i = 0; i < WORD_TO_TYPE.length(); ++i) {
             type(WORD_TO_TYPE.substring(i, i+1));
-            sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
+            sleep(DELAY_TO_WAIT_FOR_PREDICTIONS_MILLIS);
             runMessages();
         }
         assertEquals("type many trailing single quotes one by one", EXPECTED_RESULT,
@@ -615,26 +638,148 @@
         final String EXPECTED_RESULT = WORD_TO_TYPE;
         for (int i = 0; i < WORD_TO_TYPE.length(); ++i) {
             type(WORD_TO_TYPE.substring(i, i+1));
-            sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
+            sleep(DELAY_TO_WAIT_FOR_PREDICTIONS_MILLIS);
             runMessages();
         }
         assertEquals("type words letter by letter", EXPECTED_RESULT,
                 mEditText.getText().toString());
     }
 
-    public void testSwitchLanguages() {
-        final String WORD_TO_TYPE_FIRST_PART = "com";
-        final String WORD_TO_TYPE_SECOND_PART = "md";
-        final String EXPECTED_RESULT = "comme";
-        changeLanguage("en");
-        type(WORD_TO_TYPE_FIRST_PART);
-        changeLanguage("fr");
+    public void testBasicGesture() {
+        gesture("this");
+        assertEquals("this", mEditText.getText().toString());
+    }
+
+    public void testGestureGesture() {
+        gesture("got");
+        gesture("milk");
+        assertEquals("got milk", mEditText.getText().toString());
+    }
+
+    public void testGestureBackspaceGestureAgain() {
+        gesture("this");
+        type(Constants.CODE_DELETE);
+        assertEquals("gesture then backspace", "", mEditText.getText().toString());
+        gesture("this");
+        if (DecoderSpecificConstants.SHOULD_REMOVE_PREVIOUSLY_REJECTED_SUGGESTION) {
+            assertNotEqual("this", mEditText.getText().toString());
+        } else {
+            assertEquals("this", mEditText.getText().toString());
+        }
+    }
+
+    private void typeOrGestureWordAndPutCursorInside(final boolean gesture, final String word,
+            final int startPos) {
+        final int END_OF_WORD = startPos + word.length();
+        final int NEW_CURSOR_POSITION = startPos + word.length() / 2;
+        if (gesture) {
+            gesture(word);
+        } else {
+            type(word);
+        }
+        sendUpdateForCursorMoveTo(END_OF_WORD);
         runMessages();
-        type(WORD_TO_TYPE_SECOND_PART);
-        sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
+        sendUpdateForCursorMoveTo(NEW_CURSOR_POSITION);
+        sleep(DELAY_TO_WAIT_FOR_UNDERLINE_MILLIS);
+        runMessages();
+    }
+
+    private void typeWordAndPutCursorInside(final String word, final int startPos) {
+        typeOrGestureWordAndPutCursorInside(false /* gesture */, word, startPos);
+    }
+
+    private void gestureWordAndPutCursorInside(final String word, final int startPos) {
+        typeOrGestureWordAndPutCursorInside(true /* gesture */, word, startPos);
+    }
+
+    private void ensureComposingSpanPos(final String message, final int from, final int to) {
+        assertEquals(message, from, BaseInputConnection.getComposingSpanStart(mEditText.getText()));
+        assertEquals(message, to, BaseInputConnection.getComposingSpanEnd(mEditText.getText()));
+    }
+
+    public void testTypeWithinComposing() {
+        final String WORD_TO_TYPE = "something";
+        final String EXPECTED_RESULT = "some thing";
+        typeWordAndPutCursorInside(WORD_TO_TYPE, 0 /* startPos */);
+        type(" ");
+        ensureComposingSpanPos("space while in the middle of a word cancels composition", -1, -1);
+        assertEquals("space in the middle of a composing word", EXPECTED_RESULT,
+                mEditText.getText().toString());
+        int cursorPos = sendUpdateForCursorMoveToEndOfLine();
+        runMessages();
+        type(" ");
+        assertEquals("mbo", "some thing ", mEditText.getText().toString());
+        typeWordAndPutCursorInside(WORD_TO_TYPE, cursorPos + 1 /* startPos */);
+        type(Constants.CODE_DELETE);
+        ensureComposingSpanPos("delete while in the middle of a word cancels composition", -1, -1);
+    }
+
+    public void testTypeWithinGestureComposing() {
+        final String WORD_TO_TYPE = "something";
+        final String EXPECTED_RESULT = "some thing";
+        gestureWordAndPutCursorInside(WORD_TO_TYPE, 0 /* startPos */);
+        type(" ");
+        ensureComposingSpanPos("space while in the middle of a word cancels composition", -1, -1);
+        assertEquals("space in the middle of a composing word", EXPECTED_RESULT,
+                mEditText.getText().toString());
+        int cursorPos = sendUpdateForCursorMoveToEndOfLine();
+        runMessages();
+        type(" ");
+        typeWordAndPutCursorInside(WORD_TO_TYPE, cursorPos + 1 /* startPos */);
+        type(Constants.CODE_DELETE);
+        sleep(DELAY_TO_WAIT_FOR_UNDERLINE_MILLIS);
+        ensureComposingSpanPos("delete while in the middle of a word cancels composition", -1, -1);
+    }
+
+    public void testManualPickThenSeparatorForFrench() {
+        final String WORD1_TO_TYPE = "test";
+        final String WORD2_TO_TYPE = "!";
+        final String EXPECTED_RESULT = "test !";
+        changeLanguage("fr");
+        type(WORD1_TO_TYPE);
+        pickSuggestionManually(WORD1_TO_TYPE);
+        type(WORD2_TO_TYPE);
+        assertEquals("manual pick then separator for French", EXPECTED_RESULT,
+                mEditText.getText().toString());
+    }
+
+    public void testClusteringPunctuationForFrench() {
+        final String WORD1_TO_TYPE = "test";
+        final String WORD2_TO_TYPE = "!!?!:!";
+        // In English, the expected result would be "test!!?!:!"
+        final String EXPECTED_RESULT = "test !!?! : !";
+        changeLanguage("fr");
+        type(WORD1_TO_TYPE);
+        pickSuggestionManually(WORD1_TO_TYPE);
+        type(WORD2_TO_TYPE);
+        assertEquals("clustering punctuation for French", EXPECTED_RESULT,
+                mEditText.getText().toString());
+    }
+
+    public void testWordThenSpaceThenPunctuationFromStripTwice() {
+        setBooleanPreference(Settings.PREF_BIGRAM_PREDICTIONS, false, true);
+
+        final String WORD_TO_TYPE = "test ";
+        final String PUNCTUATION_FROM_STRIP = "!";
+        final String EXPECTED_RESULT = "test!! ";
+        type(WORD_TO_TYPE);
+        sleep(DELAY_TO_WAIT_FOR_UNDERLINE_MILLIS);
+        runMessages();
+        assertTrue("type word then type space should display punctuation strip",
+                mLatinIME.getSuggestedWordsForTest().isPunctuationSuggestions());
+        pickSuggestionManually(PUNCTUATION_FROM_STRIP);
+        pickSuggestionManually(PUNCTUATION_FROM_STRIP);
+        assertEquals(EXPECTED_RESULT, mEditText.getText().toString());
+    }
+
+    public void testWordThenSpaceDisplaysPredictions() {
+        final String WORD_TO_TYPE = "Barack ";
+        final String EXPECTED_RESULT = "Obama";
+        type(WORD_TO_TYPE);
+        sleep(DELAY_TO_WAIT_FOR_UNDERLINE_MILLIS);
         runMessages();
         final SuggestedWords suggestedWords = mLatinIME.getSuggestedWordsForTest();
-        assertEquals("Suggestions updated after switching languages",
-                    EXPECTED_RESULT, suggestedWords.size() > 0 ? suggestedWords.getWord(1) : null);
+        assertEquals("type word then type space yields predictions for French",
+                EXPECTED_RESULT, suggestedWords.size() > 0 ? suggestedWords.getWord(0) : null);
     }
 }
diff --git a/tests/src/com/android/inputmethod/latin/InputLogicTestsDeadKeys.java b/tests/src/com/android/inputmethod/latin/InputLogicTestsDeadKeys.java
new file mode 100644
index 0000000..4b44138
--- /dev/null
+++ b/tests/src/com/android/inputmethod/latin/InputLogicTestsDeadKeys.java
@@ -0,0 +1,216 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin;
+
+import android.test.suitebuilder.annotation.LargeTest;
+
+import com.android.inputmethod.event.Event;
+import com.android.inputmethod.latin.common.Constants;
+
+import java.util.ArrayList;
+
+@LargeTest
+public class InputLogicTestsDeadKeys extends InputTestsBase {
+    // A helper class for readability
+    static class EventList extends ArrayList<Event> {
+        public EventList addCodePoint(final int codePoint, final boolean isDead) {
+            final Event event;
+            if (isDead) {
+                event = Event.createDeadEvent(codePoint, Event.NOT_A_KEY_CODE, null /* next */);
+            } else {
+                event = Event.createSoftwareKeypressEvent(codePoint, Event.NOT_A_KEY_CODE,
+                        Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE,
+                        false /* isKeyRepeat */);
+            }
+            add(event);
+            return this;
+        }
+
+        public EventList addKey(final int keyCode) {
+            add(Event.createSoftwareKeypressEvent(Event.NOT_A_CODE_POINT, keyCode,
+                    Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE,
+                    false /* isKeyRepeat */));
+            return this;
+        }
+    }
+
+    public void testDeadCircumflexSimple() {
+        final int MODIFIER_LETTER_CIRCUMFLEX_ACCENT = 0x02C6;
+        final String EXPECTED_RESULT = "aê";
+        final EventList events = new EventList()
+                .addCodePoint('a', false)
+                .addCodePoint(MODIFIER_LETTER_CIRCUMFLEX_ACCENT, true)
+                .addCodePoint('e', false);
+        for (final Event event : events) {
+            mLatinIME.onEvent(event);
+        }
+        assertEquals("simple dead circumflex", EXPECTED_RESULT, mEditText.getText().toString());
+    }
+
+    public void testDeadCircumflexBackspace() {
+        final int MODIFIER_LETTER_CIRCUMFLEX_ACCENT = 0x02C6;
+        final String EXPECTED_RESULT = "ae";
+        final EventList events = new EventList()
+                .addCodePoint('a', false)
+                .addCodePoint(MODIFIER_LETTER_CIRCUMFLEX_ACCENT, true)
+                .addKey(Constants.CODE_DELETE)
+                .addCodePoint('e', false);
+        for (final Event event : events) {
+            mLatinIME.onEvent(event);
+        }
+        assertEquals("dead circumflex backspace", EXPECTED_RESULT, mEditText.getText().toString());
+    }
+
+    public void testDeadCircumflexFeedback() {
+        final int MODIFIER_LETTER_CIRCUMFLEX_ACCENT = 0x02C6;
+        final String EXPECTED_RESULT = "a\u02C6";
+        final EventList events = new EventList()
+                .addCodePoint('a', false)
+                .addCodePoint(MODIFIER_LETTER_CIRCUMFLEX_ACCENT, true);
+        for (final Event event : events) {
+            mLatinIME.onEvent(event);
+        }
+        assertEquals("dead circumflex gives feedback", EXPECTED_RESULT,
+                mEditText.getText().toString());
+    }
+
+    public void testDeadDiaeresisSpace() {
+        final int MODIFIER_LETTER_DIAERESIS = 0xA8;
+        final String EXPECTED_RESULT = "a\u00A8e\u00A8i";
+        final EventList events = new EventList()
+                .addCodePoint('a', false)
+                .addCodePoint(MODIFIER_LETTER_DIAERESIS, true)
+                .addCodePoint(Constants.CODE_SPACE, false)
+                .addCodePoint('e', false)
+                .addCodePoint(MODIFIER_LETTER_DIAERESIS, true)
+                .addCodePoint(Constants.CODE_ENTER, false)
+                .addCodePoint('i', false);
+        for (final Event event : events) {
+            mLatinIME.onEvent(event);
+        }
+        assertEquals("dead diaeresis space commits the dead char", EXPECTED_RESULT,
+                mEditText.getText().toString());
+    }
+
+    public void testDeadAcuteLetterBackspace() {
+        final int MODIFIER_LETTER_ACUTE = 0xB4;
+        final String EXPECTED_RESULT1 = "aá";
+        final String EXPECTED_RESULT2 = "a";
+        final EventList events = new EventList()
+                .addCodePoint('a', false)
+                .addCodePoint(MODIFIER_LETTER_ACUTE, true)
+                .addCodePoint('a', false);
+        for (final Event event : events) {
+            mLatinIME.onEvent(event);
+        }
+        assertEquals("dead acute on a typed", EXPECTED_RESULT1, mEditText.getText().toString());
+        mLatinIME.onEvent(Event.createSoftwareKeypressEvent(Event.NOT_A_CODE_POINT,
+                Constants.CODE_DELETE, Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE,
+                false /* isKeyRepeat */));
+        assertEquals("a with acute deleted", EXPECTED_RESULT2, mEditText.getText().toString());
+    }
+
+    public void testFinnishStroke() {
+        final int MODIFIER_LETTER_STROKE = '-';
+        final String EXPECTED_RESULT = "x\u0110\u0127";
+        final EventList events = new EventList()
+                .addCodePoint('x', false)
+                .addCodePoint(MODIFIER_LETTER_STROKE, true)
+                .addCodePoint('D', false)
+                .addCodePoint(MODIFIER_LETTER_STROKE, true)
+                .addCodePoint('h', false);
+        for (final Event event : events) {
+            mLatinIME.onEvent(event);
+        }
+        assertEquals("Finnish dead stroke", EXPECTED_RESULT,
+                mEditText.getText().toString());
+    }
+
+    public void testDoubleDeadOgonek() {
+        final int MODIFIER_LETTER_OGONEK = 0x02DB;
+        final String EXPECTED_RESULT = "txǫs\u02DBfk";
+        final EventList events = new EventList()
+                .addCodePoint('t', false)
+                .addCodePoint('x', false)
+                .addCodePoint(MODIFIER_LETTER_OGONEK, true)
+                .addCodePoint('o', false)
+                .addCodePoint('s', false)
+                .addCodePoint(MODIFIER_LETTER_OGONEK, true)
+                .addCodePoint(MODIFIER_LETTER_OGONEK, true)
+                .addCodePoint('f', false)
+                .addCodePoint(MODIFIER_LETTER_OGONEK, true)
+                .addCodePoint(MODIFIER_LETTER_OGONEK, true)
+                .addKey(Constants.CODE_DELETE)
+                .addCodePoint('k', false);
+        for (final Event event : events) {
+            mLatinIME.onEvent(event);
+        }
+        assertEquals("double dead ogonek, and backspace", EXPECTED_RESULT,
+                mEditText.getText().toString());
+    }
+
+    public void testDeadCircumflexDeadDiaeresis() {
+        final int MODIFIER_LETTER_CIRCUMFLEX_ACCENT = 0x02C6;
+        final int MODIFIER_LETTER_DIAERESIS = 0xA8;
+        final String EXPECTED_RESULT = "r̂̈";
+
+        final EventList events = new EventList()
+                .addCodePoint(MODIFIER_LETTER_CIRCUMFLEX_ACCENT, true)
+                .addCodePoint(MODIFIER_LETTER_DIAERESIS, true)
+                .addCodePoint('r', false);
+        for (final Event event : events) {
+            mLatinIME.onEvent(event);
+        }
+        assertEquals("both circumflex and diaeresis on r", EXPECTED_RESULT,
+                mEditText.getText().toString());
+    }
+
+    public void testDeadCircumflexDeadDiaeresisBackspace() {
+        final int MODIFIER_LETTER_CIRCUMFLEX_ACCENT = 0x02C6;
+        final int MODIFIER_LETTER_DIAERESIS = 0xA8;
+        final String EXPECTED_RESULT = "û";
+
+        final EventList events = new EventList()
+                .addCodePoint(MODIFIER_LETTER_CIRCUMFLEX_ACCENT, true)
+                .addCodePoint(MODIFIER_LETTER_DIAERESIS, true)
+                .addKey(Constants.CODE_DELETE)
+                .addCodePoint('u', false);
+        for (final Event event : events) {
+            mLatinIME.onEvent(event);
+        }
+        assertEquals("dead circumflex, dead diaeresis, backspace, u", EXPECTED_RESULT,
+                mEditText.getText().toString());
+    }
+
+    public void testDeadCircumflexDoubleDeadDiaeresisBackspace() {
+        final int MODIFIER_LETTER_CIRCUMFLEX_ACCENT = 0x02C6;
+        final int MODIFIER_LETTER_DIAERESIS = 0xA8;
+        final String EXPECTED_RESULT = "\u02C6u";
+
+        final EventList events = new EventList()
+                .addCodePoint(MODIFIER_LETTER_CIRCUMFLEX_ACCENT, true)
+                .addCodePoint(MODIFIER_LETTER_DIAERESIS, true)
+                .addCodePoint(MODIFIER_LETTER_DIAERESIS, true)
+                .addKey(Constants.CODE_DELETE)
+                .addCodePoint('u', false);
+        for (final Event event : events) {
+            mLatinIME.onEvent(event);
+        }
+        assertEquals("dead circumflex, double dead diaeresis, backspace, u", EXPECTED_RESULT,
+                mEditText.getText().toString());
+    }
+}
diff --git a/tests/src/com/android/inputmethod/latin/InputLogicTestsLanguageWithoutSpaces.java b/tests/src/com/android/inputmethod/latin/InputLogicTestsLanguageWithoutSpaces.java
index 2560407..12461c9 100644
--- a/tests/src/com/android/inputmethod/latin/InputLogicTestsLanguageWithoutSpaces.java
+++ b/tests/src/com/android/inputmethod/latin/InputLogicTestsLanguageWithoutSpaces.java
@@ -19,6 +19,8 @@
 import android.test.suitebuilder.annotation.LargeTest;
 import android.view.inputmethod.BaseInputConnection;
 
+import com.android.inputmethod.latin.common.Constants;
+
 @LargeTest
 public class InputLogicTestsLanguageWithoutSpaces extends InputTestsBase {
     public void testAutoCorrectForLanguageWithoutSpaces() {
@@ -74,7 +76,7 @@
         mInputConnection.setSelection(CURSOR_POS, CURSOR_POS);
         mLatinIME.onUpdateSelection(typedLength, typedLength,
                 CURSOR_POS, CURSOR_POS, -1, -1);
-        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
+        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS_MILLIS);
         runMessages();
         assertEquals("start composing inside text", -1,
                 BaseInputConnection.getComposingSpanStart(mEditText.getText()));
@@ -87,11 +89,39 @@
                 BaseInputConnection.getComposingSpanEnd(mEditText.getText()));
     }
 
+    public void testMovingCursorInsideWordAndType() {
+        final String WORD_TO_TYPE = "abcdefgh";
+        final int typedLength = WORD_TO_TYPE.length();
+        final int CURSOR_POS = 4;
+        changeKeyboardLocaleAndDictLocale("th", "en_US");
+        type(WORD_TO_TYPE);
+        mLatinIME.onUpdateSelection(0, 0, typedLength, typedLength, 0, typedLength);
+        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS_MILLIS);
+        runMessages();
+        mInputConnection.setSelection(CURSOR_POS, CURSOR_POS);
+        mLatinIME.onUpdateSelection(typedLength, typedLength,
+                CURSOR_POS, CURSOR_POS, 0, typedLength);
+        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS_MILLIS);
+        runMessages();
+        assertEquals("move cursor inside text", 0,
+                BaseInputConnection.getComposingSpanStart(mEditText.getText()));
+        assertEquals("move cursor inside text", typedLength,
+                BaseInputConnection.getComposingSpanEnd(mEditText.getText()));
+        type("x");
+        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS_MILLIS);
+        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS_MILLIS);
+        runMessages();
+        assertEquals("start typing while cursor inside composition", CURSOR_POS,
+                BaseInputConnection.getComposingSpanStart(mEditText.getText()));
+        assertEquals("start typing while cursor inside composition", CURSOR_POS + 1,
+                BaseInputConnection.getComposingSpanEnd(mEditText.getText()));
+    }
+
     public void testPredictions() {
         final String WORD_TO_TYPE = "Barack ";
         changeKeyboardLocaleAndDictLocale("th", "en_US");
         type(WORD_TO_TYPE);
-        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
+        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS_MILLIS);
         runMessages();
         // Make sure there is no space
         assertEquals("predictions in lang without spaces", "Barack",
diff --git a/tests/src/com/android/inputmethod/latin/InputLogicTestsNonEnglish.java b/tests/src/com/android/inputmethod/latin/InputLogicTestsNonEnglish.java
deleted file mode 100644
index 866f889..0000000
--- a/tests/src/com/android/inputmethod/latin/InputLogicTestsNonEnglish.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin;
-
-import android.test.suitebuilder.annotation.LargeTest;
-
-@LargeTest
-public class InputLogicTestsNonEnglish extends InputTestsBase {
-    final String NEXT_WORD_PREDICTION_OPTION = "next_word_prediction";
-
-    public void testAutoCorrectForFrench() {
-        final String STRING_TO_TYPE = "irq ";
-        final String EXPECTED_RESULT = "ira ";
-        changeLanguage("fr");
-        type(STRING_TO_TYPE);
-        assertEquals("simple auto-correct for French", EXPECTED_RESULT,
-                mEditText.getText().toString());
-    }
-
-    public void testManualPickThenSeparatorForFrench() {
-        final String WORD1_TO_TYPE = "test";
-        final String WORD2_TO_TYPE = "!";
-        final String EXPECTED_RESULT = "test !";
-        changeLanguage("fr");
-        type(WORD1_TO_TYPE);
-        pickSuggestionManually(WORD1_TO_TYPE);
-        type(WORD2_TO_TYPE);
-        assertEquals("manual pick then separator for French", EXPECTED_RESULT,
-                mEditText.getText().toString());
-    }
-
-    public void testClusteringPunctuationForFrench() {
-        final String WORD1_TO_TYPE = "test";
-        final String WORD2_TO_TYPE = "!!?!:!";
-        // In English, the expected result would be "test!!?!:!"
-        final String EXPECTED_RESULT = "test !!?! : !";
-        changeLanguage("fr");
-        type(WORD1_TO_TYPE);
-        pickSuggestionManually(WORD1_TO_TYPE);
-        type(WORD2_TO_TYPE);
-        assertEquals("clustering punctuation for French", EXPECTED_RESULT,
-                mEditText.getText().toString());
-    }
-
-    public void testWordThenSpaceThenPunctuationFromStripTwiceForFrench() {
-        final String WORD_TO_TYPE = "test ";
-        final String PUNCTUATION_FROM_STRIP = "!";
-        final String EXPECTED_RESULT = "test !!";
-        final boolean defaultNextWordPredictionOption =
-                mLatinIME.getResources().getBoolean(R.bool.config_default_next_word_prediction);
-        final boolean previousNextWordPredictionOption =
-                setBooleanPreference(NEXT_WORD_PREDICTION_OPTION, false,
-                        defaultNextWordPredictionOption);
-        try {
-            changeLanguage("fr");
-            type(WORD_TO_TYPE);
-            sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
-            runMessages();
-            assertTrue("type word then type space should display punctuation strip",
-                    mLatinIME.getSuggestedWordsForTest().isPunctuationSuggestions());
-            pickSuggestionManually(PUNCTUATION_FROM_STRIP);
-            pickSuggestionManually(PUNCTUATION_FROM_STRIP);
-            assertEquals("type word then type space then punctuation from strip twice for French",
-                    EXPECTED_RESULT, mEditText.getText().toString());
-        } finally {
-            setBooleanPreference(NEXT_WORD_PREDICTION_OPTION, previousNextWordPredictionOption,
-                    defaultNextWordPredictionOption);
-        }
-    }
-
-    public void testWordThenSpaceDisplaysPredictions() {
-        final String WORD_TO_TYPE = "beaujolais ";
-        final String EXPECTED_RESULT = "nouveau";
-        final boolean defaultNextWordPredictionOption =
-                mLatinIME.getResources().getBoolean(R.bool.config_default_next_word_prediction);
-        final boolean previousNextWordPredictionOption =
-                setBooleanPreference(NEXT_WORD_PREDICTION_OPTION, true,
-                        defaultNextWordPredictionOption);
-        try {
-            changeLanguage("fr");
-            type(WORD_TO_TYPE);
-            sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
-            runMessages();
-            final SuggestedWords suggestedWords = mLatinIME.getSuggestedWordsForTest();
-            assertEquals("type word then type space yields predictions for French",
-                    EXPECTED_RESULT, suggestedWords.size() > 0 ? suggestedWords.getWord(0) : null);
-        } finally {
-            setBooleanPreference(NEXT_WORD_PREDICTION_OPTION, previousNextWordPredictionOption,
-                    defaultNextWordPredictionOption);
-        }
-    }
-
-    public void testAutoCorrectForGerman() {
-        final String STRING_TO_TYPE = "unf ";
-        final String EXPECTED_RESULT = "und ";
-        changeLanguage("de");
-        type(STRING_TO_TYPE);
-        assertEquals("simple auto-correct for German", EXPECTED_RESULT,
-                mEditText.getText().toString());
-    }
-
-    public void testAutoCorrectWithUmlautForGerman() {
-        final String STRING_TO_TYPE = "ueber ";
-        final String EXPECTED_RESULT = "über ";
-        changeLanguage("de");
-        type(STRING_TO_TYPE);
-        assertEquals("auto-correct with umlaut for German", EXPECTED_RESULT,
-                mEditText.getText().toString());
-    }
-}
diff --git a/tests/src/com/android/inputmethod/latin/InputLogicTestsReorderingMyanmar.java b/tests/src/com/android/inputmethod/latin/InputLogicTestsReorderingMyanmar.java
deleted file mode 100644
index ab69c85..0000000
--- a/tests/src/com/android/inputmethod/latin/InputLogicTestsReorderingMyanmar.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin;
-
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.Suppress;
-import android.util.Pair;
-
-/*
- * Relevant characters for this test :
- * Spurs the need to reorder :
- * U+1031 MYANMAR VOWEL SIGN E : ေ
- * U+1004 U+103A U+1039 Kinzi. It's a compound character.
- *
- * List of consonants :
- * U+1000 MYANMAR LETTER KA က
- * U+1001 MYANMAR LETTER KHA ခ
- * U+1002 MYANMAR LETTER GA ဂ
- * U+1003 MYANMAR LETTER GHA ဃ
- * U+1004 MYANMAR LETTER NGA င
- * U+1005 MYANMAR LETTER CA စ
- * U+1006 MYANMAR LETTER CHA ဆ
- * U+1007 MYANMAR LETTER JA ဇ
- * U+1008 MYANMAR LETTER JHA ဈ
- * U+1009 MYANMAR LETTER NYA ဉ
- * U+100A MYANMAR LETTER NNYA ည
- * U+100B MYANMAR LETTER TTA ဋ
- * U+100C MYANMAR LETTER TTHA ဌ
- * U+100D MYANMAR LETTER DDA ဍ
- * U+100E MYANMAR LETTER DDHA ဎ
- * U+100F MYANMAR LETTER NNA ဏ
- * U+1010 MYANMAR LETTER TA တ
- * U+1011 MYANMAR LETTER THA ထ
- * U+1012 MYANMAR LETTER DA ဒ
- * U+1013 MYANMAR LETTER DHA ဓ
- * U+1014 MYANMAR LETTER NA န
- * U+1015 MYANMAR LETTER PA ပ
- * U+1016 MYANMAR LETTER PHA ဖ
- * U+1017 MYANMAR LETTER BA ဗ
- * U+1018 MYANMAR LETTER BHA ဘ
- * U+1019 MYANMAR LETTER MA မ
- * U+101A MYANMAR LETTER YA ယ
- * U+101B MYANMAR LETTER RA ရ
- * U+101C MYANMAR LETTER LA လ
- * U+101D MYANMAR LETTER WA ဝ
- * U+101E MYANMAR LETTER SA သ
- * U+101F MYANMAR LETTER HA ဟ
- * U+1020 MYANMAR LETTER LLA ဠ
- * U+103F MYANMAR LETTER GREAT SA ဿ
- *
- * List of medials :
- * U+103B MYANMAR CONSONANT SIGN MEDIAL YA ျ
- * U+103C MYANMAR CONSONANT SIGN MEDIAL RA ြ
- * U+103D MYANMAR CONSONANT SIGN MEDIAL WA ွ
- * U+103E MYANMAR CONSONANT SIGN MEDIAL HA ှ
- * U+105E MYANMAR CONSONANT SIGN MON MEDIAL NA ၞ
- * U+105F MYANMAR CONSONANT SIGN MON MEDIAL MA ၟ
- * U+1060 MYANMAR CONSONANT SIGN MON MEDIAL LA ၠ
- * U+1082 MYANMAR CONSONANT SIGN SHAN MEDIAL WA ႂ
- *
- * Other relevant characters :
- * U+200C ZERO WIDTH NON-JOINER
- * U+200B ZERO WIDTH SPACE
- */
-
-@LargeTest
-// These tests are inactive until the combining code for Myanmar Reordering is sorted out.
-@Suppress
-@SuppressWarnings("rawtypes")
-public class InputLogicTestsReorderingMyanmar extends InputTestsBase {
-    // The tests are formatted as follows.
-    // Each test is an entry in the array of Pair arrays.
-
-    // One test is an array of pairs. Each pair contains, in the `first' member,
-    // the code points that the next key press should contain. In the `second'
-    // member is stored the string that should be in the text view after this
-    // key press.
-
-    private static final Pair[][] TESTS = {
-
-        // Tests for U+1031 MYANMAR VOWEL SIGN E : ေ
-        new Pair[] { // Type : U+1031 U+1000 U+101F ေ က ဟ
-            Pair.create(new int[] { 0x1031 }, "\u1031"), // ေ
-            Pair.create(new int[] { 0x1000 }, "\u1000\u1031"), // ကေ
-            Pair.create(new int[] { 0x101F }, "\u1000\u1031\u101F") // ကေဟ
-        },
-
-        new Pair[] { // Type : U+1000 U+1031 U+101F က ေ ဟ
-            Pair.create(new int[] { 0x1000 }, "\u1000"), // က
-            Pair.create(new int[] { 0x1031 }, "\u1000\u200B\u1031"), // က‌ေ
-            Pair.create(new int[] { 0x101F }, "\u1000\u101F\u1031") // ကဟေ
-        },
-
-        new Pair[] { // Type : U+1031 U+101D U+103E U+1018 ေ ဝ ှ ဘ
-            Pair.create(new int[] { 0x1031 }, "\u1031"), // ေ
-            Pair.create(new int[] { 0x101D }, "\u101D\u1031"), // ဝေ
-            Pair.create(new int[] { 0x103E }, "\u101D\u103E\u1031"), // ဝှေ
-            Pair.create(new int[] { 0x1018 }, "\u101D\u103E\u1031\u1018") // ဝှေဘ
-        },
-
-        new Pair[] { // Type : U+1031 U+1014 U+1031 U+1000 U+102C U+1004 U+103A U+1038 U+101C
-            // U+102C U+1038 U+104B ေ န ေ က ာ င ် း လ ာ း ။
-            Pair.create(new int[] { 0x1031 }, "\u1031"), // ေ
-            Pair.create(new int[] { 0x1014 }, "\u1014\u1031"), // နေ
-            Pair.create(new int[] { 0x1031 }, "\u1014\u1031\u1031"), // နေ‌ေ
-            Pair.create(new int[] { 0x1000 }, "\u1014\u1031\u1000\u1031"), // နေကေ
-            Pair.create(new int[] { 0x102C }, "\u1014\u1031\u1000\u1031\u102C"), // နေကော
-            Pair.create(new int[] { 0x1004 }, "\u1014\u1031\u1000\u1031\u102C\u1004"), // နေကောင
-            Pair.create(new int[] { 0x103A }, // နေကောင်
-                    "\u1014\u1031\u1000\u1031\u102C\u1004\u103A"),
-            Pair.create(new int[] { 0x1038 }, // နေကောင်း
-                    "\u1014\u1031\u1000\u1031\u102C\u1004\u103A\u1038"),
-            Pair.create(new int[] { 0x101C }, // နေကောင်းလ
-                    "\u1014\u1031\u1000\u1031\u102C\u1004\u103A\u1038\u101C"),
-            Pair.create(new int[] { 0x102C }, // နေကောင်းလာ
-                    "\u1014\u1031\u1000\u1031\u102C\u1004\u103A\u1038\u101C\u102C"),
-            Pair.create(new int[] { 0x1038 }, // နေကောင်းလား
-                    "\u1014\u1031\u1000\u1031\u102C\u1004\u103A\u1038\u101C\u102C\u1038"),
-            Pair.create(new int[] { 0x104B }, // နေကောင်းလား။
-                    "\u1014\u1031\u1000\u1031\u102C\u1004\u103A\u1038\u101C\u102C\u1038\u104B")
-        },
-
-        new Pair[] { // Type : U+1031 U+1031 U+1031 U+1000 ေ ေ ေ က
-            Pair.create(new int[] { 0x1031 }, "\u1031"), // ေ
-            Pair.create(new int[] { 0x1031 }, "\u1031\u1031"), // ေေ
-            Pair.create(new int[] { 0x1031 }, "\u1031\u1031\u1031"), // U+1031ေေေ
-            Pair.create(new int[] { 0x1000 }, "\u1031\u1031\u1000\u1031") // ေေကေ
-        },
-
-        new Pair[] { // Type : U+1031 U+1001 U+103B U+103D U+1038 ေ ခ ျ ွ း
-            Pair.create(new int[] { 0x1031 }, "\u1031"), // ေ
-            Pair.create(new int[] { 0x1001 }, "\u1001\u1031"), // ခေ
-            Pair.create(new int[] { 0x103B }, "\u1001\u103B\u1031"), // ချေ
-            Pair.create(new int[] { 0x103D }, "\u1001\u103B\u103D\u1031"), // ချွေ
-            Pair.create(new int[] { 0x1038 }, "\u1001\u103B\u103D\u1031\u1038") // ချွေး
-        },
-
-        // Tests for Kinzi U+1004 U+103A U+1039 :
-
-        /* Kinzi reordering is not implemented yet. Uncomment these tests when it is.
-
-        new Pair[] { // Type : U+1021 U+1002 (U+1004 U+103A U+1039)
-            // U+101C U+1014 U+103A အ ဂ (င ် ္) လ န ်
-            Pair.create(new int[] { 0x1021 }, "\u1021"), // အ
-            Pair.create(new int[] { 0x1002 }, "\u1021\u1002"), // အဂ
-            Pair.create(new int[] { 0x1004, 0x103A, 0x1039 }, // အင်္ဂ
-                    "\u1021\u1004\u103A\u1039\u1002"),
-            Pair.create(new int[] { 0x101C }, // အင်္ဂလ
-                    "\u1021\u1004\u103A\u1039\u1002\u101C"),
-            Pair.create(new int[] { 0x1014 }, // အင်္ဂလန
-                    "\u1021\u1004\u103A\u1039\u1002\u101C\u1014"),
-            Pair.create(new int[] { 0x103A }, // အင်္ဂလန်
-                    "\u1021\u1004\u103A\u1039\u1002\u101C\u1014\u103A")
-        },
-
-        new Pair[] { //Type : kinzi after a whole syllable U+101E U+1001 U+103B U+102D U+102F
-            // (U+1004 U+103A U+1039) U+1004 U+103A U+1038 သ ခ ျ ိ ု င ် ္ င ် း
-            Pair.create(new int[] { 0x101E }, "\u101E"), // သခ
-            Pair.create(new int[] { 0x1001 }, "\u101E\u1001"), // သခ
-            Pair.create(new int[] { 0x103B }, "\u101E\u1001\u103B"), // သချ
-            Pair.create(new int[] { 0x102D }, "\u101E\u1001\u103B\u102D"), // သချိ
-            Pair.create(new int[] { 0x102F }, "\u101E\u1001\u103B\u102D\u102F"), // သချို
-            Pair.create(new int[] { 0x1004, 0x103A, 0x1039}, // သင်္ချို
-                    "\u101E\u1004\u103A\u1039\u1001\u103B\u102D\u102F"),
-            Pair.create(new int[] { 0x1004 }, // သင်္ချိုင
-                    "\u101E\u1004\u103A\u1039\u1001\u103B\u102D\u102F\u1004"),
-            Pair.create(new int[] { 0x103A }, // သင်္ချိုင်
-                    "\u101E\u1004\u103A\u1039\u1001\u103B\u102D\u102F\u1004\u103A"),
-            Pair.create(new int[] { 0x1038 }, // သင်္ချိုင်း
-                    "\u101E\u1004\u103A\u1039\u1001\u103B\u102D\u102F\u1004\u103A\u1038")
-        },
-
-        new Pair[] { // Type : kinzi after the consonant U+101E U+1001 (U+1004 U+103A U+1039)
-            // U+103B U+102D U+102F U+1004 U+103A U+1038 သ ခ င ် ္ ျ ိ ု င ် း
-            Pair.create(new int[] { 0x101E }, "\u101E"), // သခ
-            Pair.create(new int[] { 0x1001 }, "\u101E\u1001"), // သခ
-            Pair.create(new int[] { 0x1004, 0x103A, 0x1039 }, // သင်္ခ
-                    "\u101E\u1004\u103A\u1039\u1001"),
-            Pair.create(new int[] { 0x103B }, // သင်္ချ
-                    "\u101E\u1004\u103A\u1039\u1001\u103B"),
-            Pair.create(new int[] { 0x102D }, // သင်္ချိ
-                    "\u101E\u1004\u103A\u1039\u1001\u103B\u102D"),
-            Pair.create(new int[] { 0x102F }, // သင်္ချို
-                    "\u101E\u1004\u103A\u1039\u1001\u103B\u102D\u102F"),
-            Pair.create(new int[] { 0x1004 }, // သင်္ချိုင
-                    "\u101E\u1004\u103A\u1039\u1001\u103B\u102D\u102F\u1004"),
-            Pair.create(new int[] { 0x103A }, // သင်္ချိုင်
-                    "\u101E\u1004\u103A\u1039\u1001\u103B\u102D\u102F\u1004\u103A"),
-            Pair.create(new int[] { 0x1038 }, // သင်္ချိုင်း
-                    "\u101E\u1004\u103A\u1039\u1001\u103B\u102D\u102F\u1004\u103A\u1038")
-        },
-        */
-    };
-
-    @SuppressWarnings("unchecked")
-    private void doMyanmarTest(final int testNumber, final Pair[] test) {
-        int stepNumber = 0;
-        for (final Pair<int[], String> step : test) {
-            ++stepNumber;
-            final int[] input = step.first;
-            final String expectedResult = step.second;
-            if (input.length > 1) {
-                mLatinIME.onTextInput(new String(input, 0, input.length));
-            } else {
-                type(input[0]);
-            }
-            assertEquals("Myanmar reordering test " + testNumber + ", step " + stepNumber,
-                    expectedResult, mEditText.getText().toString());
-        }
-    }
-
-    public void testMyanmarReordering() {
-        int testNumber = 0;
-        changeLanguage("my_MM", "CombiningRules=MyanmarReordering");
-        for (final Pair[] test : TESTS) {
-            // Small trick to reset LatinIME : setText("") and send updateSelection with values
-            // LatinIME has never seen, and cursor pos 0,0.
-            mEditText.setText("");
-            mLatinIME.onUpdateSelection(1, 1, 0, 0, -1, -1);
-            doMyanmarTest(++testNumber, test);
-        }
-    }
-}
diff --git a/tests/src/com/android/inputmethod/latin/InputPointersTests.java b/tests/src/com/android/inputmethod/latin/InputPointersTests.java
deleted file mode 100644
index 1a47cdd..0000000
--- a/tests/src/com/android/inputmethod/latin/InputPointersTests.java
+++ /dev/null
@@ -1,326 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin;
-
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-import com.android.inputmethod.latin.utils.ResizableIntArray;
-
-import java.util.Arrays;
-
-@SmallTest
-public class InputPointersTests extends AndroidTestCase {
-    private static final int DEFAULT_CAPACITY = 48;
-
-    public void testNewInstance() {
-        final InputPointers src = new InputPointers(DEFAULT_CAPACITY);
-        assertEquals("new instance size", 0, src.getPointerSize());
-        assertNotNull("new instance xCoordinates", src.getXCoordinates());
-        assertNotNull("new instance yCoordinates", src.getYCoordinates());
-        assertNotNull("new instance pointerIds", src.getPointerIds());
-        assertNotNull("new instance times", src.getTimes());
-    }
-
-    public void testReset() {
-        final InputPointers src = new InputPointers(DEFAULT_CAPACITY);
-        final int[] xCoordinates = src.getXCoordinates();
-        final int[] yCoordinates = src.getXCoordinates();
-        final int[] pointerIds = src.getXCoordinates();
-        final int[] times = src.getXCoordinates();
-
-        src.reset();
-        assertEquals("size after reset", 0, src.getPointerSize());
-        assertNotSame("xCoordinates after reset", xCoordinates, src.getXCoordinates());
-        assertNotSame("yCoordinates after reset", yCoordinates, src.getYCoordinates());
-        assertNotSame("pointerIds after reset", pointerIds, src.getPointerIds());
-        assertNotSame("times after reset", times, src.getTimes());
-    }
-
-    public void testAdd() {
-        final InputPointers src = new InputPointers(DEFAULT_CAPACITY);
-        final int limit = src.getXCoordinates().length * 2 + 10;
-        for (int i = 0; i < limit; i++) {
-            final int x = i;
-            final int y = i * 2;
-            final int pointerId = i * 3;
-            final int time = i * 4;
-            src.addPointer(x, y, pointerId, time);
-            assertEquals("size after add " + i, i + 1, src.getPointerSize());
-        }
-        for (int i = 0; i < limit; i++) {
-            final int x = i;
-            final int y = i * 2;
-            final int pointerId = i * 3;
-            final int time = i * 4;
-            assertEquals("xCoordinates at " + i, x, src.getXCoordinates()[i]);
-            assertEquals("yCoordinates at " + i, y, src.getYCoordinates()[i]);
-            assertEquals("pointerIds at " + i, pointerId, src.getPointerIds()[i]);
-            assertEquals("times at " + i, time, src.getTimes()[i]);
-        }
-    }
-
-    public void testAddAt() {
-        final InputPointers src = new InputPointers(DEFAULT_CAPACITY);
-        final int limit = 1000, step = 100;
-        for (int i = 0; i < limit; i += step) {
-            final int x = i;
-            final int y = i * 2;
-            final int pointerId = i * 3;
-            final int time = i * 4;
-            src.addPointerAt(i, x, y, pointerId, time);
-            assertEquals("size after add at " + i, i + 1, src.getPointerSize());
-        }
-        for (int i = 0; i < limit; i += step) {
-            final int x = i;
-            final int y = i * 2;
-            final int pointerId = i * 3;
-            final int time = i * 4;
-            assertEquals("xCoordinates at " + i, x, src.getXCoordinates()[i]);
-            assertEquals("yCoordinates at " + i, y, src.getYCoordinates()[i]);
-            assertEquals("pointerIds at " + i, pointerId, src.getPointerIds()[i]);
-            assertEquals("times at " + i, time, src.getTimes()[i]);
-        }
-    }
-
-    public void testSet() {
-        final InputPointers src = new InputPointers(DEFAULT_CAPACITY);
-        final int limit = src.getXCoordinates().length * 2 + 10;
-        for (int i = 0; i < limit; i++) {
-            final int x = i;
-            final int y = i * 2;
-            final int pointerId = i * 3;
-            final int time = i * 4;
-            src.addPointer(x, y, pointerId, time);
-        }
-        final InputPointers dst = new InputPointers(DEFAULT_CAPACITY);
-        dst.set(src);
-        assertEquals("size after set", dst.getPointerSize(), src.getPointerSize());
-        assertSame("xCoordinates after set", dst.getXCoordinates(), src.getXCoordinates());
-        assertSame("yCoordinates after set", dst.getYCoordinates(), src.getYCoordinates());
-        assertSame("pointerIds after set", dst.getPointerIds(), src.getPointerIds());
-        assertSame("times after set", dst.getTimes(), src.getTimes());
-    }
-
-    public void testCopy() {
-        final InputPointers src = new InputPointers(DEFAULT_CAPACITY);
-        final int limit = 100;
-        for (int i = 0; i < limit; i++) {
-            final int x = i;
-            final int y = i * 2;
-            final int pointerId = i * 3;
-            final int time = i * 4;
-            src.addPointer(x, y, pointerId, time);
-        }
-        final InputPointers dst = new InputPointers(DEFAULT_CAPACITY);
-        dst.copy(src);
-        assertEquals("size after copy", dst.getPointerSize(), src.getPointerSize());
-        assertNotSame("xCoordinates after copy", dst.getXCoordinates(), src.getXCoordinates());
-        assertNotSame("yCoordinates after copy", dst.getYCoordinates(), src.getYCoordinates());
-        assertNotSame("pointerIds after copy", dst.getPointerIds(), src.getPointerIds());
-        assertNotSame("times after copy", dst.getTimes(), src.getTimes());
-        final int size = dst.getPointerSize();
-        assertIntArrayEquals("xCoordinates values after copy",
-                dst.getXCoordinates(), 0, src.getXCoordinates(), 0, size);
-        assertIntArrayEquals("yCoordinates values after copy",
-                dst.getYCoordinates(), 0, src.getYCoordinates(), 0, size);
-        assertIntArrayEquals("pointerIds values after copy",
-                dst.getPointerIds(), 0, src.getPointerIds(), 0, size);
-        assertIntArrayEquals("times values after copy",
-                dst.getTimes(), 0, src.getTimes(), 0, size);
-    }
-
-    public void testAppend() {
-        final int dstLength = 50;
-        final InputPointers dst = new InputPointers(DEFAULT_CAPACITY);
-        for (int i = 0; i < dstLength; i++) {
-            final int x = i * 4;
-            final int y = i * 3;
-            final int pointerId = i * 2;
-            final int time = i;
-            dst.addPointer(x, y, pointerId, time);
-        }
-        final InputPointers dstCopy = new InputPointers(DEFAULT_CAPACITY);
-        dstCopy.copy(dst);
-
-        final ResizableIntArray srcXCoords = new ResizableIntArray(DEFAULT_CAPACITY);
-        final ResizableIntArray srcYCoords = new ResizableIntArray(DEFAULT_CAPACITY);
-        final ResizableIntArray srcPointerIds = new ResizableIntArray(DEFAULT_CAPACITY);
-        final ResizableIntArray srcTimes = new ResizableIntArray(DEFAULT_CAPACITY);
-        final int srcLength = 100;
-        final int srcPointerId = 10;
-        for (int i = 0; i < srcLength; i++) {
-            final int x = i;
-            final int y = i * 2;
-            // The time value must be larger than <code>dst</code>.
-            final int time = i * 4 + dstLength;
-            srcXCoords.add(x);
-            srcYCoords.add(y);
-            srcPointerIds.add(srcPointerId);
-            srcTimes.add(time);
-        }
-
-        final int startPos = 0;
-        dst.append(srcPointerId, srcTimes, srcXCoords, srcYCoords,
-                startPos, 0 /* length */);
-        assertEquals("size after append zero", dstLength, dst.getPointerSize());
-        assertIntArrayEquals("xCoordinates after append zero",
-                dstCopy.getXCoordinates(), startPos, dst.getXCoordinates(), startPos, dstLength);
-        assertIntArrayEquals("yCoordinates after append zero",
-                dstCopy.getYCoordinates(), startPos, dst.getYCoordinates(), startPos, dstLength);
-        assertIntArrayEquals("pointerIds after append zero",
-                dstCopy.getPointerIds(), startPos, dst.getPointerIds(), startPos, dstLength);
-        assertIntArrayEquals("times after append zero",
-                dstCopy.getTimes(), startPos, dst.getTimes(), startPos, dstLength);
-
-        dst.append(srcPointerId, srcTimes, srcXCoords, srcYCoords,
-                startPos, srcLength);
-        assertEquals("size after append", dstLength + srcLength, dst.getPointerSize());
-        assertTrue("primitive length after append",
-                dst.getPointerIds().length >= dstLength + srcLength);
-        assertIntArrayEquals("original xCoordinates values after append",
-                dstCopy.getXCoordinates(), startPos, dst.getXCoordinates(), startPos, dstLength);
-        assertIntArrayEquals("original yCoordinates values after append",
-                dstCopy.getYCoordinates(), startPos, dst.getYCoordinates(), startPos, dstLength);
-        assertIntArrayEquals("original pointerIds values after append",
-                dstCopy.getPointerIds(), startPos, dst.getPointerIds(), startPos, dstLength);
-        assertIntArrayEquals("original times values after append",
-                dstCopy.getTimes(), startPos, dst.getTimes(), startPos, dstLength);
-        assertIntArrayEquals("appended xCoordinates values after append",
-                srcXCoords.getPrimitiveArray(), startPos, dst.getXCoordinates(),
-                dstLength, srcLength);
-        assertIntArrayEquals("appended yCoordinates values after append",
-                srcYCoords.getPrimitiveArray(), startPos, dst.getYCoordinates(),
-                dstLength, srcLength);
-        assertIntArrayEquals("appended pointerIds values after append",
-                srcPointerIds.getPrimitiveArray(), startPos, dst.getPointerIds(),
-                dstLength, srcLength);
-        assertIntArrayEquals("appended times values after append",
-                srcTimes.getPrimitiveArray(), startPos, dst.getTimes(), dstLength, srcLength);
-    }
-
-    public void testAppendResizableIntArray() {
-        final int dstLength = 50;
-        final InputPointers dst = new InputPointers(DEFAULT_CAPACITY);
-        for (int i = 0; i < dstLength; i++) {
-            final int x = i * 4;
-            final int y = i * 3;
-            final int pointerId = i * 2;
-            final int time = i;
-            dst.addPointer(x, y, pointerId, time);
-        }
-        final InputPointers dstCopy = new InputPointers(DEFAULT_CAPACITY);
-        dstCopy.copy(dst);
-
-        final int srcLength = 100;
-        final int srcPointerId = 1;
-        final int[] srcPointerIds = new int[srcLength];
-        Arrays.fill(srcPointerIds, srcPointerId);
-        final ResizableIntArray srcTimes = new ResizableIntArray(DEFAULT_CAPACITY);
-        final ResizableIntArray srcXCoords = new ResizableIntArray(DEFAULT_CAPACITY);
-        final ResizableIntArray srcYCoords= new ResizableIntArray(DEFAULT_CAPACITY);
-        for (int i = 0; i < srcLength; i++) {
-            // The time value must be larger than <code>dst</code>.
-            final int time = i * 2 + dstLength;
-            final int x = i * 3;
-            final int y = i * 4;
-            srcTimes.add(time);
-            srcXCoords.add(x);
-            srcYCoords.add(y);
-        }
-
-        dst.append(srcPointerId, srcTimes, srcXCoords, srcYCoords, 0, 0);
-        assertEquals("size after append zero", dstLength, dst.getPointerSize());
-        assertIntArrayEquals("xCoordinates after append zero",
-                dstCopy.getXCoordinates(), 0, dst.getXCoordinates(), 0, dstLength);
-        assertIntArrayEquals("yCoordinates after append zero",
-                dstCopy.getYCoordinates(), 0, dst.getYCoordinates(), 0, dstLength);
-        assertIntArrayEquals("pointerIds after append zero",
-                dstCopy.getPointerIds(), 0, dst.getPointerIds(), 0, dstLength);
-        assertIntArrayEquals("times after append zero",
-                dstCopy.getTimes(), 0, dst.getTimes(), 0, dstLength);
-
-        dst.append(srcPointerId, srcTimes, srcXCoords, srcYCoords, 0, srcLength);
-        assertEquals("size after append", dstLength + srcLength, dst.getPointerSize());
-        assertTrue("primitive length after append",
-                dst.getPointerIds().length >= dstLength + srcLength);
-        assertIntArrayEquals("original xCoordinates values after append",
-                dstCopy.getXCoordinates(), 0, dst.getXCoordinates(), 0, dstLength);
-        assertIntArrayEquals("original yCoordinates values after append",
-                dstCopy.getYCoordinates(), 0, dst.getYCoordinates(), 0, dstLength);
-        assertIntArrayEquals("original pointerIds values after append",
-                dstCopy.getPointerIds(), 0, dst.getPointerIds(), 0, dstLength);
-        assertIntArrayEquals("original times values after append",
-                dstCopy.getTimes(), 0, dst.getTimes(), 0, dstLength);
-        assertIntArrayEquals("appended xCoordinates values after append",
-                srcXCoords.getPrimitiveArray(), 0, dst.getXCoordinates(), dstLength, srcLength);
-        assertIntArrayEquals("appended yCoordinates values after append",
-                srcYCoords.getPrimitiveArray(), 0, dst.getYCoordinates(), dstLength, srcLength);
-        assertIntArrayEquals("appended pointerIds values after append",
-                srcPointerIds, 0, dst.getPointerIds(), dstLength, srcLength);
-        assertIntArrayEquals("appended times values after append",
-                srcTimes.getPrimitiveArray(), 0, dst.getTimes(), dstLength, srcLength);
-    }
-
-    // TODO: Consolidate this method with
-    // {@link ResizableIntArrayTests#assertIntArrayEquals(String,int[],int,int[],int,int)}.
-    private static void assertIntArrayEquals(final String message, final int[] expecteds,
-            final int expectedPos, final int[] actuals, final int actualPos, final int length) {
-        if (expecteds == actuals) {
-            return;
-        }
-        if (expecteds == null || actuals == null) {
-            assertEquals(message, Arrays.toString(expecteds), Arrays.toString(actuals));
-            return;
-        }
-        if (expecteds.length < expectedPos + length || actuals.length < actualPos + length) {
-            fail(message + ": insufficient length: expecteds=" + Arrays.toString(expecteds)
-                    + " actuals=" + Arrays.toString(actuals));
-            return;
-        }
-        for (int i = 0; i < length; i++) {
-            assertEquals(message + " [" + i + "]",
-                    expecteds[i + expectedPos], actuals[i + actualPos]);
-        }
-    }
-
-    public void testShift() {
-        final InputPointers src = new InputPointers(DEFAULT_CAPACITY);
-        final int limit = 100;
-        final int shiftAmount = 20;
-        for (int i = 0; i < limit; i++) {
-            final int x = i;
-            final int y = i * 2;
-            final int pointerId = i * 3;
-            final int time = i * 4;
-            src.addPointer(x, y, pointerId, time);
-        }
-        src.shift(shiftAmount);
-        assertEquals("length after shift", src.getPointerSize(), limit - shiftAmount);
-        for (int i = 0; i < limit - shiftAmount; ++i) {
-            final int oldIndex = i + shiftAmount;
-            final int x = oldIndex;
-            final int y = oldIndex * 2;
-            final int pointerId = oldIndex * 3;
-            final int time = oldIndex * 4;
-            assertEquals("xCoordinates at " + i, x, src.getXCoordinates()[i]);
-            assertEquals("yCoordinates at " + i, y, src.getYCoordinates()[i]);
-            assertEquals("pointerIds at " + i, pointerId, src.getPointerIds()[i]);
-            assertEquals("times at " + i, time, src.getTimes()[i]);
-        }
-    }
-}
diff --git a/tests/src/com/android/inputmethod/latin/InputTestsBase.java b/tests/src/com/android/inputmethod/latin/InputTestsBase.java
index 986fb10..dead53d 100644
--- a/tests/src/com/android/inputmethod/latin/InputTestsBase.java
+++ b/tests/src/com/android/inputmethod/latin/InputTestsBase.java
@@ -18,6 +18,7 @@
 
 import android.content.Context;
 import android.content.SharedPreferences;
+import android.graphics.Point;
 import android.os.Looper;
 import android.preference.PreferenceManager;
 import android.test.ServiceTestCase;
@@ -36,12 +37,17 @@
 import android.widget.FrameLayout;
 
 import com.android.inputmethod.compat.InputMethodSubtypeCompatUtils;
+import com.android.inputmethod.event.Event;
 import com.android.inputmethod.keyboard.Key;
 import com.android.inputmethod.keyboard.Keyboard;
+import com.android.inputmethod.latin.Dictionary.PhonyDictionary;
 import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.InputPointers;
+import com.android.inputmethod.latin.common.LocaleUtils;
+import com.android.inputmethod.latin.common.StringUtils;
 import com.android.inputmethod.latin.settings.DebugSettings;
 import com.android.inputmethod.latin.settings.Settings;
-import com.android.inputmethod.latin.utils.LocaleUtils;
 import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
 
 import java.util.Locale;
@@ -52,21 +58,28 @@
 
     // Default value for auto-correction threshold. This is the string representation of the
     // index in the resources array of auto-correction threshold settings.
-    private static final String DEFAULT_AUTO_CORRECTION_THRESHOLD = "1";
+    private static final boolean DEFAULT_AUTO_CORRECTION = true;
 
     // The message that sets the underline is posted with a 500 ms delay
-    protected static final int DELAY_TO_WAIT_FOR_UNDERLINE = 500;
+    protected static final int DELAY_TO_WAIT_FOR_UNDERLINE_MILLIS = 500;
     // The message that sets predictions is posted with a 200 ms delay
-    protected static final int DELAY_TO_WAIT_FOR_PREDICTIONS = 200;
-    private final int TIMEOUT_TO_WAIT_FOR_LOADING_MAIN_DICTIONARY_IN_SECONDS = 60;
+    protected static final int DELAY_TO_WAIT_FOR_PREDICTIONS_MILLIS = 200;
+    // We wait for gesture computation for this delay
+    protected static final int DELAY_TO_WAIT_FOR_GESTURE_MILLIS = 200;
+    // If a dictionary takes longer to load, we could have serious problems.
+    private final int TIMEOUT_TO_WAIT_FOR_LOADING_MAIN_DICTIONARY_IN_SECONDS = 5;
+
+    // Type for a test phony dictionary
+    private static final String TYPE_TEST = "test";
+    private static final PhonyDictionary DICTIONARY_TEST = new PhonyDictionary(TYPE_TEST);
 
     protected LatinIME mLatinIME;
     protected Keyboard mKeyboard;
     protected MyEditText mEditText;
     protected View mInputView;
     protected InputConnection mInputConnection;
+    private boolean mPreviousAutoCorrectSetting;
     private boolean mPreviousBigramPredictionSettings;
-    private String mPreviousAutoCorrectSetting;
 
     // A helper class to ease span tests
     public static class SpanGetter {
@@ -94,12 +107,15 @@
                 throw new RuntimeException("Expected one span, found " + spans.length);
             }
         }
+        public SuggestionSpan getSpan() {
+            return (SuggestionSpan) mSpan;
+        }
         public boolean isAutoCorrectionIndicator() {
             return (mSpan instanceof SuggestionSpan) &&
-                    0 != (SuggestionSpan.FLAG_AUTO_CORRECTION & ((SuggestionSpan)mSpan).getFlags());
+                    0 != (SuggestionSpan.FLAG_AUTO_CORRECTION & getSpan().getFlags());
         }
         public String[] getSuggestions() {
-            return ((SuggestionSpan)mSpan).getSuggestions();
+            return getSpan().getSuggestions();
         }
     }
 
@@ -140,8 +156,6 @@
         super(LatinIMEForTests.class);
     }
 
-    // TODO: Isn't there a way to make this generic somehow? We can take a <T> and return a <T>
-    // but we'd have to dispatch types on editor.put...() functions
     protected boolean setBooleanPreference(final String key, final boolean value,
             final boolean defaultValue) {
         final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mLatinIME);
@@ -152,6 +166,11 @@
         return previousSetting;
     }
 
+    protected boolean getBooleanPreference(final String key, final boolean defaultValue) {
+        return PreferenceManager.getDefaultSharedPreferences(mLatinIME)
+                .getBoolean(key, defaultValue);
+    }
+
     protected String setStringPreference(final String key, final String value,
             final String defaultValue) {
         final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(mLatinIME);
@@ -182,13 +201,17 @@
                 | InputType.TYPE_TEXT_FLAG_MULTI_LINE;
         mEditText.setInputType(inputType);
         mEditText.setEnabled(true);
+        mLastCursorPos = 0;
+        if (null == Looper.myLooper()) {
+            Looper.prepare();
+        }
         setupService();
         mLatinIME = getService();
         setDebugMode(true);
         mPreviousBigramPredictionSettings = setBooleanPreference(Settings.PREF_BIGRAM_PREDICTIONS,
                 true, true /* defaultValue */);
-        mPreviousAutoCorrectSetting = setStringPreference(Settings.PREF_AUTO_CORRECTION_THRESHOLD,
-                DEFAULT_AUTO_CORRECTION_THRESHOLD, DEFAULT_AUTO_CORRECTION_THRESHOLD);
+        mPreviousAutoCorrectSetting = setBooleanPreference(Settings.PREF_AUTO_CORRECTION,
+                DEFAULT_AUTO_CORRECTION, DEFAULT_AUTO_CORRECTION);
         mLatinIME.onCreate();
         EditorInfo ei = new EditorInfo();
         final InputConnection ic = mEditText.onCreateInputConnection(ei);
@@ -207,7 +230,7 @@
         // Run messages to avoid the messages enqueued by startInputView() and its friends
         // to run on a later call and ruin things. We need to wait first because some of them
         // can be posted with a delay (notably,  MSG_RESUME_SUGGESTIONS)
-        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
+        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS_MILLIS);
         runMessages();
     }
 
@@ -219,8 +242,8 @@
         mLatinIME.mHandler.removeAllMessages();
         setBooleanPreference(Settings.PREF_BIGRAM_PREDICTIONS, mPreviousBigramPredictionSettings,
                 true /* defaultValue */);
-        setStringPreference(Settings.PREF_AUTO_CORRECTION_THRESHOLD, mPreviousAutoCorrectSetting,
-                DEFAULT_AUTO_CORRECTION_THRESHOLD);
+        setBooleanPreference(Settings.PREF_AUTO_CORRECTION, mPreviousAutoCorrectSetting,
+                DEFAULT_AUTO_CORRECTION);
         setDebugMode(false);
         mLatinIME.recycle();
         super.tearDown();
@@ -236,7 +259,7 @@
     // Now, Looper#loop() never exits in normal operation unless the Looper#quit() method
     // is called, which has a lot of bad side effects. We can however just throw an exception
     // in the runnable which will unwind the stack and allow us to exit.
-    private final class InterruptRunMessagesException extends RuntimeException {
+    final class InterruptRunMessagesException extends RuntimeException {
         // Empty class
     }
     protected void runMessages() {
@@ -263,14 +286,16 @@
         // but keep them in mind if something breaks. Commenting them out as is should work.
         //mLatinIME.onPressKey(codePoint, 0 /* repeatCount */, true /* isSinglePointer */);
         final Key key = mKeyboard.getKey(codePoint);
+        final Event event;
         if (key == null) {
-            mLatinIME.onCodeInput(codePoint, Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE,
-                    isKeyRepeat);
+            event = Event.createSoftwareKeypressEvent(codePoint, Event.NOT_A_KEY_CODE,
+                    Constants.NOT_A_COORDINATE, Constants.NOT_A_COORDINATE, isKeyRepeat);
         } else {
             final int x = key.getX() + key.getWidth() / 2;
             final int y = key.getY() + key.getHeight() / 2;
-            mLatinIME.onCodeInput(codePoint, x, y, isKeyRepeat);
+            event = LatinIME.createSoftwareKeypressEvent(codePoint, x, y, isKeyRepeat);
         }
+        mLatinIME.onEvent(event);
         // Also see the comment at the top of this function about onReleaseKey
         //mLatinIME.onReleaseKey(codePoint, false /* withSliding */);
     }
@@ -289,6 +314,46 @@
         }
     }
 
+    protected Point getXY(final int codePoint) {
+        final Key key = mKeyboard.getKey(codePoint);
+        if (key == null) {
+            throw new RuntimeException("Code point not on the keyboard");
+        }
+        return new Point(key.getX() + key.getWidth() / 2, key.getY() + key.getHeight() / 2);
+    }
+
+    protected void gesture(final String stringToGesture) {
+        if (StringUtils.codePointCount(stringToGesture) < 2) {
+            throw new RuntimeException("Can't gesture strings less than 2 chars long");
+        }
+
+        mLatinIME.onStartBatchInput();
+        final int startCodePoint = stringToGesture.codePointAt(0);
+        Point oldPoint = getXY(startCodePoint);
+        int timestamp = 0; // In milliseconds since the start of the gesture
+        final InputPointers pointers = new InputPointers(Constants.DEFAULT_GESTURE_POINTS_CAPACITY);
+        pointers.addPointer(oldPoint.x, oldPoint.y, 0 /* pointerId */, timestamp);
+
+        for (int i = Character.charCount(startCodePoint); i < stringToGesture.length();
+                i = stringToGesture.offsetByCodePoints(i, 1)) {
+            final Point newPoint = getXY(stringToGesture.codePointAt(i));
+            // Arbitrarily 0.5s between letters and 0.1 between events. Refine this later if needed.
+            final int STEPS = 5;
+            for (int j = 0; j < STEPS; ++j) {
+                timestamp += 100;
+                pointers.addPointer(oldPoint.x + ((newPoint.x - oldPoint.x) * j) / STEPS,
+                        oldPoint.y + ((newPoint.y - oldPoint.y) * j) / STEPS,
+                        0 /* pointerId */, timestamp);
+            }
+            oldPoint.x = newPoint.x;
+            oldPoint.y = newPoint.y;
+            mLatinIME.onUpdateBatchInput(pointers);
+        }
+        mLatinIME.onEndBatchInput(pointers);
+        sleep(DELAY_TO_WAIT_FOR_GESTURE_MILLIS);
+        runMessages();
+    }
+
     protected void waitForDictionariesToBeLoaded() {
         try {
             mLatinIME.waitForLoadingDictionaries(
@@ -329,7 +394,7 @@
                 false /* isAuxiliary */,
                 false /* overridesImplicitlyEnabledSubtype */,
                 0 /* id */);
-        SubtypeSwitcher.getInstance().forceSubtype(subtype);
+        RichInputMethodManager.forceSubtype(subtype);
         mLatinIME.onCurrentInputMethodSubtypeChanged(subtype);
         runMessages();
         mKeyboard = mLatinIME.mKeyboardSwitcher.getKeyboard();
@@ -346,8 +411,9 @@
     }
 
     protected void pickSuggestionManually(final String suggestion) {
-        mLatinIME.pickSuggestionManually(new SuggestedWordInfo(suggestion, 1,
-                SuggestedWordInfo.KIND_CORRECTION, null /* sourceDict */,
+        mLatinIME.pickSuggestionManually(new SuggestedWordInfo(suggestion,
+                "" /* prevWordsContext */, 1 /* score */,
+                SuggestedWordInfo.KIND_CORRECTION, DICTIONARY_TEST,
                 SuggestedWordInfo.NOT_AN_INDEX /* indexOfTouchPointOfSecondWord */,
                 SuggestedWordInfo.NOT_A_CONFIDENCE /* autoCommitFirstWordConfidence */));
     }
@@ -358,4 +424,40 @@
             Thread.sleep(milliseconds);
         } catch (InterruptedException e) {}
     }
+
+    // Some helper methods to manage the mock cursor position
+    // DO NOT CALL LatinIME#onUpdateSelection IF YOU WANT TO USE THOSE
+    int mLastCursorPos = 0;
+    /**
+     * Move the cached cursor position to the passed position and send onUpdateSelection to LatinIME
+     */
+    protected int sendUpdateForCursorMoveTo(final int position) {
+        mInputConnection.setSelection(position, position);
+        mLatinIME.onUpdateSelection(mLastCursorPos, mLastCursorPos, position, position, -1, -1);
+        mLastCursorPos = position;
+        return position;
+    }
+
+    /**
+     * Move the cached cursor position by the passed amount and send onUpdateSelection to LatinIME
+     */
+    protected int sendUpdateForCursorMoveBy(final int offset) {
+        final int lastPos = mEditText.getText().length();
+        final int requestedPosition = mLastCursorPos + offset;
+        if (requestedPosition < 0) {
+            return sendUpdateForCursorMoveTo(0);
+        } else if (requestedPosition > lastPos) {
+            return sendUpdateForCursorMoveTo(lastPos);
+        } else {
+            return sendUpdateForCursorMoveTo(requestedPosition);
+        }
+    }
+
+    /**
+     * Move the cached cursor position to the end of the line and send onUpdateSelection to LatinIME
+     */
+    protected int sendUpdateForCursorMoveToEndOfLine() {
+        final int lastPos = mEditText.getText().length();
+        return sendUpdateForCursorMoveTo(lastPos);
+    }
 }
diff --git a/tests/src/com/android/inputmethod/latin/LatinIMEForTests.java b/tests/src/com/android/inputmethod/latin/LatinIMEForTests.java
index e47c557..035c8d7 100644
--- a/tests/src/com/android/inputmethod/latin/LatinIMEForTests.java
+++ b/tests/src/com/android/inputmethod/latin/LatinIMEForTests.java
@@ -21,4 +21,16 @@
     public boolean isInputViewShown() {
         return true;
     }
+
+    private boolean deallocateMemoryWasPerformed = false;
+
+    @Override
+    protected void deallocateMemory() {
+        super.deallocateMemory();
+        deallocateMemoryWasPerformed = true;
+    }
+
+    public boolean getDeallocateMemoryWasPerformed() {
+        return deallocateMemoryWasPerformed;
+    }
 }
diff --git a/tests/src/com/android/inputmethod/latin/LatinImeStressTests.java b/tests/src/com/android/inputmethod/latin/LatinImeStressTests.java
index f5e993d..22114b7 100644
--- a/tests/src/com/android/inputmethod/latin/LatinImeStressTests.java
+++ b/tests/src/com/android/inputmethod/latin/LatinImeStressTests.java
@@ -18,7 +18,7 @@
 
 import android.test.suitebuilder.annotation.LargeTest;
 
-import com.android.inputmethod.latin.makedict.CodePointUtils;
+import com.android.inputmethod.latin.common.CodePointUtils;
 
 import java.util.Random;
 
diff --git a/tests/src/com/android/inputmethod/latin/LatinImeTests.java b/tests/src/com/android/inputmethod/latin/LatinImeTests.java
new file mode 100644
index 0000000..c6f6313
--- /dev/null
+++ b/tests/src/com/android/inputmethod/latin/LatinImeTests.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.inputmethod.latin;
+
+import android.test.suitebuilder.annotation.LargeTest;
+
+@LargeTest
+public class LatinImeTests extends InputTestsBase {
+    public void testDeferredDeallocation_doesntHappenBeforeTimeout() {
+        mLatinIME.mHandler.onFinishInputView(true);
+        runMessages();
+        sleep(1000); // 1s
+        runMessages();
+        assertFalse("memory deallocation performed before timeout passed",
+                ((LatinIMEForTests)mLatinIME).getDeallocateMemoryWasPerformed());
+    }
+
+    public void testDeferredDeallocation_doesHappenAfterTimeout() {
+        mLatinIME.mHandler.onFinishInputView(true);
+        runMessages();
+        sleep(11000); // 11s (timeout is at 10s)
+        runMessages();
+        assertTrue("memory deallocation not performed although timeout passed",
+                ((LatinIMEForTests)mLatinIME).getDeallocateMemoryWasPerformed());
+    }
+}
diff --git a/tests/src/com/android/inputmethod/latin/NgramContextTests.java b/tests/src/com/android/inputmethod/latin/NgramContextTests.java
new file mode 100644
index 0000000..0a662db
--- /dev/null
+++ b/tests/src/com/android/inputmethod/latin/NgramContextTests.java
@@ -0,0 +1,145 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin;
+
+import com.android.inputmethod.latin.NgramContext.WordInfo;
+import com.android.inputmethod.latin.settings.SpacingAndPunctuations;
+import com.android.inputmethod.latin.utils.NgramContextUtils;
+
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+@SmallTest
+public class NgramContextTests extends AndroidTestCase {
+    public void testConstruct() {
+        assertEquals(new NgramContext(new WordInfo("a")), new NgramContext(new WordInfo("a")));
+        assertEquals(new NgramContext(WordInfo.BEGINNING_OF_SENTENCE_WORD_INFO),
+                new NgramContext(WordInfo.BEGINNING_OF_SENTENCE_WORD_INFO));
+        assertEquals(new NgramContext(WordInfo.EMPTY_WORD_INFO),
+                new NgramContext(WordInfo.EMPTY_WORD_INFO));
+        assertEquals(new NgramContext(WordInfo.EMPTY_WORD_INFO),
+                new NgramContext(WordInfo.EMPTY_WORD_INFO));
+    }
+
+    public void testIsBeginningOfSentenceContext() {
+        assertFalse(new NgramContext().isBeginningOfSentenceContext());
+        assertTrue(new NgramContext(WordInfo.BEGINNING_OF_SENTENCE_WORD_INFO)
+                .isBeginningOfSentenceContext());
+        assertTrue(NgramContext.BEGINNING_OF_SENTENCE.isBeginningOfSentenceContext());
+        assertFalse(new NgramContext(new WordInfo("a")).isBeginningOfSentenceContext());
+        assertFalse(new NgramContext(new WordInfo("")).isBeginningOfSentenceContext());
+        assertFalse(new NgramContext(WordInfo.EMPTY_WORD_INFO).isBeginningOfSentenceContext());
+        assertTrue(new NgramContext(WordInfo.BEGINNING_OF_SENTENCE_WORD_INFO, new WordInfo("a"))
+                .isBeginningOfSentenceContext());
+        assertFalse(new NgramContext(new WordInfo("a"), WordInfo.BEGINNING_OF_SENTENCE_WORD_INFO)
+                .isBeginningOfSentenceContext());
+        assertFalse(new NgramContext(
+                WordInfo.EMPTY_WORD_INFO, WordInfo.BEGINNING_OF_SENTENCE_WORD_INFO)
+                .isBeginningOfSentenceContext());
+    }
+
+    public void testGetNextNgramContext() {
+        final NgramContext ngramContext_a = new NgramContext(new WordInfo("a"));
+        final NgramContext ngramContext_b_a =
+                ngramContext_a.getNextNgramContext(new WordInfo("b"));
+        assertEquals("b", ngramContext_b_a.getNthPrevWord(1));
+        assertEquals("a", ngramContext_b_a.getNthPrevWord(2));
+        final NgramContext ngramContext_bos_b =
+                ngramContext_b_a.getNextNgramContext(WordInfo.BEGINNING_OF_SENTENCE_WORD_INFO);
+        assertTrue(ngramContext_bos_b.isBeginningOfSentenceContext());
+        assertEquals("b", ngramContext_bos_b.getNthPrevWord(2));
+        final NgramContext ngramContext_c_bos =
+                ngramContext_b_a.getNextNgramContext(new WordInfo("c"));
+        assertEquals("c", ngramContext_c_bos.getNthPrevWord(1));
+    }
+
+    public void testExtractPrevWordsContextTest() {
+        final NgramContext ngramContext_bos =
+                new NgramContext(WordInfo.BEGINNING_OF_SENTENCE_WORD_INFO);
+        assertEquals("<S>", ngramContext_bos.extractPrevWordsContext());
+        final NgramContext ngramContext_a = new NgramContext(new WordInfo("a"));
+        final NgramContext ngramContext_b_a =
+                ngramContext_a.getNextNgramContext(new WordInfo("b"));
+        assertEquals("b", ngramContext_b_a.getNthPrevWord(1));
+        assertEquals("a", ngramContext_b_a.getNthPrevWord(2));
+        assertEquals("a b", ngramContext_b_a.extractPrevWordsContext());
+
+        final NgramContext ngramContext_bos_b =
+                ngramContext_b_a.getNextNgramContext(WordInfo.BEGINNING_OF_SENTENCE_WORD_INFO);
+        assertTrue(ngramContext_bos_b.isBeginningOfSentenceContext());
+        assertEquals("b", ngramContext_bos_b.getNthPrevWord(2));
+        assertEquals("a b <S>", ngramContext_bos_b.extractPrevWordsContext());
+
+        final NgramContext ngramContext_empty = new NgramContext(WordInfo.EMPTY_WORD_INFO);
+        assertEquals("", ngramContext_empty.extractPrevWordsContext());
+        final NgramContext ngramContext_a_empty =
+                ngramContext_empty.getNextNgramContext(new WordInfo("a"));
+        assertEquals("a", ngramContext_a_empty.getNthPrevWord(1));
+        assertEquals("a", ngramContext_a_empty.extractPrevWordsContext());
+    }
+
+    public void testExtractPrevWordsContextArray() {
+        final NgramContext ngramContext_bos =
+                new NgramContext(WordInfo.BEGINNING_OF_SENTENCE_WORD_INFO);
+        assertEquals("<S>", ngramContext_bos.extractPrevWordsContext());
+        assertEquals(1, ngramContext_bos.extractPrevWordsContextArray().length);
+        final NgramContext ngramContext_a = new NgramContext(new WordInfo("a"));
+        final NgramContext ngramContext_b_a =
+                ngramContext_a.getNextNgramContext(new WordInfo("b"));
+        assertEquals(2, ngramContext_b_a.extractPrevWordsContextArray().length);
+        assertEquals("b", ngramContext_b_a.getNthPrevWord(1));
+        assertEquals("a", ngramContext_b_a.getNthPrevWord(2));
+        assertEquals("a", ngramContext_b_a.extractPrevWordsContextArray()[0]);
+        assertEquals("b", ngramContext_b_a.extractPrevWordsContextArray()[1]);
+
+        final NgramContext ngramContext_bos_b =
+                ngramContext_b_a.getNextNgramContext(WordInfo.BEGINNING_OF_SENTENCE_WORD_INFO);
+        assertTrue(ngramContext_bos_b.isBeginningOfSentenceContext());
+        assertEquals(3, ngramContext_bos_b.extractPrevWordsContextArray().length);
+        assertEquals("b", ngramContext_bos_b.getNthPrevWord(2));
+        assertEquals("a", ngramContext_bos_b.extractPrevWordsContextArray()[0]);
+        assertEquals("b", ngramContext_bos_b.extractPrevWordsContextArray()[1]);
+        assertEquals("<S>", ngramContext_bos_b.extractPrevWordsContextArray()[2]);
+
+        final NgramContext ngramContext_empty = new NgramContext(WordInfo.EMPTY_WORD_INFO);
+        assertEquals(0, ngramContext_empty.extractPrevWordsContextArray().length);
+        final NgramContext ngramContext_a_empty =
+                ngramContext_empty.getNextNgramContext(new WordInfo("a"));
+        assertEquals(1, ngramContext_a_empty.extractPrevWordsContextArray().length);
+        assertEquals("a", ngramContext_a_empty.extractPrevWordsContextArray()[0]);
+    }
+
+    public void testGetNgramContextFromNthPreviousWord() {
+        SpacingAndPunctuations spacingAndPunctuations = new SpacingAndPunctuations(
+                mContext.getResources());
+        assertEquals("<S>", NgramContextUtils.getNgramContextFromNthPreviousWord("",
+                spacingAndPunctuations, 1).extractPrevWordsContext());
+        assertEquals("<S> b", NgramContextUtils.getNgramContextFromNthPreviousWord("a. b ",
+                spacingAndPunctuations, 1).extractPrevWordsContext());
+        assertEquals("<S> b", NgramContextUtils.getNgramContextFromNthPreviousWord("a? b ",
+                spacingAndPunctuations, 1).extractPrevWordsContext());
+        assertEquals("<S> b", NgramContextUtils.getNgramContextFromNthPreviousWord("a! b ",
+                spacingAndPunctuations, 1).extractPrevWordsContext());
+        assertEquals("<S> b", NgramContextUtils.getNgramContextFromNthPreviousWord("a\nb ",
+                spacingAndPunctuations, 1).extractPrevWordsContext());
+        assertEquals("<S> a b", NgramContextUtils.getNgramContextFromNthPreviousWord("a b ",
+                spacingAndPunctuations, 1).extractPrevWordsContext());
+        assertFalse(NgramContextUtils
+                .getNgramContextFromNthPreviousWord("a b c d e", spacingAndPunctuations, 1)
+                .extractPrevWordsContext().startsWith("<S>"));
+    }
+}
diff --git a/tests/src/com/android/inputmethod/latin/PunctuationTests.java b/tests/src/com/android/inputmethod/latin/PunctuationTests.java
index 64750fb..3537918 100644
--- a/tests/src/com/android/inputmethod/latin/PunctuationTests.java
+++ b/tests/src/com/android/inputmethod/latin/PunctuationTests.java
@@ -38,7 +38,7 @@
         try {
             mLatinIME.loadSettings();
             type(WORD_TO_TYPE);
-            sleep(DELAY_TO_WAIT_FOR_UNDERLINE);
+            sleep(DELAY_TO_WAIT_FOR_UNDERLINE_MILLIS);
             runMessages();
             assertTrue("type word then type space should display punctuation strip",
                     mLatinIME.getSuggestedWordsForTest().isPunctuationSuggestions());
diff --git a/tests/src/com/android/inputmethod/latin/RichInputConnectionAndTextRangeTests.java b/tests/src/com/android/inputmethod/latin/RichInputConnectionAndTextRangeTests.java
index f9d7226..08779b9 100644
--- a/tests/src/com/android/inputmethod/latin/RichInputConnectionAndTextRangeTests.java
+++ b/tests/src/com/android/inputmethod/latin/RichInputConnectionAndTextRangeTests.java
@@ -30,12 +30,12 @@
 import android.view.inputmethod.InputConnection;
 import android.view.inputmethod.InputConnectionWrapper;
 
-import com.android.inputmethod.latin.PrevWordsInfo.WordInfo;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.StringUtils;
 import com.android.inputmethod.latin.settings.SpacingAndPunctuations;
-import com.android.inputmethod.latin.utils.PrevWordsInfoUtils;
+import com.android.inputmethod.latin.utils.NgramContextUtils;
 import com.android.inputmethod.latin.utils.RunInLocale;
 import com.android.inputmethod.latin.utils.ScriptUtils;
-import com.android.inputmethod.latin.utils.StringUtils;
 import com.android.inputmethod.latin.utils.TextRange;
 
 import java.util.Locale;
@@ -137,7 +137,7 @@
         }
     }
 
-    private class MockInputMethodService extends InputMethodService {
+    static class MockInputMethodService extends InputMethodService {
         private MockConnection mMockConnection;
         public void setInputConnection(final MockConnection mockConnection) {
             mMockConnection = mockConnection;
@@ -158,26 +158,25 @@
      */
     public void testGetPreviousWord() {
         // If one of the following cases breaks, the bigram suggestions won't work.
-        assertEquals(PrevWordsInfoUtils.getPrevWordsInfoFromNthPreviousWord(
-                "abc def", mSpacingAndPunctuations, 2).mPrevWordsInfo[0].mWord, "abc");
-        assertEquals(PrevWordsInfoUtils.getPrevWordsInfoFromNthPreviousWord(
-                "abc", mSpacingAndPunctuations, 2), PrevWordsInfo.BEGINNING_OF_SENTENCE);
-        assertEquals(PrevWordsInfoUtils.getPrevWordsInfoFromNthPreviousWord(
-                "abc. def", mSpacingAndPunctuations, 2), PrevWordsInfo.BEGINNING_OF_SENTENCE);
+        assertEquals(NgramContextUtils.getNgramContextFromNthPreviousWord(
+                "abc def", mSpacingAndPunctuations, 2).getNthPrevWord(1), "abc");
+        assertEquals(NgramContextUtils.getNgramContextFromNthPreviousWord(
+                "abc", mSpacingAndPunctuations, 2), NgramContext.BEGINNING_OF_SENTENCE);
+        assertEquals(NgramContextUtils.getNgramContextFromNthPreviousWord(
+                "abc. def", mSpacingAndPunctuations, 2), NgramContext.BEGINNING_OF_SENTENCE);
 
-        assertFalse(PrevWordsInfoUtils.getPrevWordsInfoFromNthPreviousWord(
-                "abc def", mSpacingAndPunctuations, 2).mPrevWordsInfo[0].mIsBeginningOfSentence);
-        assertTrue(PrevWordsInfoUtils.getPrevWordsInfoFromNthPreviousWord(
-                "abc", mSpacingAndPunctuations, 2).mPrevWordsInfo[0].mIsBeginningOfSentence);
+        assertFalse(NgramContextUtils.getNgramContextFromNthPreviousWord(
+                "abc def", mSpacingAndPunctuations, 2).isBeginningOfSentenceContext());
+        assertTrue(NgramContextUtils.getNgramContextFromNthPreviousWord(
+                "abc", mSpacingAndPunctuations, 2).isBeginningOfSentenceContext());
 
         // For n-gram
-        assertEquals(PrevWordsInfoUtils.getPrevWordsInfoFromNthPreviousWord(
-                "abc def", mSpacingAndPunctuations, 1).mPrevWordsInfo[0].mWord, "def");
-        assertEquals(PrevWordsInfoUtils.getPrevWordsInfoFromNthPreviousWord(
-                "abc def", mSpacingAndPunctuations, 1).mPrevWordsInfo[1].mWord, "abc");
-        assertEquals(PrevWordsInfoUtils.getPrevWordsInfoFromNthPreviousWord(
-                "abc def", mSpacingAndPunctuations, 2).mPrevWordsInfo[1],
-                WordInfo.BEGINNING_OF_SENTENCE);
+        assertEquals(NgramContextUtils.getNgramContextFromNthPreviousWord(
+                "abc def", mSpacingAndPunctuations, 1).getNthPrevWord(1), "def");
+        assertEquals(NgramContextUtils.getNgramContextFromNthPreviousWord(
+                "abc def", mSpacingAndPunctuations, 1).getNthPrevWord(2), "abc");
+        assertTrue(NgramContextUtils.getNgramContextFromNthPreviousWord(
+                "abc def", mSpacingAndPunctuations, 2).isNthPrevWordBeginningOfSentence(2));
 
         // The following tests reflect the current behavior of the function
         // RichInputConnection#getNthPreviousWord.
@@ -186,33 +185,37 @@
         // this function if needed - especially since it does not seem very
         // logical. These tests are just there to catch any unintentional
         // changes in the behavior of the RichInputConnection#getPreviousWord method.
-        assertEquals(PrevWordsInfoUtils.getPrevWordsInfoFromNthPreviousWord(
-                "abc def ", mSpacingAndPunctuations, 2).mPrevWordsInfo[0].mWord, "abc");
-        assertEquals(PrevWordsInfoUtils.getPrevWordsInfoFromNthPreviousWord(
-                "abc def.", mSpacingAndPunctuations, 2).mPrevWordsInfo[0].mWord, "abc");
-        assertEquals(PrevWordsInfoUtils.getPrevWordsInfoFromNthPreviousWord(
-                "abc def .", mSpacingAndPunctuations, 2).mPrevWordsInfo[0].mWord, "def");
-        assertEquals(PrevWordsInfoUtils.getPrevWordsInfoFromNthPreviousWord(
-                "abc ", mSpacingAndPunctuations, 2), PrevWordsInfo.BEGINNING_OF_SENTENCE);
+        assertEquals(NgramContextUtils.getNgramContextFromNthPreviousWord(
+                "abc def ", mSpacingAndPunctuations, 2).getNthPrevWord(1), "abc");
+        assertEquals(NgramContextUtils.getNgramContextFromNthPreviousWord(
+                "abc def.", mSpacingAndPunctuations, 2).getNthPrevWord(1), "abc");
+        assertEquals(NgramContextUtils.getNgramContextFromNthPreviousWord(
+                "abc def .", mSpacingAndPunctuations, 2).getNthPrevWord(1), "def");
+        assertTrue(NgramContextUtils.getNgramContextFromNthPreviousWord(
+                "abc ", mSpacingAndPunctuations, 2).isBeginningOfSentenceContext());
 
-        assertEquals(PrevWordsInfoUtils.getPrevWordsInfoFromNthPreviousWord(
-                "abc def", mSpacingAndPunctuations, 1).mPrevWordsInfo[0].mWord, "def");
-        assertEquals(PrevWordsInfoUtils.getPrevWordsInfoFromNthPreviousWord(
-                "abc def ", mSpacingAndPunctuations, 1).mPrevWordsInfo[0].mWord, "def");
-        assertEquals(PrevWordsInfoUtils.getPrevWordsInfoFromNthPreviousWord(
-                "abc 'def", mSpacingAndPunctuations, 1).mPrevWordsInfo[0].mWord, "'def");
-        assertEquals(PrevWordsInfoUtils.getPrevWordsInfoFromNthPreviousWord(
-                "abc def.", mSpacingAndPunctuations, 1), PrevWordsInfo.BEGINNING_OF_SENTENCE);
-        assertEquals(PrevWordsInfoUtils.getPrevWordsInfoFromNthPreviousWord(
-                "abc def .", mSpacingAndPunctuations, 1), PrevWordsInfo.BEGINNING_OF_SENTENCE);
-        assertEquals(PrevWordsInfoUtils.getPrevWordsInfoFromNthPreviousWord(
-                "abc, def", mSpacingAndPunctuations, 2), PrevWordsInfo.EMPTY_PREV_WORDS_INFO);
-        assertEquals(PrevWordsInfoUtils.getPrevWordsInfoFromNthPreviousWord(
-                "abc? def", mSpacingAndPunctuations, 2), PrevWordsInfo.EMPTY_PREV_WORDS_INFO);
-        assertEquals(PrevWordsInfoUtils.getPrevWordsInfoFromNthPreviousWord(
-                "abc! def", mSpacingAndPunctuations, 2), PrevWordsInfo.EMPTY_PREV_WORDS_INFO);
-        assertEquals(PrevWordsInfoUtils.getPrevWordsInfoFromNthPreviousWord(
-                "abc 'def", mSpacingAndPunctuations, 2), PrevWordsInfo.EMPTY_PREV_WORDS_INFO);
+        assertEquals(NgramContextUtils.getNgramContextFromNthPreviousWord(
+                "abc def", mSpacingAndPunctuations, 1).getNthPrevWord(1), "def");
+        assertEquals(NgramContextUtils.getNgramContextFromNthPreviousWord(
+                "abc def ", mSpacingAndPunctuations, 1).getNthPrevWord(1), "def");
+        assertEquals(NgramContextUtils.getNgramContextFromNthPreviousWord(
+                "abc 'def", mSpacingAndPunctuations, 1).getNthPrevWord(1), "'def");
+        assertEquals(NgramContextUtils.getNgramContextFromNthPreviousWord(
+                "abc def.", mSpacingAndPunctuations, 1), NgramContext.BEGINNING_OF_SENTENCE);
+        assertEquals(NgramContextUtils.getNgramContextFromNthPreviousWord(
+                "abc def .", mSpacingAndPunctuations, 1), NgramContext.BEGINNING_OF_SENTENCE);
+        assertEquals(NgramContextUtils.getNgramContextFromNthPreviousWord(
+                "abc, def", mSpacingAndPunctuations, 2), NgramContext.EMPTY_PREV_WORDS_INFO);
+        // question mark is treated as the end of the sentence. Hence, beginning of the
+        // sentence is expected.
+        assertEquals(NgramContextUtils.getNgramContextFromNthPreviousWord(
+                "abc? def", mSpacingAndPunctuations, 2), NgramContext.BEGINNING_OF_SENTENCE);
+        // Exclamation mark is treated as the end of the sentence. Hence, beginning of the
+        // sentence is expected.
+        assertEquals(NgramContextUtils.getNgramContextFromNthPreviousWord(
+                "abc! def", mSpacingAndPunctuations, 2), NgramContext.BEGINNING_OF_SENTENCE);
+        assertEquals(NgramContextUtils.getNgramContextFromNthPreviousWord(
+                "abc 'def", mSpacingAndPunctuations, 2), NgramContext.EMPTY_PREV_WORDS_INFO);
     }
 
     public void testGetWordRangeAtCursor() {
@@ -223,7 +226,6 @@
                 mSpacingAndPunctuations, new int[] { Constants.CODE_SPACE });
         final SpacingAndPunctuations TAB = new SpacingAndPunctuations(
                 mSpacingAndPunctuations, new int[] { Constants.CODE_TAB });
-        final int[] SPACE_TAB = StringUtils.toSortedCodePointArray(" \t");
         // A character that needs surrogate pair to represent its code point (U+2008A).
         final String SUPPLEMENTARY_CHAR_STRING = "\uD840\uDC8A";
         final SpacingAndPunctuations SUPPLEMENTARY_CHAR = new SpacingAndPunctuations(
diff --git a/tests/src/com/android/inputmethod/latin/RichInputMethodSubtypeTests.java b/tests/src/com/android/inputmethod/latin/RichInputMethodSubtypeTests.java
new file mode 100644
index 0000000..af94be6
--- /dev/null
+++ b/tests/src/com/android/inputmethod/latin/RichInputMethodSubtypeTests.java
@@ -0,0 +1,318 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.view.inputmethod.InputMethodInfo;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.RichInputMethodManager;
+import com.android.inputmethod.latin.RichInputMethodSubtype;
+import com.android.inputmethod.latin.utils.AdditionalSubtypeUtils;
+import com.android.inputmethod.latin.utils.RunInLocale;
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+import java.util.ArrayList;
+import java.util.Locale;
+
+@SmallTest
+public class RichInputMethodSubtypeTests extends AndroidTestCase {
+    // All input method subtypes of LatinIME.
+    private final ArrayList<RichInputMethodSubtype> mSubtypesList = new ArrayList<>();
+
+    private RichInputMethodManager mRichImm;
+    private Resources mRes;
+    private InputMethodSubtype mSavedAddtionalSubtypes[];
+
+    RichInputMethodSubtype EN_US;
+    RichInputMethodSubtype EN_GB;
+    RichInputMethodSubtype ES_US;
+    RichInputMethodSubtype FR;
+    RichInputMethodSubtype FR_CA;
+    RichInputMethodSubtype FR_CH;
+    RichInputMethodSubtype DE;
+    RichInputMethodSubtype DE_CH;
+    RichInputMethodSubtype HI;
+    RichInputMethodSubtype SR;
+    RichInputMethodSubtype ZZ;
+    RichInputMethodSubtype DE_QWERTY;
+    RichInputMethodSubtype FR_QWERTZ;
+    RichInputMethodSubtype EN_US_AZERTY;
+    RichInputMethodSubtype EN_UK_DVORAK;
+    RichInputMethodSubtype ES_US_COLEMAK;
+    RichInputMethodSubtype ZZ_AZERTY;
+    RichInputMethodSubtype ZZ_PC;
+
+    // These are preliminary subtypes and may not exist.
+    RichInputMethodSubtype HI_LATN; // Hinglish
+    RichInputMethodSubtype SR_LATN; // Serbian Latin
+    RichInputMethodSubtype HI_LATN_DVORAK;
+    RichInputMethodSubtype SR_LATN_QWERTY;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        final Context context = getContext();
+        mRes = context.getResources();
+        RichInputMethodManager.init(context);
+        mRichImm = RichInputMethodManager.getInstance();
+
+        // Save and reset additional subtypes
+        mSavedAddtionalSubtypes = mRichImm.getAdditionalSubtypes();
+        final InputMethodSubtype[] predefinedAddtionalSubtypes =
+                AdditionalSubtypeUtils.createAdditionalSubtypesArray(
+                        AdditionalSubtypeUtils.createPrefSubtypes(
+                                mRes.getStringArray(R.array.predefined_subtypes)));
+        mRichImm.setAdditionalInputMethodSubtypes(predefinedAddtionalSubtypes);
+
+        final InputMethodInfo imi = mRichImm.getInputMethodInfoOfThisIme();
+        final int subtypeCount = imi.getSubtypeCount();
+        for (int index = 0; index < subtypeCount; index++) {
+            final InputMethodSubtype subtype = imi.getSubtypeAt(index);
+            mSubtypesList.add(new RichInputMethodSubtype(subtype));
+        }
+
+        EN_US = new RichInputMethodSubtype(mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
+                Locale.US.toString(), "qwerty"));
+        EN_GB = new RichInputMethodSubtype(mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
+                Locale.UK.toString(), "qwerty"));
+        ES_US = new RichInputMethodSubtype(mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
+                "es_US", "spanish"));
+        FR = new RichInputMethodSubtype(mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
+                Locale.FRENCH.toString(), "azerty"));
+        FR_CA = new RichInputMethodSubtype(mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
+                Locale.CANADA_FRENCH.toString(), "qwerty"));
+        FR_CH = new RichInputMethodSubtype(mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
+                "fr_CH", "swiss"));
+        DE = new RichInputMethodSubtype(mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
+                Locale.GERMAN.toString(), "qwertz"));
+        DE_CH = new RichInputMethodSubtype(mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
+                "de_CH", "swiss"));
+        HI = new RichInputMethodSubtype(mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
+                "hi", "hindi"));
+        SR = new RichInputMethodSubtype(mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
+                "sr", "south_slavic"));
+        ZZ = new RichInputMethodSubtype(mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
+                SubtypeLocaleUtils.NO_LANGUAGE, "qwerty"));
+        DE_QWERTY = new RichInputMethodSubtype(
+                AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
+                    Locale.GERMAN.toString(), "qwerty"));
+        FR_QWERTZ = new RichInputMethodSubtype(
+                AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
+                    Locale.FRENCH.toString(), "qwertz"));
+        EN_US_AZERTY = new RichInputMethodSubtype(
+                AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
+                    Locale.US.toString(), "azerty"));
+        EN_UK_DVORAK = new RichInputMethodSubtype(
+                AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
+                    Locale.UK.toString(), "dvorak"));
+        ES_US_COLEMAK = new RichInputMethodSubtype(
+                AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
+                    "es_US", "colemak"));
+        ZZ_AZERTY = new RichInputMethodSubtype(
+                AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
+                    SubtypeLocaleUtils.NO_LANGUAGE, "azerty"));
+        ZZ_PC = new RichInputMethodSubtype(
+                AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
+                    SubtypeLocaleUtils.NO_LANGUAGE, "pcqwerty"));
+
+        final InputMethodSubtype hiLatn = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
+                "hi_ZZ", "qwerty");
+        if (hiLatn != null) {
+            HI_LATN = new RichInputMethodSubtype(hiLatn);
+            HI_LATN_DVORAK = new RichInputMethodSubtype(
+                    AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
+                            "hi_ZZ", "dvorak"));
+        }
+        final InputMethodSubtype srLatn = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
+                "sr_ZZ", "serbian_qwertz");
+        if (srLatn != null) {
+            SR_LATN = new RichInputMethodSubtype(srLatn);
+            SR_LATN_QWERTY = new RichInputMethodSubtype(
+                    AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
+                            "sr_ZZ", "qwerty"));
+        }
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        // Restore additional subtypes.
+        mRichImm.setAdditionalInputMethodSubtypes(mSavedAddtionalSubtypes);
+        super.tearDown();
+    }
+
+    public void testAllFullDisplayNameForSpacebar() {
+        for (final RichInputMethodSubtype subtype : mSubtypesList) {
+            final String subtypeName = SubtypeLocaleUtils
+                    .getSubtypeDisplayNameInSystemLocale(subtype.getRawSubtype());
+            final String spacebarText = subtype.getFullDisplayName();
+            final String languageName = SubtypeLocaleUtils
+                    .getSubtypeLocaleDisplayName(subtype.getLocale().toString());
+            if (subtype.isNoLanguage()) {
+                assertFalse(subtypeName, spacebarText.contains(languageName));
+            } else {
+                assertTrue(subtypeName, spacebarText.contains(languageName));
+            }
+        }
+    }
+
+   public void testAllMiddleDisplayNameForSpacebar() {
+        for (final RichInputMethodSubtype subtype : mSubtypesList) {
+            final String subtypeName = SubtypeLocaleUtils
+                    .getSubtypeDisplayNameInSystemLocale(subtype.getRawSubtype());
+            final Locale locale = subtype.getLocale();
+            final Locale displayLocale = SubtypeLocaleUtils.getDisplayLocaleOfSubtypeLocale(
+                    locale.toString());
+            if (Locale.ROOT.equals(displayLocale)) {
+                // Skip test because the language part of this locale string doesn't represent
+                // the locale to be displayed on the spacebar (for example Hinglish).
+                continue;
+            }
+            final String spacebarText = subtype.getMiddleDisplayName();
+            if (subtype.isNoLanguage()) {
+                assertEquals(subtypeName, SubtypeLocaleUtils.getKeyboardLayoutSetDisplayName(
+                        subtype.getRawSubtype()), spacebarText);
+            } else {
+                assertEquals(subtypeName,
+                        SubtypeLocaleUtils.getSubtypeLanguageDisplayName(locale.toString()),
+                        spacebarText);
+            }
+        }
+    }
+
+    // InputMethodSubtype's display name for spacebar text in its locale.
+    //               isAdditionalSubtype (T=true, F=false)
+    // locale layout         |  Middle     Full
+    // ------ -------------- - --------- ----------------------
+    //  en_US qwerty         F  English   English (US)           exception
+    //  en_GB qwerty         F  English   English (UK)           exception
+    //  es_US spanish        F  Español   Español (EE.UU.)       exception
+    //  fr    azerty         F  Français  Français
+    //  fr_CA qwerty         F  Français  Français (Canada)
+    //  fr_CH swiss          F  Français  Français (Suisse)
+    //  de    qwertz         F  Deutsch   Deutsch
+    //  de_CH swiss          F  Deutsch   Deutsch (Schweiz)
+    //  hi    hindi          F  हिन्दी       हिन्दी
+    //  hi_ZZ qwerty         F  Hinglish  Hinglish               exception
+    //  sr    south_slavic   F  Српски    Српски
+    //  sr_ZZ serbian_qwertz F  Srpski    Srpski                 exception
+    //  zz    qwerty         F  QWERTY    QWERTY
+    //  fr    qwertz         T  Français  Français
+    //  de    qwerty         T  Deutsch   Deutsch
+    //  en_US azerty         T  English   English (US)
+    //  en_GB dvorak         T  English   English (UK)
+    //  hi_ZZ dvorak         T  Hinglish  Hinglish               exception
+    //  sr_ZZ qwerty         T  Srpski    Srpski                 exception
+    //  zz    azerty         T  AZERTY    AZERTY
+
+    private final RunInLocale<Void> testsPredefinedSubtypesForSpacebar = new RunInLocale<Void>() {
+        @Override
+        protected Void job(final Resources res) {
+            assertEquals("en_US", "English (US)", EN_US.getFullDisplayName());
+            assertEquals("en_GB", "English (UK)", EN_GB.getFullDisplayName());
+            assertEquals("es_US", "Español (EE.UU.)", ES_US.getFullDisplayName());
+            assertEquals("fr", "Français", FR.getFullDisplayName());
+            assertEquals("fr_CA", "Français (Canada)", FR_CA.getFullDisplayName());
+            assertEquals("fr_CH", "Français (Suisse)", FR_CH.getFullDisplayName());
+            assertEquals("de", "Deutsch", DE.getFullDisplayName());
+            assertEquals("de_CH", "Deutsch (Schweiz)", DE_CH.getFullDisplayName());
+            assertEquals("hi", "हिन्दी", HI.getFullDisplayName());
+            assertEquals("sr", "Српски", SR.getFullDisplayName());
+            assertEquals("zz", "QWERTY", ZZ.getFullDisplayName());
+
+            assertEquals("en_US", "English", EN_US.getMiddleDisplayName());
+            assertEquals("en_GB", "English", EN_GB.getMiddleDisplayName());
+            assertEquals("es_US", "Español", ES_US.getMiddleDisplayName());
+            assertEquals("fr", "Français", FR.getMiddleDisplayName());
+            assertEquals("fr_CA", "Français", FR_CA.getMiddleDisplayName());
+            assertEquals("fr_CH", "Français", FR_CH.getMiddleDisplayName());
+            assertEquals("de", "Deutsch", DE.getMiddleDisplayName());
+            assertEquals("de_CH", "Deutsch", DE_CH.getMiddleDisplayName());
+            assertEquals("zz", "QWERTY", ZZ.getMiddleDisplayName());
+
+            // These are preliminary subtypes and may not exist.
+            if (HI_LATN != null) {
+                assertEquals("hi_ZZ", "Hinglish", HI_LATN.getFullDisplayName());
+                assertEquals("hi_ZZ", "Hinglish", HI_LATN.getMiddleDisplayName());
+            }
+            if (SR_LATN != null) {
+                assertEquals("sr_ZZ", "Srpski", SR_LATN.getFullDisplayName());
+                assertEquals("sr_ZZ", "Srpski", SR_LATN.getMiddleDisplayName());
+            }
+            return null;
+        }
+    };
+
+    private final RunInLocale<Void> testsAdditionalSubtypesForSpacebar = new RunInLocale<Void>() {
+        @Override
+        protected Void job(final Resources res) {
+            assertEquals("fr qwertz", "Français", FR_QWERTZ.getFullDisplayName());
+            assertEquals("de qwerty", "Deutsch", DE_QWERTY.getFullDisplayName());
+            assertEquals("en_US azerty", "English (US)", EN_US_AZERTY.getFullDisplayName());
+            assertEquals("en_UK dvorak", "English (UK)", EN_UK_DVORAK.getFullDisplayName());
+            assertEquals("es_US colemak", "Español (EE.UU.)", ES_US_COLEMAK.getFullDisplayName());
+            assertEquals("zz azerty", "AZERTY", ZZ_AZERTY.getFullDisplayName());
+            assertEquals("zz pc", "PC", ZZ_PC.getFullDisplayName());
+
+            assertEquals("fr qwertz", "Français", FR_QWERTZ.getMiddleDisplayName());
+            assertEquals("de qwerty", "Deutsch", DE_QWERTY.getMiddleDisplayName());
+            assertEquals("en_US azerty", "English", EN_US_AZERTY.getMiddleDisplayName());
+            assertEquals("en_UK dvorak", "English", EN_UK_DVORAK.getMiddleDisplayName());
+            assertEquals("es_US colemak", "Español", ES_US_COLEMAK.getMiddleDisplayName());
+            assertEquals("zz azerty", "AZERTY", ZZ_AZERTY.getMiddleDisplayName());
+            assertEquals("zz pc", "PC", ZZ_PC.getMiddleDisplayName());
+
+            // These are preliminary subtypes and may not exist.
+            if (HI_LATN_DVORAK != null) {
+                assertEquals("hi_ZZ dvorak", "Hinglish", HI_LATN_DVORAK.getFullDisplayName());
+                assertEquals("hi_ZZ dvorak", "Hinglish", HI_LATN_DVORAK.getMiddleDisplayName());
+            }
+            if (SR_LATN_QWERTY != null) {
+                assertEquals("sr_ZZ qwerty", "Srpski", SR_LATN_QWERTY.getFullDisplayName());
+                assertEquals("sr_ZZ qwerty", "Srpski", SR_LATN_QWERTY.getMiddleDisplayName());
+            }
+            return null;
+        }
+    };
+
+    public void testPredefinedSubtypesForSpacebarInEnglish() {
+        testsPredefinedSubtypesForSpacebar.runInLocale(mRes, Locale.ENGLISH);
+    }
+
+    public void testAdditionalSubtypeForSpacebarInEnglish() {
+        testsAdditionalSubtypesForSpacebar.runInLocale(mRes, Locale.ENGLISH);
+    }
+
+    public void testPredefinedSubtypesForSpacebarInFrench() {
+        testsPredefinedSubtypesForSpacebar.runInLocale(mRes, Locale.FRENCH);
+    }
+
+    public void testAdditionalSubtypeForSpacebarInFrench() {
+        testsAdditionalSubtypesForSpacebar.runInLocale(mRes, Locale.FRENCH);
+    }
+
+    public void testRichInputMethodSubtypeForNullInputMethodSubtype() {
+        RichInputMethodSubtype subtype = RichInputMethodSubtype.getRichInputMethodSubtype(null);
+        assertNotNull(subtype);
+        assertEquals("zz", subtype.getRawSubtype().getLocale());
+        assertEquals("keyboard", subtype.getRawSubtype().getMode());
+    }
+}
diff --git a/tests/src/com/android/inputmethod/latin/ShiftModeTests.java b/tests/src/com/android/inputmethod/latin/ShiftModeTests.java
index db3c9ba..59bb5f8 100644
--- a/tests/src/com/android/inputmethod/latin/ShiftModeTests.java
+++ b/tests/src/com/android/inputmethod/latin/ShiftModeTests.java
@@ -16,13 +16,11 @@
 
 package com.android.inputmethod.latin;
 
-import android.os.Build;
 import android.test.suitebuilder.annotation.LargeTest;
 import android.text.TextUtils;
 import android.view.inputmethod.EditorInfo;
 
-import com.android.inputmethod.latin.Constants;
-import com.android.inputmethod.latin.WordComposer;
+import com.android.inputmethod.latin.common.Constants;
 
 @LargeTest
 public class ShiftModeTests extends InputTestsBase {
@@ -75,7 +73,7 @@
             repeatKey(Constants.CODE_DELETE);
         }
         assertFalse("Caps immediately after repeating Backspace a lot", isCapsModeAutoShifted());
-        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS);
+        sleep(DELAY_TO_WAIT_FOR_PREDICTIONS_MILLIS);
         runMessages();
         assertTrue("Caps after a while after repeating Backspace a lot", isCapsModeAutoShifted());
     }
diff --git a/tests/src/com/android/inputmethod/latin/SuggestedWordsTests.java b/tests/src/com/android/inputmethod/latin/SuggestedWordsTests.java
index 869c550..d465ce6 100644
--- a/tests/src/com/android/inputmethod/latin/SuggestedWordsTests.java
+++ b/tests/src/com/android/inputmethod/latin/SuggestedWordsTests.java
@@ -37,7 +37,7 @@
     private static SuggestedWordInfo createTypedWordInfo(final String word) {
         // Use 100 as the frequency because the numerical value does not matter as
         // long as it's > 1 and < INT_MAX.
-        return new SuggestedWordInfo(word, 100 /* score */,
+        return new SuggestedWordInfo(word, "" /* prevWordsContext */, 100 /* score */,
                 SuggestedWordInfo.KIND_TYPED,
                 null /* sourceDict */,
                 SuggestedWordInfo.NOT_AN_INDEX /* indexOfTouchPointOfSecondWord */,
@@ -52,49 +52,23 @@
      * @return a new instance of {@link SuggestedWordInfo}.
      */
     private static SuggestedWordInfo createCorrectionWordInfo(final String word) {
-        return new SuggestedWordInfo(word, 1 /* score */,
+        return new SuggestedWordInfo(word, "" /* prevWordsContext */, 1 /* score */,
                 SuggestedWordInfo.KIND_CORRECTION,
                 null /* sourceDict */,
                 SuggestedWordInfo.NOT_AN_INDEX /* indexOfTouchPointOfSecondWord */,
                 SuggestedWordInfo.NOT_A_CONFIDENCE /* autoCommitFirstWordConfidence */);
     }
 
-    public void testGetSuggestedWordsExcludingTypedWord() {
-        final String TYPED_WORD = "typed";
-        final int NUMBER_OF_ADDED_SUGGESTIONS = 5;
-        final int KIND_OF_SECOND_CORRECTION = SuggestedWordInfo.KIND_CORRECTION;
-        final ArrayList<SuggestedWordInfo> list = new ArrayList<>();
-        list.add(createTypedWordInfo(TYPED_WORD));
-        for (int i = 0; i < NUMBER_OF_ADDED_SUGGESTIONS; ++i) {
-            list.add(createCorrectionWordInfo(Integer.toString(i)));
+    private static ArrayList<SuggestedWordInfo> createCorrectionWordInfos(final String... words) {
+        final ArrayList<SuggestedWordInfo> infos = new ArrayList<>();
+        for (final String word : words) {
+            infos.add(createCorrectionWordInfo(word));
         }
-
-        final SuggestedWords words = new SuggestedWords(
-                list, null /* rawSuggestions */,
-                false /* typedWordValid */,
-                false /* willAutoCorrect */,
-                false /* isObsoleteSuggestions */,
-                SuggestedWords.INPUT_STYLE_NONE);
-        assertEquals(NUMBER_OF_ADDED_SUGGESTIONS + 1, words.size());
-        assertEquals("typed", words.getWord(0));
-        assertTrue(words.getInfo(0).isKindOf(SuggestedWordInfo.KIND_TYPED));
-        assertEquals("0", words.getWord(1));
-        assertTrue(words.getInfo(1).isKindOf(KIND_OF_SECOND_CORRECTION));
-        assertEquals("4", words.getWord(5));
-        assertTrue(words.getInfo(5).isKindOf(KIND_OF_SECOND_CORRECTION));
-
-        final SuggestedWords wordsWithoutTyped =
-                words.getSuggestedWordsExcludingTypedWordForRecorrection();
-        // Make sure that the typed word has indeed been excluded, by testing the size of the
-        // suggested words, the string and the kind of the top suggestion, which should match
-        // the string and kind of what we inserted after the typed word.
-        assertEquals(words.size() - 1, wordsWithoutTyped.size());
-        assertEquals("0", wordsWithoutTyped.getWord(0));
-        assertTrue(wordsWithoutTyped.getInfo(0).isKindOf(KIND_OF_SECOND_CORRECTION));
+        return infos;
     }
 
     // Helper for testGetTransformedWordInfo
-    private SuggestedWordInfo transformWordInfo(final String info,
+    private static SuggestedWordInfo transformWordInfo(final String info,
             final int trailingSingleQuotesCount) {
         final SuggestedWordInfo suggestedWordInfo = createTypedWordInfo(info);
         final SuggestedWordInfo returnedWordInfo =
@@ -106,6 +80,30 @@
         return returnedWordInfo;
     }
 
+    public void testRemoveDupesNoDupes() {
+        final ArrayList<SuggestedWordInfo> infos = createCorrectionWordInfos("a", "c");
+        assertEquals(-1, SuggestedWordInfo.removeDups("b", infos));
+        assertEquals(2, infos.size());
+    }
+
+    public void testRemoveDupesTypedWordNotDupe() {
+        final ArrayList<SuggestedWordInfo> infos = createCorrectionWordInfos("a", "a", "c");
+        assertEquals(-1, SuggestedWordInfo.removeDups("b", infos));
+        assertEquals(2, infos.size());
+    }
+
+    public void testRemoveDupesTypedWordOnlyDupe() {
+        final ArrayList<SuggestedWordInfo> infos = createCorrectionWordInfos("a", "b", "c");
+        assertEquals(1, SuggestedWordInfo.removeDups("b", infos));
+        assertEquals(2, infos.size());
+    }
+
+    public void testRemoveDupesTypedWordNotOnlyDupe() {
+        final ArrayList<SuggestedWordInfo> infos = createCorrectionWordInfos("a", "b", "b", "c");
+        assertEquals(1, SuggestedWordInfo.removeDups("b", infos));
+        assertEquals(2, infos.size());
+    }
+
     public void testGetTransformedSuggestedWordInfo() {
         SuggestedWordInfo result = transformWordInfo("word", 0);
         assertEquals(result.mWord, "word");
@@ -123,9 +121,10 @@
 
     public void testGetTypedWordInfoOrNull() {
         final String TYPED_WORD = "typed";
+        final SuggestedWordInfo TYPED_WORD_INFO = createTypedWordInfo(TYPED_WORD);
         final int NUMBER_OF_ADDED_SUGGESTIONS = 5;
         final ArrayList<SuggestedWordInfo> list = new ArrayList<>();
-        list.add(createTypedWordInfo(TYPED_WORD));
+        list.add(TYPED_WORD_INFO);
         for (int i = 0; i < NUMBER_OF_ADDED_SUGGESTIONS; ++i) {
             list.add(createCorrectionWordInfo(Integer.toString(i)));
         }
@@ -133,30 +132,41 @@
         // Make sure getTypedWordInfoOrNull() returns non-null object.
         final SuggestedWords wordsWithTypedWord = new SuggestedWords(
                 list, null /* rawSuggestions */,
+                TYPED_WORD_INFO,
                 false /* typedWordValid */,
                 false /* willAutoCorrect */,
                 false /* isObsoleteSuggestions */,
-                SuggestedWords.INPUT_STYLE_NONE);
+                SuggestedWords.INPUT_STYLE_NONE,
+                SuggestedWords.NOT_A_SEQUENCE_NUMBER);
         final SuggestedWordInfo typedWord = wordsWithTypedWord.getTypedWordInfoOrNull();
         assertNotNull(typedWord);
         assertEquals(TYPED_WORD, typedWord.mWord);
 
-        // Make sure getTypedWordInfoOrNull() returns null.
-        final SuggestedWords wordsWithoutTypedWord =
-                wordsWithTypedWord.getSuggestedWordsExcludingTypedWordForRecorrection();
-        assertNull(wordsWithoutTypedWord.getTypedWordInfoOrNull());
-
-        // Make sure getTypedWordInfoOrNull() returns null.
-        assertNull(SuggestedWords.EMPTY.getTypedWordInfoOrNull());
-
-        final SuggestedWords emptySuggestedWords = new SuggestedWords(
-                new ArrayList<SuggestedWordInfo>(), null /* rawSuggestions */,
+        // Make sure getTypedWordInfoOrNull() returns null when no typed word.
+        list.remove(0);
+        final SuggestedWords wordsWithoutTypedWord = new SuggestedWords(
+                list, null /* rawSuggestions */,
+                null /* typedWord */,
                 false /* typedWordValid */,
                 false /* willAutoCorrect */,
                 false /* isObsoleteSuggestions */,
-                SuggestedWords.INPUT_STYLE_NONE);
+                SuggestedWords.INPUT_STYLE_NONE,
+                SuggestedWords.NOT_A_SEQUENCE_NUMBER);
+        assertNull(wordsWithoutTypedWord.getTypedWordInfoOrNull());
+
+        // Make sure getTypedWordInfoOrNull() returns null.
+        assertNull(SuggestedWords.getEmptyInstance().getTypedWordInfoOrNull());
+
+        final SuggestedWords emptySuggestedWords = new SuggestedWords(
+                new ArrayList<SuggestedWordInfo>(), null /* rawSuggestions */,
+                null /* typedWord */,
+                false /* typedWordValid */,
+                false /* willAutoCorrect */,
+                false /* isObsoleteSuggestions */,
+                SuggestedWords.INPUT_STYLE_NONE,
+                SuggestedWords.NOT_A_SEQUENCE_NUMBER);
         assertNull(emptySuggestedWords.getTypedWordInfoOrNull());
 
-        assertNull(SuggestedWords.EMPTY.getTypedWordInfoOrNull());
+        assertNull(SuggestedWords.getEmptyInstance().getTypedWordInfoOrNull());
     }
 }
diff --git a/tests/src/com/android/inputmethod/latin/WordComposerTests.java b/tests/src/com/android/inputmethod/latin/WordComposerTests.java
index c44544f..8ae475f 100644
--- a/tests/src/com/android/inputmethod/latin/WordComposerTests.java
+++ b/tests/src/com/android/inputmethod/latin/WordComposerTests.java
@@ -19,8 +19,9 @@
 import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
 
-import com.android.inputmethod.latin.utils.CoordinateUtils;
-import com.android.inputmethod.latin.utils.StringUtils;
+import com.android.inputmethod.latin.common.Constants;
+import com.android.inputmethod.latin.common.CoordinateUtils;
+import com.android.inputmethod.latin.common.StringUtils;
 
 /**
  * Unit tests for WordComposer.
diff --git a/tests/src/com/android/inputmethod/latin/accounts/AccountsChangedReceiverTests.java b/tests/src/com/android/inputmethod/latin/accounts/AccountsChangedReceiverTests.java
new file mode 100644
index 0000000..8328179
--- /dev/null
+++ b/tests/src/com/android/inputmethod/latin/accounts/AccountsChangedReceiverTests.java
@@ -0,0 +1,112 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.accounts;
+
+import android.accounts.AccountManager;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
+import android.test.AndroidTestCase;
+
+import com.android.inputmethod.latin.settings.LocalSettingsConstants;
+
+/**
+ * Tests for {@link AccountsChangedReceiver}.
+ */
+public class AccountsChangedReceiverTests extends AndroidTestCase {
+    private static final String ACCOUNT_1 = "account1@example.com";
+    private static final String ACCOUNT_2 = "account2@example.com";
+
+    private SharedPreferences mPrefs;
+    private String mLastKnownAccount = null;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mPrefs = PreferenceManager.getDefaultSharedPreferences(getContext());
+        // Keep track of the current account so that we restore it when the test finishes.
+        mLastKnownAccount = mPrefs.getString(LocalSettingsConstants.PREF_ACCOUNT_NAME, null);
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        super.tearDown();
+        // Restore the account that was present before running the test.
+        updateAccountName(mLastKnownAccount);
+    }
+
+    public void testUnknownIntent() {
+        updateAccountName(ACCOUNT_1);
+        AccountsChangedReceiver reciever = new AccountsChangedReceiver();
+        reciever.onReceive(getContext(), new Intent("some-random-action"));
+        // Account should *not* be removed from preferences.
+        assertAccountName(ACCOUNT_1);
+    }
+
+    public void testAccountRemoved() {
+        updateAccountName(ACCOUNT_1);
+        AccountsChangedReceiver reciever = new AccountsChangedReceiver() {
+            @Override
+            protected String[] getAccountsForLogin(Context context) {
+                return new String[] {ACCOUNT_2};
+            }
+        };
+        reciever.onReceive(getContext(), new Intent(AccountManager.LOGIN_ACCOUNTS_CHANGED_ACTION));
+        // Account should be removed from preferences.
+        assertAccountName(null);
+    }
+
+    public void testAccountRemoved_noAccounts() {
+        updateAccountName(ACCOUNT_2);
+        AccountsChangedReceiver reciever = new AccountsChangedReceiver() {
+            @Override
+            protected String[] getAccountsForLogin(Context context) {
+                return new String[0];
+            }
+        };
+        reciever.onReceive(getContext(), new Intent(AccountManager.LOGIN_ACCOUNTS_CHANGED_ACTION));
+        // Account should be removed from preferences.
+        assertAccountName(null);
+    }
+
+    public void testAccountNotRemoved() {
+        updateAccountName(ACCOUNT_2);
+        AccountsChangedReceiver reciever = new AccountsChangedReceiver() {
+            @Override
+            protected String[] getAccountsForLogin(Context context) {
+                return new String[] {ACCOUNT_1, ACCOUNT_2};
+            }
+        };
+        reciever.onReceive(getContext(), new Intent(AccountManager.LOGIN_ACCOUNTS_CHANGED_ACTION));
+        // Account should *not* be removed from preferences.
+        assertAccountName(ACCOUNT_2);
+    }
+
+    private void updateAccountName(String accountName) {
+        if (accountName == null) {
+            mPrefs.edit().remove(LocalSettingsConstants.PREF_ACCOUNT_NAME).apply();
+        } else {
+            mPrefs.edit().putString(LocalSettingsConstants.PREF_ACCOUNT_NAME, accountName).apply();
+        }
+    }
+
+    private void assertAccountName(String expectedAccountName) {
+        assertEquals(expectedAccountName,
+                mPrefs.getString(LocalSettingsConstants.PREF_ACCOUNT_NAME, null));
+    }
+}
diff --git a/tests/src/com/android/inputmethod/latin/common/InputPointersTests.java b/tests/src/com/android/inputmethod/latin/common/InputPointersTests.java
new file mode 100644
index 0000000..6b3490d
--- /dev/null
+++ b/tests/src/com/android/inputmethod/latin/common/InputPointersTests.java
@@ -0,0 +1,324 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.common;
+
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import java.util.Arrays;
+
+@SmallTest
+public class InputPointersTests extends AndroidTestCase {
+    private static final int DEFAULT_CAPACITY = 48;
+
+    public void testNewInstance() {
+        final InputPointers src = new InputPointers(DEFAULT_CAPACITY);
+        assertEquals("new instance size", 0, src.getPointerSize());
+        assertNotNull("new instance xCoordinates", src.getXCoordinates());
+        assertNotNull("new instance yCoordinates", src.getYCoordinates());
+        assertNotNull("new instance pointerIds", src.getPointerIds());
+        assertNotNull("new instance times", src.getTimes());
+    }
+
+    public void testReset() {
+        final InputPointers src = new InputPointers(DEFAULT_CAPACITY);
+        final int[] xCoordinates = src.getXCoordinates();
+        final int[] yCoordinates = src.getXCoordinates();
+        final int[] pointerIds = src.getXCoordinates();
+        final int[] times = src.getXCoordinates();
+
+        src.reset();
+        assertEquals("size after reset", 0, src.getPointerSize());
+        assertNotSame("xCoordinates after reset", xCoordinates, src.getXCoordinates());
+        assertNotSame("yCoordinates after reset", yCoordinates, src.getYCoordinates());
+        assertNotSame("pointerIds after reset", pointerIds, src.getPointerIds());
+        assertNotSame("times after reset", times, src.getTimes());
+    }
+
+    public void testAdd() {
+        final InputPointers src = new InputPointers(DEFAULT_CAPACITY);
+        final int limit = src.getXCoordinates().length * 2 + 10;
+        for (int i = 0; i < limit; i++) {
+            final int x = i;
+            final int y = i * 2;
+            final int pointerId = i * 3;
+            final int time = i * 4;
+            src.addPointer(x, y, pointerId, time);
+            assertEquals("size after add " + i, i + 1, src.getPointerSize());
+        }
+        for (int i = 0; i < limit; i++) {
+            final int x = i;
+            final int y = i * 2;
+            final int pointerId = i * 3;
+            final int time = i * 4;
+            assertEquals("xCoordinates at " + i, x, src.getXCoordinates()[i]);
+            assertEquals("yCoordinates at " + i, y, src.getYCoordinates()[i]);
+            assertEquals("pointerIds at " + i, pointerId, src.getPointerIds()[i]);
+            assertEquals("times at " + i, time, src.getTimes()[i]);
+        }
+    }
+
+    public void testAddAt() {
+        final InputPointers src = new InputPointers(DEFAULT_CAPACITY);
+        final int limit = 1000, step = 100;
+        for (int i = 0; i < limit; i += step) {
+            final int x = i;
+            final int y = i * 2;
+            final int pointerId = i * 3;
+            final int time = i * 4;
+            src.addPointerAt(i, x, y, pointerId, time);
+            assertEquals("size after add at " + i, i + 1, src.getPointerSize());
+        }
+        for (int i = 0; i < limit; i += step) {
+            final int x = i;
+            final int y = i * 2;
+            final int pointerId = i * 3;
+            final int time = i * 4;
+            assertEquals("xCoordinates at " + i, x, src.getXCoordinates()[i]);
+            assertEquals("yCoordinates at " + i, y, src.getYCoordinates()[i]);
+            assertEquals("pointerIds at " + i, pointerId, src.getPointerIds()[i]);
+            assertEquals("times at " + i, time, src.getTimes()[i]);
+        }
+    }
+
+    public void testSet() {
+        final InputPointers src = new InputPointers(DEFAULT_CAPACITY);
+        final int limit = src.getXCoordinates().length * 2 + 10;
+        for (int i = 0; i < limit; i++) {
+            final int x = i;
+            final int y = i * 2;
+            final int pointerId = i * 3;
+            final int time = i * 4;
+            src.addPointer(x, y, pointerId, time);
+        }
+        final InputPointers dst = new InputPointers(DEFAULT_CAPACITY);
+        dst.set(src);
+        assertEquals("size after set", dst.getPointerSize(), src.getPointerSize());
+        assertSame("xCoordinates after set", dst.getXCoordinates(), src.getXCoordinates());
+        assertSame("yCoordinates after set", dst.getYCoordinates(), src.getYCoordinates());
+        assertSame("pointerIds after set", dst.getPointerIds(), src.getPointerIds());
+        assertSame("times after set", dst.getTimes(), src.getTimes());
+    }
+
+    public void testCopy() {
+        final InputPointers src = new InputPointers(DEFAULT_CAPACITY);
+        final int limit = 100;
+        for (int i = 0; i < limit; i++) {
+            final int x = i;
+            final int y = i * 2;
+            final int pointerId = i * 3;
+            final int time = i * 4;
+            src.addPointer(x, y, pointerId, time);
+        }
+        final InputPointers dst = new InputPointers(DEFAULT_CAPACITY);
+        dst.copy(src);
+        assertEquals("size after copy", dst.getPointerSize(), src.getPointerSize());
+        assertNotSame("xCoordinates after copy", dst.getXCoordinates(), src.getXCoordinates());
+        assertNotSame("yCoordinates after copy", dst.getYCoordinates(), src.getYCoordinates());
+        assertNotSame("pointerIds after copy", dst.getPointerIds(), src.getPointerIds());
+        assertNotSame("times after copy", dst.getTimes(), src.getTimes());
+        final int size = dst.getPointerSize();
+        assertIntArrayEquals("xCoordinates values after copy",
+                dst.getXCoordinates(), 0, src.getXCoordinates(), 0, size);
+        assertIntArrayEquals("yCoordinates values after copy",
+                dst.getYCoordinates(), 0, src.getYCoordinates(), 0, size);
+        assertIntArrayEquals("pointerIds values after copy",
+                dst.getPointerIds(), 0, src.getPointerIds(), 0, size);
+        assertIntArrayEquals("times values after copy",
+                dst.getTimes(), 0, src.getTimes(), 0, size);
+    }
+
+    public void testAppend() {
+        final int dstLength = 50;
+        final InputPointers dst = new InputPointers(DEFAULT_CAPACITY);
+        for (int i = 0; i < dstLength; i++) {
+            final int x = i * 4;
+            final int y = i * 3;
+            final int pointerId = i * 2;
+            final int time = i;
+            dst.addPointer(x, y, pointerId, time);
+        }
+        final InputPointers dstCopy = new InputPointers(DEFAULT_CAPACITY);
+        dstCopy.copy(dst);
+
+        final ResizableIntArray srcXCoords = new ResizableIntArray(DEFAULT_CAPACITY);
+        final ResizableIntArray srcYCoords = new ResizableIntArray(DEFAULT_CAPACITY);
+        final ResizableIntArray srcPointerIds = new ResizableIntArray(DEFAULT_CAPACITY);
+        final ResizableIntArray srcTimes = new ResizableIntArray(DEFAULT_CAPACITY);
+        final int srcLength = 100;
+        final int srcPointerId = 10;
+        for (int i = 0; i < srcLength; i++) {
+            final int x = i;
+            final int y = i * 2;
+            // The time value must be larger than <code>dst</code>.
+            final int time = i * 4 + dstLength;
+            srcXCoords.add(x);
+            srcYCoords.add(y);
+            srcPointerIds.add(srcPointerId);
+            srcTimes.add(time);
+        }
+
+        final int startPos = 0;
+        dst.append(srcPointerId, srcTimes, srcXCoords, srcYCoords,
+                startPos, 0 /* length */);
+        assertEquals("size after append zero", dstLength, dst.getPointerSize());
+        assertIntArrayEquals("xCoordinates after append zero",
+                dstCopy.getXCoordinates(), startPos, dst.getXCoordinates(), startPos, dstLength);
+        assertIntArrayEquals("yCoordinates after append zero",
+                dstCopy.getYCoordinates(), startPos, dst.getYCoordinates(), startPos, dstLength);
+        assertIntArrayEquals("pointerIds after append zero",
+                dstCopy.getPointerIds(), startPos, dst.getPointerIds(), startPos, dstLength);
+        assertIntArrayEquals("times after append zero",
+                dstCopy.getTimes(), startPos, dst.getTimes(), startPos, dstLength);
+
+        dst.append(srcPointerId, srcTimes, srcXCoords, srcYCoords,
+                startPos, srcLength);
+        assertEquals("size after append", dstLength + srcLength, dst.getPointerSize());
+        assertTrue("primitive length after append",
+                dst.getPointerIds().length >= dstLength + srcLength);
+        assertIntArrayEquals("original xCoordinates values after append",
+                dstCopy.getXCoordinates(), startPos, dst.getXCoordinates(), startPos, dstLength);
+        assertIntArrayEquals("original yCoordinates values after append",
+                dstCopy.getYCoordinates(), startPos, dst.getYCoordinates(), startPos, dstLength);
+        assertIntArrayEquals("original pointerIds values after append",
+                dstCopy.getPointerIds(), startPos, dst.getPointerIds(), startPos, dstLength);
+        assertIntArrayEquals("original times values after append",
+                dstCopy.getTimes(), startPos, dst.getTimes(), startPos, dstLength);
+        assertIntArrayEquals("appended xCoordinates values after append",
+                srcXCoords.getPrimitiveArray(), startPos, dst.getXCoordinates(),
+                dstLength, srcLength);
+        assertIntArrayEquals("appended yCoordinates values after append",
+                srcYCoords.getPrimitiveArray(), startPos, dst.getYCoordinates(),
+                dstLength, srcLength);
+        assertIntArrayEquals("appended pointerIds values after append",
+                srcPointerIds.getPrimitiveArray(), startPos, dst.getPointerIds(),
+                dstLength, srcLength);
+        assertIntArrayEquals("appended times values after append",
+                srcTimes.getPrimitiveArray(), startPos, dst.getTimes(), dstLength, srcLength);
+    }
+
+    public void testAppendResizableIntArray() {
+        final int dstLength = 50;
+        final InputPointers dst = new InputPointers(DEFAULT_CAPACITY);
+        for (int i = 0; i < dstLength; i++) {
+            final int x = i * 4;
+            final int y = i * 3;
+            final int pointerId = i * 2;
+            final int time = i;
+            dst.addPointer(x, y, pointerId, time);
+        }
+        final InputPointers dstCopy = new InputPointers(DEFAULT_CAPACITY);
+        dstCopy.copy(dst);
+
+        final int srcLength = 100;
+        final int srcPointerId = 1;
+        final int[] srcPointerIds = new int[srcLength];
+        Arrays.fill(srcPointerIds, srcPointerId);
+        final ResizableIntArray srcTimes = new ResizableIntArray(DEFAULT_CAPACITY);
+        final ResizableIntArray srcXCoords = new ResizableIntArray(DEFAULT_CAPACITY);
+        final ResizableIntArray srcYCoords= new ResizableIntArray(DEFAULT_CAPACITY);
+        for (int i = 0; i < srcLength; i++) {
+            // The time value must be larger than <code>dst</code>.
+            final int time = i * 2 + dstLength;
+            final int x = i * 3;
+            final int y = i * 4;
+            srcTimes.add(time);
+            srcXCoords.add(x);
+            srcYCoords.add(y);
+        }
+
+        dst.append(srcPointerId, srcTimes, srcXCoords, srcYCoords, 0, 0);
+        assertEquals("size after append zero", dstLength, dst.getPointerSize());
+        assertIntArrayEquals("xCoordinates after append zero",
+                dstCopy.getXCoordinates(), 0, dst.getXCoordinates(), 0, dstLength);
+        assertIntArrayEquals("yCoordinates after append zero",
+                dstCopy.getYCoordinates(), 0, dst.getYCoordinates(), 0, dstLength);
+        assertIntArrayEquals("pointerIds after append zero",
+                dstCopy.getPointerIds(), 0, dst.getPointerIds(), 0, dstLength);
+        assertIntArrayEquals("times after append zero",
+                dstCopy.getTimes(), 0, dst.getTimes(), 0, dstLength);
+
+        dst.append(srcPointerId, srcTimes, srcXCoords, srcYCoords, 0, srcLength);
+        assertEquals("size after append", dstLength + srcLength, dst.getPointerSize());
+        assertTrue("primitive length after append",
+                dst.getPointerIds().length >= dstLength + srcLength);
+        assertIntArrayEquals("original xCoordinates values after append",
+                dstCopy.getXCoordinates(), 0, dst.getXCoordinates(), 0, dstLength);
+        assertIntArrayEquals("original yCoordinates values after append",
+                dstCopy.getYCoordinates(), 0, dst.getYCoordinates(), 0, dstLength);
+        assertIntArrayEquals("original pointerIds values after append",
+                dstCopy.getPointerIds(), 0, dst.getPointerIds(), 0, dstLength);
+        assertIntArrayEquals("original times values after append",
+                dstCopy.getTimes(), 0, dst.getTimes(), 0, dstLength);
+        assertIntArrayEquals("appended xCoordinates values after append",
+                srcXCoords.getPrimitiveArray(), 0, dst.getXCoordinates(), dstLength, srcLength);
+        assertIntArrayEquals("appended yCoordinates values after append",
+                srcYCoords.getPrimitiveArray(), 0, dst.getYCoordinates(), dstLength, srcLength);
+        assertIntArrayEquals("appended pointerIds values after append",
+                srcPointerIds, 0, dst.getPointerIds(), dstLength, srcLength);
+        assertIntArrayEquals("appended times values after append",
+                srcTimes.getPrimitiveArray(), 0, dst.getTimes(), dstLength, srcLength);
+    }
+
+    // TODO: Consolidate this method with
+    // {@link ResizableIntArrayTests#assertIntArrayEquals(String,int[],int,int[],int,int)}.
+    private static void assertIntArrayEquals(final String message, final int[] expecteds,
+            final int expectedPos, final int[] actuals, final int actualPos, final int length) {
+        if (expecteds == actuals) {
+            return;
+        }
+        if (expecteds == null || actuals == null) {
+            assertEquals(message, Arrays.toString(expecteds), Arrays.toString(actuals));
+            return;
+        }
+        if (expecteds.length < expectedPos + length || actuals.length < actualPos + length) {
+            fail(message + ": insufficient length: expecteds=" + Arrays.toString(expecteds)
+                    + " actuals=" + Arrays.toString(actuals));
+            return;
+        }
+        for (int i = 0; i < length; i++) {
+            assertEquals(message + " [" + i + "]",
+                    expecteds[i + expectedPos], actuals[i + actualPos]);
+        }
+    }
+
+    public void testShift() {
+        final InputPointers src = new InputPointers(DEFAULT_CAPACITY);
+        final int limit = 100;
+        final int shiftAmount = 20;
+        for (int i = 0; i < limit; i++) {
+            final int x = i;
+            final int y = i * 2;
+            final int pointerId = i * 3;
+            final int time = i * 4;
+            src.addPointer(x, y, pointerId, time);
+        }
+        src.shift(shiftAmount);
+        assertEquals("length after shift", src.getPointerSize(), limit - shiftAmount);
+        for (int i = 0; i < limit - shiftAmount; ++i) {
+            final int oldIndex = i + shiftAmount;
+            final int x = oldIndex;
+            final int y = oldIndex * 2;
+            final int pointerId = oldIndex * 3;
+            final int time = oldIndex * 4;
+            assertEquals("xCoordinates at " + i, x, src.getXCoordinates()[i]);
+            assertEquals("yCoordinates at " + i, y, src.getYCoordinates()[i]);
+            assertEquals("pointerIds at " + i, pointerId, src.getPointerIds()[i]);
+            assertEquals("times at " + i, time, src.getTimes()[i]);
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/latin/common/ResizableIntArrayTests.java b/tests/src/com/android/inputmethod/latin/common/ResizableIntArrayTests.java
new file mode 100644
index 0000000..bd1629f
--- /dev/null
+++ b/tests/src/com/android/inputmethod/latin/common/ResizableIntArrayTests.java
@@ -0,0 +1,377 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.common;
+
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import java.util.Arrays;
+
+@SmallTest
+public class ResizableIntArrayTests extends AndroidTestCase {
+    private static final int DEFAULT_CAPACITY = 48;
+
+    public void testNewInstance() {
+        final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
+        final int[] array = src.getPrimitiveArray();
+        assertEquals("new instance length", 0, src.getLength());
+        assertNotNull("new instance array", array);
+        assertEquals("new instance array length", DEFAULT_CAPACITY, array.length);
+    }
+
+    public void testAdd() {
+        final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
+        final int[] array = src.getPrimitiveArray();
+        int[] array2 = null, array3 = null;
+        final int limit = DEFAULT_CAPACITY * 2 + 10;
+        for (int i = 0; i < limit; i++) {
+            final int value = i;
+            src.add(value);
+            assertEquals("length after add " + i, i + 1, src.getLength());
+            if (i == DEFAULT_CAPACITY) {
+                array2 = src.getPrimitiveArray();
+            }
+            if (i == DEFAULT_CAPACITY * 2) {
+                array3 = src.getPrimitiveArray();
+            }
+            if (i < DEFAULT_CAPACITY) {
+                assertSame("array after add " + i, array, src.getPrimitiveArray());
+            } else if (i < DEFAULT_CAPACITY * 2) {
+                assertSame("array after add " + i, array2, src.getPrimitiveArray());
+            } else if (i < DEFAULT_CAPACITY * 3) {
+                assertSame("array after add " + i, array3, src.getPrimitiveArray());
+            }
+        }
+        for (int i = 0; i < limit; i++) {
+            final int value = i;
+            assertEquals("value at " + i, value, src.get(i));
+        }
+    }
+
+    public void testAddAt() {
+        final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
+        final int limit = DEFAULT_CAPACITY * 10, step = DEFAULT_CAPACITY * 2;
+        for (int i = 0; i < limit; i += step) {
+            final int value = i;
+            src.addAt(i, value);
+            assertEquals("length after add at " + i, i + 1, src.getLength());
+        }
+        for (int i = 0; i < limit; i += step) {
+            final int value = i;
+            assertEquals("value at " + i, value, src.get(i));
+        }
+    }
+
+    public void testGet() {
+        final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
+        try {
+            src.get(0);
+            fail("get(0) shouldn't succeed");
+        } catch (ArrayIndexOutOfBoundsException e) {
+            // success
+        }
+        try {
+            src.get(DEFAULT_CAPACITY);
+            fail("get(DEFAULT_CAPACITY) shouldn't succeed");
+        } catch (ArrayIndexOutOfBoundsException e) {
+            // success
+        }
+
+        final int index = DEFAULT_CAPACITY / 2;
+        final int valueAddAt = 100;
+        src.addAt(index, valueAddAt);
+        assertEquals("legth after add at " + index, index + 1, src.getLength());
+        assertEquals("value after add at " + index, valueAddAt, src.get(index));
+        assertEquals("value after add at 0", 0, src.get(0));
+        try {
+            src.get(src.getLength());
+            fail("get(length) shouldn't succeed");
+        } catch (ArrayIndexOutOfBoundsException e) {
+            // success
+        }
+    }
+
+    public void testReset() {
+        final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
+        final int[] array = src.getPrimitiveArray();
+        for (int i = 0; i < DEFAULT_CAPACITY; i++) {
+            final int value = i;
+            src.add(value);
+            assertEquals("length after add " + i, i + 1, src.getLength());
+        }
+
+        final int smallerLength = DEFAULT_CAPACITY / 2;
+        src.reset(smallerLength);
+        final int[] array2 = src.getPrimitiveArray();
+        assertEquals("length after reset", 0, src.getLength());
+        assertNotSame("array after reset", array, array2);
+
+        int[] array3 = null;
+        for (int i = 0; i < DEFAULT_CAPACITY; i++) {
+            final int value = i;
+            src.add(value);
+            assertEquals("length after add " + i, i + 1, src.getLength());
+            if (i == smallerLength) {
+                array3 = src.getPrimitiveArray();
+            }
+            if (i < smallerLength) {
+                assertSame("array after add " + i, array2, src.getPrimitiveArray());
+            } else if (i < smallerLength * 2) {
+                assertSame("array after add " + i, array3, src.getPrimitiveArray());
+            }
+        }
+    }
+
+    public void testSetLength() {
+        final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
+        final int[] array = src.getPrimitiveArray();
+        for (int i = 0; i < DEFAULT_CAPACITY; i++) {
+            final int value = i;
+            src.add(value);
+            assertEquals("length after add " + i, i + 1, src.getLength());
+        }
+
+        final int largerLength = DEFAULT_CAPACITY * 2;
+        src.setLength(largerLength);
+        final int[] array2 = src.getPrimitiveArray();
+        assertEquals("length after larger setLength", largerLength, src.getLength());
+        assertNotSame("array after larger setLength", array, array2);
+        assertEquals("array length after larger setLength", largerLength, array2.length);
+        for (int i = 0; i < largerLength; i++) {
+            final int value = i;
+            if (i < DEFAULT_CAPACITY) {
+                assertEquals("value at " + i, value, src.get(i));
+            } else {
+                assertEquals("value at " + i, 0, src.get(i));
+            }
+        }
+
+        final int smallerLength = DEFAULT_CAPACITY / 2;
+        src.setLength(smallerLength);
+        final int[] array3 = src.getPrimitiveArray();
+        assertEquals("length after smaller setLength", smallerLength, src.getLength());
+        assertSame("array after smaller setLength", array2, array3);
+        assertEquals("array length after smaller setLength", largerLength, array3.length);
+        for (int i = 0; i < smallerLength; i++) {
+            final int value = i;
+            assertEquals("value at " + i, value, src.get(i));
+        }
+    }
+
+    public void testSet() {
+        final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
+        final int limit = DEFAULT_CAPACITY * 2 + 10;
+        for (int i = 0; i < limit; i++) {
+            final int value = i;
+            src.add(value);
+        }
+
+        final ResizableIntArray dst = new ResizableIntArray(DEFAULT_CAPACITY);
+        dst.set(src);
+        assertEquals("length after set", dst.getLength(), src.getLength());
+        assertSame("array after set", dst.getPrimitiveArray(), src.getPrimitiveArray());
+    }
+
+    public void testCopy() {
+        final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
+        for (int i = 0; i < DEFAULT_CAPACITY; i++) {
+            final int value =  i;
+            src.add(value);
+        }
+
+        final ResizableIntArray dst = new ResizableIntArray(DEFAULT_CAPACITY);
+        final int[] array = dst.getPrimitiveArray();
+        dst.copy(src);
+        assertEquals("length after copy", dst.getLength(), src.getLength());
+        assertSame("array after copy", array, dst.getPrimitiveArray());
+        assertNotSame("array after copy", dst.getPrimitiveArray(), src.getPrimitiveArray());
+        assertIntArrayEquals("values after copy",
+                dst.getPrimitiveArray(), 0, src.getPrimitiveArray(), 0, dst.getLength());
+
+        final int smallerLength = DEFAULT_CAPACITY / 2;
+        dst.reset(smallerLength);
+        final int[] array2 = dst.getPrimitiveArray();
+        dst.copy(src);
+        final int[] array3 = dst.getPrimitiveArray();
+        assertEquals("length after copy to smaller", dst.getLength(), src.getLength());
+        assertNotSame("array after copy to smaller", array2, array3);
+        assertNotSame("array after copy to smaller", array3, src.getPrimitiveArray());
+        assertIntArrayEquals("values after copy to smaller",
+                dst.getPrimitiveArray(), 0, src.getPrimitiveArray(), 0, dst.getLength());
+    }
+
+    public void testAppend() {
+        final int srcLength = DEFAULT_CAPACITY;
+        final ResizableIntArray src = new ResizableIntArray(srcLength);
+        for (int i = 0; i < srcLength; i++) {
+            final int value = i;
+            src.add(value);
+        }
+        final ResizableIntArray dst = new ResizableIntArray(DEFAULT_CAPACITY * 2);
+        final int[] array = dst.getPrimitiveArray();
+        final int dstLength = DEFAULT_CAPACITY / 2;
+        for (int i = 0; i < dstLength; i++) {
+            final int value = -i - 1;
+            dst.add(value);
+        }
+        final ResizableIntArray dstCopy = new ResizableIntArray(dst.getLength());
+        dstCopy.copy(dst);
+
+        final int startPos = 0;
+        dst.append(src, startPos, 0 /* length */);
+        assertEquals("length after append zero", dstLength, dst.getLength());
+        assertSame("array after append zero", array, dst.getPrimitiveArray());
+        assertIntArrayEquals("values after append zero", dstCopy.getPrimitiveArray(), startPos,
+                dst.getPrimitiveArray(), startPos, dstLength);
+
+        dst.append(src, startPos, srcLength);
+        assertEquals("length after append", dstLength + srcLength, dst.getLength());
+        assertSame("array after append", array, dst.getPrimitiveArray());
+        assertTrue("primitive length after append",
+                dst.getPrimitiveArray().length >= dstLength + srcLength);
+        assertIntArrayEquals("original values after append", dstCopy.getPrimitiveArray(), startPos,
+                dst.getPrimitiveArray(), startPos, dstLength);
+        assertIntArrayEquals("appended values after append", src.getPrimitiveArray(), startPos,
+                dst.getPrimitiveArray(), dstLength, srcLength);
+
+        dst.append(src, startPos, srcLength);
+        assertEquals("length after 2nd append", dstLength + srcLength * 2, dst.getLength());
+        assertNotSame("array after 2nd append", array, dst.getPrimitiveArray());
+        assertTrue("primitive length after 2nd append",
+                dst.getPrimitiveArray().length >= dstLength + srcLength * 2);
+        assertIntArrayEquals("original values after 2nd append",
+                dstCopy.getPrimitiveArray(), startPos, dst.getPrimitiveArray(), startPos,
+                dstLength);
+        assertIntArrayEquals("appended values after 2nd append",
+                src.getPrimitiveArray(), startPos, dst.getPrimitiveArray(), dstLength,
+                srcLength);
+        assertIntArrayEquals("appended values after 2nd append",
+                src.getPrimitiveArray(), startPos, dst.getPrimitiveArray(), dstLength + srcLength,
+                srcLength);
+    }
+
+    public void testFill() {
+        final int srcLength = DEFAULT_CAPACITY;
+        final ResizableIntArray src = new ResizableIntArray(srcLength);
+        for (int i = 0; i < srcLength; i++) {
+            final int value = i;
+            src.add(value);
+        }
+        final int[] array = src.getPrimitiveArray();
+
+        final int startPos = srcLength / 3;
+        final int length = srcLength / 3;
+        final int endPos = startPos + length;
+        assertTrue(startPos >= 1);
+        final int fillValue = 123;
+        try {
+            src.fill(fillValue, -1 /* startPos */, length);
+            fail("fill from -1 shouldn't succeed");
+        } catch (IllegalArgumentException e) {
+            // success
+        }
+        try {
+            src.fill(fillValue, startPos, -1 /* length */);
+            fail("fill negative length shouldn't succeed");
+        } catch (IllegalArgumentException e) {
+            // success
+        }
+
+        src.fill(fillValue, startPos, length);
+        assertEquals("length after fill", srcLength, src.getLength());
+        assertSame("array after fill", array, src.getPrimitiveArray());
+        for (int i = 0; i < srcLength; i++) {
+            final int value = i;
+            if (i >= startPos && i < endPos) {
+                assertEquals("new values after fill at " + i, fillValue, src.get(i));
+            } else {
+                assertEquals("unmodified values after fill at " + i, value, src.get(i));
+            }
+        }
+
+        final int length2 = srcLength * 2 - startPos;
+        final int largeEnd = startPos + length2;
+        assertTrue(largeEnd > srcLength);
+        final int fillValue2 = 456;
+        src.fill(fillValue2, startPos, length2);
+        assertEquals("length after large fill", largeEnd, src.getLength());
+        assertNotSame("array after large fill", array, src.getPrimitiveArray());
+        for (int i = 0; i < largeEnd; i++) {
+            final int value = i;
+            if (i >= startPos && i < largeEnd) {
+                assertEquals("new values after large fill at " + i, fillValue2, src.get(i));
+            } else {
+                assertEquals("unmodified values after large fill at " + i, value, src.get(i));
+            }
+        }
+
+        final int startPos2 = largeEnd + length2;
+        final int endPos2 = startPos2 + length2;
+        final int fillValue3 = 789;
+        src.fill(fillValue3, startPos2, length2);
+        assertEquals("length after disjoint fill", endPos2, src.getLength());
+        for (int i = 0; i < endPos2; i++) {
+            final int value = i;
+            if (i >= startPos2 && i < endPos2) {
+                assertEquals("new values after disjoint fill at " + i, fillValue3, src.get(i));
+            } else if (i >= startPos && i < largeEnd) {
+                assertEquals("unmodified values after disjoint fill at " + i,
+                        fillValue2, src.get(i));
+            } else if (i < startPos) {
+                assertEquals("unmodified values after disjoint fill at " + i, value, src.get(i));
+            } else {
+                assertEquals("gap values after disjoint fill at " + i, 0, src.get(i));
+            }
+        }
+    }
+
+    private static void assertIntArrayEquals(final String message, final int[] expecteds,
+            final int expectedPos, final int[] actuals, final int actualPos, final int length) {
+        if (expecteds == actuals) {
+            return;
+        }
+        if (expecteds == null || actuals == null) {
+            assertEquals(message, Arrays.toString(expecteds), Arrays.toString(actuals));
+            return;
+        }
+        if (expecteds.length < expectedPos + length || actuals.length < actualPos + length) {
+            fail(message + ": insufficient length: expecteds=" + Arrays.toString(expecteds)
+                    + " actuals=" + Arrays.toString(actuals));
+            return;
+        }
+        for (int i = 0; i < length; i++) {
+            assertEquals(message + " [" + i + "]",
+                    expecteds[i + expectedPos], actuals[i + actualPos]);
+        }
+    }
+
+    public void testShift() {
+        final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
+        final int limit = DEFAULT_CAPACITY * 10;
+        final int shiftAmount = 20;
+        for (int i = 0; i < limit; ++i) {
+            final int value = i;
+            src.addAt(i, value);
+            assertEquals("length after add at " + i, i + 1, src.getLength());
+        }
+        src.shift(shiftAmount);
+        for (int i = 0; i < limit - shiftAmount; ++i) {
+            final int oldValue = i + shiftAmount;
+            assertEquals("value at " + i, oldValue, src.get(i));
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/latin/common/StringUtilsTests.java b/tests/src/com/android/inputmethod/latin/common/StringUtilsTests.java
new file mode 100644
index 0000000..ec9d4be
--- /dev/null
+++ b/tests/src/com/android/inputmethod/latin/common/StringUtilsTests.java
@@ -0,0 +1,477 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.common;
+
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import java.util.Locale;
+
+@SmallTest
+public class StringUtilsTests extends AndroidTestCase {
+    private static final Locale US = Locale.US;
+    private static final Locale GERMAN = Locale.GERMAN;
+    private static final Locale TURKEY = new Locale("tr", "TR");
+    private static final Locale GREECE = new Locale("el", "GR");
+
+    private static void assert_toTitleCaseOfKeyLabel(final Locale locale,
+            final String lowerCase, final String expected) {
+        assertEquals(lowerCase + " in " + locale, expected,
+                StringUtils.toTitleCaseOfKeyLabel(lowerCase, locale));
+    }
+
+    public void test_toTitleCaseOfKeyLabel() {
+        assert_toTitleCaseOfKeyLabel(US, null, null);
+        assert_toTitleCaseOfKeyLabel(US, "", "");
+        assert_toTitleCaseOfKeyLabel(US, "aeiou", "AEIOU");
+        // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+        // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+        // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+        // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
+        // U+00C0: "À" LATIN CAPITAL LETTER A WITH GRAVE
+        // U+00C8: "È" LATIN CAPITAL LETTER E WITH GRAVE
+        // U+00CE: "Î" LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+        // U+00D6: "Ö" LATIN CAPITAL LETTER O WITH DIAERESIS
+        // U+016A: "Ū" LATIN CAPITAL LETTER U WITH MACRON
+        // U+00D1: "Ñ" LATIN CAPITAL LETTER N WITH TILDE
+        // U+00C7: "Ç" LATIN CAPITAL LETTER C WITH CEDILLA
+        assert_toTitleCaseOfKeyLabel(US,
+                "\u00E0\u00E8\u00EE\u00F6\u016B\u00F1\u00E7",
+                "\u00C0\u00C8\u00CE\u00D6\u016A\u00D1\u00C7");
+        // U+00DF: "ß" LATIN SMALL LETTER SHARP S
+        // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
+        // U+0161: "š" LATIN SMALL LETTER S WITH CARON
+        // U+015A: "Ś" LATIN CAPITAL LETTER S WITH ACUTE
+        // U+0160: "Š" LATIN CAPITAL LETTER S WITH CARONZ
+        assert_toTitleCaseOfKeyLabel(GERMAN,
+                "\u00DF\u015B\u0161",
+                "SS\u015A\u0160");
+        // U+0259: "ə" LATIN SMALL LETTER SCHWA
+        // U+0069: "i" LATIN SMALL LETTER I
+        // U+0131: "ı" LATIN SMALL LETTER DOTLESS I
+        // U+018F: "Ə" LATIN SMALL LETTER SCHWA
+        // U+0130: "İ" LATIN SMALL LETTER I WITH DOT ABOVE
+        // U+0049: "I" LATIN SMALL LETTER I
+        assert_toTitleCaseOfKeyLabel(TURKEY,
+                "\u0259\u0069\u0131",
+                "\u018F\u0130\u0049");
+        // U+03C3: "σ" GREEK SMALL LETTER SIGMA
+        // U+03C2: "ς" GREEK SMALL LETTER FINAL SIGMA
+        // U+03A3: "Σ" GREEK CAPITAL LETTER SIGMA
+        assert_toTitleCaseOfKeyLabel(GREECE,
+                "\u03C3\u03C2",
+                "\u03A3\u03A3");
+        // U+03AC: "ά" GREEK SMALL LETTER ALPHA WITH TONOS
+        // U+03AD: "έ" GREEK SMALL LETTER EPSILON WITH TONOS
+        // U+03AE: "ή" GREEK SMALL LETTER ETA WITH TONOS
+        // U+03AF: "ί" GREEK SMALL LETTER IOTA WITH TONOS
+        // U+03CC: "ό" GREEK SMALL LETTER OMICRON WITH TONOS
+        // U+03CD: "ύ" GREEK SMALL LETTER UPSILON WITH TONOS
+        // U+03CE: "ώ" GREEK SMALL LETTER OMEGA WITH TONOS
+        // U+0386: "Ά" GREEK CAPITAL LETTER ALPHA WITH TONOS
+        // U+0388: "Έ" GREEK CAPITAL LETTER EPSILON WITH TONOS
+        // U+0389: "Ή" GREEK CAPITAL LETTER ETA WITH TONOS
+        // U+038A: "Ί" GREEK CAPITAL LETTER IOTA WITH TONOS
+        // U+038C: "Ό" GREEK CAPITAL LETTER OMICRON WITH TONOS
+        // U+038E: "Ύ" GREEK CAPITAL LETTER UPSILON WITH TONOS
+        // U+038F: "Ώ" GREEK CAPITAL LETTER OMEGA WITH TONOS
+        assert_toTitleCaseOfKeyLabel(GREECE,
+                "\u03AC\u03AD\u03AE\u03AF\u03CC\u03CD\u03CE",
+                "\u0386\u0388\u0389\u038A\u038C\u038E\u038F");
+        // U+03CA: "ϊ" GREEK SMALL LETTER IOTA WITH DIALYTIKA
+        // U+03CB: "ϋ" GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+        // U+0390: "ΐ" GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+        // U+03B0: "ΰ" GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+        // U+03AA: "Ϊ" GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+        // U+03AB: "Ϋ" GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+        // U+0399: "Ι" GREEK CAPITAL LETTER IOTA
+        // U+03A5: "Υ" GREEK CAPITAL LETTER UPSILON
+        // U+0308: COMBINING DIAERESIS
+        // U+0301: COMBINING GRAVE ACCENT
+        assert_toTitleCaseOfKeyLabel(GREECE,
+                "\u03CA\u03CB\u0390\u03B0",
+                "\u03AA\u03AB\u0399\u0308\u0301\u03A5\u0308\u0301");
+    }
+
+    private static void assert_toTitleCaseOfKeyCode(final Locale locale, final int lowerCase,
+            final int expected) {
+        assertEquals(lowerCase + " in " + locale, expected,
+                StringUtils.toTitleCaseOfKeyCode(lowerCase, locale));
+    }
+
+    public void test_toTitleCaseOfKeyCode() {
+        assert_toTitleCaseOfKeyCode(US, Constants.CODE_ENTER, Constants.CODE_ENTER);
+        assert_toTitleCaseOfKeyCode(US, Constants.CODE_SPACE, Constants.CODE_SPACE);
+        assert_toTitleCaseOfKeyCode(US, Constants.CODE_COMMA, Constants.CODE_COMMA);
+        // U+0069: "i" LATIN SMALL LETTER I
+        // U+0131: "ı" LATIN SMALL LETTER DOTLESS I
+        // U+0130: "İ" LATIN SMALL LETTER I WITH DOT ABOVE
+        // U+0049: "I" LATIN SMALL LETTER I
+        assert_toTitleCaseOfKeyCode(US, 0x0069, 0x0049); // i -> I
+        assert_toTitleCaseOfKeyCode(US, 0x0131, 0x0049); // ı -> I
+        assert_toTitleCaseOfKeyCode(TURKEY, 0x0069, 0x0130); // i -> İ
+        assert_toTitleCaseOfKeyCode(TURKEY, 0x0131, 0x0049); // ı -> I
+        // U+00DF: "ß" LATIN SMALL LETTER SHARP S
+        // The title case of "ß" is "SS".
+        assert_toTitleCaseOfKeyCode(US, 0x00DF, Constants.CODE_UNSPECIFIED);
+        // U+03AC: "ά" GREEK SMALL LETTER ALPHA WITH TONOS
+        // U+0386: "Ά" GREEK CAPITAL LETTER ALPHA WITH TONOS
+        assert_toTitleCaseOfKeyCode(GREECE, 0x03AC, 0x0386);
+        // U+03CA: "ϊ" GREEK SMALL LETTER IOTA WITH DIALYTIKA
+        // U+03AA: "Ϊ" GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+        assert_toTitleCaseOfKeyCode(GREECE, 0x03CA, 0x03AA);
+        // U+03B0: "ΰ" GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+        // The title case of "ΰ" is "\u03A5\u0308\u0301".
+        assert_toTitleCaseOfKeyCode(GREECE, 0x03B0, Constants.CODE_UNSPECIFIED);
+    }
+
+    private static void assert_capitalizeFirstCodePoint(final Locale locale, final String text,
+            final String expected) {
+        assertEquals(text + " in " + locale, expected,
+                StringUtils.capitalizeFirstCodePoint(text, locale));
+    }
+
+    public void test_capitalizeFirstCodePoint() {
+        assert_capitalizeFirstCodePoint(US, "", "");
+        assert_capitalizeFirstCodePoint(US, "a", "A");
+        assert_capitalizeFirstCodePoint(US, "à", "À");
+        assert_capitalizeFirstCodePoint(US, "ß", "SS");
+        assert_capitalizeFirstCodePoint(US, "text", "Text");
+        assert_capitalizeFirstCodePoint(US, "iGoogle", "IGoogle");
+        assert_capitalizeFirstCodePoint(TURKEY, "iyi", "İyi");
+        assert_capitalizeFirstCodePoint(TURKEY, "ısırdı", "Isırdı");
+        assert_capitalizeFirstCodePoint(GREECE, "ά", "Ά");
+        assert_capitalizeFirstCodePoint(GREECE, "άνεση", "Άνεση");
+    }
+
+    private static void assert_capitalizeFirstAndDowncaseRest(final Locale locale,
+            final String text, final String expected) {
+        assertEquals(text + " in " + locale, expected,
+                StringUtils.capitalizeFirstAndDowncaseRest(text, locale));
+    }
+
+    public void test_capitalizeFirstAndDowncaseRest() {
+        assert_capitalizeFirstAndDowncaseRest(US, "", "");
+        assert_capitalizeFirstAndDowncaseRest(US, "a", "A");
+        assert_capitalizeFirstAndDowncaseRest(US, "à", "À");
+        assert_capitalizeFirstAndDowncaseRest(US, "ß", "SS");
+        assert_capitalizeFirstAndDowncaseRest(US, "text", "Text");
+        assert_capitalizeFirstAndDowncaseRest(US, "iGoogle", "Igoogle");
+        assert_capitalizeFirstAndDowncaseRest(US, "invite", "Invite");
+        assert_capitalizeFirstAndDowncaseRest(US, "INVITE", "Invite");
+        assert_capitalizeFirstAndDowncaseRest(TURKEY, "iyi", "İyi");
+        assert_capitalizeFirstAndDowncaseRest(TURKEY, "İYİ", "İyi");
+        assert_capitalizeFirstAndDowncaseRest(TURKEY, "ısırdı", "Isırdı");
+        assert_capitalizeFirstAndDowncaseRest(TURKEY, "ISIRDI", "Isırdı");
+        assert_capitalizeFirstAndDowncaseRest(GREECE, "ά", "Ά");
+        assert_capitalizeFirstAndDowncaseRest(GREECE, "άνεση", "Άνεση");
+        assert_capitalizeFirstAndDowncaseRest(GREECE, "ΆΝΕΣΗ", "Άνεση");
+    }
+
+    public void testContainsInArray() {
+        assertFalse("empty array", StringUtils.containsInArray("key", new String[0]));
+        assertFalse("not in 1 element", StringUtils.containsInArray("key", new String[] {
+                "key1"
+        }));
+        assertFalse("not in 2 elements", StringUtils.containsInArray("key", new String[] {
+                "key1", "key2"
+        }));
+
+        assertTrue("in 1 element", StringUtils.containsInArray("key", new String[] {
+                "key"
+        }));
+        assertTrue("in 2 elements", StringUtils.containsInArray("key", new String[] {
+                "key1", "key"
+        }));
+    }
+
+    public void testContainsInCommaSplittableText() {
+        assertFalse("null", StringUtils.containsInCommaSplittableText("key", null));
+        assertFalse("empty", StringUtils.containsInCommaSplittableText("key", ""));
+        assertFalse("not in 1 element",
+                StringUtils.containsInCommaSplittableText("key", "key1"));
+        assertFalse("not in 2 elements",
+                StringUtils.containsInCommaSplittableText("key", "key1,key2"));
+
+        assertTrue("in 1 element", StringUtils.containsInCommaSplittableText("key", "key"));
+        assertTrue("in 2 elements", StringUtils.containsInCommaSplittableText("key", "key1,key"));
+    }
+
+    public void testRemoveFromCommaSplittableTextIfExists() {
+        assertEquals("null", "", StringUtils.removeFromCommaSplittableTextIfExists("key", null));
+        assertEquals("empty", "", StringUtils.removeFromCommaSplittableTextIfExists("key", ""));
+
+        assertEquals("not in 1 element", "key1",
+                StringUtils.removeFromCommaSplittableTextIfExists("key", "key1"));
+        assertEquals("not in 2 elements", "key1,key2",
+                StringUtils.removeFromCommaSplittableTextIfExists("key", "key1,key2"));
+
+        assertEquals("in 1 element", "",
+                StringUtils.removeFromCommaSplittableTextIfExists("key", "key"));
+        assertEquals("in 2 elements at position 1", "key2",
+                StringUtils.removeFromCommaSplittableTextIfExists("key", "key,key2"));
+        assertEquals("in 2 elements at position 2", "key1",
+                StringUtils.removeFromCommaSplittableTextIfExists("key", "key1,key"));
+        assertEquals("in 3 elements at position 2", "key1,key3",
+                StringUtils.removeFromCommaSplittableTextIfExists("key", "key1,key,key3"));
+
+        assertEquals("in 3 elements at position 1,2,3", "",
+                StringUtils.removeFromCommaSplittableTextIfExists("key", "key,key,key"));
+        assertEquals("in 5 elements at position 2,4", "key1,key3,key5",
+                StringUtils.removeFromCommaSplittableTextIfExists(
+                        "key", "key1,key,key3,key,key5"));
+    }
+
+
+    public void testCapitalizeFirstCodePoint() {
+        assertEquals("SSaa",
+                StringUtils.capitalizeFirstCodePoint("ßaa", Locale.GERMAN));
+        assertEquals("Aßa",
+                StringUtils.capitalizeFirstCodePoint("aßa", Locale.GERMAN));
+        assertEquals("Iab",
+                StringUtils.capitalizeFirstCodePoint("iab", Locale.ENGLISH));
+        assertEquals("CAmElCaSe",
+                StringUtils.capitalizeFirstCodePoint("cAmElCaSe", Locale.ENGLISH));
+        assertEquals("İab",
+                StringUtils.capitalizeFirstCodePoint("iab", new Locale("tr")));
+        assertEquals("AİB",
+                StringUtils.capitalizeFirstCodePoint("AİB", new Locale("tr")));
+        assertEquals("A",
+                StringUtils.capitalizeFirstCodePoint("a", Locale.ENGLISH));
+        assertEquals("A",
+                StringUtils.capitalizeFirstCodePoint("A", Locale.ENGLISH));
+    }
+
+    public void testCapitalizeFirstAndDowncaseRest() {
+        assertEquals("SSaa",
+                StringUtils.capitalizeFirstAndDowncaseRest("ßaa", Locale.GERMAN));
+        assertEquals("Aßa",
+                StringUtils.capitalizeFirstAndDowncaseRest("aßa", Locale.GERMAN));
+        assertEquals("Iab",
+                StringUtils.capitalizeFirstAndDowncaseRest("iab", Locale.ENGLISH));
+        assertEquals("Camelcase",
+                StringUtils.capitalizeFirstAndDowncaseRest("cAmElCaSe", Locale.ENGLISH));
+        assertEquals("İab",
+                StringUtils.capitalizeFirstAndDowncaseRest("iab", new Locale("tr")));
+        assertEquals("Aib",
+                StringUtils.capitalizeFirstAndDowncaseRest("AİB", new Locale("tr")));
+        assertEquals("A",
+                StringUtils.capitalizeFirstAndDowncaseRest("a", Locale.ENGLISH));
+        assertEquals("A",
+                StringUtils.capitalizeFirstAndDowncaseRest("A", Locale.ENGLISH));
+    }
+
+    public void testGetCapitalizationType() {
+        assertEquals(StringUtils.CAPITALIZE_NONE,
+                StringUtils.getCapitalizationType("capitalize"));
+        assertEquals(StringUtils.CAPITALIZE_NONE,
+                StringUtils.getCapitalizationType("cApITalize"));
+        assertEquals(StringUtils.CAPITALIZE_NONE,
+                StringUtils.getCapitalizationType("capitalizE"));
+        assertEquals(StringUtils.CAPITALIZE_NONE,
+                StringUtils.getCapitalizationType("__c a piu$@tali56ze"));
+        assertEquals(StringUtils.CAPITALIZE_FIRST,
+                StringUtils.getCapitalizationType("A__c a piu$@tali56ze"));
+        assertEquals(StringUtils.CAPITALIZE_FIRST,
+                StringUtils.getCapitalizationType("Capitalize"));
+        assertEquals(StringUtils.CAPITALIZE_FIRST,
+                StringUtils.getCapitalizationType("     Capitalize"));
+        assertEquals(StringUtils.CAPITALIZE_ALL,
+                StringUtils.getCapitalizationType("CAPITALIZE"));
+        assertEquals(StringUtils.CAPITALIZE_ALL,
+                StringUtils.getCapitalizationType("  PI26LIE"));
+        assertEquals(StringUtils.CAPITALIZE_NONE,
+                StringUtils.getCapitalizationType(""));
+    }
+
+    public void testIsIdenticalAfterUpcaseIsIdenticalAfterDowncase() {
+        assertFalse(StringUtils.isIdenticalAfterUpcase("capitalize"));
+        assertTrue(StringUtils.isIdenticalAfterDowncase("capitalize"));
+        assertFalse(StringUtils.isIdenticalAfterUpcase("cApITalize"));
+        assertFalse(StringUtils.isIdenticalAfterDowncase("cApITalize"));
+        assertFalse(StringUtils.isIdenticalAfterUpcase("capitalizE"));
+        assertFalse(StringUtils.isIdenticalAfterDowncase("capitalizE"));
+        assertFalse(StringUtils.isIdenticalAfterUpcase("__c a piu$@tali56ze"));
+        assertTrue(StringUtils.isIdenticalAfterDowncase("__c a piu$@tali56ze"));
+        assertFalse(StringUtils.isIdenticalAfterUpcase("A__c a piu$@tali56ze"));
+        assertFalse(StringUtils.isIdenticalAfterDowncase("A__c a piu$@tali56ze"));
+        assertFalse(StringUtils.isIdenticalAfterUpcase("Capitalize"));
+        assertFalse(StringUtils.isIdenticalAfterDowncase("Capitalize"));
+        assertFalse(StringUtils.isIdenticalAfterUpcase("     Capitalize"));
+        assertFalse(StringUtils.isIdenticalAfterDowncase("     Capitalize"));
+        assertTrue(StringUtils.isIdenticalAfterUpcase("CAPITALIZE"));
+        assertFalse(StringUtils.isIdenticalAfterDowncase("CAPITALIZE"));
+        assertTrue(StringUtils.isIdenticalAfterUpcase("  PI26LIE"));
+        assertFalse(StringUtils.isIdenticalAfterDowncase("  PI26LIE"));
+        assertTrue(StringUtils.isIdenticalAfterUpcase(""));
+        assertTrue(StringUtils.isIdenticalAfterDowncase(""));
+    }
+
+    private static void checkCapitalize(final String src, final String dst,
+            final int[] sortedSeparators, final Locale locale) {
+        assertEquals(dst, StringUtils.capitalizeEachWord(src, sortedSeparators, locale));
+        assert(src.equals(dst)
+                == StringUtils.isIdenticalAfterCapitalizeEachWord(src, sortedSeparators));
+    }
+
+    private static final int[] SPACE = { Constants.CODE_SPACE };
+    private static final int[] SPACE_PERIOD = StringUtils.toSortedCodePointArray(" .");
+    private static final int[] SENTENCE_SEPARATORS =
+            StringUtils.toSortedCodePointArray(" \n.!?*()&");
+    private static final int[] WORD_SEPARATORS = StringUtils.toSortedCodePointArray(" \n.!?*,();&");
+
+    public void testCapitalizeEachWord() {
+        checkCapitalize("", "", SPACE, Locale.ENGLISH);
+        checkCapitalize("test", "Test", SPACE, Locale.ENGLISH);
+        checkCapitalize("    test", "    Test", SPACE, Locale.ENGLISH);
+        checkCapitalize("Test", "Test", SPACE, Locale.ENGLISH);
+        checkCapitalize("    Test", "    Test", SPACE, Locale.ENGLISH);
+        checkCapitalize(".Test", ".test", SPACE, Locale.ENGLISH);
+        checkCapitalize(".Test", ".Test", SPACE_PERIOD, Locale.ENGLISH);
+        checkCapitalize("test and retest", "Test And Retest", SPACE_PERIOD, Locale.ENGLISH);
+        checkCapitalize("Test and retest", "Test And Retest", SPACE_PERIOD, Locale.ENGLISH);
+        checkCapitalize("Test And Retest", "Test And Retest", SPACE_PERIOD, Locale.ENGLISH);
+        checkCapitalize("Test And.Retest  ", "Test And.Retest  ", SPACE_PERIOD, Locale.ENGLISH);
+        checkCapitalize("Test And.retest  ", "Test And.Retest  ", SPACE_PERIOD, Locale.ENGLISH);
+        checkCapitalize("Test And.retest  ", "Test And.retest  ", SPACE, Locale.ENGLISH);
+        checkCapitalize("Test And.Retest  ", "Test And.retest  ", SPACE, Locale.ENGLISH);
+        checkCapitalize("test and ietest", "Test And İetest", SPACE_PERIOD, new Locale("tr"));
+        checkCapitalize("test and ietest", "Test And Ietest", SPACE_PERIOD, Locale.ENGLISH);
+        checkCapitalize("Test&Retest", "Test&Retest", SENTENCE_SEPARATORS, Locale.ENGLISH);
+        checkCapitalize("Test&retest", "Test&Retest", SENTENCE_SEPARATORS, Locale.ENGLISH);
+        checkCapitalize("test&Retest", "Test&Retest", SENTENCE_SEPARATORS, Locale.ENGLISH);
+        checkCapitalize("rest\nrecreation! And in the end...",
+                "Rest\nRecreation! And In The End...", WORD_SEPARATORS, Locale.ENGLISH);
+        checkCapitalize("lorem ipsum dolor sit amet", "Lorem Ipsum Dolor Sit Amet",
+                WORD_SEPARATORS, Locale.ENGLISH);
+        checkCapitalize("Lorem!Ipsum (Dolor) Sit * Amet", "Lorem!Ipsum (Dolor) Sit * Amet",
+                WORD_SEPARATORS, Locale.ENGLISH);
+        checkCapitalize("Lorem!Ipsum (dolor) Sit * Amet", "Lorem!Ipsum (Dolor) Sit * Amet",
+                WORD_SEPARATORS, Locale.ENGLISH);
+    }
+
+    public void testLooksLikeURL() {
+        assertTrue(StringUtils.lastPartLooksLikeURL("http://www.google."));
+        assertFalse(StringUtils.lastPartLooksLikeURL("word wo"));
+        assertTrue(StringUtils.lastPartLooksLikeURL("/etc/foo"));
+        assertFalse(StringUtils.lastPartLooksLikeURL("left/right"));
+        assertTrue(StringUtils.lastPartLooksLikeURL("www.goo"));
+        assertTrue(StringUtils.lastPartLooksLikeURL("www."));
+        assertFalse(StringUtils.lastPartLooksLikeURL("U.S.A"));
+        assertFalse(StringUtils.lastPartLooksLikeURL("U.S.A."));
+        assertTrue(StringUtils.lastPartLooksLikeURL("rtsp://foo."));
+        assertTrue(StringUtils.lastPartLooksLikeURL("://"));
+        assertFalse(StringUtils.lastPartLooksLikeURL("abc/"));
+        assertTrue(StringUtils.lastPartLooksLikeURL("abc.def/ghi"));
+        assertFalse(StringUtils.lastPartLooksLikeURL("abc.def"));
+        // TODO: ideally this would not look like a URL, but to keep down the complexity of the
+        // code for now True is acceptable.
+        assertTrue(StringUtils.lastPartLooksLikeURL("abc./def"));
+        // TODO: ideally this would not look like a URL, but to keep down the complexity of the
+        // code for now True is acceptable.
+        assertTrue(StringUtils.lastPartLooksLikeURL(".abc/def"));
+    }
+
+    public void testHexStringUtils() {
+        final byte[] bytes = new byte[] { (byte)0x01, (byte)0x11, (byte)0x22, (byte)0x33,
+                (byte)0x55, (byte)0x88, (byte)0xEE };
+        final String bytesStr = StringUtils.byteArrayToHexString(bytes);
+        final byte[] bytes2 = StringUtils.hexStringToByteArray(bytesStr);
+        for (int i = 0; i < bytes.length; ++i) {
+            assertTrue(bytes[i] == bytes2[i]);
+        }
+        final String bytesStr2 = StringUtils.byteArrayToHexString(bytes2);
+        assertTrue(bytesStr.equals(bytesStr2));
+    }
+
+    public void testToCodePointArray() {
+        final String STR_WITH_SUPPLEMENTARY_CHAR = "abcde\uD861\uDED7fgh\u0000\u2002\u2003\u3000xx";
+        final int[] EXPECTED_RESULT = new int[] { 'a', 'b', 'c', 'd', 'e', 0x286D7, 'f', 'g', 'h',
+                0, 0x2002, 0x2003, 0x3000, 'x', 'x'};
+        final int[] codePointArray = StringUtils.toCodePointArray(STR_WITH_SUPPLEMENTARY_CHAR, 0,
+                STR_WITH_SUPPLEMENTARY_CHAR.length());
+        assertEquals("toCodePointArray, size matches", codePointArray.length,
+                EXPECTED_RESULT.length);
+        for (int i = 0; i < EXPECTED_RESULT.length; ++i) {
+            assertEquals("toCodePointArray position " + i, codePointArray[i], EXPECTED_RESULT[i]);
+        }
+    }
+
+    public void testCopyCodePointsAndReturnCodePointCount() {
+        final String STR_WITH_SUPPLEMENTARY_CHAR = "AbcDE\uD861\uDED7fGh\u0000\u2002\u3000あx";
+        final int[] EXPECTED_RESULT = new int[] { 'A', 'b', 'c', 'D', 'E', 0x286D7,
+                'f', 'G', 'h', 0, 0x2002, 0x3000, 'あ', 'x'};
+        final int[] EXPECTED_RESULT_DOWNCASE = new int[] { 'a', 'b', 'c', 'd', 'e', 0x286D7,
+                'f', 'g', 'h', 0, 0x2002, 0x3000, 'あ', 'x'};
+
+        int[] codePointArray = new int[50];
+        int codePointCount = StringUtils.copyCodePointsAndReturnCodePointCount(codePointArray,
+                STR_WITH_SUPPLEMENTARY_CHAR, 0,
+                STR_WITH_SUPPLEMENTARY_CHAR.length(), false /* downCase */);
+        assertEquals("copyCodePointsAndReturnCodePointCount, size matches", codePointCount,
+                EXPECTED_RESULT.length);
+        for (int i = 0; i < codePointCount; ++i) {
+            assertEquals("copyCodePointsAndReturnCodePointCount position " + i, codePointArray[i],
+                    EXPECTED_RESULT[i]);
+        }
+
+        codePointCount = StringUtils.copyCodePointsAndReturnCodePointCount(codePointArray,
+                STR_WITH_SUPPLEMENTARY_CHAR, 0,
+                STR_WITH_SUPPLEMENTARY_CHAR.length(), true /* downCase */);
+        assertEquals("copyCodePointsAndReturnCodePointCount downcase, size matches", codePointCount,
+                EXPECTED_RESULT_DOWNCASE.length);
+        for (int i = 0; i < codePointCount; ++i) {
+            assertEquals("copyCodePointsAndReturnCodePointCount position " + i, codePointArray[i],
+                    EXPECTED_RESULT_DOWNCASE[i]);
+        }
+
+        final int JAVA_CHAR_COUNT = 8;
+        final int CODEPOINT_COUNT = 7;
+        codePointCount = StringUtils.copyCodePointsAndReturnCodePointCount(codePointArray,
+                STR_WITH_SUPPLEMENTARY_CHAR, 0, JAVA_CHAR_COUNT, false /* downCase */);
+        assertEquals("copyCodePointsAndReturnCodePointCount, size matches", codePointCount,
+                CODEPOINT_COUNT);
+        for (int i = 0; i < codePointCount; ++i) {
+            assertEquals("copyCodePointsAndReturnCodePointCount position " + i, codePointArray[i],
+                    EXPECTED_RESULT[i]);
+        }
+
+        boolean exceptionHappened = false;
+        codePointArray = new int[5];
+        try {
+            codePointCount = StringUtils.copyCodePointsAndReturnCodePointCount(codePointArray,
+                    STR_WITH_SUPPLEMENTARY_CHAR, 0, JAVA_CHAR_COUNT, false /* downCase */);
+        } catch (ArrayIndexOutOfBoundsException e) {
+            exceptionHappened = true;
+        }
+        assertTrue("copyCodePointsAndReturnCodePointCount throws when array is too small",
+                exceptionHappened);
+    }
+
+    public void testGetTrailingSingleQuotesCount() {
+        assertEquals(0, StringUtils.getTrailingSingleQuotesCount(""));
+        assertEquals(1, StringUtils.getTrailingSingleQuotesCount("'"));
+        assertEquals(5, StringUtils.getTrailingSingleQuotesCount("'''''"));
+        assertEquals(0, StringUtils.getTrailingSingleQuotesCount("a"));
+        assertEquals(0, StringUtils.getTrailingSingleQuotesCount("'this"));
+        assertEquals(1, StringUtils.getTrailingSingleQuotesCount("'word'"));
+        assertEquals(0, StringUtils.getTrailingSingleQuotesCount("I'm"));
+    }
+}
diff --git a/tests/src/com/android/inputmethod/latin/common/UnicodeSurrogateTests.java b/tests/src/com/android/inputmethod/latin/common/UnicodeSurrogateTests.java
new file mode 100644
index 0000000..59bb082
--- /dev/null
+++ b/tests/src/com/android/inputmethod/latin/common/UnicodeSurrogateTests.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.inputmethod.latin.common;
+
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+@SmallTest
+public class UnicodeSurrogateTests extends AndroidTestCase {
+
+    public void testIsLowSurrogate() {
+        assertFalse(UnicodeSurrogate.isLowSurrogate('\uD7FF'));
+        assertTrue(UnicodeSurrogate.isLowSurrogate('\uD83D'));
+        assertFalse(UnicodeSurrogate.isLowSurrogate('\uDC00'));
+    }
+
+    public void testIsHighSurrogate() {
+        assertFalse(UnicodeSurrogate.isHighSurrogate('\uDBFF'));
+        assertTrue(UnicodeSurrogate.isHighSurrogate('\uDE25'));
+        assertFalse(UnicodeSurrogate.isHighSurrogate('\uE000'));
+    }
+}
diff --git a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderEncoderTests.java b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderEncoderTests.java
deleted file mode 100644
index 406046a..0000000
--- a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderEncoderTests.java
+++ /dev/null
@@ -1,696 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.makedict;
-
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.util.Log;
-import android.util.Pair;
-import android.util.SparseArray;
-
-import com.android.inputmethod.latin.BinaryDictionary;
-import com.android.inputmethod.latin.makedict.BinaryDictDecoderUtils.CharEncoding;
-import com.android.inputmethod.latin.makedict.BinaryDictDecoderUtils.DictBuffer;
-import com.android.inputmethod.latin.makedict.FormatSpec.FormatOptions;
-import com.android.inputmethod.latin.makedict.FusionDictionary.PtNode;
-import com.android.inputmethod.latin.makedict.FusionDictionary.PtNodeArray;
-import com.android.inputmethod.latin.utils.BinaryDictionaryUtils;
-import com.android.inputmethod.latin.utils.ByteArrayDictBuffer;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map.Entry;
-import java.util.Random;
-import java.util.Set;
-import java.util.TreeMap;
-
-/**
- * Unit tests for BinaryDictDecoderUtils and BinaryDictEncoderUtils.
- */
-@LargeTest
-public class BinaryDictDecoderEncoderTests extends AndroidTestCase {
-    private static final String TAG = BinaryDictDecoderEncoderTests.class.getSimpleName();
-    private static final int DEFAULT_MAX_UNIGRAMS = 300;
-    private static final int DEFAULT_CODE_POINT_SET_SIZE = 50;
-    private static final int LARGE_CODE_POINT_SET_SIZE = 300;
-    private static final int UNIGRAM_FREQ = 10;
-    private static final int BIGRAM_FREQ = 50;
-    private static final int TOLERANCE_OF_BIGRAM_FREQ = 5;
-    private static final int NUM_OF_NODES_HAVING_SHORTCUTS = 50;
-    private static final int NUM_OF_SHORTCUTS = 5;
-
-    private static final ArrayList<String> sWords = new ArrayList<>();
-    private static final ArrayList<String> sWordsWithVariousCodePoints = new ArrayList<>();
-    private static final SparseArray<List<Integer>> sEmptyBigrams = new SparseArray<>();
-    private static final SparseArray<List<Integer>> sStarBigrams = new SparseArray<>();
-    private static final SparseArray<List<Integer>> sChainBigrams = new SparseArray<>();
-    private static final HashMap<String, List<String>> sShortcuts = new HashMap<>();
-
-    public BinaryDictDecoderEncoderTests() {
-        this(System.currentTimeMillis(), DEFAULT_MAX_UNIGRAMS);
-    }
-
-    public BinaryDictDecoderEncoderTests(final long seed, final int maxUnigrams) {
-        super();
-        BinaryDictionaryUtils.setCurrentTimeForTest(0);
-        Log.e(TAG, "Testing dictionary: seed is " + seed);
-        final Random random = new Random(seed);
-        sWords.clear();
-        sWordsWithVariousCodePoints.clear();
-        generateWords(maxUnigrams, random);
-
-        for (int i = 0; i < sWords.size(); ++i) {
-            sChainBigrams.put(i, new ArrayList<Integer>());
-            if (i > 0) {
-                sChainBigrams.get(i - 1).add(i);
-            }
-        }
-
-        sStarBigrams.put(0, new ArrayList<Integer>());
-        // MAX - 1 because we added one above already
-        final int maxBigrams = Math.min(sWords.size(), FormatSpec.MAX_BIGRAMS_IN_A_PTNODE - 1);
-        for (int i = 1; i < maxBigrams; ++i) {
-            sStarBigrams.get(0).add(i);
-        }
-
-        sShortcuts.clear();
-        for (int i = 0; i < NUM_OF_NODES_HAVING_SHORTCUTS; ++i) {
-            final int from = Math.abs(random.nextInt()) % sWords.size();
-            sShortcuts.put(sWords.get(from), new ArrayList<String>());
-            for (int j = 0; j < NUM_OF_SHORTCUTS; ++j) {
-                final int to = Math.abs(random.nextInt()) % sWords.size();
-                sShortcuts.get(sWords.get(from)).add(sWords.get(to));
-            }
-        }
-    }
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        BinaryDictionaryUtils.setCurrentTimeForTest(0);
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        // Quit test mode.
-        BinaryDictionaryUtils.setCurrentTimeForTest(-1);
-        super.tearDown();
-    }
-
-    private void generateWords(final int number, final Random random) {
-        final int[] codePointSet = CodePointUtils.generateCodePointSet(DEFAULT_CODE_POINT_SET_SIZE,
-                random);
-        final Set<String> wordSet = new HashSet<>();
-        while (wordSet.size() < number) {
-            wordSet.add(CodePointUtils.generateWord(random, codePointSet));
-        }
-        sWords.addAll(wordSet);
-
-        final int[] largeCodePointSet = CodePointUtils.generateCodePointSet(
-                LARGE_CODE_POINT_SET_SIZE, random);
-        wordSet.clear();
-        while (wordSet.size() < number) {
-            wordSet.add(CodePointUtils.generateWord(random, largeCodePointSet));
-        }
-        sWordsWithVariousCodePoints.addAll(wordSet);
-    }
-
-    /**
-     * Adds unigrams to the dictionary.
-     */
-    private void addUnigrams(final int number, final FusionDictionary dict,
-            final List<String> words, final HashMap<String, List<String>> shortcutMap) {
-        for (int i = 0; i < number; ++i) {
-            final String word = words.get(i);
-            final ArrayList<WeightedString> shortcuts = new ArrayList<>();
-            if (shortcutMap != null && shortcutMap.containsKey(word)) {
-                for (final String shortcut : shortcutMap.get(word)) {
-                    shortcuts.add(new WeightedString(shortcut, UNIGRAM_FREQ));
-                }
-            }
-            dict.add(word, new ProbabilityInfo(UNIGRAM_FREQ),
-                    (shortcutMap == null) ? null : shortcuts, false /* isNotAWord */);
-        }
-    }
-
-    private void addBigrams(final FusionDictionary dict,
-            final List<String> words,
-            final SparseArray<List<Integer>> bigrams) {
-        for (int i = 0; i < bigrams.size(); ++i) {
-            final int w1 = bigrams.keyAt(i);
-            for (int w2 : bigrams.valueAt(i)) {
-                dict.setBigram(words.get(w1), words.get(w2), new ProbabilityInfo(BIGRAM_FREQ));
-            }
-        }
-    }
-
-//    The following is useful to dump the dictionary into a textual file, but it can't compile
-//    on-device, so it's commented out.
-//    private void dumpToCombinedFileForDebug(final FusionDictionary dict, final String filename)
-//            throws IOException {
-//        com.android.inputmethod.latin.dicttool.CombinedInputOutput.writeDictionaryCombined(
-//                new java.io.FileWriter(new File(filename)), dict);
-//    }
-
-    private long timeWritingDictToFile(final File file, final FusionDictionary dict,
-            final FormatSpec.FormatOptions formatOptions) {
-
-        long now = -1, diff = -1;
-
-        try {
-            final DictEncoder dictEncoder = BinaryDictUtils.getDictEncoder(file, formatOptions);
-
-            now = System.currentTimeMillis();
-            // If you need to dump the dict to a textual file, uncomment the line below and the
-            // function above
-            // dumpToCombinedFileForDebug(file, "/tmp/foo");
-            dictEncoder.writeDictionary(dict, formatOptions);
-            diff = System.currentTimeMillis() - now;
-        } catch (IOException e) {
-            Log.e(TAG, "IO exception while writing file", e);
-        } catch (UnsupportedFormatException e) {
-            Log.e(TAG, "UnsupportedFormatException", e);
-        }
-
-        return diff;
-    }
-
-    private void checkDictionary(final FusionDictionary dict, final List<String> words,
-            final SparseArray<List<Integer>> bigrams,
-            final HashMap<String, List<String>> shortcutMap) {
-        assertNotNull(dict);
-
-        // check unigram
-        for (final String word : words) {
-            final PtNode ptNode = FusionDictionary.findWordInTree(dict.mRootNodeArray, word);
-            assertNotNull(ptNode);
-        }
-
-        // check bigram
-        for (int i = 0; i < bigrams.size(); ++i) {
-            final int w1 = bigrams.keyAt(i);
-            for (final int w2 : bigrams.valueAt(i)) {
-                final PtNode ptNode = FusionDictionary.findWordInTree(dict.mRootNodeArray,
-                        words.get(w1));
-                assertNotNull(words.get(w1) + "," + words.get(w2), ptNode.getBigram(words.get(w2)));
-            }
-        }
-
-        // check shortcut
-        if (shortcutMap != null) {
-            for (final Entry<String, List<String>> entry : shortcutMap.entrySet()) {
-                assertTrue(words.contains(entry.getKey()));
-                final PtNode ptNode = FusionDictionary.findWordInTree(dict.mRootNodeArray,
-                        entry.getKey());
-                for (final String word : entry.getValue()) {
-                    assertNotNull("shortcut not found: " + entry.getKey() + ", " + word,
-                            ptNode.getShortcut(word));
-                }
-            }
-        }
-    }
-
-    private String outputOptions(final int bufferType,
-            final FormatSpec.FormatOptions formatOptions) {
-        String result = " : buffer type = "
-                + ((bufferType == BinaryDictUtils.USE_BYTE_BUFFER) ? "byte buffer" : "byte array");
-        return result + " : version = " + formatOptions.mVersion;
-    }
-
-    // Tests for readDictionaryBinary and writeDictionaryBinary
-
-    private long timeReadingAndCheckDict(final File file, final List<String> words,
-            final SparseArray<List<Integer>> bigrams,
-            final HashMap<String, List<String>> shortcutMap, final int bufferType) {
-        long now, diff = -1;
-
-        FusionDictionary dict = null;
-        try {
-            final DictDecoder dictDecoder = BinaryDictIOUtils.getDictDecoder(file, 0, file.length(),
-                    bufferType);
-            now = System.currentTimeMillis();
-            dict = dictDecoder.readDictionaryBinary(false /* deleteDictIfBroken */);
-            diff  = System.currentTimeMillis() - now;
-        } catch (IOException e) {
-            Log.e(TAG, "IOException while reading dictionary", e);
-        } catch (UnsupportedFormatException e) {
-            Log.e(TAG, "Unsupported format", e);
-        }
-
-        checkDictionary(dict, words, bigrams, shortcutMap);
-        return diff;
-    }
-
-    // Tests for readDictionaryBinary and writeDictionaryBinary
-    private String runReadAndWrite(final List<String> words,
-            final SparseArray<List<Integer>> bigrams, final HashMap<String, List<String>> shortcuts,
-            final int bufferType, final FormatSpec.FormatOptions formatOptions,
-            final String message) {
-
-        final String dictName = "runReadAndWrite";
-        final String dictVersion = Long.toString(System.currentTimeMillis());
-        final File file = BinaryDictUtils.getDictFile(dictName, dictVersion, formatOptions,
-                getContext().getCacheDir());
-
-        final FusionDictionary dict = new FusionDictionary(new PtNodeArray(),
-                BinaryDictUtils.makeDictionaryOptions(dictName, dictVersion, formatOptions));
-        addUnigrams(words.size(), dict, words, shortcuts);
-        addBigrams(dict, words, bigrams);
-        checkDictionary(dict, words, bigrams, shortcuts);
-
-        final long write = timeWritingDictToFile(file, dict, formatOptions);
-        final long read = timeReadingAndCheckDict(file, words, bigrams, shortcuts, bufferType);
-
-        return "PROF: read=" + read + "ms, write=" + write + "ms :" + message
-                + " : " + outputOptions(bufferType, formatOptions);
-    }
-
-    private void runReadAndWriteTests(final List<String> results, final int bufferType,
-            final FormatSpec.FormatOptions formatOptions) {
-        results.add(runReadAndWrite(sWords, sEmptyBigrams, null /* shortcuts */, bufferType,
-                formatOptions, "unigram"));
-        results.add(runReadAndWrite(sWords, sChainBigrams, null /* shortcuts */, bufferType,
-                formatOptions, "chain"));
-        results.add(runReadAndWrite(sWords, sStarBigrams, null /* shortcuts */, bufferType,
-                formatOptions, "star"));
-        results.add(runReadAndWrite(sWords, sEmptyBigrams, sShortcuts, bufferType, formatOptions,
-                "unigram with shortcuts"));
-        results.add(runReadAndWrite(sWords, sChainBigrams, sShortcuts, bufferType, formatOptions,
-                "chain with shortcuts"));
-        results.add(runReadAndWrite(sWords, sStarBigrams, sShortcuts, bufferType, formatOptions,
-                "star with shortcuts"));
-        results.add(runReadAndWrite(sWordsWithVariousCodePoints, sEmptyBigrams,
-                null /* shortcuts */, bufferType, formatOptions,
-                "unigram with various code points"));
-    }
-
-    // Unit test for CharEncoding.readString and CharEncoding.writeString.
-    public void testCharEncoding() {
-        // the max length of a word in sWords is less than 50.
-        // See generateWords.
-        final byte[] buffer = new byte[50 * 3];
-        final DictBuffer dictBuffer = new ByteArrayDictBuffer(buffer);
-        for (final String word : sWords) {
-            Arrays.fill(buffer, (byte) 0);
-            CharEncoding.writeString(buffer, 0, word);
-            dictBuffer.position(0);
-            final String str = CharEncoding.readString(dictBuffer);
-            assertEquals(word, str);
-        }
-    }
-
-    public void testReadAndWriteWithByteBuffer() {
-        final List<String> results = new ArrayList<>();
-
-        runReadAndWriteTests(results, BinaryDictUtils.USE_BYTE_BUFFER,
-                BinaryDictUtils.VERSION2_OPTIONS);
-        runReadAndWriteTests(results, BinaryDictUtils.USE_BYTE_BUFFER,
-                BinaryDictUtils.VERSION4_OPTIONS_WITHOUT_TIMESTAMP);
-        runReadAndWriteTests(results, BinaryDictUtils.USE_BYTE_BUFFER,
-                BinaryDictUtils.VERSION4_OPTIONS_WITH_TIMESTAMP);
-        for (final String result : results) {
-            Log.d(TAG, result);
-        }
-    }
-
-    public void testReadAndWriteWithByteArray() {
-        final List<String> results = new ArrayList<>();
-
-        runReadAndWriteTests(results, BinaryDictUtils.USE_BYTE_ARRAY,
-                BinaryDictUtils.VERSION2_OPTIONS);
-        runReadAndWriteTests(results, BinaryDictUtils.USE_BYTE_ARRAY,
-                BinaryDictUtils.VERSION4_OPTIONS_WITHOUT_TIMESTAMP);
-        runReadAndWriteTests(results, BinaryDictUtils.USE_BYTE_ARRAY,
-                BinaryDictUtils.VERSION4_OPTIONS_WITH_TIMESTAMP);
-
-        for (final String result : results) {
-            Log.d(TAG, result);
-        }
-    }
-
-    // Tests for readUnigramsAndBigramsBinary
-
-    private void checkWordMap(final List<String> expectedWords,
-            final SparseArray<List<Integer>> expectedBigrams,
-            final TreeMap<Integer, String> resultWords,
-            final TreeMap<Integer, Integer> resultFrequencies,
-            final TreeMap<Integer, ArrayList<PendingAttribute>> resultBigrams,
-            final boolean checkProbability) {
-        // check unigrams
-        final Set<String> actualWordsSet = new HashSet<>(resultWords.values());
-        final Set<String> expectedWordsSet = new HashSet<>(expectedWords);
-        assertEquals(actualWordsSet, expectedWordsSet);
-        if (checkProbability) {
-            for (int freq : resultFrequencies.values()) {
-                assertEquals(freq, UNIGRAM_FREQ);
-            }
-        }
-
-        // check bigrams
-        final HashMap<String, Set<String>> expBigrams = new HashMap<>();
-        for (int i = 0; i < expectedBigrams.size(); ++i) {
-            final String word1 = expectedWords.get(expectedBigrams.keyAt(i));
-            for (int w2 : expectedBigrams.valueAt(i)) {
-                if (expBigrams.get(word1) == null) {
-                    expBigrams.put(word1, new HashSet<String>());
-                }
-                expBigrams.get(word1).add(expectedWords.get(w2));
-            }
-        }
-
-        final HashMap<String, Set<String>> actBigrams = new HashMap<>();
-        for (Entry<Integer, ArrayList<PendingAttribute>> entry : resultBigrams.entrySet()) {
-            final String word1 = resultWords.get(entry.getKey());
-            final int unigramFreq = resultFrequencies.get(entry.getKey());
-            for (PendingAttribute attr : entry.getValue()) {
-                final String word2 = resultWords.get(attr.mAddress);
-                if (actBigrams.get(word1) == null) {
-                    actBigrams.put(word1, new HashSet<String>());
-                }
-                actBigrams.get(word1).add(word2);
-
-                if (checkProbability) {
-                    final int bigramFreq = BinaryDictIOUtils.reconstructBigramFrequency(
-                            unigramFreq, attr.mFrequency);
-                    assertTrue(Math.abs(bigramFreq - BIGRAM_FREQ) < TOLERANCE_OF_BIGRAM_FREQ);
-                }
-            }
-        }
-        assertEquals(actBigrams, expBigrams);
-    }
-
-    private long timeAndCheckReadUnigramsAndBigramsBinary(final File file, final List<String> words,
-            final SparseArray<List<Integer>> bigrams, final int bufferType,
-            final boolean checkProbability) {
-        final TreeMap<Integer, String> resultWords = new TreeMap<>();
-        final TreeMap<Integer, ArrayList<PendingAttribute>> resultBigrams = new TreeMap<>();
-        final TreeMap<Integer, Integer> resultFreqs = new TreeMap<>();
-
-        long now = -1, diff = -1;
-        try {
-            final DictDecoder dictDecoder = BinaryDictIOUtils.getDictDecoder(file, 0, file.length(),
-                    bufferType);
-            now = System.currentTimeMillis();
-            dictDecoder.readUnigramsAndBigramsBinary(resultWords, resultFreqs, resultBigrams);
-            diff = System.currentTimeMillis() - now;
-        } catch (IOException e) {
-            Log.e(TAG, "IOException", e);
-        } catch (UnsupportedFormatException e) {
-            Log.e(TAG, "UnsupportedFormatException", e);
-        }
-
-        checkWordMap(words, bigrams, resultWords, resultFreqs, resultBigrams, checkProbability);
-        return diff;
-    }
-
-    private String runReadUnigramsAndBigramsBinary(final ArrayList<String> words,
-            final SparseArray<List<Integer>> bigrams, final int bufferType,
-            final FormatSpec.FormatOptions formatOptions, final String message) {
-        final String dictName = "runReadUnigrams";
-        final String dictVersion = Long.toString(System.currentTimeMillis());
-        final File file = BinaryDictUtils.getDictFile(dictName, dictVersion, formatOptions,
-                getContext().getCacheDir());
-
-        // making the dictionary from lists of words.
-        final FusionDictionary dict = new FusionDictionary(new PtNodeArray(),
-                BinaryDictUtils.makeDictionaryOptions(dictName, dictVersion, formatOptions));
-        addUnigrams(words.size(), dict, words, null /* shortcutMap */);
-        addBigrams(dict, words, bigrams);
-
-        timeWritingDictToFile(file, dict, formatOptions);
-
-        // Caveat: Currently, the Java code to read a v4 dictionary doesn't calculate the
-        // probability when there's a timestamp for the entry.
-        // TODO: Abandon the Java code, and implement the v4 dictionary reading code in native.
-        long wordMap = timeAndCheckReadUnigramsAndBigramsBinary(file, words, bigrams, bufferType,
-                !formatOptions.mHasTimestamp /* checkProbability */);
-        long fullReading = timeReadingAndCheckDict(file, words, bigrams, null /* shortcutMap */,
-                bufferType);
-
-        return "readDictionaryBinary=" + fullReading + ", readUnigramsAndBigramsBinary=" + wordMap
-                + " : " + message + " : " + outputOptions(bufferType, formatOptions);
-    }
-
-    private void runReadUnigramsAndBigramsTests(final ArrayList<String> results,
-            final int bufferType, final FormatSpec.FormatOptions formatOptions) {
-        results.add(runReadUnigramsAndBigramsBinary(sWords, sEmptyBigrams, bufferType,
-                formatOptions, "unigram"));
-        results.add(runReadUnigramsAndBigramsBinary(sWords, sChainBigrams, bufferType,
-                formatOptions, "chain"));
-        results.add(runReadUnigramsAndBigramsBinary(sWords, sStarBigrams, bufferType,
-                formatOptions, "star"));
-    }
-
-    public void testReadUnigramsAndBigramsBinaryWithByteBuffer() {
-        final ArrayList<String> results = new ArrayList<>();
-
-        runReadUnigramsAndBigramsTests(results, BinaryDictUtils.USE_BYTE_BUFFER,
-                BinaryDictUtils.VERSION2_OPTIONS);
-
-        for (final String result : results) {
-            Log.d(TAG, result);
-        }
-    }
-
-    public void testReadUnigramsAndBigramsBinaryWithByteArray() {
-        final ArrayList<String> results = new ArrayList<>();
-
-        runReadUnigramsAndBigramsTests(results, BinaryDictUtils.USE_BYTE_ARRAY,
-                BinaryDictUtils.VERSION2_OPTIONS);
-
-        for (final String result : results) {
-            Log.d(TAG, result);
-        }
-    }
-
-    // Tests for getTerminalPosition
-    private String getWordFromBinary(final DictDecoder dictDecoder, final int address) {
-        if (dictDecoder.getPosition() != 0) dictDecoder.setPosition(0);
-
-        DictionaryHeader fileHeader = null;
-        try {
-            fileHeader = dictDecoder.readHeader();
-        } catch (IOException e) {
-            return null;
-        } catch (UnsupportedFormatException e) {
-            return null;
-        }
-        if (fileHeader == null) return null;
-        return BinaryDictDecoderUtils.getWordAtPosition(dictDecoder, fileHeader.mBodyOffset,
-                address).mWord;
-    }
-
-    private long checkGetTerminalPosition(final DictDecoder dictDecoder, final String word,
-            final boolean contained) {
-        long diff = -1;
-        int position = -1;
-        try {
-            final long now = System.nanoTime();
-            position = dictDecoder.getTerminalPosition(word);
-            diff = System.nanoTime() - now;
-        } catch (IOException e) {
-            Log.e(TAG, "IOException while getTerminalPosition", e);
-        } catch (UnsupportedFormatException e) {
-            Log.e(TAG, "UnsupportedFormatException while getTerminalPosition", e);
-        }
-
-        assertEquals(FormatSpec.NOT_VALID_WORD != position, contained);
-        if (contained) assertEquals(getWordFromBinary(dictDecoder, position), word);
-        return diff;
-    }
-
-    private void runGetTerminalPosition(final ArrayList<String> words,
-            final SparseArray<List<Integer>> bigrams, final int bufferType,
-            final FormatOptions formatOptions, final String message) {
-        final String dictName = "testGetTerminalPosition";
-        final String dictVersion = Long.toString(System.currentTimeMillis());
-        final File file = BinaryDictUtils.getDictFile(dictName, dictVersion, formatOptions,
-                getContext().getCacheDir());
-
-        final FusionDictionary dict = new FusionDictionary(new PtNodeArray(),
-                BinaryDictUtils.makeDictionaryOptions(dictName, dictVersion, formatOptions));
-        addUnigrams(sWords.size(), dict, sWords, null /* shortcutMap */);
-        addBigrams(dict, words, bigrams);
-        timeWritingDictToFile(file, dict, formatOptions);
-
-        final DictDecoder dictDecoder = BinaryDictIOUtils.getDictDecoder(file, 0, file.length(),
-                DictDecoder.USE_BYTEARRAY);
-        try {
-            dictDecoder.openDictBuffer();
-        } catch (IOException e) {
-            Log.e(TAG, "IOException while opening the buffer", e);
-        } catch (UnsupportedFormatException e) {
-            Log.e(TAG, "IOException while opening the buffer", e);
-        }
-        assertTrue("Can't get the buffer", dictDecoder.isDictBufferOpen());
-
-        try {
-            // too long word
-            final String longWord = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz";
-            assertEquals(FormatSpec.NOT_VALID_WORD, dictDecoder.getTerminalPosition(longWord));
-
-            // null
-            assertEquals(FormatSpec.NOT_VALID_WORD, dictDecoder.getTerminalPosition(null));
-
-            // empty string
-            assertEquals(FormatSpec.NOT_VALID_WORD, dictDecoder.getTerminalPosition(""));
-        } catch (IOException e) {
-        } catch (UnsupportedFormatException e) {
-        }
-
-        // Test a word that is contained within the dictionary.
-        long sum = 0;
-        for (int i = 0; i < sWords.size(); ++i) {
-            final long time = checkGetTerminalPosition(dictDecoder, sWords.get(i), true);
-            sum += time == -1 ? 0 : time;
-        }
-        Log.d(TAG, "per search : " + (((double)sum) / sWords.size() / 1000000) + " : " + message
-                + " : " + outputOptions(bufferType, formatOptions));
-
-        // Test a word that isn't contained within the dictionary.
-        final Random random = new Random((int)System.currentTimeMillis());
-        final int[] codePointSet = CodePointUtils.generateCodePointSet(DEFAULT_CODE_POINT_SET_SIZE,
-                random);
-        for (int i = 0; i < 1000; ++i) {
-            final String word = CodePointUtils.generateWord(random, codePointSet);
-            if (sWords.indexOf(word) != -1) continue;
-            checkGetTerminalPosition(dictDecoder, word, false);
-        }
-    }
-
-    private void runGetTerminalPositionTests(final int bufferType,
-            final FormatOptions formatOptions) {
-        runGetTerminalPosition(sWords, sEmptyBigrams, bufferType, formatOptions, "unigram");
-    }
-
-    public void testGetTerminalPosition() {
-        final ArrayList<String> results = new ArrayList<>();
-
-        runGetTerminalPositionTests(BinaryDictUtils.USE_BYTE_ARRAY,
-                BinaryDictUtils.VERSION2_OPTIONS);
-        runGetTerminalPositionTests(BinaryDictUtils.USE_BYTE_BUFFER,
-                BinaryDictUtils.VERSION2_OPTIONS);
-
-        for (final String result : results) {
-            Log.d(TAG, result);
-        }
-    }
-
-    public void testVer2DictGetWordProperty() {
-        final FormatOptions formatOptions = BinaryDictUtils.VERSION2_OPTIONS;
-        final ArrayList<String> words = sWords;
-        final HashMap<String, List<String>> shortcuts = sShortcuts;
-        final String dictName = "testGetWordProperty";
-        final String dictVersion = Long.toString(System.currentTimeMillis());
-        final FusionDictionary dict = new FusionDictionary(new PtNodeArray(),
-                BinaryDictUtils.makeDictionaryOptions(dictName, dictVersion, formatOptions));
-        addUnigrams(words.size(), dict, words, shortcuts);
-        addBigrams(dict, words, sEmptyBigrams);
-        final File file = BinaryDictUtils.getDictFile(dictName, dictVersion, formatOptions,
-                getContext().getCacheDir());
-        file.delete();
-        timeWritingDictToFile(file, dict, formatOptions);
-        final BinaryDictionary binaryDictionary = new BinaryDictionary(file.getAbsolutePath(),
-                0 /* offset */, file.length(), true /* useFullEditDistance */,
-                Locale.ENGLISH, dictName, false /* isUpdatable */);
-        for (final String word : words) {
-            final WordProperty wordProperty = binaryDictionary.getWordProperty(word,
-                    false /* isBeginningOfSentence */);
-            assertEquals(word, wordProperty.mWord);
-            assertEquals(UNIGRAM_FREQ, wordProperty.getProbability());
-            if (shortcuts.containsKey(word)) {
-                assertEquals(shortcuts.get(word).size(), wordProperty.mShortcutTargets.size());
-                final List<String> shortcutList = shortcuts.get(word);
-                assertTrue(wordProperty.mHasShortcuts);
-                for (final WeightedString shortcutTarget : wordProperty.mShortcutTargets) {
-                    assertTrue(shortcutList.contains(shortcutTarget.mWord));
-                    assertEquals(UNIGRAM_FREQ, shortcutTarget.getProbability());
-                    shortcutList.remove(shortcutTarget.mWord);
-                }
-                assertTrue(shortcutList.isEmpty());
-            }
-        }
-    }
-
-    public void testVer2DictIteration() {
-        final FormatOptions formatOptions = BinaryDictUtils.VERSION2_OPTIONS;
-        final ArrayList<String> words = sWords;
-        final HashMap<String, List<String>> shortcuts = sShortcuts;
-        final SparseArray<List<Integer>> bigrams = sEmptyBigrams;
-        final String dictName = "testGetWordProperty";
-        final String dictVersion = Long.toString(System.currentTimeMillis());
-        final FusionDictionary dict = new FusionDictionary(new PtNodeArray(),
-                BinaryDictUtils.makeDictionaryOptions(dictName, dictVersion, formatOptions));
-        addUnigrams(words.size(), dict, words, shortcuts);
-        addBigrams(dict, words, bigrams);
-        final File file = BinaryDictUtils.getDictFile(dictName, dictVersion, formatOptions,
-                getContext().getCacheDir());
-        timeWritingDictToFile(file, dict, formatOptions);
-        Log.d(TAG, file.getAbsolutePath());
-        final BinaryDictionary binaryDictionary = new BinaryDictionary(file.getAbsolutePath(),
-                0 /* offset */, file.length(), true /* useFullEditDistance */,
-                Locale.ENGLISH, dictName, false /* isUpdatable */);
-
-        final HashSet<String> wordSet = new HashSet<>(words);
-        final HashSet<Pair<String, String>> bigramSet = new HashSet<>();
-
-        for (int i = 0; i < words.size(); i++) {
-            final List<Integer> bigramList = bigrams.get(i);
-            if (bigramList != null) {
-                for (final Integer word1Index : bigramList) {
-                    final String word1 = words.get(word1Index);
-                    bigramSet.add(new Pair<>(words.get(i), word1));
-                }
-            }
-        }
-        int token = 0;
-        do {
-            final BinaryDictionary.GetNextWordPropertyResult result =
-                    binaryDictionary.getNextWordProperty(token);
-            final WordProperty wordProperty = result.mWordProperty;
-            final String word0 = wordProperty.mWord;
-            assertEquals(UNIGRAM_FREQ, wordProperty.mProbabilityInfo.mProbability);
-            wordSet.remove(word0);
-            if (shortcuts.containsKey(word0)) {
-                assertEquals(shortcuts.get(word0).size(), wordProperty.mShortcutTargets.size());
-                final List<String> shortcutList = shortcuts.get(word0);
-                assertNotNull(wordProperty.mShortcutTargets);
-                for (final WeightedString shortcutTarget : wordProperty.mShortcutTargets) {
-                    assertTrue(shortcutList.contains(shortcutTarget.mWord));
-                    assertEquals(UNIGRAM_FREQ, shortcutTarget.getProbability());
-                    shortcutList.remove(shortcutTarget.mWord);
-                }
-                assertTrue(shortcutList.isEmpty());
-            }
-            for (int j = 0; j < wordProperty.mBigrams.size(); j++) {
-                final String word1 = wordProperty.mBigrams.get(j).mWord;
-                final Pair<String, String> bigram = new Pair<>(word0, word1);
-                assertTrue(bigramSet.contains(bigram));
-                bigramSet.remove(bigram);
-            }
-            token = result.mNextToken;
-        } while (token != 0);
-        assertTrue(wordSet.isEmpty());
-        assertTrue(bigramSet.isEmpty());
-    }
-}
diff --git a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderUtils.java b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderUtils.java
index 96604a1..be75565 100644
--- a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderUtils.java
+++ b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderUtils.java
@@ -17,11 +17,16 @@
 package com.android.inputmethod.latin.makedict;
 
 import com.android.inputmethod.annotations.UsedForTesting;
+import com.android.inputmethod.latin.makedict.UnsupportedFormatException;
 
 import java.io.File;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.nio.ByteBuffer;
+import java.util.HashMap;
+import java.util.LinkedList;
+
+import javax.annotation.Nonnull;
 
 /**
  * Decodes binary files for a FusionDictionary.
@@ -109,15 +114,20 @@
      * A class grouping utility function for our specific character encoding.
      */
     static final class CharEncoding {
-        private static final int MINIMAL_ONE_BYTE_CHARACTER_VALUE = 0x20;
-        private static final int MAXIMAL_ONE_BYTE_CHARACTER_VALUE = 0xFF;
 
         /**
          * Helper method to find out whether this code fits on one byte
          */
-        private static boolean fitsOnOneByte(final int character) {
-            return character >= MINIMAL_ONE_BYTE_CHARACTER_VALUE
-                    && character <= MAXIMAL_ONE_BYTE_CHARACTER_VALUE;
+        private static boolean fitsOnOneByte(final int character,
+                final HashMap<Integer, Integer> codePointToOneByteCodeMap) {
+            int codePoint = character;
+            if (codePointToOneByteCodeMap != null) {
+                if (codePointToOneByteCodeMap.containsKey(character)) {
+                    codePoint = codePointToOneByteCodeMap.get(character);
+                }
+            }
+            return codePoint >= FormatSpec.MINIMAL_ONE_BYTE_CHARACTER_VALUE
+                    && codePoint <= FormatSpec.MAXIMAL_ONE_BYTE_CHARACTER_VALUE;
         }
 
         /**
@@ -137,9 +147,10 @@
          * @param character the character code.
          * @return the size in binary encoded-form, either 1 or 3 bytes.
          */
-        static int getCharSize(final int character) {
+        static int getCharSize(final int character,
+                final HashMap<Integer, Integer> codePointToOneByteCodeMap) {
             // See char encoding in FusionDictionary.java
-            if (fitsOnOneByte(character)) return 1;
+            if (fitsOnOneByte(character, codePointToOneByteCodeMap)) return 1;
             if (FormatSpec.INVALID_CHARACTER == character) return 1;
             return 3;
         }
@@ -147,9 +158,10 @@
         /**
          * Compute the byte size of a character array.
          */
-        static int getCharArraySize(final int[] chars) {
+        static int getCharArraySize(final int[] chars,
+                final HashMap<Integer, Integer> codePointToOneByteCodeMap) {
             int size = 0;
-            for (int character : chars) size += getCharSize(character);
+            for (int character : chars) size += getCharSize(character, codePointToOneByteCodeMap);
             return size;
         }
 
@@ -158,12 +170,21 @@
          *
          * @param codePoints the code point array to write.
          * @param buffer the byte buffer to write to.
-         * @param index the index in buffer to write the character array to.
+         * @param fromIndex the index in buffer to write the character array to.
+         * @param codePointToOneByteCodeMap the map to convert the code point.
          * @return the index after the last character.
          */
-        static int writeCharArray(final int[] codePoints, final byte[] buffer, int index) {
+        static int writeCharArray(final int[] codePoints, final byte[] buffer, final int fromIndex,
+                final HashMap<Integer, Integer> codePointToOneByteCodeMap) {
+            int index = fromIndex;
             for (int codePoint : codePoints) {
-                if (1 == getCharSize(codePoint)) {
+                if (codePointToOneByteCodeMap != null) {
+                    if (codePointToOneByteCodeMap.containsKey(codePoint)) {
+                        // Convert code points
+                        codePoint = codePointToOneByteCodeMap.get(codePoint);
+                    }
+                }
+                if (1 == getCharSize(codePoint, codePointToOneByteCodeMap)) {
                     buffer[index++] = (byte)codePoint;
                 } else {
                     buffer[index++] = (byte)(0xFF & (codePoint >> 16));
@@ -184,12 +205,19 @@
          * @param word the string to write.
          * @return the size written, in bytes.
          */
-        static int writeString(final byte[] buffer, final int origin, final String word) {
+        static int writeString(final byte[] buffer, final int origin, final String word,
+                final HashMap<Integer, Integer> codePointToOneByteCodeMap) {
             final int length = word.length();
             int index = origin;
             for (int i = 0; i < length; i = word.offsetByCodePoints(i, 1)) {
-                final int codePoint = word.codePointAt(i);
-                if (1 == getCharSize(codePoint)) {
+                int codePoint = word.codePointAt(i);
+                if (codePointToOneByteCodeMap != null) {
+                    if (codePointToOneByteCodeMap.containsKey(codePoint)) {
+                        // Convert code points
+                        codePoint = codePointToOneByteCodeMap.get(codePoint);
+                    }
+                }
+                if (1 == getCharSize(codePoint, codePointToOneByteCodeMap)) {
                     buffer[index++] = (byte)codePoint;
                 } else {
                     buffer[index++] = (byte)(0xFF & (codePoint >> 16));
@@ -210,12 +238,13 @@
          * @param word the string to write.
          * @return the size written, in bytes.
          */
-        static int writeString(final OutputStream stream, final String word) throws IOException {
+        static int writeString(final OutputStream stream, final String word,
+                final HashMap<Integer, Integer> codePointToOneByteCodeMap) throws IOException {
             final int length = word.length();
             int written = 0;
             for (int i = 0; i < length; i = word.offsetByCodePoints(i, 1)) {
                 final int codePoint = word.codePointAt(i);
-                final int charSize = getCharSize(codePoint);
+                final int charSize = getCharSize(codePoint, codePointToOneByteCodeMap);
                 if (1 == charSize) {
                     stream.write((byte) codePoint);
                 } else {
@@ -253,7 +282,7 @@
          */
         static int readChar(final DictBuffer dictBuffer) {
             int character = dictBuffer.readUnsignedByte();
-            if (!fitsOnOneByte(character)) {
+            if (!fitsOnOneByte(character, null)) {
                 if (FormatSpec.PTNODE_CHARACTERS_TERMINATOR == character) {
                     return FormatSpec.INVALID_CHARACTER;
                 }
@@ -271,10 +300,9 @@
         final int msb = dictBuffer.readUnsignedByte();
         if (FormatSpec.MAX_PTNODES_FOR_ONE_BYTE_PTNODE_COUNT >= msb) {
             return msb;
-        } else {
-            return ((FormatSpec.MAX_PTNODES_FOR_ONE_BYTE_PTNODE_COUNT & msb) << 8)
-                    + dictBuffer.readUnsignedByte();
         }
+        return ((FormatSpec.MAX_PTNODES_FOR_ONE_BYTE_PTNODE_COUNT & msb) << 8)
+                + dictBuffer.readUnsignedByte();
     }
 
     /**
@@ -338,6 +366,43 @@
     }
 
     /**
+     * Helper method that brutally decodes a header from a byte array.
+     *
+     * @param headerBuffer a buffer containing the bytes of the header.
+     * @return a hashmap of the attributes stored in the header
+     */
+    @Nonnull
+    public static HashMap<String, String> decodeHeaderAttributes(@Nonnull final byte[] headerBuffer)
+            throws UnsupportedFormatException {
+        final StringBuilder sb = new StringBuilder();
+        final LinkedList<String> keyValues = new LinkedList<>();
+        int index = 0;
+        while (index < headerBuffer.length) {
+            if (headerBuffer[index] == FormatSpec.PTNODE_CHARACTERS_TERMINATOR) {
+                keyValues.add(sb.toString());
+                sb.setLength(0);
+            } else if (CharEncoding.fitsOnOneByte(headerBuffer[index] & 0xFF,
+                    null /* codePointTable */)) {
+                sb.appendCodePoint(headerBuffer[index] & 0xFF);
+            } else {
+                sb.appendCodePoint(((headerBuffer[index] & 0xFF) << 16)
+                        + ((headerBuffer[index + 1] & 0xFF) << 8)
+                        + (headerBuffer[index + 2] & 0xFF));
+                index += 2;
+            }
+            index += 1;
+        }
+        if ((keyValues.size() & 1) != 0) {
+            throw new UnsupportedFormatException("Odd number of attributes");
+        }
+        final HashMap<String, String> attributes = new HashMap<>();
+        for (int i = 0; i < keyValues.size(); i += 2) {
+            attributes.put(keyValues.get(i), keyValues.get(i + 1));
+        }
+        return attributes;
+    }
+
+    /**
      * Helper method to pass a file name instead of a File object to isBinaryDictionary.
      */
     public static boolean isBinaryDictionary(final String filename) {
diff --git a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictEncoderUtils.java b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictEncoderUtils.java
index eabd8d7..bd51365 100644
--- a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictEncoderUtils.java
+++ b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictEncoderUtils.java
@@ -16,9 +16,7 @@
 
 package com.android.inputmethod.latin.makedict;
 
-import com.android.inputmethod.annotations.UsedForTesting;
 import com.android.inputmethod.latin.makedict.BinaryDictDecoderUtils.CharEncoding;
-import com.android.inputmethod.latin.makedict.BinaryDictDecoderUtils.DictBuffer;
 import com.android.inputmethod.latin.makedict.FormatSpec.FormatOptions;
 import com.android.inputmethod.latin.makedict.FusionDictionary.PtNode;
 import com.android.inputmethod.latin.makedict.FusionDictionary.PtNodeArray;
@@ -27,6 +25,8 @@
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map.Entry;
 
 /**
  * Encodes binary files for a FusionDictionary.
@@ -59,8 +59,9 @@
      * @param characters the character array
      * @return the size of the char array, including the terminator if any
      */
-    static int getPtNodeCharactersSize(final int[] characters) {
-        int size = CharEncoding.getCharArraySize(characters);
+    static int getPtNodeCharactersSize(final int[] characters,
+            final HashMap<Integer, Integer> codePointToOneByteCodeMap) {
+        int size = CharEncoding.getCharArraySize(characters, codePointToOneByteCodeMap);
         if (characters.length > 1) size += FormatSpec.PTNODE_TERMINATOR_SIZE;
         return size;
     }
@@ -74,8 +75,9 @@
      * @param ptNode the PtNode
      * @return the size of the char array, including the terminator if any
      */
-    private static int getPtNodeCharactersSize(final PtNode ptNode) {
-        return getPtNodeCharactersSize(ptNode.mChars);
+    private static int getPtNodeCharactersSize(final PtNode ptNode,
+            final HashMap<Integer, Integer> codePointToOneByteCodeMap) {
+        return getPtNodeCharactersSize(ptNode.mChars, codePointToOneByteCodeMap);
     }
 
     /**
@@ -88,49 +90,19 @@
     }
 
     /**
-     * Compute the size of a shortcut in bytes.
-     */
-    private static int getShortcutSize(final WeightedString shortcut) {
-        int size = FormatSpec.PTNODE_ATTRIBUTE_FLAGS_SIZE;
-        final String word = shortcut.mWord;
-        final int length = word.length();
-        for (int i = 0; i < length; i = word.offsetByCodePoints(i, 1)) {
-            final int codePoint = word.codePointAt(i);
-            size += CharEncoding.getCharSize(codePoint);
-        }
-        size += FormatSpec.PTNODE_TERMINATOR_SIZE;
-        return size;
-    }
-
-    /**
-     * Compute the size of a shortcut list in bytes.
-     *
-     * This is known in advance and does not change according to position in the file
-     * like address lists do.
-     */
-    static int getShortcutListSize(final ArrayList<WeightedString> shortcutList) {
-        if (null == shortcutList || shortcutList.isEmpty()) return 0;
-        int size = FormatSpec.PTNODE_SHORTCUT_LIST_SIZE_SIZE;
-        for (final WeightedString shortcut : shortcutList) {
-            size += getShortcutSize(shortcut);
-        }
-        return size;
-    }
-
-    /**
      * Compute the maximum size of a PtNode, assuming 3-byte addresses for everything.
      *
      * @param ptNode the PtNode to compute the size of.
      * @return the maximum size of the PtNode.
      */
-    private static int getPtNodeMaximumSize(final PtNode ptNode) {
-        int size = getNodeHeaderSize(ptNode);
+    private static int getPtNodeMaximumSize(final PtNode ptNode,
+            final HashMap<Integer, Integer> codePointToOneByteCodeMap) {
+        int size = getNodeHeaderSize(ptNode, codePointToOneByteCodeMap);
         if (ptNode.isTerminal()) {
             // If terminal, one byte for the frequency.
             size += FormatSpec.PTNODE_FREQUENCY_SIZE;
         }
         size += FormatSpec.PTNODE_MAX_ADDRESS_SIZE; // For children address
-        size += getShortcutListSize(ptNode.mShortcutTargets);
         if (null != ptNode.mBigrams) {
             size += (FormatSpec.PTNODE_ATTRIBUTE_FLAGS_SIZE
                     + FormatSpec.PTNODE_ATTRIBUTE_MAX_ADDRESS_SIZE)
@@ -146,10 +118,11 @@
      *
      * @param ptNodeArray the node array to compute the maximum size of.
      */
-    private static void calculatePtNodeArrayMaximumSize(final PtNodeArray ptNodeArray) {
+    private static void calculatePtNodeArrayMaximumSize(final PtNodeArray ptNodeArray,
+            final HashMap<Integer, Integer> codePointToOneByteCodeMap) {
         int size = getPtNodeCountSize(ptNodeArray);
         for (PtNode node : ptNodeArray.mData) {
-            final int nodeSize = getPtNodeMaximumSize(node);
+            final int nodeSize = getPtNodeMaximumSize(node, codePointToOneByteCodeMap);
             node.mCachedSize = nodeSize;
             size += nodeSize;
         }
@@ -161,8 +134,10 @@
      *
      * @param ptNode the PtNode of which to compute the size of the header
      */
-    private static int getNodeHeaderSize(final PtNode ptNode) {
-        return FormatSpec.PTNODE_FLAGS_SIZE + getPtNodeCharactersSize(ptNode);
+    private static int getNodeHeaderSize(final PtNode ptNode,
+            final HashMap<Integer, Integer> codePointToOneByteCodeMap) {
+        return FormatSpec.PTNODE_FLAGS_SIZE + getPtNodeCharactersSize(ptNode,
+                codePointToOneByteCodeMap);
     }
 
     /**
@@ -188,8 +163,9 @@
         }
     }
 
-    static int writeUIntToBuffer(final byte[] buffer, int position, final int value,
+    static int writeUIntToBuffer(final byte[] buffer, final int fromPosition, final int value,
             final int size) {
+        int position = fromPosition;
         switch(size) {
             case 4:
                 buffer[position++] = (byte) ((value >> 24) & 0xFF);
@@ -229,27 +205,6 @@
         }
     }
 
-    @UsedForTesting
-    static void writeUIntToDictBuffer(final DictBuffer dictBuffer, final int value,
-            final int size) {
-        switch(size) {
-            case 4:
-                dictBuffer.put((byte) ((value >> 24) & 0xFF));
-                /* fall through */
-            case 3:
-                dictBuffer.put((byte) ((value >> 16) & 0xFF));
-                /* fall through */
-            case 2:
-                dictBuffer.put((byte) ((value >> 8) & 0xFF));
-                /* fall through */
-            case 1:
-                dictBuffer.put((byte) (value & 0xFF));
-                break;
-            default:
-                /* nop */
-        }
-    }
-
     // End utility methods
 
     // This method is responsible for finding a nice ordering of the nodes that favors run-time
@@ -313,11 +268,9 @@
             return targetNodeArray.mCachedAddressAfterUpdate
                     - (currentNodeArray.mCachedAddressAfterUpdate
                             + offsetFromStartOfCurrentNodeArray);
-        } else {
-            return targetNodeArray.mCachedAddressBeforeUpdate
-                    - (currentNodeArray.mCachedAddressBeforeUpdate
-                            + offsetFromStartOfCurrentNodeArray);
         }
+        return targetNodeArray.mCachedAddressBeforeUpdate
+                - (currentNodeArray.mCachedAddressBeforeUpdate + offsetFromStartOfCurrentNodeArray);
     }
 
     /**
@@ -345,9 +298,8 @@
             final int newOffsetBasePoint = currentNodeArray.mCachedAddressAfterUpdate
                     + offsetFromStartOfCurrentNodeArray;
             return targetPtNode.mCachedAddressAfterUpdate - newOffsetBasePoint;
-        } else {
-            return targetPtNode.mCachedAddressBeforeUpdate - oldOffsetBasePoint;
         }
+        return targetPtNode.mCachedAddressBeforeUpdate - oldOffsetBasePoint;
     }
 
     /**
@@ -365,7 +317,8 @@
      * @return false if none of the cached addresses inside the node array changed, true otherwise.
      */
     private static boolean computeActualPtNodeArraySize(final PtNodeArray ptNodeArray,
-            final FusionDictionary dict) {
+            final FusionDictionary dict,
+            final HashMap<Integer, Integer> codePointToOneByteCodeMap) {
         boolean changed = false;
         int size = getPtNodeCountSize(ptNodeArray);
         for (PtNode ptNode : ptNodeArray.mData) {
@@ -373,7 +326,7 @@
             if (ptNode.mCachedAddressAfterUpdate != ptNode.mCachedAddressBeforeUpdate) {
                 changed = true;
             }
-            int nodeSize = getNodeHeaderSize(ptNode);
+            int nodeSize = getNodeHeaderSize(ptNode, codePointToOneByteCodeMap);
             if (ptNode.isTerminal()) {
                 nodeSize += FormatSpec.PTNODE_FREQUENCY_SIZE;
             }
@@ -381,7 +334,6 @@
                 nodeSize += getByteSize(getOffsetToTargetNodeArrayDuringUpdate(ptNodeArray,
                         nodeSize + size, ptNode.mChildren));
             }
-            nodeSize += getShortcutListSize(ptNode.mShortcutTargets);
             if (null != ptNode.mBigrams) {
                 for (WeightedString bigram : ptNode.mBigrams) {
                     final int offset = getOffsetToTargetPtNodeDuringUpdate(ptNodeArray,
@@ -452,10 +404,11 @@
      * @return the same array it was passed. The nodes have been updated for address and size.
      */
     /* package */ static ArrayList<PtNodeArray> computeAddresses(final FusionDictionary dict,
-            final ArrayList<PtNodeArray> flatNodes) {
+            final ArrayList<PtNodeArray> flatNodes,
+            final HashMap<Integer, Integer> codePointToOneByteCodeMap) {
         // First get the worst possible sizes and offsets
         for (final PtNodeArray n : flatNodes) {
-            calculatePtNodeArrayMaximumSize(n);
+            calculatePtNodeArrayMaximumSize(n, codePointToOneByteCodeMap);
         }
         final int offset = initializePtNodeArraysCachedAddresses(flatNodes);
 
@@ -470,7 +423,8 @@
             for (final PtNodeArray ptNodeArray : flatNodes) {
                 ptNodeArray.mCachedAddressAfterUpdate = ptNodeArrayStartOffset;
                 final int oldNodeArraySize = ptNodeArray.mCachedSize;
-                final boolean changed = computeActualPtNodeArraySize(ptNodeArray, dict);
+                final boolean changed = computeActualPtNodeArraySize(ptNodeArray, dict,
+                        codePointToOneByteCodeMap);
                 final int newNodeArraySize = ptNodeArray.mCachedSize;
                 if (oldNodeArraySize < newNodeArraySize) {
                     throw new RuntimeException("Increased size ?!");
@@ -521,12 +475,13 @@
      * Helper method to write a children position to a file.
      *
      * @param buffer the buffer to write to.
-     * @param index the index in the buffer to write the address to.
+     * @param fromIndex the index in the buffer to write the address to.
      * @param position the position to write.
      * @return the size in bytes the address actually took.
      */
-    /* package */ static int writeChildrenPosition(final byte[] buffer, int index,
+    /* package */ static int writeChildrenPosition(final byte[] buffer, final int fromIndex,
             final int position) {
+        int index = fromIndex;
         switch (getByteSize(position)) {
         case 1:
             buffer[index++] = (byte)position;
@@ -548,42 +503,19 @@
     }
 
     /**
-     * Helper method to write a signed children position to a file.
-     *
-     * @param buffer the buffer to write to.
-     * @param index the index in the buffer to write the address to.
-     * @param position the position to write.
-     * @return the size in bytes the address actually took.
-     */
-    /* package */ static int writeSignedChildrenPosition(final byte[] buffer, int index,
-            final int position) {
-        if (!BinaryDictIOUtils.hasChildrenAddress(position)) {
-            buffer[index] = buffer[index + 1] = buffer[index + 2] = 0;
-        } else {
-            final int absPosition = Math.abs(position);
-            buffer[index++] =
-                    (byte)((position < 0 ? FormatSpec.MSB8 : 0) | (0xFF & (absPosition >> 16)));
-            buffer[index++] = (byte)(0xFF & (absPosition >> 8));
-            buffer[index++] = (byte)(0xFF & absPosition);
-        }
-        return 3;
-    }
-
-    /**
      * Makes the flag value for a PtNode.
      *
      * @param hasMultipleChars whether the PtNode has multiple chars.
      * @param isTerminal whether the PtNode is terminal.
      * @param childrenAddressSize the size of a children address.
-     * @param hasShortcuts whether the PtNode has shortcuts.
      * @param hasBigrams whether the PtNode has bigrams.
      * @param isNotAWord whether the PtNode is not a word.
-     * @param isBlackListEntry whether the PtNode is a blacklist entry.
+     * @param isPossiblyOffensive whether the PtNode is a possibly offensive entry.
      * @return the flags
      */
     static int makePtNodeFlags(final boolean hasMultipleChars, final boolean isTerminal,
-            final int childrenAddressSize, final boolean hasShortcuts, final boolean hasBigrams,
-            final boolean isNotAWord, final boolean isBlackListEntry) {
+            final int childrenAddressSize, final boolean hasBigrams,
+            final boolean isNotAWord, final boolean isPossiblyOffensive) {
         byte flags = 0;
         if (hasMultipleChars) flags |= FormatSpec.FLAG_HAS_MULTIPLE_CHARS;
         if (isTerminal) flags |= FormatSpec.FLAG_IS_TERMINAL;
@@ -603,19 +535,17 @@
             default:
                 throw new RuntimeException("Node with a strange address");
         }
-        if (hasShortcuts) flags |= FormatSpec.FLAG_HAS_SHORTCUT_TARGETS;
         if (hasBigrams) flags |= FormatSpec.FLAG_HAS_BIGRAMS;
         if (isNotAWord) flags |= FormatSpec.FLAG_IS_NOT_A_WORD;
-        if (isBlackListEntry) flags |= FormatSpec.FLAG_IS_BLACKLISTED;
+        if (isPossiblyOffensive) flags |= FormatSpec.FLAG_IS_POSSIBLY_OFFENSIVE;
         return flags;
     }
 
     /* package */ static byte makePtNodeFlags(final PtNode node, final int childrenOffset) {
         return (byte) makePtNodeFlags(node.mChars.length > 1, node.isTerminal(),
                 getByteSize(childrenOffset),
-                node.mShortcutTargets != null && !node.mShortcutTargets.isEmpty(),
                 node.mBigrams != null && !node.mBigrams.isEmpty(),
-                node.mIsNotAWord, node.mIsBlacklistEntry);
+                node.mIsNotAWord, node.mIsPossiblyOffensive);
     }
 
     /**
@@ -628,8 +558,8 @@
      * @param word the second bigram, for debugging purposes
      * @return the flags
      */
-    /* package */ static final int makeBigramFlags(final boolean more, final int offset,
-            int bigramFrequency, final int unigramFrequency, final String word) {
+    /* package */ static int makeBigramFlags(final boolean more, final int offset,
+            final int bigramFrequency, final int unigramFrequency, final String word) {
         int bigramFlags = (more ? FormatSpec.FLAG_BIGRAM_SHORTCUT_ATTR_HAS_NEXT : 0)
                 + (offset < 0 ? FormatSpec.FLAG_BIGRAM_ATTR_OFFSET_NEGATIVE : 0);
         switch (getByteSize(offset)) {
@@ -645,13 +575,16 @@
         default:
             throw new RuntimeException("Strange offset size");
         }
+        final int frequency;
         if (unigramFrequency > bigramFrequency) {
             MakedictLog.e("Unigram freq is superior to bigram freq for \"" + word
                     + "\". Bigram freq is " + bigramFrequency + ", unigram freq for "
                     + word + " is " + unigramFrequency);
-            bigramFrequency = unigramFrequency;
+            frequency = unigramFrequency;
+        } else {
+            frequency = bigramFrequency;
         }
-        bigramFlags += getBigramFrequencyDiff(unigramFrequency, bigramFrequency)
+        bigramFlags += getBigramFrequencyDiff(unigramFrequency, frequency)
                 & FormatSpec.FLAG_BIGRAM_SHORTCUT_ATTR_FREQUENCY;
         return bigramFlags;
     }
@@ -694,21 +627,10 @@
         return discretizedFrequency > 0 ? discretizedFrequency : 0;
     }
 
-    /**
-     * Makes the flag value for a shortcut.
-     *
-     * @param more whether there are more attributes after this one.
-     * @param frequency the frequency of the attribute, 0..15
-     * @return the flags
-     */
-    static final int makeShortcutFlags(final boolean more, final int frequency) {
-        return (more ? FormatSpec.FLAG_BIGRAM_SHORTCUT_ATTR_HAS_NEXT : 0)
-                + (frequency & FormatSpec.FLAG_BIGRAM_SHORTCUT_ATTR_FREQUENCY);
-    }
-
-    /* package */ static final int getChildrenPosition(final PtNode ptNode) {
+    /* package */ static int getChildrenPosition(final PtNode ptNode,
+            final HashMap<Integer, Integer> codePointToOneByteCodeMap) {
         int positionOfChildrenPosField = ptNode.mCachedAddressAfterUpdate
-                + getNodeHeaderSize(ptNode);
+                + getNodeHeaderSize(ptNode, codePointToOneByteCodeMap);
         if (ptNode.isTerminal()) {
             // A terminal node has the frequency.
             // If positionOfChildrenPosField is incorrect, we may crash when jumping to the children
@@ -725,19 +647,16 @@
      * @param dict the dictionary the node array is a part of (for relative offsets).
      * @param dictEncoder the dictionary encoder.
      * @param ptNodeArray the node array to write.
+     * @param codePointToOneByteCodeMap the map to convert the code points.
      */
-    @SuppressWarnings("unused")
     /* package */ static void writePlacedPtNodeArray(final FusionDictionary dict,
-            final DictEncoder dictEncoder, final PtNodeArray ptNodeArray) {
+            final DictEncoder dictEncoder, final PtNodeArray ptNodeArray,
+            final HashMap<Integer, Integer> codePointToOneByteCodeMap) {
         // TODO: Make the code in common with BinaryDictIOUtils#writePtNode
         dictEncoder.setPosition(ptNodeArray.mCachedAddressAfterUpdate);
 
         final int ptNodeCount = ptNodeArray.mData.size();
         dictEncoder.writePtNodeCount(ptNodeCount);
-        final int parentPosition =
-                (ptNodeArray.mCachedParentAddress == FormatSpec.NO_PARENT_ADDRESS)
-                ? FormatSpec.NO_PARENT_ADDRESS
-                : ptNodeArray.mCachedParentAddress + ptNodeArray.mCachedAddressAfterUpdate;
         for (int i = 0; i < ptNodeCount; ++i) {
             final PtNode ptNode = ptNodeArray.mData.get(i);
             if (dictEncoder.getPosition() != ptNode.mCachedAddressAfterUpdate) {
@@ -751,7 +670,7 @@
                         + FormatSpec.MAX_TERMINAL_FREQUENCY
                         + " : " + ptNode.mProbabilityInfo.toString());
             }
-            dictEncoder.writePtNode(ptNode, dict);
+            dictEncoder.writePtNode(ptNode, dict, codePointToOneByteCodeMap);
         }
         if (dictEncoder.getPosition() != ptNodeArray.mCachedAddressAfterUpdate
                 + ptNodeArray.mCachedSize) {
@@ -817,18 +736,26 @@
      * @param destination the stream to write the file header to.
      * @param dict the dictionary to write.
      * @param formatOptions file format options.
+     * @param codePointOccurrenceArray code points ordered by occurrence count.
      * @return the size of the header.
      */
     /* package */ static int writeDictionaryHeader(final OutputStream destination,
-            final FusionDictionary dict, final FormatOptions formatOptions)
+            final FusionDictionary dict, final FormatOptions formatOptions,
+            final ArrayList<Entry<Integer, Integer>> codePointOccurrenceArray)
                     throws IOException, UnsupportedFormatException {
         final int version = formatOptions.mVersion;
-        if (version < FormatSpec.MINIMUM_SUPPORTED_VERSION
-                || version > FormatSpec.MAXIMUM_SUPPORTED_VERSION) {
+        if ((version >= FormatSpec.MINIMUM_SUPPORTED_STATIC_VERSION &&
+                version <= FormatSpec.MAXIMUM_SUPPORTED_STATIC_VERSION) || (
+                version >= FormatSpec.MINIMUM_SUPPORTED_DYNAMIC_VERSION &&
+                version <= FormatSpec.MAXIMUM_SUPPORTED_DYNAMIC_VERSION)) {
+            // Dictionary is valid
+        } else {
             throw new UnsupportedFormatException("Requested file format version " + version
-                    + ", but this implementation only supports versions "
-                    + FormatSpec.MINIMUM_SUPPORTED_VERSION + " through "
-                    + FormatSpec.MAXIMUM_SUPPORTED_VERSION);
+                    + ", but this implementation only supports static versions "
+                    + FormatSpec.MINIMUM_SUPPORTED_STATIC_VERSION + " through "
+                    + FormatSpec.MAXIMUM_SUPPORTED_STATIC_VERSION + " and dynamic versions "
+                    + FormatSpec.MINIMUM_SUPPORTED_DYNAMIC_VERSION + " through "
+                    + FormatSpec.MAXIMUM_SUPPORTED_DYNAMIC_VERSION);
         }
 
         ByteArrayOutputStream headerBuffer = new ByteArrayOutputStream(256);
@@ -856,8 +783,15 @@
         // Write out the options.
         for (final String key : dict.mOptions.mAttributes.keySet()) {
             final String value = dict.mOptions.mAttributes.get(key);
-            CharEncoding.writeString(headerBuffer, key);
-            CharEncoding.writeString(headerBuffer, value);
+            CharEncoding.writeString(headerBuffer, key, null);
+            CharEncoding.writeString(headerBuffer, value, null);
+        }
+        // Write out the codePointTable if there is codePointOccurrenceArray.
+        if (codePointOccurrenceArray != null) {
+            final String codePointTableString =
+                    encodeCodePointTable(codePointOccurrenceArray);
+            CharEncoding.writeString(headerBuffer, DictionaryHeader.CODE_POINT_TABLE_KEY, null);
+            CharEncoding.writeString(headerBuffer, codePointTableString, null);
         }
         final int size = headerBuffer.size();
         final byte[] bytes = headerBuffer.toByteArray();
@@ -871,4 +805,35 @@
         headerBuffer.close();
         return size;
     }
+
+    static final class CodePointTable {
+        final HashMap<Integer, Integer> mCodePointToOneByteCodeMap;
+        final ArrayList<Entry<Integer, Integer>> mCodePointOccurrenceArray;
+
+        // Let code point table empty for version 200 dictionary which used in test
+        CodePointTable() {
+            mCodePointToOneByteCodeMap = null;
+            mCodePointOccurrenceArray = null;
+        }
+
+        CodePointTable(final HashMap<Integer, Integer> codePointToOneByteCodeMap,
+                final ArrayList<Entry<Integer, Integer>> codePointOccurrenceArray) {
+            mCodePointToOneByteCodeMap = codePointToOneByteCodeMap;
+            mCodePointOccurrenceArray = codePointOccurrenceArray;
+        }
+    }
+
+    private static String encodeCodePointTable(
+            final ArrayList<Entry<Integer, Integer>> codePointOccurrenceArray) {
+        final StringBuilder codePointTableString = new StringBuilder();
+        int currentCodePointTableIndex = FormatSpec.MINIMAL_ONE_BYTE_CHARACTER_VALUE;
+        for (final Entry<Integer, Integer> entry : codePointOccurrenceArray) {
+            // Native reads the table as a string
+            codePointTableString.appendCodePoint(entry.getKey());
+            if (FormatSpec.MAXIMAL_ONE_BYTE_CHARACTER_VALUE < ++currentCodePointTableIndex) {
+                break;
+            }
+        }
+        return codePointTableString.toString();
+    }
 }
diff --git a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictIOUtils.java b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictIOUtils.java
index 9c3b373..da1b32a 100644
--- a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictIOUtils.java
+++ b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictIOUtils.java
@@ -17,7 +17,7 @@
 package com.android.inputmethod.latin.makedict;
 
 import com.android.inputmethod.annotations.UsedForTesting;
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.define.DecoderSpecificConstants;
 import com.android.inputmethod.latin.makedict.DictDecoder.DictionaryBufferFactory;
 
 import java.io.File;
@@ -43,22 +43,12 @@
      */
     public static DictDecoder getDictDecoder(final File dictFile, final long offset,
             final long length, final int bufferType) {
-        if (dictFile.isDirectory()) {
-            return new Ver4DictDecoder(dictFile, bufferType);
-        } else if (dictFile.isFile()) {
-            return new Ver2DictDecoder(dictFile, offset, length, bufferType);
-        }
-        return null;
+        return new Ver4DictDecoder(dictFile);
     }
 
     public static DictDecoder getDictDecoder(final File dictFile, final long offset,
             final long length, final DictionaryBufferFactory factory) {
-        if (dictFile.isDirectory()) {
-            return new Ver4DictDecoder(dictFile, factory);
-        } else if (dictFile.isFile()) {
-            return new Ver2DictDecoder(dictFile, offset, length, factory);
-        }
-        return null;
+        return new Ver4DictDecoder(dictFile);
     }
 
     public static DictDecoder getDictDecoder(final File dictFile, final long offset,
@@ -183,7 +173,7 @@
         dictDecoder.readHeader();
         int wordPos = 0;
         final int wordLen = word.codePointCount(0, word.length());
-        for (int depth = 0; depth < Constants.DICTIONARY_MAX_WORD_LENGTH; ++depth) {
+        for (int depth = 0; depth < DecoderSpecificConstants.DICTIONARY_MAX_WORD_LENGTH; ++depth) {
             if (wordPos >= wordLen) return FormatSpec.NOT_VALID_WORD;
 
             do {
@@ -206,11 +196,7 @@
                     if (same) {
                         // found the PtNode matches the word.
                         if (wordPos + currentInfo.mCharacters.length == wordLen) {
-                            if (!currentInfo.isTerminal()) {
-                                return FormatSpec.NOT_VALID_WORD;
-                            } else {
-                                return ptNodePos;
-                            }
+                            return currentInfo.isTerminal() ? ptNodePos : FormatSpec.NOT_VALID_WORD;
                         }
                         wordPos += currentInfo.mCharacters.length;
                         if (currentInfo.mChildrenAddress == FormatSpec.NO_CHILDREN_ADDRESS) {
diff --git a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictUtils.java b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictUtils.java
deleted file mode 100644
index 5a3eba8..0000000
--- a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictUtils.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.makedict;
-
-import com.android.inputmethod.latin.makedict.FormatSpec.DictionaryOptions;
-import com.android.inputmethod.latin.makedict.FormatSpec.FormatOptions;
-
-import java.io.File;
-import java.util.HashMap;
-
-public class BinaryDictUtils {
-    public static final int USE_BYTE_ARRAY = 1;
-    public static final int USE_BYTE_BUFFER = 2;
-
-    public static final String TEST_DICT_FILE_EXTENSION = ".testDict";
-
-    public static final FormatSpec.FormatOptions VERSION2_OPTIONS =
-            new FormatSpec.FormatOptions(FormatSpec.VERSION2);
-    public static final FormatSpec.FormatOptions VERSION4_OPTIONS_WITHOUT_TIMESTAMP =
-            new FormatSpec.FormatOptions(FormatSpec.VERSION4, false /* hasTimestamp */);
-    public static final FormatSpec.FormatOptions VERSION4_OPTIONS_WITH_TIMESTAMP =
-            new FormatSpec.FormatOptions(FormatSpec.VERSION4, true /* hasTimestamp */);
-
-    public static DictionaryOptions makeDictionaryOptions(final String id, final String version,
-            final FormatSpec.FormatOptions formatOptions) {
-        final DictionaryOptions options = new DictionaryOptions(new HashMap<String, String>());
-        options.mAttributes.put(DictionaryHeader.DICTIONARY_LOCALE_KEY, "en_US");
-        options.mAttributes.put(DictionaryHeader.DICTIONARY_ID_KEY, id);
-        options.mAttributes.put(DictionaryHeader.DICTIONARY_VERSION_KEY, version);
-        if (formatOptions.mHasTimestamp) {
-            options.mAttributes.put(DictionaryHeader.HAS_HISTORICAL_INFO_KEY,
-                    DictionaryHeader.ATTRIBUTE_VALUE_TRUE);
-            options.mAttributes.put(DictionaryHeader.USES_FORGETTING_CURVE_KEY,
-                    DictionaryHeader.ATTRIBUTE_VALUE_TRUE);
-        }
-        return options;
-    }
-
-    public static File getDictFile(final String name, final String version,
-            final FormatOptions formatOptions, final File directory) {
-        if (formatOptions.mVersion == FormatSpec.VERSION2) {
-            return new File(directory, name + "." + version + TEST_DICT_FILE_EXTENSION);
-        } else if (formatOptions.mVersion == FormatSpec.VERSION4) {
-            return new File(directory, name + "." + version);
-        } else {
-            throw new RuntimeException("the format option has a wrong version : "
-                    + formatOptions.mVersion);
-        }
-    }
-
-    public static DictEncoder getDictEncoder(final File file, final FormatOptions formatOptions) {
-        if (formatOptions.mVersion == FormatSpec.VERSION4) {
-            if (!file.isDirectory()) {
-                file.mkdir();
-            }
-            return new Ver4DictEncoder(file);
-        } else if (formatOptions.mVersion == FormatSpec.VERSION2) {
-            return new Ver2DictEncoder(file);
-        } else {
-            throw new RuntimeException("The format option has a wrong version : "
-                    + formatOptions.mVersion);
-        }
-    }
-}
diff --git a/tests/src/com/android/inputmethod/latin/makedict/CodePointUtils.java b/tests/src/com/android/inputmethod/latin/makedict/CodePointUtils.java
deleted file mode 100644
index a270ee7..0000000
--- a/tests/src/com/android/inputmethod/latin/makedict/CodePointUtils.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.makedict;
-
-import java.util.Random;
-
-// Utility methods related with code points used for tests.
-public class CodePointUtils {
-    private CodePointUtils() {
-        // This utility class is not publicly instantiable.
-    }
-
-    public static final int[] LATIN_ALPHABETS_LOWER = {
-        'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
-        'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
-        0x00E0 /* LATIN SMALL LETTER A WITH GRAVE */,
-        0x00E1 /* LATIN SMALL LETTER A WITH ACUTE */,
-        0x00E2 /* LATIN SMALL LETTER A WITH CIRCUMFLEX */,
-        0x00E3 /* LATIN SMALL LETTER A WITH TILDE */,
-        0x00E4 /* LATIN SMALL LETTER A WITH DIAERESIS */,
-        0x00E5 /* LATIN SMALL LETTER A WITH RING ABOVE */,
-        0x00E6 /* LATIN SMALL LETTER AE */,
-        0x00E7 /* LATIN SMALL LETTER C WITH CEDILLA */,
-        0x00E8 /* LATIN SMALL LETTER E WITH GRAVE */,
-        0x00E9 /* LATIN SMALL LETTER E WITH ACUTE */,
-        0x00EA /* LATIN SMALL LETTER E WITH CIRCUMFLEX */,
-        0x00EB /* LATIN SMALL LETTER E WITH DIAERESIS */,
-        0x00EC /* LATIN SMALL LETTER I WITH GRAVE */,
-        0x00ED /* LATIN SMALL LETTER I WITH ACUTE */,
-        0x00EE /* LATIN SMALL LETTER I WITH CIRCUMFLEX */,
-        0x00EF /* LATIN SMALL LETTER I WITH DIAERESIS */,
-        0x00F0 /* LATIN SMALL LETTER ETH */,
-        0x00F1 /* LATIN SMALL LETTER N WITH TILDE */,
-        0x00F2 /* LATIN SMALL LETTER O WITH GRAVE */,
-        0x00F3 /* LATIN SMALL LETTER O WITH ACUTE */,
-        0x00F4 /* LATIN SMALL LETTER O WITH CIRCUMFLEX */,
-        0x00F5 /* LATIN SMALL LETTER O WITH TILDE */,
-        0x00F6 /* LATIN SMALL LETTER O WITH DIAERESIS */,
-        0x00F7 /* LATIN SMALL LETTER O WITH STROKE */,
-        0x00F9 /* LATIN SMALL LETTER U WITH GRAVE */,
-        0x00FA /* LATIN SMALL LETTER U WITH ACUTE */,
-        0x00FB /* LATIN SMALL LETTER U WITH CIRCUMFLEX */,
-        0x00FC /* LATIN SMALL LETTER U WITH DIAERESIS */,
-        0x00FD /* LATIN SMALL LETTER Y WITH ACUTE */,
-        0x00FE /* LATIN SMALL LETTER THORN */,
-        0x00FF /* LATIN SMALL LETTER Y WITH DIAERESIS */
-    };
-
-    public static int[] generateCodePointSet(final int codePointSetSize, final Random random) {
-        final int[] codePointSet = new int[codePointSetSize];
-        for (int i = codePointSet.length - 1; i >= 0; ) {
-            final int r = Math.abs(random.nextInt());
-            if (r < 0) continue;
-            // Don't insert 0~0x20, but insert any other code point.
-            // Code points are in the range 0~0x10FFFF.
-            final int candidateCodePoint = 0x20 + r % (Character.MAX_CODE_POINT - 0x20);
-            // Code points between MIN_ and MAX_SURROGATE are not valid on their own.
-            if (candidateCodePoint >= Character.MIN_SURROGATE
-                    && candidateCodePoint <= Character.MAX_SURROGATE) continue;
-            codePointSet[i] = candidateCodePoint;
-            --i;
-        }
-        return codePointSet;
-    }
-
-    /**
-     * Generates a random word.
-     */
-    public static String generateWord(final Random random, final int[] codePointSet) {
-        StringBuilder builder = new StringBuilder();
-        // 8 * 4 = 32 chars max, but we do it the following way so as to bias the random toward
-        // longer words. This should be closer to natural language, and more importantly, it will
-        // exercise the algorithms in dicttool much more.
-        final int count = 1 + (Math.abs(random.nextInt()) % 5)
-                + (Math.abs(random.nextInt()) % 5)
-                + (Math.abs(random.nextInt()) % 5)
-                + (Math.abs(random.nextInt()) % 5)
-                + (Math.abs(random.nextInt()) % 5)
-                + (Math.abs(random.nextInt()) % 5)
-                + (Math.abs(random.nextInt()) % 5)
-                + (Math.abs(random.nextInt()) % 5);
-        while (builder.length() < count) {
-            builder.appendCodePoint(codePointSet[Math.abs(random.nextInt()) % codePointSet.length]);
-        }
-        return builder.toString();
-    }
-}
diff --git a/tests/src/com/android/inputmethod/latin/makedict/DictEncoder.java b/tests/src/com/android/inputmethod/latin/makedict/DictEncoder.java
index 678c5ca..10dd003 100644
--- a/tests/src/com/android/inputmethod/latin/makedict/DictEncoder.java
+++ b/tests/src/com/android/inputmethod/latin/makedict/DictEncoder.java
@@ -21,6 +21,7 @@
 import com.android.inputmethod.latin.makedict.FusionDictionary.PtNode;
 
 import java.io.IOException;
+import java.util.HashMap;
 
 /**
  * An interface of binary dictionary encoder.
@@ -33,6 +34,6 @@
     public void setPosition(final int position);
     public int getPosition();
     public void writePtNodeCount(final int ptNodeCount);
-    public void writeForwardLinkAddress(final int forwardLinkAddress);
-    public void writePtNode(final PtNode ptNode, final FusionDictionary dict);
+    public void writePtNode(final PtNode ptNode, final FusionDictionary dict,
+            final HashMap<Integer, Integer> codePointToOneByteCodeMap);
 }
diff --git a/tests/src/com/android/inputmethod/latin/makedict/FusionDictionary.java b/tests/src/com/android/inputmethod/latin/makedict/FusionDictionary.java
index 4a8c178..52060be 100644
--- a/tests/src/com/android/inputmethod/latin/makedict/FusionDictionary.java
+++ b/tests/src/com/android/inputmethod/latin/makedict/FusionDictionary.java
@@ -17,7 +17,7 @@
 package com.android.inputmethod.latin.makedict;
 
 import com.android.inputmethod.annotations.UsedForTesting;
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.define.DecoderSpecificConstants;
 import com.android.inputmethod.latin.makedict.FormatSpec.DictionaryOptions;
 
 import java.util.ArrayList;
@@ -82,14 +82,13 @@
     public static final class PtNode {
         private static final int NOT_A_TERMINAL = -1;
         final int mChars[];
-        ArrayList<WeightedString> mShortcutTargets;
         ArrayList<WeightedString> mBigrams;
         // null == mProbabilityInfo indicates this is not a terminal.
         ProbabilityInfo mProbabilityInfo;
         int mTerminalId; // NOT_A_TERMINAL == mTerminalId indicates this is not a terminal.
         PtNodeArray mChildren;
         boolean mIsNotAWord; // Only a shortcut
-        boolean mIsBlacklistEntry;
+        boolean mIsPossiblyOffensive;
         // mCachedSize and mCachedAddressBefore/AfterUpdate are helpers for binary dictionary
         // generation. Before and After always hold the same value except during dictionary
         // address compression, where the update process needs to know about both values at the
@@ -100,30 +99,27 @@
         int mCachedAddressBeforeUpdate; // The address of this PtNode (before update)
         int mCachedAddressAfterUpdate; // The address of this PtNode (after update)
 
-        public PtNode(final int[] chars, final ArrayList<WeightedString> shortcutTargets,
-                final ArrayList<WeightedString> bigrams, final ProbabilityInfo probabilityInfo,
-                final boolean isNotAWord, final boolean isBlacklistEntry) {
+        public PtNode(final int[] chars, final ArrayList<WeightedString> bigrams,
+                final ProbabilityInfo probabilityInfo, final boolean isNotAWord,
+                final boolean isPossiblyOffensive) {
             mChars = chars;
             mProbabilityInfo = probabilityInfo;
             mTerminalId = probabilityInfo == null ? NOT_A_TERMINAL : probabilityInfo.mProbability;
-            mShortcutTargets = shortcutTargets;
             mBigrams = bigrams;
             mChildren = null;
             mIsNotAWord = isNotAWord;
-            mIsBlacklistEntry = isBlacklistEntry;
+            mIsPossiblyOffensive = isPossiblyOffensive;
         }
 
-        public PtNode(final int[] chars, final ArrayList<WeightedString> shortcutTargets,
-                final ArrayList<WeightedString> bigrams, final ProbabilityInfo probabilityInfo,
-                final boolean isNotAWord, final boolean isBlacklistEntry,
-                final PtNodeArray children) {
+        public PtNode(final int[] chars, final ArrayList<WeightedString> bigrams,
+                final ProbabilityInfo probabilityInfo, final boolean isNotAWord,
+                final boolean isPossiblyOffensive, final PtNodeArray children) {
             mChars = chars;
             mProbabilityInfo = probabilityInfo;
-            mShortcutTargets = shortcutTargets;
             mBigrams = bigrams;
             mChildren = children;
             mIsNotAWord = isNotAWord;
-            mIsBlacklistEntry = isBlacklistEntry;
+            mIsPossiblyOffensive = isPossiblyOffensive;
         }
 
         public void addChild(PtNode n) {
@@ -142,27 +138,15 @@
         }
 
         public int getProbability() {
-            if (isTerminal()) {
-                return mProbabilityInfo.mProbability;
-            } else {
-                return NOT_A_TERMINAL;
-            }
+            return isTerminal() ? mProbabilityInfo.mProbability : NOT_A_TERMINAL;
         }
 
         public boolean getIsNotAWord() {
             return mIsNotAWord;
         }
 
-        public boolean getIsBlacklistEntry() {
-            return mIsBlacklistEntry;
-        }
-
-        public ArrayList<WeightedString> getShortcutTargets() {
-            // We don't want write permission to escape outside the package, so we return a copy
-            if (null == mShortcutTargets) return null;
-            final ArrayList<WeightedString> copyOfShortcutTargets =
-                    new ArrayList<>(mShortcutTargets);
-            return copyOfShortcutTargets;
+        public boolean getIsPossiblyOffensive() {
+            return mIsPossiblyOffensive;
         }
 
         public ArrayList<WeightedString> getBigrams() {
@@ -195,24 +179,6 @@
         }
 
         /**
-         * Gets the shortcut target for the given word. Returns null if the word is not in the
-         * shortcut list.
-         */
-        public WeightedString getShortcut(final String word) {
-            // TODO: Don't do a linear search
-            if (mShortcutTargets != null) {
-                final int size = mShortcutTargets.size();
-                for (int i = 0; i < size; ++i) {
-                    WeightedString shortcut = mShortcutTargets.get(i);
-                    if (shortcut.mWord.equals(word)) {
-                        return shortcut;
-                    }
-                }
-            }
-            return null;
-        }
-
-        /**
          * Gets the bigram for the given word.
          * Returns null if the word is not in the bigrams list.
          */
@@ -235,28 +201,10 @@
          * the existing ones if any. Note: unigram, bigram, and shortcut frequencies are only
          * updated if they are higher than the existing ones.
          */
-        private void update(final ProbabilityInfo probabilityInfo,
-                final ArrayList<WeightedString> shortcutTargets,
+        void update(final ProbabilityInfo probabilityInfo,
                 final ArrayList<WeightedString> bigrams,
-                final boolean isNotAWord, final boolean isBlacklistEntry) {
+                final boolean isNotAWord, final boolean isPossiblyOffensive) {
             mProbabilityInfo = ProbabilityInfo.max(mProbabilityInfo, probabilityInfo);
-            if (shortcutTargets != null) {
-                if (mShortcutTargets == null) {
-                    mShortcutTargets = shortcutTargets;
-                } else {
-                    final int size = shortcutTargets.size();
-                    for (int i = 0; i < size; ++i) {
-                        final WeightedString shortcut = shortcutTargets.get(i);
-                        final WeightedString existingShortcut = getShortcut(shortcut.mWord);
-                        if (existingShortcut == null) {
-                            mShortcutTargets.add(shortcut);
-                        } else {
-                            existingShortcut.mProbabilityInfo = ProbabilityInfo.max(
-                                    existingShortcut.mProbabilityInfo, shortcut.mProbabilityInfo);
-                        }
-                    }
-                }
-            }
             if (bigrams != null) {
                 if (mBigrams == null) {
                     mBigrams = bigrams;
@@ -275,7 +223,7 @@
                 }
             }
             mIsNotAWord = isNotAWord;
-            mIsBlacklistEntry = isBlacklistEntry;
+            mIsPossiblyOffensive = isPossiblyOffensive;
         }
     }
 
@@ -316,31 +264,16 @@
      * Helper method to add a word as a string.
      *
      * This method adds a word to the dictionary with the given frequency. Optional
-     * lists of bigrams and shortcuts can be passed here. For each word inside,
+     * lists of bigrams can be passed here. For each word inside,
      * they will be added to the dictionary as necessary.
-     *
-     * @param word the word to add.
+     *  @param word the word to add.
      * @param probabilityInfo probability information of the word.
-     * @param shortcutTargets a list of shortcut targets for this word, or null.
      * @param isNotAWord true if this should not be considered a word (e.g. shortcut only)
+     * @param isPossiblyOffensive true if this word is possibly offensive
      */
     public void add(final String word, final ProbabilityInfo probabilityInfo,
-            final ArrayList<WeightedString> shortcutTargets, final boolean isNotAWord) {
-        add(getCodePoints(word), probabilityInfo, shortcutTargets, isNotAWord,
-                false /* isBlacklistEntry */);
-    }
-
-    /**
-     * Helper method to add a blacklist entry as a string.
-     *
-     * @param word the word to add as a blacklist entry.
-     * @param shortcutTargets a list of shortcut targets for this word, or null.
-     * @param isNotAWord true if this is not a word for spellcheking purposes (shortcut only or so)
-     */
-    public void addBlacklistEntry(final String word,
-            final ArrayList<WeightedString> shortcutTargets, final boolean isNotAWord) {
-        add(getCodePoints(word), new ProbabilityInfo(0), shortcutTargets, isNotAWord,
-                true /* isBlacklistEntry */);
+            final boolean isNotAWord, final boolean isPossiblyOffensive) {
+        add(getCodePoints(word), probabilityInfo, isNotAWord, isPossiblyOffensive);
     }
 
     /**
@@ -349,15 +282,15 @@
      * This method checks that all PtNodes in a node array are ordered as expected.
      * If they are, nothing happens. If they aren't, an exception is thrown.
      */
-    private void checkStack(PtNodeArray ptNodeArray) {
+    private static void checkStack(PtNodeArray ptNodeArray) {
         ArrayList<PtNode> stack = ptNodeArray.mData;
         int lastValue = -1;
         for (int i = 0; i < stack.size(); ++i) {
             int currentValue = stack.get(i).mChars[0];
-            if (currentValue <= lastValue)
+            if (currentValue <= lastValue) {
                 throw new RuntimeException("Invalid stack");
-            else
-                lastValue = currentValue;
+            }
+            lastValue = currentValue;
         }
     }
 
@@ -374,8 +307,8 @@
         if (ptNode0 != null) {
             final PtNode ptNode1 = findWordInTree(mRootNodeArray, word1);
             if (ptNode1 == null) {
-                add(getCodePoints(word1), new ProbabilityInfo(0), null, false /* isNotAWord */,
-                        false /* isBlacklistEntry */);
+                add(getCodePoints(word1), new ProbabilityInfo(0), false /* isNotAWord */,
+                        false /* isPossiblyOffensive */);
                 // The PtNode for the first word may have moved by the above insertion,
                 // if word1 and word2 share a common stem that happens not to have been
                 // a cutting point until now. In this case, we need to refresh ptNode.
@@ -392,18 +325,15 @@
      *
      * The shortcuts, if any, have to be in the dictionary already. If they aren't,
      * an exception is thrown.
-     *
-     * @param word the word, as an int array.
+     *  @param word the word, as an int array.
      * @param probabilityInfo the probability information of the word.
-     * @param shortcutTargets an optional list of shortcut targets for this word (null if none).
      * @param isNotAWord true if this is not a word for spellcheking purposes (shortcut only or so)
-     * @param isBlacklistEntry true if this is a blacklisted word, false otherwise
+     * @param isPossiblyOffensive true if this word is possibly offensive
      */
     private void add(final int[] word, final ProbabilityInfo probabilityInfo,
-            final ArrayList<WeightedString> shortcutTargets,
-            final boolean isNotAWord, final boolean isBlacklistEntry) {
+            final boolean isNotAWord, final boolean isPossiblyOffensive) {
         assert(probabilityInfo.mProbability <= FormatSpec.MAX_TERMINAL_FREQUENCY);
-        if (word.length >= Constants.DICTIONARY_MAX_WORD_LENGTH) {
+        if (word.length >= DecoderSpecificConstants.DICTIONARY_MAX_WORD_LENGTH) {
             MakedictLog.w("Ignoring a word that is too long: word.length = " + word.length);
             return;
         }
@@ -430,8 +360,8 @@
             // No node at this point to accept the word. Create one.
             final int insertionIndex = findInsertionIndex(currentNodeArray, word[charIndex]);
             final PtNode newPtNode = new PtNode(Arrays.copyOfRange(word, charIndex, word.length),
-                    shortcutTargets, null /* bigrams */, probabilityInfo, isNotAWord,
-                    isBlacklistEntry);
+                    null /* bigrams */, probabilityInfo, isNotAWord,
+                    isPossiblyOffensive);
             currentNodeArray.mData.add(insertionIndex, newPtNode);
             if (DBG) checkStack(currentNodeArray);
         } else {
@@ -441,15 +371,15 @@
                     // The new word is a prefix of an existing word, but the node on which it
                     // should end already exists as is. Since the old PtNode was not a terminal,
                     // make it one by filling in its frequency and other attributes
-                    currentPtNode.update(probabilityInfo, shortcutTargets, null, isNotAWord,
-                            isBlacklistEntry);
+                    currentPtNode.update(probabilityInfo, null, isNotAWord,
+                            isPossiblyOffensive);
                 } else {
                     // The new word matches the full old word and extends past it.
                     // We only have to create a new node and add it to the end of this.
                     final PtNode newNode = new PtNode(
                             Arrays.copyOfRange(word, charIndex + differentCharIndex, word.length),
-                                    shortcutTargets, null /* bigrams */, probabilityInfo,
-                                    isNotAWord, isBlacklistEntry);
+                                    null /* bigrams */, probabilityInfo,
+                                    isNotAWord, isPossiblyOffensive);
                     currentPtNode.mChildren = new PtNodeArray();
                     currentPtNode.mChildren.mData.add(newNode);
                 }
@@ -457,18 +387,18 @@
                 if (0 == differentCharIndex) {
                     // Exact same word. Update the frequency if higher. This will also add the
                     // new shortcuts to the existing shortcut list if it already exists.
-                    currentPtNode.update(probabilityInfo, shortcutTargets, null,
+                    currentPtNode.update(probabilityInfo, null,
                             currentPtNode.mIsNotAWord && isNotAWord,
-                            currentPtNode.mIsBlacklistEntry || isBlacklistEntry);
+                            currentPtNode.mIsPossiblyOffensive || isPossiblyOffensive);
                 } else {
                     // Partial prefix match only. We have to replace the current node with a node
                     // containing the current prefix and create two new ones for the tails.
                     PtNodeArray newChildren = new PtNodeArray();
                     final PtNode newOldWord = new PtNode(
                             Arrays.copyOfRange(currentPtNode.mChars, differentCharIndex,
-                                    currentPtNode.mChars.length), currentPtNode.mShortcutTargets,
+                                    currentPtNode.mChars.length),
                             currentPtNode.mBigrams, currentPtNode.mProbabilityInfo,
-                            currentPtNode.mIsNotAWord, currentPtNode.mIsBlacklistEntry,
+                            currentPtNode.mIsNotAWord, currentPtNode.mIsPossiblyOffensive,
                             currentPtNode.mChildren);
                     newChildren.mData.add(newOldWord);
 
@@ -476,18 +406,18 @@
                     if (charIndex + differentCharIndex >= word.length) {
                         newParent = new PtNode(
                                 Arrays.copyOfRange(currentPtNode.mChars, 0, differentCharIndex),
-                                shortcutTargets, null /* bigrams */, probabilityInfo,
-                                isNotAWord, isBlacklistEntry, newChildren);
+                                null /* bigrams */, probabilityInfo,
+                                isNotAWord, isPossiblyOffensive, newChildren);
                     } else {
                         newParent = new PtNode(
                                 Arrays.copyOfRange(currentPtNode.mChars, 0, differentCharIndex),
-                                null /* shortcutTargets */, null /* bigrams */,
-                                null /* probabilityInfo */, false /* isNotAWord */,
-                                false /* isBlacklistEntry */, newChildren);
+                                null /* bigrams */, null /* probabilityInfo */,
+                                false /* isNotAWord */, false /* isPossiblyOffensive */,
+                                newChildren);
                         final PtNode newWord = new PtNode(Arrays.copyOfRange(word,
                                 charIndex + differentCharIndex, word.length),
-                                shortcutTargets, null /* bigrams */, probabilityInfo,
-                                isNotAWord, isBlacklistEntry);
+                                null /* bigrams */, probabilityInfo,
+                                isNotAWord, isPossiblyOffensive);
                         final int addIndex = word[charIndex + differentCharIndex]
                                 > currentPtNode.mChars[differentCharIndex] ? 1 : 0;
                         newChildren.mData.add(addIndex, newWord);
@@ -533,14 +463,14 @@
      * is ignored.
      * This comparator imposes orderings that are inconsistent with equals.
      */
-    static private final class PtNodeComparator implements java.util.Comparator<PtNode> {
+    static final class PtNodeComparator implements java.util.Comparator<PtNode> {
         @Override
         public int compare(PtNode p1, PtNode p2) {
             if (p1.mChars[0] == p2.mChars[0]) return 0;
             return p1.mChars[0] < p2.mChars[0] ? -1 : 1;
         }
     }
-    final static private PtNodeComparator PTNODE_COMPARATOR = new PtNodeComparator();
+    final static PtNodeComparator PTNODE_COMPARATOR = new PtNodeComparator();
 
     /**
      * Finds the insertion index of a character within a node array.
@@ -548,8 +478,8 @@
     private static int findInsertionIndex(final PtNodeArray nodeArray, int character) {
         final ArrayList<PtNode> data = nodeArray.mData;
         final PtNode reference = new PtNode(new int[] { character },
-                null /* shortcutTargets */, null /* bigrams */, null /* probabilityInfo */,
-                false /* isNotAWord */, false /* isBlacklistEntry */);
+                null /* bigrams */, null /* probabilityInfo */,
+                false /* isNotAWord */, false /* isPossiblyOffensive */);
         int result = Collections.binarySearch(data, reference, PTNODE_COMPARATOR);
         return result >= 0 ? result : -result - 1;
     }
@@ -571,7 +501,8 @@
     /**
      * Helper method to find a word in a given branch.
      */
-    public static PtNode findWordInTree(PtNodeArray nodeArray, final String string) {
+    public static PtNode findWordInTree(final PtNodeArray rootNodeArray, final String string) {
+        PtNodeArray nodeArray = rootNodeArray;
         int index = 0;
         final StringBuilder checker = DBG ? new StringBuilder() : null;
         final int[] codePoints = getCodePoints(string);
@@ -684,9 +615,8 @@
                     }
                     if (currentPtNode.isTerminal()) {
                         return new WordProperty(mCurrentString.toString(),
-                                currentPtNode.mProbabilityInfo,
-                                currentPtNode.mShortcutTargets, currentPtNode.mBigrams,
-                                currentPtNode.mIsNotAWord, currentPtNode.mIsBlacklistEntry);
+                                currentPtNode.mProbabilityInfo, currentPtNode.mBigrams,
+                                currentPtNode.mIsNotAWord, currentPtNode.mIsPossiblyOffensive);
                     }
                 } else {
                     mPositions.removeLast();
diff --git a/tests/src/com/android/inputmethod/latin/makedict/Ver2DictDecoder.java b/tests/src/com/android/inputmethod/latin/makedict/Ver2DictDecoder.java
deleted file mode 100644
index 65b84d5..0000000
--- a/tests/src/com/android/inputmethod/latin/makedict/Ver2DictDecoder.java
+++ /dev/null
@@ -1,321 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.makedict;
-
-import com.android.inputmethod.annotations.UsedForTesting;
-import com.android.inputmethod.latin.BinaryDictionary;
-import com.android.inputmethod.latin.makedict.BinaryDictDecoderUtils.CharEncoding;
-import com.android.inputmethod.latin.makedict.BinaryDictDecoderUtils.DictBuffer;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-
-/**
- * An implementation of DictDecoder for version 2 binary dictionary.
- */
-// TODO: Separate logics that are used only for testing.
-@UsedForTesting
-public class Ver2DictDecoder extends AbstractDictDecoder {
-    /**
-     * A utility class for reading a PtNode.
-     */
-    protected static class PtNodeReader {
-        private static ProbabilityInfo readProbabilityInfo(final DictBuffer dictBuffer) {
-            // Ver2 dicts don't contain historical information.
-            return new ProbabilityInfo(dictBuffer.readUnsignedByte());
-        }
-
-        protected static int readPtNodeOptionFlags(final DictBuffer dictBuffer) {
-            return dictBuffer.readUnsignedByte();
-        }
-
-        protected static int readChildrenAddress(final DictBuffer dictBuffer,
-                final int ptNodeFlags) {
-            switch (ptNodeFlags & FormatSpec.MASK_CHILDREN_ADDRESS_TYPE) {
-                case FormatSpec.FLAG_CHILDREN_ADDRESS_TYPE_ONEBYTE:
-                    return dictBuffer.readUnsignedByte();
-                case FormatSpec.FLAG_CHILDREN_ADDRESS_TYPE_TWOBYTES:
-                    return dictBuffer.readUnsignedShort();
-                case FormatSpec.FLAG_CHILDREN_ADDRESS_TYPE_THREEBYTES:
-                    return dictBuffer.readUnsignedInt24();
-                case FormatSpec.FLAG_CHILDREN_ADDRESS_TYPE_NOADDRESS:
-                default:
-                    return FormatSpec.NO_CHILDREN_ADDRESS;
-            }
-        }
-
-        // Reads shortcuts and returns the read length.
-        protected static int readShortcut(final DictBuffer dictBuffer,
-                final ArrayList<WeightedString> shortcutTargets) {
-            final int pointerBefore = dictBuffer.position();
-            dictBuffer.readUnsignedShort(); // skip the size
-            while (true) {
-                final int targetFlags = dictBuffer.readUnsignedByte();
-                final String word = CharEncoding.readString(dictBuffer);
-                shortcutTargets.add(new WeightedString(word,
-                        targetFlags & FormatSpec.FLAG_BIGRAM_SHORTCUT_ATTR_FREQUENCY));
-                if (0 == (targetFlags & FormatSpec.FLAG_BIGRAM_SHORTCUT_ATTR_HAS_NEXT)) break;
-            }
-            return dictBuffer.position() - pointerBefore;
-        }
-
-        protected static int readBigramAddresses(final DictBuffer dictBuffer,
-                final ArrayList<PendingAttribute> bigrams, final int baseAddress) {
-            int readLength = 0;
-            int bigramCount = 0;
-            while (bigramCount++ < FormatSpec.MAX_BIGRAMS_IN_A_PTNODE) {
-                final int bigramFlags = dictBuffer.readUnsignedByte();
-                ++readLength;
-                final int sign = 0 == (bigramFlags & FormatSpec.FLAG_BIGRAM_ATTR_OFFSET_NEGATIVE)
-                        ? 1 : -1;
-                int bigramAddress = baseAddress + readLength;
-                switch (bigramFlags & FormatSpec.MASK_BIGRAM_ATTR_ADDRESS_TYPE) {
-                    case FormatSpec.FLAG_BIGRAM_ATTR_ADDRESS_TYPE_ONEBYTE:
-                        bigramAddress += sign * dictBuffer.readUnsignedByte();
-                        readLength += 1;
-                        break;
-                    case FormatSpec.FLAG_BIGRAM_ATTR_ADDRESS_TYPE_TWOBYTES:
-                        bigramAddress += sign * dictBuffer.readUnsignedShort();
-                        readLength += 2;
-                        break;
-                    case FormatSpec.FLAG_BIGRAM_ATTR_ADDRESS_TYPE_THREEBYTES:
-                        bigramAddress += sign * dictBuffer.readUnsignedInt24();
-                        readLength += 3;
-                        break;
-                    default:
-                        throw new RuntimeException("Has bigrams with no address");
-                }
-                bigrams.add(new PendingAttribute(
-                        bigramFlags & FormatSpec.FLAG_BIGRAM_SHORTCUT_ATTR_FREQUENCY,
-                        bigramAddress));
-                if (0 == (bigramFlags & FormatSpec.FLAG_BIGRAM_SHORTCUT_ATTR_HAS_NEXT)) break;
-            }
-            return readLength;
-        }
-    }
-
-    protected final File mDictionaryBinaryFile;
-    protected final long mOffset;
-    protected final long mLength;
-    // TODO: Remove mBufferFactory and mDictBuffer from this class members because they are now
-    // used only for testing.
-    private final DictionaryBufferFactory mBufferFactory;
-    protected DictBuffer mDictBuffer;
-
-    @UsedForTesting
-    /* package */ Ver2DictDecoder(final File file, final long offset, final long length,
-            final int factoryFlag) {
-        mDictionaryBinaryFile = file;
-        mOffset = offset;
-        mLength = length;
-        mDictBuffer = null;
-        if ((factoryFlag & MASK_DICTBUFFER) == USE_READONLY_BYTEBUFFER) {
-            mBufferFactory = new DictionaryBufferFromReadOnlyByteBufferFactory();
-        } else if ((factoryFlag  & MASK_DICTBUFFER) == USE_BYTEARRAY) {
-            mBufferFactory = new DictionaryBufferFromByteArrayFactory();
-        } else if ((factoryFlag & MASK_DICTBUFFER) == USE_WRITABLE_BYTEBUFFER) {
-            mBufferFactory = new DictionaryBufferFromWritableByteBufferFactory();
-        } else {
-            mBufferFactory = new DictionaryBufferFromReadOnlyByteBufferFactory();
-        }
-    }
-
-    /* package */ Ver2DictDecoder(final File file, final long offset, final long length,
-            final DictionaryBufferFactory factory) {
-        mDictionaryBinaryFile = file;
-        mOffset = offset;
-        mLength = length;
-        mBufferFactory = factory;
-    }
-
-    @Override
-    public void openDictBuffer() throws FileNotFoundException, IOException {
-        mDictBuffer = mBufferFactory.getDictionaryBuffer(mDictionaryBinaryFile);
-    }
-
-    @Override
-    public boolean isDictBufferOpen() {
-        return mDictBuffer != null;
-    }
-
-    /* package */ DictBuffer getDictBuffer() {
-        return mDictBuffer;
-    }
-
-    @UsedForTesting
-    /* package */ DictBuffer openAndGetDictBuffer() throws FileNotFoundException, IOException {
-        openDictBuffer();
-        return getDictBuffer();
-    }
-
-    @Override
-    public DictionaryHeader readHeader() throws IOException, UnsupportedFormatException {
-        // dictType is not being used in dicttool. Passing an empty string.
-        final BinaryDictionary binaryDictionary = new BinaryDictionary(
-                mDictionaryBinaryFile.getAbsolutePath(), mOffset, mLength,
-                true /* useFullEditDistance */, null /* locale */, "" /* dictType */,
-                false /* isUpdatable */);
-        final DictionaryHeader header = binaryDictionary.getHeader();
-        binaryDictionary.close();
-        if (header == null) {
-            throw new IOException("Cannot read the dictionary header.");
-        }
-        if (header.mFormatOptions.mVersion != FormatSpec.VERSION2) {
-            throw new UnsupportedFormatException("File header has a wrong version : "
-                    + header.mFormatOptions.mVersion);
-        }
-        if (!isDictBufferOpen()) {
-            openDictBuffer();
-        }
-        // Advance buffer reading position to the head of dictionary body.
-        setPosition(header.mBodyOffset);
-        return header;
-    }
-
-    // TODO: Make this buffer multi thread safe.
-    private final int[] mCharacterBuffer = new int[FormatSpec.MAX_WORD_LENGTH];
-    @Override
-    public PtNodeInfo readPtNode(final int ptNodePos) {
-        int addressPointer = ptNodePos;
-        final int flags = PtNodeReader.readPtNodeOptionFlags(mDictBuffer);
-        addressPointer += FormatSpec.PTNODE_FLAGS_SIZE;
-        final int characters[];
-        if (0 != (flags & FormatSpec.FLAG_HAS_MULTIPLE_CHARS)) {
-            int index = 0;
-            int character = CharEncoding.readChar(mDictBuffer);
-            addressPointer += CharEncoding.getCharSize(character);
-            while (FormatSpec.INVALID_CHARACTER != character) {
-                // FusionDictionary is making sure that the length of the word is smaller than
-                // MAX_WORD_LENGTH.
-                // So we'll never write past the end of mCharacterBuffer.
-                mCharacterBuffer[index++] = character;
-                character = CharEncoding.readChar(mDictBuffer);
-                addressPointer += CharEncoding.getCharSize(character);
-            }
-            characters = Arrays.copyOfRange(mCharacterBuffer, 0, index);
-        } else {
-            final int character = CharEncoding.readChar(mDictBuffer);
-            addressPointer += CharEncoding.getCharSize(character);
-            characters = new int[] { character };
-        }
-        final ProbabilityInfo probabilityInfo;
-        if (0 != (FormatSpec.FLAG_IS_TERMINAL & flags)) {
-            probabilityInfo = PtNodeReader.readProbabilityInfo(mDictBuffer);
-            addressPointer += FormatSpec.PTNODE_FREQUENCY_SIZE;
-        } else {
-            probabilityInfo = null;
-        }
-        int childrenAddress = PtNodeReader.readChildrenAddress(mDictBuffer, flags);
-        if (childrenAddress != FormatSpec.NO_CHILDREN_ADDRESS) {
-            childrenAddress += addressPointer;
-        }
-        addressPointer += BinaryDictIOUtils.getChildrenAddressSize(flags);
-        final ArrayList<WeightedString> shortcutTargets;
-        if (0 != (flags & FormatSpec.FLAG_HAS_SHORTCUT_TARGETS)) {
-            // readShortcut will add shortcuts to shortcutTargets.
-            shortcutTargets = new ArrayList<>();
-            addressPointer += PtNodeReader.readShortcut(mDictBuffer, shortcutTargets);
-        } else {
-            shortcutTargets = null;
-        }
-
-        final ArrayList<PendingAttribute> bigrams;
-        if (0 != (flags & FormatSpec.FLAG_HAS_BIGRAMS)) {
-            bigrams = new ArrayList<>();
-            addressPointer += PtNodeReader.readBigramAddresses(mDictBuffer, bigrams,
-                    addressPointer);
-            if (bigrams.size() >= FormatSpec.MAX_BIGRAMS_IN_A_PTNODE) {
-                throw new RuntimeException("Too many bigrams in a PtNode (" + bigrams.size()
-                        + " but max is " + FormatSpec.MAX_BIGRAMS_IN_A_PTNODE + ")");
-            }
-        } else {
-            bigrams = null;
-        }
-        return new PtNodeInfo(ptNodePos, addressPointer, flags, characters, probabilityInfo,
-                childrenAddress, shortcutTargets, bigrams);
-    }
-
-    @Override
-    public FusionDictionary readDictionaryBinary(final boolean deleteDictIfBroken)
-            throws FileNotFoundException, IOException, UnsupportedFormatException {
-        // dictType is not being used in dicttool. Passing an empty string.
-        final BinaryDictionary binaryDictionary = new BinaryDictionary(
-                mDictionaryBinaryFile.getAbsolutePath(), 0 /* offset */,
-                mDictionaryBinaryFile.length() /* length */, true /* useFullEditDistance */,
-                null /* locale */, "" /* dictType */, false /* isUpdatable */);
-        final DictionaryHeader header = readHeader();
-        final FusionDictionary fusionDict =
-                new FusionDictionary(new FusionDictionary.PtNodeArray(), header.mDictionaryOptions);
-        int token = 0;
-        final ArrayList<WordProperty> wordProperties = new ArrayList<>();
-        do {
-            final BinaryDictionary.GetNextWordPropertyResult result =
-                    binaryDictionary.getNextWordProperty(token);
-            final WordProperty wordProperty = result.mWordProperty;
-            if (wordProperty == null) {
-                binaryDictionary.close();
-                if (deleteDictIfBroken) {
-                    mDictionaryBinaryFile.delete();
-                }
-                return null;
-            }
-            wordProperties.add(wordProperty);
-            token = result.mNextToken;
-        } while (token != 0);
-
-        // Insert unigrams into the fusion dictionary.
-        for (final WordProperty wordProperty : wordProperties) {
-            if (wordProperty.mIsBlacklistEntry) {
-                fusionDict.addBlacklistEntry(wordProperty.mWord, wordProperty.mShortcutTargets,
-                        wordProperty.mIsNotAWord);
-            } else {
-                fusionDict.add(wordProperty.mWord, wordProperty.mProbabilityInfo,
-                        wordProperty.mShortcutTargets, wordProperty.mIsNotAWord);
-            }
-        }
-        // Insert bigrams into the fusion dictionary.
-        for (final WordProperty wordProperty : wordProperties) {
-            if (wordProperty.mBigrams == null) {
-                continue;
-            }
-            final String word0 = wordProperty.mWord;
-            for (final WeightedString bigram : wordProperty.mBigrams) {
-                fusionDict.setBigram(word0, bigram.mWord, bigram.mProbabilityInfo);
-            }
-        }
-        binaryDictionary.close();
-        return fusionDict;
-    }
-
-    @Override
-    public void setPosition(int newPos) {
-        mDictBuffer.position(newPos);
-    }
-
-    @Override
-    public int getPosition() {
-        return mDictBuffer.position();
-    }
-
-    @Override
-    public int readPtNodeCount() {
-        return BinaryDictDecoderUtils.readPtNodeCount(mDictBuffer);
-    }
-}
diff --git a/tests/src/com/android/inputmethod/latin/makedict/Ver2DictDecoderTests.java b/tests/src/com/android/inputmethod/latin/makedict/Ver2DictDecoderTests.java
deleted file mode 100644
index 3882c2c..0000000
--- a/tests/src/com/android/inputmethod/latin/makedict/Ver2DictDecoderTests.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.makedict;
-
-import com.android.inputmethod.latin.makedict.BinaryDictDecoderUtils.DictBuffer;
-import com.android.inputmethod.latin.makedict.DictDecoder.DictionaryBufferFactory;
-import com.android.inputmethod.latin.makedict.DictDecoder.DictionaryBufferFromByteArrayFactory;
-import com.android.inputmethod.latin.makedict.DictDecoder.
-        DictionaryBufferFromReadOnlyByteBufferFactory;
-import com.android.inputmethod.latin.makedict.DictDecoder.
-        DictionaryBufferFromWritableByteBufferFactory;
-
-import android.test.AndroidTestCase;
-import android.util.Log;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-
-/**
- * Unit tests for Ver2DictDecoder
- */
-public class Ver2DictDecoderTests extends AndroidTestCase {
-    private static final String TAG = Ver2DictDecoderTests.class.getSimpleName();
-
-    private final byte[] data = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
-
-    // Utilities for testing
-    public void writeDataToFile(final File file) {
-        FileOutputStream outStream = null;
-        try {
-            outStream = new FileOutputStream(file);
-            outStream.write(data);
-        } catch (IOException e) {
-            fail ("Can't write data to the test file");
-        } finally {
-            if (outStream != null) {
-                try {
-                    outStream.close();
-                } catch (IOException e) {
-                    Log.e(TAG, "Failed to close the output stream", e);
-                }
-            }
-        }
-    }
-
-    public void runTestOpenBuffer(final String testName, final DictionaryBufferFactory factory) {
-        File testFile = null;
-        try {
-            testFile = File.createTempFile(testName, ".tmp", getContext().getCacheDir());
-        } catch (IOException e) {
-            Log.e(TAG, "IOException while the creating temporary file", e);
-        }
-
-        assertNotNull(testFile);
-        final Ver2DictDecoder dictDecoder = new Ver2DictDecoder(testFile, 0, testFile.length(),
-                factory);
-        try {
-            dictDecoder.openDictBuffer();
-        } catch (Exception e) {
-            Log.e(TAG, "Failed to open the buffer", e);
-        }
-
-        writeDataToFile(testFile);
-
-        try {
-            dictDecoder.openDictBuffer();
-        } catch (Exception e) {
-            Log.e(TAG, "Raised the exception while opening buffer", e);
-        }
-
-        assertEquals(testFile.length(), dictDecoder.getDictBuffer().capacity());
-    }
-
-    public void testOpenBufferWithByteBuffer() {
-        runTestOpenBuffer("testOpenBufferWithByteBuffer",
-                new DictionaryBufferFromReadOnlyByteBufferFactory());
-    }
-
-    public void testOpenBufferWithByteArray() {
-        runTestOpenBuffer("testOpenBufferWithByteArray",
-                new DictionaryBufferFromByteArrayFactory());
-    }
-
-    public void testOpenBufferWithWritableByteBuffer() {
-        runTestOpenBuffer("testOpenBufferWithWritableByteBuffer",
-                new DictionaryBufferFromWritableByteBufferFactory());
-    }
-
-    public void runTestGetBuffer(final String testName, final DictionaryBufferFactory factory) {
-        File testFile = null;
-        try {
-            testFile = File.createTempFile(testName, ".tmp", getContext().getCacheDir());
-        } catch (IOException e) {
-            Log.e(TAG, "IOException while the creating temporary file", e);
-        }
-
-        final Ver2DictDecoder dictDecoder = new Ver2DictDecoder(testFile, 0, testFile.length(),
-                factory);
-
-        // the default return value of getBuffer() must be null.
-        assertNull("the default return value of getBuffer() is not null",
-                dictDecoder.getDictBuffer());
-
-        writeDataToFile(testFile);
-        assertTrue(testFile.exists());
-        Log.d(TAG, "file length = " + testFile.length());
-
-        DictBuffer dictBuffer = null;
-        try {
-            dictBuffer = dictDecoder.openAndGetDictBuffer();
-        } catch (IOException e) {
-            Log.e(TAG, "Failed to open and get the buffer", e);
-        }
-        assertNotNull("the buffer must not be null", dictBuffer);
-
-        for (int i = 0; i < data.length; ++i) {
-            assertEquals(data[i], dictBuffer.readUnsignedByte());
-        }
-    }
-
-    public void testGetBufferWithByteBuffer() {
-        runTestGetBuffer("testGetBufferWithByteBuffer",
-                new DictionaryBufferFromReadOnlyByteBufferFactory());
-    }
-
-    public void testGetBufferWithByteArray() {
-        runTestGetBuffer("testGetBufferWithByteArray",
-                new DictionaryBufferFromByteArrayFactory());
-    }
-
-    public void testGetBufferWithWritableByteBuffer() {
-        runTestGetBuffer("testGetBufferWithWritableByteBuffer",
-                new DictionaryBufferFromWritableByteBufferFactory());
-    }
-}
diff --git a/tests/src/com/android/inputmethod/latin/makedict/Ver2DictEncoder.java b/tests/src/com/android/inputmethod/latin/makedict/Ver2DictEncoder.java
deleted file mode 100644
index a286190..0000000
--- a/tests/src/com/android/inputmethod/latin/makedict/Ver2DictEncoder.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.makedict;
-
-import com.android.inputmethod.annotations.UsedForTesting;
-import com.android.inputmethod.latin.makedict.BinaryDictDecoderUtils.CharEncoding;
-import com.android.inputmethod.latin.makedict.FormatSpec.FormatOptions;
-import com.android.inputmethod.latin.makedict.FusionDictionary.PtNode;
-import com.android.inputmethod.latin.makedict.FusionDictionary.PtNodeArray;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.Iterator;
-
-/**
- * An implementation of DictEncoder for version 2 binary dictionary.
- */
-@UsedForTesting
-public class Ver2DictEncoder implements DictEncoder {
-
-    private final File mDictFile;
-    private OutputStream mOutStream;
-    private byte[] mBuffer;
-    private int mPosition;
-
-    @UsedForTesting
-    public Ver2DictEncoder(final File dictFile) {
-        mDictFile = dictFile;
-        mOutStream = null;
-        mBuffer = null;
-    }
-
-    // This constructor is used only by BinaryDictOffdeviceUtilsTests.
-    // If you want to use this in the production code, you should consider keeping consistency of
-    // the interface of Ver3DictDecoder by using factory.
-    @UsedForTesting
-    public Ver2DictEncoder(final OutputStream outStream) {
-        mDictFile = null;
-        mOutStream = outStream;
-    }
-
-    private void openStream() throws FileNotFoundException {
-        mOutStream = new FileOutputStream(mDictFile);
-    }
-
-    private void close() throws IOException {
-        if (mOutStream != null) {
-            mOutStream.close();
-            mOutStream = null;
-        }
-    }
-
-    @Override
-    public void writeDictionary(final FusionDictionary dict, final FormatOptions formatOptions)
-            throws IOException, UnsupportedFormatException {
-        if (formatOptions.mVersion > FormatSpec.VERSION2) {
-            throw new UnsupportedFormatException(
-                    "The given format options has wrong version number : "
-                    + formatOptions.mVersion);
-        }
-
-        if (mOutStream == null) {
-            openStream();
-        }
-        BinaryDictEncoderUtils.writeDictionaryHeader(mOutStream, dict, formatOptions);
-
-        // Addresses are limited to 3 bytes, but since addresses can be relative to each node
-        // array, the structure itself is not limited to 16MB. However, if it is over 16MB deciding
-        // the order of the PtNode arrays becomes a quite complicated problem, because though the
-        // dictionary itself does not have a size limit, each node array must still be within 16MB
-        // of all its children and parents. As long as this is ensured, the dictionary file may
-        // grow to any size.
-
-        // Leave the choice of the optimal node order to the flattenTree function.
-        MakedictLog.i("Flattening the tree...");
-        ArrayList<PtNodeArray> flatNodes = BinaryDictEncoderUtils.flattenTree(dict.mRootNodeArray);
-
-        MakedictLog.i("Computing addresses...");
-        BinaryDictEncoderUtils.computeAddresses(dict, flatNodes);
-        MakedictLog.i("Checking PtNode array...");
-        if (MakedictLog.DBG) BinaryDictEncoderUtils.checkFlatPtNodeArrayList(flatNodes);
-
-        // Create a buffer that matches the final dictionary size.
-        final PtNodeArray lastNodeArray = flatNodes.get(flatNodes.size() - 1);
-        final int bufferSize = lastNodeArray.mCachedAddressAfterUpdate + lastNodeArray.mCachedSize;
-        mBuffer = new byte[bufferSize];
-
-        MakedictLog.i("Writing file...");
-
-        for (PtNodeArray nodeArray : flatNodes) {
-            BinaryDictEncoderUtils.writePlacedPtNodeArray(dict, this, nodeArray);
-        }
-        if (MakedictLog.DBG) BinaryDictEncoderUtils.showStatistics(flatNodes);
-        mOutStream.write(mBuffer, 0, mPosition);
-
-        MakedictLog.i("Done");
-        close();
-    }
-
-    @Override
-    public void setPosition(final int position) {
-        if (mBuffer == null || position < 0 || position >= mBuffer.length) return;
-        mPosition = position;
-    }
-
-    @Override
-    public int getPosition() {
-        return mPosition;
-    }
-
-    @Override
-    public void writePtNodeCount(final int ptNodeCount) {
-        final int countSize = BinaryDictIOUtils.getPtNodeCountSize(ptNodeCount);
-        if (countSize != 1 && countSize != 2) {
-            throw new RuntimeException("Strange size from getGroupCountSize : " + countSize);
-        }
-        final int encodedPtNodeCount = (countSize == 2) ?
-                (ptNodeCount | FormatSpec.LARGE_PTNODE_ARRAY_SIZE_FIELD_SIZE_FLAG) : ptNodeCount;
-        mPosition = BinaryDictEncoderUtils.writeUIntToBuffer(mBuffer, mPosition, encodedPtNodeCount,
-                countSize);
-    }
-
-    private void writePtNodeFlags(final PtNode ptNode) {
-        final int childrenPos = BinaryDictEncoderUtils.getChildrenPosition(ptNode);
-        mPosition = BinaryDictEncoderUtils.writeUIntToBuffer(mBuffer, mPosition,
-                BinaryDictEncoderUtils.makePtNodeFlags(ptNode, childrenPos),
-                FormatSpec.PTNODE_FLAGS_SIZE);
-    }
-
-    private void writeCharacters(final int[] codePoints, final boolean hasSeveralChars) {
-        mPosition = CharEncoding.writeCharArray(codePoints, mBuffer, mPosition);
-        if (hasSeveralChars) {
-            mBuffer[mPosition++] = FormatSpec.PTNODE_CHARACTERS_TERMINATOR;
-        }
-    }
-
-    private void writeFrequency(final int frequency) {
-        if (frequency >= 0) {
-            mPosition = BinaryDictEncoderUtils.writeUIntToBuffer(mBuffer, mPosition, frequency,
-                    FormatSpec.PTNODE_FREQUENCY_SIZE);
-        }
-    }
-
-    private void writeChildrenPosition(final PtNode ptNode) {
-        final int childrenPos = BinaryDictEncoderUtils.getChildrenPosition(ptNode);
-        mPosition += BinaryDictEncoderUtils.writeChildrenPosition(mBuffer, mPosition,
-                childrenPos);
-    }
-
-    /**
-     * Write a shortcut attributes list to mBuffer.
-     *
-     * @param shortcuts the shortcut attributes list.
-     */
-    private void writeShortcuts(final ArrayList<WeightedString> shortcuts) {
-        if (null == shortcuts || shortcuts.isEmpty()) return;
-
-        final int indexOfShortcutByteSize = mPosition;
-        mPosition += FormatSpec.PTNODE_SHORTCUT_LIST_SIZE_SIZE;
-        final Iterator<WeightedString> shortcutIterator = shortcuts.iterator();
-        while (shortcutIterator.hasNext()) {
-            final WeightedString target = shortcutIterator.next();
-            final int shortcutFlags = BinaryDictEncoderUtils.makeShortcutFlags(
-                    shortcutIterator.hasNext(),
-                    target.getProbability());
-            mPosition = BinaryDictEncoderUtils.writeUIntToBuffer(mBuffer, mPosition, shortcutFlags,
-                    FormatSpec.PTNODE_ATTRIBUTE_FLAGS_SIZE);
-            final int shortcutShift = CharEncoding.writeString(mBuffer, mPosition, target.mWord);
-            mPosition += shortcutShift;
-        }
-        final int shortcutByteSize = mPosition - indexOfShortcutByteSize;
-        if (shortcutByteSize > FormatSpec.MAX_SHORTCUT_LIST_SIZE_IN_A_PTNODE) {
-            throw new RuntimeException("Shortcut list too large");
-        }
-        BinaryDictEncoderUtils.writeUIntToBuffer(mBuffer, indexOfShortcutByteSize, shortcutByteSize,
-                FormatSpec.PTNODE_SHORTCUT_LIST_SIZE_SIZE);
-    }
-
-    /**
-     * Write a bigram attributes list to mBuffer.
-     *
-     * @param bigrams the bigram attributes list.
-     * @param dict the dictionary the node array is a part of (for relative offsets).
-     */
-    private void writeBigrams(final ArrayList<WeightedString> bigrams,
-            final FusionDictionary dict) {
-        if (bigrams == null) return;
-
-        final Iterator<WeightedString> bigramIterator = bigrams.iterator();
-        while (bigramIterator.hasNext()) {
-            final WeightedString bigram = bigramIterator.next();
-            final PtNode target =
-                    FusionDictionary.findWordInTree(dict.mRootNodeArray, bigram.mWord);
-            final int addressOfBigram = target.mCachedAddressAfterUpdate;
-            final int unigramFrequencyForThisWord = target.getProbability();
-            final int offset = addressOfBigram
-                    - (mPosition + FormatSpec.PTNODE_ATTRIBUTE_FLAGS_SIZE);
-            final int bigramFlags = BinaryDictEncoderUtils.makeBigramFlags(bigramIterator.hasNext(),
-                    offset, bigram.getProbability(), unigramFrequencyForThisWord, bigram.mWord);
-            mPosition = BinaryDictEncoderUtils.writeUIntToBuffer(mBuffer, mPosition, bigramFlags,
-                    FormatSpec.PTNODE_ATTRIBUTE_FLAGS_SIZE);
-            mPosition += BinaryDictEncoderUtils.writeChildrenPosition(mBuffer, mPosition,
-                    Math.abs(offset));
-        }
-    }
-
-    @Override
-    public void writeForwardLinkAddress(final int forwardLinkAddress) {
-        mPosition = BinaryDictEncoderUtils.writeUIntToBuffer(mBuffer, mPosition, forwardLinkAddress,
-                FormatSpec.FORWARD_LINK_ADDRESS_SIZE);
-    }
-
-    @Override
-    public void writePtNode(final PtNode ptNode, final FusionDictionary dict) {
-        writePtNodeFlags(ptNode);
-        writeCharacters(ptNode.mChars, ptNode.hasSeveralChars());
-        writeFrequency(ptNode.getProbability());
-        writeChildrenPosition(ptNode);
-        writeShortcuts(ptNode.mShortcutTargets);
-        writeBigrams(ptNode.mBigrams, dict);
-    }
-}
diff --git a/tests/src/com/android/inputmethod/latin/makedict/Ver4DictDecoder.java b/tests/src/com/android/inputmethod/latin/makedict/Ver4DictDecoder.java
index 5e8417e..746431d 100644
--- a/tests/src/com/android/inputmethod/latin/makedict/Ver4DictDecoder.java
+++ b/tests/src/com/android/inputmethod/latin/makedict/Ver4DictDecoder.java
@@ -18,7 +18,7 @@
 
 import com.android.inputmethod.annotations.UsedForTesting;
 import com.android.inputmethod.latin.BinaryDictionary;
-import com.android.inputmethod.latin.utils.FileUtils;
+import com.android.inputmethod.latin.common.FileUtils;
 
 import java.io.File;
 import java.io.FileNotFoundException;
@@ -33,12 +33,7 @@
     final File mDictDirectory;
 
     @UsedForTesting
-    /* package */ Ver4DictDecoder(final File dictDirectory, final int factoryFlag) {
-        this(dictDirectory, null /* factory */);
-    }
-
-    @UsedForTesting
-    /* package */ Ver4DictDecoder(final File dictDirectory, final DictionaryBufferFactory factory) {
+    /* package */ Ver4DictDecoder(final File dictDirectory) {
         mDictDirectory = dictDirectory;
 
     }
@@ -88,21 +83,18 @@
 
         // Insert unigrams into the fusion dictionary.
         for (final WordProperty wordProperty : wordProperties) {
-            if (wordProperty.mIsBlacklistEntry) {
-                fusionDict.addBlacklistEntry(wordProperty.mWord, wordProperty.mShortcutTargets,
-                        wordProperty.mIsNotAWord);
-            } else {
-                fusionDict.add(wordProperty.mWord, wordProperty.mProbabilityInfo,
-                        wordProperty.mShortcutTargets, wordProperty.mIsNotAWord);
-            }
+            fusionDict.add(wordProperty.mWord, wordProperty.mProbabilityInfo,
+                    wordProperty.mIsNotAWord,
+                    wordProperty.mIsPossiblyOffensive);
         }
         // Insert bigrams into the fusion dictionary.
+        // TODO: Support ngrams.
         for (final WordProperty wordProperty : wordProperties) {
-            if (wordProperty.mBigrams == null) {
+            if (!wordProperty.mHasNgrams) {
                 continue;
             }
             final String word0 = wordProperty.mWord;
-            for (final WeightedString bigram : wordProperty.mBigrams) {
+            for (final WeightedString bigram : wordProperty.getBigrams()) {
                 fusionDict.setBigram(word0, bigram.mWord, bigram.mProbabilityInfo);
             }
         }
diff --git a/tests/src/com/android/inputmethod/latin/makedict/Ver4DictEncoder.java b/tests/src/com/android/inputmethod/latin/makedict/Ver4DictEncoder.java
deleted file mode 100644
index 76eaef4..0000000
--- a/tests/src/com/android/inputmethod/latin/makedict/Ver4DictEncoder.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.makedict;
-
-import com.android.inputmethod.annotations.UsedForTesting;
-import com.android.inputmethod.latin.BinaryDictionary;
-import com.android.inputmethod.latin.Dictionary;
-import com.android.inputmethod.latin.PrevWordsInfo;
-import com.android.inputmethod.latin.makedict.FormatSpec.FormatOptions;
-import com.android.inputmethod.latin.makedict.FusionDictionary.PtNode;
-import com.android.inputmethod.latin.utils.BinaryDictionaryUtils;
-import com.android.inputmethod.latin.utils.LocaleUtils;
-
-import java.io.File;
-import java.io.IOException;
-
-/**
- * An implementation of DictEncoder for version 4 binary dictionary.
- */
-@UsedForTesting
-public class Ver4DictEncoder implements DictEncoder {
-    private final File mDictPlacedDir;
-
-    @UsedForTesting
-    public Ver4DictEncoder(final File dictPlacedDir) {
-        mDictPlacedDir = dictPlacedDir;
-    }
-
-    // TODO: This builds a FusionDictionary first and iterates it to add words to the binary
-    // dictionary. However, it is possible to just add words directly to the binary dictionary
-    // instead.
-    // In the long run, when we stop supporting version 2, FusionDictionary will become deprecated
-    // and we can remove it. Then we'll be able to just call BinaryDictionary directly.
-    @Override
-    public void writeDictionary(FusionDictionary dict, FormatOptions formatOptions)
-            throws IOException, UnsupportedFormatException {
-        if (formatOptions.mVersion != FormatSpec.VERSION4) {
-            throw new UnsupportedFormatException("File header has a wrong version number : "
-                    + formatOptions.mVersion);
-        }
-        if (!mDictPlacedDir.isDirectory()) {
-            throw new UnsupportedFormatException("Given path is not a directory.");
-        }
-        if (!BinaryDictionaryUtils.createEmptyDictFile(mDictPlacedDir.getAbsolutePath(),
-                FormatSpec.VERSION4, LocaleUtils.constructLocaleFromString(
-                dict.mOptions.mAttributes.get(DictionaryHeader.DICTIONARY_LOCALE_KEY)),
-                dict.mOptions.mAttributes)) {
-            throw new IOException("Cannot create dictionary file : "
-                + mDictPlacedDir.getAbsolutePath());
-        }
-        final BinaryDictionary binaryDict = new BinaryDictionary(mDictPlacedDir.getAbsolutePath(),
-                0l, mDictPlacedDir.length(), true /* useFullEditDistance */,
-                LocaleUtils.constructLocaleFromString(dict.mOptions.mAttributes.get(
-                        DictionaryHeader.DICTIONARY_LOCALE_KEY)),
-                Dictionary.TYPE_USER /* Dictionary type. Does not matter for us */,
-                true /* isUpdatable */);
-        if (!binaryDict.isValidDictionary()) {
-            // Somehow createEmptyDictFile returned true, but the file was not created correctly
-            throw new IOException("Cannot create dictionary file");
-        }
-        for (final WordProperty wordProperty : dict) {
-            // TODO: switch to addMultipleDictionaryEntries when they support shortcuts
-            if (null == wordProperty.mShortcutTargets || wordProperty.mShortcutTargets.isEmpty()) {
-                if (!binaryDict.addUnigramEntry(wordProperty.mWord, wordProperty.getProbability(),
-                        null /* shortcutTarget */, 0 /* shortcutProbability */,
-                        wordProperty.mIsBeginningOfSentence, wordProperty.mIsNotAWord,
-                        wordProperty.mIsBlacklistEntry, 0 /* timestamp */)) {
-                    MakedictLog.e("Cannot add unigram entry for " + wordProperty.mWord);
-                }
-            } else {
-                for (final WeightedString shortcutTarget : wordProperty.mShortcutTargets) {
-                    if (!binaryDict.addUnigramEntry(wordProperty.mWord,
-                            wordProperty.getProbability(),
-                            shortcutTarget.mWord, shortcutTarget.getProbability(),
-                            wordProperty.mIsBeginningOfSentence, wordProperty.mIsNotAWord,
-                            wordProperty.mIsBlacklistEntry, 0 /* timestamp */)) {
-                        MakedictLog.e("Cannot add unigram entry for " + wordProperty.mWord
-                                + ", shortcutTarget: " + shortcutTarget.mWord);
-                        return;
-                    }
-                }
-            }
-            if (binaryDict.needsToRunGC(true /* mindsBlockByGC */)) {
-                if (!binaryDict.flushWithGC()) {
-                    MakedictLog.e("Cannot flush dict with GC.");
-                    return;
-                }
-            }
-        }
-        for (final WordProperty word0Property : dict) {
-            if (null == word0Property.mBigrams) continue;
-            for (final WeightedString word1 : word0Property.mBigrams) {
-                final PrevWordsInfo prevWordsInfo =
-                        new PrevWordsInfo(new PrevWordsInfo.WordInfo(word0Property.mWord));
-                if (!binaryDict.addNgramEntry(prevWordsInfo, word1.mWord,
-                        word1.getProbability(), 0 /* timestamp */)) {
-                    MakedictLog.e("Cannot add n-gram entry for "
-                            + prevWordsInfo + " -> " + word1.mWord);
-                    return;
-                }
-                if (binaryDict.needsToRunGC(true /* mindsBlockByGC */)) {
-                    if (!binaryDict.flushWithGC()) {
-                        MakedictLog.e("Cannot flush dict with GC.");
-                        return;
-                    }
-                }
-            }
-        }
-        if (!binaryDict.flushWithGC()) {
-            MakedictLog.e("Cannot flush dict with GC.");
-            return;
-        }
-        binaryDict.close();
-    }
-
-    @Override
-    public void setPosition(int position) {
-    }
-
-    @Override
-    public int getPosition() {
-        return 0;
-    }
-
-    @Override
-    public void writePtNodeCount(int ptNodeCount) {
-    }
-
-    @Override
-    public void writeForwardLinkAddress(int forwardLinkAddress) {
-    }
-
-    @Override
-    public void writePtNode(PtNode ptNode, FusionDictionary dict) {
-    }
-}
diff --git a/tests/src/com/android/inputmethod/latin/network/BlockingHttpClientTests.java b/tests/src/com/android/inputmethod/latin/network/BlockingHttpClientTests.java
new file mode 100644
index 0000000..8f24cdb
--- /dev/null
+++ b/tests/src/com/android/inputmethod/latin/network/BlockingHttpClientTests.java
@@ -0,0 +1,168 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.network;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.latin.network.BlockingHttpClient.ResponseProcessor;
+
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+
+import java.io.BufferedInputStream;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.util.Arrays;
+import java.util.Random;
+
+/**
+ * Tests for {@link BlockingHttpClient}.
+ */
+@SmallTest
+public class BlockingHttpClientTests extends AndroidTestCase {
+    @Mock HttpURLConnection mMockHttpConnection;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        MockitoAnnotations.initMocks(this);
+    }
+
+    public void testError_badGateway() throws IOException, AuthException {
+        when(mMockHttpConnection.getResponseCode()).thenReturn(HttpURLConnection.HTTP_BAD_GATEWAY);
+        final BlockingHttpClient client = new BlockingHttpClient(mMockHttpConnection);
+        final FakeErrorResponseProcessor processor = new FakeErrorResponseProcessor();
+
+        try {
+            client.execute(null /* empty request */, processor);
+            fail("Expecting an HttpException");
+        } catch (HttpException e) {
+            // expected HttpException
+            assertEquals(HttpURLConnection.HTTP_BAD_GATEWAY, e.getHttpStatusCode());
+        }
+    }
+
+    public void testError_clientTimeout() throws Exception {
+        when(mMockHttpConnection.getResponseCode()).thenReturn(
+                HttpURLConnection.HTTP_CLIENT_TIMEOUT);
+        final BlockingHttpClient client = new BlockingHttpClient(mMockHttpConnection);
+        final FakeErrorResponseProcessor processor = new FakeErrorResponseProcessor();
+
+        try {
+            client.execute(null /* empty request */, processor);
+            fail("Expecting an HttpException");
+        } catch (HttpException e) {
+            // expected HttpException
+            assertEquals(HttpURLConnection.HTTP_CLIENT_TIMEOUT, e.getHttpStatusCode());
+        }
+    }
+
+    public void testError_forbiddenWithRequest() throws Exception {
+        final OutputStream mockOutputStream = Mockito.mock(OutputStream.class);
+        when(mMockHttpConnection.getResponseCode()).thenReturn(HttpURLConnection.HTTP_FORBIDDEN);
+        when(mMockHttpConnection.getOutputStream()).thenReturn(mockOutputStream);
+        final BlockingHttpClient client = new BlockingHttpClient(mMockHttpConnection);
+        final FakeErrorResponseProcessor processor = new FakeErrorResponseProcessor();
+
+        try {
+            client.execute(new byte[100], processor);
+            fail("Expecting an HttpException");
+        } catch (HttpException e) {
+            assertEquals(HttpURLConnection.HTTP_FORBIDDEN, e.getHttpStatusCode());
+        }
+        verify(mockOutputStream).write(any(byte[].class), eq(0), eq(100));
+    }
+
+    public void testSuccess_emptyRequest() throws Exception {
+        final Random rand = new Random();
+        byte[] response = new byte[100];
+        rand.nextBytes(response);
+        when(mMockHttpConnection.getResponseCode()).thenReturn(HttpURLConnection.HTTP_OK);
+        when(mMockHttpConnection.getInputStream()).thenReturn(new ByteArrayInputStream(response));
+        final BlockingHttpClient client = new BlockingHttpClient(mMockHttpConnection);
+        final FakeSuccessResponseProcessor processor =
+                new FakeSuccessResponseProcessor(response);
+
+        client.execute(null /* empty request */, processor);
+        assertTrue("ResponseProcessor was not invoked", processor.mInvoked);
+    }
+
+    public void testSuccess() throws Exception {
+        final OutputStream mockOutputStream = Mockito.mock(OutputStream.class);
+        final Random rand = new Random();
+        byte[] response = new byte[100];
+        rand.nextBytes(response);
+        when(mMockHttpConnection.getOutputStream()).thenReturn(mockOutputStream);
+        when(mMockHttpConnection.getResponseCode()).thenReturn(HttpURLConnection.HTTP_OK);
+        when(mMockHttpConnection.getInputStream()).thenReturn(new ByteArrayInputStream(response));
+        final BlockingHttpClient client = new BlockingHttpClient(mMockHttpConnection);
+        final FakeSuccessResponseProcessor processor =
+                new FakeSuccessResponseProcessor(response);
+
+        client.execute(new byte[100], processor);
+        assertTrue("ResponseProcessor was not invoked", processor.mInvoked);
+    }
+
+    static class FakeErrorResponseProcessor implements ResponseProcessor<Void> {
+        @Override
+        public Void onSuccess(InputStream response) {
+            fail("Expected an error but received success");
+            return null;
+        }
+    }
+
+    private static class FakeSuccessResponseProcessor implements ResponseProcessor<Void> {
+        private final byte[] mExpectedResponse;
+
+        boolean mInvoked;
+
+        FakeSuccessResponseProcessor(byte[] expectedResponse) {
+            mExpectedResponse = expectedResponse;
+        }
+
+        @Override
+        public Void onSuccess(InputStream response) {
+            try {
+                mInvoked = true;
+                BufferedInputStream in = new BufferedInputStream(response);
+                ByteArrayOutputStream buffer = new ByteArrayOutputStream();
+                int read = 0;
+                while ((read = in.read()) != -1) {
+                    buffer.write(read);
+                }
+                byte[] actualResponse = buffer.toByteArray();
+                in.close();
+                assertTrue("Response doesn't match",
+                        Arrays.equals(mExpectedResponse, actualResponse));
+            } catch (IOException ex) {
+                fail("IOException in onSuccess");
+            }
+            return null;
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/latin/network/HttpUrlConnectionBuilderTests.java b/tests/src/com/android/inputmethod/latin/network/HttpUrlConnectionBuilderTests.java
new file mode 100644
index 0000000..5b3e78e
--- /dev/null
+++ b/tests/src/com/android/inputmethod/latin/network/HttpUrlConnectionBuilderTests.java
@@ -0,0 +1,154 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.network;
+
+import static com.android.inputmethod.latin.network.HttpUrlConnectionBuilder.MODE_BI_DIRECTIONAL;
+import static com.android.inputmethod.latin.network.HttpUrlConnectionBuilder.MODE_DOWNLOAD_ONLY;
+import static com.android.inputmethod.latin.network.HttpUrlConnectionBuilder.MODE_UPLOAD_ONLY;
+
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+
+
+/**
+ * Tests for {@link HttpUrlConnectionBuilder}.
+ */
+@SmallTest
+public class HttpUrlConnectionBuilderTests extends AndroidTestCase {
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+    }
+
+    public void testSetUrl_malformed() {
+        HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
+        try {
+            builder.setUrl("dadasd!@%@!:11");
+            fail("Expected a MalformedURLException.");
+        } catch (MalformedURLException e) {
+            // Expected
+        }
+    }
+
+    public void testSetConnectTimeout_invalid() {
+        HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
+        try {
+            builder.setConnectTimeout(-1);
+            fail("Expected an IllegalArgumentException.");
+        } catch (IllegalArgumentException e) {
+            // Expected
+        }
+    }
+
+    public void testSetConnectTimeout() throws IOException {
+        HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
+        builder.setUrl("https://www.example.com");
+        builder.setConnectTimeout(8765);
+        HttpURLConnection connection = builder.build();
+        assertEquals(8765, connection.getConnectTimeout());
+    }
+
+    public void testSetReadTimeout_invalid() {
+        HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
+        try {
+            builder.setReadTimeout(-1);
+            fail("Expected an IllegalArgumentException.");
+        } catch (IllegalArgumentException e) {
+            // Expected
+        }
+    }
+
+    public void testSetReadTimeout() throws IOException {
+        HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
+        builder.setUrl("https://www.example.com");
+        builder.setReadTimeout(8765);
+        HttpURLConnection connection = builder.build();
+        assertEquals(8765, connection.getReadTimeout());
+    }
+
+    public void testAddHeader() throws IOException {
+        HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
+        builder.setUrl("http://www.example.com");
+        builder.addHeader("some-random-key", "some-random-value");
+        HttpURLConnection connection = builder.build();
+        assertEquals("some-random-value", connection.getRequestProperty("some-random-key"));
+    }
+
+    public void testSetUseCache_notSet() throws IOException {
+        HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
+        builder.setUrl("http://www.example.com");
+        HttpURLConnection connection = builder.build();
+        assertFalse(connection.getUseCaches());
+    }
+
+    public void testSetUseCache_false() throws IOException {
+        HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
+        builder.setUrl("http://www.example.com");
+        HttpURLConnection connection = builder.build();
+        connection.setUseCaches(false);
+        assertFalse(connection.getUseCaches());
+    }
+
+    public void testSetUseCache_true() throws IOException {
+        HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
+        builder.setUrl("http://www.example.com");
+        HttpURLConnection connection = builder.build();
+        connection.setUseCaches(true);
+        assertTrue(connection.getUseCaches());
+    }
+
+    public void testSetMode_uploadOnly() throws IOException {
+        HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
+        builder.setUrl("http://www.example.com");
+        builder.setMode(MODE_UPLOAD_ONLY);
+        HttpURLConnection connection = builder.build();
+        assertTrue(connection.getDoInput());
+        assertFalse(connection.getDoOutput());
+    }
+
+    public void testSetMode_downloadOnly() throws IOException {
+        HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
+        builder.setUrl("https://www.example.com");
+        builder.setMode(MODE_DOWNLOAD_ONLY);
+        HttpURLConnection connection = builder.build();
+        assertFalse(connection.getDoInput());
+        assertTrue(connection.getDoOutput());
+    }
+
+    public void testSetMode_bidirectional() throws IOException {
+        HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
+        builder.setUrl("https://www.example.com");
+        builder.setMode(MODE_BI_DIRECTIONAL);
+        HttpURLConnection connection = builder.build();
+        assertTrue(connection.getDoInput());
+        assertTrue(connection.getDoOutput());
+    }
+
+    public void testSetAuthToken() throws IOException {
+        HttpUrlConnectionBuilder builder = new HttpUrlConnectionBuilder();
+        builder.setUrl("https://www.example.com");
+        builder.setAuthToken("some-random-auth-token");
+        HttpURLConnection connection = builder.build();
+        assertEquals("some-random-auth-token",
+                connection.getRequestProperty(HttpUrlConnectionBuilder.HTTP_HEADER_AUTHORIZATION));
+    }
+}
diff --git a/tests/src/com/android/inputmethod/latin/personalization/ContextualDictionaryTests.java b/tests/src/com/android/inputmethod/latin/personalization/ContextualDictionaryTests.java
deleted file mode 100644
index 565fadb..0000000
--- a/tests/src/com/android/inputmethod/latin/personalization/ContextualDictionaryTests.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.personalization;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-
-import com.android.inputmethod.latin.Dictionary;
-import com.android.inputmethod.latin.DictionaryFacilitator;
-import com.android.inputmethod.latin.ExpandableBinaryDictionary;
-
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-
-/**
- * Unit tests for contextual dictionary
- */
-@LargeTest
-public class ContextualDictionaryTests extends AndroidTestCase {
-    private static final String TAG = ContextualDictionaryTests.class.getSimpleName();
-
-    private static final Locale LOCALE_EN_US = new Locale("en", "US");
-
-    private DictionaryFacilitator getDictionaryFacilitator() {
-        final ArrayList<String> dictTypes = new ArrayList<>();
-        dictTypes.add(Dictionary.TYPE_CONTEXTUAL);
-        final DictionaryFacilitator dictionaryFacilitator = new DictionaryFacilitator();
-        dictionaryFacilitator.resetDictionariesForTesting(getContext(), LOCALE_EN_US, dictTypes,
-                new HashMap<String, File>(), new HashMap<String, Map<String, String>>());
-        return dictionaryFacilitator;
-    }
-
-    public void testAddPhrase() {
-        final DictionaryFacilitator dictionaryFacilitator = getDictionaryFacilitator();
-        final String[] phrase = new String[] {"a", "b", "c", "d"};
-        final int probability = 100;
-        final int bigramProbabilityForWords = 150;
-        final int bigramProbabilityForPhrases = 200;
-        dictionaryFacilitator.addPhraseToContextualDictionary(
-                phrase, probability, bigramProbabilityForWords, bigramProbabilityForPhrases);
-        final ExpandableBinaryDictionary contextualDictionary =
-                dictionaryFacilitator.getSubDictForTesting(Dictionary.TYPE_CONTEXTUAL);
-        contextualDictionary.waitAllTasksForTests();
-        // Word
-        assertTrue(contextualDictionary.isInDictionary("a"));
-        assertTrue(contextualDictionary.isInDictionary("b"));
-        assertTrue(contextualDictionary.isInDictionary("c"));
-        assertTrue(contextualDictionary.isInDictionary("d"));
-        // Phrase
-        assertTrue(contextualDictionary.isInDictionary("a b c d"));
-        assertTrue(contextualDictionary.isInDictionary("b c d"));
-        assertTrue(contextualDictionary.isInDictionary("c d"));
-        assertFalse(contextualDictionary.isInDictionary("a b c"));
-        assertFalse(contextualDictionary.isInDictionary("abcd"));
-        // TODO: Add tests for probability.
-        // TODO: Add tests for n-grams.
-    }
-}
diff --git a/tests/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryTests.java b/tests/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryTests.java
deleted file mode 100644
index 0f2f981..0000000
--- a/tests/src/com/android/inputmethod/latin/personalization/PersonalizationDictionaryTests.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.personalization;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Random;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-
-import com.android.inputmethod.latin.BinaryDictionary;
-import com.android.inputmethod.latin.Dictionary;
-import com.android.inputmethod.latin.DictionaryFacilitator;
-import com.android.inputmethod.latin.ExpandableBinaryDictionary;
-import com.android.inputmethod.latin.ExpandableBinaryDictionary.AddMultipleDictionaryEntriesCallback;
-import com.android.inputmethod.latin.makedict.CodePointUtils;
-import com.android.inputmethod.latin.settings.SpacingAndPunctuations;
-
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.util.Log;
-
-/**
- * Unit tests for personalization dictionary
- */
-@LargeTest
-public class PersonalizationDictionaryTests extends AndroidTestCase {
-    private static final String TAG = PersonalizationDictionaryTests.class.getSimpleName();
-
-    private static final Locale LOCALE_EN_US = new Locale("en", "US");
-    private static final String DUMMY_PACKAGE_NAME = "test.package.name";
-    private static final long TIMEOUT_TO_WAIT_DICTIONARY_OPERATIONS_IN_SECONDS = 120;
-
-    private DictionaryFacilitator getDictionaryFacilitator() {
-        final ArrayList<String> dictTypes = new ArrayList<>();
-        dictTypes.add(Dictionary.TYPE_MAIN);
-        dictTypes.add(Dictionary.TYPE_PERSONALIZATION);
-        final DictionaryFacilitator dictionaryFacilitator = new DictionaryFacilitator();
-        dictionaryFacilitator.resetDictionariesForTesting(getContext(), LOCALE_EN_US, dictTypes,
-                new HashMap<String, File>(), new HashMap<String, Map<String, String>>());
-        return dictionaryFacilitator;
-    }
-
-    public void testAddManyTokens() {
-        final DictionaryFacilitator dictionaryFacilitator = getDictionaryFacilitator();
-        dictionaryFacilitator.clearPersonalizationDictionary();
-        final int dataChunkCount = 20;
-        final int wordCountInOneChunk = 2000;
-        final Random random = new Random(System.currentTimeMillis());
-        final int[] codePointSet = CodePointUtils.LATIN_ALPHABETS_LOWER;
-
-        final SpacingAndPunctuations spacingAndPunctuations =
-                new SpacingAndPunctuations(getContext().getResources());
-
-        final int timeStampInSeconds = (int)TimeUnit.MILLISECONDS.toSeconds(
-                System.currentTimeMillis());
-
-        for (int i = 0; i < dataChunkCount; i++) {
-            final ArrayList<String> tokens = new ArrayList<>();
-            for (int j = 0; j < wordCountInOneChunk; j++) {
-                tokens.add(CodePointUtils.generateWord(random, codePointSet));
-            }
-            final PersonalizationDataChunk personalizationDataChunk = new PersonalizationDataChunk(
-                    true /* inputByUser */, tokens, timeStampInSeconds, DUMMY_PACKAGE_NAME);
-            final CountDownLatch countDownLatch = new CountDownLatch(1);
-            final AddMultipleDictionaryEntriesCallback callback =
-                    new AddMultipleDictionaryEntriesCallback() {
-                        @Override
-                        public void onFinished() {
-                            countDownLatch.countDown();
-                        }
-                    };
-            dictionaryFacilitator.addEntriesToPersonalizationDictionary(personalizationDataChunk,
-                    spacingAndPunctuations, callback);
-            try {
-                countDownLatch.await(TIMEOUT_TO_WAIT_DICTIONARY_OPERATIONS_IN_SECONDS,
-                        TimeUnit.SECONDS);
-            } catch (InterruptedException e) {
-                Log.e(TAG, "Interrupted while waiting for finishing dictionary operations.", e);
-            }
-        }
-        dictionaryFacilitator.flushPersonalizationDictionary();
-        try {
-            dictionaryFacilitator.waitForLoadingDictionariesForTesting(
-                    TIMEOUT_TO_WAIT_DICTIONARY_OPERATIONS_IN_SECONDS, TimeUnit.SECONDS);
-        } catch (InterruptedException e) {
-            Log.e(TAG, "Interrupted while waiting for finishing dictionary operations.", e);
-        }
-        final String dictName = ExpandableBinaryDictionary.getDictName(
-                PersonalizationDictionary.NAME, LOCALE_EN_US, null /* dictFile */);
-        final File dictFile = ExpandableBinaryDictionary.getDictFile(
-                getContext(), dictName, null /* dictFile */);
-
-        final BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile.getAbsolutePath(),
-                0 /* offset */, 0 /* size */,
-                true /* useFullEditDistance */, LOCALE_EN_US, Dictionary.TYPE_PERSONALIZATION,
-                true /* isUpdatable */);
-        assertTrue(binaryDictionary.isValidDictionary());
-    }
-}
diff --git a/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java b/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java
index f87f3b4..559f286 100644
--- a/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java
+++ b/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTests.java
@@ -21,19 +21,11 @@
 import android.util.Log;
 
 import com.android.inputmethod.latin.ExpandableBinaryDictionary;
-import com.android.inputmethod.latin.PrevWordsInfo;
-import com.android.inputmethod.latin.PrevWordsInfo.WordInfo;
 import com.android.inputmethod.latin.utils.BinaryDictionaryUtils;
-import com.android.inputmethod.latin.utils.DistracterFilter;
-import com.android.inputmethod.latin.utils.FileUtils;
 
 import java.io.File;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
 import java.util.Locale;
 import java.util.Random;
-import java.util.concurrent.TimeUnit;
 
 /**
  * Unit tests for UserHistoryDictionary
@@ -41,22 +33,47 @@
 @LargeTest
 public class UserHistoryDictionaryTests extends AndroidTestCase {
     private static final String TAG = UserHistoryDictionaryTests.class.getSimpleName();
-
-    private static final String[] CHARACTERS = {
-        "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
-        "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"
-    };
+    private static final int WAIT_FOR_WRITING_FILE_IN_MILLISECONDS = 3000;
+    private static final String TEST_ACCOUNT = "account@example.com";
 
     private int mCurrentTime = 0;
 
+    private static void printAllFiles(final File dir) {
+        Log.d(TAG, dir.getAbsolutePath());
+        for (final File file : dir.listFiles()) {
+            Log.d(TAG, "  " + file.getName());
+        }
+    }
+
+    private static void assertDictionaryExists(final UserHistoryDictionary dict,
+            final File dictFile) {
+        Log.d(TAG, "waiting for writing ...");
+        dict.waitAllTasksForTests();
+        if (!dictFile.exists()) {
+            try {
+                Log.d(TAG, dictFile + " is not existing. Wait "
+                        + WAIT_FOR_WRITING_FILE_IN_MILLISECONDS + " ms for writing.");
+                printAllFiles(dictFile.getParentFile());
+                Thread.sleep(WAIT_FOR_WRITING_FILE_IN_MILLISECONDS);
+            } catch (final InterruptedException e) {
+                Log.e(TAG, "Interrupted during waiting for writing the dict file.");
+            }
+        }
+        assertTrue("Following dictionary file doesn't exist: " + dictFile, dictFile.exists());
+    }
+
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         resetCurrentTimeForTestMode();
+        UserHistoryDictionaryTestsHelper.removeAllTestDictFiles(
+                UserHistoryDictionaryTestsHelper.TEST_LOCALE_PREFIX, mContext);
     }
 
     @Override
     protected void tearDown() throws Exception {
+        UserHistoryDictionaryTestsHelper.removeAllTestDictFiles(
+                UserHistoryDictionaryTestsHelper.TEST_LOCALE_PREFIX, mContext);
         stopTestModeInNativeCode();
         super.tearDown();
     }
@@ -66,20 +83,6 @@
         setCurrentTimeForTestMode(mCurrentTime);
     }
 
-    private void forcePassingShortTime() {
-        // 3 days.
-        final int timeToElapse = (int)TimeUnit.DAYS.toSeconds(3);
-        mCurrentTime += timeToElapse;
-        setCurrentTimeForTestMode(mCurrentTime);
-    }
-
-    private void forcePassingLongTime() {
-        // 365 days.
-        final int timeToElapse = (int)TimeUnit.DAYS.toSeconds(365);
-        mCurrentTime += timeToElapse;
-        setCurrentTimeForTestMode(mCurrentTime);
-    }
-
     private static int setCurrentTimeForTestMode(final int currentTime) {
         return BinaryDictionaryUtils.setCurrentTimeForTest(currentTime);
     }
@@ -89,199 +92,122 @@
     }
 
     /**
-     * Generates a random word.
-     */
-    private static String generateWord(final int value) {
-        final int lengthOfChars = CHARACTERS.length;
-        StringBuilder builder = new StringBuilder();
-        long lvalue = Math.abs((long)value);
-        while (lvalue > 0) {
-            builder.append(CHARACTERS[(int)(lvalue % lengthOfChars)]);
-            lvalue /= lengthOfChars;
-        }
-        return builder.toString();
-    }
-
-    private static List<String> generateWords(final int number, final Random random) {
-        final HashSet<String> wordSet = new HashSet<>();
-        while (wordSet.size() < number) {
-            wordSet.add(generateWord(random.nextInt()));
-        }
-        return new ArrayList<>(wordSet);
-    }
-
-    private static void addToDict(final UserHistoryDictionary dict, final List<String> words) {
-        PrevWordsInfo prevWordsInfo = PrevWordsInfo.EMPTY_PREV_WORDS_INFO;
-        for (String word : words) {
-            UserHistoryDictionary.addToDictionary(dict, prevWordsInfo, word, true,
-                    (int)TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis()),
-                    DistracterFilter.EMPTY_DISTRACTER_FILTER);
-            prevWordsInfo = prevWordsInfo.getNextPrevWordsInfo(new WordInfo(word));
-        }
-    }
-
-    /**
-     * @param checkContents if true, checks whether written words are actually in the dictionary
-     * or not.
-     */
-    private void addAndWriteRandomWords(final Locale locale, final int numberOfWords,
-            final Random random, final boolean checkContents) {
-        final List<String> words = generateWords(numberOfWords, random);
-        final UserHistoryDictionary dict = PersonalizationHelper.getUserHistoryDictionary(
-                mContext, locale);
-        // Add random words to the user history dictionary.
-        addToDict(dict, words);
-        if (checkContents) {
-            dict.waitAllTasksForTests();
-            for (int i = 0; i < numberOfWords; ++i) {
-                final String word = words.get(i);
-                assertTrue(dict.isInDictionary(word));
-            }
-        }
-        // write to file.
-        dict.close();
-    }
-
-    /**
      * Clear all entries in the user history dictionary.
-     * @param locale dummy locale for testing.
+     * @param dict the user history dictionary.
      */
-    private void clearHistory(final Locale locale) {
-        final UserHistoryDictionary dict = PersonalizationHelper.getUserHistoryDictionary(
-                mContext, locale);
+    private static void clearHistory(final UserHistoryDictionary dict) {
         dict.waitAllTasksForTests();
         dict.clear();
         dict.close();
         dict.waitAllTasksForTests();
     }
 
-    /**
-     * Shut down executer and wait until all operations of user history are done.
-     * @param locale dummy locale for testing.
-     */
-    private void waitForWriting(final Locale locale) {
-        final UserHistoryDictionary dict = PersonalizationHelper.getUserHistoryDictionary(
-                mContext, locale);
-        dict.waitAllTasksForTests();
-    }
-
-    public void testRandomWords() {
+    private void doTestRandomWords(final String testAccount) {
         Log.d(TAG, "This test can be used for profiling.");
         Log.d(TAG, "Usage: please set UserHistoryDictionary.PROFILE_SAVE_RESTORE to true.");
-        final Locale dummyLocale = new Locale("test_random_words" + System.currentTimeMillis());
-        final String dictName = ExpandableBinaryDictionary.getDictName(
-                UserHistoryDictionary.NAME, dummyLocale, null /* dictFile */);
+        final Locale dummyLocale = UserHistoryDictionaryTestsHelper.getDummyLocale("random_words");
+        final String dictName = UserHistoryDictionary.getUserHistoryDictName(
+                UserHistoryDictionary.NAME, dummyLocale,
+                null /* dictFile */,
+                testAccount /* account */);
         final File dictFile = ExpandableBinaryDictionary.getDictFile(
                 mContext, dictName, null /* dictFile */);
+        final UserHistoryDictionary dict = PersonalizationHelper.getUserHistoryDictionary(
+                getContext(), dummyLocale, testAccount);
+        clearHistory(dict);
 
         final int numberOfWords = 1000;
         final Random random = new Random(123456);
+        assertTrue(UserHistoryDictionaryTestsHelper.addAndWriteRandomWords(
+                dict, numberOfWords, random, true /* checksContents */, mCurrentTime));
+        assertDictionaryExists(dict, dictFile);
+    }
 
-        try {
-            clearHistory(dummyLocale);
-            addAndWriteRandomWords(dummyLocale, numberOfWords, random,
-                    true /* checksContents */);
-        } finally {
-            Log.d(TAG, "waiting for writing ...");
-            waitForWriting(dummyLocale);
-            assertTrue("check exisiting of " + dictFile, dictFile.exists());
-            FileUtils.deleteRecursively(dictFile);
-        }
+    public void testRandomWords_NullAccount() {
+        doTestRandomWords(null /* testAccount */);
+    }
+
+    public void testRandomWords() {
+        doTestRandomWords(TEST_ACCOUNT);
     }
 
     public void testStressTestForSwitchingLanguagesAndAddingWords() {
+        doTestStressTestForSwitchingLanguagesAndAddingWords(TEST_ACCOUNT);
+    }
+
+    public void testStressTestForSwitchingLanguagesAndAddingWords_NullAccount() {
+        doTestStressTestForSwitchingLanguagesAndAddingWords(null /* testAccount */);
+    }
+
+    private void doTestStressTestForSwitchingLanguagesAndAddingWords(final String testAccount) {
         final int numberOfLanguages = 2;
         final int numberOfLanguageSwitching = 80;
         final int numberOfWordsInsertedForEachLanguageSwitch = 100;
 
         final File dictFiles[] = new File[numberOfLanguages];
-        final Locale dummyLocales[] = new Locale[numberOfLanguages];
+        final UserHistoryDictionary dicts[] = new UserHistoryDictionary[numberOfLanguages];
+
         try {
             final Random random = new Random(123456);
 
             // Create filename suffixes for this test.
             for (int i = 0; i < numberOfLanguages; i++) {
-                dummyLocales[i] = new Locale("test_switching_languages" + i);
-                final String dictName = ExpandableBinaryDictionary.getDictName(
-                        UserHistoryDictionary.NAME, dummyLocales[i], null /* dictFile */);
+                final Locale dummyLocale =
+                        UserHistoryDictionaryTestsHelper.getDummyLocale("switching_languages" + i);
+                final String dictName = UserHistoryDictionary.getUserHistoryDictName(
+                        UserHistoryDictionary.NAME, dummyLocale, null /* dictFile */,
+                        testAccount /* account */);
                 dictFiles[i] = ExpandableBinaryDictionary.getDictFile(
                         mContext, dictName, null /* dictFile */);
-                clearHistory(dummyLocales[i]);
+                dicts[i] = PersonalizationHelper.getUserHistoryDictionary(getContext(),
+                        dummyLocale, testAccount);
+                clearHistory(dicts[i]);
             }
 
             final long start = System.currentTimeMillis();
 
             for (int i = 0; i < numberOfLanguageSwitching; i++) {
                 final int index = i % numberOfLanguages;
-                // Switch languages to testFilenameSuffixes[index].
-                addAndWriteRandomWords(dummyLocales[index],
-                        numberOfWordsInsertedForEachLanguageSwitch, random,
-                        false /* checksContents */);
+                // Switch to dicts[index].
+                assertTrue(UserHistoryDictionaryTestsHelper.addAndWriteRandomWords(dicts[index],
+                        numberOfWordsInsertedForEachLanguageSwitch,
+                        random,
+                        false /* checksContents */,
+                        mCurrentTime));
             }
 
             final long end = System.currentTimeMillis();
             Log.d(TAG, "testStressTestForSwitchingLanguageAndAddingWords took "
                     + (end - start) + " ms");
         } finally {
-            Log.d(TAG, "waiting for writing ...");
             for (int i = 0; i < numberOfLanguages; i++) {
-                waitForWriting(dummyLocales[i]);
-            }
-            for (final File dictFile : dictFiles) {
-                assertTrue("check exisiting of " + dictFile, dictFile.exists());
-                FileUtils.deleteRecursively(dictFile);
+                assertDictionaryExists(dicts[i], dictFiles[i]);
             }
         }
     }
 
     public void testAddManyWords() {
-        final Locale dummyLocale = new Locale("test_random_words" + System.currentTimeMillis());
-        final String dictName = ExpandableBinaryDictionary.getDictName(
-                UserHistoryDictionary.NAME, dummyLocale, null /* dictFile */);
+        doTestAddManyWords(TEST_ACCOUNT);
+    }
+
+    public void testAddManyWords_NullAccount() {
+        doTestAddManyWords(null /* testAccount */);
+    }
+
+    private void doTestAddManyWords(final String testAccount) {
+        final Locale dummyLocale =
+                UserHistoryDictionaryTestsHelper.getDummyLocale("many_random_words");
+        final String dictName = UserHistoryDictionary.getUserHistoryDictName(
+                UserHistoryDictionary.NAME, dummyLocale, null /* dictFile */, testAccount);
         final File dictFile = ExpandableBinaryDictionary.getDictFile(
                 mContext, dictName, null /* dictFile */);
         final int numberOfWords = 10000;
         final Random random = new Random(123456);
-        clearHistory(dummyLocale);
-        try {
-            addAndWriteRandomWords(dummyLocale, numberOfWords, random, true /* checksContents */);
-        } finally {
-            Log.d(TAG, "waiting for writing ...");
-            waitForWriting(dummyLocale);
-            assertTrue("check exisiting of " + dictFile, dictFile.exists());
-            FileUtils.deleteRecursively(dictFile);
-        }
+        final UserHistoryDictionary dict = PersonalizationHelper.getUserHistoryDictionary(
+                getContext(), dummyLocale, testAccount);
+        clearHistory(dict);
+        assertTrue(UserHistoryDictionaryTestsHelper.addAndWriteRandomWords(dict,
+                numberOfWords, random, true /* checksContents */, mCurrentTime));
+        assertDictionaryExists(dict, dictFile);
     }
-
-    public void testDecaying() {
-        final Locale dummyLocale = new Locale("test_decaying" + System.currentTimeMillis());
-        final int numberOfWords = 5000;
-        final Random random = new Random(123456);
-        resetCurrentTimeForTestMode();
-        clearHistory(dummyLocale);
-        final List<String> words = generateWords(numberOfWords, random);
-        final UserHistoryDictionary dict =
-                PersonalizationHelper.getUserHistoryDictionary(getContext(), dummyLocale);
-        dict.waitAllTasksForTests();
-        PrevWordsInfo prevWordsInfo = PrevWordsInfo.EMPTY_PREV_WORDS_INFO;
-        for (final String word : words) {
-            UserHistoryDictionary.addToDictionary(dict, prevWordsInfo, word, true, mCurrentTime,
-                    DistracterFilter.EMPTY_DISTRACTER_FILTER);
-            prevWordsInfo = prevWordsInfo.getNextPrevWordsInfo(new WordInfo(word));
-            dict.waitAllTasksForTests();
-            assertTrue(dict.isInDictionary(word));
-        }
-        forcePassingShortTime();
-        dict.runGCIfRequired();
-        dict.waitAllTasksForTests();
-        for (final String word : words) {
-            assertTrue(dict.isInDictionary(word));
-        }
-        forcePassingLongTime();
-        dict.runGCIfRequired();
-        dict.waitAllTasksForTests();
-        for (final String word : words) {
-            assertFalse(dict.isInDictionary(word));
-        }
-    }
-}
+}
\ No newline at end of file
diff --git a/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTestsHelper.java b/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTestsHelper.java
new file mode 100644
index 0000000..4b7b9bc
--- /dev/null
+++ b/tests/src/com/android/inputmethod/latin/personalization/UserHistoryDictionaryTestsHelper.java
@@ -0,0 +1,144 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.personalization;
+
+import android.content.Context;
+
+import com.android.inputmethod.latin.BinaryDictionary;
+import com.android.inputmethod.latin.NgramContext;
+import com.android.inputmethod.latin.NgramContext.WordInfo;
+import com.android.inputmethod.latin.common.FileUtils;
+
+import java.io.File;
+import java.io.FilenameFilter;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Random;
+
+/**
+ * Utility class for helping while running tests involving {@link UserHistoryDictionary}.
+ */
+public class UserHistoryDictionaryTestsHelper {
+
+    /**
+     * Locale prefix for generating dummy locales for tests.
+     */
+    public static final String TEST_LOCALE_PREFIX = "test-";
+
+    /**
+     * Characters for generating random words.
+     */
+    private static final String[] CHARACTERS = {
+        "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
+        "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"
+    };
+
+    /**
+     * Remove all the test dictionary files created for the given locale.
+     */
+    public static void removeAllTestDictFiles(final String filter, final Context context) {
+        final FilenameFilter filenameFilter = new FilenameFilter() {
+            @Override
+            public boolean accept(final File dir, final String filename) {
+                return filename.startsWith(UserHistoryDictionary.NAME + "." + filter);
+            }
+        };
+        FileUtils.deleteFilteredFiles(context.getFilesDir(), filenameFilter);
+    }
+
+    /**
+     * Generates and writes random words to dictionary. Caller can be assured
+     * that the write tasks would be finished; and its success would be reflected
+     * in the returned boolean.
+     *
+     * @param dict {@link UserHistoryDictionary} to which words should be added.
+     * @param numberOfWords number of words to be added.
+     * @param random helps generate random words.
+     * @param checkContents if true, checks whether written words are actually in the dictionary.
+     * @param currentTime timestamp that would be used for adding the words.
+     * @returns true if all words have been written to dictionary successfully.
+     */
+    public static boolean addAndWriteRandomWords(final UserHistoryDictionary dict,
+            final int numberOfWords, final Random random, final boolean checkContents,
+            final int currentTime) {
+        final List<String> words = generateWords(numberOfWords, random);
+        // Add random words to the user history dictionary.
+        addWordsToDictionary(dict, words, currentTime);
+        boolean success = true;
+        if (checkContents) {
+            dict.waitAllTasksForTests();
+            for (int i = 0; i < numberOfWords; ++i) {
+                final String word = words.get(i);
+                if (!dict.isInDictionary(word)) {
+                    success = false;
+                    break;
+                }
+            }
+        }
+        // write to file.
+        dict.close();
+        dict.waitAllTasksForTests();
+        return success;
+    }
+
+    private static void addWordsToDictionary(final UserHistoryDictionary dict,
+            final List<String> words, final int timestamp) {
+        NgramContext ngramContext = NgramContext.getEmptyPrevWordsContext(
+                BinaryDictionary.MAX_PREV_WORD_COUNT_FOR_N_GRAM);
+        for (final String word : words) {
+            UserHistoryDictionary.addToDictionary(dict, ngramContext, word, true, timestamp);
+            ngramContext = ngramContext.getNextNgramContext(new WordInfo(word));
+        }
+    }
+
+    /**
+     * Creates unique test locale for using within tests.
+     */
+    public static Locale getDummyLocale(final String name) {
+        return new Locale(TEST_LOCALE_PREFIX + name + System.currentTimeMillis());
+    }
+
+    /**
+     * Generates random words.
+     *
+     * @param numberOfWords number of words to generate.
+     * @param random salt used for generating random words.
+     */
+    public static List<String> generateWords(final int numberOfWords, final Random random) {
+        final HashSet<String> wordSet = new HashSet<>();
+        while (wordSet.size() < numberOfWords) {
+            wordSet.add(generateWord(random.nextInt()));
+        }
+        return new ArrayList<>(wordSet);
+    }
+
+    /**
+     * Generates a random word.
+     */
+    private static String generateWord(final int value) {
+        final int lengthOfChars = CHARACTERS.length;
+        final StringBuilder builder = new StringBuilder();
+        long lvalue = Math.abs((long)value);
+        while (lvalue > 0) {
+            builder.append(CHARACTERS[(int)(lvalue % lengthOfChars)]);
+            lvalue /= lengthOfChars;
+        }
+        return builder.toString();
+    }
+}
diff --git a/tests/src/com/android/inputmethod/latin/settings/AccountsSettingsFragmentTests.java b/tests/src/com/android/inputmethod/latin/settings/AccountsSettingsFragmentTests.java
new file mode 100644
index 0000000..7a019c3
--- /dev/null
+++ b/tests/src/com/android/inputmethod/latin/settings/AccountsSettingsFragmentTests.java
@@ -0,0 +1,171 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.settings;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.test.ActivityInstrumentationTestCase2;
+import android.test.suitebuilder.annotation.MediumTest;
+import android.view.View;
+import android.widget.ListView;
+
+import com.android.inputmethod.latin.utils.ManagedProfileUtils;
+
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+@MediumTest
+public class AccountsSettingsFragmentTests
+        extends ActivityInstrumentationTestCase2<TestFragmentActivity> {
+    private static final String FRAG_NAME = AccountsSettingsFragment.class.getName();
+    private static final long TEST_TIMEOUT_MILLIS = 5000;
+
+    @Mock private ManagedProfileUtils mManagedProfileUtils;
+
+    public AccountsSettingsFragmentTests() {
+        super(TestFragmentActivity.class);
+    }
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+
+        // Initialize the mocks.
+        MockitoAnnotations.initMocks(this);
+        ManagedProfileUtils.setTestInstance(mManagedProfileUtils);
+
+        Intent intent = new Intent();
+        intent.putExtra(TestFragmentActivity.EXTRA_SHOW_FRAGMENT, FRAG_NAME);
+        setActivityIntent(intent);
+    }
+
+    @Override
+    public void tearDown() throws Exception {
+        ManagedProfileUtils.setTestInstance(null);
+        super.tearDown();
+    }
+
+    public void testEmptyAccounts() {
+        final AccountsSettingsFragment fragment =
+                (AccountsSettingsFragment) getActivity().mFragment;
+        try {
+            fragment.createAccountPicker(new String[0], null, null /* listener */);
+            fail("Expected IllegalArgumentException, never thrown");
+        } catch (IllegalArgumentException expected) {
+            // Expected.
+        }
+    }
+
+    private static class DialogHolder {
+        AlertDialog mDialog;
+        DialogHolder() {}
+    }
+
+    public void testMultipleAccounts_noSettingsForManagedProfile() {
+        when(mManagedProfileUtils.hasWorkProfile(any(Context.class))).thenReturn(true);
+
+        final AccountsSettingsFragment fragment =
+                (AccountsSettingsFragment) getActivity().mFragment;
+        final AlertDialog dialog = initDialog(fragment, null).mDialog;
+        final ListView lv = dialog.getListView();
+
+        // Nothing to check/uncheck.
+        assertNull(fragment.findPreference(AccountsSettingsFragment.PREF_ACCCOUNT_SWITCHER));
+    }
+
+    public void testMultipleAccounts_noCurrentAccount() {
+        when(mManagedProfileUtils.hasWorkProfile(any(Context.class))).thenReturn(false);
+
+        final AccountsSettingsFragment fragment =
+                (AccountsSettingsFragment) getActivity().mFragment;
+        final AlertDialog dialog = initDialog(fragment, null).mDialog;
+        final ListView lv = dialog.getListView();
+
+        // The 1st account should be checked by default.
+        assertEquals("checked-item", 0, lv.getCheckedItemPosition());
+        // There should be 4 accounts in the list.
+        assertEquals("count", 4, lv.getCount());
+        // The sign-out button shouldn't exist
+        assertEquals(View.GONE,
+                dialog.getButton(DialogInterface.BUTTON_NEUTRAL).getVisibility());
+        assertEquals(View.VISIBLE,
+                dialog.getButton(DialogInterface.BUTTON_NEGATIVE).getVisibility());
+        assertEquals(View.VISIBLE,
+                dialog.getButton(DialogInterface.BUTTON_POSITIVE).getVisibility());
+    }
+
+    public void testMultipleAccounts_currentAccount() {
+        when(mManagedProfileUtils.hasWorkProfile(any(Context.class))).thenReturn(false);
+
+        final AccountsSettingsFragment fragment =
+                (AccountsSettingsFragment) getActivity().mFragment;
+        final AlertDialog dialog = initDialog(fragment, "3@example.com").mDialog;
+        final ListView lv = dialog.getListView();
+
+        // The 3rd account should be checked by default.
+        assertEquals("checked-item", 2, lv.getCheckedItemPosition());
+        // There should be 4 accounts in the list.
+        assertEquals("count", 4, lv.getCount());
+        // The sign-out button should be shown
+        assertEquals(View.VISIBLE,
+                dialog.getButton(DialogInterface.BUTTON_NEUTRAL).getVisibility());
+        assertEquals(View.VISIBLE,
+                dialog.getButton(DialogInterface.BUTTON_NEGATIVE).getVisibility());
+        assertEquals(View.VISIBLE,
+                dialog.getButton(DialogInterface.BUTTON_POSITIVE).getVisibility());
+    }
+
+    private DialogHolder initDialog(
+            final AccountsSettingsFragment fragment,
+            final String selectedAccount) {
+        final DialogHolder dialogHolder = new DialogHolder();
+        final CountDownLatch latch = new CountDownLatch(1);
+
+        getActivity().runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                final AlertDialog dialog = fragment.createAccountPicker(
+                        new String[] {
+                                "1@example.com",
+                                "2@example.com",
+                                "3@example.com",
+                                "4@example.com"},
+                        selectedAccount, null /* positiveButtonListner */);
+                dialog.show();
+                dialogHolder.mDialog = dialog;
+                latch.countDown();
+            }
+        });
+
+        try {
+            latch.await(TEST_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
+        } catch (InterruptedException ex) {
+            fail();
+        }
+        getInstrumentation().waitForIdleSync();
+        return dialogHolder;
+    }
+}
diff --git a/tests/src/com/android/inputmethod/latin/settings/SpacingAndPunctuationsTests.java b/tests/src/com/android/inputmethod/latin/settings/SpacingAndPunctuationsTests.java
index eb76032..ed632db 100644
--- a/tests/src/com/android/inputmethod/latin/settings/SpacingAndPunctuationsTests.java
+++ b/tests/src/com/android/inputmethod/latin/settings/SpacingAndPunctuationsTests.java
@@ -20,9 +20,8 @@
 import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
 
-import com.android.inputmethod.latin.Constants;
-import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.SuggestedWords;
+import com.android.inputmethod.latin.common.Constants;
 import com.android.inputmethod.latin.utils.RunInLocale;
 
 import junit.framework.AssertionFailedError;
@@ -37,13 +36,11 @@
     private int mScreenMetrics;
 
     private boolean isPhone() {
-        return mScreenMetrics == Constants.SCREEN_METRICS_SMALL_PHONE
-                || mScreenMetrics == Constants.SCREEN_METRICS_LARGE_PHONE;
+        return Constants.isPhone(mScreenMetrics);
     }
 
     private boolean isTablet() {
-        return mScreenMetrics == Constants.SCREEN_METRICS_SMALL_TABLET
-                || mScreenMetrics == Constants.SCREEN_METRICS_LARGE_TABLET;
+        return Constants.isTablet(mScreenMetrics);
     }
 
     private SpacingAndPunctuations ENGLISH;
@@ -70,7 +67,7 @@
     protected void setUp() throws Exception {
         super.setUp();
 
-        mScreenMetrics = mContext.getResources().getInteger(R.integer.config_screen_metrics);
+        mScreenMetrics = Settings.readScreenMetrics(getContext().getResources());
 
         // Language only
         ENGLISH = getSpacingAndPunctuations(Locale.ENGLISH);
diff --git a/tests/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerServiceTest.java b/tests/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerServiceTest.java
index 2272d6b..e7c48da 100644
--- a/tests/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerServiceTest.java
+++ b/tests/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerServiceTest.java
@@ -53,14 +53,8 @@
         sleep(1000);
 
         final SpanGetter span = new SpanGetter(mEditText.getText(), SuggestionSpan.class);
-        // If no span, the following will crash
-        final String[] suggestions = span.getSuggestions();
-        // For this test we consider "годп" should yield at least 2 suggestions (at this moment
-        // it yields 5).
-        assertTrue(suggestions.length >= 2);
-        // We also assume the top suggestion should be "года", which is the top word in the
-        // Russian dictionary.
-        assertEquals("", "года", suggestions[0]);
+        // We don't ship with Russian LM
+        assertNull(span.getSpan());
     }
 
     public void testSpellcheckWithPeriods() {
diff --git a/tests/src/com/android/inputmethod/latin/spellcheck/UserDictionaryLookupTest.java b/tests/src/com/android/inputmethod/latin/spellcheck/UserDictionaryLookupTest.java
new file mode 100644
index 0000000..e5c8139
--- /dev/null
+++ b/tests/src/com/android/inputmethod/latin/spellcheck/UserDictionaryLookupTest.java
@@ -0,0 +1,279 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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.inputmethod.latin.spellcheck;
+
+import android.annotation.SuppressLint;
+import android.content.ContentResolver;
+import android.database.Cursor;
+import android.net.Uri;
+import android.provider.UserDictionary;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.util.Log;
+
+import java.util.HashSet;
+import java.util.Locale;
+
+/**
+ * Unit tests for {@link UserDictionaryLookup}.
+ *
+ * Note, this test doesn't mock out the ContentResolver, in order to make sure UserDictionaryLookup
+ * works in a real setting.
+ */
+@SmallTest
+public class UserDictionaryLookupTest extends AndroidTestCase {
+    private static final String TAG = UserDictionaryLookupTest.class.getSimpleName();
+
+    private ContentResolver mContentResolver;
+    private HashSet<Uri> mAddedBackup;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        mContentResolver = mContext.getContentResolver();
+        mAddedBackup = new HashSet<Uri>();
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        // Remove all entries added during this test.
+        for (Uri row : mAddedBackup) {
+            mContentResolver.delete(row, null, null);
+        }
+        mAddedBackup.clear();
+
+        super.tearDown();
+    }
+
+    /**
+     * Adds the given word to UserDictionary.
+     *
+     * @param word the word to add
+     * @param locale the locale of the word to add
+     * @param frequency the frequency of the word to add
+     * @return the Uri for the given word
+     */
+    @SuppressLint("NewApi")
+    private Uri addWord(final String word, final Locale locale, int frequency) {
+        // Add the given word for the given locale.
+        UserDictionary.Words.addWord(mContext, word, frequency, null, locale);
+        // Obtain an Uri for the given word.
+        Cursor cursor = mContentResolver.query(UserDictionary.Words.CONTENT_URI, null,
+                UserDictionary.Words.WORD + "='" + word + "'", null, null);
+        assertTrue(cursor.moveToFirst());
+        Uri uri = Uri.withAppendedPath(UserDictionary.Words.CONTENT_URI,
+                cursor.getString(cursor.getColumnIndex(UserDictionary.Words._ID)));
+        // Add the row to the backup for later clearing.
+        mAddedBackup.add(uri);
+        return uri;
+    }
+
+    /**
+     * Deletes the entry for the given word from UserDictionary.
+     *
+     * @param uri the Uri for the word as returned by addWord
+     */
+    private void deleteWord(Uri uri) {
+        // Remove the word from the backup so that it's not cleared again later.
+        mAddedBackup.remove(uri);
+        // Remove the word from UserDictionary.
+        mContentResolver.delete(uri, null, null);
+    }
+
+    public void testExactLocaleMatch() {
+        Log.d(TAG, "testExactLocaleMatch");
+
+        // Insert "Foo" as capitalized in the UserDictionary under en_US locale.
+        addWord("Foo", Locale.US, 17);
+
+        // Create the UserDictionaryLookup and wait until it's loaded.
+        UserDictionaryLookup lookup = new UserDictionaryLookup(mContext);
+        while (!lookup.isLoaded()) {
+        }
+
+        // Any capitalization variation should match.
+        assertTrue(lookup.isValidWord("foo", Locale.US));
+        assertTrue(lookup.isValidWord("Foo", Locale.US));
+        assertTrue(lookup.isValidWord("FOO", Locale.US));
+        // But similar looking words don't match.
+        assertFalse(lookup.isValidWord("fo", Locale.US));
+        assertFalse(lookup.isValidWord("fop", Locale.US));
+        assertFalse(lookup.isValidWord("fooo", Locale.US));
+        // Other locales, including more general locales won't match.
+        assertFalse(lookup.isValidWord("foo", Locale.ENGLISH));
+        assertFalse(lookup.isValidWord("foo", Locale.UK));
+        assertFalse(lookup.isValidWord("foo", Locale.FRENCH));
+        assertFalse(lookup.isValidWord("foo", new Locale("")));
+
+        lookup.close();
+    }
+
+    public void testSubLocaleMatch() {
+        Log.d(TAG, "testSubLocaleMatch");
+
+        // Insert "Foo" as capitalized in the UserDictionary under the en locale.
+        addWord("Foo", Locale.ENGLISH, 17);
+
+        // Create the UserDictionaryLookup and wait until it's loaded.
+        UserDictionaryLookup lookup = new UserDictionaryLookup(mContext);
+        while (!lookup.isLoaded()) {
+        }
+
+        // Any capitalization variation should match for both en and en_US.
+        assertTrue(lookup.isValidWord("foo", Locale.ENGLISH));
+        assertTrue(lookup.isValidWord("foo", Locale.US));
+        assertTrue(lookup.isValidWord("Foo", Locale.US));
+        assertTrue(lookup.isValidWord("FOO", Locale.US));
+        // But similar looking words don't match.
+        assertFalse(lookup.isValidWord("fo", Locale.US));
+        assertFalse(lookup.isValidWord("fop", Locale.US));
+        assertFalse(lookup.isValidWord("fooo", Locale.US));
+
+        lookup.close();
+    }
+
+    public void testAllLocalesMatch() {
+        Log.d(TAG, "testAllLocalesMatch");
+
+        // Insert "Foo" as capitalized in the UserDictionary under the all locales.
+        addWord("Foo", null, 17);
+
+        // Create the UserDictionaryLookup and wait until it's loaded.
+        UserDictionaryLookup lookup = new UserDictionaryLookup(mContext);
+        while (!lookup.isLoaded()) {
+        }
+
+        // Any capitalization variation should match for fr, en and en_US.
+        assertTrue(lookup.isValidWord("foo", new Locale("")));
+        assertTrue(lookup.isValidWord("foo", Locale.FRENCH));
+        assertTrue(lookup.isValidWord("foo", Locale.ENGLISH));
+        assertTrue(lookup.isValidWord("foo", Locale.US));
+        assertTrue(lookup.isValidWord("Foo", Locale.US));
+        assertTrue(lookup.isValidWord("FOO", Locale.US));
+        // But similar looking words don't match.
+        assertFalse(lookup.isValidWord("fo", Locale.US));
+        assertFalse(lookup.isValidWord("fop", Locale.US));
+        assertFalse(lookup.isValidWord("fooo", Locale.US));
+
+        lookup.close();
+    }
+
+    public void testMultipleLocalesMatch() {
+        Log.d(TAG, "testMultipleLocalesMatch");
+
+        // Insert "Foo" as capitalized in the UserDictionary under the en_US and en_CA and fr
+        // locales.
+        addWord("Foo", Locale.US, 17);
+        addWord("foO", Locale.CANADA, 17);
+        addWord("fOo", Locale.FRENCH, 17);
+
+        // Create the UserDictionaryLookup and wait until it's loaded.
+        UserDictionaryLookup lookup = new UserDictionaryLookup(mContext);
+        while (!lookup.isLoaded()) {
+        }
+
+        // Both en_CA and en_US match.
+        assertTrue(lookup.isValidWord("foo", Locale.CANADA));
+        assertTrue(lookup.isValidWord("foo", Locale.US));
+        assertTrue(lookup.isValidWord("foo", Locale.FRENCH));
+        // Other locales, including more general locales won't match.
+        assertFalse(lookup.isValidWord("foo", Locale.ENGLISH));
+        assertFalse(lookup.isValidWord("foo", Locale.UK));
+        assertFalse(lookup.isValidWord("foo", new Locale("")));
+
+        lookup.close();
+    }
+
+    public void testReload() {
+        Log.d(TAG, "testReload");
+
+        // Insert "foo".
+        Uri uri = addWord("foo", Locale.US, 17);
+
+        // Create the UserDictionaryLookup and wait until it's loaded.
+        UserDictionaryLookup lookup = new UserDictionaryLookup(mContext);
+        while (!lookup.isLoaded()) {
+        }
+
+        // "foo" should match.
+        assertTrue(lookup.isValidWord("foo", Locale.US));
+
+        // "bar" shouldn't match.
+        assertFalse(lookup.isValidWord("bar", Locale.US));
+
+        // Now delete "foo" and add "bar".
+        deleteWord(uri);
+        addWord("bar", Locale.US, 18);
+
+        // Wait a little bit before expecting a change. The time we wait should be greater than
+        // UserDictionaryLookup.RELOAD_DELAY_MS.
+        try {
+            Thread.sleep(UserDictionaryLookup.RELOAD_DELAY_MS + 1000);
+        } catch (InterruptedException e) {
+        }
+
+        // Perform lookups again. Reload should have occured.
+        //
+        // "foo" should not match.
+        assertFalse(lookup.isValidWord("foo", Locale.US));
+
+        // "bar" should match.
+        assertTrue(lookup.isValidWord("bar", Locale.US));
+
+        lookup.close();
+    }
+
+    public void testClose() {
+        Log.d(TAG, "testClose");
+
+        // Insert "foo".
+        Uri uri = addWord("foo", Locale.US, 17);
+
+        // Create the UserDictionaryLookup and wait until it's loaded.
+        UserDictionaryLookup lookup = new UserDictionaryLookup(mContext);
+        while (!lookup.isLoaded()) {
+        }
+
+        // "foo" should match.
+        assertTrue(lookup.isValidWord("foo", Locale.US));
+
+        // "bar" shouldn't match.
+        assertFalse(lookup.isValidWord("bar", Locale.US));
+
+        // Now close (prevents further reloads).
+        lookup.close();
+
+        // Now delete "foo" and add "bar".
+        deleteWord(uri);
+        addWord("bar", Locale.US, 18);
+
+        // Wait a little bit before expecting a change. The time we wait should be greater than
+        // UserDictionaryLookup.RELOAD_DELAY_MS.
+        try {
+            Thread.sleep(UserDictionaryLookup.RELOAD_DELAY_MS + 1000);
+        } catch (InterruptedException e) {
+        }
+
+        // Perform lookups again. Reload should not have occurred.
+        //
+        // "foo" should stil match.
+        assertTrue(lookup.isValidWord("foo", Locale.US));
+
+        // "bar" should still not match.
+        assertFalse(lookup.isValidWord("bar", Locale.US));
+    }
+}
diff --git a/tests/src/com/android/inputmethod/latin/touchinputconsumer/NullGestureConsumerTests.java b/tests/src/com/android/inputmethod/latin/touchinputconsumer/NullGestureConsumerTests.java
new file mode 100644
index 0000000..ad6bcc3
--- /dev/null
+++ b/tests/src/com/android/inputmethod/latin/touchinputconsumer/NullGestureConsumerTests.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.touchinputconsumer;
+
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+/**
+ * Tests for GestureConsumer.NULL_GESTURE_CONSUMER.
+ */
+@SmallTest
+public class NullGestureConsumerTests extends AndroidTestCase {
+    /**
+     * Tests that GestureConsumer.NULL_GESTURE_CONSUMER indicates that it won't consume gesture data
+     * and that its methods don't raise exceptions even for invalid data.
+     */
+    public void testNullGestureConsumer() {
+        assertFalse(GestureConsumer.NULL_GESTURE_CONSUMER.willConsume());
+        GestureConsumer.NULL_GESTURE_CONSUMER.onInit(null, null);
+        GestureConsumer.NULL_GESTURE_CONSUMER.onGestureStarted(null, null);
+        GestureConsumer.NULL_GESTURE_CONSUMER.onGestureCanceled();
+        GestureConsumer.NULL_GESTURE_CONSUMER.onGestureCompleted(null);
+        GestureConsumer.NULL_GESTURE_CONSUMER.onImeSuggestionsProcessed(null, -1, -1, null);
+    }
+
+    /**
+     * Tests that newInstance returns NULL_GESTURE_CONSUMER for invalid input.
+     */
+    public void testNewInstanceGivesNullGestureConsumerForInvalidInputs() {
+        assertSame(GestureConsumer.NULL_GESTURE_CONSUMER,
+                GestureConsumer.newInstance(null, null, null, null));
+    }
+}
diff --git a/tests/src/com/android/inputmethod/latin/utils/AdditionalSubtypeUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/AdditionalSubtypeUtilsTests.java
index 91c9c37..1db8395 100644
--- a/tests/src/com/android/inputmethod/latin/utils/AdditionalSubtypeUtilsTests.java
+++ b/tests/src/com/android/inputmethod/latin/utils/AdditionalSubtypeUtilsTests.java
@@ -16,6 +16,13 @@
 
 package com.android.inputmethod.latin.utils;
 
+import static com.android.inputmethod.latin.common.Constants.Subtype.KEYBOARD_MODE;
+import static com.android.inputmethod.latin.common.Constants.Subtype.ExtraValue.ASCII_CAPABLE;
+import static com.android.inputmethod.latin.common.Constants.Subtype.ExtraValue.EMOJI_CAPABLE;
+import static com.android.inputmethod.latin.common.Constants.Subtype.ExtraValue.IS_ADDITIONAL_SUBTYPE;
+import static com.android.inputmethod.latin.common.Constants.Subtype.ExtraValue.KEYBOARD_LAYOUT_SET;
+import static com.android.inputmethod.latin.common.Constants.Subtype.ExtraValue.UNTRANSLATABLE_STRING_IN_SUBTYPE_NAME;
+
 import android.content.Context;
 import android.os.Build;
 import android.test.AndroidTestCase;
@@ -26,14 +33,6 @@
 
 import java.util.Locale;
 
-import static com.android.inputmethod.latin.Constants.Subtype.KEYBOARD_MODE;
-import static com.android.inputmethod.latin.Constants.Subtype.ExtraValue.ASCII_CAPABLE;
-import static com.android.inputmethod.latin.Constants.Subtype.ExtraValue.EMOJI_CAPABLE;
-import static com.android.inputmethod.latin.Constants.Subtype.ExtraValue.IS_ADDITIONAL_SUBTYPE;
-import static com.android.inputmethod.latin.Constants.Subtype.ExtraValue.KEYBOARD_LAYOUT_SET;
-import static com.android.inputmethod.latin.Constants.Subtype.ExtraValue
-        .UNTRANSLATABLE_STRING_IN_SUBTYPE_NAME;
-
 @SmallTest
 public class AdditionalSubtypeUtilsTests extends AndroidTestCase {
 
@@ -151,25 +150,25 @@
     }
 
     public void testRestorable() {
-        final InputMethodSubtype EN_UK_DVORAK =
+        final InputMethodSubtype EN_US_DVORAK =
                 AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
                         Locale.US.toString(), "dvorak");
         final InputMethodSubtype ZZ_AZERTY =
                 AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
                         SubtypeLocaleUtils.NO_LANGUAGE, "azerty");
-        assertEnUsDvorak(EN_UK_DVORAK);
+        assertEnUsDvorak(EN_US_DVORAK);
         assertAzerty(ZZ_AZERTY);
 
         // Make sure the subtype can be stored and restored in a deterministic manner.
-        final InputMethodSubtype[] subtypes = { EN_UK_DVORAK, ZZ_AZERTY };
+        final InputMethodSubtype[] subtypes = { EN_US_DVORAK, ZZ_AZERTY };
         final String prefSubtype = AdditionalSubtypeUtils.createPrefSubtypes(subtypes);
         final InputMethodSubtype[] restoredSubtypes =
                 AdditionalSubtypeUtils.createAdditionalSubtypesArray(prefSubtype);
         assertEquals(2, restoredSubtypes.length);
-        final InputMethodSubtype restored_EN_UK_DVORAK = restoredSubtypes[0];
+        final InputMethodSubtype restored_EN_US_DVORAK = restoredSubtypes[0];
         final InputMethodSubtype restored_ZZ_AZERTY = restoredSubtypes[1];
 
-        assertEnUsDvorak(restored_EN_UK_DVORAK);
+        assertEnUsDvorak(restored_EN_US_DVORAK);
         assertAzerty(restored_ZZ_AZERTY);
     }
 }
diff --git a/tests/src/com/android/inputmethod/latin/utils/AsyncResultHolderTests.java b/tests/src/com/android/inputmethod/latin/utils/AsyncResultHolderTests.java
index 1501e94..170d643 100644
--- a/tests/src/com/android/inputmethod/latin/utils/AsyncResultHolderTests.java
+++ b/tests/src/com/android/inputmethod/latin/utils/AsyncResultHolderTests.java
@@ -22,14 +22,14 @@
 
 @MediumTest
 public class AsyncResultHolderTests extends AndroidTestCase {
-    private static final String TAG = AsyncResultHolderTests.class.getSimpleName();
+    static final String TAG = AsyncResultHolderTests.class.getSimpleName();
 
     private static final int TIMEOUT_IN_MILLISECONDS = 500;
     private static final int MARGIN_IN_MILLISECONDS = 250;
     private static final int DEFAULT_VALUE = 2;
     private static final int SET_VALUE = 1;
 
-    private <T> void setAfterGivenTime(final AsyncResultHolder<T> holder, final T value,
+    private static <T> void setAfterGivenTime(final AsyncResultHolder<T> holder, final T value,
             final long time) {
         new Thread(new Runnable() {
             @Override
diff --git a/tests/src/com/android/inputmethod/latin/utils/BinaryDictionaryUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/BinaryDictionaryUtilsTests.java
deleted file mode 100644
index a333ee9..0000000
--- a/tests/src/com/android/inputmethod/latin/utils/BinaryDictionaryUtilsTests.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.utils;
-
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-
-import com.android.inputmethod.latin.BinaryDictionary;
-import com.android.inputmethod.latin.makedict.DictionaryHeader;
-import com.android.inputmethod.latin.makedict.FormatSpec;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
-@LargeTest
-public class BinaryDictionaryUtilsTests extends AndroidTestCase {
-    private static final String TEST_DICT_FILE_EXTENSION = ".testDict";
-    private static final String TEST_LOCALE = "test";
-
-    private File createEmptyDictionaryAndGetFile(final String dictId,
-            final int formatVersion) throws IOException {
-        if (formatVersion == FormatSpec.VERSION4) {
-            return createEmptyVer4DictionaryAndGetFile(dictId);
-        } else {
-            throw new IOException("Dictionary format version " + formatVersion
-                    + " is not supported.");
-        }
-    }
-
-    private File createEmptyVer4DictionaryAndGetFile(final String dictId) throws IOException {
-        final File file = getDictFile(dictId);
-        FileUtils.deleteRecursively(file);
-        Map<String, String> attributeMap = new HashMap<>();
-        attributeMap.put(DictionaryHeader.DICTIONARY_ID_KEY, dictId);
-        attributeMap.put(DictionaryHeader.DICTIONARY_VERSION_KEY,
-                String.valueOf(TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis())));
-        attributeMap.put(DictionaryHeader.USES_FORGETTING_CURVE_KEY,
-                DictionaryHeader.ATTRIBUTE_VALUE_TRUE);
-        attributeMap.put(DictionaryHeader.HAS_HISTORICAL_INFO_KEY,
-                DictionaryHeader.ATTRIBUTE_VALUE_TRUE);
-        if (BinaryDictionaryUtils.createEmptyDictFile(file.getAbsolutePath(), FormatSpec.VERSION4,
-                LocaleUtils.constructLocaleFromString(TEST_LOCALE), attributeMap)) {
-            return file;
-        } else {
-            throw new IOException("Empty dictionary " + file.getAbsolutePath()
-                    + " cannot be created.");
-        }
-    }
-
-    private File getDictFile(final String dictId) {
-        return new File(getContext().getCacheDir(), dictId + TEST_DICT_FILE_EXTENSION);
-    }
-
-    public void testRenameDictionary() {
-        final int formatVersion = FormatSpec.VERSION4;
-        File dictFile0 = null;
-        try {
-            dictFile0 = createEmptyDictionaryAndGetFile("MoveFromDictionary", formatVersion);
-        } catch (IOException e) {
-            fail("IOException while writing an initial dictionary : " + e);
-        }
-        final File dictFile1 = getDictFile("MoveToDictionary");
-        FileUtils.deleteRecursively(dictFile1);
-        assertTrue(BinaryDictionaryUtils.renameDict(dictFile0, dictFile1));
-        assertFalse(dictFile0.exists());
-        assertTrue(dictFile1.exists());
-        BinaryDictionary binaryDictionary = new BinaryDictionary(dictFile1.getAbsolutePath(),
-                0 /* offset */, dictFile1.length(), true /* useFullEditDistance */,
-                Locale.getDefault(), TEST_LOCALE, true /* isUpdatable */);
-        assertTrue(binaryDictionary.isValidDictionary());
-        assertTrue(binaryDictionary.getFormatVersion() == formatVersion);
-        binaryDictionary.close();
-    }
-}
diff --git a/tests/src/com/android/inputmethod/latin/utils/CapsModeUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/CapsModeUtilsTests.java
index c746c83..9680d85 100644
--- a/tests/src/com/android/inputmethod/latin/utils/CapsModeUtilsTests.java
+++ b/tests/src/com/android/inputmethod/latin/utils/CapsModeUtilsTests.java
@@ -21,8 +21,8 @@
 import android.test.suitebuilder.annotation.SmallTest;
 import android.text.TextUtils;
 
+import com.android.inputmethod.latin.common.LocaleUtils;
 import com.android.inputmethod.latin.settings.SpacingAndPunctuations;
-import com.android.inputmethod.latin.utils.LocaleUtils;
 
 import java.util.Locale;
 
@@ -124,5 +124,29 @@
         allPathsForCaps("Word. ", c | w, sp, false);
         // Armenian period : capitalize if MODE_SENTENCES
         allPathsForCaps("Word\u0589 ", c | w | s, sp, false);
+
+        // Test for sentence terminators
+        sp = job.runInLocale(res, Locale.ENGLISH);
+        allPathsForCaps("Word? ", c | w | s, sp, false);
+        allPathsForCaps("Word?", c | w | s, sp, true);
+        allPathsForCaps("Word?", c, sp, false);
+        allPathsForCaps("Word! ", c | w | s, sp, false);
+        allPathsForCaps("Word!", c | w | s, sp, true);
+        allPathsForCaps("Word!", c, sp, false);
+        allPathsForCaps("Word; ", c | w, sp, false);
+        allPathsForCaps("Word;", c | w, sp, true);
+        allPathsForCaps("Word;", c, sp, false);
+        // Test for sentence terminators in Greek
+        sp = job.runInLocale(res, LocaleUtils.constructLocaleFromString("el"));
+        allPathsForCaps("Word? ", c | w | s, sp, false);
+        allPathsForCaps("Word?", c | w | s, sp, true);
+        allPathsForCaps("Word?", c, sp, false);
+        allPathsForCaps("Word! ", c | w | s, sp, false);
+        allPathsForCaps("Word!", c | w | s, sp, true);
+        allPathsForCaps("Word!", c, sp, false);
+        // In Greek ";" is the question mark and it terminates the sentence
+        allPathsForCaps("Word; ", c | w | s, sp, false);
+        allPathsForCaps("Word;", c | w | s, sp, true);
+        allPathsForCaps("Word;", c, sp, false);
     }
 }
diff --git a/tests/src/com/android/inputmethod/latin/utils/CollectionUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/CollectionUtilsTests.java
new file mode 100644
index 0000000..47fd5fe
--- /dev/null
+++ b/tests/src/com/android/inputmethod/latin/utils/CollectionUtilsTests.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.utils;
+
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.latin.common.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+
+/**
+ * Tests for {@link CollectionUtils}.
+ */
+@SmallTest
+public class CollectionUtilsTests extends AndroidTestCase {
+    /**
+     * Tests that {@link CollectionUtils#arrayAsList(Object[],int,int)} fails as expected
+     * with some invalid inputs.
+     */
+    public void testArrayAsListFailure() {
+        final String[] array = { "0", "1" };
+        // Negative start
+        try {
+            CollectionUtils.arrayAsList(array, -1, 1);
+            fail("Failed to catch start < 0");
+        } catch (final IllegalArgumentException e) {
+            assertEquals("Invalid start: -1 end: 1 with array.length: 2", e.getMessage());
+        }
+        // start > end
+        try {
+            CollectionUtils.arrayAsList(array, 1, -1);
+            fail("Failed to catch start > end");
+        } catch (final IllegalArgumentException e) {
+            assertEquals("Invalid start: 1 end: -1 with array.length: 2", e.getMessage());
+        }
+        // end > array.length
+        try {
+            CollectionUtils.arrayAsList(array, 1, 3);
+            fail("Failed to catch end > array.length");
+        } catch (final IllegalArgumentException e) {
+            assertEquals("Invalid start: 1 end: 3 with array.length: 2", e.getMessage());
+        }
+    }
+
+    /**
+     * Tests that {@link CollectionUtils#arrayAsList(Object[],int,int)} gives the expected
+     * results for a few valid inputs.
+     */
+    public void testArrayAsList() {
+        final ArrayList<String> empty = new ArrayList<>();
+        assertEquals(empty, CollectionUtils.arrayAsList(new String[] { }, 0, 0));
+        final String[] array = { "0", "1", "2", "3", "4" };
+        assertEquals(empty, CollectionUtils.arrayAsList(array, 0, 0));
+        assertEquals(empty, CollectionUtils.arrayAsList(array, 1, 1));
+        assertEquals(empty, CollectionUtils.arrayAsList(array, array.length, array.length));
+        final ArrayList<String> expected123 = new ArrayList<>(Arrays.asList("1", "2", "3"));
+        assertEquals(expected123, CollectionUtils.arrayAsList(array, 1, 4));
+    }
+
+    /**
+     * Tests that {@link CollectionUtils#isNullOrEmpty(java.util.Collection)} gives the expected
+     * results for a few cases.
+     */
+    public void testIsNullOrEmpty() {
+        assertTrue(CollectionUtils.isNullOrEmpty(null));
+        assertTrue(CollectionUtils.isNullOrEmpty(new ArrayList<>()));
+        assertTrue(CollectionUtils.isNullOrEmpty(Collections.EMPTY_SET));
+        assertFalse(CollectionUtils.isNullOrEmpty(Collections.singleton("Not empty")));
+    }
+}
diff --git a/tests/src/com/android/inputmethod/latin/utils/DictionaryInfoUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/DictionaryInfoUtilsTests.java
index 6e71607..812353c 100644
--- a/tests/src/com/android/inputmethod/latin/utils/DictionaryInfoUtilsTests.java
+++ b/tests/src/com/android/inputmethod/latin/utils/DictionaryInfoUtilsTests.java
@@ -20,6 +20,7 @@
 import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
 
+import com.android.inputmethod.latin.common.LocaleUtils;
 import com.android.inputmethod.latin.settings.SpacingAndPunctuations;
 
 import java.util.Locale;
@@ -44,4 +45,21 @@
                 sp));
         assertFalse(DictionaryInfoUtils.looksValidForDictionaryInsertion("!!!", sp));
     }
+
+    public void testGetMainDictId() {
+        assertEquals("main:en",
+                DictionaryInfoUtils.getMainDictId(LocaleUtils.constructLocaleFromString("en")));
+        assertEquals("main:en_us",
+                DictionaryInfoUtils.getMainDictId(LocaleUtils.constructLocaleFromString("en_US")));
+        assertEquals("main:en_gb",
+                DictionaryInfoUtils.getMainDictId(LocaleUtils.constructLocaleFromString("en_GB")));
+
+        assertEquals("main:es",
+                DictionaryInfoUtils.getMainDictId(LocaleUtils.constructLocaleFromString("es")));
+        assertEquals("main:es_us",
+                DictionaryInfoUtils.getMainDictId(LocaleUtils.constructLocaleFromString("es_US")));
+
+        assertEquals("main:en_us_posix", DictionaryInfoUtils.getMainDictId(
+                        LocaleUtils.constructLocaleFromString("en_US_POSIX")));
+    }
 }
diff --git a/tests/src/com/android/inputmethod/latin/utils/EditDistanceTests.java b/tests/src/com/android/inputmethod/latin/utils/EditDistanceTests.java
deleted file mode 100644
index 5831226..0000000
--- a/tests/src/com/android/inputmethod/latin/utils/EditDistanceTests.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.utils;
-
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-@SmallTest
-public class EditDistanceTests extends AndroidTestCase {
-    /*
-     * dist(kitten, sitting) == 3
-     *
-     * kitten-
-     * .|||.|
-     * sitting
-     */
-    public void testExample1() {
-        final int dist = BinaryDictionaryUtils.editDistance("kitten", "sitting");
-        assertEquals("edit distance between 'kitten' and 'sitting' is 3",
-                3, dist);
-    }
-
-    /*
-     * dist(Sunday, Saturday) == 3
-     *
-     * Saturday
-     * |  |.|||
-     * S--unday
-     */
-    public void testExample2() {
-        final int dist = BinaryDictionaryUtils.editDistance("Saturday", "Sunday");
-        assertEquals("edit distance between 'Saturday' and 'Sunday' is 3",
-                3, dist);
-    }
-
-    public void testBothEmpty() {
-        final int dist = BinaryDictionaryUtils.editDistance("", "");
-        assertEquals("when both string are empty, no edits are needed",
-                0, dist);
-    }
-
-    public void testFirstArgIsEmpty() {
-        final int dist = BinaryDictionaryUtils.editDistance("", "aaaa");
-        assertEquals("when only one string of the arguments is empty,"
-                 + " the edit distance is the length of the other.",
-                 4, dist);
-    }
-
-    public void testSecoondArgIsEmpty() {
-        final int dist = BinaryDictionaryUtils.editDistance("aaaa", "");
-        assertEquals("when only one string of the arguments is empty,"
-                 + " the edit distance is the length of the other.",
-                 4, dist);
-    }
-
-    public void testSameStrings() {
-        final String arg1 = "The quick brown fox jumps over the lazy dog.";
-        final String arg2 = "The quick brown fox jumps over the lazy dog.";
-        final int dist = BinaryDictionaryUtils.editDistance(arg1, arg2);
-        assertEquals("when same strings are passed, distance equals 0.",
-                0, dist);
-    }
-
-    public void testSameReference() {
-        final String arg = "The quick brown fox jumps over the lazy dog.";
-        final int dist = BinaryDictionaryUtils.editDistance(arg, arg);
-        assertEquals("when same string references are passed, the distance equals 0.",
-                0, dist);
-    }
-
-    public void testNullArg() {
-        try {
-            BinaryDictionaryUtils.editDistance(null, "aaa");
-            fail("IllegalArgumentException should be thrown.");
-        } catch (Exception e) {
-            assertTrue(e instanceof IllegalArgumentException);
-        }
-        try {
-            BinaryDictionaryUtils.editDistance("aaa", null);
-            fail("IllegalArgumentException should be thrown.");
-        } catch (Exception e) {
-            assertTrue(e instanceof IllegalArgumentException);
-        }
-    }
-}
diff --git a/tests/src/com/android/inputmethod/latin/utils/ExecutorUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/ExecutorUtilsTests.java
index ae2623d..8692305 100644
--- a/tests/src/com/android/inputmethod/latin/utils/ExecutorUtilsTests.java
+++ b/tests/src/com/android/inputmethod/latin/utils/ExecutorUtilsTests.java
@@ -25,18 +25,18 @@
 import java.util.concurrent.atomic.AtomicInteger;
 
 /**
- * Unit tests for ExecutorUtils.
+ * Unit tests for {@link ExecutorUtils}.
  */
 @MediumTest
 public class ExecutorUtilsTests extends AndroidTestCase {
     private static final String TAG = ExecutorUtilsTests.class.getSimpleName();
 
-    private static final String TEST_EXECUTOR_ID = "test";
     private static final int NUM_OF_TASKS = 10;
     private static final int DELAY_FOR_WAITING_TASKS_MILLISECONDS = 500;
 
     public void testExecute() {
-        final ExecutorService executor = ExecutorUtils.getExecutor(TEST_EXECUTOR_ID);
+        final ExecutorService executor =
+                ExecutorUtils.getBackgroundExecutor(ExecutorUtils.KEYBOARD);
         final AtomicInteger v = new AtomicInteger(0);
         for (int i = 0; i < NUM_OF_TASKS; ++i) {
             executor.execute(new Runnable() {
diff --git a/tests/src/com/android/inputmethod/latin/utils/ImportantNoticeUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/ImportantNoticeUtilsTests.java
index 819d763..e361c77 100644
--- a/tests/src/com/android/inputmethod/latin/utils/ImportantNoticeUtilsTests.java
+++ b/tests/src/com/android/inputmethod/latin/utils/ImportantNoticeUtilsTests.java
@@ -16,24 +16,32 @@
 
 package com.android.inputmethod.latin.utils;
 
-import static com.android.inputmethod.latin.utils.ImportantNoticeUtils.KEY_TIMESTAMP_OF_FIRST_IMPORTANT_NOTICE;
 import static com.android.inputmethod.latin.utils.ImportantNoticeUtils.KEY_IMPORTANT_NOTICE_VERSION;
+import static com.android.inputmethod.latin.utils.ImportantNoticeUtils.KEY_TIMESTAMP_OF_FIRST_IMPORTANT_NOTICE;
+import static org.mockito.Mockito.when;
 
 import android.content.Context;
 import android.content.SharedPreferences;
 import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+import android.test.suitebuilder.annotation.MediumTest;
 import android.text.TextUtils;
 
+import com.android.inputmethod.latin.settings.SettingsValues;
+
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
 import java.util.concurrent.TimeUnit;
 
-@SmallTest
+@MediumTest
 public class ImportantNoticeUtilsTests extends AndroidTestCase {
     // This should be aligned with R.integer.config_important_notice_version.
     private static final int CURRENT_IMPORTANT_NOTICE_VERSION = 1;
 
     private ImportantNoticePreferences mImportantNoticePreferences;
 
+    @Mock private SettingsValues mMockSettingsValues;
+
     private static class ImportantNoticePreferences {
         private final SharedPreferences mPref;
 
@@ -97,8 +105,10 @@
     @Override
     protected void setUp() throws Exception {
         super.setUp();
+        MockitoAnnotations.initMocks(this);
         mImportantNoticePreferences = new ImportantNoticePreferences(getContext());
         mImportantNoticePreferences.save();
+        when(mMockSettingsValues.isPersonalizationEnabled()).thenReturn(true);
     }
 
     @Override
@@ -112,11 +122,33 @@
                 ImportantNoticeUtils.getCurrentImportantNoticeVersion(getContext()));
     }
 
+    public void testStateAfterFreshInstall() {
+        mImportantNoticePreferences.clear();
+
+        // Check internal state of {@link ImportantNoticeUtils.shouldShowImportantNotice(Context)}
+        // after fresh install.
+        assertEquals("Has new important notice after fresh install", true,
+                ImportantNoticeUtils.hasNewImportantNotice(getContext()));
+        assertEquals("Next important notice title after fresh install", false, TextUtils.isEmpty(
+                ImportantNoticeUtils.getNextImportantNoticeTitle(getContext())));
+        assertEquals("Is in system setup wizard after fresh install", false,
+                ImportantNoticeUtils.isInSystemSetupWizard(getContext()));
+        final long currentTimeMillis = System.currentTimeMillis();
+        assertEquals("Has timeout passed after fresh install", false,
+                ImportantNoticeUtils.hasTimeoutPassed(getContext(), currentTimeMillis));
+        assertEquals("Timestamp of first important notice after fresh install",
+                (Long)currentTimeMillis,
+                mImportantNoticePreferences.getLong(KEY_TIMESTAMP_OF_FIRST_IMPORTANT_NOTICE));
+
+        assertEquals("Current boolean before update", true,
+                ImportantNoticeUtils.shouldShowImportantNotice(getContext(), mMockSettingsValues));
+    }
+
     public void testUpdateVersion() {
         mImportantNoticePreferences.clear();
 
         assertEquals("Current boolean before update", true,
-                ImportantNoticeUtils.shouldShowImportantNotice(getContext()));
+                ImportantNoticeUtils.shouldShowImportantNotice(getContext(), mMockSettingsValues));
         assertEquals("Last version before update", 0,
                 ImportantNoticeUtils.getLastImportantNoticeVersion(getContext()));
         assertEquals("Next version before update ", 1,
@@ -129,7 +161,7 @@
         ImportantNoticeUtils.updateLastImportantNoticeVersion(getContext());
 
         assertEquals("Current boolean after update", false,
-                ImportantNoticeUtils.shouldShowImportantNotice(getContext()));
+                ImportantNoticeUtils.shouldShowImportantNotice(getContext(), mMockSettingsValues));
         assertEquals("Last version after update", 1,
                 ImportantNoticeUtils.getLastImportantNoticeVersion(getContext()));
         assertEquals("Next version after update", 2,
@@ -158,12 +190,12 @@
 
         // Call {@link ImportantNoticeUtils#shouldShowImportantNotice(Context)} before timeout.
         assertEquals("Current boolean before timeout 1", true,
-                ImportantNoticeUtils.shouldShowImportantNotice(getContext()));
+                ImportantNoticeUtils.shouldShowImportantNotice(getContext(), mMockSettingsValues));
         assertEquals("Last version before timeout 1", 0,
                 ImportantNoticeUtils.getLastImportantNoticeVersion(getContext()));
         assertEquals("Next version before timeout 1", 1,
                 ImportantNoticeUtils.getNextImportantNoticeVersion(getContext()));
-        assertEquals("Last time before timeout 1", (Long)lastTime,
+        assertEquals("Timestamp of first important notice before timeout 1", (Long)lastTime,
                 mImportantNoticePreferences.getLong(KEY_TIMESTAMP_OF_FIRST_IMPORTANT_NOTICE));
         assertEquals("Current title before timeout 1", false, TextUtils.isEmpty(
                 ImportantNoticeUtils.getNextImportantNoticeTitle(getContext())));
@@ -175,12 +207,12 @@
         // Call {@link ImportantNoticeUtils#shouldShowImportantNotice(Context)} before timeout
         // again.
         assertEquals("Current boolean before timeout 2", true,
-                ImportantNoticeUtils.shouldShowImportantNotice(getContext()));
+                ImportantNoticeUtils.shouldShowImportantNotice(getContext(), mMockSettingsValues));
         assertEquals("Last version before timeout 2", 0,
                 ImportantNoticeUtils.getLastImportantNoticeVersion(getContext()));
         assertEquals("Next version before timeout 2", 1,
                 ImportantNoticeUtils.getNextImportantNoticeVersion(getContext()));
-        assertEquals("Last time before timeout 2", (Long)lastTime,
+        assertEquals("Timestamp of first important notice before timeout 2", (Long)lastTime,
                 mImportantNoticePreferences.getLong(KEY_TIMESTAMP_OF_FIRST_IMPORTANT_NOTICE));
         assertEquals("Current title before timeout 2", false, TextUtils.isEmpty(
                 ImportantNoticeUtils.getNextImportantNoticeTitle(getContext())));
@@ -191,12 +223,12 @@
 
         // Call {@link ImportantNoticeUtils#shouldShowImportantNotice(Context)} after timeout.
         assertEquals("Current boolean after timeout 1", false,
-                ImportantNoticeUtils.shouldShowImportantNotice(getContext()));
+                ImportantNoticeUtils.shouldShowImportantNotice(getContext(), mMockSettingsValues));
         assertEquals("Last version after timeout 1", 1,
                 ImportantNoticeUtils.getLastImportantNoticeVersion(getContext()));
         assertEquals("Next version after timeout 1", 2,
                 ImportantNoticeUtils.getNextImportantNoticeVersion(getContext()));
-        assertEquals("Last time aflter timeout 1", null,
+        assertEquals("Timestamp of first important notice after timeout 1", null,
                 mImportantNoticePreferences.getLong(KEY_TIMESTAMP_OF_FIRST_IMPORTANT_NOTICE));
         assertEquals("Current title after timeout 1", true, TextUtils.isEmpty(
                 ImportantNoticeUtils.getNextImportantNoticeTitle(getContext())));
@@ -207,16 +239,30 @@
 
         // Call {@link ImportantNoticeUtils#shouldShowImportantNotice(Context)} after timeout again.
         assertEquals("Current boolean after timeout 2", false,
-                ImportantNoticeUtils.shouldShowImportantNotice(getContext()));
+                ImportantNoticeUtils.shouldShowImportantNotice(getContext(), mMockSettingsValues));
         assertEquals("Last version after timeout 2", 1,
                 ImportantNoticeUtils.getLastImportantNoticeVersion(getContext()));
         assertEquals("Next version after timeout 2", 2,
                 ImportantNoticeUtils.getNextImportantNoticeVersion(getContext()));
-        assertEquals("Last time aflter timeout 2", null,
+        assertEquals("Timestamp of first important notice after timeout 2", null,
                 mImportantNoticePreferences.getLong(KEY_TIMESTAMP_OF_FIRST_IMPORTANT_NOTICE));
         assertEquals("Current title after timeout 2", true, TextUtils.isEmpty(
                 ImportantNoticeUtils.getNextImportantNoticeTitle(getContext())));
         assertEquals("Current contents after timeout 2", true, TextUtils.isEmpty(
                 ImportantNoticeUtils.getNextImportantNoticeContents(getContext())));
     }
+
+    public void testPersonalizationSetting() {
+        mImportantNoticePreferences.clear();
+
+        // Personalization enabled.
+        when(mMockSettingsValues.isPersonalizationEnabled()).thenReturn(true);
+        assertEquals("Current boolean with personalization enabled", true,
+                ImportantNoticeUtils.shouldShowImportantNotice(getContext(), mMockSettingsValues));
+
+        // Personalization disabled.
+        when(mMockSettingsValues.isPersonalizationEnabled()).thenReturn(false);
+        assertEquals("Current boolean with personalization disabled", false,
+                ImportantNoticeUtils.shouldShowImportantNotice(getContext(), mMockSettingsValues));
+    }
 }
diff --git a/tests/src/com/android/inputmethod/latin/utils/JsonUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/JsonUtilsTests.java
new file mode 100644
index 0000000..1941120
--- /dev/null
+++ b/tests/src/com/android/inputmethod/latin/utils/JsonUtilsTests.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.utils;
+
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import java.util.Arrays;
+import java.util.List;
+
+@SmallTest
+public class JsonUtilsTests extends AndroidTestCase {
+    public void testJsonUtils() {
+        final Object[] objs = new Object[] { 1, "aaa", "bbb", 3 };
+        final List<Object> objArray = Arrays.asList(objs);
+        final String str = JsonUtils.listToJsonStr(objArray);
+        final List<Object> newObjArray = JsonUtils.jsonStrToList(str);
+        for (int i = 0; i < objs.length; ++i) {
+            assertEquals(objs[i], newObjArray.get(i));
+        }
+    }
+}
diff --git a/tests/src/com/android/inputmethod/latin/utils/LanguageOnSpacebarUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/LanguageOnSpacebarUtilsTests.java
new file mode 100644
index 0000000..e4b6a66
--- /dev/null
+++ b/tests/src/com/android/inputmethod/latin/utils/LanguageOnSpacebarUtilsTests.java
@@ -0,0 +1,215 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.utils;
+
+import static com.android.inputmethod.latin.utils.LanguageOnSpacebarUtils.FORMAT_TYPE_FULL_LOCALE;
+import static com.android.inputmethod.latin.utils.LanguageOnSpacebarUtils.FORMAT_TYPE_LANGUAGE_ONLY;
+import static com.android.inputmethod.latin.utils.LanguageOnSpacebarUtils.FORMAT_TYPE_NONE;
+
+import android.content.Context;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.view.inputmethod.InputMethodSubtype;
+
+import com.android.inputmethod.latin.RichInputMethodManager;
+import com.android.inputmethod.latin.RichInputMethodSubtype;
+import com.android.inputmethod.latin.utils.AdditionalSubtypeUtils;
+import com.android.inputmethod.latin.utils.LanguageOnSpacebarUtils;
+import com.android.inputmethod.latin.utils.SubtypeLocaleUtils;
+
+import java.util.ArrayList;
+import java.util.Locale;
+
+import javax.annotation.Nonnull;
+
+@SmallTest
+public class LanguageOnSpacebarUtilsTests extends AndroidTestCase {
+    private RichInputMethodManager mRichImm;
+
+    RichInputMethodSubtype EN_US_QWERTY;
+    RichInputMethodSubtype EN_GB_QWERTY;
+    RichInputMethodSubtype FR_AZERTY;
+    RichInputMethodSubtype FR_CA_QWERTY;
+    RichInputMethodSubtype FR_CH_SWISS;
+    RichInputMethodSubtype FR_CH_QWERTY;
+    RichInputMethodSubtype FR_CH_QWERTZ;
+    RichInputMethodSubtype IW_HEBREW;
+    RichInputMethodSubtype ZZ_QWERTY;
+
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        final Context context = getContext();
+        RichInputMethodManager.init(context);
+        mRichImm = RichInputMethodManager.getInstance();
+
+        EN_US_QWERTY = findSubtypeOf(Locale.US.toString(), "qwerty");
+        EN_GB_QWERTY = findSubtypeOf(Locale.UK.toString(), "qwerty");
+        FR_AZERTY = findSubtypeOf(Locale.FRENCH.toString(), "azerty");
+        FR_CA_QWERTY = findSubtypeOf(Locale.CANADA_FRENCH.toString(), "qwerty");
+        FR_CH_SWISS = findSubtypeOf("fr_CH", "swiss");
+        FR_CH_QWERTZ = new RichInputMethodSubtype(
+                AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype("fr_CH", "qwertz"));
+        FR_CH_QWERTY = new RichInputMethodSubtype(
+                AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype("fr_CH", "qwerty"));
+        IW_HEBREW = findSubtypeOf("iw", "hebrew");
+        ZZ_QWERTY = findSubtypeOf(SubtypeLocaleUtils.NO_LANGUAGE, "qwerty");
+    }
+
+    @Nonnull
+    private RichInputMethodSubtype findSubtypeOf(final String localeString,
+            final String keyboardLayoutSetName) {
+        final InputMethodSubtype subtype = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
+                localeString, keyboardLayoutSetName);
+        if (subtype == null) {
+            throw new RuntimeException("Can't find subtype of " + localeString + " with "
+                    + keyboardLayoutSetName);
+        }
+        return new RichInputMethodSubtype(subtype);
+    }
+
+    private static void enableSubtypes(final RichInputMethodSubtype ... subtypes) {
+        final ArrayList<InputMethodSubtype> enabledSubtypes = new ArrayList<>();
+        for (final RichInputMethodSubtype subtype : subtypes) {
+            enabledSubtypes.add(subtype.getRawSubtype());
+        }
+        LanguageOnSpacebarUtils.setEnabledSubtypes(enabledSubtypes);
+    }
+
+    private static void assertFormatType(final RichInputMethodSubtype subtype,
+            final boolean implicitlyEnabledSubtype, final Locale systemLocale,
+            final int expectedFormat) {
+        LanguageOnSpacebarUtils.onSubtypeChanged(subtype, implicitlyEnabledSubtype, systemLocale);
+        assertEquals(subtype.getLocale() + " implicitly=" + implicitlyEnabledSubtype
+                + " in " + systemLocale, expectedFormat,
+                LanguageOnSpacebarUtils.getLanguageOnSpacebarFormatType(subtype));
+    }
+
+    public void testOneSubtypeImplicitlyEnabled() {
+        enableSubtypes(EN_US_QWERTY);
+        assertFormatType(EN_US_QWERTY, true, Locale.US,            FORMAT_TYPE_NONE);
+
+        enableSubtypes(EN_GB_QWERTY);
+        assertFormatType(EN_GB_QWERTY, true, Locale.UK,            FORMAT_TYPE_NONE);
+
+        enableSubtypes(FR_AZERTY);
+        assertFormatType(FR_AZERTY,    true, Locale.FRANCE,        FORMAT_TYPE_NONE);
+
+        enableSubtypes(FR_CA_QWERTY);
+        assertFormatType(FR_CA_QWERTY, true, Locale.CANADA_FRENCH, FORMAT_TYPE_NONE);
+    }
+
+    public void testOneSubtypeExplicitlyEnabled() {
+        enableSubtypes(EN_US_QWERTY);
+        assertFormatType(EN_US_QWERTY, false, Locale.UK,     FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(EN_US_QWERTY, false, Locale.FRANCE, FORMAT_TYPE_LANGUAGE_ONLY);
+
+        enableSubtypes(EN_GB_QWERTY);
+        assertFormatType(EN_GB_QWERTY, false, Locale.US,     FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(EN_GB_QWERTY, false, Locale.FRANCE, FORMAT_TYPE_LANGUAGE_ONLY);
+
+        enableSubtypes(FR_AZERTY);
+        assertFormatType(FR_AZERTY,    false, Locale.US,            FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(FR_AZERTY,    false, Locale.CANADA_FRENCH, FORMAT_TYPE_LANGUAGE_ONLY);
+
+        enableSubtypes(FR_CA_QWERTY);
+        assertFormatType(FR_CA_QWERTY, false, Locale.US,            FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(FR_CA_QWERTY, false, Locale.FRANCE,        FORMAT_TYPE_LANGUAGE_ONLY);
+    }
+
+    public void testOneSubtypeImplicitlyEnabledWithNoLanguageSubtype() {
+        final Locale Locale_IW = new Locale("iw");
+        enableSubtypes(IW_HEBREW, ZZ_QWERTY);
+        // TODO: Should this be FORMAT_TYPE_NONE?
+        assertFormatType(IW_HEBREW,    true, Locale_IW, FORMAT_TYPE_LANGUAGE_ONLY);
+        // TODO: Should this be FORMAT_TYPE_NONE?
+        assertFormatType(ZZ_QWERTY,    true, Locale_IW, FORMAT_TYPE_FULL_LOCALE);
+    }
+
+    public void testTwoSubtypesExplicitlyEnabled() {
+        enableSubtypes(EN_US_QWERTY, FR_AZERTY);
+        assertFormatType(EN_US_QWERTY, false, Locale.US,     FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(FR_AZERTY,    false, Locale.US,     FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(EN_US_QWERTY, false, Locale.FRANCE, FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(FR_AZERTY,    false, Locale.FRANCE, FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(EN_US_QWERTY, false, Locale.JAPAN,  FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(FR_AZERTY,    false, Locale.JAPAN,  FORMAT_TYPE_LANGUAGE_ONLY);
+
+        enableSubtypes(EN_US_QWERTY, ZZ_QWERTY);
+        assertFormatType(EN_US_QWERTY, false, Locale.US,     FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(ZZ_QWERTY,    false, Locale.US,     FORMAT_TYPE_FULL_LOCALE);
+        assertFormatType(EN_US_QWERTY, false, Locale.FRANCE, FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(ZZ_QWERTY,    false, Locale.FRANCE, FORMAT_TYPE_FULL_LOCALE);
+
+    }
+
+    public void testMultiSubtypeWithSameLanuageAndSameLayout() {
+        // Explicitly enable en_US, en_GB, fr_FR, and no language keyboards.
+        enableSubtypes(EN_US_QWERTY, EN_GB_QWERTY, FR_CA_QWERTY, ZZ_QWERTY);
+
+        assertFormatType(EN_US_QWERTY, false, Locale.US,    FORMAT_TYPE_FULL_LOCALE);
+        assertFormatType(EN_GB_QWERTY, false, Locale.US,    FORMAT_TYPE_FULL_LOCALE);
+        assertFormatType(FR_CA_QWERTY, false, Locale.US,    FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(ZZ_QWERTY,    false, Locale.US,    FORMAT_TYPE_FULL_LOCALE);
+
+        assertFormatType(EN_US_QWERTY, false, Locale.JAPAN, FORMAT_TYPE_FULL_LOCALE);
+        assertFormatType(EN_GB_QWERTY, false, Locale.JAPAN, FORMAT_TYPE_FULL_LOCALE);
+        assertFormatType(FR_CA_QWERTY, false, Locale.JAPAN, FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(ZZ_QWERTY,    false, Locale.JAPAN, FORMAT_TYPE_FULL_LOCALE);
+    }
+
+    public void testMultiSubtypesWithSameLanguageButHaveDifferentLayout() {
+        enableSubtypes(FR_AZERTY, FR_CA_QWERTY, FR_CH_SWISS, FR_CH_QWERTZ);
+
+        assertFormatType(FR_AZERTY,    false, Locale.FRANCE, FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(FR_CA_QWERTY, false, Locale.FRANCE, FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(FR_CH_SWISS,  false, Locale.FRANCE, FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(FR_CH_QWERTZ, false, Locale.FRANCE, FORMAT_TYPE_LANGUAGE_ONLY);
+
+        assertFormatType(FR_AZERTY,    false, Locale.CANADA_FRENCH, FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(FR_CA_QWERTY, false, Locale.CANADA_FRENCH, FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(FR_CH_SWISS,  false, Locale.CANADA_FRENCH, FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(FR_CH_QWERTZ, false, Locale.CANADA_FRENCH, FORMAT_TYPE_LANGUAGE_ONLY);
+
+        assertFormatType(FR_AZERTY,    false, Locale.JAPAN, FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(FR_CA_QWERTY, false, Locale.JAPAN, FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(FR_CH_SWISS,  false, Locale.JAPAN, FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(FR_CH_QWERTZ, false, Locale.JAPAN, FORMAT_TYPE_LANGUAGE_ONLY);
+    }
+
+    public void testMultiSubtypesWithSameLanguageAndMayHaveSameLayout() {
+        enableSubtypes(FR_AZERTY, FR_CA_QWERTY, FR_CH_SWISS, FR_CH_QWERTY, FR_CH_QWERTZ);
+
+        assertFormatType(FR_AZERTY,    false, Locale.FRANCE, FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(FR_CA_QWERTY, false, Locale.FRANCE, FORMAT_TYPE_FULL_LOCALE);
+        assertFormatType(FR_CH_SWISS,  false, Locale.FRANCE, FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(FR_CH_QWERTY, false, Locale.FRANCE, FORMAT_TYPE_FULL_LOCALE);
+        assertFormatType(FR_CH_QWERTZ, false, Locale.FRANCE, FORMAT_TYPE_LANGUAGE_ONLY);
+
+        assertFormatType(FR_AZERTY,    false, Locale.CANADA_FRENCH, FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(FR_CA_QWERTY, false, Locale.CANADA_FRENCH, FORMAT_TYPE_FULL_LOCALE);
+        assertFormatType(FR_CH_SWISS,  false, Locale.CANADA_FRENCH, FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(FR_CH_QWERTY, false, Locale.CANADA_FRENCH, FORMAT_TYPE_FULL_LOCALE);
+        assertFormatType(FR_CH_QWERTZ, false, Locale.CANADA_FRENCH, FORMAT_TYPE_LANGUAGE_ONLY);
+
+        assertFormatType(FR_AZERTY,    false, Locale.JAPAN, FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(FR_CA_QWERTY, false, Locale.JAPAN, FORMAT_TYPE_FULL_LOCALE);
+        assertFormatType(FR_CH_SWISS,  false, Locale.JAPAN, FORMAT_TYPE_LANGUAGE_ONLY);
+        assertFormatType(FR_CH_QWERTY, false, Locale.JAPAN, FORMAT_TYPE_FULL_LOCALE);
+        assertFormatType(FR_CH_QWERTZ, false, Locale.JAPAN, FORMAT_TYPE_LANGUAGE_ONLY);
+    }
+}
diff --git a/tests/src/com/android/inputmethod/latin/utils/RecapitalizeStatusTests.java b/tests/src/com/android/inputmethod/latin/utils/RecapitalizeStatusTests.java
index a3f2ce5..9b82683 100644
--- a/tests/src/com/android/inputmethod/latin/utils/RecapitalizeStatusTests.java
+++ b/tests/src/com/android/inputmethod/latin/utils/RecapitalizeStatusTests.java
@@ -19,7 +19,7 @@
 import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
 
-import com.android.inputmethod.latin.Constants;
+import com.android.inputmethod.latin.common.Constants;
 
 import java.util.Locale;
 
diff --git a/tests/src/com/android/inputmethod/latin/utils/ResizableIntArrayTests.java b/tests/src/com/android/inputmethod/latin/utils/ResizableIntArrayTests.java
deleted file mode 100644
index 8f58e68..0000000
--- a/tests/src/com/android/inputmethod/latin/utils/ResizableIntArrayTests.java
+++ /dev/null
@@ -1,377 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.utils;
-
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-import java.util.Arrays;
-
-@SmallTest
-public class ResizableIntArrayTests extends AndroidTestCase {
-    private static final int DEFAULT_CAPACITY = 48;
-
-    public void testNewInstance() {
-        final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
-        final int[] array = src.getPrimitiveArray();
-        assertEquals("new instance length", 0, src.getLength());
-        assertNotNull("new instance array", array);
-        assertEquals("new instance array length", DEFAULT_CAPACITY, array.length);
-    }
-
-    public void testAdd() {
-        final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
-        final int[] array = src.getPrimitiveArray();
-        int[] array2 = null, array3 = null;
-        final int limit = DEFAULT_CAPACITY * 2 + 10;
-        for (int i = 0; i < limit; i++) {
-            final int value = i;
-            src.add(value);
-            assertEquals("length after add " + i, i + 1, src.getLength());
-            if (i == DEFAULT_CAPACITY) {
-                array2 = src.getPrimitiveArray();
-            }
-            if (i == DEFAULT_CAPACITY * 2) {
-                array3 = src.getPrimitiveArray();
-            }
-            if (i < DEFAULT_CAPACITY) {
-                assertSame("array after add " + i, array, src.getPrimitiveArray());
-            } else if (i < DEFAULT_CAPACITY * 2) {
-                assertSame("array after add " + i, array2, src.getPrimitiveArray());
-            } else if (i < DEFAULT_CAPACITY * 3) {
-                assertSame("array after add " + i, array3, src.getPrimitiveArray());
-            }
-        }
-        for (int i = 0; i < limit; i++) {
-            final int value = i;
-            assertEquals("value at " + i, value, src.get(i));
-        }
-    }
-
-    public void testAddAt() {
-        final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
-        final int limit = DEFAULT_CAPACITY * 10, step = DEFAULT_CAPACITY * 2;
-        for (int i = 0; i < limit; i += step) {
-            final int value = i;
-            src.addAt(i, value);
-            assertEquals("length after add at " + i, i + 1, src.getLength());
-        }
-        for (int i = 0; i < limit; i += step) {
-            final int value = i;
-            assertEquals("value at " + i, value, src.get(i));
-        }
-    }
-
-    public void testGet() {
-        final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
-        try {
-            final int value = src.get(0);
-            fail("get(0) shouldn't succeed");
-        } catch (ArrayIndexOutOfBoundsException e) {
-            // success
-        }
-        try {
-            final int value = src.get(DEFAULT_CAPACITY);
-            fail("get(DEFAULT_CAPACITY) shouldn't succeed");
-        } catch (ArrayIndexOutOfBoundsException e) {
-            // success
-        }
-
-        final int index = DEFAULT_CAPACITY / 2;
-        final int valueAddAt = 100;
-        src.addAt(index, valueAddAt);
-        assertEquals("legth after add at " + index, index + 1, src.getLength());
-        assertEquals("value after add at " + index, valueAddAt, src.get(index));
-        assertEquals("value after add at 0", 0, src.get(0));
-        try {
-            final int value = src.get(src.getLength());
-            fail("get(length) shouldn't succeed");
-        } catch (ArrayIndexOutOfBoundsException e) {
-            // success
-        }
-    }
-
-    public void testReset() {
-        final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
-        final int[] array = src.getPrimitiveArray();
-        for (int i = 0; i < DEFAULT_CAPACITY; i++) {
-            final int value = i;
-            src.add(value);
-            assertEquals("length after add " + i, i + 1, src.getLength());
-        }
-
-        final int smallerLength = DEFAULT_CAPACITY / 2;
-        src.reset(smallerLength);
-        final int[] array2 = src.getPrimitiveArray();
-        assertEquals("length after reset", 0, src.getLength());
-        assertNotSame("array after reset", array, array2);
-
-        int[] array3 = null;
-        for (int i = 0; i < DEFAULT_CAPACITY; i++) {
-            final int value = i;
-            src.add(value);
-            assertEquals("length after add " + i, i + 1, src.getLength());
-            if (i == smallerLength) {
-                array3 = src.getPrimitiveArray();
-            }
-            if (i < smallerLength) {
-                assertSame("array after add " + i, array2, src.getPrimitiveArray());
-            } else if (i < smallerLength * 2) {
-                assertSame("array after add " + i, array3, src.getPrimitiveArray());
-            }
-        }
-    }
-
-    public void testSetLength() {
-        final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
-        final int[] array = src.getPrimitiveArray();
-        for (int i = 0; i < DEFAULT_CAPACITY; i++) {
-            final int value = i;
-            src.add(value);
-            assertEquals("length after add " + i, i + 1, src.getLength());
-        }
-
-        final int largerLength = DEFAULT_CAPACITY * 2;
-        src.setLength(largerLength);
-        final int[] array2 = src.getPrimitiveArray();
-        assertEquals("length after larger setLength", largerLength, src.getLength());
-        assertNotSame("array after larger setLength", array, array2);
-        assertEquals("array length after larger setLength", largerLength, array2.length);
-        for (int i = 0; i < largerLength; i++) {
-            final int value = i;
-            if (i < DEFAULT_CAPACITY) {
-                assertEquals("value at " + i, value, src.get(i));
-            } else {
-                assertEquals("value at " + i, 0, src.get(i));
-            }
-        }
-
-        final int smallerLength = DEFAULT_CAPACITY / 2;
-        src.setLength(smallerLength);
-        final int[] array3 = src.getPrimitiveArray();
-        assertEquals("length after smaller setLength", smallerLength, src.getLength());
-        assertSame("array after smaller setLength", array2, array3);
-        assertEquals("array length after smaller setLength", largerLength, array3.length);
-        for (int i = 0; i < smallerLength; i++) {
-            final int value = i;
-            assertEquals("value at " + i, value, src.get(i));
-        }
-    }
-
-    public void testSet() {
-        final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
-        final int limit = DEFAULT_CAPACITY * 2 + 10;
-        for (int i = 0; i < limit; i++) {
-            final int value = i;
-            src.add(value);
-        }
-
-        final ResizableIntArray dst = new ResizableIntArray(DEFAULT_CAPACITY);
-        dst.set(src);
-        assertEquals("length after set", dst.getLength(), src.getLength());
-        assertSame("array after set", dst.getPrimitiveArray(), src.getPrimitiveArray());
-    }
-
-    public void testCopy() {
-        final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
-        for (int i = 0; i < DEFAULT_CAPACITY; i++) {
-            final int value =  i;
-            src.add(value);
-        }
-
-        final ResizableIntArray dst = new ResizableIntArray(DEFAULT_CAPACITY);
-        final int[] array = dst.getPrimitiveArray();
-        dst.copy(src);
-        assertEquals("length after copy", dst.getLength(), src.getLength());
-        assertSame("array after copy", array, dst.getPrimitiveArray());
-        assertNotSame("array after copy", dst.getPrimitiveArray(), src.getPrimitiveArray());
-        assertIntArrayEquals("values after copy",
-                dst.getPrimitiveArray(), 0, src.getPrimitiveArray(), 0, dst.getLength());
-
-        final int smallerLength = DEFAULT_CAPACITY / 2;
-        dst.reset(smallerLength);
-        final int[] array2 = dst.getPrimitiveArray();
-        dst.copy(src);
-        final int[] array3 = dst.getPrimitiveArray();
-        assertEquals("length after copy to smaller", dst.getLength(), src.getLength());
-        assertNotSame("array after copy to smaller", array2, array3);
-        assertNotSame("array after copy to smaller", array3, src.getPrimitiveArray());
-        assertIntArrayEquals("values after copy to smaller",
-                dst.getPrimitiveArray(), 0, src.getPrimitiveArray(), 0, dst.getLength());
-    }
-
-    public void testAppend() {
-        final int srcLength = DEFAULT_CAPACITY;
-        final ResizableIntArray src = new ResizableIntArray(srcLength);
-        for (int i = 0; i < srcLength; i++) {
-            final int value = i;
-            src.add(value);
-        }
-        final ResizableIntArray dst = new ResizableIntArray(DEFAULT_CAPACITY * 2);
-        final int[] array = dst.getPrimitiveArray();
-        final int dstLength = DEFAULT_CAPACITY / 2;
-        for (int i = 0; i < dstLength; i++) {
-            final int value = -i - 1;
-            dst.add(value);
-        }
-        final ResizableIntArray dstCopy = new ResizableIntArray(dst.getLength());
-        dstCopy.copy(dst);
-
-        final int startPos = 0;
-        dst.append(src, startPos, 0 /* length */);
-        assertEquals("length after append zero", dstLength, dst.getLength());
-        assertSame("array after append zero", array, dst.getPrimitiveArray());
-        assertIntArrayEquals("values after append zero", dstCopy.getPrimitiveArray(), startPos,
-                dst.getPrimitiveArray(), startPos, dstLength);
-
-        dst.append(src, startPos, srcLength);
-        assertEquals("length after append", dstLength + srcLength, dst.getLength());
-        assertSame("array after append", array, dst.getPrimitiveArray());
-        assertTrue("primitive length after append",
-                dst.getPrimitiveArray().length >= dstLength + srcLength);
-        assertIntArrayEquals("original values after append", dstCopy.getPrimitiveArray(), startPos,
-                dst.getPrimitiveArray(), startPos, dstLength);
-        assertIntArrayEquals("appended values after append", src.getPrimitiveArray(), startPos,
-                dst.getPrimitiveArray(), dstLength, srcLength);
-
-        dst.append(src, startPos, srcLength);
-        assertEquals("length after 2nd append", dstLength + srcLength * 2, dst.getLength());
-        assertNotSame("array after 2nd append", array, dst.getPrimitiveArray());
-        assertTrue("primitive length after 2nd append",
-                dst.getPrimitiveArray().length >= dstLength + srcLength * 2);
-        assertIntArrayEquals("original values after 2nd append",
-                dstCopy.getPrimitiveArray(), startPos, dst.getPrimitiveArray(), startPos,
-                dstLength);
-        assertIntArrayEquals("appended values after 2nd append",
-                src.getPrimitiveArray(), startPos, dst.getPrimitiveArray(), dstLength,
-                srcLength);
-        assertIntArrayEquals("appended values after 2nd append",
-                src.getPrimitiveArray(), startPos, dst.getPrimitiveArray(), dstLength + srcLength,
-                srcLength);
-    }
-
-    public void testFill() {
-        final int srcLength = DEFAULT_CAPACITY;
-        final ResizableIntArray src = new ResizableIntArray(srcLength);
-        for (int i = 0; i < srcLength; i++) {
-            final int value = i;
-            src.add(value);
-        }
-        final int[] array = src.getPrimitiveArray();
-
-        final int startPos = srcLength / 3;
-        final int length = srcLength / 3;
-        final int endPos = startPos + length;
-        assertTrue(startPos >= 1);
-        final int fillValue = 123;
-        try {
-            src.fill(fillValue, -1 /* startPos */, length);
-            fail("fill from -1 shouldn't succeed");
-        } catch (IllegalArgumentException e) {
-            // success
-        }
-        try {
-            src.fill(fillValue, startPos, -1 /* length */);
-            fail("fill negative length shouldn't succeed");
-        } catch (IllegalArgumentException e) {
-            // success
-        }
-
-        src.fill(fillValue, startPos, length);
-        assertEquals("length after fill", srcLength, src.getLength());
-        assertSame("array after fill", array, src.getPrimitiveArray());
-        for (int i = 0; i < srcLength; i++) {
-            final int value = i;
-            if (i >= startPos && i < endPos) {
-                assertEquals("new values after fill at " + i, fillValue, src.get(i));
-            } else {
-                assertEquals("unmodified values after fill at " + i, value, src.get(i));
-            }
-        }
-
-        final int length2 = srcLength * 2 - startPos;
-        final int largeEnd = startPos + length2;
-        assertTrue(largeEnd > srcLength);
-        final int fillValue2 = 456;
-        src.fill(fillValue2, startPos, length2);
-        assertEquals("length after large fill", largeEnd, src.getLength());
-        assertNotSame("array after large fill", array, src.getPrimitiveArray());
-        for (int i = 0; i < largeEnd; i++) {
-            final int value = i;
-            if (i >= startPos && i < largeEnd) {
-                assertEquals("new values after large fill at " + i, fillValue2, src.get(i));
-            } else {
-                assertEquals("unmodified values after large fill at " + i, value, src.get(i));
-            }
-        }
-
-        final int startPos2 = largeEnd + length2;
-        final int endPos2 = startPos2 + length2;
-        final int fillValue3 = 789;
-        src.fill(fillValue3, startPos2, length2);
-        assertEquals("length after disjoint fill", endPos2, src.getLength());
-        for (int i = 0; i < endPos2; i++) {
-            final int value = i;
-            if (i >= startPos2 && i < endPos2) {
-                assertEquals("new values after disjoint fill at " + i, fillValue3, src.get(i));
-            } else if (i >= startPos && i < largeEnd) {
-                assertEquals("unmodified values after disjoint fill at " + i,
-                        fillValue2, src.get(i));
-            } else if (i < startPos) {
-                assertEquals("unmodified values after disjoint fill at " + i, value, src.get(i));
-            } else {
-                assertEquals("gap values after disjoint fill at " + i, 0, src.get(i));
-            }
-        }
-    }
-
-    private static void assertIntArrayEquals(final String message, final int[] expecteds,
-            final int expectedPos, final int[] actuals, final int actualPos, final int length) {
-        if (expecteds == actuals) {
-            return;
-        }
-        if (expecteds == null || actuals == null) {
-            assertEquals(message, Arrays.toString(expecteds), Arrays.toString(actuals));
-            return;
-        }
-        if (expecteds.length < expectedPos + length || actuals.length < actualPos + length) {
-            fail(message + ": insufficient length: expecteds=" + Arrays.toString(expecteds)
-                    + " actuals=" + Arrays.toString(actuals));
-            return;
-        }
-        for (int i = 0; i < length; i++) {
-            assertEquals(message + " [" + i + "]",
-                    expecteds[i + expectedPos], actuals[i + actualPos]);
-        }
-    }
-
-    public void testShift() {
-        final ResizableIntArray src = new ResizableIntArray(DEFAULT_CAPACITY);
-        final int limit = DEFAULT_CAPACITY * 10;
-        final int shiftAmount = 20;
-        for (int i = 0; i < limit; ++i) {
-            final int value = i;
-            src.addAt(i, value);
-            assertEquals("length after add at " + i, i + 1, src.getLength());
-        }
-        src.shift(shiftAmount);
-        for (int i = 0; i < limit - shiftAmount; ++i) {
-            final int oldValue = i + shiftAmount;
-            assertEquals("value at " + i, oldValue, src.get(i));
-        }
-    }
-}
diff --git a/tests/src/com/android/inputmethod/latin/utils/SpacebarLanguagetUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/SpacebarLanguagetUtilsTests.java
deleted file mode 100644
index fdde342..0000000
--- a/tests/src/com/android/inputmethod/latin/utils/SpacebarLanguagetUtilsTests.java
+++ /dev/null
@@ -1,251 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.utils;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.view.inputmethod.InputMethodInfo;
-import android.view.inputmethod.InputMethodSubtype;
-
-import com.android.inputmethod.latin.RichInputMethodManager;
-
-import java.util.ArrayList;
-import java.util.Locale;
-
-@SmallTest
-public class SpacebarLanguagetUtilsTests extends AndroidTestCase {
-    // All input method subtypes of LatinIME.
-    private final ArrayList<InputMethodSubtype> mSubtypesList = new ArrayList<>();
-
-    private RichInputMethodManager mRichImm;
-    private Resources mRes;
-
-    InputMethodSubtype EN_US;
-    InputMethodSubtype EN_GB;
-    InputMethodSubtype ES_US;
-    InputMethodSubtype FR;
-    InputMethodSubtype FR_CA;
-    InputMethodSubtype FR_CH;
-    InputMethodSubtype DE;
-    InputMethodSubtype DE_CH;
-    InputMethodSubtype ZZ;
-    InputMethodSubtype DE_QWERTY;
-    InputMethodSubtype FR_QWERTZ;
-    InputMethodSubtype EN_US_AZERTY;
-    InputMethodSubtype EN_UK_DVORAK;
-    InputMethodSubtype ES_US_COLEMAK;
-    InputMethodSubtype ZZ_AZERTY;
-    InputMethodSubtype ZZ_PC;
-
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        final Context context = getContext();
-        RichInputMethodManager.init(context);
-        mRichImm = RichInputMethodManager.getInstance();
-        mRes = context.getResources();
-        SubtypeLocaleUtils.init(context);
-
-        final InputMethodInfo imi = mRichImm.getInputMethodInfoOfThisIme();
-        final int subtypeCount = imi.getSubtypeCount();
-        for (int index = 0; index < subtypeCount; index++) {
-            final InputMethodSubtype subtype = imi.getSubtypeAt(index);
-            mSubtypesList.add(subtype);
-        }
-
-        EN_US = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
-                Locale.US.toString(), "qwerty");
-        EN_GB = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
-                Locale.UK.toString(), "qwerty");
-        ES_US = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
-                "es_US", "spanish");
-        FR = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
-                Locale.FRENCH.toString(), "azerty");
-        FR_CA = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
-                Locale.CANADA_FRENCH.toString(), "qwerty");
-        FR_CH = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
-                "fr_CH", "swiss");
-        DE = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
-                Locale.GERMAN.toString(), "qwertz");
-        DE_CH = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
-                "de_CH", "swiss");
-        ZZ = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
-                SubtypeLocaleUtils.NO_LANGUAGE, "qwerty");
-        DE_QWERTY = AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
-                Locale.GERMAN.toString(), "qwerty");
-        FR_QWERTZ = AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
-                Locale.FRENCH.toString(), "qwertz");
-        EN_US_AZERTY = AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
-                Locale.US.toString(), "azerty");
-        EN_UK_DVORAK = AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
-                Locale.UK.toString(), "dvorak");
-        ES_US_COLEMAK = AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
-                "es_US", "colemak");
-        ZZ_AZERTY = AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
-                SubtypeLocaleUtils.NO_LANGUAGE, "azerty");
-        ZZ_PC = AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
-                SubtypeLocaleUtils.NO_LANGUAGE, "pcqwerty");
-    }
-
-    public void testAllFullDisplayNameForSpacebar() {
-        for (final InputMethodSubtype subtype : mSubtypesList) {
-            final String subtypeName = SubtypeLocaleUtils
-                    .getSubtypeDisplayNameInSystemLocale(subtype);
-            final String spacebarText = SpacebarLanguageUtils.getFullDisplayName(subtype);
-            final String languageName = SubtypeLocaleUtils
-                    .getSubtypeLocaleDisplayName(subtype.getLocale());
-            if (SubtypeLocaleUtils.isNoLanguage(subtype)) {
-                assertFalse(subtypeName, spacebarText.contains(languageName));
-            } else {
-                assertTrue(subtypeName, spacebarText.contains(languageName));
-            }
-        }
-    }
-
-   public void testAllMiddleDisplayNameForSpacebar() {
-        for (final InputMethodSubtype subtype : mSubtypesList) {
-            final String subtypeName = SubtypeLocaleUtils
-                    .getSubtypeDisplayNameInSystemLocale(subtype);
-            final String spacebarText = SpacebarLanguageUtils.getMiddleDisplayName(subtype);
-            if (SubtypeLocaleUtils.isNoLanguage(subtype)) {
-                assertEquals(subtypeName,
-                        SubtypeLocaleUtils.getKeyboardLayoutSetDisplayName(subtype), spacebarText);
-            } else {
-                final Locale locale = SubtypeLocaleUtils.getSubtypeLocale(subtype);
-                assertEquals(subtypeName,
-                        SubtypeLocaleUtils.getSubtypeLocaleDisplayName(locale.getLanguage()),
-                        spacebarText);
-            }
-        }
-    }
-
-    // InputMethodSubtype's display name for spacebar text in its locale.
-    //        isAdditionalSubtype (T=true, F=false)
-    // locale layout  |  Middle     Full
-    // ------ ------- - --------- ----------------------
-    //  en_US qwerty  F  English   English (US)           exception
-    //  en_GB qwerty  F  English   English (UK)           exception
-    //  es_US spanish F  Español   Español (EE.UU.)       exception
-    //  fr    azerty  F  Français  Français
-    //  fr_CA qwerty  F  Français  Français (Canada)
-    //  fr_CH swiss   F  Français  Français (Suisse)
-    //  de    qwertz  F  Deutsch   Deutsch
-    //  de_CH swiss   F  Deutsch   Deutsch (Schweiz)
-    //  zz    qwerty  F  QWERTY    QWERTY
-    //  fr    qwertz  T  Français  Français
-    //  de    qwerty  T  Deutsch   Deutsch
-    //  en_US azerty  T  English   English (US)
-    //  zz    azerty  T  AZERTY    AZERTY
-
-    private final RunInLocale<Void> testsPredefinedSubtypesForSpacebar = new RunInLocale<Void>() {
-        @Override
-        protected Void job(final Resources res) {
-            assertEquals("en_US", "English (US)",
-                    SpacebarLanguageUtils.getFullDisplayName(EN_US));
-            assertEquals("en_GB", "English (UK)",
-                    SpacebarLanguageUtils.getFullDisplayName(EN_GB));
-            assertEquals("es_US", "Español (EE.UU.)",
-                    SpacebarLanguageUtils.getFullDisplayName(ES_US));
-            assertEquals("fr", "Français",
-                    SpacebarLanguageUtils.getFullDisplayName(FR));
-            assertEquals("fr_CA", "Français (Canada)",
-                    SpacebarLanguageUtils.getFullDisplayName(FR_CA));
-            assertEquals("fr_CH", "Français (Suisse)",
-                    SpacebarLanguageUtils.getFullDisplayName(FR_CH));
-            assertEquals("de", "Deutsch",
-                    SpacebarLanguageUtils.getFullDisplayName(DE));
-            assertEquals("de_CH", "Deutsch (Schweiz)",
-                    SpacebarLanguageUtils.getFullDisplayName(DE_CH));
-            assertEquals("zz", "QWERTY",
-                    SpacebarLanguageUtils.getFullDisplayName(ZZ));
-
-            assertEquals("en_US", "English",
-                    SpacebarLanguageUtils.getMiddleDisplayName(EN_US));
-            assertEquals("en_GB", "English",
-                    SpacebarLanguageUtils.getMiddleDisplayName(EN_GB));
-            assertEquals("es_US", "Español",
-                    SpacebarLanguageUtils.getMiddleDisplayName(ES_US));
-            assertEquals("fr", "Français",
-                    SpacebarLanguageUtils.getMiddleDisplayName(FR));
-            assertEquals("fr_CA", "Français",
-                    SpacebarLanguageUtils.getMiddleDisplayName(FR_CA));
-            assertEquals("fr_CH", "Français",
-                    SpacebarLanguageUtils.getMiddleDisplayName(FR_CH));
-            assertEquals("de", "Deutsch",
-                    SpacebarLanguageUtils.getMiddleDisplayName(DE));
-            assertEquals("de_CH", "Deutsch",
-                    SpacebarLanguageUtils.getMiddleDisplayName(DE_CH));
-            assertEquals("zz", "QWERTY",
-                    SpacebarLanguageUtils.getMiddleDisplayName(ZZ));
-            return null;
-        }
-    };
-
-    private final RunInLocale<Void> testsAdditionalSubtypesForSpacebar = new RunInLocale<Void>() {
-        @Override
-        protected Void job(final Resources res) {
-            assertEquals("fr qwertz", "Français",
-                    SpacebarLanguageUtils.getFullDisplayName(FR_QWERTZ));
-            assertEquals("de qwerty", "Deutsch",
-                    SpacebarLanguageUtils.getFullDisplayName(DE_QWERTY));
-            assertEquals("en_US azerty", "English (US)",
-                    SpacebarLanguageUtils.getFullDisplayName(EN_US_AZERTY));
-            assertEquals("en_UK dvorak", "English (UK)",
-                    SpacebarLanguageUtils.getFullDisplayName(EN_UK_DVORAK));
-            assertEquals("es_US colemak", "Español (EE.UU.)",
-                    SpacebarLanguageUtils.getFullDisplayName(ES_US_COLEMAK));
-            assertEquals("zz azerty", "AZERTY",
-                    SpacebarLanguageUtils.getFullDisplayName(ZZ_AZERTY));
-            assertEquals("zz pc", "PC",
-                    SpacebarLanguageUtils.getFullDisplayName(ZZ_PC));
-
-            assertEquals("fr qwertz", "Français",
-                    SpacebarLanguageUtils.getMiddleDisplayName(FR_QWERTZ));
-            assertEquals("de qwerty", "Deutsch",
-                    SpacebarLanguageUtils.getMiddleDisplayName(DE_QWERTY));
-            assertEquals("en_US azerty", "English",
-                    SpacebarLanguageUtils.getMiddleDisplayName(EN_US_AZERTY));
-            assertEquals("en_UK dvorak", "English",
-                    SpacebarLanguageUtils.getMiddleDisplayName(EN_UK_DVORAK));
-            assertEquals("es_US colemak", "Español",
-                    SpacebarLanguageUtils.getMiddleDisplayName(ES_US_COLEMAK));
-            assertEquals("zz azerty", "AZERTY",
-                    SpacebarLanguageUtils.getMiddleDisplayName(ZZ_AZERTY));
-            assertEquals("zz pc", "PC",
-                    SpacebarLanguageUtils.getMiddleDisplayName(ZZ_PC));
-            return null;
-        }
-    };
-
-    public void testPredefinedSubtypesForSpacebarInEnglish() {
-        testsPredefinedSubtypesForSpacebar.runInLocale(mRes, Locale.ENGLISH);
-    }
-
-    public void testAdditionalSubtypeForSpacebarInEnglish() {
-        testsAdditionalSubtypesForSpacebar.runInLocale(mRes, Locale.ENGLISH);
-    }
-
-    public void testPredefinedSubtypesForSpacebarInFrench() {
-        testsPredefinedSubtypesForSpacebar.runInLocale(mRes, Locale.FRENCH);
-    }
-
-    public void testAdditionalSubtypeForSpacebarInFrench() {
-        testsAdditionalSubtypesForSpacebar.runInLocale(mRes, Locale.FRENCH);
-    }
-}
diff --git a/tests/src/com/android/inputmethod/latin/utils/SpannableStringUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/SpannableStringUtilsTests.java
index fa6ad16..665d81c 100644
--- a/tests/src/com/android/inputmethod/latin/utils/SpannableStringUtilsTests.java
+++ b/tests/src/com/android/inputmethod/latin/utils/SpannableStringUtilsTests.java
@@ -20,9 +20,10 @@
 import android.test.suitebuilder.annotation.SmallTest;
 import android.text.style.SuggestionSpan;
 import android.text.style.URLSpan;
+import android.text.SpannableString;
 import android.text.SpannableStringBuilder;
-import android.text.Spannable;
 import android.text.Spanned;
+import android.text.SpannedString;
 
 @SmallTest
 public class SpannableStringUtilsTests extends AndroidTestCase {
@@ -34,8 +35,8 @@
         for (int i = 0; i < N; ++i) {
             // Put a PARAGRAPH-flagged span that should not be found in the result.
             s.setSpan(new SuggestionSpan(getContext(),
-                    new String[] {"" + i}, Spannable.SPAN_PARAGRAPH),
-                    i * 12, i * 12 + 12, Spannable.SPAN_PARAGRAPH);
+                    new String[] {"" + i}, Spanned.SPAN_PARAGRAPH),
+                    i * 12, i * 12 + 12, Spanned.SPAN_PARAGRAPH);
             // Put a normal suggestion span that should be found in the result.
             s.setSpan(new SuggestionSpan(getContext(), new String[] {"" + i}, 0), i, i * 2, 0);
             // Put a URL span than should not be found in the result.
@@ -51,8 +52,175 @@
         for (int i = 0; i < spans.length; i++) {
             final int flags = result.getSpanFlags(spans[i]);
             assertEquals("Should not find a span with PARAGRAPH flag",
-                    flags & Spannable.SPAN_PARAGRAPH, 0);
+                    flags & Spanned.SPAN_PARAGRAPH, 0);
             assertTrue("Should be a SuggestionSpan", spans[i] instanceof SuggestionSpan);
         }
     }
+
+    private static void assertSpanCount(final int expectedCount, final CharSequence cs) {
+        final int actualCount;
+        if (cs instanceof Spanned) {
+            final Spanned spanned = (Spanned) cs;
+            actualCount = spanned.getSpans(0, spanned.length(), Object.class).length;
+        } else {
+            actualCount = 0;
+        }
+        assertEquals(expectedCount, actualCount);
+    }
+
+    private static void assertSpan(final CharSequence cs, final Object expectedSpan,
+            final int expectedStart, final int expectedEnd, final int expectedFlags) {
+        assertTrue(cs instanceof Spanned);
+        final Spanned spanned = (Spanned) cs;
+        final Object[] actualSpans = spanned.getSpans(0, spanned.length(), Object.class);
+        for (Object actualSpan : actualSpans) {
+            if (actualSpan == expectedSpan) {
+                final int actualStart = spanned.getSpanStart(actualSpan);
+                final int actualEnd = spanned.getSpanEnd(actualSpan);
+                final int actualFlags = spanned.getSpanFlags(actualSpan);
+                assertEquals(expectedStart, actualStart);
+                assertEquals(expectedEnd, actualEnd);
+                assertEquals(expectedFlags, actualFlags);
+                return;
+            }
+        }
+        assertTrue(false);
+    }
+
+    public void testSplitCharSequenceWithSpan() {
+        // text:  " a bcd efg hij  "
+        // span1:  ^^^^^^^
+        // span2:  ^^^^^
+        // span3:              ^
+        final SpannableString spannableString = new SpannableString(" a bcd efg hij  ");
+        final Object span1 = new Object();
+        final Object span2 = new Object();
+        final Object span3 = new Object();
+        final int SPAN1_FLAGS = Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
+        final int SPAN2_FLAGS = Spanned.SPAN_EXCLUSIVE_INCLUSIVE;
+        final int SPAN3_FLAGS = Spanned.SPAN_INCLUSIVE_INCLUSIVE;
+        spannableString.setSpan(span1, 0, 7, SPAN1_FLAGS);
+        spannableString.setSpan(span2, 0, 5, SPAN2_FLAGS);
+        spannableString.setSpan(span3, 12, 13, SPAN3_FLAGS);
+        final CharSequence[] charSequencesFromSpanned = SpannableStringUtils.split(
+                spannableString, " ", true /* preserveTrailingEmptySegmengs */);
+        final CharSequence[] charSequencesFromString = SpannableStringUtils.split(
+                spannableString.toString(), " ", true /* preserveTrailingEmptySegmengs */);
+
+
+        assertEquals(7, charSequencesFromString.length);
+        assertEquals(7, charSequencesFromSpanned.length);
+
+        // text:  ""
+        // span1: ^
+        // span2: ^
+        // span3:
+        assertEquals("", charSequencesFromString[0].toString());
+        assertSpanCount(0, charSequencesFromString[0]);
+        assertEquals("", charSequencesFromSpanned[0].toString());
+        assertSpanCount(2, charSequencesFromSpanned[0]);
+        assertSpan(charSequencesFromSpanned[0], span1, 0, 0, SPAN1_FLAGS);
+        assertSpan(charSequencesFromSpanned[0], span2, 0, 0, SPAN2_FLAGS);
+
+        // text:  "a"
+        // span1:  ^
+        // span2:  ^
+        // span3:
+        assertEquals("a", charSequencesFromString[1].toString());
+        assertSpanCount(0, charSequencesFromString[1]);
+        assertEquals("a", charSequencesFromSpanned[1].toString());
+        assertSpanCount(2, charSequencesFromSpanned[1]);
+        assertSpan(charSequencesFromSpanned[1], span1, 0, 1, SPAN1_FLAGS);
+        assertSpan(charSequencesFromSpanned[1], span2, 0, 1, SPAN2_FLAGS);
+
+        // text:  "bcd"
+        // span1:  ^^^
+        // span2:  ^^
+        // span3:
+        assertEquals("bcd", charSequencesFromString[2].toString());
+        assertSpanCount(0, charSequencesFromString[2]);
+        assertEquals("bcd", charSequencesFromSpanned[2].toString());
+        assertSpanCount(2, charSequencesFromSpanned[2]);
+        assertSpan(charSequencesFromSpanned[2], span1, 0, 3, SPAN1_FLAGS);
+        assertSpan(charSequencesFromSpanned[2], span2, 0, 2, SPAN2_FLAGS);
+
+        // text:  "efg"
+        // span1:
+        // span2:
+        // span3:
+        assertEquals("efg", charSequencesFromString[3].toString());
+        assertSpanCount(0, charSequencesFromString[3]);
+        assertEquals("efg", charSequencesFromSpanned[3].toString());
+        assertSpanCount(0, charSequencesFromSpanned[3]);
+
+        // text:  "hij"
+        // span1:
+        // span2:
+        // span3:   ^
+        assertEquals("hij", charSequencesFromString[4].toString());
+        assertSpanCount(0, charSequencesFromString[4]);
+        assertEquals("hij", charSequencesFromSpanned[4].toString());
+        assertSpanCount(1, charSequencesFromSpanned[4]);
+        assertSpan(charSequencesFromSpanned[4], span3, 1, 2, SPAN3_FLAGS);
+
+        // text:  ""
+        // span1:
+        // span2:
+        // span3:
+        assertEquals("", charSequencesFromString[5].toString());
+        assertSpanCount(0, charSequencesFromString[5]);
+        assertEquals("", charSequencesFromSpanned[5].toString());
+        assertSpanCount(0, charSequencesFromSpanned[5]);
+
+        // text:  ""
+        // span1:
+        // span2:
+        // span3:
+        assertEquals("", charSequencesFromString[6].toString());
+        assertSpanCount(0, charSequencesFromString[6]);
+        assertEquals("", charSequencesFromSpanned[6].toString());
+        assertSpanCount(0, charSequencesFromSpanned[6]);
+    }
+
+    public void testSplitCharSequencePreserveTrailingEmptySegmengs() {
+        assertEquals(1, SpannableStringUtils.split("", " ",
+                false /* preserveTrailingEmptySegmengs */).length);
+        assertEquals(1, SpannableStringUtils.split(new SpannedString(""), " ",
+                false /* preserveTrailingEmptySegmengs */).length);
+
+        assertEquals(1, SpannableStringUtils.split("", " ",
+                true /* preserveTrailingEmptySegmengs */).length);
+        assertEquals(1, SpannableStringUtils.split(new SpannedString(""), " ",
+                true /* preserveTrailingEmptySegmengs */).length);
+
+        assertEquals(0, SpannableStringUtils.split(" ", " ",
+                false /* preserveTrailingEmptySegmengs */).length);
+        assertEquals(0, SpannableStringUtils.split(new SpannedString(" "), " ",
+                false /* preserveTrailingEmptySegmengs */).length);
+
+        assertEquals(2, SpannableStringUtils.split(" ", " ",
+                true /* preserveTrailingEmptySegmengs */).length);
+        assertEquals(2, SpannableStringUtils.split(new SpannedString(" "), " ",
+                true /* preserveTrailingEmptySegmengs */).length);
+
+        assertEquals(3, SpannableStringUtils.split("a b c  ", " ",
+                false /* preserveTrailingEmptySegmengs */).length);
+        assertEquals(3, SpannableStringUtils.split(new SpannedString("a b c  "), " ",
+                false /* preserveTrailingEmptySegmengs */).length);
+
+        assertEquals(5, SpannableStringUtils.split("a b c  ", " ",
+                true /* preserveTrailingEmptySegmengs */).length);
+        assertEquals(5, SpannableStringUtils.split(new SpannedString("a b c  "), " ",
+                true /* preserveTrailingEmptySegmengs */).length);
+
+        assertEquals(6, SpannableStringUtils.split("a     b ", " ",
+                false /* preserveTrailingEmptySegmengs */).length);
+        assertEquals(6, SpannableStringUtils.split(new SpannedString("a     b "), " ",
+                false /* preserveTrailingEmptySegmengs */).length);
+
+        assertEquals(7, SpannableStringUtils.split("a     b ", " ",
+                true /* preserveTrailingEmptySegmengs */).length);
+        assertEquals(7, SpannableStringUtils.split(new SpannedString("a     b "), " ",
+                true /* preserveTrailingEmptySegmengs */).length);
+    }
 }
diff --git a/tests/src/com/android/inputmethod/latin/utils/StringAndJsonUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/StringAndJsonUtilsTests.java
deleted file mode 100644
index 637ae10..0000000
--- a/tests/src/com/android/inputmethod/latin/utils/StringAndJsonUtilsTests.java
+++ /dev/null
@@ -1,499 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.utils;
-
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-import android.text.SpannableString;
-import android.text.Spanned;
-import android.text.SpannedString;
-
-import com.android.inputmethod.latin.Constants;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Locale;
-
-@SmallTest
-public class StringAndJsonUtilsTests extends AndroidTestCase {
-    public void testContainsInArray() {
-        assertFalse("empty array", StringUtils.containsInArray("key", new String[0]));
-        assertFalse("not in 1 element", StringUtils.containsInArray("key", new String[] {
-                "key1"
-        }));
-        assertFalse("not in 2 elements", StringUtils.containsInArray("key", new String[] {
-                "key1", "key2"
-        }));
-
-        assertTrue("in 1 element", StringUtils.containsInArray("key", new String[] {
-                "key"
-        }));
-        assertTrue("in 2 elements", StringUtils.containsInArray("key", new String[] {
-                "key1", "key"
-        }));
-    }
-
-    public void testContainsInCommaSplittableText() {
-        assertFalse("null", StringUtils.containsInCommaSplittableText("key", null));
-        assertFalse("empty", StringUtils.containsInCommaSplittableText("key", ""));
-        assertFalse("not in 1 element",
-                StringUtils.containsInCommaSplittableText("key", "key1"));
-        assertFalse("not in 2 elements",
-                StringUtils.containsInCommaSplittableText("key", "key1,key2"));
-
-        assertTrue("in 1 element", StringUtils.containsInCommaSplittableText("key", "key"));
-        assertTrue("in 2 elements", StringUtils.containsInCommaSplittableText("key", "key1,key"));
-    }
-
-    public void testRemoveFromCommaSplittableTextIfExists() {
-        assertEquals("null", "", StringUtils.removeFromCommaSplittableTextIfExists("key", null));
-        assertEquals("empty", "", StringUtils.removeFromCommaSplittableTextIfExists("key", ""));
-
-        assertEquals("not in 1 element", "key1",
-                StringUtils.removeFromCommaSplittableTextIfExists("key", "key1"));
-        assertEquals("not in 2 elements", "key1,key2",
-                StringUtils.removeFromCommaSplittableTextIfExists("key", "key1,key2"));
-
-        assertEquals("in 1 element", "",
-                StringUtils.removeFromCommaSplittableTextIfExists("key", "key"));
-        assertEquals("in 2 elements at position 1", "key2",
-                StringUtils.removeFromCommaSplittableTextIfExists("key", "key,key2"));
-        assertEquals("in 2 elements at position 2", "key1",
-                StringUtils.removeFromCommaSplittableTextIfExists("key", "key1,key"));
-        assertEquals("in 3 elements at position 2", "key1,key3",
-                StringUtils.removeFromCommaSplittableTextIfExists("key", "key1,key,key3"));
-
-        assertEquals("in 3 elements at position 1,2,3", "",
-                StringUtils.removeFromCommaSplittableTextIfExists("key", "key,key,key"));
-        assertEquals("in 5 elements at position 2,4", "key1,key3,key5",
-                StringUtils.removeFromCommaSplittableTextIfExists(
-                        "key", "key1,key,key3,key,key5"));
-    }
-
-
-    public void testCapitalizeFirstCodePoint() {
-        assertEquals("SSaa",
-                StringUtils.capitalizeFirstCodePoint("ßaa", Locale.GERMAN));
-        assertEquals("Aßa",
-                StringUtils.capitalizeFirstCodePoint("aßa", Locale.GERMAN));
-        assertEquals("Iab",
-                StringUtils.capitalizeFirstCodePoint("iab", Locale.ENGLISH));
-        assertEquals("CAmElCaSe",
-                StringUtils.capitalizeFirstCodePoint("cAmElCaSe", Locale.ENGLISH));
-        assertEquals("İab",
-                StringUtils.capitalizeFirstCodePoint("iab", new Locale("tr")));
-        assertEquals("AİB",
-                StringUtils.capitalizeFirstCodePoint("AİB", new Locale("tr")));
-        assertEquals("A",
-                StringUtils.capitalizeFirstCodePoint("a", Locale.ENGLISH));
-        assertEquals("A",
-                StringUtils.capitalizeFirstCodePoint("A", Locale.ENGLISH));
-    }
-
-    public void testCapitalizeFirstAndDowncaseRest() {
-        assertEquals("SSaa",
-                StringUtils.capitalizeFirstAndDowncaseRest("ßaa", Locale.GERMAN));
-        assertEquals("Aßa",
-                StringUtils.capitalizeFirstAndDowncaseRest("aßa", Locale.GERMAN));
-        assertEquals("Iab",
-                StringUtils.capitalizeFirstAndDowncaseRest("iab", Locale.ENGLISH));
-        assertEquals("Camelcase",
-                StringUtils.capitalizeFirstAndDowncaseRest("cAmElCaSe", Locale.ENGLISH));
-        assertEquals("İab",
-                StringUtils.capitalizeFirstAndDowncaseRest("iab", new Locale("tr")));
-        assertEquals("Aib",
-                StringUtils.capitalizeFirstAndDowncaseRest("AİB", new Locale("tr")));
-        assertEquals("A",
-                StringUtils.capitalizeFirstAndDowncaseRest("a", Locale.ENGLISH));
-        assertEquals("A",
-                StringUtils.capitalizeFirstAndDowncaseRest("A", Locale.ENGLISH));
-    }
-
-    public void testGetCapitalizationType() {
-        assertEquals(StringUtils.CAPITALIZE_NONE,
-                StringUtils.getCapitalizationType("capitalize"));
-        assertEquals(StringUtils.CAPITALIZE_NONE,
-                StringUtils.getCapitalizationType("cApITalize"));
-        assertEquals(StringUtils.CAPITALIZE_NONE,
-                StringUtils.getCapitalizationType("capitalizE"));
-        assertEquals(StringUtils.CAPITALIZE_NONE,
-                StringUtils.getCapitalizationType("__c a piu$@tali56ze"));
-        assertEquals(StringUtils.CAPITALIZE_FIRST,
-                StringUtils.getCapitalizationType("A__c a piu$@tali56ze"));
-        assertEquals(StringUtils.CAPITALIZE_FIRST,
-                StringUtils.getCapitalizationType("Capitalize"));
-        assertEquals(StringUtils.CAPITALIZE_FIRST,
-                StringUtils.getCapitalizationType("     Capitalize"));
-        assertEquals(StringUtils.CAPITALIZE_ALL,
-                StringUtils.getCapitalizationType("CAPITALIZE"));
-        assertEquals(StringUtils.CAPITALIZE_ALL,
-                StringUtils.getCapitalizationType("  PI26LIE"));
-        assertEquals(StringUtils.CAPITALIZE_NONE,
-                StringUtils.getCapitalizationType(""));
-    }
-
-    public void testIsIdenticalAfterUpcaseIsIdenticalAfterDowncase() {
-        assertFalse(StringUtils.isIdenticalAfterUpcase("capitalize"));
-        assertTrue(StringUtils.isIdenticalAfterDowncase("capitalize"));
-        assertFalse(StringUtils.isIdenticalAfterUpcase("cApITalize"));
-        assertFalse(StringUtils.isIdenticalAfterDowncase("cApITalize"));
-        assertFalse(StringUtils.isIdenticalAfterUpcase("capitalizE"));
-        assertFalse(StringUtils.isIdenticalAfterDowncase("capitalizE"));
-        assertFalse(StringUtils.isIdenticalAfterUpcase("__c a piu$@tali56ze"));
-        assertTrue(StringUtils.isIdenticalAfterDowncase("__c a piu$@tali56ze"));
-        assertFalse(StringUtils.isIdenticalAfterUpcase("A__c a piu$@tali56ze"));
-        assertFalse(StringUtils.isIdenticalAfterDowncase("A__c a piu$@tali56ze"));
-        assertFalse(StringUtils.isIdenticalAfterUpcase("Capitalize"));
-        assertFalse(StringUtils.isIdenticalAfterDowncase("Capitalize"));
-        assertFalse(StringUtils.isIdenticalAfterUpcase("     Capitalize"));
-        assertFalse(StringUtils.isIdenticalAfterDowncase("     Capitalize"));
-        assertTrue(StringUtils.isIdenticalAfterUpcase("CAPITALIZE"));
-        assertFalse(StringUtils.isIdenticalAfterDowncase("CAPITALIZE"));
-        assertTrue(StringUtils.isIdenticalAfterUpcase("  PI26LIE"));
-        assertFalse(StringUtils.isIdenticalAfterDowncase("  PI26LIE"));
-        assertTrue(StringUtils.isIdenticalAfterUpcase(""));
-        assertTrue(StringUtils.isIdenticalAfterDowncase(""));
-    }
-
-    private static void checkCapitalize(final String src, final String dst,
-            final int[] sortedSeparators, final Locale locale) {
-        assertEquals(dst, StringUtils.capitalizeEachWord(src, sortedSeparators, locale));
-        assert(src.equals(dst)
-                == StringUtils.isIdenticalAfterCapitalizeEachWord(src, sortedSeparators));
-    }
-
-    private static final int[] SPACE = { Constants.CODE_SPACE };
-    private static final int[] SPACE_PERIOD = StringUtils.toSortedCodePointArray(" .");
-    private static final int[] SENTENCE_SEPARATORS =
-            StringUtils.toSortedCodePointArray(" \n.!?*()&");
-    private static final int[] WORD_SEPARATORS = StringUtils.toSortedCodePointArray(" \n.!?*,();&");
-
-    public void testCapitalizeEachWord() {
-        checkCapitalize("", "", SPACE, Locale.ENGLISH);
-        checkCapitalize("test", "Test", SPACE, Locale.ENGLISH);
-        checkCapitalize("    test", "    Test", SPACE, Locale.ENGLISH);
-        checkCapitalize("Test", "Test", SPACE, Locale.ENGLISH);
-        checkCapitalize("    Test", "    Test", SPACE, Locale.ENGLISH);
-        checkCapitalize(".Test", ".test", SPACE, Locale.ENGLISH);
-        checkCapitalize(".Test", ".Test", SPACE_PERIOD, Locale.ENGLISH);
-        checkCapitalize("test and retest", "Test And Retest", SPACE_PERIOD, Locale.ENGLISH);
-        checkCapitalize("Test and retest", "Test And Retest", SPACE_PERIOD, Locale.ENGLISH);
-        checkCapitalize("Test And Retest", "Test And Retest", SPACE_PERIOD, Locale.ENGLISH);
-        checkCapitalize("Test And.Retest  ", "Test And.Retest  ", SPACE_PERIOD, Locale.ENGLISH);
-        checkCapitalize("Test And.retest  ", "Test And.Retest  ", SPACE_PERIOD, Locale.ENGLISH);
-        checkCapitalize("Test And.retest  ", "Test And.retest  ", SPACE, Locale.ENGLISH);
-        checkCapitalize("Test And.Retest  ", "Test And.retest  ", SPACE, Locale.ENGLISH);
-        checkCapitalize("test and ietest", "Test And İetest", SPACE_PERIOD, new Locale("tr"));
-        checkCapitalize("test and ietest", "Test And Ietest", SPACE_PERIOD, Locale.ENGLISH);
-        checkCapitalize("Test&Retest", "Test&Retest", SENTENCE_SEPARATORS, Locale.ENGLISH);
-        checkCapitalize("Test&retest", "Test&Retest", SENTENCE_SEPARATORS, Locale.ENGLISH);
-        checkCapitalize("test&Retest", "Test&Retest", SENTENCE_SEPARATORS, Locale.ENGLISH);
-        checkCapitalize("rest\nrecreation! And in the end...",
-                "Rest\nRecreation! And In The End...", WORD_SEPARATORS, Locale.ENGLISH);
-        checkCapitalize("lorem ipsum dolor sit amet", "Lorem Ipsum Dolor Sit Amet",
-                WORD_SEPARATORS, Locale.ENGLISH);
-        checkCapitalize("Lorem!Ipsum (Dolor) Sit * Amet", "Lorem!Ipsum (Dolor) Sit * Amet",
-                WORD_SEPARATORS, Locale.ENGLISH);
-        checkCapitalize("Lorem!Ipsum (dolor) Sit * Amet", "Lorem!Ipsum (Dolor) Sit * Amet",
-                WORD_SEPARATORS, Locale.ENGLISH);
-    }
-
-    public void testLooksLikeURL() {
-        assertTrue(StringUtils.lastPartLooksLikeURL("http://www.google."));
-        assertFalse(StringUtils.lastPartLooksLikeURL("word wo"));
-        assertTrue(StringUtils.lastPartLooksLikeURL("/etc/foo"));
-        assertFalse(StringUtils.lastPartLooksLikeURL("left/right"));
-        assertTrue(StringUtils.lastPartLooksLikeURL("www.goo"));
-        assertTrue(StringUtils.lastPartLooksLikeURL("www."));
-        assertFalse(StringUtils.lastPartLooksLikeURL("U.S.A"));
-        assertFalse(StringUtils.lastPartLooksLikeURL("U.S.A."));
-        assertTrue(StringUtils.lastPartLooksLikeURL("rtsp://foo."));
-        assertTrue(StringUtils.lastPartLooksLikeURL("://"));
-        assertFalse(StringUtils.lastPartLooksLikeURL("abc/"));
-        assertTrue(StringUtils.lastPartLooksLikeURL("abc.def/ghi"));
-        assertFalse(StringUtils.lastPartLooksLikeURL("abc.def"));
-        // TODO: ideally this would not look like a URL, but to keep down the complexity of the
-        // code for now True is acceptable.
-        assertTrue(StringUtils.lastPartLooksLikeURL("abc./def"));
-        // TODO: ideally this would not look like a URL, but to keep down the complexity of the
-        // code for now True is acceptable.
-        assertTrue(StringUtils.lastPartLooksLikeURL(".abc/def"));
-    }
-
-    public void testHexStringUtils() {
-        final byte[] bytes = new byte[] { (byte)0x01, (byte)0x11, (byte)0x22, (byte)0x33,
-                (byte)0x55, (byte)0x88, (byte)0xEE };
-        final String bytesStr = StringUtils.byteArrayToHexString(bytes);
-        final byte[] bytes2 = StringUtils.hexStringToByteArray(bytesStr);
-        for (int i = 0; i < bytes.length; ++i) {
-            assertTrue(bytes[i] == bytes2[i]);
-        }
-        final String bytesStr2 = StringUtils.byteArrayToHexString(bytes2);
-        assertTrue(bytesStr.equals(bytesStr2));
-    }
-
-    public void testJsonUtils() {
-        final Object[] objs = new Object[] { 1, "aaa", "bbb", 3 };
-        final List<Object> objArray = Arrays.asList(objs);
-        final String str = JsonUtils.listToJsonStr(objArray);
-        final List<Object> newObjArray = JsonUtils.jsonStrToList(str);
-        for (int i = 0; i < objs.length; ++i) {
-            assertEquals(objs[i], newObjArray.get(i));
-        }
-    }
-
-    public void testToCodePointArray() {
-        final String STR_WITH_SUPPLEMENTARY_CHAR = "abcde\uD861\uDED7fgh\u0000\u2002\u2003\u3000xx";
-        final int[] EXPECTED_RESULT = new int[] { 'a', 'b', 'c', 'd', 'e', 0x286D7, 'f', 'g', 'h',
-                0, 0x2002, 0x2003, 0x3000, 'x', 'x'};
-        final int[] codePointArray = StringUtils.toCodePointArray(STR_WITH_SUPPLEMENTARY_CHAR, 0,
-                STR_WITH_SUPPLEMENTARY_CHAR.length());
-        assertEquals("toCodePointArray, size matches", codePointArray.length,
-                EXPECTED_RESULT.length);
-        for (int i = 0; i < EXPECTED_RESULT.length; ++i) {
-            assertEquals("toCodePointArray position " + i, codePointArray[i], EXPECTED_RESULT[i]);
-        }
-    }
-
-    public void testCopyCodePointsAndReturnCodePointCount() {
-        final String STR_WITH_SUPPLEMENTARY_CHAR = "AbcDE\uD861\uDED7fGh\u0000\u2002\u3000あx";
-        final int[] EXPECTED_RESULT = new int[] { 'A', 'b', 'c', 'D', 'E', 0x286D7,
-                'f', 'G', 'h', 0, 0x2002, 0x3000, 'あ', 'x'};
-        final int[] EXPECTED_RESULT_DOWNCASE = new int[] { 'a', 'b', 'c', 'd', 'e', 0x286D7,
-                'f', 'g', 'h', 0, 0x2002, 0x3000, 'あ', 'x'};
-
-        int[] codePointArray = new int[50];
-        int codePointCount = StringUtils.copyCodePointsAndReturnCodePointCount(codePointArray,
-                STR_WITH_SUPPLEMENTARY_CHAR, 0,
-                STR_WITH_SUPPLEMENTARY_CHAR.length(), false /* downCase */);
-        assertEquals("copyCodePointsAndReturnCodePointCount, size matches", codePointCount,
-                EXPECTED_RESULT.length);
-        for (int i = 0; i < codePointCount; ++i) {
-            assertEquals("copyCodePointsAndReturnCodePointCount position " + i, codePointArray[i],
-                    EXPECTED_RESULT[i]);
-        }
-
-        codePointCount = StringUtils.copyCodePointsAndReturnCodePointCount(codePointArray,
-                STR_WITH_SUPPLEMENTARY_CHAR, 0,
-                STR_WITH_SUPPLEMENTARY_CHAR.length(), true /* downCase */);
-        assertEquals("copyCodePointsAndReturnCodePointCount downcase, size matches", codePointCount,
-                EXPECTED_RESULT_DOWNCASE.length);
-        for (int i = 0; i < codePointCount; ++i) {
-            assertEquals("copyCodePointsAndReturnCodePointCount position " + i, codePointArray[i],
-                    EXPECTED_RESULT_DOWNCASE[i]);
-        }
-
-        final int JAVA_CHAR_COUNT = 8;
-        final int CODEPOINT_COUNT = 7;
-        codePointCount = StringUtils.copyCodePointsAndReturnCodePointCount(codePointArray,
-                STR_WITH_SUPPLEMENTARY_CHAR, 0, JAVA_CHAR_COUNT, false /* downCase */);
-        assertEquals("copyCodePointsAndReturnCodePointCount, size matches", codePointCount,
-                CODEPOINT_COUNT);
-        for (int i = 0; i < codePointCount; ++i) {
-            assertEquals("copyCodePointsAndReturnCodePointCount position " + i, codePointArray[i],
-                    EXPECTED_RESULT[i]);
-        }
-
-        boolean exceptionHappened = false;
-        codePointArray = new int[5];
-        try {
-            codePointCount = StringUtils.copyCodePointsAndReturnCodePointCount(codePointArray,
-                    STR_WITH_SUPPLEMENTARY_CHAR, 0, JAVA_CHAR_COUNT, false /* downCase */);
-        } catch (ArrayIndexOutOfBoundsException e) {
-            exceptionHappened = true;
-        }
-        assertTrue("copyCodePointsAndReturnCodePointCount throws when array is too small",
-                exceptionHappened);
-    }
-
-    public void testGetTrailingSingleQuotesCount() {
-        assertEquals(0, StringUtils.getTrailingSingleQuotesCount(""));
-        assertEquals(1, StringUtils.getTrailingSingleQuotesCount("'"));
-        assertEquals(5, StringUtils.getTrailingSingleQuotesCount("'''''"));
-        assertEquals(0, StringUtils.getTrailingSingleQuotesCount("a"));
-        assertEquals(0, StringUtils.getTrailingSingleQuotesCount("'this"));
-        assertEquals(1, StringUtils.getTrailingSingleQuotesCount("'word'"));
-        assertEquals(0, StringUtils.getTrailingSingleQuotesCount("I'm"));
-    }
-
-    private static void assertSpanCount(final int expectedCount, final CharSequence cs) {
-        final int actualCount;
-        if (cs instanceof Spanned) {
-            final Spanned spanned = (Spanned) cs;
-            actualCount = spanned.getSpans(0, spanned.length(), Object.class).length;
-        } else {
-            actualCount = 0;
-        }
-        assertEquals(expectedCount, actualCount);
-    }
-
-    private static void assertSpan(final CharSequence cs, final Object expectedSpan,
-            final int expectedStart, final int expectedEnd, final int expectedFlags) {
-        assertTrue(cs instanceof Spanned);
-        final Spanned spanned = (Spanned) cs;
-        final Object[] actualSpans = spanned.getSpans(0, spanned.length(), Object.class);
-        for (Object actualSpan : actualSpans) {
-            if (actualSpan == expectedSpan) {
-                final int actualStart = spanned.getSpanStart(actualSpan);
-                final int actualEnd = spanned.getSpanEnd(actualSpan);
-                final int actualFlags = spanned.getSpanFlags(actualSpan);
-                assertEquals(expectedStart, actualStart);
-                assertEquals(expectedEnd, actualEnd);
-                assertEquals(expectedFlags, actualFlags);
-                return;
-            }
-        }
-        assertTrue(false);
-    }
-
-    public void testSplitCharSequenceWithSpan() {
-        // text:  " a bcd efg hij  "
-        // span1:  ^^^^^^^
-        // span2:  ^^^^^
-        // span3:              ^
-        final SpannableString spannableString = new SpannableString(" a bcd efg hij  ");
-        final Object span1 = new Object();
-        final Object span2 = new Object();
-        final Object span3 = new Object();
-        final int SPAN1_FLAGS = Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
-        final int SPAN2_FLAGS = Spanned.SPAN_EXCLUSIVE_INCLUSIVE;
-        final int SPAN3_FLAGS = Spanned.SPAN_INCLUSIVE_INCLUSIVE;
-        spannableString.setSpan(span1, 0, 7, SPAN1_FLAGS);
-        spannableString.setSpan(span2, 0, 5, SPAN2_FLAGS);
-        spannableString.setSpan(span3, 12, 13, SPAN3_FLAGS);
-        final CharSequence[] charSequencesFromSpanned = StringUtils.split(
-                spannableString, " ", true /* preserveTrailingEmptySegmengs */);
-        final CharSequence[] charSequencesFromString = StringUtils.split(
-                spannableString.toString(), " ", true /* preserveTrailingEmptySegmengs */);
-
-
-        assertEquals(7, charSequencesFromString.length);
-        assertEquals(7, charSequencesFromSpanned.length);
-
-        // text:  ""
-        // span1: ^
-        // span2: ^
-        // span3:
-        assertEquals("", charSequencesFromString[0].toString());
-        assertSpanCount(0, charSequencesFromString[0]);
-        assertEquals("", charSequencesFromSpanned[0].toString());
-        assertSpanCount(2, charSequencesFromSpanned[0]);
-        assertSpan(charSequencesFromSpanned[0], span1, 0, 0, SPAN1_FLAGS);
-        assertSpan(charSequencesFromSpanned[0], span2, 0, 0, SPAN2_FLAGS);
-
-        // text:  "a"
-        // span1:  ^
-        // span2:  ^
-        // span3:
-        assertEquals("a", charSequencesFromString[1].toString());
-        assertSpanCount(0, charSequencesFromString[1]);
-        assertEquals("a", charSequencesFromSpanned[1].toString());
-        assertSpanCount(2, charSequencesFromSpanned[1]);
-        assertSpan(charSequencesFromSpanned[1], span1, 0, 1, SPAN1_FLAGS);
-        assertSpan(charSequencesFromSpanned[1], span2, 0, 1, SPAN2_FLAGS);
-
-        // text:  "bcd"
-        // span1:  ^^^
-        // span2:  ^^
-        // span3:
-        assertEquals("bcd", charSequencesFromString[2].toString());
-        assertSpanCount(0, charSequencesFromString[2]);
-        assertEquals("bcd", charSequencesFromSpanned[2].toString());
-        assertSpanCount(2, charSequencesFromSpanned[2]);
-        assertSpan(charSequencesFromSpanned[2], span1, 0, 3, SPAN1_FLAGS);
-        assertSpan(charSequencesFromSpanned[2], span2, 0, 2, SPAN2_FLAGS);
-
-        // text:  "efg"
-        // span1:
-        // span2:
-        // span3:
-        assertEquals("efg", charSequencesFromString[3].toString());
-        assertSpanCount(0, charSequencesFromString[3]);
-        assertEquals("efg", charSequencesFromSpanned[3].toString());
-        assertSpanCount(0, charSequencesFromSpanned[3]);
-
-        // text:  "hij"
-        // span1:
-        // span2:
-        // span3:   ^
-        assertEquals("hij", charSequencesFromString[4].toString());
-        assertSpanCount(0, charSequencesFromString[4]);
-        assertEquals("hij", charSequencesFromSpanned[4].toString());
-        assertSpanCount(1, charSequencesFromSpanned[4]);
-        assertSpan(charSequencesFromSpanned[4], span3, 1, 2, SPAN3_FLAGS);
-
-        // text:  ""
-        // span1:
-        // span2:
-        // span3:
-        assertEquals("", charSequencesFromString[5].toString());
-        assertSpanCount(0, charSequencesFromString[5]);
-        assertEquals("", charSequencesFromSpanned[5].toString());
-        assertSpanCount(0, charSequencesFromSpanned[5]);
-
-        // text:  ""
-        // span1:
-        // span2:
-        // span3:
-        assertEquals("", charSequencesFromString[6].toString());
-        assertSpanCount(0, charSequencesFromString[6]);
-        assertEquals("", charSequencesFromSpanned[6].toString());
-        assertSpanCount(0, charSequencesFromSpanned[6]);
-    }
-
-    public void testSplitCharSequencePreserveTrailingEmptySegmengs() {
-        assertEquals(1, StringUtils.split("", " ",
-                false /* preserveTrailingEmptySegmengs */).length);
-        assertEquals(1, StringUtils.split(new SpannedString(""), " ",
-                false /* preserveTrailingEmptySegmengs */).length);
-
-        assertEquals(1, StringUtils.split("", " ",
-                true /* preserveTrailingEmptySegmengs */).length);
-        assertEquals(1, StringUtils.split(new SpannedString(""), " ",
-                true /* preserveTrailingEmptySegmengs */).length);
-
-        assertEquals(0, StringUtils.split(" ", " ",
-                false /* preserveTrailingEmptySegmengs */).length);
-        assertEquals(0, StringUtils.split(new SpannedString(" "), " ",
-                false /* preserveTrailingEmptySegmengs */).length);
-
-        assertEquals(2, StringUtils.split(" ", " ",
-                true /* preserveTrailingEmptySegmengs */).length);
-        assertEquals(2, StringUtils.split(new SpannedString(" "), " ",
-                true /* preserveTrailingEmptySegmengs */).length);
-
-        assertEquals(3, StringUtils.split("a b c  ", " ",
-                false /* preserveTrailingEmptySegmengs */).length);
-        assertEquals(3, StringUtils.split(new SpannedString("a b c  "), " ",
-                false /* preserveTrailingEmptySegmengs */).length);
-
-        assertEquals(5, StringUtils.split("a b c  ", " ",
-                true /* preserveTrailingEmptySegmengs */).length);
-        assertEquals(5, StringUtils.split(new SpannedString("a b c  "), " ",
-                true /* preserveTrailingEmptySegmengs */).length);
-
-        assertEquals(6, StringUtils.split("a     b ", " ",
-                false /* preserveTrailingEmptySegmengs */).length);
-        assertEquals(6, StringUtils.split(new SpannedString("a     b "), " ",
-                false /* preserveTrailingEmptySegmengs */).length);
-
-        assertEquals(7, StringUtils.split("a     b ", " ",
-                true /* preserveTrailingEmptySegmengs */).length);
-        assertEquals(7, StringUtils.split(new SpannedString("a     b "), " ",
-                true /* preserveTrailingEmptySegmengs */).length);
-    }
-}
diff --git a/tests/src/com/android/inputmethod/latin/utils/StringUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/StringUtilsTests.java
deleted file mode 100644
index ba2e998..0000000
--- a/tests/src/com/android/inputmethod/latin/utils/StringUtilsTests.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.utils;
-
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-import com.android.inputmethod.latin.Constants;
-import com.android.inputmethod.latin.utils.StringUtils;
-
-import java.util.Locale;
-
-@SmallTest
-public class StringUtilsTests extends AndroidTestCase {
-    private static final Locale US = Locale.US;
-    private static final Locale GERMAN = Locale.GERMAN;
-    private static final Locale TURKEY = new Locale("tr", "TR");
-    private static final Locale GREECE = new Locale("el", "GR");
-
-    private static void assert_toUpperCaseOfStringForLocale(final Locale locale,
-            final String lowerCase, final String expected) {
-        assertEquals(lowerCase + " in " + locale, expected,
-                StringUtils.toUpperCaseOfStringForLocale(
-                        lowerCase, true /* needsToUpperCase */, locale));
-    }
-
-    public void test_toUpperCaseOfStringForLocale() {
-        assert_toUpperCaseOfStringForLocale(US, null, null);
-        assert_toUpperCaseOfStringForLocale(US, "", "");
-        assert_toUpperCaseOfStringForLocale(US, "aeiou", "AEIOU");
-        // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
-        // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
-        // U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
-        // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
-        // U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
-        // U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
-        // U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
-        // U+00C0: "À" LATIN CAPITAL LETTER A WITH GRAVE
-        // U+00C8: "È" LATIN CAPITAL LETTER E WITH GRAVE
-        // U+00CE: "Î" LATIN CAPITAL LETTER I WITH CIRCUMFLEX
-        // U+00D6: "Ö" LATIN CAPITAL LETTER O WITH DIAERESIS
-        // U+016A: "Ū" LATIN CAPITAL LETTER U WITH MACRON
-        // U+00D1: "Ñ" LATIN CAPITAL LETTER N WITH TILDE
-        // U+00C7: "Ç" LATIN CAPITAL LETTER C WITH CEDILLA
-        assert_toUpperCaseOfStringForLocale(US,
-                "\u00E0\u00E8\u00EE\u00F6\u016B\u00F1\u00E7",
-                "\u00C0\u00C8\u00CE\u00D6\u016A\u00D1\u00C7");
-        // U+00DF: "ß" LATIN SMALL LETTER SHARP S
-        // U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
-        // U+0161: "š" LATIN SMALL LETTER S WITH CARON
-        // U+015A: "Ś" LATIN CAPITAL LETTER S WITH ACUTE
-        // U+0160: "Š" LATIN CAPITAL LETTER S WITH CARONZ
-        assert_toUpperCaseOfStringForLocale(GERMAN,
-                "\u00DF\u015B\u0161",
-                "SS\u015A\u0160");
-        // U+0259: "ə" LATIN SMALL LETTER SCHWA
-        // U+0069: "i" LATIN SMALL LETTER I
-        // U+0131: "ı" LATIN SMALL LETTER DOTLESS I
-        // U+018F: "Ə" LATIN SMALL LETTER SCHWA
-        // U+0130: "İ" LATIN SMALL LETTER I WITH DOT ABOVE
-        // U+0049: "I" LATIN SMALL LETTER I
-        assert_toUpperCaseOfStringForLocale(TURKEY,
-                "\u0259\u0069\u0131",
-                "\u018F\u0130\u0049");
-        // U+03C3: "σ" GREEK SMALL LETTER SIGMA
-        // U+03C2: "ς" GREEK SMALL LETTER FINAL SIGMA
-        // U+03A3: "Σ" GREEK CAPITAL LETTER SIGMA
-        assert_toUpperCaseOfStringForLocale(GREECE,
-                "\u03C3\u03C2",
-                "\u03A3\u03A3");
-        // U+03AC: "ά" GREEK SMALL LETTER ALPHA WITH TONOS
-        // U+03AD: "έ" GREEK SMALL LETTER EPSILON WITH TONOS
-        // U+03AE: "ή" GREEK SMALL LETTER ETA WITH TONOS
-        // U+03AF: "ί" GREEK SMALL LETTER IOTA WITH TONOS
-        // U+03CC: "ό" GREEK SMALL LETTER OMICRON WITH TONOS
-        // U+03CD: "ύ" GREEK SMALL LETTER UPSILON WITH TONOS
-        // U+03CE: "ώ" GREEK SMALL LETTER OMEGA WITH TONOS
-        // U+0386: "Ά" GREEK CAPITAL LETTER ALPHA WITH TONOS
-        // U+0388: "Έ" GREEK CAPITAL LETTER EPSILON WITH TONOS
-        // U+0389: "Ή" GREEK CAPITAL LETTER ETA WITH TONOS
-        // U+038A: "Ί" GREEK CAPITAL LETTER IOTA WITH TONOS
-        // U+038C: "Ό" GREEK CAPITAL LETTER OMICRON WITH TONOS
-        // U+038E: "Ύ" GREEK CAPITAL LETTER UPSILON WITH TONOS
-        // U+038F: "Ώ" GREEK CAPITAL LETTER OMEGA WITH TONOS
-        assert_toUpperCaseOfStringForLocale(GREECE,
-                "\u03AC\u03AD\u03AE\u03AF\u03CC\u03CD\u03CE",
-                "\u0386\u0388\u0389\u038A\u038C\u038E\u038F");
-        // U+03CA: "ϊ" GREEK SMALL LETTER IOTA WITH DIALYTIKA
-        // U+03CB: "ϋ" GREEK SMALL LETTER UPSILON WITH DIALYTIKA
-        // U+0390: "ΐ" GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
-        // U+03B0: "ΰ" GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
-        // U+03AA: "Ϊ" GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
-        // U+03AB: "Ϋ" GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
-        // U+0399: "Ι" GREEK CAPITAL LETTER IOTA
-        // U+03A5: "Υ" GREEK CAPITAL LETTER UPSILON
-        // U+0308: COMBINING DIAERESIS
-        // U+0301: COMBINING GRAVE ACCENT
-        assert_toUpperCaseOfStringForLocale(GREECE,
-                "\u03CA\u03CB\u0390\u03B0",
-                "\u03AA\u03AB\u0399\u0308\u0301\u03A5\u0308\u0301");
-    }
-
-    private static void assert_toUpperCaseOfCodeForLocale(final Locale locale, final int lowerCase,
-            final int expected) {
-        assertEquals(lowerCase + " in " + locale, expected,
-                StringUtils.toUpperCaseOfCodeForLocale(
-                        lowerCase, true /* needsToUpperCase */, locale));
-    }
-
-    public void test_toUpperCaseOfCodeForLocale() {
-        assert_toUpperCaseOfCodeForLocale(US, Constants.CODE_ENTER, Constants.CODE_ENTER);
-        assert_toUpperCaseOfCodeForLocale(US, Constants.CODE_SPACE, Constants.CODE_SPACE);
-        assert_toUpperCaseOfCodeForLocale(US, Constants.CODE_COMMA, Constants.CODE_COMMA);
-        // U+0069: "i" LATIN SMALL LETTER I
-        // U+0131: "ı" LATIN SMALL LETTER DOTLESS I
-        // U+0130: "İ" LATIN SMALL LETTER I WITH DOT ABOVE
-        // U+0049: "I" LATIN SMALL LETTER I
-        assert_toUpperCaseOfCodeForLocale(US, 0x0069, 0x0049); // i -> I
-        assert_toUpperCaseOfCodeForLocale(US, 0x0131, 0x0049); // ı -> I
-        assert_toUpperCaseOfCodeForLocale(TURKEY, 0x0069, 0x0130); // i -> İ
-        assert_toUpperCaseOfCodeForLocale(TURKEY, 0x0131, 0x0049); // ı -> I
-        // U+00DF: "ß" LATIN SMALL LETTER SHARP S
-        // The title case of "ß" is "SS".
-        assert_toUpperCaseOfCodeForLocale(US, 0x00DF, Constants.CODE_UNSPECIFIED);
-        // U+03AC: "ά" GREEK SMALL LETTER ALPHA WITH TONOS
-        // U+0386: "Ά" GREEK CAPITAL LETTER ALPHA WITH TONOS
-        assert_toUpperCaseOfCodeForLocale(GREECE, 0x03AC, 0x0386);
-        // U+03CA: "ϊ" GREEK SMALL LETTER IOTA WITH DIALYTIKA
-        // U+03AA: "Ϊ" GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
-        assert_toUpperCaseOfCodeForLocale(GREECE, 0x03CA, 0x03AA);
-        // U+03B0: "ΰ" GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
-        // The title case of "ΰ" is "\u03A5\u0308\u0301".
-        assert_toUpperCaseOfCodeForLocale(GREECE, 0x03B0, Constants.CODE_UNSPECIFIED);
-    }
-
-    private static void assert_capitalizeFirstCodePoint(final Locale locale, final String text,
-            final String expected) {
-        assertEquals(text + " in " + locale, expected,
-                StringUtils.capitalizeFirstCodePoint(text, locale));
-    }
-
-    public void test_capitalizeFirstCodePoint() {
-        assert_capitalizeFirstCodePoint(US, "", "");
-        assert_capitalizeFirstCodePoint(US, "a", "A");
-        assert_capitalizeFirstCodePoint(US, "à", "À");
-        assert_capitalizeFirstCodePoint(US, "ß", "SS");
-        assert_capitalizeFirstCodePoint(US, "text", "Text");
-        assert_capitalizeFirstCodePoint(US, "iGoogle", "IGoogle");
-        assert_capitalizeFirstCodePoint(TURKEY, "iyi", "İyi");
-        assert_capitalizeFirstCodePoint(TURKEY, "ısırdı", "Isırdı");
-        assert_capitalizeFirstCodePoint(GREECE, "ά", "Ά");
-        assert_capitalizeFirstCodePoint(GREECE, "άνεση", "Άνεση");
-    }
-
-    private static void assert_capitalizeFirstAndDowncaseRest(final Locale locale,
-            final String text, final String expected) {
-        assertEquals(text + " in " + locale, expected,
-                StringUtils.capitalizeFirstAndDowncaseRest(text, locale));
-    }
-
-    public void test_capitalizeFirstAndDowncaseRest() {
-        assert_capitalizeFirstAndDowncaseRest(US, "", "");
-        assert_capitalizeFirstAndDowncaseRest(US, "a", "A");
-        assert_capitalizeFirstAndDowncaseRest(US, "à", "À");
-        assert_capitalizeFirstAndDowncaseRest(US, "ß", "SS");
-        assert_capitalizeFirstAndDowncaseRest(US, "text", "Text");
-        assert_capitalizeFirstAndDowncaseRest(US, "iGoogle", "Igoogle");
-        assert_capitalizeFirstAndDowncaseRest(US, "invite", "Invite");
-        assert_capitalizeFirstAndDowncaseRest(US, "INVITE", "Invite");
-        assert_capitalizeFirstAndDowncaseRest(TURKEY, "iyi", "İyi");
-        assert_capitalizeFirstAndDowncaseRest(TURKEY, "İYİ", "İyi");
-        assert_capitalizeFirstAndDowncaseRest(TURKEY, "ısırdı", "Isırdı");
-        assert_capitalizeFirstAndDowncaseRest(TURKEY, "ISIRDI", "Isırdı");
-        assert_capitalizeFirstAndDowncaseRest(GREECE, "ά", "Ά");
-        assert_capitalizeFirstAndDowncaseRest(GREECE, "άνεση", "Άνεση");
-        assert_capitalizeFirstAndDowncaseRest(GREECE, "ΆΝΕΣΗ", "Άνεση");
-    }
-}
diff --git a/tests/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtilsTests.java
index ce3df7d..2297cac 100644
--- a/tests/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtilsTests.java
+++ b/tests/src/com/android/inputmethod/latin/utils/SubtypeLocaleUtilsTests.java
@@ -23,7 +23,9 @@
 import android.view.inputmethod.InputMethodInfo;
 import android.view.inputmethod.InputMethodSubtype;
 
+import com.android.inputmethod.latin.R;
 import com.android.inputmethod.latin.RichInputMethodManager;
+import com.android.inputmethod.latin.RichInputMethodSubtype;
 
 import java.util.ArrayList;
 import java.util.Locale;
@@ -31,10 +33,11 @@
 @SmallTest
 public class SubtypeLocaleUtilsTests extends AndroidTestCase {
     // All input method subtypes of LatinIME.
-    private final ArrayList<InputMethodSubtype> mSubtypesList = new ArrayList<>();
+    private final ArrayList<RichInputMethodSubtype> mSubtypesList = new ArrayList<>();
 
     private RichInputMethodManager mRichImm;
     private Resources mRes;
+    private InputMethodSubtype mSavedAddtionalSubtypes[];
 
     InputMethodSubtype EN_US;
     InputMethodSubtype EN_GB;
@@ -44,6 +47,8 @@
     InputMethodSubtype FR_CH;
     InputMethodSubtype DE;
     InputMethodSubtype DE_CH;
+    InputMethodSubtype HI;
+    InputMethodSubtype SR;
     InputMethodSubtype ZZ;
     InputMethodSubtype DE_QWERTY;
     InputMethodSubtype FR_QWERTZ;
@@ -53,20 +58,33 @@
     InputMethodSubtype ZZ_AZERTY;
     InputMethodSubtype ZZ_PC;
 
+    // These are preliminary subtypes and may not exist.
+    InputMethodSubtype HI_LATN; // Hinglish
+    InputMethodSubtype SR_LATN; // Serbian Latin
+    InputMethodSubtype HI_LATN_DVORAK; // Hinglis Dvorak
+    InputMethodSubtype SR_LATN_QWERTY; // Serbian Latin Qwerty
+
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         final Context context = getContext();
+        mRes = context.getResources();
         RichInputMethodManager.init(context);
         mRichImm = RichInputMethodManager.getInstance();
-        mRes = context.getResources();
-        SubtypeLocaleUtils.init(context);
+
+        // Save and reset additional subtypes
+        mSavedAddtionalSubtypes = mRichImm.getAdditionalSubtypes();
+        final InputMethodSubtype[] predefinedAddtionalSubtypes =
+                AdditionalSubtypeUtils.createAdditionalSubtypesArray(
+                        AdditionalSubtypeUtils.createPrefSubtypes(
+                                mRes.getStringArray(R.array.predefined_subtypes)));
+        mRichImm.setAdditionalInputMethodSubtypes(predefinedAddtionalSubtypes);
 
         final InputMethodInfo imi = mRichImm.getInputMethodInfoOfThisIme();
         final int subtypeCount = imi.getSubtypeCount();
         for (int index = 0; index < subtypeCount; index++) {
             final InputMethodSubtype subtype = imi.getSubtypeAt(index);
-            mSubtypesList.add(subtype);
+            mSubtypesList.add(new RichInputMethodSubtype(subtype));
         }
 
         EN_US = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
@@ -85,6 +103,10 @@
                 Locale.GERMAN.toString(), "qwertz");
         DE_CH = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
                 "de_CH", "swiss");
+        HI = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
+                "hi", "hindi");
+        SR = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
+                "sr", "south_slavic");
         ZZ = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet(
                 SubtypeLocaleUtils.NO_LANGUAGE, "qwerty");
         DE_QWERTY = AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
@@ -101,19 +123,37 @@
                 SubtypeLocaleUtils.NO_LANGUAGE, "azerty");
         ZZ_PC = AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
                 SubtypeLocaleUtils.NO_LANGUAGE, "pcqwerty");
+
+        HI_LATN = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet("hi_ZZ", "qwerty");
+        if (HI_LATN != null) {
+            HI_LATN_DVORAK = AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
+                    "hi_ZZ", "dvorak");
+        }
+        SR_LATN = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet("sr_ZZ", "serbian_qwertz");
+        if (SR_LATN != null) {
+            SR_LATN_QWERTY = AdditionalSubtypeUtils.createAsciiEmojiCapableAdditionalSubtype(
+                    "sr_ZZ", "qwerty");
+        }
+    }
+
+    @Override
+    protected void tearDown() throws Exception {
+        // Restore additional subtypes.
+        mRichImm.setAdditionalInputMethodSubtypes(mSavedAddtionalSubtypes);
+        super.tearDown();
     }
 
     public void testAllFullDisplayName() {
-        for (final InputMethodSubtype subtype : mSubtypesList) {
+        for (final RichInputMethodSubtype subtype : mSubtypesList) {
             final String subtypeName = SubtypeLocaleUtils
-                    .getSubtypeDisplayNameInSystemLocale(subtype);
-            if (SubtypeLocaleUtils.isNoLanguage(subtype)) {
+                    .getSubtypeDisplayNameInSystemLocale(subtype.getRawSubtype());
+            if (subtype.isNoLanguage()) {
                 final String layoutName = SubtypeLocaleUtils
-                        .getKeyboardLayoutSetDisplayName(subtype);
+                        .getKeyboardLayoutSetDisplayName(subtype.getRawSubtype());
                 assertTrue(subtypeName, subtypeName.contains(layoutName));
             } else {
                 final String languageName = SubtypeLocaleUtils
-                        .getSubtypeLocaleDisplayNameInSystemLocale(subtype.getLocale());
+                        .getSubtypeLocaleDisplayNameInSystemLocale(subtype.getLocale().toString());
                 assertTrue(subtypeName, subtypeName.contains(languageName));
             }
         }
@@ -128,6 +168,8 @@
         assertEquals("fr_CH", "swiss", SubtypeLocaleUtils.getKeyboardLayoutSetName(FR_CH));
         assertEquals("de", "qwertz", SubtypeLocaleUtils.getKeyboardLayoutSetName(DE));
         assertEquals("de_CH", "swiss", SubtypeLocaleUtils.getKeyboardLayoutSetName(DE_CH));
+        assertEquals("hi", "hindi", SubtypeLocaleUtils.getKeyboardLayoutSetName(HI));
+        assertEquals("sr", "south_slavic", SubtypeLocaleUtils.getKeyboardLayoutSetName(SR));
         assertEquals("zz", "qwerty", SubtypeLocaleUtils.getKeyboardLayoutSetName(ZZ));
 
         assertEquals("de qwerty", "qwerty", SubtypeLocaleUtils.getKeyboardLayoutSetName(DE_QWERTY));
@@ -140,27 +182,46 @@
                 SubtypeLocaleUtils.getKeyboardLayoutSetName(ES_US_COLEMAK));
         assertEquals("zz azerty", "azerty",
                 SubtypeLocaleUtils.getKeyboardLayoutSetName(ZZ_AZERTY));
+
+        // These are preliminary subtypes and may not exist.
+        if (HI_LATN != null) {
+            assertEquals("hi_ZZ", "qwerty", SubtypeLocaleUtils.getKeyboardLayoutSetName(HI_LATN));
+            assertEquals("hi_ZZ dvorak", "dvorak",
+                    SubtypeLocaleUtils.getKeyboardLayoutSetName(HI_LATN_DVORAK));
+        }
+        if (SR_LATN != null) {
+            assertEquals("sr_ZZ", "serbian_qwertz",
+                    SubtypeLocaleUtils.getKeyboardLayoutSetName(SR_LATN));
+            assertEquals("sr_ZZ qwerty", "qwerty",
+                    SubtypeLocaleUtils.getKeyboardLayoutSetName(SR_LATN_QWERTY));
+        }
     }
 
     // InputMethodSubtype's display name in system locale (en_US).
-    //        isAdditionalSubtype (T=true, F=false)
-    // locale layout  |  display name
-    // ------ ------- - ----------------------
-    //  en_US qwerty  F  English (US)            exception
-    //  en_GB qwerty  F  English (UK)            exception
-    //  es_US spanish F  Spanish (US)            exception
-    //  fr    azerty  F  French
-    //  fr_CA qwerty  F  French (Canada)
-    //  fr_CH swiss   F  French (Switzerland)
-    //  de    qwertz  F  German
-    //  de_CH swiss   F  German (Switzerland)
-    //  zz    qwerty  F  Alphabet (QWERTY)
-    //  fr    qwertz  T  French (QWERTZ)
-    //  de    qwerty  T  German (QWERTY)
-    //  en_US azerty  T  English (US) (AZERTY)   exception
-    //  en_UK dvorak  T  English (UK) (Dvorak)   exception
-    //  es_US colemak T  Spanish (US) (Colemak)  exception
-    //  zz    pc      T  Alphabet (PC)
+    //               isAdditionalSubtype (T=true, F=false)
+    // locale layout         |  display name
+    // ------ -------------- - ----------------------
+    //  en_US qwerty         F  English (US)            exception
+    //  en_GB qwerty         F  English (UK)            exception
+    //  es_US spanish        F  Spanish (US)            exception
+    //  fr    azerty         F  French
+    //  fr_CA qwerty         F  French (Canada)
+    //  fr_CH swiss          F  French (Switzerland)
+    //  de    qwertz         F  German
+    //  de_CH swiss          F  German (Switzerland)
+    //  hi    hindi          F  Hindi
+    //  hi_ZZ qwerty         F  Hinglish                exception
+    //  sr    south_slavic   F  Serbian
+    //  sr_ZZ serbian_qwertz F  Serbian (Latin)         exception
+    //  zz    qwerty         F  Alphabet (QWERTY)
+    //  fr    qwertz         T  French (QWERTZ)
+    //  de    qwerty         T  German (QWERTY)
+    //  en_US azerty         T  English (US) (AZERTY)   exception
+    //  en_UK dvorak         T  English (UK) (Dvorak)   exception
+    //  es_US colemak        T  Spanish (US) (Colemak)  exception
+    //  hi_ZZ dvorak         T  Hinglish (Dvorka)       exception
+    //  sr_ZZ qwerty         T  Serbian (QWERTY)        exception
+    //  zz    pc             T  Alphabet (PC)
 
     public void testPredefinedSubtypesInEnglishSystemLocale() {
         final RunInLocale<Void> tests = new RunInLocale<Void>() {
@@ -182,8 +243,21 @@
                         SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(DE));
                 assertEquals("de_CH", "German (Switzerland)",
                         SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(DE_CH));
+                assertEquals("hi", "Hindi",
+                        SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(HI));
+                assertEquals("sr", "Serbian",
+                        SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(SR));
                 assertEquals("zz", "Alphabet (QWERTY)",
                         SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(ZZ));
+                // These are preliminary subtypes and may not exist.
+                if (HI_LATN != null) {
+                    assertEquals("hi_ZZ", "Hinglish",
+                            SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(HI_LATN));
+                }
+                if (SR_LATN != null) {
+                    assertEquals("sr_ZZ", "Serbian (Latin)",
+                            SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(SR_LATN));
+                }
                 return null;
             }
         };
@@ -208,6 +282,15 @@
                         SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(ZZ_AZERTY));
                 assertEquals("zz pc", "Alphabet (PC)",
                         SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(ZZ_PC));
+                // These are preliminary subtypes and may not exist.
+                if (HI_LATN_DVORAK != null) {
+                    assertEquals("hi_ZZ", "Hinglish (Dvorak)",
+                            SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(HI_LATN_DVORAK));
+                }
+                if (SR_LATN_QWERTY != null) {
+                    assertEquals("sr_ZZ", "Serbian (QWERTY)",
+                            SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(SR_LATN_QWERTY));
+                }
                 return null;
             }
         };
@@ -218,21 +301,27 @@
     //        isAdditionalSubtype (T=true, F=false)
     // locale layout  |  display name
     // ------ ------- - ----------------------
-    //  en_US qwerty  F  Anglais (États-Unis)            exception
-    //  en_GB qwerty  F  Anglais (Royaume-Uni)            exception
-    //  es_US spanish F  Espagnol (États-Unis)            exception
-    //  fr    azerty  F  Français
-    //  fr_CA qwerty  F  Français (Canada)
-    //  fr_CH swiss   F  Français (Suisse)
-    //  de    qwertz  F  Allemand
-    //  de_CH swiss   F  Allemand (Suisse)
-    //  zz    qwerty  F  Alphabet latin (QWERTY)
-    //  fr    qwertz  T  Français (QWERTZ)
-    //  de    qwerty  T  Allemand (QWERTY)
-    //  en_US azerty  T  Anglais (États-Unis) (AZERTY)   exception
-    //  en_UK dvorak  T  Anglais (Royaume-Uni) (Dvorak)   exception
-    //  es_US colemak T  Espagnol (États-Unis) (Colemak)  exception
-    //  zz    pc      T  Alphabet latin (PC)
+    //  en_US qwerty         F  Anglais (États-Unis)             exception
+    //  en_GB qwerty         F  Anglais (Royaume-Uni)            exception
+    //  es_US spanish        F  Espagnol (États-Unis)            exception
+    //  fr    azerty         F  Français
+    //  fr_CA qwerty         F  Français (Canada)
+    //  fr_CH swiss          F  Français (Suisse)
+    //  de    qwertz         F  Allemand
+    //  de_CH swiss          F  Allemand (Suisse)
+    //  hi    hindi          F  Hindi                            exception
+    //  hi_ZZ qwerty         F  Hindi/Anglais                    exception
+    //  sr    south_slavic   F  Serbe                            exception
+    //  sr_ZZ serbian_qwertz F  Serbe (latin)                    exception
+    //  zz    qwerty         F  Alphabet latin (QWERTY)
+    //  fr    qwertz         T  Français (QWERTZ)
+    //  de    qwerty         T  Allemand (QWERTY)
+    //  en_US azerty         T  Anglais (États-Unis) (AZERTY)    exception
+    //  en_UK dvorak         T  Anglais (Royaume-Uni) (Dvorak)   exception
+    //  es_US colemak        T  Espagnol (États-Unis) (Colemak)  exception
+    //  hi_ZZ dvorak         T  Hindi/Anglais (Dvorka)           exception
+    //  sr_ZZ qwerty         T  Serbe (QWERTY)                   exception
+    //  zz    pc             T  Alphabet latin (PC)
 
     public void testPredefinedSubtypesInFrenchSystemLocale() {
         final RunInLocale<Void> tests = new RunInLocale<Void>() {
@@ -254,8 +343,21 @@
                         SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(DE));
                 assertEquals("de_CH", "Allemand (Suisse)",
                         SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(DE_CH));
+                assertEquals("hi", "Hindi",
+                        SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(HI));
+                assertEquals("sr", "Serbe",
+                        SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(SR));
                 assertEquals("zz", "Alphabet latin (QWERTY)",
                         SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(ZZ));
+                // These are preliminary subtypes and may not exist.
+                if (HI_LATN != null) {
+                    assertEquals("hi_ZZ", "Hindi/Anglais",
+                            SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(HI_LATN));
+                }
+                if (SR_LATN != null) {
+                    assertEquals("sr_ZZ", "Serbe (latin)",
+                            SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(SR_LATN));
+                }
                 return null;
             }
         };
@@ -280,12 +382,75 @@
                         SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(ZZ_AZERTY));
                 assertEquals("zz pc", "Alphabet latin (PC)",
                         SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(ZZ_PC));
+                // These are preliminary subtypes and may not exist.
+                if (HI_LATN_DVORAK != null) {
+                    assertEquals("hi_ZZ", "Hindi/Anglais (Dvorak)",
+                            SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(HI_LATN_DVORAK));
+                }
+                if (SR_LATN_QWERTY != null) {
+                    assertEquals("sr_ZZ", "Serbe (QWERTY)",
+                            SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(SR_LATN_QWERTY));
+                }
                 return null;
             }
         };
         tests.runInLocale(mRes, Locale.FRENCH);
     }
 
+    // InputMethodSubtype's display name in system locale (hi).
+    //        isAdditionalSubtype (T=true, F=false)
+    // locale layout  |  display name
+    // ------ ------- - ----------------------
+    //  hi    hindi   F  हिन्दी
+    //  hi_ZZ qwerty  F  हिंग्लिश
+    //  hi_ZZ dvorak  T  हिंग्लिश (Dvorak)
+
+    public void testHinglishSubtypesInHindiSystemLocale() {
+        final RunInLocale<Void> tests = new RunInLocale<Void>() {
+            @Override
+            protected Void job (final Resources res) {
+                assertEquals("hi", "हिन्दी",
+                        SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(HI));
+                // These are preliminary subtypes and may not exist.
+                if (HI_LATN != null) {
+                    assertEquals("hi_ZZ", "हिंग्लिश",
+                            SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(HI_LATN));
+                    assertEquals("hi_ZZ", "हिंग्लिश (Dvorak)",
+                            SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(HI_LATN_DVORAK));
+                }
+                return null;
+            }
+        };
+        tests.runInLocale(mRes, new Locale("hi"));
+    }
+
+    // InputMethodSubtype's display name in system locale (sr).
+    //               isAdditionalSubtype (T=true, F=false)
+    // locale layout         |  display name
+    // ------ -------------- - ----------------------
+    //  sr    south_slavic   F  Српски
+    //  sr_ZZ serbian_qwertz F  Српски (латиница)
+    //  sr_ZZ qwerty         T  Српски (QWERTY)
+
+    public void testSerbianLatinSubtypesInSerbianSystemLocale() {
+        final RunInLocale<Void> tests = new RunInLocale<Void>() {
+            @Override
+            protected Void job (final Resources res) {
+                assertEquals("sr", "Српски",
+                        SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(SR));
+                // These are preliminary subtypes and may not exist.
+                if (SR_LATN != null) {
+                    assertEquals("sr_ZZ", "Српски (латиница)",
+                            SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(SR_LATN));
+                    assertEquals("sr_ZZ", "Српски (QWERTY)",
+                            SubtypeLocaleUtils.getSubtypeDisplayNameInSystemLocale(SR_LATN_QWERTY));
+                }
+                return null;
+            }
+        };
+        tests.runInLocale(mRes, new Locale("sr"));
+    }
+
     public void testIsRtlLanguage() {
         // Known Right-to-Left language subtypes.
         final InputMethodSubtype ARABIC = mRichImm
@@ -298,13 +463,15 @@
                 .findSubtypeByLocaleAndKeyboardLayoutSet("iw", "hebrew");
         assertNotNull("Hebrew", HEBREW);
 
-        for (final InputMethodSubtype subtype : mSubtypesList) {
+        for (final RichInputMethodSubtype subtype : mSubtypesList) {
+            final InputMethodSubtype rawSubtype = subtype.getRawSubtype();
             final String subtypeName = SubtypeLocaleUtils
-                    .getSubtypeDisplayNameInSystemLocale(subtype);
-            if (subtype.equals(ARABIC) || subtype.equals(FARSI) || subtype.equals(HEBREW)) {
-                assertTrue(subtypeName, SubtypeLocaleUtils.isRtlLanguage(subtype));
+                    .getSubtypeDisplayNameInSystemLocale(rawSubtype);
+            if (rawSubtype.equals(ARABIC) || rawSubtype.equals(FARSI)
+                    || rawSubtype.equals(HEBREW)) {
+                assertTrue(subtypeName, subtype.isRtlSubtype());
             } else {
-                assertFalse(subtypeName, SubtypeLocaleUtils.isRtlLanguage(subtype));
+                assertFalse(subtypeName, subtype.isRtlSubtype());
             }
         }
     }
diff --git a/tools/dicttool/Android.mk b/tools/dicttool/Android.mk
index 3e3d419..1a9f029 100644
--- a/tools/dicttool/Android.mk
+++ b/tools/dicttool/Android.mk
@@ -35,7 +35,6 @@
 LATINIME_BASE_SRC_DIR := $(LATINIME_LOCAL_DIR)/java/src/com/android/inputmethod
 LATINIME_BASE_OVERRIDABLE_SRC_DIR := \
         $(LATINIME_LOCAL_DIR)/java-overridable/src/com/android/inputmethod
-LATINIME_ANNOTATIONS_SRC_DIR := $(LATINIME_BASE_SRC_DIR)/annotations
 MAKEDICT_CORE_SRC_DIR := $(LATINIME_BASE_SRC_DIR)/latin/makedict
 LATINIME_TESTS_SRC_DIR := $(LATINIME_LOCAL_DIR)/tests/src/com/android/inputmethod/latin
 
@@ -43,26 +42,15 @@
 # a significant part of the dependencies are mocked in the compat/ directory, with empty or
 # nearly-empty implementations, for parts that we don't use in Dicttool.
 LATINIME_SRC_FILES_FOR_DICTTOOL := \
-        event/Combiner.java \
-        event/Event.java \
         latin/BinaryDictionary.java \
         latin/DicTraverseSession.java \
         latin/Dictionary.java \
-        latin/InputPointers.java \
-        latin/LastComposedWord.java \
-        latin/PrevWordsInfo.java \
+        latin/NgramContext.java \
         latin/SuggestedWords.java \
-        latin/WordComposer.java \
-        latin/settings/NativeSuggestOptions.java \
         latin/settings/SettingsValuesForSuggestion.java \
         latin/utils/BinaryDictionaryUtils.java \
         latin/utils/CombinedFormatUtils.java \
-        latin/utils/CoordinateUtils.java \
-        latin/utils/FileUtils.java \
-        latin/utils/JniUtils.java \
-        latin/utils/LocaleUtils.java \
-        latin/utils/ResizableIntArray.java \
-        latin/utils/StringUtils.java
+        latin/utils/JniUtils.java
 
 LATINIME_OVERRIDABLE_SRC_FILES_FOR_DICTTOOL := \
         latin/define/DebugFlags.java
@@ -82,18 +70,15 @@
 
 LOCAL_MAIN_SRC_FILES := $(call all-java-files-under, $(MAKEDICT_CORE_SRC_DIR))
 LOCAL_TOOL_SRC_FILES := $(call all-java-files-under, src)
-LOCAL_ANNOTATIONS_SRC_FILES := $(call all-java-files-under, $(LATINIME_ANNOTATIONS_SRC_DIR))
 
 LOCAL_SRC_FILES := $(LOCAL_TOOL_SRC_FILES) \
         $(filter-out $(addprefix %/, $(notdir $(LOCAL_TOOL_SRC_FILES))), $(LOCAL_MAIN_SRC_FILES)) \
-        $(call all-java-files-under, $(DICTTOOL_COMPAT_TESTS_DIR)) \
-        $(LOCAL_ANNOTATIONS_SRC_FILES) $(USED_TARGETED_SRC_FILES) \
-        $(LATINIME_BASE_SRC_DIR)/latin/Constants.java \
-        $(call all-java-files-under, tests) \
-        $(call all-java-files-under, $(DICTTOOL_ONDEVICE_TESTS_DIR))
+        $(USED_TARGETED_SRC_FILES) \
+        $(call all-java-files-under, \
+                tests $(DICTTOOL_COMPAT_TESTS_DIR) $(DICTTOOL_ONDEVICE_TESTS_DIR))
 
 LOCAL_JAVA_LIBRARIES := junit
-LOCAL_STATIC_JAVA_LIBRARIES := jsr305lib
+LOCAL_STATIC_JAVA_LIBRARIES := jsr305lib latinime-common-host
 LOCAL_REQUIRED_MODULES := $(LATINIME_HOST_NATIVE_LIBNAME)
 LOCAL_JAR_MANIFEST := etc/manifest.txt
 LOCAL_MODULE := dicttool_aosp
diff --git a/tools/dicttool/compat/android/test/MoreAsserts.java b/tools/dicttool/compat/android/test/MoreAsserts.java
deleted file mode 100644
index f56420b..0000000
--- a/tools/dicttool/compat/android/test/MoreAsserts.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.test;
-
-import junit.framework.Assert;
-
-/**
- * This is a compatibility class that aims at emulating android.test.MoreAsserts from the
- * Android library as simply as possible, and only to the extent that is used by the client classes.
- * Its purpose is to provide compatibility without having to pull the whole Android library.
- */
-public class MoreAsserts {
-    public static void assertNotEqual(Object unexpected, Object actual) {
-        if (equal(unexpected, actual)) {
-            Assert.fail("expected not to be:<" + unexpected + ">");
-        }
-    }
-    private static boolean equal(Object a, Object b) {
-        return a == b || (a != null && a.equals(b));
-    }
-}
diff --git a/tools/dicttool/compat/android/text/TextUtils.java b/tools/dicttool/compat/android/text/TextUtils.java
index 5a94b7d..8248331 100644
--- a/tools/dicttool/compat/android/text/TextUtils.java
+++ b/tools/dicttool/compat/android/text/TextUtils.java
@@ -25,10 +25,7 @@
      * @return true if str is null or zero length
      */
     public static boolean isEmpty(CharSequence str) {
-        if (str == null || str.length() == 0)
-            return true;
-        else
-            return false;
+        return (str == null || str.length() == 0);
     }
 
     /**
@@ -45,12 +42,11 @@
         if (a != null && b != null && (length = a.length()) == b.length()) {
             if (a instanceof String && b instanceof String) {
                 return a.equals(b);
-            } else {
-                for (int i = 0; i < length; i++) {
-                    if (a.charAt(i) != b.charAt(i)) return false;
-                }
-                return true;
             }
+            for (int i = 0; i < length; i++) {
+                if (a.charAt(i) != b.charAt(i)) return false;
+            }
+            return true;
         }
         return false;
     }
@@ -90,7 +86,7 @@
      * @param tokens an array objects to be joined. Strings will be formed from
      *     the objects by calling object.toString().
      */
-    public static String join(CharSequence delimiter, Iterable tokens) {
+    public static String join(CharSequence delimiter, Iterable<?> tokens) {
         StringBuilder sb = new StringBuilder();
         boolean firstTime = true;
         for (Object token: tokens) {
diff --git a/tools/dicttool/compat/android/util/Pair.java b/tools/dicttool/compat/android/util/Pair.java
index 5bf3484..e61e896 100644
--- a/tools/dicttool/compat/android/util/Pair.java
+++ b/tools/dicttool/compat/android/util/Pair.java
@@ -16,7 +16,7 @@
 
 package android.util;
 
-import java.util.Arrays;
+import java.util.Objects;
 
 public class Pair<T1, T2> {
     public final T1 mFirst;
@@ -29,7 +29,8 @@
 
     @Override
     public int hashCode() {
-        return Arrays.hashCode(new Object[] { mFirst, mSecond });
+        return (mFirst == null ? 0 : mFirst.hashCode())
+                ^ (mSecond == null ? 0 : mSecond.hashCode());
     }
 
     @Override
@@ -37,7 +38,6 @@
         if (o == this) return true;
         if (!(o instanceof Pair)) return false;
         Pair<?, ?> p = (Pair<?, ?>)o;
-        return ((mFirst == null && p.mFirst == null) || mFirst.equals(p.mFirst))
-                && ((mSecond == null && p.mSecond == null) || mSecond.equals(p.mSecond));
+        return Objects.equals(mFirst, p.mFirst) && Objects.equals(mSecond, p.mSecond);
     }
 }
diff --git a/tools/dicttool/compat/android/view/inputmethod/CompletionInfo.java b/tools/dicttool/compat/android/view/inputmethod/CompletionInfo.java
index fbce725..e2f769e 100644
--- a/tools/dicttool/compat/android/view/inputmethod/CompletionInfo.java
+++ b/tools/dicttool/compat/android/view/inputmethod/CompletionInfo.java
@@ -16,6 +16,7 @@
 
 package android.view.inputmethod;
 
+@SuppressWarnings("static-method")
 public class CompletionInfo {
     public final String getText() { return ""; }
 }
diff --git a/tools/dicttool/compat/com/android/inputmethod/event/CombinerChain.java b/tools/dicttool/compat/com/android/inputmethod/event/CombinerChain.java
deleted file mode 100644
index c4457a1..0000000
--- a/tools/dicttool/compat/com/android/inputmethod/event/CombinerChain.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.event;
-
-import java.util.ArrayList;
-
-/**
- * Compatibility class that stands in for the combiner chain in LatinIME.
- *
- * This is not used by dicttool, it's just needed by the dependency chain.
- */
-// TODO: there should not be a dependency to this in dicttool, so there
-// should be a sensible way to separate them cleanly.
-public class CombinerChain {
-    private StringBuilder mComposingWord;
-    public CombinerChain(final String initialText, final Combiner... combinerList) {
-        mComposingWord = new StringBuilder(initialText);
-    }
-
-    public Event processEvent(final ArrayList<Event> previousEvents, final Event newEvent) {
-        return newEvent;
-    }
-
-    public void applyProcessedEvent(final Event event) {
-        mComposingWord.append(event.getTextToCommit());
-    }
-
-    public CharSequence getComposingWordWithCombiningFeedback() {
-        return mComposingWord;
-    }
-
-    public void reset() {
-        mComposingWord.setLength(0);
-    }
-
-    public static Combiner[] createCombiners(final String spec) {
-        // Dicttool never uses a combiner at all, so we just return a zero-sized array.
-        return new Combiner[0];
-    }
-}
diff --git a/tools/dicttool/compat/com/android/inputmethod/keyboard/Key.java b/tools/dicttool/compat/com/android/inputmethod/keyboard/Key.java
index 1e63bb5..9259406 100644
--- a/tools/dicttool/compat/com/android/inputmethod/keyboard/Key.java
+++ b/tools/dicttool/compat/com/android/inputmethod/keyboard/Key.java
@@ -16,6 +16,7 @@
 
 package com.android.inputmethod.keyboard;
 
+@SuppressWarnings("static-method")
 public class Key {
     public final int getX() { return 0; }
     public final int getY() { return 0; }
diff --git a/tools/dicttool/compat/com/android/inputmethod/keyboard/Keyboard.java b/tools/dicttool/compat/com/android/inputmethod/keyboard/Keyboard.java
index 61b209f..3d6bfd0 100644
--- a/tools/dicttool/compat/com/android/inputmethod/keyboard/Keyboard.java
+++ b/tools/dicttool/compat/com/android/inputmethod/keyboard/Keyboard.java
@@ -16,6 +16,7 @@
 
 package com.android.inputmethod.keyboard;
 
+@SuppressWarnings("unused")
 public class Keyboard {
     private final Key KEY = new Key();
     public final Key getKey(final int i) { return KEY; }
diff --git a/tools/dicttool/compat/com/android/inputmethod/keyboard/ProximityInfo.java b/tools/dicttool/compat/com/android/inputmethod/keyboard/ProximityInfo.java
index 561b663..3a068bd 100644
--- a/tools/dicttool/compat/com/android/inputmethod/keyboard/ProximityInfo.java
+++ b/tools/dicttool/compat/com/android/inputmethod/keyboard/ProximityInfo.java
@@ -18,11 +18,10 @@
 
 public class ProximityInfo {
     public long getNativeProximityInfo() { return 0l; }
-    private static native long setProximityInfoNative(String locale,
-            int displayWidth, int displayHeight, int gridWidth, int gridHeight,
-            int mostCommonKeyWidth, int mostCommonKeyHeight, int[] proximityCharsArray,
-            int keyCount, int[] keyXCoordinates, int[] keyYCoordinates, int[] keyWidths,
-            int[] keyHeights, int[] keyCharCodes, float[] sweetSpotCenterXs,
+    private static native long setProximityInfoNative(int displayWidth, int displayHeight,
+            int gridWidth, int gridHeight, int mostCommonKeyWidth, int mostCommonKeyHeight,
+            int[] proximityCharsArray, int keyCount, int[] keyXCoordinates, int[] keyYCoordinates,
+            int[] keyWidths, int[] keyHeights, int[] keyCharCodes, float[] sweetSpotCenterXs,
             float[] sweetSpotCenterYs, float[] sweetSpotRadii);
     private static native void releaseProximityInfoNative(long nativeProximityInfo);
 }
diff --git a/tools/dicttool/compat/com/android/inputmethod/latin/utils/LanguageModelParam.java b/tools/dicttool/compat/com/android/inputmethod/latin/utils/LanguageModelParam.java
deleted file mode 100644
index f4ca94a..0000000
--- a/tools/dicttool/compat/com/android/inputmethod/latin/utils/LanguageModelParam.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.inputmethod.latin.utils;
-
-public final class LanguageModelParam {
-}
diff --git a/tools/dicttool/compat/com/android/inputmethod/latin/utils/WordInputEventForPersonalization.java b/tools/dicttool/compat/com/android/inputmethod/latin/utils/WordInputEventForPersonalization.java
new file mode 100644
index 0000000..b5a7294
--- /dev/null
+++ b/tools/dicttool/compat/com/android/inputmethod/latin/utils/WordInputEventForPersonalization.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.inputmethod.latin.utils;
+
+public final class WordInputEventForPersonalization {
+}
diff --git a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/BinaryDictOffdeviceUtils.java b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/BinaryDictOffdeviceUtils.java
index 3ef03f4..b5ed94c 100644
--- a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/BinaryDictOffdeviceUtils.java
+++ b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/BinaryDictOffdeviceUtils.java
@@ -19,24 +19,28 @@
 import com.android.inputmethod.latin.makedict.BinaryDictDecoderUtils;
 import com.android.inputmethod.latin.makedict.BinaryDictIOUtils;
 import com.android.inputmethod.latin.makedict.DictDecoder;
+import com.android.inputmethod.latin.makedict.DictionaryHeader;
+import com.android.inputmethod.latin.makedict.FormatSpec;
+import com.android.inputmethod.latin.makedict.FormatSpec.DictionaryOptions;
+import com.android.inputmethod.latin.makedict.FormatSpec.FormatOptions;
 import com.android.inputmethod.latin.makedict.FusionDictionary;
 import com.android.inputmethod.latin.makedict.UnsupportedFormatException;
 
-import org.xml.sax.SAXException;
-
 import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.OutputStream;
-import java.util.ArrayList;
+import java.util.HashMap;
 
-import javax.xml.parsers.ParserConfigurationException;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 
 /**
  * Class grouping utilities for offline dictionary making.
@@ -48,30 +52,158 @@
     // Prefix and suffix are arbitrary, the values do not really matter
     private final static String PREFIX = "dicttool";
     private final static String SUFFIX = ".tmp";
-
-    public final static String COMPRESSION = "compressed";
-    public final static String ENCRYPTION = "encrypted";
-
-    private final static int MAX_DECODE_DEPTH = 8;
     private final static int COPY_BUFFER_SIZE = 8192;
 
-    public static class DecoderChainSpec {
-        ArrayList<String> mDecoderSpec = new ArrayList<>();
-        File mFile;
+    public static class DecoderChainSpec<T> {
+        public final static int COMPRESSION = 1;
+        public final static int ENCRYPTION = 2;
 
-        public DecoderChainSpec addStep(final String stepDescription) {
-            mDecoderSpec.add(stepDescription);
-            return this;
+        private final static int[][] VALID_DECODER_CHAINS = {
+            { }, { COMPRESSION }, { ENCRYPTION, COMPRESSION }
+        };
+
+        private final int mDecoderSpecIndex;
+        public T mResult;
+
+        public DecoderChainSpec() {
+            mDecoderSpecIndex = 0;
+            mResult = null;
+        }
+
+        private DecoderChainSpec(final DecoderChainSpec<T> src) {
+            mDecoderSpecIndex = src.mDecoderSpecIndex + 1;
+            mResult = src.mResult;
+        }
+
+        private String getStepDescription(final int step) {
+            switch (step) {
+            case COMPRESSION:
+                return "compression";
+            case ENCRYPTION:
+                return "encryption";
+            default:
+                return "unknown";
+            }
         }
 
         public String describeChain() {
             final StringBuilder s = new StringBuilder("raw");
-            for (final String step : mDecoderSpec) {
+            for (final int step : VALID_DECODER_CHAINS[mDecoderSpecIndex]) {
                 s.append(" > ");
-                s.append(step);
+                s.append(getStepDescription(step));
             }
             return s.toString();
         }
+
+        /**
+         * Returns the next sequential spec. If exhausted, return null.
+         */
+        public DecoderChainSpec next() {
+            if (mDecoderSpecIndex + 1 >= VALID_DECODER_CHAINS.length) {
+                return null;
+            }
+            return new DecoderChainSpec(this);
+        }
+
+        public InputStream getStream(final File src) throws FileNotFoundException, IOException {
+            InputStream input = new BufferedInputStream(new FileInputStream(src));
+            for (final int step : VALID_DECODER_CHAINS[mDecoderSpecIndex]) {
+                switch (step) {
+                case COMPRESSION:
+                    input = Compress.getUncompressedStream(input);
+                    break;
+                case ENCRYPTION:
+                    input = Crypt.getDecryptedStream(input);
+                    break;
+                }
+            }
+            return input;
+        }
+    }
+
+    public interface InputProcessor<T> {
+        @Nonnull
+        public T process(@Nonnull final InputStream input)
+                throws IOException, UnsupportedFormatException;
+    }
+
+    public static class CopyProcessor implements InputProcessor<File> {
+        @Override @Nonnull
+        public File process(@Nonnull final InputStream input) throws IOException,
+                UnsupportedFormatException {
+            final File dst = File.createTempFile(PREFIX, SUFFIX);
+            dst.deleteOnExit();
+            try (final OutputStream output = new BufferedOutputStream(new FileOutputStream(dst))) {
+                copy(input, output);
+                output.flush();
+                output.close();
+                if (BinaryDictDecoderUtils.isBinaryDictionary(dst)
+                        || CombinedInputOutput.isCombinedDictionary(dst.getAbsolutePath())) {
+                    return dst;
+                }
+            }
+            throw new UnsupportedFormatException("Input stream not at the expected format");
+        }
+    }
+
+    public static class HeaderReaderProcessor implements InputProcessor<DictionaryHeader> {
+        // Arbitrarily limit the header length to 32k. Sounds like it would never be larger
+        // than this. Revisit this if needed later.
+        private final int MAX_HEADER_LENGTH = 32 * 1024;
+        @Override @Nonnull
+        public DictionaryHeader process(final InputStream input) throws IOException,
+                UnsupportedFormatException {
+            // Do everything as curtly and ad-hoc as possible for performance.
+            final byte[] tmpBuffer = new byte[12];
+            if (tmpBuffer.length != input.read(tmpBuffer)) {
+                throw new UnsupportedFormatException("File too short, not a dictionary");
+            }
+            // Ad-hoc check for the magic number. See FormatSpec.java as well as
+            // byte_array_utils.h and BinaryDictEncoderUtils#writeDictionaryHeader().
+            final int MAGIC_NUMBER_START_OFFSET = 0;
+            final int VERSION_START_OFFSET = 4;
+            final int HEADER_SIZE_OFFSET = 8;
+            final int magicNumber = ((tmpBuffer[MAGIC_NUMBER_START_OFFSET] & 0xFF) << 24)
+                    + ((tmpBuffer[MAGIC_NUMBER_START_OFFSET + 1] & 0xFF) << 16)
+                    + ((tmpBuffer[MAGIC_NUMBER_START_OFFSET + 2] & 0xFF) << 8)
+                    + (tmpBuffer[MAGIC_NUMBER_START_OFFSET + 3] & 0xFF);
+            if (magicNumber != FormatSpec.MAGIC_NUMBER) {
+                throw new UnsupportedFormatException("Wrong magic number");
+            }
+            final int version = ((tmpBuffer[VERSION_START_OFFSET] & 0xFF) << 8)
+                    + (tmpBuffer[VERSION_START_OFFSET + 1] & 0xFF);
+            if (version != FormatSpec.VERSION2 && version != FormatSpec.VERSION201
+                    && version != FormatSpec.VERSION202) {
+                throw new UnsupportedFormatException("Only versions 2, 201, 202 are supported");
+            }
+            final int totalHeaderSize = ((tmpBuffer[HEADER_SIZE_OFFSET] & 0xFF) << 24)
+                    + ((tmpBuffer[HEADER_SIZE_OFFSET + 1] & 0xFF) << 16)
+                    + ((tmpBuffer[HEADER_SIZE_OFFSET + 2] & 0xFF) << 8)
+                    + (tmpBuffer[HEADER_SIZE_OFFSET + 3] & 0xFF);
+            if (totalHeaderSize > MAX_HEADER_LENGTH) {
+                throw new UnsupportedFormatException("Header too large");
+            }
+            final byte[] headerBuffer = new byte[totalHeaderSize - tmpBuffer.length];
+            readStreamExhaustively(input, headerBuffer);
+            final HashMap<String, String> attributes =
+                    BinaryDictDecoderUtils.decodeHeaderAttributes(headerBuffer);
+            return new DictionaryHeader(totalHeaderSize, new DictionaryOptions(attributes),
+                    new FormatOptions(version, false /* hasTimestamp */));
+        }
+    }
+
+    private static void readStreamExhaustively(final InputStream inputStream,
+            final byte[] outBuffer) throws IOException, UnsupportedFormatException {
+        int readBytes = 0;
+        int readBytesLastCycle = -1;
+        while (readBytes != outBuffer.length) {
+            readBytesLastCycle = inputStream.read(outBuffer, readBytes,
+                    outBuffer.length - readBytes);
+            if (readBytesLastCycle == -1)
+                throw new UnsupportedFormatException("File shorter than specified in the header"
+                        + " (expected " + outBuffer.length + ", read " + readBytes + ")");
+            readBytes += readBytesLastCycle;
+        }
     }
 
     public static void copy(final InputStream input, final OutputStream output) throws IOException {
@@ -82,92 +214,51 @@
     }
 
     /**
-     * Returns a decrypted/uncompressed dictionary.
+     * Process a dictionary, decrypting/uncompressing it on the fly as necessary.
      *
-     * This will decrypt/uncompress any number of times as necessary until it finds the
-     * dictionary signature, and copy the decoded file to a temporary place.
-     * If this is not a dictionary, the method returns null.
+     * This will execute the given processor repeatedly with the possible alternatives
+     * for dictionary format until the processor does not throw an exception.
+     * If the processor succeeds for none of the possible formats, the method returns null.
      */
-    public static DecoderChainSpec getRawDictionaryOrNull(final File src) {
-        return getRawDictionaryOrNullInternal(new DecoderChainSpec(), src, 0);
-    }
-
-    private static DecoderChainSpec getRawDictionaryOrNullInternal(
-            final DecoderChainSpec spec, final File src, final int depth) {
-        // Unfortunately the decoding scheme we use can consider any data to be encrypted
-        // and will product some output, meaning it's not possible to reliably detect encrypted
-        // data. Thus, some non-dictionary files (especially small) ones may successfully decrypt
-        // over and over, ending in a stack overflow. Hence we limit the depth at which we try
-        // decoding the file.
-        if (depth > MAX_DECODE_DEPTH) return null;
-        if (BinaryDictDecoderUtils.isBinaryDictionary(src)
-                || CombinedInputOutput.isCombinedDictionary(src.getAbsolutePath())) {
-            spec.mFile = src;
-            return spec;
-        }
-        // It's not a raw dictionary - try to see if it's compressed.
-        final File uncompressedFile = tryGetUncompressedFile(src);
-        if (null != uncompressedFile) {
-            final DecoderChainSpec newSpec =
-                    getRawDictionaryOrNullInternal(spec, uncompressedFile, depth + 1);
-            if (null == newSpec) return null;
-            return newSpec.addStep(COMPRESSION);
-        }
-        // It's not a compressed either - try to see if it's crypted.
-        final File decryptedFile = tryGetDecryptedFile(src);
-        if (null != decryptedFile) {
-            final DecoderChainSpec newSpec =
-                    getRawDictionaryOrNullInternal(spec, decryptedFile, depth + 1);
-            if (null == newSpec) return null;
-            return newSpec.addStep(ENCRYPTION);
+    @Nullable
+    public static <T> DecoderChainSpec<T> decodeDictionaryForProcess(@Nonnull final File src,
+            @Nonnull final InputProcessor<T> processor) {
+        @Nonnull DecoderChainSpec spec = new DecoderChainSpec();
+        while (null != spec) {
+            try {
+                final InputStream input = spec.getStream(src);
+                spec.mResult = processor.process(input);
+                try {
+                    input.close();
+                } catch (IOException e) {
+                    // CipherInputStream doesn't like being closed without having read the
+                    // entire stream, for some reason. But we don't want to because it's a waste
+                    // of resources. We really, really don't care about this.
+                    // However on close() CipherInputStream does throw this exception, wrapped
+                    // in an IOException so we need to catch it.
+                    if (!(e.getCause() instanceof javax.crypto.BadPaddingException)) {
+                        throw e;
+                    }
+                }
+                return spec;
+            } catch (IOException | UnsupportedFormatException | ArrayIndexOutOfBoundsException e) {
+                // If the format is not the right one for this file, the processor will throw one
+                // of these exceptions. In our case, that means we should try the next spec,
+                // since it may still be at another format we haven't tried yet.
+                // TODO: stop using exceptions for this non-exceptional case.
+            }
+            spec = spec.next();
         }
         return null;
     }
 
-    /* Try to uncompress the file passed as an argument.
-     *
-     * If the file can be uncompressed, the uncompressed version is returned. Otherwise, null
-     * is returned.
+    /**
+     * Get a decoder chain spec with a raw dictionary file. This makes a new file on the
+     * disk ready for any treatment the client wants.
      */
-    private static File tryGetUncompressedFile(final File src) {
-        try {
-            final File dst = File.createTempFile(PREFIX, SUFFIX);
-            dst.deleteOnExit();
-            try (
-                final InputStream input = Compress.getUncompressedStream(
-                        new BufferedInputStream(new FileInputStream(src)));
-                final OutputStream output = new BufferedOutputStream(new FileOutputStream(dst))
-            ) {
-                copy(input, output);
-                return dst;
-            }
-        } catch (final IOException e) {
-            // Could not uncompress the file: presumably the file is simply not a compressed file
-            return null;
-        }
-    }
-
-    /* Try to decrypt the file passed as an argument.
-     *
-     * If the file can be decrypted, the decrypted version is returned. Otherwise, null
-     * is returned.
-     */
-    private static File tryGetDecryptedFile(final File src) {
-        try {
-            final File dst = File.createTempFile(PREFIX, SUFFIX);
-            dst.deleteOnExit();
-            try (
-                final InputStream input = Crypt.getDecryptedStream(
-                        new BufferedInputStream(new FileInputStream(src)));
-                final OutputStream output = new BufferedOutputStream(new FileOutputStream(dst))
-            ) {
-                copy(input, output);
-                return dst;
-            }
-        } catch (final IOException e) {
-            // Could not decrypt the file: presumably the file is simply not a crypted file
-            return null;
-        }
+    @Nullable
+    public static DecoderChainSpec<File> getRawDictionaryOrNull(@Nonnull final File src) {
+        return decodeDictionaryForProcess(src, new CopyProcessor());
     }
 
     static FusionDictionary getDictionary(final String filename, final boolean report) {
@@ -177,40 +268,31 @@
             System.out.println("Size : " + file.length() + " bytes");
         }
         try {
-            if (XmlDictInputOutput.isXmlUnigramDictionary(filename)) {
-                if (report) {
-                    System.out.println("Format : XML unigram list");
-                }
-                return XmlDictInputOutput.readDictionaryXml(
-                        new BufferedInputStream(new FileInputStream(file)),
-                        null /* shortcuts */, null /* bigrams */);
-            }
-            final DecoderChainSpec decodedSpec = getRawDictionaryOrNull(file);
+            final DecoderChainSpec<File> decodedSpec = getRawDictionaryOrNull(file);
             if (null == decodedSpec) {
                 throw new RuntimeException("Does not seem to be a dictionary file " + filename);
             }
-            if (CombinedInputOutput.isCombinedDictionary(decodedSpec.mFile.getAbsolutePath())) {
+            if (CombinedInputOutput.isCombinedDictionary(decodedSpec.mResult.getAbsolutePath())) {
                 if (report) {
                     System.out.println("Format : Combined format");
                     System.out.println("Packaging : " + decodedSpec.describeChain());
-                    System.out.println("Uncompressed size : " + decodedSpec.mFile.length());
+                    System.out.println("Uncompressed size : " + decodedSpec.mResult.length());
                 }
                 try (final BufferedReader reader = new BufferedReader(
-                        new InputStreamReader(new FileInputStream(decodedSpec.mFile), "UTF-8"))) {
+                        new InputStreamReader(new FileInputStream(decodedSpec.mResult), "UTF-8"))) {
                     return CombinedInputOutput.readDictionaryCombined(reader);
                 }
             }
             final DictDecoder dictDecoder = BinaryDictIOUtils.getDictDecoder(
-                    decodedSpec.mFile, 0, decodedSpec.mFile.length(),
+                    decodedSpec.mResult, 0, decodedSpec.mResult.length(),
                     DictDecoder.USE_BYTEARRAY);
             if (report) {
                 System.out.println("Format : Binary dictionary format");
                 System.out.println("Packaging : " + decodedSpec.describeChain());
-                System.out.println("Uncompressed size : " + decodedSpec.mFile.length());
+                System.out.println("Uncompressed size : " + decodedSpec.mResult.length());
             }
             return dictDecoder.readDictionaryBinary(false /* deleteDictIfBroken */);
-        } catch (final IOException | SAXException | ParserConfigurationException |
-                UnsupportedFormatException e) {
+        } catch (final IOException | UnsupportedFormatException e) {
             throw new RuntimeException("Can't read file " + filename, e);
         }
     }
diff --git a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/CombinedInputOutput.java b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/CombinedInputOutput.java
index 23cbee8..955c572 100644
--- a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/CombinedInputOutput.java
+++ b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/CombinedInputOutput.java
@@ -98,6 +98,7 @@
         String word = null;
         ProbabilityInfo probabilityInfo = new ProbabilityInfo(0);
         boolean isNotAWord = false;
+        boolean isPossiblyOffensive = false;
         ArrayList<WeightedString> bigrams = new ArrayList<>();
         ArrayList<WeightedString> shortcuts = new ArrayList<>();
         while (null != (line = reader.readLine())) {
@@ -106,7 +107,7 @@
             if (args[0].matches(CombinedFormatUtils.WORD_TAG + "=.*")) {
                 if (null != word) {
                     dict.add(word, probabilityInfo, shortcuts.isEmpty() ? null : shortcuts,
-                            isNotAWord);
+                            isNotAWord, isPossiblyOffensive);
                     for (WeightedString s : bigrams) {
                         dict.setBigram(word, s.mWord, s.mProbabilityInfo);
                     }
@@ -114,27 +115,37 @@
                 if (!shortcuts.isEmpty()) shortcuts = new ArrayList<>();
                 if (!bigrams.isEmpty()) bigrams = new ArrayList<>();
                 isNotAWord = false;
+                isPossiblyOffensive = false;
                 for (String param : args) {
                     final String params[] = param.split("=", 2);
                     if (2 != params.length) throw new RuntimeException("Wrong format : " + line);
-                    if (CombinedFormatUtils.WORD_TAG.equals(params[0])) {
-                        word = params[1];
-                    } else if (CombinedFormatUtils.PROBABILITY_TAG.equals(params[0])) {
-                        probabilityInfo = new ProbabilityInfo(Integer.parseInt(params[1]),
-                                probabilityInfo.mTimestamp, probabilityInfo.mLevel,
-                                probabilityInfo.mCount);
-                    } else if (CombinedFormatUtils.HISTORICAL_INFO_TAG.equals(params[0])) {
-                        final String[] historicalInfoParams =
-                                params[1].split(CombinedFormatUtils.HISTORICAL_INFO_SEPARATOR);
-                        if (historicalInfoParams.length != HISTORICAL_INFO_ELEMENT_COUNT) {
-                            throw new RuntimeException("Wrong format (historical info) : " + line);
-                        }
-                        probabilityInfo = new ProbabilityInfo(probabilityInfo.mProbability,
-                                Integer.parseInt(historicalInfoParams[0]),
-                                Integer.parseInt(historicalInfoParams[1]),
-                                Integer.parseInt(historicalInfoParams[2]));
-                    } else if (CombinedFormatUtils.NOT_A_WORD_TAG.equals(params[0])) {
-                        isNotAWord = "true".equals(params[1]);
+                    switch (params[0]) {
+                        case CombinedFormatUtils.WORD_TAG:
+                            word = params[1];
+                            break;
+                        case CombinedFormatUtils.PROBABILITY_TAG:
+                            probabilityInfo = new ProbabilityInfo(Integer.parseInt(params[1]),
+                                    probabilityInfo.mTimestamp, probabilityInfo.mLevel,
+                                    probabilityInfo.mCount);
+                            break;
+                        case CombinedFormatUtils.HISTORICAL_INFO_TAG:
+                            final String[] historicalInfoParams = params[1].split(
+                                    CombinedFormatUtils.HISTORICAL_INFO_SEPARATOR);
+                            if (historicalInfoParams.length != HISTORICAL_INFO_ELEMENT_COUNT) {
+                                throw new RuntimeException("Wrong format (historical info) : "
+                                        + line);
+                            }
+                            probabilityInfo = new ProbabilityInfo(probabilityInfo.mProbability,
+                                    Integer.parseInt(historicalInfoParams[0]),
+                                    Integer.parseInt(historicalInfoParams[1]),
+                                    Integer.parseInt(historicalInfoParams[2]));
+                            break;
+                        case CombinedFormatUtils.NOT_A_WORD_TAG:
+                            isNotAWord = CombinedFormatUtils.isLiteralTrue(params[1]);
+                            break;
+                        case CombinedFormatUtils.POSSIBLY_OFFENSIVE_TAG:
+                            isPossiblyOffensive = CombinedFormatUtils.isLiteralTrue(params[1]);
+                            break;
                     }
                 }
             } else if (args[0].matches(CombinedFormatUtils.SHORTCUT_TAG + "=.*")) {
@@ -189,7 +200,8 @@
             }
         }
         if (null != word) {
-            dict.add(word, probabilityInfo, shortcuts.isEmpty() ? null : shortcuts, isNotAWord);
+            dict.add(word, probabilityInfo, shortcuts.isEmpty() ? null : shortcuts, isNotAWord,
+                    isPossiblyOffensive);
             for (WeightedString s : bigrams) {
                 dict.setBigram(word, s.mWord, s.mProbabilityInfo);
             }
diff --git a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/CommandList.java b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/CommandList.java
index 0d93c7f..8fdf763 100644
--- a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/CommandList.java
+++ b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/CommandList.java
@@ -18,7 +18,9 @@
 
 public class CommandList {
     public static void populate() {
+        // TODO: Move some commands to native code.
         Dicttool.addCommand("info", Info.class);
+        Dicttool.addCommand("header", Header.class);
         Dicttool.addCommand("diff", Diff.class);
         Dicttool.addCommand("compress", Compress.Compressor.class);
         Dicttool.addCommand("uncompress", Compress.Uncompressor.class);
diff --git a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/DictionaryMaker.java b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/DictionaryMaker.java
index 3d0557b..6187853 100644
--- a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/DictionaryMaker.java
+++ b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/DictionaryMaker.java
@@ -27,9 +27,6 @@
 import com.android.inputmethod.latin.makedict.Ver2DictEncoder;
 import com.android.inputmethod.latin.makedict.Ver4DictEncoder;
 
-import org.xml.sax.SAXException;
-
-import java.io.BufferedInputStream;
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
 import java.io.File;
@@ -37,13 +34,10 @@
 import java.io.FileNotFoundException;
 import java.io.FileWriter;
 import java.io.IOException;
-import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.util.Arrays;
 import java.util.LinkedList;
 
-import javax.xml.parsers.ParserConfigurationException;
-
 /**
  * Main class/method for DictionaryMaker.
  */
@@ -53,59 +47,37 @@
         private static final String OPTION_VERSION_2 = "-2";
         private static final String OPTION_VERSION_4 = "-4";
         private static final String OPTION_INPUT_SOURCE = "-s";
-        private static final String OPTION_INPUT_BIGRAM_XML = "-b";
-        private static final String OPTION_INPUT_SHORTCUT_XML = "-c";
         private static final String OPTION_OUTPUT_BINARY = "-d";
-        private static final String OPTION_OUTPUT_XML = "-x";
         private static final String OPTION_OUTPUT_COMBINED = "-o";
         private static final String OPTION_HELP = "-h";
+        private static final String OPTION_CODE_POINT_TABLE = "-t";
+        private static final String OPTION_CODE_POINT_TABLE_OFF = "off";
+        private static final String OPTION_CODE_POINT_TABLE_ON = "on";
         public final String mInputBinary;
         public final String mInputCombined;
-        public final String mInputUnigramXml;
-        public final String mInputShortcutXml;
-        public final String mInputBigramXml;
         public final String mOutputBinary;
-        public final String mOutputXml;
         public final String mOutputCombined;
         public final int mOutputBinaryFormatVersion;
+        public final int mCodePointTableMode;
 
         private void checkIntegrity() throws IOException {
             checkHasExactlyOneInput();
             checkHasAtLeastOneOutput();
             checkNotSameFile(mInputBinary, mOutputBinary);
-            checkNotSameFile(mInputBinary, mOutputXml);
             checkNotSameFile(mInputCombined, mOutputBinary);
-            checkNotSameFile(mInputCombined, mOutputXml);
-            checkNotSameFile(mInputUnigramXml, mOutputBinary);
-            checkNotSameFile(mInputUnigramXml, mOutputXml);
-            checkNotSameFile(mInputUnigramXml, mOutputCombined);
-            checkNotSameFile(mInputShortcutXml, mOutputBinary);
-            checkNotSameFile(mInputShortcutXml, mOutputXml);
-            checkNotSameFile(mInputShortcutXml, mOutputCombined);
-            checkNotSameFile(mInputBigramXml, mOutputBinary);
-            checkNotSameFile(mInputBigramXml, mOutputXml);
-            checkNotSameFile(mInputBigramXml, mOutputCombined);
-            checkNotSameFile(mOutputBinary, mOutputXml);
             checkNotSameFile(mOutputBinary, mOutputCombined);
-            checkNotSameFile(mOutputXml, mOutputCombined);
         }
 
         private void checkHasExactlyOneInput() {
-            if (null == mInputUnigramXml && null == mInputBinary && null == mInputCombined) {
+            if (null == mInputBinary && null == mInputCombined) {
                 throw new RuntimeException("No input file specified");
-            } else if ((null != mInputUnigramXml && null != mInputBinary)
-                    || (null != mInputUnigramXml && null != mInputCombined)
-                    || (null != mInputBinary && null != mInputCombined)) {
+            } else if (null != mInputBinary && null != mInputCombined) {
                 throw new RuntimeException("Several input files specified");
-            } else if ((null != mInputBinary || null != mInputCombined)
-                    && (null != mInputBigramXml || null != mInputShortcutXml)) {
-                throw new RuntimeException("Separate bigrams/shortcut files are only supported"
-                        + " with XML input (other formats include bigrams and shortcuts already)");
             }
         }
 
         private void checkHasAtLeastOneOutput() {
-            if (null == mOutputBinary && null == mOutputXml && null == mOutputCombined) {
+            if (null == mOutputBinary && null == mOutputCombined) {
                 throw new RuntimeException("No output specified");
             }
         }
@@ -122,22 +94,20 @@
             }
         }
 
-        private void displayHelp() {
+        private static void displayHelp() {
             MakedictLog.i(getHelp());
         }
 
         public static String getHelp() {
             return "Usage: makedict "
-                    + "[-s <unigrams.xml> [-b <bigrams.xml>] [-c <shortcuts_and_whitelist.xml>] "
                     + "| [-s <combined format input]"
-                    + "| [-s <binary input>] [-d <binary output>] [-x <xml output>] "
-                    + " [-o <combined output>]"
+                    + "| [-s <binary input>] [-d <binary output>]"
+                    + " [-o <combined output>] [-t <code point table switch: on/off/auto>]"
                     + "[-2] [-3] [-4]\n"
                     + "\n"
                     + "  Converts a source dictionary file to one or several outputs.\n"
-                    + "  Source can be an XML file, with an optional XML bigrams file, or a\n"
-                    + "  binary dictionary file.\n"
-                    + "  Binary version 2 (Jelly Bean), 3, 4, XML and\n"
+                    + "  Source can be a binary dictionary file or a combined format file.\n"
+                    + "  Binary version 2 (Jelly Bean), 3, 4, and\n"
                     + "  combined format outputs are supported.";
         }
 
@@ -148,13 +118,11 @@
             }
             String inputBinary = null;
             String inputCombined = null;
-            String inputUnigramXml = null;
-            String inputShortcutXml = null;
-            String inputBigramXml = null;
             String outputBinary = null;
-            String outputXml = null;
             String outputCombined = null;
-            int outputBinaryFormatVersion = 2; // the default version is 2.
+            int outputBinaryFormatVersion = FormatSpec.VERSION202; // the default version is 202.
+            // Don't use code point table by default.
+            int codePointTableMode = Ver2DictEncoder.CODE_POINT_TABLE_OFF;
 
             while (!args.isEmpty()) {
                 final String arg = args.get(0);
@@ -172,41 +140,42 @@
                             throw new IllegalArgumentException("Option " + arg + " is unknown or "
                                     + "requires an argument");
                         }
-                        String filename = args.get(0);
+                        String argValue = args.get(0);
                         args.remove(0);
                         if (OPTION_INPUT_SOURCE.equals(arg)) {
-                            if (XmlDictInputOutput.isXmlUnigramDictionary(filename)) {
-                                inputUnigramXml = filename;
-                            } else if (CombinedInputOutput.isCombinedDictionary(filename)) {
-                                inputCombined = filename;
-                            } else if (BinaryDictDecoderUtils.isBinaryDictionary(filename)) {
-                                inputBinary = filename;
+                            if (CombinedInputOutput.isCombinedDictionary(argValue)) {
+                                inputCombined = argValue;
+                            } else if (BinaryDictDecoderUtils.isBinaryDictionary(argValue)) {
+                                inputBinary = argValue;
                             } else {
                                 throw new IllegalArgumentException(
-                                        "Unknown format for file " + filename);
+                                        "Unknown format for file " + argValue);
                             }
-                        } else if (OPTION_INPUT_SHORTCUT_XML.equals(arg)) {
-                            inputShortcutXml = filename;
-                        } else if (OPTION_INPUT_BIGRAM_XML.equals(arg)) {
-                            inputBigramXml = filename;
                         } else if (OPTION_OUTPUT_BINARY.equals(arg)) {
-                            outputBinary = filename;
-                        } else if (OPTION_OUTPUT_XML.equals(arg)) {
-                            outputXml = filename;
+                            outputBinary = argValue;
                         } else if (OPTION_OUTPUT_COMBINED.equals(arg)) {
-                            outputCombined = filename;
+                            outputCombined = argValue;
+                        } else if (OPTION_CODE_POINT_TABLE.equals(arg)) {
+                            if (OPTION_CODE_POINT_TABLE_OFF.equals(argValue)) {
+                                codePointTableMode = Ver2DictEncoder.CODE_POINT_TABLE_OFF;
+                            } else if (OPTION_CODE_POINT_TABLE_ON.equals(argValue)) {
+                                codePointTableMode = Ver2DictEncoder.CODE_POINT_TABLE_ON;
+                            } else {
+                                throw new IllegalArgumentException(
+                                        "Unknown argument to -t option : " + argValue);
+                            }
                         } else {
                             throw new IllegalArgumentException("Unknown option : " + arg);
                         }
                     }
                 } else {
-                    if (null == inputBinary && null == inputUnigramXml) {
+                    if (null == inputBinary) {
                         if (BinaryDictDecoderUtils.isBinaryDictionary(arg)) {
                             inputBinary = arg;
                         } else if (CombinedInputOutput.isCombinedDictionary(arg)) {
                             inputCombined = arg;
                         } else {
-                            inputUnigramXml = arg;
+                            throw new IllegalArgumentException("Unknown format for file " + arg);
                         }
                     } else if (null == outputBinary) {
                         outputBinary = arg;
@@ -218,20 +187,16 @@
 
             mInputBinary = inputBinary;
             mInputCombined = inputCombined;
-            mInputUnigramXml = inputUnigramXml;
-            mInputShortcutXml = inputShortcutXml;
-            mInputBigramXml = inputBigramXml;
             mOutputBinary = outputBinary;
-            mOutputXml = outputXml;
             mOutputCombined = outputCombined;
             mOutputBinaryFormatVersion = outputBinaryFormatVersion;
+            mCodePointTableMode = codePointTableMode;
             checkIntegrity();
         }
     }
 
     public static void main(String[] args)
-            throws FileNotFoundException, ParserConfigurationException, SAXException, IOException,
-            UnsupportedFormatException {
+            throws FileNotFoundException, IOException, UnsupportedFormatException {
         final Arguments parsedArgs = new Arguments(args);
         FusionDictionary dictionary = readInputFromParsedArgs(parsedArgs);
         writeOutputToParsedArgs(parsedArgs, dictionary);
@@ -244,14 +209,11 @@
      * @return the read dictionary.
      */
     private static FusionDictionary readInputFromParsedArgs(final Arguments args)
-            throws IOException, UnsupportedFormatException, ParserConfigurationException,
-            SAXException, FileNotFoundException {
+            throws IOException, UnsupportedFormatException, FileNotFoundException {
         if (null != args.mInputBinary) {
             return readBinaryFile(args.mInputBinary);
         } else if (null != args.mInputCombined) {
             return readCombinedFile(args.mInputCombined);
-        } else if (null != args.mInputUnigramXml) {
-            return readXmlFile(args.mInputUnigramXml, args.mInputShortcutXml, args.mInputBigramXml);
         } else {
             throw new RuntimeException("No input file specified");
         }
@@ -290,38 +252,6 @@
         }
     }
 
-    private static BufferedInputStream getBufferedFileInputStream(final String filename)
-            throws FileNotFoundException {
-        if (filename == null) {
-            return null;
-        }
-        return new BufferedInputStream(new FileInputStream(filename));
-    }
-
-    /**
-     * Read a dictionary from a unigram XML file, and optionally a bigram XML file.
-     *
-     * @param unigramXmlFilename the name of the unigram XML file. May not be null.
-     * @param shortcutXmlFilename the name of the shortcut/whitelist XML file, or null if none.
-     * @param bigramXmlFilename the name of the bigram XML file. Pass null if there are no bigrams.
-     * @return the read dictionary.
-     * @throws FileNotFoundException if one of the files can't be found
-     * @throws SAXException if one or more of the XML files is not well-formed
-     * @throws IOException if one the input files can't be read
-     * @throws ParserConfigurationException if the system can't create a SAX parser
-     */
-    private static FusionDictionary readXmlFile(final String unigramXmlFilename,
-            final String shortcutXmlFilename, final String bigramXmlFilename)
-            throws FileNotFoundException, SAXException, IOException, ParserConfigurationException {
-        try (
-            final BufferedInputStream unigrams = getBufferedFileInputStream(unigramXmlFilename);
-            final BufferedInputStream shortcuts = getBufferedFileInputStream(shortcutXmlFilename);
-            final BufferedInputStream bigrams = getBufferedFileInputStream(bigramXmlFilename);
-        ) {
-            return XmlDictInputOutput.readDictionaryXml(unigrams, shortcuts, bigrams);
-        }
-    }
-
     /**
      * Invoke the right output method according to args.
      *
@@ -335,10 +265,8 @@
             throws FileNotFoundException, IOException, UnsupportedFormatException,
             IllegalArgumentException {
         if (null != args.mOutputBinary) {
-            writeBinaryDictionary(args.mOutputBinary, dict, args.mOutputBinaryFormatVersion);
-        }
-        if (null != args.mOutputXml) {
-            writeXmlDictionary(args.mOutputXml, dict);
+            writeBinaryDictionary(args.mOutputBinary, dict, args.mOutputBinaryFormatVersion,
+                    args.mCodePointTableMode);
         }
         if (null != args.mOutputCombined) {
             writeCombinedDictionary(args.mOutputCombined, dict);
@@ -351,39 +279,26 @@
      * @param outputFilename the name of the file to write to.
      * @param dict the dictionary to write.
      * @param version the binary format version to use.
+     * @param codePointTableMode the value to decide how we treat the code point table.
      * @throws FileNotFoundException if the output file can't be created.
      * @throws IOException if the output file can't be written to.
      */
     private static void writeBinaryDictionary(final String outputFilename,
-            final FusionDictionary dict, final int version)
+            final FusionDictionary dict, final int version, final int codePointTableMode)
             throws FileNotFoundException, IOException, UnsupportedFormatException {
         final File outputFile = new File(outputFilename);
         final FormatSpec.FormatOptions formatOptions = new FormatSpec.FormatOptions(version);
         final DictEncoder dictEncoder;
         if (version == FormatSpec.VERSION4) {
+            // VERSION4 doesn't use the code point table.
             dictEncoder = new Ver4DictEncoder(outputFile);
         } else {
-            dictEncoder = new Ver2DictEncoder(outputFile);
+            dictEncoder = new Ver2DictEncoder(outputFile, codePointTableMode);
         }
         dictEncoder.writeDictionary(dict, formatOptions);
     }
 
     /**
-     * Write the dictionary in XML format to the specified filename.
-     *
-     * @param outputFilename the name of the file to write to.
-     * @param dict the dictionary to write.
-     * @throws FileNotFoundException if the output file can't be created.
-     * @throws IOException if the output file can't be written to.
-     */
-    private static void writeXmlDictionary(final String outputFilename,
-            final FusionDictionary dict) throws FileNotFoundException, IOException {
-        try (final BufferedWriter writer = new BufferedWriter(new FileWriter(outputFilename))) {
-            XmlDictInputOutput.writeDictionaryXml(writer, dict);
-        }
-    }
-
-    /**
      * Write the dictionary in the combined format to the specified filename.
      *
      * @param outputFilename the name of the file to write to.
diff --git a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Diff.java b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Diff.java
index 94d1ae8..f97fbef 100644
--- a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Diff.java
+++ b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Diff.java
@@ -128,14 +128,14 @@
                             + word0Property.mIsNotAWord + " -> " + word1PtNode.getIsNotAWord());
                     hasDifferences = true;
                 }
-                if (word0Property.mIsBlacklistEntry != word1PtNode.getIsBlacklistEntry()) {
-                    System.out.println("Blacklist: " + word0Property.mWord + " "
-                            + word0Property.mIsBlacklistEntry + " -> "
-                            + word1PtNode.getIsBlacklistEntry());
+                if (word0Property.mIsPossiblyOffensive != word1PtNode.getIsPossiblyOffensive()) {
+                    System.out.println("Possibly-offensive: " + word0Property.mWord + " "
+                            + word0Property.mIsPossiblyOffensive + " -> "
+                            + word1PtNode.getIsPossiblyOffensive());
                     hasDifferences = true;
                 }
                 hasDifferences |= hasAttributesDifferencesAndPrintThemIfAny(word0Property.mWord,
-                        "Bigram", word0Property.mBigrams, word1PtNode.getBigrams());
+                        "Bigram", word0Property.getBigrams(), word1PtNode.getBigrams());
                 hasDifferences |= hasAttributesDifferencesAndPrintThemIfAny(word0Property.mWord,
                         "Shortcut", word0Property.mShortcutTargets,
                         word1PtNode.getShortcutTargets());
diff --git a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Header.java b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Header.java
new file mode 100644
index 0000000..aa1762f
--- /dev/null
+++ b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Header.java
@@ -0,0 +1,68 @@
+/**
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package com.android.inputmethod.latin.dicttool;
+
+import com.android.inputmethod.latin.dicttool.BinaryDictOffdeviceUtils.DecoderChainSpec;
+import com.android.inputmethod.latin.makedict.DictionaryHeader;
+import com.android.inputmethod.latin.makedict.UnsupportedFormatException;
+
+import java.io.File;
+import java.util.Arrays;
+
+public class Header extends Dicttool.Command {
+    public static final String COMMAND = "header";
+
+    public Header() {
+    }
+
+    @Override
+    public String getHelp() {
+        return COMMAND + " <filename>: prints the header contents of a dictionary file";
+    }
+
+    @Override
+    public void run() throws UnsupportedFormatException {
+        final boolean plumbing;
+        if (mArgs.length > 0 && "-p".equals(mArgs[0])) {
+            plumbing = true;
+            mArgs = Arrays.copyOfRange(mArgs, 1, mArgs.length);
+        } else {
+            plumbing = false;
+        }
+        if (mArgs.length < 1) {
+            throw new RuntimeException("Not enough arguments for command " + COMMAND);
+        }
+        final String filename = mArgs[0];
+        final File dictFile = new File(filename);
+        final DecoderChainSpec<DictionaryHeader> spec =
+                BinaryDictOffdeviceUtils.decodeDictionaryForProcess(dictFile,
+                        new BinaryDictOffdeviceUtils.HeaderReaderProcessor());
+        if (null == spec) {
+            throw new UnsupportedFormatException(filename
+                    + " doesn't seem to be a valid version 2 dictionary file");
+        }
+
+        final DictionaryHeader header = spec.mResult;
+        System.out.println("Dictionary : " + dictFile.getAbsolutePath());
+        System.out.println("Size : " + dictFile.length() + " bytes");
+        System.out.println("Format : Binary dictionary format");
+        System.out.println("Format version : " + header.mFormatOptions.mVersion);
+        System.out.println("Packaging : " + spec.describeChain());
+        System.out.println("Header attributes :");
+        System.out.print(header.mDictionaryOptions.toString(2 /* indentCount */, plumbing));
+    }
+}
diff --git a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Info.java b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Info.java
index 9b2567f..b8a64e3 100644
--- a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Info.java
+++ b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Info.java
@@ -45,8 +45,8 @@
         int whitelistCount = 0;
         for (final WordProperty wordProperty : dict) {
             ++wordCount;
-            if (null != wordProperty.mBigrams) {
-                bigramCount += wordProperty.mBigrams.size();
+            if (wordProperty.mHasNgrams) {
+                bigramCount += wordProperty.mNgrams.size();
             }
             if (null != wordProperty.mShortcutTargets) {
                 shortcutCount += wordProperty.mShortcutTargets.size();
@@ -64,8 +64,7 @@
                 + " whitelist entries)");
     }
 
-    private static void showWordInfo(final FusionDictionary dict, final String word,
-            final boolean plumbing) {
+    private static void showWordInfo(final FusionDictionary dict, final String word) {
         final PtNode ptNode = FusionDictionary.findWordInTree(dict.mRootNodeArray, word);
         if (null == ptNode) {
             System.out.println(word + " is not in the dictionary");
@@ -76,8 +75,8 @@
         if (ptNode.getIsNotAWord()) {
             System.out.println("  Is not a word");
         }
-        if (ptNode.getIsBlacklistEntry()) {
-            System.out.println("  Is a blacklist entry");
+        if (ptNode.getIsPossiblyOffensive()) {
+            System.out.println("  Is possibly offensive");
         }
         final ArrayList<WeightedString> shortcutTargets = ptNode.getShortcutTargets();
         if (null == shortcutTargets || shortcutTargets.isEmpty()) {
@@ -124,7 +123,7 @@
             showInfo(dict, plumbing);
         } else {
             for (int i = 1; i < mArgs.length; ++i) {
-                showWordInfo(dict, mArgs[i], plumbing);
+                showWordInfo(dict, mArgs[i]);
             }
         }
     }
diff --git a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Makedict.java b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Makedict.java
index 808e1d4..0b1fb88 100644
--- a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Makedict.java
+++ b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Makedict.java
@@ -20,8 +20,6 @@
 
 import java.io.FileNotFoundException;
 import java.io.IOException;
-import javax.xml.parsers.ParserConfigurationException;
-import org.xml.sax.SAXException;
 
 public class Makedict extends Dicttool.Command {
     public static final String COMMAND = "makedict";
@@ -35,8 +33,7 @@
     }
 
     @Override
-    public void run() throws FileNotFoundException, IOException, ParserConfigurationException,
-            SAXException, UnsupportedFormatException {
+    public void run() throws FileNotFoundException, IOException, UnsupportedFormatException {
         DictionaryMaker.main(mArgs);
     }
 }
diff --git a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Package.java b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Package.java
index 1f67982..3efa10a 100644
--- a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Package.java
+++ b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Package.java
@@ -16,10 +16,10 @@
 
 package com.android.inputmethod.latin.dicttool;
 
-import java.io.BufferedInputStream;
+import com.android.inputmethod.latin.makedict.DictionaryHeader;
+
 import java.io.BufferedOutputStream;
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
@@ -79,16 +79,16 @@
             if (mArgs.length != 2) {
                 throw new RuntimeException("Too many/too few arguments for command " + COMMAND);
             }
-            final BinaryDictOffdeviceUtils.DecoderChainSpec decodedSpec =
-                    BinaryDictOffdeviceUtils.getRawDictionaryOrNull(new File(mArgs[0]));
+            final BinaryDictOffdeviceUtils.DecoderChainSpec<DictionaryHeader> decodedSpec =
+                    BinaryDictOffdeviceUtils.decodeDictionaryForProcess(new File(mArgs[0]),
+                            new BinaryDictOffdeviceUtils.HeaderReaderProcessor());
             if (null == decodedSpec) {
                 System.out.println(mArgs[0] + " does not seem to be a dictionary");
                 return;
             }
             System.out.println("Packaging : " + decodedSpec.describeChain());
-            System.out.println("Uncompressed size : " + decodedSpec.mFile.length());
             try (
-                final InputStream input = getFileInputStream(decodedSpec.mFile);
+                final InputStream input = decodedSpec.getStream(new File(mArgs[0]));
                 final OutputStream output = new BufferedOutputStream(
                         getFileOutputStreamOrStdOut(mArgs[1]))
             ) {
diff --git a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Test.java b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Test.java
index b6383d7..e2dd519 100644
--- a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Test.java
+++ b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/Test.java
@@ -16,10 +16,10 @@
 
 package com.android.inputmethod.latin.dicttool;
 
+import com.android.inputmethod.latin.common.FileUtils;
 import com.android.inputmethod.latin.makedict.BinaryDictDecoderEncoderTests;
 import com.android.inputmethod.latin.makedict.BinaryDictEncoderFlattenTreeTests;
 import com.android.inputmethod.latin.makedict.FusionDictionaryTest;
-import com.android.inputmethod.latin.utils.FileUtils;
 
 import java.io.File;
 import java.io.IOException;
diff --git a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/XmlDictInputOutput.java b/tools/dicttool/src/com/android/inputmethod/latin/dicttool/XmlDictInputOutput.java
deleted file mode 100644
index bdec447..0000000
--- a/tools/dicttool/src/com/android/inputmethod/latin/dicttool/XmlDictInputOutput.java
+++ /dev/null
@@ -1,379 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.android.inputmethod.latin.dicttool;
-
-import com.android.inputmethod.latin.makedict.FormatSpec.DictionaryOptions;
-import com.android.inputmethod.latin.makedict.FusionDictionary;
-import com.android.inputmethod.latin.makedict.FusionDictionary.PtNodeArray;
-import com.android.inputmethod.latin.makedict.ProbabilityInfo;
-import com.android.inputmethod.latin.makedict.WeightedString;
-import com.android.inputmethod.latin.makedict.WordProperty;
-
-import org.xml.sax.Attributes;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.TreeSet;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-/**
- * Reads and writes XML files for a FusionDictionary.
- *
- * All functions in this class are static.
- */
-public class XmlDictInputOutput {
-
-    private static final String ROOT_TAG = "wordlist";
-    private static final String WORD_TAG = "w";
-    private static final String BIGRAM_TAG = "bigram";
-    private static final String SHORTCUT_TAG = "shortcut";
-    private static final String PROBABILITY_ATTR = "f";
-    private static final String WORD_ATTR = "word";
-    private static final String NOT_A_WORD_ATTR = "not_a_word";
-
-    /**
-     * SAX handler for a unigram XML file.
-     */
-    static private class UnigramHandler extends DefaultHandler {
-        // Parser states
-        private static final int START = 1;
-        private static final int WORD = 2;
-        private static final int UNKNOWN = 3;
-        private static final int SHORTCUT_ONLY_WORD_PROBABILITY = 1;
-
-        FusionDictionary mDictionary;
-        int mState; // the state of the parser
-        int mFreq; // the currently read freq
-        String mWord; // the current word
-        final HashMap<String, ArrayList<WeightedString>> mShortcutsMap;
-
-        /**
-         * Create the handler.
-         *
-         * @param shortcuts the shortcuts as a map. This may be empty, but may not be null.
-         */
-        public UnigramHandler(final HashMap<String, ArrayList<WeightedString>> shortcuts) {
-            mDictionary = null;
-            mShortcutsMap = shortcuts;
-            mWord = "";
-            mState = START;
-            mFreq = 0;
-        }
-
-        public FusionDictionary getFinalDictionary() {
-            final FusionDictionary dict = mDictionary;
-            for (final String shortcutOnly : mShortcutsMap.keySet()) {
-                if (dict.hasWord(shortcutOnly)) continue;
-                dict.add(shortcutOnly, new ProbabilityInfo(SHORTCUT_ONLY_WORD_PROBABILITY),
-                        mShortcutsMap.get(shortcutOnly), true /* isNotAWord */);
-            }
-            mDictionary = null;
-            mShortcutsMap.clear();
-            mWord = "";
-            mState = START;
-            mFreq = 0;
-            return dict;
-        }
-
-        @Override
-        public void startElement(String uri, String localName, String qName, Attributes attrs) {
-            if (WORD_TAG.equals(localName)) {
-                mState = WORD;
-                mWord = "";
-                for (int attrIndex = 0; attrIndex < attrs.getLength(); ++attrIndex) {
-                    final String attrName = attrs.getLocalName(attrIndex);
-                    if (PROBABILITY_ATTR.equals(attrName)) {
-                        mFreq = Integer.parseInt(attrs.getValue(attrIndex));
-                    }
-                }
-            } else if (ROOT_TAG.equals(localName)) {
-                final HashMap<String, String> attributes = new HashMap<>();
-                for (int attrIndex = 0; attrIndex < attrs.getLength(); ++attrIndex) {
-                    final String attrName = attrs.getLocalName(attrIndex);
-                    attributes.put(attrName, attrs.getValue(attrIndex));
-                }
-                mDictionary = new FusionDictionary(new PtNodeArray(),
-                        new DictionaryOptions(attributes));
-            } else {
-                mState = UNKNOWN;
-            }
-        }
-
-        @Override
-        public void characters(char[] ch, int start, int length) {
-            if (WORD == mState) {
-                // The XML parser is free to return text in arbitrary chunks one after the
-                // other. In particular, this happens in some implementations when it finds
-                // an escape code like "&amp;".
-                mWord += String.copyValueOf(ch, start, length);
-            }
-        }
-
-        @Override
-        public void endElement(String uri, String localName, String qName) {
-            if (WORD == mState) {
-                mDictionary.add(mWord, new ProbabilityInfo(mFreq), mShortcutsMap.get(mWord),
-                        false /* isNotAWord */);
-                mState = START;
-            }
-        }
-    }
-
-    static private class AssociativeListHandler extends DefaultHandler {
-        private final String SRC_TAG;
-        private final String SRC_ATTRIBUTE;
-        private final String DST_TAG;
-        private final String DST_ATTRIBUTE;
-        private final String DST_FREQ;
-
-        // In this version of the XML file, the bigram frequency is given as an int 0..XML_MAX
-        private final static int XML_MAX = 256;
-        // In memory and in the binary dictionary the bigram frequency is 0..MEMORY_MAX
-        private final static int MEMORY_MAX = 256;
-        private final static int XML_TO_MEMORY_RATIO = XML_MAX / MEMORY_MAX;
-
-        private String mSrc;
-        private final HashMap<String, ArrayList<WeightedString>> mAssocMap;
-
-        public AssociativeListHandler(final String srcTag, final String srcAttribute,
-                final String dstTag, final String dstAttribute, final String dstFreq) {
-            SRC_TAG = srcTag;
-            SRC_ATTRIBUTE = srcAttribute;
-            DST_TAG = dstTag;
-            DST_ATTRIBUTE = dstAttribute;
-            DST_FREQ = dstFreq;
-            mSrc = null;
-            mAssocMap = new HashMap<>();
-        }
-
-        @Override
-        public void startElement(String uri, String localName, String qName, Attributes attrs) {
-            if (SRC_TAG.equals(localName)) {
-                mSrc = attrs.getValue(uri, SRC_ATTRIBUTE);
-            } else if (DST_TAG.equals(localName)) {
-                String dst = attrs.getValue(uri, DST_ATTRIBUTE);
-                int freq = getValueFromFreqString(attrs.getValue(uri, DST_FREQ));
-                WeightedString bigram = new WeightedString(dst, freq / XML_TO_MEMORY_RATIO);
-                ArrayList<WeightedString> bigramList = mAssocMap.get(mSrc);
-                if (null == bigramList) bigramList = new ArrayList<>();
-                bigramList.add(bigram);
-                mAssocMap.put(mSrc, bigramList);
-            }
-        }
-
-        protected int getValueFromFreqString(final String freqString) {
-            return Integer.parseInt(freqString);
-        }
-
-        // This may return an empty map, but will never return null.
-        public HashMap<String, ArrayList<WeightedString>> getAssocMap() {
-            return mAssocMap;
-        }
-    }
-
-    /**
-     * SAX handler for a bigram XML file.
-     */
-    static private class BigramHandler extends AssociativeListHandler {
-        private final static String BIGRAM_W1_TAG = "bi";
-        private final static String BIGRAM_W2_TAG = "w";
-        private final static String BIGRAM_W1_ATTRIBUTE = "w1";
-        private final static String BIGRAM_W2_ATTRIBUTE = "w2";
-        private final static String BIGRAM_FREQ_ATTRIBUTE = "p";
-
-        public BigramHandler() {
-            super(BIGRAM_W1_TAG, BIGRAM_W1_ATTRIBUTE, BIGRAM_W2_TAG, BIGRAM_W2_ATTRIBUTE,
-                    BIGRAM_FREQ_ATTRIBUTE);
-        }
-
-        // As per getAssocMap(), this never returns null.
-        public HashMap<String, ArrayList<WeightedString>> getBigramMap() {
-            return getAssocMap();
-        }
-    }
-
-    /**
-     * SAX handler for a shortcut & whitelist XML file.
-     */
-    static private class ShortcutAndWhitelistHandler extends AssociativeListHandler {
-        private final static String ENTRY_TAG = "entry";
-        private final static String ENTRY_ATTRIBUTE = "shortcut";
-        private final static String TARGET_TAG = "target";
-        private final static String REPLACEMENT_ATTRIBUTE = "replacement";
-        private final static String TARGET_PRIORITY_ATTRIBUTE = "priority";
-        private final static String WHITELIST_MARKER = "whitelist";
-        private final static int WHITELIST_FREQ_VALUE = 15;
-        private final static int MIN_FREQ = 0;
-        private final static int MAX_FREQ = 14;
-
-        public ShortcutAndWhitelistHandler() {
-            super(ENTRY_TAG, ENTRY_ATTRIBUTE, TARGET_TAG, REPLACEMENT_ATTRIBUTE,
-                    TARGET_PRIORITY_ATTRIBUTE);
-        }
-
-        @Override
-        protected int getValueFromFreqString(final String freqString) {
-            if (WHITELIST_MARKER.equals(freqString)) {
-                return WHITELIST_FREQ_VALUE;
-            }
-            final int intValue = super.getValueFromFreqString(freqString);
-            if (intValue < MIN_FREQ || intValue > MAX_FREQ) {
-                throw new RuntimeException("Shortcut freq out of range. Accepted range is "
-                        + MIN_FREQ + ".." + MAX_FREQ);
-            }
-            return intValue;
-        }
-
-        // As per getAssocMap(), this never returns null.
-        public HashMap<String, ArrayList<WeightedString>> getShortcutAndWhitelistMap() {
-            return getAssocMap();
-        }
-    }
-
-    /**
-     * Basic test to find out whether the file is in the unigram XML format or not.
-     *
-     * Concretely this only tests the header line.
-     *
-     * @param filename The name of the file to test.
-     * @return true if the file is in the unigram XML format, false otherwise
-     */
-    public static boolean isXmlUnigramDictionary(final String filename) {
-        try (final BufferedReader reader = new BufferedReader(
-                new InputStreamReader(new FileInputStream(filename), "UTF-8"))) {
-            final String firstLine = reader.readLine();
-            return firstLine.matches("^\\s*<wordlist .*>\\s*$");
-        } catch (final IOException e) {
-            return false;
-        }
-    }
-
-    /**
-     * Reads a dictionary from an XML file.
-     *
-     * This is the public method that will parse an XML file and return the corresponding memory
-     * representation.
-     *
-     * @param unigrams the file to read the data from.
-     * @param shortcuts the file to read the shortcuts & whitelist from, or null.
-     * @param bigrams the file to read the bigrams from, or null.
-     * @return the in-memory representation of the dictionary.
-     */
-    public static FusionDictionary readDictionaryXml(final BufferedInputStream unigrams,
-            final BufferedInputStream shortcuts, final BufferedInputStream bigrams)
-            throws SAXException, IOException, ParserConfigurationException {
-        final SAXParserFactory factory = SAXParserFactory.newInstance();
-        factory.setNamespaceAware(true);
-        final SAXParser parser = factory.newSAXParser();
-        final BigramHandler bigramHandler = new BigramHandler();
-        if (null != bigrams) parser.parse(bigrams, bigramHandler);
-
-        final ShortcutAndWhitelistHandler shortcutAndWhitelistHandler =
-                new ShortcutAndWhitelistHandler();
-        if (null != shortcuts) parser.parse(shortcuts, shortcutAndWhitelistHandler);
-
-        final UnigramHandler unigramHandler =
-                new UnigramHandler(shortcutAndWhitelistHandler.getShortcutAndWhitelistMap());
-        parser.parse(unigrams, unigramHandler);
-        final FusionDictionary dict = unigramHandler.getFinalDictionary();
-        final HashMap<String, ArrayList<WeightedString>> bigramMap = bigramHandler.getBigramMap();
-        for (final String firstWord : bigramMap.keySet()) {
-            if (!dict.hasWord(firstWord)) continue;
-            final ArrayList<WeightedString> bigramList = bigramMap.get(firstWord);
-            for (final WeightedString bigram : bigramList) {
-                if (!dict.hasWord(bigram.mWord)) continue;
-                dict.setBigram(firstWord, bigram.mWord, bigram.mProbabilityInfo);
-            }
-        }
-        return dict;
-    }
-
-    /**
-     * Reads a dictionary in the first, legacy XML format
-     *
-     * This method reads data from the parser and creates a new FusionDictionary with it.
-     * The format parsed by this method is the format used before Ice Cream Sandwich,
-     * which has no support for bigrams or shortcuts/whitelist.
-     * It is important to note that this method expects the parser to have already eaten
-     * the first, all-encompassing tag.
-     *
-     * @param xpp the parser to read the data from.
-     * @return the parsed dictionary.
-     */
-
-    /**
-     * Writes a dictionary to an XML file.
-     *
-     * The output format is the "second" format, which supports bigrams and shortcuts/whitelist.
-     *
-     * @param destination a destination stream to write to.
-     * @param dict the dictionary to write.
-     */
-    public static void writeDictionaryXml(final BufferedWriter destination,
-            final FusionDictionary dict) throws IOException {
-        final TreeSet<WordProperty> wordPropertiesInDict = new TreeSet<>();
-        for (WordProperty wordProperty : dict) {
-            wordPropertiesInDict.add(wordProperty);
-        }
-        // TODO: use an XMLSerializer if this gets big
-        destination.write("<wordlist format=\"2\"");
-        for (final String key : dict.mOptions.mAttributes.keySet()) {
-            final String value = dict.mOptions.mAttributes.get(key);
-            destination.write(" " + key + "=\"" + value + "\"");
-        }
-        destination.write(">\n");
-        destination.write("<!-- Warning: there is no code to read this format yet. -->\n");
-        for (WordProperty wordProperty : wordPropertiesInDict) {
-            destination.write("  <" + WORD_TAG + " " + WORD_ATTR + "=\"" + wordProperty.mWord
-                    + "\" " + PROBABILITY_ATTR + "=\"" + wordProperty.getProbability()
-                    + (wordProperty.mIsNotAWord ? "\" " + NOT_A_WORD_ATTR + "=\"true" : "")
-                    + "\">");
-            if (null != wordProperty.mShortcutTargets) {
-                destination.write("\n");
-                for (WeightedString target : wordProperty.mShortcutTargets) {
-                    destination.write("    <" + SHORTCUT_TAG + " " + PROBABILITY_ATTR + "=\""
-                            + target.getProbability() + "\">" + target.mWord + "</" + SHORTCUT_TAG
-                            + ">\n");
-                }
-                destination.write("  ");
-            }
-            if (null != wordProperty.mBigrams) {
-                destination.write("\n");
-                for (WeightedString bigram : wordProperty.mBigrams) {
-                    destination.write("    <" + BIGRAM_TAG + " " + PROBABILITY_ATTR + "=\""
-                            + bigram.getProbability() + "\">" + bigram.mWord
-                            + "</" + BIGRAM_TAG + ">\n");
-                }
-                destination.write("  ");
-            }
-            destination.write("</" + WORD_TAG + ">\n");
-        }
-        destination.write("</wordlist>\n");
-        destination.close();
-    }
-}
diff --git a/tools/dicttool/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java b/tools/dicttool/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
index a4ad6b5..dcc4e19 100644
--- a/tools/dicttool/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
+++ b/tools/dicttool/src/com/android/inputmethod/latin/personalization/PersonalizationHelper.java
@@ -16,6 +16,7 @@
 
 package com.android.inputmethod.latin.personalization;
 
+@SuppressWarnings("unused")
 public class PersonalizationHelper {
     public static void currentTimeChangedForTesting(final int currentTimestamp) {
     }
diff --git a/tools/dicttool/tests/com/android/inputmethod/latin/dicttool/BinaryDictOffdeviceUtilsTests.java b/tools/dicttool/tests/com/android/inputmethod/latin/dicttool/BinaryDictOffdeviceUtilsTests.java
index 0236a44..e68aeb0 100644
--- a/tools/dicttool/tests/com/android/inputmethod/latin/dicttool/BinaryDictOffdeviceUtilsTests.java
+++ b/tools/dicttool/tests/com/android/inputmethod/latin/dicttool/BinaryDictOffdeviceUtilsTests.java
@@ -16,10 +16,17 @@
 
 package com.android.inputmethod.latin.dicttool;
 
+import com.android.inputmethod.latin.common.CodePointUtils;
+import com.android.inputmethod.latin.dicttool.BinaryDictOffdeviceUtils;
+import com.android.inputmethod.latin.dicttool.Compress;
+import com.android.inputmethod.latin.dicttool.Crypt;
+import com.android.inputmethod.latin.dicttool.BinaryDictOffdeviceUtils.DecoderChainSpec;
 import com.android.inputmethod.latin.makedict.BinaryDictIOUtils;
+import com.android.inputmethod.latin.makedict.BinaryDictUtils;
 import com.android.inputmethod.latin.makedict.DictDecoder;
 import com.android.inputmethod.latin.makedict.DictEncoder;
 import com.android.inputmethod.latin.makedict.DictionaryHeader;
+import com.android.inputmethod.latin.makedict.FormatSpec;
 import com.android.inputmethod.latin.makedict.FormatSpec.DictionaryOptions;
 import com.android.inputmethod.latin.makedict.FormatSpec.FormatOptions;
 import com.android.inputmethod.latin.makedict.FusionDictionary;
@@ -35,13 +42,37 @@
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Random;
+import java.util.Set;
 
 /**
  * Unit tests for BinaryDictOffdeviceUtils
  */
 public class BinaryDictOffdeviceUtilsTests extends TestCase {
     private static final int TEST_FREQ = 37; // Some arbitrary value unlikely to happen by chance
+    private static final int CODE_POINT_SET_SIZE = 300;
+    final Random mRandom;
+    private static final ArrayList<String> sWords = new ArrayList<>();
+
+    public BinaryDictOffdeviceUtilsTests(final long seed, final int maxUnigrams) {
+        super();
+        mRandom = new Random(seed);
+        sWords.clear();
+        generateWords(maxUnigrams, mRandom);
+    }
+
+    private static void generateWords(final int maxUnigrams, final Random random) {
+        final int[] codePointSet = CodePointUtils.generateCodePointSet(
+                CODE_POINT_SET_SIZE, random);
+        final Set<String> wordSet = new HashSet<>();
+        while (wordSet.size() < maxUnigrams) {
+            wordSet.add(CodePointUtils.generateWord(random, codePointSet));
+        }
+        sWords.addAll(wordSet);
+    }
 
     public void testGetRawDictWorks() throws IOException, UnsupportedFormatException {
         final String VERSION = "1";
@@ -54,31 +85,31 @@
         testOptions.mAttributes.put(DictionaryHeader.DICTIONARY_LOCALE_KEY, LOCALE);
         testOptions.mAttributes.put(DictionaryHeader.DICTIONARY_ID_KEY, ID);
         final FusionDictionary dict = new FusionDictionary(new PtNodeArray(), testOptions);
-        dict.add("foo", new ProbabilityInfo(TEST_FREQ), null, false /* isNotAWord */);
-        dict.add("fta", new ProbabilityInfo(1), null, false /* isNotAWord */);
-        dict.add("ftb", new ProbabilityInfo(1), null, false /* isNotAWord */);
-        dict.add("bar", new ProbabilityInfo(1), null, false /* isNotAWord */);
-        dict.add("fool", new ProbabilityInfo(1), null, false /* isNotAWord */);
+        dict.add("foo", new ProbabilityInfo(TEST_FREQ), null, false /* isNotAWord */,
+                false /* isPossiblyOffensive */);
+        dict.add("fta", new ProbabilityInfo(1), null, false /* isNotAWord */,
+                false /* isPossiblyOffensive */);
+        dict.add("ftb", new ProbabilityInfo(1), null, false /* isNotAWord */,
+                false /* isPossiblyOffensive */);
+        dict.add("bar", new ProbabilityInfo(1), null, false /* isNotAWord */,
+                false /* isPossiblyOffensive */);
+        dict.add("fool", new ProbabilityInfo(1), null, false /* isNotAWord */,
+                false /* isPossiblyOffensive */);
 
         final File dst = File.createTempFile("testGetRawDict", ".tmp");
         dst.deleteOnExit();
         try (final OutputStream out = Compress.getCompressedStream(
-                Compress.getCompressedStream(
-                        Compress.getCompressedStream(
-                                new BufferedOutputStream(new FileOutputStream(dst)))))) {
+                new BufferedOutputStream(new FileOutputStream(dst)))) {
             final DictEncoder dictEncoder = new Ver2DictEncoder(out);
-            dictEncoder.writeDictionary(dict, new FormatOptions(2, false));
+            dictEncoder.writeDictionary(dict, new FormatOptions(FormatSpec.VERSION202, false));
         }
 
         // Test for an actually compressed dictionary and its contents
-        final BinaryDictOffdeviceUtils.DecoderChainSpec decodeSpec =
+        final BinaryDictOffdeviceUtils.DecoderChainSpec<File> decodeSpec =
                 BinaryDictOffdeviceUtils.getRawDictionaryOrNull(dst);
-        for (final String step : decodeSpec.mDecoderSpec) {
-            assertEquals("Wrong decode spec", BinaryDictOffdeviceUtils.COMPRESSION, step);
-        }
-        assertEquals("Wrong decode spec", 3, decodeSpec.mDecoderSpec.size());
-        final DictDecoder dictDecoder = BinaryDictIOUtils.getDictDecoder(decodeSpec.mFile, 0,
-                decodeSpec.mFile.length());
+        assertEquals("Wrong decode spec", "raw > compression", decodeSpec.describeChain());
+        final DictDecoder dictDecoder = BinaryDictIOUtils.getDictDecoder(decodeSpec.mResult, 0,
+                decodeSpec.mResult.length());
         final FusionDictionary resultDict =
                 dictDecoder.readDictionaryBinary(false /* deleteDictIfBroken */);
         assertEquals("Wrong version attribute", VERSION, resultDict.mOptions.mAttributes.get(
@@ -119,4 +150,63 @@
         assertNull("Wrongly identified data file",
                 BinaryDictOffdeviceUtils.getRawDictionaryOrNull(gzDst));
     }
+
+    public void runTestHeaderReaderProcessorWithOneSpec(final boolean compress, final boolean crypt)
+            throws IOException, UnsupportedFormatException {
+        final String dictName = "testHeaderReaderProcessor";
+        final FormatOptions formatOptions = BinaryDictUtils.STATIC_OPTIONS;
+        final int MAX_NUMBER_OF_OPTIONS_TO_ADD = 5;
+        final HashMap<String, String> options = new HashMap<>();
+        // Required attributes
+        options.put("dictionary", "main:en_US");
+        options.put("locale", "en_US");
+        options.put("version", Integer.toString(mRandom.nextInt()));
+        // Add some random options for test
+        final int numberOfOptionsToAdd = mRandom.nextInt() % (MAX_NUMBER_OF_OPTIONS_TO_ADD + 1);
+        for (int i = 0; i < numberOfOptionsToAdd; ++i) {
+            options.put(sWords.get(2 * i), sWords.get(2 * 1 + 1));
+        }
+        final FusionDictionary dict = new FusionDictionary(new PtNodeArray(),
+                new DictionaryOptions(options));
+
+        for (int i = 0; i < sWords.size(); ++i) {
+            final String word = sWords.get(i);
+            dict.add(word, new ProbabilityInfo(TEST_FREQ), null /* shortcuts */,
+                    false /* isNotAWord */, false /* isPossiblyOffensive */);
+        }
+
+        File file = File.createTempFile(dictName, ".tmp");
+        final DictEncoder dictEncoder = BinaryDictUtils.getDictEncoder(file, formatOptions);
+        dictEncoder.writeDictionary(dict, formatOptions);
+
+        if (compress) {
+            final File rawFile = file;
+            file = File.createTempFile(dictName + ".compress", ".tmp");
+            final Compress.Compressor compressCommand = new Compress.Compressor();
+            compressCommand.setArgs(new String[] { rawFile.getPath(), file.getPath() });
+            compressCommand.run();
+        }
+        if (crypt) {
+            final File rawFile = file;
+            file = File.createTempFile(dictName + ".crypt", ".tmp");
+            final Crypt.Encrypter cryptCommand = new Crypt.Encrypter();
+            cryptCommand.setArgs(new String[] { rawFile.getPath(), file.getPath() });
+            cryptCommand.run();
+        }
+
+        final DecoderChainSpec<DictionaryHeader> spec =
+                BinaryDictOffdeviceUtils.decodeDictionaryForProcess(file,
+                        new BinaryDictOffdeviceUtils.HeaderReaderProcessor());
+        assertNotNull("Can't decode a dictionary we just wrote : " + file, spec);
+        final DictionaryHeader header = spec.mResult;
+        assertEquals("raw" + (crypt ? " > encryption" : "") + (compress ? " > compression" : ""),
+                spec.describeChain());
+        assertEquals(header.mDictionaryOptions.mAttributes, options);
+    }
+
+    public void testHeaderReaderProcessor() throws IOException, UnsupportedFormatException {
+        runTestHeaderReaderProcessorWithOneSpec(false /* compress */, false /* crypt */);
+        runTestHeaderReaderProcessorWithOneSpec(true /* compress */, false /* crypt */);
+        runTestHeaderReaderProcessorWithOneSpec(true /* compress */, true /* crypt */);
+    }
 }
diff --git a/tools/dicttool/tests/com/android/inputmethod/latin/makedict/BinaryDictEncoderFlattenTreeTests.java b/tools/dicttool/tests/com/android/inputmethod/latin/makedict/BinaryDictEncoderFlattenTreeTests.java
index aa228e7..dc9981d 100644
--- a/tools/dicttool/tests/com/android/inputmethod/latin/makedict/BinaryDictEncoderFlattenTreeTests.java
+++ b/tools/dicttool/tests/com/android/inputmethod/latin/makedict/BinaryDictEncoderFlattenTreeTests.java
@@ -33,11 +33,16 @@
     public void testFlattenNodes() {
         final FusionDictionary dict = new FusionDictionary(new PtNodeArray(),
                 new DictionaryOptions(new HashMap<String, String>()));
-        dict.add("foo", new ProbabilityInfo(1), null, false /* isNotAWord */);
-        dict.add("fta", new ProbabilityInfo(1), null, false /* isNotAWord */);
-        dict.add("ftb", new ProbabilityInfo(1), null, false /* isNotAWord */);
-        dict.add("bar", new ProbabilityInfo(1), null, false /* isNotAWord */);
-        dict.add("fool", new ProbabilityInfo(1), null, false /* isNotAWord */);
+        dict.add("foo", new ProbabilityInfo(1), null, false /* isNotAWord */,
+                false /* isPossiblyOffensive */);
+        dict.add("fta", new ProbabilityInfo(1), null, false /* isNotAWord */,
+                false /* isPossiblyOffensive */);
+        dict.add("ftb", new ProbabilityInfo(1), null, false /* isNotAWord */,
+                false /* isPossiblyOffensive */);
+        dict.add("bar", new ProbabilityInfo(1), null, false /* isNotAWord */,
+                false /* isPossiblyOffensive */);
+        dict.add("fool", new ProbabilityInfo(1), null, false /* isNotAWord */,
+                false /* isPossiblyOffensive */);
         final ArrayList<PtNodeArray> result =
                 BinaryDictEncoderUtils.flattenTree(dict.mRootNodeArray);
         assertEquals(4, result.size());
diff --git a/tools/dicttool/tests/com/android/inputmethod/latin/makedict/FusionDictionaryTest.java b/tools/dicttool/tests/com/android/inputmethod/latin/makedict/FusionDictionaryTest.java
index 71f8ac8..1a4f096 100644
--- a/tools/dicttool/tests/com/android/inputmethod/latin/makedict/FusionDictionaryTest.java
+++ b/tools/dicttool/tests/com/android/inputmethod/latin/makedict/FusionDictionaryTest.java
@@ -67,17 +67,18 @@
         }
     }
 
-    private void checkDictionary(final FusionDictionary dict, final ArrayList<String> words,
-            int limit) {
+    private static void checkDictionary(final FusionDictionary dict, final ArrayList<String> words,
+            final int limit) {
         assertNotNull(dict);
+        int count = limit;
         for (final String word : words) {
-            if (--limit < 0) return;
+            if (--count < 0) return;
             final PtNode ptNode = FusionDictionary.findWordInTree(dict.mRootNodeArray, word);
             assertNotNull(ptNode);
         }
     }
 
-    private String dumpWord(final String word) {
+    private static String dumpWord(final String word) {
         final StringBuilder sb = new StringBuilder("");
         for (int i = 0; i < word.length(); i = word.offsetByCodePoints(i, 1)) {
             sb.append(word.codePointAt(i));
@@ -86,7 +87,7 @@
         return sb.toString();
     }
 
-    private void dumpDict(final FusionDictionary dict) {
+    private static void dumpDict(final FusionDictionary dict) {
         for (WordProperty wordProperty : dict) {
             System.out.println("Word " + dumpWord(wordProperty.mWord));
         }
@@ -101,7 +102,8 @@
         prepare(time);
         for (int i = 0; i < sWords.size(); ++i) {
             System.out.println("Adding in pos " + i + " : " + dumpWord(sWords.get(i)));
-            dict.add(sWords.get(i), new ProbabilityInfo(180), null, false);
+            dict.add(sWords.get(i), new ProbabilityInfo(180), null, false,
+                    false /* isPossiblyOffensive */);
             dumpDict(dict);
             checkDictionary(dict, sWords, i);
         }
diff --git a/tools/make-keyboard-text/res/values-az-rAZ/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-az-rAZ/donottranslate-more-keys.xml
index 54aa570..52fe565 100644
--- a/tools/make-keyboard-text/res/values-az-rAZ/donottranslate-more-keys.xml
+++ b/tools/make-keyboard-text/res/values-az-rAZ/donottranslate-more-keys.xml
@@ -18,10 +18,14 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX -->
-    <string name="morekeys_a">&#x00E2;</string>
-    <!-- U+0259: "ə" LATIN SMALL LETTER SCHWA -->
-    <string name="morekeys_e">&#x0259;</string>
+    <!-- This is the same as Turkish -->
+    <!-- U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+         U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+         U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE -->
+    <string name="morekeys_a">&#x00E2;,&#x00E4;,&#x00E1;</string>
+    <!-- U+0259: "ə" LATIN SMALL LETTER SCHWA
+         U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE -->
+    <string name="morekeys_e">&#x0259;,&#x00E9;</string>
     <!-- U+0131: "ı" LATIN SMALL LETTER DOTLESS I
          U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
          U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
@@ -52,8 +56,15 @@
     <string name="morekeys_s">&#x015F;,&#x00DF;,&#x015B;,&#x0161;</string>
     <!-- U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE -->
     <string name="morekeys_g">&#x011F;</string>
+    <!-- U+0148: "ň" LATIN SMALL LETTER N WITH CARON
+         U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE -->
+    <string name="morekeys_n">&#x0148;,&#x00F1;</string>
     <!-- U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
          U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
          U+010D: "č" LATIN SMALL LETTER C WITH CARON -->
     <string name="morekeys_c">&#x00E7;,&#x0107;,&#x010D;</string>
+    <!-- U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE -->
+    <string name="morekeys_y">&#x00FD;</string>
+    <!-- U+017E: "ž" LATIN SMALL LETTER Z WITH CARON -->
+    <string name="morekeys_z">&#x017E;</string>
 </resources>
diff --git a/tools/make-keyboard-text/res/values-bn-rBD/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-bn-rBD/donottranslate-more-keys.xml
new file mode 100644
index 0000000..4955cd4
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-bn-rBD/donottranslate-more-keys.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Label for "switch to alphabetic" key.
+         U+0995: "क" BENGALI LETTER KA
+         U+0996: "ख" BENGALI LETTER KHA
+         U+0997: "ग" BENGALI LETTER GA -->
+    <string name="keylabel_to_alpha">&#x0995;&#x0996;&#x0997;</string>
+    <!-- U+09F3: "৳" BENGALI RUPEE SIGN -->
+    <string name="keyspec_currency">&#x09F3;</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-da/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-da/donottranslate-more-keys.xml
index c22e262..98abb05 100644
--- a/tools/make-keyboard-text/res/values-da/donottranslate-more-keys.xml
+++ b/tools/make-keyboard-text/res/values-da/donottranslate-more-keys.xml
@@ -18,26 +18,30 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+    <!-- U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+         U+00E6: "æ" LATIN SMALL LETTER AE
+         U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
          U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
          U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
          U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
          U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
          U+0101: "ā" LATIN SMALL LETTER A WITH MACRON -->
-    <string name="morekeys_a">&#x00E1;,&#x00E4;,&#x00E0;,&#x00E2;,&#x00E3;,&#x0101;</string>
+    <string name="morekeys_a">&#x00E5;,&#x00E6;,&#x00E1;,&#x00E4;,&#x00E0;,&#x00E2;,&#x00E3;,&#x0101;</string>
     <!-- U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
          U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS -->
     <string name="morekeys_e">&#x00E9;,&#x00EB;</string>
     <!-- U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
          U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS -->
     <string name="morekeys_i">&#x00ED;,&#x00EF;</string>
-    <!-- U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+    <!-- U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+         U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+         U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
          U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
          U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
          U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
          U+0153: "œ" LATIN SMALL LIGATURE OE
          U+014D: "ō" LATIN SMALL LETTER O WITH MACRON -->
-    <string name="morekeys_o">&#x00F3;,&#x00F4;,&#x00F2;,&#x00F5;,&#x0153;,&#x014D;</string>
+    <string name="morekeys_o">&#x00F8;,&#x00F6;,&#x00F3;,&#x00F4;,&#x00F2;,&#x00F5;,&#x0153;,&#x014D;</string>
     <!-- U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
          U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
          U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
diff --git a/tools/make-keyboard-text/res/values-et-rEE/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-et-rEE/donottranslate-more-keys.xml
index 9a8fa3c..79266e8 100644
--- a/tools/make-keyboard-text/res/values-et-rEE/donottranslate-more-keys.xml
+++ b/tools/make-keyboard-text/res/values-et-rEE/donottranslate-more-keys.xml
@@ -72,7 +72,6 @@
          U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
          U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE -->
     <string name="morekeys_n">&#x0146;,&#x00F1;,&#x0144;</string>
-
     <!-- U+010D: "č" LATIN SMALL LETTER C WITH CARON
          U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
          U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE -->
diff --git a/tools/make-keyboard-text/res/values-fi/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-fi/donottranslate-more-keys.xml
index 82b8472..b06d9e4 100644
--- a/tools/make-keyboard-text/res/values-fi/donottranslate-more-keys.xml
+++ b/tools/make-keyboard-text/res/values-fi/donottranslate-more-keys.xml
@@ -18,21 +18,24 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- U+00E6: "æ" LATIN SMALL LETTER AE
+    <!-- U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+         U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+         U+00E6: "æ" LATIN SMALL LETTER AE
          U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
          U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
          U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
          U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
          U+0101: "ā" LATIN SMALL LETTER A WITH MACRON -->
-    <string name="morekeys_a">&#x00E6;,&#x00E0;,&#x00E1;,&#x00E2;,&#x00E3;,&#x0101;</string>
-    <!-- U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+    <string name="morekeys_a">&#x00E4;,&#x00E5;,&#x00E6;,&#x00E0;,&#x00E1;,&#x00E2;,&#x00E3;,&#x0101;</string>
+    <!-- U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+         U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
          U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
          U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
          U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
          U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
          U+0153: "œ" LATIN SMALL LIGATURE OE
          U+014D: "ō" LATIN SMALL LETTER O WITH MACRON -->
-    <string name="morekeys_o">&#x00F8;,&#x00F4;,&#x00F2;,&#x00F3;,&#x00F5;,&#x0153;,&#x014D;</string>
+    <string name="morekeys_o">&#x00F6;,&#x00F8;,&#x00F4;,&#x00F2;,&#x00F3;,&#x00F5;,&#x0153;,&#x014D;</string>
     <!-- U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS -->
     <string name="morekeys_u">&#x00FC;</string>
     <!-- U+0161: "š" LATIN SMALL LETTER S WITH CARON
diff --git a/tools/make-keyboard-text/res/values-hi-rZZ/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-hi-rZZ/donottranslate-more-keys.xml
new file mode 100644
index 0000000..50834e0
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-hi-rZZ/donottranslate-more-keys.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- U+20B9: "₹" INDIAN RUPEE SIGN -->
+    <string name="keyspec_currency">&#x20B9;</string>
+    <string name="label_go_key">Go</string>
+    <string name="label_send_key">Send</string>
+    <string name="label_next_key">Next</string>
+    <string name="label_done_key">Done</string>
+    <string name="label_search_key">Search</string>
+    <string name="label_previous_key">Prev</string>
+    <string name="label_pause_key">Pause</string>
+    <string name="label_wait_key">Wait</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-hi/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-hi/donottranslate-more-keys.xml
index 55723cd..2a37d8b 100644
--- a/tools/make-keyboard-text/res/values-hi/donottranslate-more-keys.xml
+++ b/tools/make-keyboard-text/res/values-hi/donottranslate-more-keys.xml
@@ -57,4 +57,9 @@
     <string name="additional_morekeys_symbols_0">0</string>
     <!-- U+20B9: "₹" INDIAN RUPEE SIGN -->
     <string name="keyspec_currency">&#x20B9;</string>
+    <!-- U+0964: "।" DEVANAGARI DANDA -->
+    <string name="keyspec_period">&#x0964;</string>
+    <string name="keyspec_tablet_period">&#x0964;</string>
+    <string name="morekeys_period">"!autoColumnOrder!9,\\,,.,?,!,#,),(,/,;,',@,:,-,\",+,\\%,&amp;"</string>
+    <string name="morekeys_tablet_period">"!autoColumnOrder!8,\\,,.,',#,),(,/,;,@,:,-,\",+,\\%,&amp;"</string>
 </resources>
diff --git a/tools/make-keyboard-text/res/values-nb/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-nb/donottranslate-more-keys.xml
index c5307a9..37f9f8a 100644
--- a/tools/make-keyboard-text/res/values-nb/donottranslate-more-keys.xml
+++ b/tools/make-keyboard-text/res/values-nb/donottranslate-more-keys.xml
@@ -18,13 +18,15 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+    <!-- U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+         U+00E6: "æ" LATIN SMALL LETTER AE
          U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+         U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
          U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
          U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
          U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
          U+0101: "ā" LATIN SMALL LETTER A WITH MACRON -->
-    <string name="morekeys_a">&#x00E0;,&#x00E4;,&#x00E1;,&#x00E2;,&#x00E3;,&#x0101;</string>
+    <string name="morekeys_a">&#x00E5;,&#x00E6;,&#x00E4;,&#x00E0;,&#x00E1;,&#x00E2;,&#x00E3;,&#x0101;</string>
     <!-- U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
          U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
          U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
@@ -33,14 +35,15 @@
          U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
          U+0113: "ē" LATIN SMALL LETTER E WITH MACRON -->
     <string name="morekeys_e">&#x00E9;,&#x00E8;,&#x00EA;,&#x00EB;,&#x0119;,&#x0117;,&#x0113;</string>
-    <!-- U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+    <!-- U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+         U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+         U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
          U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
          U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
-         U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
          U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
          U+0153: "œ" LATIN SMALL LIGATURE OE
          U+014D: "ō" LATIN SMALL LETTER O WITH MACRON -->
-    <string name="morekeys_o">&#x00F4;,&#x00F2;,&#x00F3;,&#x00F6;,&#x00F5;,&#x0153;,&#x014D;</string>
+    <string name="morekeys_o">&#x00F8;,&#x00F6;,&#x00F4;,&#x00F2;,&#x00F3;,&#x00F5;,&#x0153;,&#x014D;</string>
     <!-- U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
          U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
          U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
diff --git a/tools/make-keyboard-text/res/values-ne-rNP/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-ne-rNP/donottranslate-more-keys.xml
index 97c50d1..56b594f 100644
--- a/tools/make-keyboard-text/res/values-ne-rNP/donottranslate-more-keys.xml
+++ b/tools/make-keyboard-text/res/values-ne-rNP/donottranslate-more-keys.xml
@@ -57,4 +57,9 @@
     <string name="additional_morekeys_symbols_0">0</string>
     <!-- U+0930/U+0941/U+002E "रु." NEPALESE RUPEE SIGN -->
     <string name="keyspec_currency">&#x0930;&#x0941;&#x002E;</string>
+    <!-- U+0964: "।" DEVANAGARI DANDA -->
+    <string name="keyspec_period">&#x0964;</string>
+    <string name="keyspec_tablet_period">&#x0964;</string>
+    <string name="morekeys_period">"!autoColumnOrder!9,.,\\,,?,!,#,),(,/,;,',@,:,-,\",+,\\%,&amp;"</string>
+    <string name="morekeys_tablet_period">"!autoColumnOrder!8,.,\\,,',#,),(,/,;,@,:,-,\",+,\\%,&amp;"</string>
 </resources>
diff --git a/tools/make-keyboard-text/res/values-ro/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-ro/donottranslate-more-keys.xml
index 6286c7b..834e039 100644
--- a/tools/make-keyboard-text/res/values-ro/donottranslate-more-keys.xml
+++ b/tools/make-keyboard-text/res/values-ro/donottranslate-more-keys.xml
@@ -18,16 +18,16 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+    <!-- U+0103: "ă" LATIN SMALL LETTER A WITH BREVE
+         U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
          U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
-         U+0103: "ă" LATIN SMALL LETTER A WITH BREVE
          U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
          U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
          U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
          U+00E6: "æ" LATIN SMALL LETTER AE
          U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
          U+0101: "ā" LATIN SMALL LETTER A WITH MACRON -->
-    <string name="morekeys_a">&#x00E2;,&#x00E3;,&#x0103;,&#x00E0;,&#x00E1;,&#x00E4;,&#x00E6;,&#x00E5;,&#x0101;</string>
+    <string name="morekeys_a">&#x0103;,&#x00E2;,&#x00E3;,&#x00E0;,&#x00E1;,&#x00E4;,&#x00E6;,&#x00E5;,&#x0101;</string>
     <!-- U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
          U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
          U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
diff --git a/tools/make-keyboard-text/res/values-sr-rZZ/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-sr-rZZ/donottranslate-more-keys.xml
new file mode 100644
index 0000000..1168126
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-sr-rZZ/donottranslate-more-keys.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE -->
+    <string name="morekeys_e">&#x00E8;</string>
+    <!-- U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE -->
+    <string name="morekeys_i">&#x00EC;</string>
+    <!-- U+0161: "š" LATIN SMALL LETTER S WITH CARON -->
+    <string name="morekeys_s">&#x0161;,%</string>
+    <!-- U+010D: "č" LATIN SMALL LETTER C WITH CARON
+         U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE -->
+    <string name="morekeys_c">&#x010D;,&#x0107;,%</string>
+    <!-- U+0111: "đ" LATIN SMALL LETTER D WITH STROKE -->
+    <string name="morekeys_d">&#x0111;,%</string>
+    <!-- U+017E: "ž" LATIN SMALL LETTER Z WITH CARON -->
+    <string name="morekeys_z">&#x017E;,%</string>
+    <string name="label_go_key">"Idi"</string>
+    <string name="label_send_key">"Šalji"</string>
+    <string name="label_next_key">"Sled"</string>
+    <string name="label_done_key">"Gotov"</string>
+    <string name="label_search_key">"Traži"</string>
+    <string name="label_previous_key">"Preth"</string>
+    <string name="label_pause_key">"Pauza"</string>
+    <string name="label_wait_key">"Čekaj"</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-sv/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-sv/donottranslate-more-keys.xml
index ead5140..832e438 100644
--- a/tools/make-keyboard-text/res/values-sv/donottranslate-more-keys.xml
+++ b/tools/make-keyboard-text/res/values-sv/donottranslate-more-keys.xml
@@ -18,12 +18,15 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+    <!-- U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+         U+00E5: "å" LATIN SMALL LETTER A WITH RING
+         U+00E6: "æ" LATIN SMALL LETTER AE
+         U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
          U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
          U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
          U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
          U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE -->
-    <string name="morekeys_a">&#x00E1;,&#x00E0;,&#x00E2;,&#x0105;,&#x00E3;</string>
+    <string name="morekeys_a">&#x00E4;,&#x00E5;,&#x00E6;,&#x00E1;,&#x00E0;,&#x00E2;,&#x0105;,&#x00E3;</string>
     <!-- U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
          U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
          U+010D: "č" LATIN SMALL LETTER C WITH CARON -->
@@ -48,12 +51,15 @@
          U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
          U+0148: "ň" LATIN SMALL LETTER N WITH CARON -->
     <string name="morekeys_n">&#x0144;,&#x00F1;,&#x0148;</string>
-    <!-- U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+    <!-- U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+         U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+         U+0153: "œ" LATIN SMALL LIGATURE OE
+         U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
          U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
          U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
          U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
          U+014D: "ō" LATIN SMALL LETTER O WITH MACRON -->
-    <string name="morekeys_o">&#x00F3;,&#x00F2;,&#x00F4;,&#x00F5;,&#x014D;</string>
+    <string name="morekeys_o">&#x00F6;,&#x00F8;,&#x0153;,&#x00F3;,&#x00F2;,&#x00F4;,&#x00F5;,&#x014D;</string>
     <!-- U+0159: "ř" LATIN SMALL LETTER R WITH CARON -->
     <string name="morekeys_r">&#x0159;</string>
     <!-- U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
diff --git a/tools/make-keyboard-text/res/values-tr/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-tr/donottranslate-more-keys.xml
index db1108f..2398430 100644
--- a/tools/make-keyboard-text/res/values-tr/donottranslate-more-keys.xml
+++ b/tools/make-keyboard-text/res/values-tr/donottranslate-more-keys.xml
@@ -18,8 +18,13 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX -->
-    <string name="morekeys_a">&#x00E2;</string>
+    <!-- U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+         U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+         U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE -->
+    <string name="morekeys_a">&#x00E2;,&#x00E4;,&#x00E1;</string>
+    <!-- U+0259: "ə" LATIN SMALL LETTER SCHWA
+         U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE -->
+    <string name="morekeys_e">&#x0259;,&#x00E9;</string>
     <!-- U+0131: "ı" LATIN SMALL LETTER DOTLESS I
          U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
          U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
@@ -50,8 +55,15 @@
     <string name="morekeys_s">&#x015F;,&#x00DF;,&#x015B;,&#x0161;</string>
     <!-- U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE -->
     <string name="morekeys_g">&#x011F;</string>
+    <!-- U+0148: "ň" LATIN SMALL LETTER N WITH CARON
+         U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE -->
+    <string name="morekeys_n">&#x0148;,&#x00F1;</string>
     <!-- U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
          U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
          U+010D: "č" LATIN SMALL LETTER C WITH CARON -->
     <string name="morekeys_c">&#x00E7;,&#x0107;,&#x010D;</string>
+    <!-- U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE -->
+    <string name="morekeys_y">&#x00FD;</string>
+    <!-- U+017E: "ž" LATIN SMALL LETTER Z WITH CARON -->
+    <string name="morekeys_z">&#x017E;</string>
 </resources>
diff --git a/tools/make-keyboard-text/res/values-uz-rUZ/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-uz-rUZ/donottranslate-more-keys.xml
new file mode 100644
index 0000000..24dd091
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-uz-rUZ/donottranslate-more-keys.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2014, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- This is the same as Turkish -->
+    <!-- U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+         U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+         U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE -->
+    <string name="morekeys_a">&#x00E2;,&#x00E4;,&#x00E1;</string>
+    <!-- U+0259: "ə" LATIN SMALL LETTER SCHWA
+         U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE -->
+    <string name="morekeys_e">&#x0259;,&#x00E9;</string>
+    <!-- U+0131: "ı" LATIN SMALL LETTER DOTLESS I
+         U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+         U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+         U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+         U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+         U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+         U+012B: "ī" LATIN SMALL LETTER I WITH MACRON -->
+    <string name="morekeys_i">&#x0131;,&#x00EE;,&#x00EF;,&#x00EC;,&#x00ED;,&#x012F;,&#x012B;</string>
+    <!-- U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+         U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+         U+0153: "œ" LATIN SMALL LIGATURE OE
+         U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+         U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+         U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+         U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+         U+014D: "ō" LATIN SMALL LETTER O WITH MACRON -->
+    <string name="morekeys_o">&#x00F6;,&#x00F4;,&#x0153;,&#x00F2;,&#x00F3;,&#x00F5;,&#x00F8;,&#x014D;</string>
+    <!-- U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+         U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+         U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+         U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+         U+016B: "ū" LATIN SMALL LETTER U WITH MACRON -->
+    <string name="morekeys_u">&#x00FC;,&#x00FB;,&#x00F9;,&#x00FA;,&#x016B;</string>
+    <!-- U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
+         U+00DF: "ß" LATIN SMALL LETTER SHARP S
+         U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
+         U+0161: "š" LATIN SMALL LETTER S WITH CARON -->
+    <string name="morekeys_s">&#x015F;,&#x00DF;,&#x015B;,&#x0161;</string>
+    <!-- U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE -->
+    <string name="morekeys_g">&#x011F;</string>
+    <!-- U+0148: "ň" LATIN SMALL LETTER N WITH CARON
+         U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE -->
+    <string name="morekeys_n">&#x0148;,&#x00F1;</string>
+    <!-- U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
+         U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
+         U+010D: "č" LATIN SMALL LETTER C WITH CARON -->
+    <string name="morekeys_c">&#x00E7;,&#x0107;,&#x010D;</string>
+    <!-- U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE -->
+    <string name="morekeys_y">&#x00FD;</string>
+    <!-- U+017E: "ž" LATIN SMALL LETTER Z WITH CARON -->
+    <string name="morekeys_z">&#x017E;</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values/donottranslate-more-keys.xml
index c4a1b88..b6da7d1 100644
--- a/tools/make-keyboard-text/res/values/donottranslate-more-keys.xml
+++ b/tools/make-keyboard-text/res/values/donottranslate-more-keys.xml
@@ -259,4 +259,12 @@
     <string name="morekeys_double_quote">!fixedColumnOrder!5,!text/double_quotes,!text/double_angle_quotes</string>
     <string name="morekeys_tablet_double_quote">!fixedColumnOrder!6,!text/double_quotes,!text/single_quotes,!text/double_angle_quotes,!text/single_angle_quotes</string>
     <string name="keyspec_emoji_action_key">!icon/emoji_action_key|!code/key_emoji</string>
+    <string name="label_go_key">!string/label_go_key</string>
+    <string name="label_send_key">!string/label_send_key</string>
+    <string name="label_next_key">!string/label_next_key</string>
+    <string name="label_done_key">!string/label_done_key</string>
+    <string name="label_search_key">!string/label_search_key</string>
+    <string name="label_previous_key">!string/label_previous_key</string>
+    <string name="label_pause_key">!string/label_pause_key</string>
+    <string name="label_wait_key">!string/label_wait_key</string>
 </resources>
